머신러닝 & 딥러닝/이론
Gradient vanishing / exploding
1. Gradient vanishing / exploding 문제 딥러닝을 할 때 층을 여러 개 쌓아서 DNN 을 만든다. 학습을 위해 역전파를 할 때, gradient 를 사용해서 각 층의 parameter 를 업데이트 한다. 그런데 층이 깊어질수록, gradient 가 점점 사라지거나 폭발적으로 증가하는 문제가 발생할 수 있다. 이러면 당연히 학습이 제대로 진행되지 않는다. gradient 가 점점 사라지는 것을 gradient vanishing, gradient 가 점점 커지는 것을 gradient exploding 이라고 부른다. 이 문제를 해결하기 위해 여러 솔루션들이 제안 되었는데, 대표적으로 아래 4가지 방법이 사용된다. 1) 각 층에 특정한 초기화 적용 각 층에 사용하는 활성화 함수에 따라..
Convolution Layer
0. 개요 Neural Net 을 이루는 기본 layer 중 Convolution layer 에 대해 적어보려 한다. 구체적인 이론보다는, 혼자 독학하고 쉽게 이해한 내용을 바탕으로 기술하려고 한다. 틀린 내용이 있다면 차차 수정해 나가도록 하겠다. GIF 는 모두 다음 깃헙에서 가져왔다. (https://github.com/vdumoulin/conv_arithmetic) 1. 기본 개념 Convolution layer 는 주어진 입력에 대해 convolution 연산을 하는 layer 를 말한다. 1차원, 2차원, 3차원 입력이 주로 사용되고, 입력의 차원 수에 따라 conv1d, conv2d, conv3d 등으로 불리기도 한다. 위 그림은 2차원 입력에 대한 convolution layer 의 동작을..