앞선 글에서 https://withseungryu.tistory.com/109?category=894604
우리가 원하는 Target값과 실제 퍼셉트론을 거쳐서 나오는 Output값의 차이인 에러를 최소화하기 위해
각 가중치들의 편미분을 통해 Error값이 최소가 나올 수 있도록 가중치를 조절해야한다고 했다.
💡 이 때 어떻게 간편하게 각 가중치들로 Error를 편미분하여 가중치의 변화를 구할 수 있을까?
이 때 편미분을 아래와 같이 표현할 수 있다.
이렇게 보면 더 쉽게 접근 할 수 있다.
하나씩 구해주면
이렇게 되므로 에러를 각 가중치로 편미분해준 값은 아래로 나타낼 수 있다.
이 값으로 경사하강법을 통해 기울기에 반대방향으로 가중치를 변화시키면 된다.
이때 기울기에 반대방향으로의 변화를 위해 Learning rate라는 상수(Constant)를 곱해주자
Learning rate가 너무 크면 최솟값을 지나 예측할 수 없는 곳으로 갈 것이고,
너무 작으면 많은 계산이 필요해 시간이 오래 걸릴 것이다.
따라서 적절한 Learning rate를 결정하는 것도 중요하다.
이제 Perceptron training algorithm을 통해 학습을 시켜주면 된다.
💡 Perceptron training algorithm이란?
각 training data 실행시킬때 마다 나온 에러에 대해 가중치를 변화시키는 것을 말한다.
- 각 Training data (x, t)을 넣고 결과값이 나오도록 계산한다,
- 결과값과 원하는 결과값을 비교해 Error를 계산한다.
- Error와 각 가중치들을 편미분해서 가중치의 변화 수치를 구한다.
- Error가 최소가 나올 수 있도록 가중치들을 변화 수치에 맞게 조정한다.
- 기대한 Error에 만족하면 그만하고, 만족하지 않다면 갖고 있는 Training data를 반복해서 다시 돌린다.
궁금하신 것이 있으시면 언제든지 댓글 달아주세요!
반응형
'Artificial Intelligence' 카테고리의 다른 글
[A.I] Learning - Gradient descent learning ( 경사 하강법) (0) | 2020.09.17 |
---|---|
[A.I] Non-linear Problem을 Linear Problem으로 바꿔주기 (0) | 2020.09.14 |