1. 최적의 weight를 찾는다
아래 그림 처럼
인공신경망은 output 값을 얻기 위해서 weights 랜덤한 값을 계속 넣으면서 값을 찾습니다.
2. Neural Network 가 정답을 잘 찾고 있을까?
인공신경망이 얼마나 잘 하는지 혹은 얼마나 못하는지 척도가 필요합니다.
보통 인공신경망에서 얼마나 못하는지 척도를 이용 합니다.
흔히 사용하는 것이 Loss function / Cost function
많이 쓰는 방법은 인공신경망의 출력과 실제 정답과의 차이를 활용 합니다.
예시)
A, B 광고료에 따른 판매량을 측정하는 모델을 개발하고 있다고 할때,
예측 판매량 (100, 80)
실제 판매량 (105, 78)
Loss = (105 - 100)² + (78 - 80)² = 29
제곱을 하는 이유는 양수로 만들어주기 위해서 사용하며, 혹은 절대값을 사용해도 됩니다.
위의 예시처럼 Loss 값이 29 가 되는 것이며,
Loss 값이 줄어들도록 weight 값들을 조금씩 바꾸면서 정답을 찾는 것 입니다.
3. Weight를 어떻게 바꿔야 Loss Funtion 값이 줄어 들까?
정답을 찾기 위해 weight 를 줄여야 할지, 늘려야 할지 알 수 있는 방법은 없을까?
그 방법이 미분 입니다.
weight 와 loss 의 그림을 그려놓고,
w0 가 점선이라면, w0에 따른 미분을 하면, 그 점에서의 접선의 기울기가 나옵니다.
그렇다면 접선의 기울기가 의미하는 것이 무엇일까요?
w0 에서 미분값이 -2 라면, w를 w0에서 왼쪽 (-방향)으로 움직인다면 그 2 만큼 Loss값이 증가한다는 뜻
즉, Loss가 커지는 방향을 알려주는 값이다.
Loss를 w로 미분하고, 미분값이 가리키는 방향의 반대방향!!
으로 아주 조금씩, w를 바꿔나가면 Loss를 감소시킬 수 있다.
미분을 이용해서 Loss 값을 업데이트하는 것을 우리가 많이 들어본
'Gradient Descent' 라고 합니다.
4. Gradient Descent
Weight update를 간략하게 설명하면,
- (마이너스) 는 Loss를 감소시키는 방향
Learning Rate 는 쉽게 말하면 보폭이라고 생각하면 됩니다.
LR 은 아주 조금씩 이동해야 합니다. 이유는 미분값이라는 것이 어떤 특정부분의 근처 값이기 때문입니다.
다시 순서대로 생각해보자.
1. 좋은 weight를 찾는 것이 우리의 목표 입니다. 그래서 처음에는 랜덤한 값을 넣습니다.
2. 그리고 나서 데이터를 넣고 예측을 하게 됩니다.
3. 당연히 처음에는 예측을 못합니다.
4. 정답이랑 비교해서 얼마나 예측을 못했는지 Loss 라는 것으로 계산값을 얻습니다.
5. Loss를 계산 했는데, 엄청 못하는고만 ~ 이것을 알았습니다.
6. 덜 못하게 만들어야 하는데, 그러면 weight를 바꿔야 합니다.
7. 어떻게 바꿀꺼야? 미분을 해서 바꾼다. 위의 Weight update 처럼 "- * LR * G"
8. Wnew = Wold -*LR*G
위의 1 ~ 8번 과정이 아래 그림과 같습니다.
위의 식처럼 곱하고 더해서 마지막 a2 가 나옵니다.
마지막에는 activation function을 사용하지 않았습니다.
Loss는 아래와 같이 구할 수 있습니다.
Loss = (정답 - 예측값)²
Loss = (y - a2)²
우리는 Loss는 우선 구했고, weight 값을 줄이기 위해 미분값을 구해야 합니다.
w11를 update 하기 위해 필요한 미분값은 어떻게 구할까?
미분값을 구하기 위해서 'Chain Rule' 을 이용해서 w11 을 update 하기 위한 미분값을 얻을 수 있습니다.
w11 에 대한 미분 값을 구하면,
w11 이 어느 방향과 어느정도의 값으로 이동을 해야지 weight 값이 좋아진다는 값을 얻을 수 있습니다.
이런식으로 수십번, 수백번 반복하면서 최적을 값으로 도달하는 것 입니다.
'AI > 딥러닝' 카테고리의 다른 글
순환 신경망 (RNN) 이란? [2편] (0) | 2022.03.11 |
---|---|
순환 신경망 (RNN) 이란? [1편] (0) | 2022.03.11 |
Alex-net 란? [딥러닝] (0) | 2022.03.06 |
CNN의 구조 (LeNet - 5) (0) | 2022.02.24 |
1. 인공신경망 - ANN (Artifical Neural Network) 그리고 딥러닝 이란? (0) | 2022.02.20 |
댓글