6. 완전연결 계층의 문제점
• 이미지 : 3차원 형상(채널*가로*세로)
• 3차원 형상이 가질 수 있는 정보
- 가까운 픽셀은 값이 비슷할 수 있다.
- RGB의 채널은 밀접하게 관련되어 있다.
- 거리가 먼 픽셀끼리는 연관이 없을 수 있다.
• 완전연결 계층(Affine 계층)의 문제점
- 데이터의 형상이 무시됨.
- 데이터를 1차원 데이터로 평탄화 하기 때문.
- 큰 이미지를 입력으로 넣을 경우 필요 가중치의 개수가 너무 많아진다.
합성곱 계층은 형상을 유지한다.
13. 출력 크기 계산
• 출력 크기는 패딩, 스트라이드를 어떻게 설정하는지에 따라 달라진다.
• 출력 크기를 수식으로 나타내면
𝑂𝐻 =
𝐻 + 2𝑃 − 𝐹𝐻
𝑆
+ 1
𝑂𝑊 =
𝐻 + 2𝑃 − 𝐹𝐻
𝑆
+ 1
입력 크기 : (H,W)
필터 크기 : (FH,FW)
출력 크기 : (OH, OW)
패딩 : P
스트라이드 : S
출력 크기는 정수로 나누어 떨어지는 값이여야 한다.
14. 3차원 데이터의 합성곱 연산
• 이미지는 3차원 데이터이다. (채널, 세로, 가로)
• 3차원 입력 데이터의 채널 수와 필터의 채널 수가 같아야 한다.
19. 배치 처리
각 데이터의 선두에 배치용 차원을 추가
N회 분의 처리를 한 번에 수행한다.
20. 풀링(Pooling) 계층
세로 * 가로 방향의 공간을 줄이는 연산
오른쪽 그림은 최대 풀링(Max pooling)을 스트라이드 2로 처리하는 모습
풀링의 윈도우 크기와 스트라이드는 같은 값으로 설정하는 것이 일반적
2x2 크기의 영역에서 가장 큰 원소 하나를 꺼낸다.
2x2 최대 풀링
21. 풀링 계층의 특징
• 학습해야 할 매개변수가 없다.
- 풀링은 대상 영역에서 최댓값이나 평균만을 취하는 처리이므로
• 채널 수가 변하지 않는다.
- 입력 데이터의 채널 수 그대로 출력 데이터로 내보냄.
• 입력의 변화에 영향을 적게 받는다. (강건함)
데이터가 가로로 1원소만큼 어긋나도 출력은 같다.
23. 합성곱 계층 구현
• 합성곱 연산을 단순하게 구현하려면 for 문을 겹겹이 써야한다.
• 2중 for문 이상으로 구현하게 되면 시간이 매우 오래 걸린다.
• 효율적인 방법은?
• im2col 함수 (image to column)
24. im2col
• 입력 데이터를 필터링(가중치 계산) 하기 좋게 전개하는(펼치는) 함수
• 4차원 데이터를 2차원으로 변환
• 합성곱(convolution) 연산은 빠르지만
연산 메모리가 증가하는 단점이 존재함
• 메모리 사용을 희생하면서 더 빨리 계산
출처 : https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/making_faster.html
25. im2col
입력 데이터 : (3,4,4)
필터(커널) : (3,2,2)
출력 데이터 : (3,3)
필터가 4개인 경우는…
4x4x3 = 48개의 입력 데이터가
12x9 = 108개로 늘어남!
하지만 for문을 쓰는 것 보다는 빠르다.
출처 : https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/making_faster.html
36. 1번째 층의 가중치 시각화
학습 전 학습 후
앞에서 구현한 CNN의 1번째 층의 형상 (30,1,5,5)
세로 엣지에 반응하는 필터 가로 엣지에 반응하는 필터
블롭(국소적으로 덩어리진 영역)
에 반응하는 필터?
37. 층 깊이에 따른 추출 정보 변화
출처 : https://hamait.tistory.com/535
CNN의 각 계층에서는
어떤 정보가 추출될까?
연구에 따르면 계층이 깊어질수록
추출되는 정보(강하게 반응하는 뉴런)
는 더 추상화된다고 한다.
단순한 엣지 물체의 일부분 더 복잡한 일부분
사물의 의미를 이해하도록 변화
39. 대표적인 CNN 구조
• LeNet (1998)
• AlexNet (2012)
• ZF Net (2013)
• VGG (2014)
• GoogleNet (2015)
• ResNet (2015)
• DenseNet (2016)
• …
40. LeNet (1998) LeNet-5
손글씨 숫자를 인식하는 네트워크(CNN의 원조)
합성곱 계층과 풀링 계층을 반복하고 마지막으로 완전연결 계층을 거치면서 결과를 출력
• 현재의 CNN과의 차이점
- 활성화 함수는 Sigmoid
- 풀링 계층이 단순히 원소를 줄이기만 하는 서브샘플링 계층임
41. AlexNet (2012)
딥러닝 열풍을 일으키는 데 큰 역할을 함
합성곱 계층, 풀링 계층을 거듭하며 마지막으로 완전연결 계층을 거쳐 결과를 출력
• LeNet과의 차이점
- 활성화 함수는 ReLU
- LRN(local Response Normalization)이라는 국소적 정규화 실시 계층이 있음
- 드롭아웃 사용