2. 9.0 What is CNN?
Image data 파악하
기
height
width
RGB
image 차원
= height * width * 3(RGB)
* 이러한 다차원 배열을 tensor라고 부름
3. 9.0 What is CNN?
Image data 파악하
기
(눈, 귀 등) 특정 부분을 보고
image에 대해 파악
4. 9.0 What is CNN?
Hubel & Wiesel Experiment(1959, 1962, 1968)
시각령 뉴런들은
이미지 전체가 아니라
이미지의 특정 모양, 특징에
반응하고 활성화
https://www.youtube.com/watch?v=8VdFf3egwfg (1:51부터)
5. 9.0 What is CNN?
기존 fully-connected multi-layered
Neural Network의 문제점 :
1) 인접한 픽셀의 지역적 관계(local
relationship) 고려 X (시각적 특징 고려 X)
2) 모든 parameter를 이용하여 계산해야 하므
로 불필요한 parameter까지 고려해야 함
6. 9.0 What is CNN?
Solution! convolution 이용한 알고리즘 등장
(적어도 하나의 층에서 convolution 사용하면 CNN이라고
칭함)
7. 9.0 What is CNN?
CNN 전체적 구조
input
convolution
layer
detector
layer
pooling
layer
next
layer ...
9. (x 데이터에 w 필터 처리)
9.1 The convolution operation(합성곱)
(discrete convolution) (continuous convolution)핵
(kernel)
입력
(input)
특징 맵
(feature map)
convolution(합성곱) : 두 함수를 합성하는 연산
10. 9.1 The convolution operation(합성곱)
(discrete convolution) (continuous convolution)
𝐼 ∗ 𝐾 𝑖, 𝑗 =
𝑚 𝑛
𝐼 𝑚, 𝑛 𝐾 𝑖 − 𝑚, 𝑗 − 𝑛 =
𝑚 𝑛
𝐼 𝑖 − 𝑚, 𝑗 − 𝑛 𝐾 𝑚, 𝑛
2D image에 적용 (I 이미지에 K 필터
처리)
핵
(kernel)
입력
(input)
특징 맵
(feature map)
11. 9.1 The convolution operation(합성곱)
현재 필터의 숫자는 임의로 설정해준 것
(실제로는 CNN이 알아서 학습된 필터로 처리)
그래서, 이게 CNN에서 어떻게 쓰인다고요?
24. 9.1 The convolution operation(합성곱)
- 일반적으로 이미지 픽셀은 RGB 컬러 가지는 3차원 벡터 (height * weight * depth)
- 이미지 depth 크기 = 필터 depth 크기 일치해야 함
input
convolution
layer
detector
layer
pooling
layer
next layer ...
25. 9.1* The detector(activation) layer
input
convolution
layer
detector
layer
pooling
layer
next layer ...
선형 -> 비선형적으로 바꿔주
기!
convolution operation
26. 9.3 Pooling
- 근접 출력값에 대한 요약 통계량(summary statistics)
- 직전 layer를 subsampling 통해 크기 줄임
- 중요 정보 유지 + 입력 크기 감소(dimension reduction) => overfitting 예방 + 계산량 감소
- max pooling, mean(average) pooling 등이 존재
input
convolution
layer
detector
layer
pooling
layer
next layer ...
max pooling mean(average) pooling
12 20 30 0
8 12 2 0
34 70 37 6
112 100 25 12
20 30
112 37
13 8
79 20
27. 9.2 Motivation - 등변 표현 (equivariant representation)
우리가 볼 땐 같은 X이지만
기존 fully connected NN으로 하면 서로 다른 데이터로 파
악
28. 9.2 Motivation - 등변 표현 (equivariant representation)
1 1
1 1
MAX
POOLING
서로 같은 데이터로 취급
=> 작은 이동에 대해 불변(invariant)
29. 9.2 Motivation - 희소 상호작용 (sparse interaction)
fully connected NN
locally connected NN
가정: 너비가 3인 kernel 적용
=> 영향을 미치는 입출력이 5개(fully) -> 3개(locally)로 감소
30. 9.2 Motivation - 매개변수 공유 (parameter sharing)
𝐼11 𝐼12 𝐼13 𝐼14 𝐼15
𝐼21 𝐼22 𝐼23 𝐼24 𝐼25
𝐼31 𝐼32 𝐼33 𝐼34 𝐼35
𝐼41 𝐼42 𝐼43 𝐼44 𝐼45
𝐼51 𝐼52 𝐼53 𝐼54 𝐼55
𝐾11 𝐾12
𝐾21 𝐾22
각 output 계산할 때 같은 kernel 계속 사용
=
𝑂11 𝑂12 𝑂13 𝑂14
𝑂21 𝑂22 𝑂23 𝑂24
𝑂31 𝑂32 𝑂33 𝑂34
𝑂41 𝑂42 𝑂43 𝑂44
31. 9.4 Convolution and Pooling as an Infinitely Strong Prior
CNN서 필터의 크기는 이미지의 크기보다 작다.
=> 대부분의 가중치에 0을 부여하는 것과 같다.
즉, 합성곱 신경망은 가중치들에 대해 다음의 아주 강한 사전분포를 가정한 완전 연결 신경망이다.
1. 한 레이어가 배워야 하는 함수에 오직 국소적인 상호작용들만 존재한다.
멀리 떨어진 픽셀간에 상호작용이 존재하지 않는다.
2. 이동에 대해 등변이어야 한다.
정확한 공간정보를 유지하는게 중요하지 않다.
32. 9.5 Variants of the Basic Convolution Function
1) 유효(valid) 합성곱 :
- padding을 사용하지 않는 합성곱
- 모든 출력픽셀들이 같은 수의 입력픽셀의 영향을 받음
- 출력의 크기가 입력의 크기보다 작아져서 신경망층이 무한히 깊어질 수 없음.
유효합성곱 vs 동일합성곱
2) 동일(same) 합성곱 :
- 입력의 크기와 출력의 크기가 같도록 padding을 하는 합성곱
- 하드웨어의 제약이 없다면 무한히 깊은 신경망을 구현할 수 있음.
- 가장자리 픽셀들이 모델에 적게 반영됨.
두 가지 방식(+pulling, stride)을 이용하여 피쳐맵의 크기를 컨트롤한다.
33. 9.5 Variants of the Basic Convolution Function
다양한 합성곱 방법
1x2필터(a, b)를 적용하는 모습
발견하고자 하는 특징이 공간의 일부에서
만 나타난다고 생각 될 경우 유용하다.
Ex) 이미지가 사람의 얼굴인지 판단하는
경우, 입은 이미지 아래쪽 절반에서만 찾
으면 된다.
위 두 방법의 절충안.
여러 필터를 번갈아 적용시킨다
34. 9.5 Variants of the Basic Convolution Function
필터의 학습?
필터는 결국 신경망 유닛들 간의 반복되는 가중치 집합이다.
=> 당연히 역전파를 통해 필터가 학습된다.
CONV
FC
36. 9.7 Data Types
합성곱 신경망에 쓰이는 자료는 여러 채널로 구성된다.
단일 채널 다중 채널
1차원 음형 파형 자료 골격 애니메이션 자료
2차원
푸리에 변환으로 처리한 음
향자료
색상 이미지 자료
3차원 부피(입체)자료 색상 동영상 자료
37. 9.8 Efficient Convolution Algorithms
합성곱을 더 빠르게 계산하는 방법이나 모형의 정확도를
떨어뜨리지 않고 합성곱을 근사하는 방법은 활발히 연구되는 주제이다.
38. 9.9 Random or Unsupervised Features
CNN 훈련 비용 줄이는 방법: 비지도 학습 방식으로 kernel 설정
- 무작위 초기화(randomly initialize)
- 사람이 직접 설계
- k-means clustering 이용
39. 9.10 The Neuroscientific Basis for Convolutional Networks
deep learning 관점에서 뇌의 기능 단순화 => 만화 관점(cartoon view)
Brain (1차 시각피질) CNN
이미지 구조 반영하는
2차원 구조
2차원 필터
단순세포(simple cell) 검출기 단위(detector unit)
복합세포(complex cell) 풀링(pooling)
할머니 세포(grandmother cell)
입력 변환(회전 등)이 있어도
output은 불변
40. 9.10 The Neuroscientific Basis for Convolutional Networks
deep learning 관점에서 뇌의 기능 단순화 => 만화 관점(cartoon view)
Brain (1차 시각피질) CNN
이미지 구조 반영하는
2차원 구조
2차원 필터
단순세포(simple cell) 검출기 단위(detector unit)
복합세포(complex cell) 풀링(pooling)
할머니 세포(grandmother cell)
입력 변환(회전 등)이 있어도
output은 불변
BUT 실제 시각체계와의 차이점도 존재하는데...
- 중심와(fovea) 주목 메커니즘 : 눈에 띄는 주요 부분만 단시간에 파악
- 다른 감각과의 통합
- 물체 사이의 관계 파악해서 장면 전체 이해
- 단순/복합세포의 구분 실제로는 없을 수도 있음
43. 9.11 Convolutional Networks and the History of Deep Learning
LeNet-5 (Le Cunn, 1998)
- sigmoid 활성 함수 이용
- pooling을 이용하지 않
음
44. 9.11 Convolutional Networks and the History of Deep Learning
AlexNet (Krizhevsky et al., 2012)
- ReLU 활성 함수 이
용
- max pooling 이용
- dropout 이용
45. 9.11 Convolutional Networks and the History of Deep Learning
VGG(Visual Geometry Group, Very Deep CNN) (Simonyan et al., 2014)
- 작은 필터(3*3) 사용
- but 깊게 모델 구조화
- 3~4개 convolutional layer
+ pooling layer 형식
- ReLU 활성 함수 이용
- max pooling 이용
- softmax 이용
46. 9.11 Convolutional Networks and the History of Deep Learning
GoogLeNet(Szegedy et al., 2015)
- inception module 이용
(여러 필터로 구성)
47. 9.11 Convolutional Networks and the History of Deep Learning
• 역전파로 훈련해서 잘 작동한 최초 neural net들 중 하나, CNN
(but 이유는 명확하게 밝혀지지 않음: 효율적 계산 비용, 큰 신경망 등으로 추
측)
neural net이 널리 받아들여지도록 하는 역할을 함!
• 2차원 이미지 구조에 가장 성공적으로 쓰임
1차원 sequential 자료는 다른 neural net framework가 특수
화