데이터로그😎
[DNN] DNN 설계 단계 - ② 손실함수, ③ 최적화 본문
✔️손실함수 (Loss Function)
- 손실함수는 기계학습, 딥러닝에서 모델의 성능을 측정하는 데 사용되는 함수
- 모델의 "실제값(y) - 예측값(y^)" 을 나타내며, 손실함수의 값이 낮을 수록 모델의 성능이 좋다고 평가된다.
- 머신러닝의 학습 과정은 이 손실함수를 최소화하는 방향으로 진행된다.
- 손실함수는 해결하려는 문제에 따라 달라진다. (회귀, 분류, 클러스터링..)
- 종류: 평균 제곱 오차(Mean Squared Error, MSE), 교차 엔트로피(Cross-Entrophy Error) 등
- MSE는 주로 회귀, CEE는 분류 문제에 자주 사용된다.
① 평균 제곱 오차 (Mean Squared Erorr, MSE)
- x(i) = 실제값, x(i) bar =예측값
- m: 출력 차원
- 예) MNIST에서 m= width * height * channels = 28 * 28 *1 = 784
- MSE는 오차의 제곱을 사용하기 때문에 큰 오차에 대해 더 큰 패널티를 부여함.
② 교차 엔트로피 (Cross Entrophy Error)
- 각 데이터 포인트에서 예측된 클래스의 확률 분포와 실제 클래스의 확률분포 사이의 교차 엔트로피를 계산한 후, 이를 모든 데이터 포인트에 대해 평균을 낸 값.
- 교차 엔트로피 값이 작을 수록 정확한 값을 냄.
- CEE는 두 분포 사이의 차이를 측정하기 때문에, 모델의 예측이 실제와 얼마나 일치하는지를 평가한다.
✔️최적화 (Optimizer)
- 최적화란 손실을 최소화할 수 있는 모델 파라미터(W,b)의 갱신 방법.
- 자세한 설명은..위키닥스를 참고하겠다..https://wikidocs.net/165136
최적화 알고리즘 中, 배치 경사 하강법(Batch Gradient Descent , BGD) 이라는 것이 존재한다.
🔹 배치 경사 하강법(Batch Gradient Descent , BGD)
Batch 란 축적된 과거의 데이터를 의미한다. MySQL, CSV, 파일 시스템 등을 통해 과거의 데이터를 보관할 수 있다.
만약 batch data가 60,000장의 이미지 데이터라고 가정하자. 이 때, 전체 훈련 데이터를 통해 경사 하강법을 실행하는 것이 BGD이다.
그런데 만약 데이터가 6만장이고, 이를 한 번에 훈련한다면 힘들 것이다. 과부하가 걸릴 수도?
그래서 mini- batch라는 개념이 나왔다.
🔹 미니배치 경사 하강법(Mini-batch Gradient Descent ,MGD)
훈련 시 전체 데이터인 6만장의 이미지를 다 사용해야 할 것 같지만, *통계적인 이유로 그보다 작은 Mini- batch를 사용해도 된다.
여기서 *통계적인 이유 중 하나는 '중심 극한의 정리' 이다. 중심 극한의 정리란 '독립적이고 동일한 확률 분포를 가진 변수들의 합은 표본 크기가 충분하면 정규분포에 근사하다' 는 것이다. 이러한 통계적인 이유로 인해 미니배치는 전체 데이터셋의 통계적인 특성을 반영하여 모집단을 대표할 수 있다고 가정하며, MGD는 전체 데이터를 미니배치 단위로 나누어 모델을 반복적으로 훈련다.
'딥러닝' 카테고리의 다른 글
[FCL] Full Connected Layer (1) | 2023.12.03 |
---|---|
[CNN] FCL vs CNN (0) | 2023.12.02 |
[DNN] 02. DNN 설계 단계 - ① 레이어 설계 (0) | 2023.11.28 |
[DNN] 01. DNN 기본 용어 (0) | 2023.11.28 |
[MLP] 03. 활성화 함수 (Activation Function) (2) | 2023.11.28 |