레플리
글 수 220

합성곱신경망의 패딩에 관한 질문

조회 수 170 추천 수 0 2019.01.10 13:41:46


합성곱 연산을 수행하면 그 결과로 나오는 특징맵의 크기가

원본 이미지보다 작아지죠.

그래서 패딩이라는 과정을 합성곱 레이어 앞에 추가합니다.

패딩은 원본 이미지의 테두리에 0으로 채워서 임의로 크기를 늘리는겁니다.

 

 

GBlLErX.png

테두리에 0으로 채워서 원본 이미지의 크기가 커졌다.

 

 

여기까진 교과서에도 나오는 내용입니다.

패딩한 이미지를 합성곱레이어에 넣는다... <- 순전파 과정이죠?

 

 

MNeiNYR.png

순전파 과정

 

 

자... 이제 저의 질문...

그럼 패딩의 역전파는 어떻게 하는거죠???

 

기울기의 역전파 과정 및 가중치 업데이트는 저도 알고 있습니다.

기울기의 역전파를 묻는 것이 아니라 

패딩 과정의 역전파는 어떻게 해야 하느냐는거죠.

 

패딩의 순전파는 원본이미지에 0으로 채워서 임의로 크기를 늘린것이죠?

그렇다면 역전파는 단순히 그 반대로 하면 되나요?

합성곱 레이어로부터 역전파 받은 이미지의 테두리 부분을 깍아서 제거해버리면 되나요?

 

 

5WnZg56.png

 

 

아마... 이걸 알고 계신분은 별로 없을 것이라 생각됩니다만...

왜냐하면 im2col 함수가 이 과정을 다 해주기 때문에 구체적인 구현은 몰라도 되니까요.

 

사실 이와 같이 합성곱레이어로부터 역전파 받은 이미지의 테두리를 깍아내 버리는 방법을 사용해서 합성곱 신경망을 제가 만들어 봤습니다만... 잘 되긴 잘 됩니다. mnist 데이터셋의 정확도가 90%까지 나와요.

하지만 어느 책을 보아도 패딩의 역전파 과정에 대한 설명이 없어서... 심지어 구글 검색으로도 안나와요.

늘 마음 한구석이 찝찝한 느낌이 들어서...

엮인글 :

깊은바다

2019.01.11 00:10:08
*.207.106.177

완전연결 신경망에서 역전파는 모든 연결의 가중치를 구합니다. 반면에 컨볼루션에서 역전파는 필터(커널)의 가중치만 구하기 때문에 계산량이 줄어듭니다. 패딩으로 늘린 부분은 컨볼루션 연산을 하고 난 후 특성 맵(feature map)의 크기에만 영향을 줍니다. 역전파와 패딩은 크게 상관이 없을 것 같은데요. 저도 어떤 문제인지 정확히 모르겠네요^^;

잘잤니

2019.04.15 19:16:59
*.86.162.188

convolutional net에서 역전파를 통해서 얻고자 하는 값이 무언지 생각해보시면 명료해질 것 같습니다. 편미분을 연속해서 우리가 알아내려는 것은 결국 특정 패러미터(=필터의 각 셀들)가 다음 단계에 주는 영향(=계수)이잖아요. zero-padding의 경우 필터에 곱해지는 padding된 영역의 값이 0이기 때문에 실제 필터에 곱해지는 값도 0이므로 gradient값에 직접적인 영향이 없습니다. 영향이 있다면 오직 padding 덕분에 필터에 곱해지는 값들의 배열이 달라지는 것뿐이죠.

 

padding을 깎아낸다는 게 무슨 뜻인지는 잘 모르겠습니다만, 필터의 각 셀 W_11, W_12 ... W_ij에 곱해지는 입력값은 padding과 stride에 따라 바뀌게 되므로 gradient를 구하려면 padding이 이루어진 입력값에서 편미분을 해야 합니다. 간단히, 특정 convolutional layer의 결과값을 Z라고 할 때, 원래의 필터 W와 크기가 같되 모든 값이 0인 필터를 설정하고, 그 필터를 순전파 과정에서의 움직임과 똑같이 padding된 layer를 따라 움직이게 하면서 필터의 각 셀별로 이동해서 얻어지는 값을 더하시면 필터 W의 편미분값 dZ/dW를 얻을 수 있습니다. 이걸 dCost/dZ와 곱해주면 gradient를 얻으실 수 있고요.

List of Articles
제목 글쓴이 날짜 조회 수sort
카톡 대화를 학습하는 AI 아바타 챗봇 - 레플리 file 깊은바다 2024-01-17 306
외국인 노동자와 인공지능의 공통점 깊은바다 2018-01-21 181
한국어 구사 데이타 사이언티스트 채용 실력? 뜨자떠야한다 2018-11-28 179
앤드류 응이 말하는 AI, 경영전략 깊은바다 2017-04-21 179
데이터 시각화를 공부하기 좋은 책 없을까요. [1] NeuroWhAI 2018-05-23 178
[가입인사] AI STARTUP 기업과 개발자 자료를 검색하다가 등록합니다. [1] hornet 2020-12-07 177
Transformer 구조에 대해서 질문하나 드립니다. [1] 김만수 2019-01-15 177
어텐션 매커니즘 구현하기 너무 힘드네요 ㅠ [1] NeuroWhAI 2018-12-02 177
end-to-end 챗봇 질문 [1] 배수진종결자 2019-02-20 175
MS의 Bot Framework와 LUIS 챗봇 세미나 깊은바다 2017-09-18 173
카카오 i 오픈빌더 관련 질문입니다. [2] Dope 2019-03-28 172
안녕하세요 시각예술계열 전공자가 장문으로 질문 드릴게 있어 여기까지 왔습니다. [3] 재앤더플루이드 2019-07-14 171
합성곱신경망의 패딩에 관한 질문 [2] 디쁘러닝 2019-01-10 170
매트릭스에서 기계가 인간을 지배하게된 배경 깊은바다 2017-04-05 170
질문이 있습니다. [2] 빛똥빼숏 2017-11-16 169
NeuroWhAI님, Seq2seq 디코딩 문제 해결하셨나요? file [3] 깊은바다 2018-04-30 169