쳉지로그

[밑바닥부터 시작하는 딥러닝] Chapter 4. 신경망 학습(1) 본문

머신러닝/밑바닥부터 시작하는 딥러닝

[밑바닥부터 시작하는 딥러닝] Chapter 4. 신경망 학습(1)

쳉지 2021. 4. 21. 16:10

4.1 데이터에서 학습한다!

4.1.1 데이터 주도 학습

  • 딥러닝을 **종단간 기계학습(end-to-end machine learning)**이라고도 함

4.1.2 훈련 데이터와 시험 데이터

  • 훈련 데이터(training data) : 학습하면서 최적의 매개변수를 찾음
  • 시험 데이터(test data) : 앞서 훈련한 모델의 실력을 평가

훈련 데이터와 시험 데이터를 나누는 이유

• 우리가 원하는 것은 범용적으로 사용할 수 있는 모델이기 때문

• 범용 능력을 제대로 평가하기 위해 훈련 데이터와 시험 데이터를 분리하는 것

오버피팅(overfitting) • 한 데이터셋에만 지나치게 최적화된 상태. • 오버피팅 피하기는 기계학습의 중요한 과제임

 

 

4.2 손실 함수

손실 함수(loss function) : 신경망 학습에서 사용하는 지표

• 신경망 성능의 ‘나쁨’을 나타내는 지표

• 신경망이 데이터를 얼마나 잘 처리하지 ‘못’하느냐를 나타냄.

• 따라서 손실 함수가 최소일 수록 좋은 신경망 성능임.

• 손실 함수 종류 : 평균 제곱 오차, 교차 엔트로피 오차

4.2.1 평균 제곱 오차

평균 제곱 오차(mean squared error, MSE) : 가장 많이 쓰이는 손실 함수

• 𝑦𝑘 : 신경망의 출력(신경망이 추정한 값)

• 𝑡𝑘 : 정답 레이블

• 𝑘 : 데이터의 차원의 수

  • 첫 번째 예의 손실 함수 쪽 출력이 작으며 정답 레이블과의 오차도 작은 것을 알 수 있음
  • 평균 제곱 오차를 기준으로 첫 번째 추정 결과가 (오차가 더 작으니) 정답에 더 가까울 것으로 판단

4.2.2 교차 엔트로피 오차

교차 엔트로피 오차(cross entropy error, CEE)

• 𝑦𝑘 : 신경망의 출력(신경망이 추정한 값)

• 𝑡𝑘 : 정답 레이블. 정답의 원소만 1이고 나머지는 0(one-hot-encoding)

  • 정답일 때의 추정(𝑡𝑘가 1일 때의 𝑦𝑘)의 자연 로그를 계산하는 식

  • 결과(오차 값)가 더 작은 첫 번째 추정이 정답일 가능성이 높다고 판단한 것으로, 앞서 평균 제곱 오차의 판단과 일치

4.2.3 미니배치 학습

  • 기계학습은 훈련 데이터에 대한 손실 함수의 값을 구하고, 그 값을 최대한 줄여주는 매개변수를 찾아냄
  • 이렇게 하려면 모든 훈련 데이터를 대상으로 손실 함수 값을 구해야 함

예시) 교차 엔트로피 오차

미니배치 학습 구현 코드 (훈련 데이터에서 지정한 수의 데이터를 무작위로 골라내는 코드)

4.2.4 (배치용) 교차 엔트로피 오차 구현하기

4.2.5 왜 손실 함수를 설정하는가?

  • 신경망을 학습할 때 정확도를 지표로 삼아서는 안 됨
  • 정확도를 지표로 하면 매개변수의 미분이 대부분의 장소에서 0이 되기 때문

(참고) 계단함수와 시그모이드 함수

: 계단 함수는 대부분의 장소에서 기울기가 0, 하지만 시그모이드 함수의 기울기는 0이 아님

Comments