2025 학부 인턴/CV

CNN 학습

dbwls-log 2025. 12. 15. 14:54

end-to-end learning : 통째 학습 

특징 학습과 분류기 학습을 한꺼번에 진행한다. 

즉, 입력에서 출력까지 하나의 학습 과정으로 이루어진다는 것이다. 

 

중간 단계의 명시적 특징 추출 없이 네트워크가 입력 > 처리 > 출력을 자동으로 학습한다. 

 

전처리 없이 이미지가 모델에 바로 입력되고, 모델이 필요한 모든 특징을 학습한다. 

사람의 개입 없이 모델이 최적의 특징을 추출한다. 

 

학습 알고리즘 

MLP와 비슷한 역전파 학습 알고리즘을 사용한다. 

컨볼루션층의 커널 화소와 완전 연결층의 에지가 가중치에 해당하고, 풀링층은 가중치를 가지고 있지 않는다. 

 

층이 깊어 MLP가 사용하는 오류 역전파 알고리즘만 가지고는 학습이 불가능하다. 

 

 

기존의 역전파를 CNN에 적용하면 발생하는 문제점 및 해결책 

1. 기울기 소실 문제 

층이 깊어질수록 기울기가 소실되어 가중치 업데이트가 어려워진다.

특히 시그모이드나 Tanh 같은 활성함수를 사용하는 경우 더 많이 발생한다. 

 

이는 ReLU나 He 가중치 초기화로 해결가능하다. 

 

 

2. 지역 수용야 학습 최적화 문제 

CNN은 MLP와 달리 모든 노드가 연결된 것이 아니라, 지역적인 필터만 적용되기 때문에 역전파 시 필터가 학습하는 범위가 제한된다.

단순한 Conv만으로는 멀리 떨어진 특징 간의 상호작용을 학습하기 어렵다. 

 

이는 Pooling Layer를 추가하여 지역적 정보를 압축하면서 중요한 특징은 남기는 방법을 사용하거나, Skip Connections (Residual Network)를 사용하여 깊은 신경망에서도 지역 수용야가 사라지지 않도록 이전 출력을 그대로 전달하는 방식으로 해결할 수 있다. 

 

 

3. Stride와 Padding에 따른 정보 손실 문제 

Conv 연산에서 stride가 2 이상이 되면 중간 정보가 사라지게 된다.

패딩이 없으면 이미지의 가장자리 정보가 Conv를 거치며 점점 사라진다. 

 

이는 zero-padding 을 사용하여 크기를 유지하고 경계 정보가 보존되도록하거나, Stride를 조절하여 지나치게 많은 정보를 손실하지 않도록 조정하여 해결할 수 있다. 

 

 

4. 연산량, 메모리 사용 증가 문제 

CNN의 각 필터는 이미지의 모든 위치에 대해 연산을 수행하므로 계산량이 매우 커진다. 

Layer가 깊어질수록 연산량은 지수적으로 증가한다. 

 

이는 가중치 공유를 사용하여 메모리 사용량을 감소시키거나, Pooling을 통한 다운 샘플링으로 특징맵의 크기를 줄이고 연산량을 감소시키는 방식으로 해결할 수 있다.

 

 

5. FC Layer의 과도한 파라미터 수 

CNN의 마지막 단계는 FC Layer로 이루어지는데, 파라미터 수가 매우 많아지게 된다. 

Conv 에서 가중치 공유를 통해 파라미터를 줄여도, FC Layer에서 모든 뉴런이 서로 연결되기 때문에 파라미터 수가 급격하게 증가할 수 밖에 없다. 

 

이는 GAP를 사용하여 마지막 특징맵을 Flatten 하지 않고 평균을 내어 크기를 줄이거나, Dropout을 사용하여 일부 노드를 임의로 학습하지 않게 하여 과적합을 방지하고 학습 파라미터를 줄이는 방식으로 해결할 수 있다. 

 

 

CNN의 Backpropagation 

Forward Propagation

Conv > ReLU > Pooling > FC > Softmax 

 

Backward Propagation

Loss > FC > Pooling > Conv

Chain Rule을 사용하여 기울기를 역전파한다. 

 

 

 

'2025 학부 인턴 > CV' 카테고리의 다른 글

전이학습 : Transfer Learning  (1) 2025.12.16
개선된 딥러닝 학습 알고리즘  (1) 2025.12.15
CNN의 구조  (0) 2025.12.15
CNN 등장 배경  (0) 2025.12.15
옵티마이저 : Optimizer  (0) 2025.12.15