본문 바로가기
인공지능

[인공지능개론] CNN②

by 반달링 2024. 5. 8.

CNN의 학습 과정을 정리하면, 입력 이미지를 추출하고 싶은 특징에 맞는 filter들을 convolution하여 추출한 feature map 중 중요한 정보를 선택하고 차원을 축소하는 pooling 과정을 거쳐 non-linear function인 ReLU에 넣어준다. 이를 반복하여 최종적으로 hidden layer가 1개 이상인 MLP를 fully-connected하여 DNN에 입력으로 대입하여 classification을 수행한다. 즉, CNN은 feature map을 형성하여 입력을 공급해주는 역할만 한다.

CNN의 주요 특징들을 정리해보자. 

1. parameter sharing: filter 모양(값)은 전체 이미지에 대해 고정되어 있으므로 parameter가 동일하다. ($\rightarrow$ inductive bias)

2. locality: convolution 연산을 지역적으로 수행한다. 특정 pixel과 연관이 있는, 가까운 pixel에 대해서만 계산하고 먼 pixel과는 계산하지 않는다. ($\rightarrow$ local invarince)

3. pooling: 공간적 변화에 크게 영향을 받지 않으면서 데이터의 공간적 크기를 축소한다.

대표적인 CNN 구조: ResNet

기존의 network(LeNet)은 입력을 받아 일련의 과정을 거쳐 출력하는 단순한 방식이었다면, ResNet은 Residual(나머지) 즉, 입력과 출력의 차이만을 학습하는 방식이다. 

앞서 학습한 정보 x는 그대로 가져오고 나머지 부분을 F(x)라고 나타내면 끝단은 H(x) = F(x) + x 라고 나타낼 수 있고 해당 layer에서는 F(x) = H(x) - x 만 학습하면 되는 것이다. Plaint net와 비교하면 전체 H(x)를 학습하지 않고 그의 일부인 F(x)를 학습하므로 학습난이도가 낮아진다. 또한, Forward Path에서 l번째 layer(이전 layer)와 L번째 layer(이후 layer)의 관계를 $x_L = x_l + \sum_{i=1}^{L-1}F(x_i)$로 나타낸다면, Backward Path에서는 $\frac{\partial E}{\partial x_l}=\frac{\partial E}{\partial x_L}(1+\frac{\partial}{\partial x_l}\sum^{L-1}_{i=1}F(x_i))$로 나타낼 수 있다. gradient가 그대로 내려가는 것을 볼 수 있다. 이처럼 layer는 깊어지지만 그 전의 값을 더해줌으로써 깊지 않은 것처럼 gradient를 보존할 수 있어 vanishing gradient problem을 해결할 수 있다.

[출처] 한양대학교 장준혁 교수님 인공지능개론 수업

'인공지능' 카테고리의 다른 글

[인공지능개론] RNN①  (1) 2024.07.11
[인공지능개론] CNN③  (0) 2024.07.11
[인공지능개론] CNN①  (0) 2024.05.08
[인공지능개론] Regularization  (0) 2024.05.08
[인공지능개론] Neural Networks②  (0) 2024.05.08

댓글