간단 정리
CNN이란..
CNN은 Convolution Neural Network의 약자로, 합성곱 연산인 convolution 연산을 수행하는 인공신경망을 말한다.
CNN은 영상으로부터 feature를 추출하기 위해 여러 필터를 이용하여 convolution 연산을 수행한다.
자주 발생하는 문제들
CNN의 성능이 저해되는 결과는 과대적합(Over-fitting)과 과소적합(Under-fitting)이 있다.
과소 적합(Under-fitting)은 학습 데이터를 충분히 학습하지 못하여 검증 데이터 뿐만 아니라 학습 데이터에서조차 성능이 떨어지는 현상
과대 적합(Over-fitting)은 학습 데이터 풀에 지나치게 최적화되어 새로운 데이터에 대해서 성능이 성능이 떨어지는 현상으로, 학습 데이터가 적거나 학습해야 할 매개변수가 너무 많으면 과대 적합이 잘 일어나게 된다.
이를 개선하기 위해서 가중치 정규화(Weight Regularization), 배치 정규화(Batch Normalization), 드롭아웃(Dropout), 조기 종료(Early Stopping)등을 사용한다.
과적합을 방지하기 위한 방법들
가중치 정규화(Weight Regularization)은 학습 과정에서 노드 가중치에 대해 L1 norm, L2 norm의 penalty를 적용함으로써 노드들의 가중치 값이 균일하게 학습되도록 하는 방법이다. 가중치가 매우 크거나 작아서 특정 노드의 출력이 지배적인 영향을 끼치거나 아예 영향력이 없는 경우를 방지하는 목적인 것 같다.
배치 정규화 (Batch Normalization)는 training 과정에서 mini batch를 샘플링하여 학습을 실시하는 과정에서 사용되며, 네트워크에 입력하기 위해 샘플링한 mini-batch의 평균과 분산을 조정해주는 것이 정규화이다.
드롭 아웃(Drop-out)은 신경망의 노드를 일정 확률로 무작위적으로 제거해서 학습을 진행하는 방법이다.
조기 종료(Early Stopping)은 학습 데이터에 대해서 학습 량이 적으면 과소 적합, 필요 이상의 학습을 진행 할 경우 학습 데이터 풀에 대한 편향, 과대 적합이 발생할 수 있다. 따라서 학습을 진행하면서 충분히 작은 손실 값이 나오거나 일정 epoch 에 도달하면 학습을 종료한다.
라온피플 회사의 기술 블로그
전반적인 내용을 파악하기 좋은 것 같다.
https://m.blog.naver.com/laonple/220827359158
블로그 이름 보고 회사인 줄 알았다가 다시 본 개인 블로그의 포스팅이다.
텐서플로 2.0관련 책을 잘 정리하여 CNN 부분을 포스팅한 내용이다.
https://davinci-ai.tistory.com/29
Lee, S.H., Dropout on CNN
https://pod3275.github.io/paper/2019/05/31/Dropout.html
CNN에 사용된 Dropout 관련된, 파생된 기법들을 정리해두셨다.
세부적인 논문 리뷰는 위 블로그를 참고하면 좋다.
요약하면 다음과 같다.
Drop-Out(JMLR2014) : 노드를 일정 확률로 제거하는 전략
Drop-Connect(ICML2013) : 노드가 아닌 노드의 일부 가중치를 제거하는 전략, 노드 간 연결이 drop되는 형태
Drop-Path(ICLR2017) : FractalNet에 사용될 수 있는 방법으로, 변수가 계산되는 경로인 다양한 path 중 어떤 path의 가중치를 제거하는 전략
Drop-Block(NIPS2018) : CNN에서 사용하는 합성곱 연산은 window를 움직이면서 공간적으로 인접한 신호들에 대한 상관 관계에 필터를 적용하여 지역적(local) 특징을 추출한다. 그러나 Dropout의 경우, 이러한 지역적 특징을 추출하는 CNN의 특성을 고려하여 이미지 상에서의 인접 영역을 같이 drop 시키는 방법이다.
Drop-Filter(arXiv2018), SpartialDropout(CVPR2015) : 채널 간의 상관 관계가 존재하므로 채널 하나를 drop 시키는 전략이다. 그런데 채널을 날리는 것은 특징 추출에 영향이 크므로 ScaleFilter를 통해서 channel의 값을 scaling하자.
KDnugget
https://www.kdnuggets.com/2018/09/dropout-convolutional-networks.html
'RL' 카테고리의 다른 글
Policy Gradient Method (0) | 2021.08.29 |
---|---|
[HER] Hindsight Experience Replay 논문 리뷰 및 정리 <작성중> (0) | 2021.08.22 |
DDPG 계열 논문 정리 (0) | 2021.08.09 |
[PER] Prioritized Experience Replay 논문 리뷰 (0) | 2021.07.29 |
SARSA, Q-Learning, REINFORCE, AC (0) | 2021.07.27 |