SlideShare uma empresa Scribd logo
1 de 47
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가 특수
화

Mais conteúdo relacionado

Mais procurados

RLCode와 A3C 쉽고 깊게 이해하기
RLCode와 A3C 쉽고 깊게 이해하기RLCode와 A3C 쉽고 깊게 이해하기
RLCode와 A3C 쉽고 깊게 이해하기Woong won Lee
 
Convolution 종류 설명
Convolution 종류 설명Convolution 종류 설명
Convolution 종류 설명홍배 김
 
딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초Hyungsoo Ryoo
 
Convolutional Neural Network (CNN) presentation from theory to code in Theano
Convolutional Neural Network (CNN) presentation from theory to code in TheanoConvolutional Neural Network (CNN) presentation from theory to code in Theano
Convolutional Neural Network (CNN) presentation from theory to code in TheanoSeongwon Hwang
 
인공신경망
인공신경망인공신경망
인공신경망종열 현
 
파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기Yong Joon Moon
 
딥러닝의 기본
딥러닝의 기본딥러닝의 기본
딥러닝의 기본deepseaswjh
 
GAN - Generative Adversarial Nets
GAN - Generative Adversarial NetsGAN - Generative Adversarial Nets
GAN - Generative Adversarial NetsKyeongUkJang
 
오토인코더의 모든 것
오토인코더의 모든 것오토인코더의 모든 것
오토인코더의 모든 것NAVER Engineering
 
Image Classification using deep learning
Image Classification using deep learning Image Classification using deep learning
Image Classification using deep learning Asma-AH
 
Deep Belief Networks
Deep Belief NetworksDeep Belief Networks
Deep Belief NetworksHasan H Topcu
 
Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명홍배 김
 
인공지능 논문작성과 심사에관한요령
인공지능 논문작성과 심사에관한요령인공지능 논문작성과 심사에관한요령
인공지능 논문작성과 심사에관한요령Namkug Kim
 
Introduction to Recurrent Neural Network
Introduction to Recurrent Neural NetworkIntroduction to Recurrent Neural Network
Introduction to Recurrent Neural NetworkKnoldus Inc.
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree AlgorithmMerry Merry
 
Convolutional neural network from VGG to DenseNet
Convolutional neural network from VGG to DenseNetConvolutional neural network from VGG to DenseNet
Convolutional neural network from VGG to DenseNetSungminYou
 
[IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현
[IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현[IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현
[IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현강 민우
 

Mais procurados (20)

RLCode와 A3C 쉽고 깊게 이해하기
RLCode와 A3C 쉽고 깊게 이해하기RLCode와 A3C 쉽고 깊게 이해하기
RLCode와 A3C 쉽고 깊게 이해하기
 
Convolution 종류 설명
Convolution 종류 설명Convolution 종류 설명
Convolution 종류 설명
 
딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초
 
Convolutional Neural Network (CNN) presentation from theory to code in Theano
Convolutional Neural Network (CNN) presentation from theory to code in TheanoConvolutional Neural Network (CNN) presentation from theory to code in Theano
Convolutional Neural Network (CNN) presentation from theory to code in Theano
 
인공신경망
인공신경망인공신경망
인공신경망
 
파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기
 
딥러닝의 기본
딥러닝의 기본딥러닝의 기본
딥러닝의 기본
 
GAN - Generative Adversarial Nets
GAN - Generative Adversarial NetsGAN - Generative Adversarial Nets
GAN - Generative Adversarial Nets
 
Generalized Reinforcement Learning
Generalized Reinforcement LearningGeneralized Reinforcement Learning
Generalized Reinforcement Learning
 
오토인코더의 모든 것
오토인코더의 모든 것오토인코더의 모든 것
오토인코더의 모든 것
 
Image Classification using deep learning
Image Classification using deep learning Image Classification using deep learning
Image Classification using deep learning
 
Deep Belief Networks
Deep Belief NetworksDeep Belief Networks
Deep Belief Networks
 
Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명
 
인공지능 논문작성과 심사에관한요령
인공지능 논문작성과 심사에관한요령인공지능 논문작성과 심사에관한요령
인공지능 논문작성과 심사에관한요령
 
PRML5
PRML5PRML5
PRML5
 
Introduction to Recurrent Neural Network
Introduction to Recurrent Neural NetworkIntroduction to Recurrent Neural Network
Introduction to Recurrent Neural Network
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree Algorithm
 
Convolutional neural network from VGG to DenseNet
Convolutional neural network from VGG to DenseNetConvolutional neural network from VGG to DenseNet
Convolutional neural network from VGG to DenseNet
 
[IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현
[IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현[IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현
[IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현
 
Vgg
VggVgg
Vgg
 

Semelhante a Chapter 9 - convolutional networks

Cnn 발표자료
Cnn 발표자료Cnn 발표자료
Cnn 발표자료종현 최
 
03.12 cnn backpropagation
03.12 cnn backpropagation03.12 cnn backpropagation
03.12 cnn backpropagationDea-hwan Ki
 
Convolutional neural networks
Convolutional neural networksConvolutional neural networks
Convolutional neural networksHyunjinBae3
 
Neural network (perceptron)
Neural network (perceptron)Neural network (perceptron)
Neural network (perceptron)Jeonghun Yoon
 
4.convolutional neural networks
4.convolutional neural networks4.convolutional neural networks
4.convolutional neural networksHaesun Park
 
딥러닝-오차역전파법2
딥러닝-오차역전파법2딥러닝-오차역전파법2
딥러닝-오차역전파법2jdo
 
[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field
[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field
[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field종빈 오
 
제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현민웅 이
 
Seed2016 - 개미수열 한주영 (annotated)
Seed2016 - 개미수열 한주영 (annotated)Seed2016 - 개미수열 한주영 (annotated)
Seed2016 - 개미수열 한주영 (annotated)Jooyung Han
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1jdo
 
인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝Jinwon Lee
 
해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3Haesun Park
 
Rnn개념정리
Rnn개념정리Rnn개념정리
Rnn개념정리종현 최
 
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05HyeonSeok Choi
 
Rendering realistic Ice objects
Rendering realistic Ice objectsRendering realistic Ice objects
Rendering realistic Ice objectsyong gyun im
 

Semelhante a Chapter 9 - convolutional networks (20)

Dl from scratch(7)
Dl from scratch(7)Dl from scratch(7)
Dl from scratch(7)
 
Cnn 발표자료
Cnn 발표자료Cnn 발표자료
Cnn 발표자료
 
03.12 cnn backpropagation
03.12 cnn backpropagation03.12 cnn backpropagation
03.12 cnn backpropagation
 
Convolutional neural networks
Convolutional neural networksConvolutional neural networks
Convolutional neural networks
 
Cnn 강의
Cnn 강의Cnn 강의
Cnn 강의
 
Neural network (perceptron)
Neural network (perceptron)Neural network (perceptron)
Neural network (perceptron)
 
HistoryOfCNN
HistoryOfCNNHistoryOfCNN
HistoryOfCNN
 
CNN
CNNCNN
CNN
 
4.convolutional neural networks
4.convolutional neural networks4.convolutional neural networks
4.convolutional neural networks
 
딥러닝-오차역전파법2
딥러닝-오차역전파법2딥러닝-오차역전파법2
딥러닝-오차역전파법2
 
[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field
[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field
[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field
 
제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현
 
Seed2016 - 개미수열 한주영 (annotated)
Seed2016 - 개미수열 한주영 (annotated)Seed2016 - 개미수열 한주영 (annotated)
Seed2016 - 개미수열 한주영 (annotated)
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
 
인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝
 
Convolutional rnn
Convolutional rnnConvolutional rnn
Convolutional rnn
 
해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3
 
Rnn개념정리
Rnn개념정리Rnn개념정리
Rnn개념정리
 
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05
 
Rendering realistic Ice objects
Rendering realistic Ice objectsRendering realistic Ice objects
Rendering realistic Ice objects
 

Mais de KyeongUkJang

Photo wake up - 3d character animation from a single photo
Photo wake up - 3d character animation from a single photoPhoto wake up - 3d character animation from a single photo
Photo wake up - 3d character animation from a single photoKyeongUkJang
 
Distilling the knowledge in a neural network
Distilling the knowledge in a neural networkDistilling the knowledge in a neural network
Distilling the knowledge in a neural networkKyeongUkJang
 
Latent Dirichlet Allocation
Latent Dirichlet AllocationLatent Dirichlet Allocation
Latent Dirichlet AllocationKyeongUkJang
 
Gaussian Mixture Model
Gaussian Mixture ModelGaussian Mixture Model
Gaussian Mixture ModelKyeongUkJang
 
CNN for sentence classification
CNN for sentence classificationCNN for sentence classification
CNN for sentence classificationKyeongUkJang
 
Visualizing data using t-SNE
Visualizing data using t-SNEVisualizing data using t-SNE
Visualizing data using t-SNEKyeongUkJang
 
Playing atari with deep reinforcement learning
Playing atari with deep reinforcement learningPlaying atari with deep reinforcement learning
Playing atari with deep reinforcement learningKyeongUkJang
 
Chapter 20 Deep generative models
Chapter 20 Deep generative modelsChapter 20 Deep generative models
Chapter 20 Deep generative modelsKyeongUkJang
 
Chapter 19 Variational Inference
Chapter 19 Variational InferenceChapter 19 Variational Inference
Chapter 19 Variational InferenceKyeongUkJang
 
Natural Language Processing(NLP) - basic 2
Natural Language Processing(NLP) - basic 2Natural Language Processing(NLP) - basic 2
Natural Language Processing(NLP) - basic 2KyeongUkJang
 
Natural Language Processing(NLP) - Basic
Natural Language Processing(NLP) - BasicNatural Language Processing(NLP) - Basic
Natural Language Processing(NLP) - BasicKyeongUkJang
 
Chapter 17 monte carlo methods
Chapter 17 monte carlo methodsChapter 17 monte carlo methods
Chapter 17 monte carlo methodsKyeongUkJang
 
Chapter 16 structured probabilistic models for deep learning - 2
Chapter 16 structured probabilistic models for deep learning - 2Chapter 16 structured probabilistic models for deep learning - 2
Chapter 16 structured probabilistic models for deep learning - 2KyeongUkJang
 
Chapter 16 structured probabilistic models for deep learning - 1
Chapter 16 structured probabilistic models for deep learning - 1Chapter 16 structured probabilistic models for deep learning - 1
Chapter 16 structured probabilistic models for deep learning - 1KyeongUkJang
 
Chapter 15 Representation learning - 2
Chapter 15 Representation learning - 2Chapter 15 Representation learning - 2
Chapter 15 Representation learning - 2KyeongUkJang
 

Mais de KyeongUkJang (20)

Photo wake up - 3d character animation from a single photo
Photo wake up - 3d character animation from a single photoPhoto wake up - 3d character animation from a single photo
Photo wake up - 3d character animation from a single photo
 
YOLO
YOLOYOLO
YOLO
 
AlphagoZero
AlphagoZeroAlphagoZero
AlphagoZero
 
GoogLenet
GoogLenetGoogLenet
GoogLenet
 
Distilling the knowledge in a neural network
Distilling the knowledge in a neural networkDistilling the knowledge in a neural network
Distilling the knowledge in a neural network
 
Latent Dirichlet Allocation
Latent Dirichlet AllocationLatent Dirichlet Allocation
Latent Dirichlet Allocation
 
Gaussian Mixture Model
Gaussian Mixture ModelGaussian Mixture Model
Gaussian Mixture Model
 
CNN for sentence classification
CNN for sentence classificationCNN for sentence classification
CNN for sentence classification
 
Visualizing data using t-SNE
Visualizing data using t-SNEVisualizing data using t-SNE
Visualizing data using t-SNE
 
Playing atari with deep reinforcement learning
Playing atari with deep reinforcement learningPlaying atari with deep reinforcement learning
Playing atari with deep reinforcement learning
 
Chapter 20 - GAN
Chapter 20 - GANChapter 20 - GAN
Chapter 20 - GAN
 
Chapter 20 - VAE
Chapter 20 - VAEChapter 20 - VAE
Chapter 20 - VAE
 
Chapter 20 Deep generative models
Chapter 20 Deep generative modelsChapter 20 Deep generative models
Chapter 20 Deep generative models
 
Chapter 19 Variational Inference
Chapter 19 Variational InferenceChapter 19 Variational Inference
Chapter 19 Variational Inference
 
Natural Language Processing(NLP) - basic 2
Natural Language Processing(NLP) - basic 2Natural Language Processing(NLP) - basic 2
Natural Language Processing(NLP) - basic 2
 
Natural Language Processing(NLP) - Basic
Natural Language Processing(NLP) - BasicNatural Language Processing(NLP) - Basic
Natural Language Processing(NLP) - Basic
 
Chapter 17 monte carlo methods
Chapter 17 monte carlo methodsChapter 17 monte carlo methods
Chapter 17 monte carlo methods
 
Chapter 16 structured probabilistic models for deep learning - 2
Chapter 16 structured probabilistic models for deep learning - 2Chapter 16 structured probabilistic models for deep learning - 2
Chapter 16 structured probabilistic models for deep learning - 2
 
Chapter 16 structured probabilistic models for deep learning - 1
Chapter 16 structured probabilistic models for deep learning - 1Chapter 16 structured probabilistic models for deep learning - 1
Chapter 16 structured probabilistic models for deep learning - 1
 
Chapter 15 Representation learning - 2
Chapter 15 Representation learning - 2Chapter 15 Representation learning - 2
Chapter 15 Representation learning - 2
 

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가 특수 화

Notas do Editor

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