(박형민 교수님의 자료와 수업을 통해 제작되었습니다.)
왼쪽 그림과 같이 input에 대해 각각의 weight를 갖고 convolution되어 activation값을 갖는다. activition function을 거친 값이 각 레이어의 출력값이 된다.
오른쪽 그림은 input과 output 사이에 2개의 layer가 존재하는데, 이를 hidden layer라 부른다. 보통 input layer를 제외하여 layer 수를 정하게 되며, 오른쪽 그림은 3-layer neural network이다.
input $x_1,\cdots,x_n$에 대해 각각 convolution해준 값이 net값이 되고, 다음과 같이 나타낸다.
$w_{j0]$은 bias를 의미하며, 원점에 항상 값이 존재하는 것을 막고자 존재한다.
convolution된 결과인 $net_j$값을 activation function을 취한 뒤의 값이 output으로 나오게 되는데, activation function을 f라 하면 다음과 같이 나타낼 수 있다.
위와 같은 방식으로 convolution 후, activation을 거치면 최종적으로 마지막 레이어의 output이 나오게 되며, 이 과정을 feedforward operation이라 한다. 다음과 같이 나타낼 수 있다.
위에서 보면 activation function이 linear하다면, layer 한개를 쓴것과 동일한 값을 얻을 것이다. 따라서 $f$는 non-linear function을 채택하게 된다.
위와 같이 각각 다른 함수의 모양을 띄게 되어야 최종 함수가 다양한 모양으로 나올 수 있게 되는 것이다. layer가 늘어날 수록 최종 함수의 모양의 다양성이 높아지겠지만, 이론적으로는 2layer만으로도 데이터가 충분하다면 어떠한 형태이든 구현할 수 있다. 이를 universal approximation theorem이라 한다.
우리는 input값과 그에 해당하는 레이블 값을 알고 있을 것이다. output으로 나온 label값과 실제 label값이 다른 경우 실제 label에 가까워지도록 설계해야 할 것이다. 그 차이에 해당하는 값이 위에 해당하는 값이라면 최솟값을 찾기 위해 위와 같은 미분을 진행해야 할 것이다. update하는 방식은 기울기의 역방향으로 크기는 기울기만큼 감소시켜 업데이트 시켜주는 것이다. 여기서 $\alpha$는 learning late로써 한번 업데이트 할 때 어느정도로 업데이트 할 것인지에 대한 상수값이다.
위와 같이 찾아나갈 수 있게 된다. 이를 3차원으로 늘리면 다음과 같다.
gradient descent의 종류는 크게 batch gradient desent, mini-batch gradient descent, stochastic gradient descent가 있다. 이는 각각 모든 데이터에 대해 조사하여 업데이트 하는 방법, 그 중 일부를 mini-batch로 하여 구하는 방법, 각 샘플 하나에 대해서 추가될 때마다 업데이트 하는 방법이 존재한다. batch gradient desent, mini-batch gradient descent, stochastic gradient descent순서대로 업데이트 하는 방향성이 정확하겠지만, batch gradient descent는 사이즈가 크기 때문에 mini-batch gradient descent를 선택하는 것이 일반적이다.
'Review > Artificial Intelligence' 카테고리의 다른 글
Backpropagation Algorithm(역전파) (0) | 2022.10.18 |
---|---|
XOR gate - Backpropagation (0) | 2022.10.18 |