1. Multilayer Perceptron
- 입력, 출력층 사이에 은닉된 여러 레이어가 존재하는 신경망이다.
- MLP의 학습은 순방향 전파와 역방향 전파로 이루어진다.
- 입력층으로 들어온 input을 순방향으로 전파하면서 결과를 내보내고 그 결과로부터 오차를 구해서 입력층까지 역전파하며 (오차를 줄이는 방향으로)가중치들을 갱신한다.
2. 순방향 전파 forward propagation
- 입력값과 가중치의 곱들을 더하고 활성화 함수를 거친 값을 내보낸다.
3. 손실함수 loss function
- 실제 출력값과 원하는 결과의 오차를 계산하는 함수이다.
- 다양한 방법으로 정의할 수 있다.
- 아래 예시에서 제곱을 하는 이유는 오차는 음수가 될 수 있기 때문에 합을 구할때 오차가 상쇄될 수 있다. 따라서 오차 크기만을 고려하기 위해 제곱을 했다.
- 결국 우리는 loss가 가장 작아지도록 하는 모델을 원한다. 즉 학습은 loss함수의 최소값을 찾는 문제로 변환이 가능하다.
4. 경사하강법 gradient descent
- 손실함수의 최소값을 찾아가는 방법이다.
- 현재 위치의 gradient(기울기)를 구해서 그 반대 방향으로 이동한다. 뒤에서 더 자세히 알아보자.
- 그래프의 최소를 향해 옮겨가면서 네트워크의 w들을 갱신한다. 이게 가능하려면 loss function은 weight에 관한 함수로 만들어져야 한다.
5. 역전파 알고리즘 backward propagration
- 경사하강이 이루어지도록 하는 역전파 알고리즘을 알아보자.
- 손실함수는 w에 관한 식으로 나타낼 수 있고 gradient descent마다 가중치를 갱신한다.
- 기존 가중치에 E를 w로 미분한 기울기의 반대 방향을 더해주고 그 앞에 붙은 상수는 learning rate로 이동하는 폭을 결정한다. 이렇게 새로운 w가 만들어진다.
- 실제로 손실함수는 ti와 oi로 구성되기 때문에 바로 w로 미분할수가 없다.
- 이때 chain rule을 사용해서 loss의 w에 대한 미분값을 구한다.
1. 평가함수를 출력에 대한 값으로 미분
2, 3. 각 출력을 이전 layer에 대해서 미분
- 출력 o = wx + b인데 이를 w에 대해 미분하면 x가 나온다.
'ComputerScience > Machine Learning' 카테고리의 다른 글
AI - 13. Convolutional Neural Network (0) | 2021.12.10 |
---|---|
AI - 12. Deep Learning에서 발생하는 여러 문제들 (0) | 2021.12.04 |
AI - 10. Perceptron (0) | 2021.11.18 |
AI - 9. kNN, Gaussian Mixture (0) | 2021.11.11 |
AI - 8. Linear Regression (0) | 2021.11.08 |