본문 바로가기

ComputerScience/Machine Learning

AI - 11. Multilayer Perceptron

728x90

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가 나온다.

728x90
반응형