신경망에서 학습이란 perceptron에서 적절한 weight를 찾는 것이라고 했었죠!
관련 내용은 전 포스팅을 통해 확인하실 수 있습니다!
2022.07.14 - [Study/DeepLearning] - ANN : Artificial Neural Network
ANN : Artificial Neural Network
본 포스팅은 패스트캠퍼스 강의를 들으면서 공부한 내용을 정리하기 위해 작성되었습니다. # 인공 신경망이란? 사람의 뇌 속 뉴런의 작용을 모방해 패턴을 구성한 컴퓨팅 시스템의 일종입니다.
sonzwon.tistory.com
그렇다면, 초기 weight는 어떻게 설정할까요?
# weight 초기값 설정
초기 weight는 랜덤한 값을 넣고 시작합니다. 이것을 Random initialization이라고 하는데 대부분 정규분포에서 샘플링하여 평균이 0이 되도록하는 값을 넣습니다. 이렇게 랜덤한 값을 넣은 다음, 입력값을 넣고 예측이 얼마나 잘했는 지 못했는 지 평가를 하면서 weight를 바꾸어 나가는 것이 학습이 되는 것입니다.
# Loss Function
loss function은 예측을 평가하는 척도로, 예측이 얼마나 못했는지를 평가하는 척도 입니다.
loss function을 평가하는 방법 중에 많이 쓰는 방법 중 하나는, (Neural Network의 출력값과 실제 정답의 차이)를 제곱해주는 것입니다.
우리는 이 loss 값이 줄어들도록 weight값을 바꿔나가야 겠죠?
이떄, 미분을 활용합니다. 미분은 두 변수 사이 관계 그래프에서 함점에서의 접선기울기를 구하는 것입니다. 즉 weight와 loss의 그래프를 그렸을 때, weight초기 값에서 기울기를 구해 weight를 어떤 방향으로 얼만큼 바꿀것인지 알 수 있게 됩니다.

그림에서와 같이, 접선의 기울기가 음수일 때, weight를 왼쪽으로 움직이면 loss가 커집니다. 우리는 loss를 줄여야하니까 미분값이 갈리키는 방향의 반대방향으로 조금씩 움직여야 합니다!
# gredient decent
이렇게 미분을 이용해서 weight를 업데이트하는 것을 gredient decent라고 합니다.
w(new) = w(old) - η▽wL
weight decent = w(new) - w(old) = - η▽wL

Loss값은 아래 그림과 같은 원리로 구해집니다.

이렇게 loss값을 구했는데, weigh를 업데이트를 하기위해서는 ∂L / ∂w를 구해야 하는 데 계산이 굉장히 복잡하고 어렵습니다.
그래서 사용하는 방법이 back propagation입니다
# back propagation
back propation이란? loss부터 거꾸로 한 단계씩 미분 값을 구하고, 이 값들을 chain rule에 의해 곱해가면서 weight에 대한 gredient를 구하는 것입니다. 식으로 나타내면, 아래와 같이 계산 됩니다.

이 과정들을 반복하여 최적의 weight를 찾아가는 것입니다~!
'AI > Deep Learning' 카테고리의 다른 글
activation function (활성화함수) (0) | 2022.10.20 |
---|---|
Gradient Vanishing & Exploding (기울기 소실과 폭주) (0) | 2022.10.18 |
ANN (Artificial Neural Network, 인공신경망) (0) | 2022.07.14 |
딥러닝을 위한 Data (0) | 2022.07.08 |
딥러닝과 인공지능에 대한 이해 (0) | 2022.07.08 |