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

More Related Content

PDF
순환신경망(Recurrent neural networks) 개요
PPTX
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
PDF
[기초개념] Recurrent Neural Network (RNN) 소개
PPTX
인공지능, 기계학습 그리고 딥러닝
PPTX
Swin transformer
PPTX
알아두면 쓸데있는 신비한 딥러닝 이야기
PDF
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
PDF
딥러닝의 기본
순환신경망(Recurrent neural networks) 개요
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
[기초개념] Recurrent Neural Network (RNN) 소개
인공지능, 기계학습 그리고 딥러닝
Swin transformer
알아두면 쓸데있는 신비한 딥러닝 이야기
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
딥러닝의 기본

What's hot (20)

PPTX
[AIoTLab]attention mechanism.pptx
PPTX
Deep learning
PDF
20191019 sinkhorn
PDF
LSTM Basics
PPTX
ResNetの仕組み
PPTX
Chapter 15 Representation learning - 1
PDF
Convolutional neural network in practice
PPTX
03.12 cnn backpropagation
PDF
오토인코더의 모든 것
PDF
私は如何にして心配するのを止めてPyTorchを愛するようになったか
PDF
Understanding Convolutional Neural Networks
PDF
【メタサーベイ】Vision and Language のトップ研究室/研究者
PPTX
Tutorial on convolutional neural networks
PPTX
Deep Learning Frameworks 2019 | Which Deep Learning Framework To Use | Deep L...
PPTX
쫄지말자딥러닝2 - CNN RNN 포함버전
PPTX
SLAM-베이즈필터와 칼만필터
PPTX
PILCO - 第一回高橋研究室モデルベース強化学習勉強会
PPTX
Precise LSTM Algorithm
PDF
SSII2019TS: Shall We GANs?​ ~GANの基礎から最近の研究まで~
PDF
GPT解説
[AIoTLab]attention mechanism.pptx
Deep learning
20191019 sinkhorn
LSTM Basics
ResNetの仕組み
Chapter 15 Representation learning - 1
Convolutional neural network in practice
03.12 cnn backpropagation
오토인코더의 모든 것
私は如何にして心配するのを止めてPyTorchを愛するようになったか
Understanding Convolutional Neural Networks
【メタサーベイ】Vision and Language のトップ研究室/研究者
Tutorial on convolutional neural networks
Deep Learning Frameworks 2019 | Which Deep Learning Framework To Use | Deep L...
쫄지말자딥러닝2 - CNN RNN 포함버전
SLAM-베이즈필터와 칼만필터
PILCO - 第一回高橋研究室モデルベース強化学習勉強会
Precise LSTM Algorithm
SSII2019TS: Shall We GANs?​ ~GANの基礎から最近の研究まで~
GPT解説
Ad

Similar to Chapter 9 - convolutional networks (20)

PPTX
Convolutional neural networks
PDF
Dl from scratch(7)
PDF
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
PPTX
CNN
PDF
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
PPTX
Cnn 발표자료
PPTX
텐서플로우 2.0 튜토리얼 - CNN
PDF
여러 컨볼루션 레이어 테크닉과 경량화 기법들
PDF
Deep Learning Into Advance - 1. Image, ConvNet
PDF
Deep Learning & Convolutional Neural Network
PPTX
111118 ch 4_basic image manipulation_web
PDF
Designing more efficient convolution neural network
PDF
Designing more efficient convolution neural network
PDF
딥러닝을 위한 Tensor flow(skt academy)
PDF
[데이터 분석 소모임] Convolution Neural Network 김려린
PPTX
Cnn 강의
PDF
CNN Introduction
PPTX
Deep learning overview
PDF
Convolutional Neural Networks(CNN) / Stanford cs231n 2017 lecture 5 / MLAI@UO...
PPTX
Neural network (perceptron)
Convolutional neural networks
Dl from scratch(7)
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
CNN
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
Cnn 발표자료
텐서플로우 2.0 튜토리얼 - CNN
여러 컨볼루션 레이어 테크닉과 경량화 기법들
Deep Learning Into Advance - 1. Image, ConvNet
Deep Learning & Convolutional Neural Network
111118 ch 4_basic image manipulation_web
Designing more efficient convolution neural network
Designing more efficient convolution neural network
딥러닝을 위한 Tensor flow(skt academy)
[데이터 분석 소모임] Convolution Neural Network 김려린
Cnn 강의
CNN Introduction
Deep learning overview
Convolutional Neural Networks(CNN) / Stanford cs231n 2017 lecture 5 / MLAI@UO...
Neural network (perceptron)
Ad

More from KyeongUkJang (20)

PDF
Photo wake up - 3d character animation from a single photo
PDF
PPTX
AlphagoZero
PPTX
GoogLenet
PDF
GAN - Generative Adversarial Nets
PDF
Distilling the knowledge in a neural network
PDF
Latent Dirichlet Allocation
PDF
Gaussian Mixture Model
PDF
CNN for sentence classification
PDF
Visualizing data using t-SNE
PPTX
Playing atari with deep reinforcement learning
PDF
Chapter 20 - GAN
PDF
Chapter 20 - VAE
PPTX
Chapter 20 Deep generative models
PDF
Chapter 19 Variational Inference
PDF
Natural Language Processing(NLP) - basic 2
PDF
Natural Language Processing(NLP) - Basic
PPTX
Chapter 17 monte carlo methods
PDF
Chapter 16 structured probabilistic models for deep learning - 2
PPTX
Chapter 16 structured probabilistic models for deep learning - 1
Photo wake up - 3d character animation from a single photo
AlphagoZero
GoogLenet
GAN - Generative Adversarial Nets
Distilling the knowledge in a neural network
Latent Dirichlet Allocation
Gaussian Mixture Model
CNN for sentence classification
Visualizing data using t-SNE
Playing atari with deep reinforcement learning
Chapter 20 - GAN
Chapter 20 - VAE
Chapter 20 Deep generative models
Chapter 19 Variational Inference
Natural Language Processing(NLP) - basic 2
Natural Language Processing(NLP) - Basic
Chapter 17 monte carlo methods
Chapter 16 structured probabilistic models for deep learning - 2
Chapter 16 structured probabilistic models for deep learning - 1

Chapter 9 - convolutional networks

  • 1. 9 CNN (Convolutional Neural Networks) 희선 & 경욱 & 다빈 (도와주셔서 감사합니다)
  • 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 ...
  • 8. 9.1 The convolution operation(합성곱) 확률 : 𝑓 1 ∗ 𝑔 2 𝑓 0 ∗ 𝑔 3 𝑓 ∗ 𝑔 3 = 𝑓 1 ∗ 𝑔 2 + 𝑓 0 ∗ 𝑔 3 + ⋯ = 𝑎 𝑓 𝑎 ∗ 𝑔(3 − 𝑎) 𝑓 𝑎 ∗ 𝑔 𝑏 https://brunch.co.kr/@chris-song/24
  • 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에서 어떻게 쓰인다고요?
  • 12. 9.1 The convolution operation(합성곱) input convolution layer detector layer pooling layer next layer ... 𝐼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 * = 𝑂11 𝑂12 𝑂13 𝑂14 𝑂21 𝑂22 𝑂23 𝑂24 𝑂31 𝑂32 𝑂33 𝑂34 𝑂41 𝑂42 𝑂43 𝑂44 𝑂11 = 𝐼11 𝐾11 + 𝐼12 𝐾12 + 𝐼21 𝐾21 + 𝐼22 𝐾22 + 𝑏𝑖𝑎𝑠
  • 13. 9.1 The convolution operation(합성곱) input convolution layer detector layer pooling layer next layer ... 𝐼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 * = 𝑂11 𝑂12 𝑂13 𝑂14 𝑂21 𝑂22 𝑂23 𝑂24 𝑂31 𝑂32 𝑂33 𝑂34 𝑂41 𝑂42 𝑂43 𝑂44 𝑂12 = 𝐼12 𝐾11 + 𝐼13 𝐾12 + 𝐼22 𝐾21 + 𝐼23 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂11 = 𝐼11 𝐾11 + 𝐼12 𝐾12 + 𝐼21 𝐾21 + 𝐼22 𝐾22 + 𝑏𝑖𝑎𝑠
  • 14. 9.1 The convolution operation(합성곱) input convolution layer detector layer pooling layer next layer ... 𝐼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 * = 𝑂11 𝑂12 𝑂13 𝑂14 𝑂21 𝑂22 𝑂23 𝑂24 𝑂31 𝑂32 𝑂33 𝑂34 𝑂41 𝑂42 𝑂43 𝑂44 𝑂12 = 𝐼12 𝐾11 + 𝐼13 𝐾12 + 𝐼22 𝐾21 + 𝐼23 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂11 = 𝐼11 𝐾11 + 𝐼12 𝐾12 + 𝐼21 𝐾21 + 𝐼22 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂13 = 𝐼13 𝐾11 + 𝐼14 𝐾12 + 𝐼23 𝐾21 + 𝐼24 𝐾22 + 𝑏𝑖𝑎𝑠
  • 15. 9.1 The convolution operation(합성곱) input convolution layer detector layer pooling layer next layer ... 𝐼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 * = 𝑂11 𝑂12 𝑂13 𝑂14 𝑂21 𝑂22 𝑂23 𝑂24 𝑂31 𝑂32 𝑂33 𝑂34 𝑂41 𝑂42 𝑂43 𝑂44 𝑂12 = 𝐼12 𝐾11 + 𝐼13 𝐾12 + 𝐼22 𝐾21 + 𝐼23 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂11 = 𝐼11 𝐾11 + 𝐼12 𝐾12 + 𝐼21 𝐾21 + 𝐼22 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂13 = 𝐼13 𝐾11 + 𝐼14 𝐾12 + 𝐼23 𝐾21 + 𝐼24 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂14 = 𝐼14 𝐾11 + 𝐼15 𝐾12 + 𝐼24 𝐾21 + 𝐼25 𝐾22 + 𝑏𝑖𝑎𝑠
  • 16. 9.1 The convolution operation(합성곱) input convolution layer detector layer pooling layer next layer ... 𝐼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 * = 𝑂11 𝑂12 𝑂13 𝑂14 𝑂21 𝑂22 𝑂23 𝑂24 𝑂31 𝑂32 𝑂33 𝑂34 𝑂41 𝑂42 𝑂43 𝑂44 𝑂12 = 𝐼12 𝐾11 + 𝐼13 𝐾12 + 𝐼22 𝐾21 + 𝐼23 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂11 = 𝐼11 𝐾11 + 𝐼12 𝐾12 + 𝐼21 𝐾21 + 𝐼22 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂13 = 𝐼13 𝐾11 + 𝐼14 𝐾12 + 𝐼23 𝐾21 + 𝐼24 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂14 = 𝐼14 𝐾11 + 𝐼15 𝐾12 + 𝐼24 𝐾21 + 𝐼25 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂21 = 𝐼21 𝐾11 + 𝐼22 𝐾12 + 𝐼31 𝐾21 + 𝐼32 𝐾22 + 𝑏𝑖𝑎𝑠
  • 17. 9.1 The convolution operation(합성곱) input convolution layer detector layer pooling layer next layer ... 𝐼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 * = 𝑂11 𝑂12 𝑂13 𝑂14 𝑂21 𝑂22 𝑂23 𝑂24 𝑂31 𝑂32 𝑂33 𝑂34 𝑂41 𝑂42 𝑂43 𝑂44 𝑂12 = 𝐼12 𝐾11 + 𝐼13 𝐾12 + 𝐼22 𝐾21 + 𝐼23 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂11 = 𝐼11 𝐾11 + 𝐼12 𝐾12 + 𝐼21 𝐾21 + 𝐼22 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂13 = 𝐼13 𝐾11 + 𝐼14 𝐾12 + 𝐼23 𝐾21 + 𝐼24 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂14 = 𝐼14 𝐾11 + 𝐼15 𝐾12 + 𝐼24 𝐾21 + 𝐼25 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂21 = 𝐼21 𝐾11 + 𝐼22 𝐾12 + 𝐼31 𝐾21 + 𝐼32 𝐾22 + 𝑏𝑖𝑎𝑠 …
  • 18. 9.1 The convolution operation(합성곱) input convolution layer detector layer pooling layer next layer ... 𝐼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 * = 𝑂11 𝑂12 𝑂13 𝑂14 𝑂21 𝑂22 𝑂23 𝑂24 𝑂31 𝑂32 𝑂33 𝑂34 𝑂41 𝑂42 𝑂43 𝑂44 𝑂12 = 𝐼12 𝐾11 + 𝐼13 𝐾12 + 𝐼22 𝐾21 + 𝐼23 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂11 = 𝐼11 𝐾11 + 𝐼12 𝐾12 + 𝐼21 𝐾21 + 𝐼22 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂13 = 𝐼13 𝐾11 + 𝐼14 𝐾12 + 𝐼23 𝐾21 + 𝐼24 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂14 = 𝐼14 𝐾11 + 𝐼15 𝐾12 + 𝐼24 𝐾21 + 𝐼25 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂21 = 𝐼21 𝐾11 + 𝐼22 𝐾12 + 𝐼31 𝐾21 + 𝐼32 𝐾22 + 𝑏𝑖𝑎𝑠 … 𝑂44 = 𝐼44 𝐾11 + 𝐼45 𝐾12 + 𝐼54 𝐾21 + 𝐼55 𝐾22 + 𝑏𝑖𝑎𝑠
  • 19. 9.1* Stride input convolution layer detector layer pooling layer next layer ... : 필터를 이동시키는 칸의 수 𝐼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 * = 𝑂11 𝑂12 𝑂21 𝑂22 ex) stride = 3 𝑂11 = 𝐼11 𝐾11 + 𝐼12 𝐾12 + 𝐼21 𝐾21 + 𝐼22 𝐾22 + 𝑏𝑖𝑎𝑠
  • 20. 9.1* Stride input convolution layer detector layer pooling layer next layer ... : 필터를 이동시키는 칸의 수 𝐼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 * = ex) stride = 3 𝑂12 = 𝐼14 𝐾11 + 𝐼15 𝐾12 + 𝐼24 𝐾21 + 𝐼25 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂11 = 𝐼11 𝐾11 + 𝐼12 𝐾12 + 𝐼21 𝐾21 + 𝐼22 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂11 𝑂12 𝑂21 𝑂22
  • 21. 9.1* Stride input convolution layer detector layer pooling layer next layer ... : 필터를 이동시키는 칸의 수 𝐼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 * = ex) stride = 3 𝑂12 = 𝐼14 𝐾11 + 𝐼15 𝐾12 + 𝐼24 𝐾21 + 𝐼25 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂11 = 𝐼11 𝐾11 + 𝐼12 𝐾12 + 𝐼21 𝐾21 + 𝐼22 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂21 = 𝐼41 𝐾11 + 𝐼42 𝐾12 + 𝐼51 𝐾21 + 𝐼52 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂11 𝑂12 𝑂21 𝑂22
  • 22. 9.1* Stride input convolution layer detector layer pooling layer next layer ... : 필터를 이동시키는 칸의 수 𝐼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 * = ex) stride = 3 𝑂12 = 𝐼14 𝐾11 + 𝐼15 𝐾12 + 𝐼24 𝐾21 + 𝐼25 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂11 = 𝐼11 𝐾11 + 𝐼12 𝐾12 + 𝐼21 𝐾21 + 𝐼22 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂21 = 𝐼41 𝐾11 + 𝐼42 𝐾12 + 𝐼51 𝐾21 + 𝐼52 𝐾22 + 𝑏𝑖𝑎𝑠 𝑂11 𝑂12 𝑂21 𝑂22 𝑂23 = 𝐼44 𝐾11 + 𝐼45 𝐾12 + 𝐼54 𝐾21 + 𝐼55 𝐾22 + 𝑏𝑖𝑎𝑠 Output size = (input size - filter size) / stride + 1 * output size가 소수가 되면 사용할 수 X
  • 23. 9.1* Padding input convolution layer detector layer pooling layer next layer ... 0 0 0 0 0 0 0 0 𝐼11 𝐼12 𝐼13 𝐼14 𝐼15 0 0 𝐼21 𝐼22 𝐼23 𝐼24 𝐼25 0 0 𝐼31 𝐼32 𝐼33 𝐼34 𝐼35 0 0 𝐼41 𝐼42 𝐼43 𝐼44 𝐼45 0 0 𝐼51 𝐼52 𝐼53 𝐼54 𝐼55 0 0 0 0 0 0 0 0 ex) filter size = 2, stride=1 Image data의 테두리를 특정 값으로 채워주는 것 (특정 값 = 0 : zero padding) WHY? - output이 과도하게 작아지는 것을 방지 - 테두리 부분이라는 것을 알고리즘에게 알려주고자 함 => Output size = (input size - filter size) / stride + 1 = ((5 + 2*1) - 2) + 1 = 6 > 4(without padding) Output size = (input size - filter size) / stride + 1 * output size가 소수가 되면 사용할 수 X Output size (padding을 고려한) = (input size + 2*padding size- filter size) / stride + 1 * output size가 소수가 되면 사용할 수 X
  • 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
  • 35. 9.6 Structured Outputs “하나의 label을 예측하거나 회귀에서 하나의 실수값을 예측하는 대신, 어떤 고차원 구조적 객체를 출력하게 만들 수도 있다”
  • 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) 주목 메커니즘 : 눈에 띄는 주요 부분만 단시간에 파악 - 다른 감각과의 통합 - 물체 사이의 관계 파악해서 장면 전체 이해 - 단순/복합세포의 구분 실제로는 없을 수도 있음
  • 41. 9.11 Convolutional Networks and the History of Deep Learning
  • 42. 9.11 Convolutional Networks and the History of Deep Learning https://www.youtube.com/watch?v=4eIBisqx9_g
  • 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가 특수 화

Editor's Notes

  • #3: 고양이에게 막대가 돌아가는 영상을 보여줌
  • #4: 고양이에게 막대가 돌아가는 영상을 보여줌
  • #5: 고양이에게 막대가 돌아가는 영상을 보여줌
  • #9: 같은 위치에 떨어지는 것이라도 다른 방식으로 떨어질 수 있음
  • #40: 고양이에게 막대가 돌아가는 영상을 보여줌
  • #41: 고양이에게 막대가 돌아가는 영상을 보여줌