인프런 커뮤니티 질문&답변

박순성님의 프로필 이미지

작성한 질문수

실전 인공지능으로 이어지는 딥러닝 개념 잡기

합성곱 신경망(Convolutional Neural Networks)

필터사이즈와 컨볼루션레이어 크기의 관계에서

해결된 질문

작성

·

398

1

9:20초경에 필터가 4차원이어야지 컨볼루션레이어에서 3차원이 된다고 말씀하신것 같습니다. 그렇다면 예시의 상황에서(1겹의 패딩과 스트라이드가 1일때)  필터가 3차원 3X3X3 일때 다음 컨볼루션레이어가 2차원 14X14 라는 것 맞나요??

혹시 위 질문이 맞다면,  3차원 데이터에 3차원 필터를 씌우는 것이 개념적으로 이해가 안되는데 한 번 알려주실 수 있나요?(필터를 데이터 값에 곱해서 차원에 상관 없이 다 더하는 것 인가요?)

답변 2

2

딥러닝호형님의 프로필 이미지
딥러닝호형
지식공유자

안녕하세요. 열공입니다!

질문을 세가지로 나눠서 말씀 드려야겠네요.

1. 9:20초 부근 내용은 3x3x3짜리가 6개 있다라고 하여 4차원(3x3x3x6)이라고 언급했어요!

2. "다음 컨볼루션레이어가 2차원 14X14 라는 것 맞나요??"라는 질문에서 먼저 짚고 넘어가셔야 할 것이 컨볼루셔널 레이어는 컨볼루셔널 연산이 일어가는 층이라서 컨볼루셔널 레이어 자체를 14x14x6이라고 말하지 않아요! 따라서 14x14x6은 컨볼루셔널 레이어를 거쳐 나온(즉, 컨볼루셔널 연산을 해서) 피쳐맵의 크기에요! 그래서 피쳐맵의 크기는 우리가 배운 식 14=1+(14+2x1-3)/1에 의해서  피쳐맵의 크기가 14x14x6이 나왔다는 것이고 14x14 2차원 이미지가 6개가 있다고 생각 하시면 됩니다! 다음은 실제 파이토치에서 정의 된 내용이니 참고하세요!! 

다만, 우리 예시에서는 이미지 한장을 가지고 설명했기 때문에 N=1이라서 피쳐맵 사이즈를 3차원으로 표현했습니다.

1에서 언급한 필터를 파이토치 정의대로 표현하면 6x3x3x3이 되겠네요.

3. 2차원 이미지에서 2차원 필터를 위에 겹쳐서 밀어서 계산하죠? 3차원도 똑같이 3차원 필터를 밀어서 계산하며

계산법은 우리가 배운 같은 위치의 가중치와 이미지 값을 곱한 것을 모두 더한 연산으로 동일한 합성곱 연산을 사용합니다. 

(즉, 3x3x3필터면 한 번 연산 할 때 27개의 이미지 값이 각각 같은 위치에 있는 가중치랑 곱해지고 이 녀석들을 다 더해서 하나의 값이 나오는 것이에요!! 😀😀)

답변이 도움이 되셨다면 하트 뿅뿅😊 부탁 드려요!

0

박순성님의 프로필 이미지
박순성
질문자

답변 감사드려요!!