Artificial Intelligence

[A.I] Learning ( 학습 )

앞선 글에서 https://withseungryu.tistory.com/109?category=894604

 

[A.I] Learning - Gradient descent learning ( 경사 하강법)

🧐 Gradient Descent Learning 이란? Input을 넣었을 때 우리가 원하는 Output을 얻기 위해서는 그에 맞는 함수를 찾아야 한다. 알맞은 Output이 나오도록 하는 F(x)를 찾기 위해서 우리는 컴퓨터에 학습(Learnin

withseungryu.tistory.com

우리가 원하는 Target값과 실제 퍼셉트론을 거쳐서 나오는 Output값의 차이인 에러를 최소화하기 위해

각 가중치들의 편미분을 통해 Error값이 최소가 나올 수 있도록 가중치를 조절해야한다고 했다.

 

💡 이 때 어떻게 간편하게 각 가중치들로 Error를 편미분하여 가중치의 변화를 구할 수 있을까?

이 때 편미분을 아래와 같이 표현할 수 있다.

이렇게 보면 더 쉽게 접근 할 수 있다.

 

하나씩 구해주면

이렇게 되므로 에러를 각 가중치로 편미분해준 값은 아래로 나타낼 수 있다.

 이 값으로 경사하강법을 통해 기울기에 반대방향으로 가중치를 변화시키면 된다.

 

이때 기울기에 반대방향으로의 변화를 위해 Learning rate라는 상수(Constant)를 곱해주자

Learning rate가 너무 크면 최솟값을 지나 예측할 수 없는 곳으로 갈 것이고,

너무 작으면 많은 계산이 필요해 시간이 오래 걸릴 것이다. 

 

따라서 적절한 Learning rate를 결정하는 것도 중요하다.

 

이제 Perceptron training algorithm을 통해 학습을 시켜주면 된다.

 

💡 Perceptron training algorithm이란?

 

각 training data 실행시킬때 마다 나온 에러에 대해 가중치를 변화시키는 것을 말한다.

  1. 각 Training data (x, t)을 넣고 결과값이 나오도록 계산한다,
  2. 결과값과 원하는 결과값을 비교해 Error를 계산한다.
  3. Error와 각 가중치들을 편미분해서 가중치의 변화 수치를 구한다.
  4. Error가 최소가 나올 수 있도록 가중치들을 변화 수치에 맞게 조정한다.
  5. 기대한 Error에 만족하면 그만하고, 만족하지 않다면 갖고 있는 Training data를 반복해서 다시 돌린다.

 

 

궁금하신 것이 있으시면 언제든지 댓글 달아주세요!

반응형