딥러닝 모델의 학습 방법

·2021년 12월 12일
0

NIPA AI 교육

목록 보기
19/31

1. 딥러닝 모델이란

입력층과 출력층 사이 히든층이 많아진다면 깊은 신경망이라는 의미로 딥러닝이라는 단어 사용

2. 딥러닝 모델의 구성요소

보라색원형요소(각 층을 구성하는 요소) - Node/Unit
붉은색박스 - Layer(입력단, 출력단, 히든레이어)
연결하는 녹색선 - 가중치Weight(노드간의 연결강도)

3. 딥러닝 모델의 학습 방법

예측값과 실제값 간의 오차값을 최소화하기 위해 오차값을 최소화하는 모델의 인자를 찾는 알고리즘을 적용

Loss function을 최소화하는 가중치를 찾기 위해 최적화 알고리즘을 적용

4. 딥러닝 모델이 예측값 구하는 방식

순전파 (Forward propagation)
앞에서부터 하나씩 값을 구해서 다시 다음 퍼셉트론으로 입력해서 또 값을 구하면서 최종값을 구해가는 방식

활성화함수activation function 은 사실 한 종류가 아님. 지난 시간에 배운 step function 뿐 아니라 sigmodel, tanh
ReLU 등이 있음
모델에 따라 다양한 함수가 쓰임

5. 최적화방식 살펴보기

순전파를 사용하면 예측값과 실제값 간의 오차값을 구하여 Loss function(여기에도 다양한 함수 종류가 있음)을 구할 수 있음
그렇다면 어떻게 최적화를 해야할까?

=> 경사하강법(Gradient descent)을 사용

6. 경사하강법

가중치를 Loss function 값이 작아지는 방향으로 업데이트 하는 방법
가중치는 Gradient 값을 사용하여 업데이트를 수행함

Gradient 값은 각 가중치마다 정해지며,
역전파(Backpropogation)를 통하여 구할 수 있음

7. 역전파(Backpropogation)

Forward 순전파의 반대 방향으로 이루어지는 과정

각 가중치 w1, w2, w3마다 Grw1, Grw2, Grw3 등의 Gradient 값이 존재
다음 노드에 있는 Gradient값을 구한 다음 그 전 노드로 전달해줘야 계산이 가능.
즉 제일 끝에 있는 노드의 Gradient값부터 구해서 역으로 전파하면서 Gradient값들을 구해나가야함.
실질적인 계산법은 편미분을 확실히 알고 추가적으로 학습해야함.

8. 가중치 업데이트 과정

순전파를 해서 예측값을 구하고,
실제값과의 오차를 통해 Loss를 구하고,
역전파 방식으로 gradient값들을 구하여,
이것으로 가중치를 업데이트,
이를 반복하여 Loss function을 제일 작게 만드는 가중치를 구함

9. 딥러닝 모델의 학습방법 정리

딥러닝 모델의 학습순서
1. 학습용 feature 데이터를 입력하여 예측값 구하기 (순전파)
2. 예측값과 실제값 사이의 오차 구하기 (Loss 계산)
3. Loss를 줄일 수 있는 가중치 업데이트 하기 (역전파를 통해 Gradient 구해서 경사하강법으로 업데이트)

  1. 1~3번 반복으로 Loss를 최소로 하는 가중치 얻기

이 복잡한 과정을 텐서플로우나 파이토치 등을 이용해 할 수 있음.

profile
백엔드 개발자. 공동의 목표를 함께 이해한 상태에서 솔직하게 소통하며 일하는 게 가장 즐겁고 효율적이라고 믿는 사람.

0개의 댓글