코딩세상
[딥러닝 기초] 2장 텐서플로우와 딥러닝 학습 방법 - 딥러닝 모델의 학습 방법 본문
- 딥러닝 모델이란?
딥러닝 모델이란 앞서 1장에서 설명했던 것처럼 퍼셉트론을 여러개 쌓은 다층 퍼셉트론 중 히든 레이어의 개수가 3층 이상인 모델을 뜻합니다.
- 딥러닝 모델의 구성 요소
딥러닝 모델은 위 그림과 같이
- 노드간의 연결 강도를 나타내는 가중치(Weight)
- 각 층을 구성하는 요소인 Node/Unit
- 모델을 구성하는 층인 Layer
로 이루어져 있습니다. 각각에 대한 설명은 추후에 더 자세히 설명하겠습니다.
- 딥러닝 모델의 학습 방법
딥러닝 모델은 Loss function(손실 함수)의 값을 최소화 하기 위해 최적화(Optimization) 알고리즘을 적용합니다.
- 손실함수(Loss Function)과 최적화(Optimizer)
손실함수는 위 그림 중 왼쪽의 그래프와 같이 실제 값과 예측 값 사이의 오차값을 나타내는 함수입니다.
회귀 모델과 분류 모델에 따라 사용되는 손실함수가 서로 다르며 대표적으로 사용하는 손실함수에 대한 예는 아래와 같이 들 수 있습니다.
- 회귀
- MSE(Mean Square Error)
- RMSE(Root Mean Square Error)
- MAE(Mean Absolute Error)
- 분류
- entropy
- Cross entropy
- Binary Crossentropy
- Categorical Crossentropy
- Sparse Categorical Crossentropy
현재 진행하는 포스팅은 딥러닝에 대한 기초를 폭 넓게 이해하는 것이므로 각각의 손실함수에 대한 자세한 설명은 추후 더 자세히 설명하겠습니다.
최적화는 위 그림 중 오른쪽 그래프와 같이 오차값을 최소화 하는 모델의 인자를 찾는 것입니다.
최적화 함수는 더 나은 방향으로 발전해왔으며, 최적화 함수가 어떻게 발전 해왔는지에 대한 과정은 아래의 사진을 통해 확인할 수 있습니다.
- 딥러닝 모델의 학습 방법 이해하기
그러면 우리는 딥러닝 모델의 학습 방법을
" 예측값과 실제값 간의 오차값을 최소화하기 위해 오차값을 최소화하는 모델의 인자를 찾는 알고리즘을 적용"
한다고 설명할 수 있습니다.
- 가장 기본적인 최적화 알고리즘, Gradient Descent(GD)
가장 기본적인 최적화 알고리즘인 Gradient Descent란?
신경망의 가중치들을 W라고 했을 때, 손실함수 Loss(W)의 값을 최소화 하기위해 기울기를 이용하는 방법입니다.
- 각 가중치들의 기울기를 구하는 방법
딥러닝에서는 역전파(Backpropagation)을 통해 각 가중치들의 기울기를 구할 수 있습니다.
- Boom times의 배경 : 역전파(Backpropagation)
역전파의 개념은 첫 번째 AI의 겨울이 끝나고 다층 퍼셉트론이 등장하면서 다층 퍼셉트론을 효과적으로 학습시키기 위해서 역전파가 필요했기 때문에 같은 시기에 나오게 되었습니다.
- 순전파(Forward propagation)의 정의
역전파의 설명에 앞서 순전파(Forward propagation)에 대해서 먼저 설명하면 데이터가 입력되고 각각의 히든 레이어를 통과하여 가중치와 함께 계산된 값이 Output으로 나오는 과정을 말합니다.
- 순전파 예시
위에서 설명한 내용을 실제 값을 이용하여 표시하면 다음 그림과 같이 나타낼 수 있습니다.
- 역전파(Backpropagation)의 정의
그렇다면 역전파의 정의는 앞서 설명한 순전파와는 반대로 Target 값(나의 목표)과 실제 모델이 예측한 Output값이 얼마나 차아나는지 계산한 후 오차값을 다시 뒤로 전파해가며 변수들을 갱신하는 알고리즘을 말합니다.
- 역전파 예시
앞서 설명한 순전파에서 계산한 값을 바탕으로 반대로 각 perceptron의 값을 계산하여 가중치를 조절하게 됩니다.
따라서 Deep Learning 모델은 이와 같은 순전파와 역전파의 과정을 오차 값이 0에 가깝게 되도록 계속 반복하게 됩니다.
# 출처
엘리스 AI 트랙 7기 - [강의자료] 텐서플로우와 딥러닝 학습 방법
옵티마이저의 발전 도표 참고
'인공지능' 카테고리의 다른 글
[딥러닝 기초] 2장 텐서플로우와 딥러닝 학습 방법 - 텐서플로우 기초 사용법 (0) | 2023.09.03 |
---|---|
[딥러닝 기초] 2장 텐서플로우와 딥러닝 학습 방법 - 텐서플로우(TensorFlow) (0) | 2023.08.31 |
[딥러닝 기초] 1장 퍼셉트론 - 다층 퍼셉트론 (0) | 2023.08.28 |
[딥러닝 기초] 1장 퍼셉트론 - 비 선형적인 문제 (0) | 2023.08.25 |
[딥러닝 기초] 1장 퍼셉트론 - 퍼셉트론 선형 분류기 (3) | 2023.08.23 |