[플레이데이터 빅데이터 부트캠프]머신러닝 & 딥러닝 Deep Learning 개요(2)

손실 함수(Loss function)

  • 성능 척도와는 다른 개념이며 이전 함수와 지금 함수의 변화율을 측정하는 함수이다.
  • 그 이전 함수와 지금 함수의 미분값으로 손실함수를 구할 수 있다.

손실 함수의 종류

  • 이진분류로는 binary_crossentropy
  • 원핫인코딩이 된 타겟을 분류하는데는 categorical_crossentropy
  • 원핫인코딩이 되지 않은 명목형 타겟을 분류하는데는 sparse_categorical_crossentropy를 주로 사용한다.
  • 머신러닝 알고리즘은 손실 함수의 값을 최소화 하는 방향으로 학습하는 것이 목적이다.

경사 하강법(Gradient Descent)

  • 손실 함수의 변화울 최적점까지 계속 내려가면서(cost function이 감소하는 방향으로) 측정하는 방법이다.
  • 가중치가 증가할수록, cost function이 감소하는 방향으로 진행한다.
  • 경사 안의 학습의 간격을 러닝레이트라고 보면 된다.
  • 러닝레이트가 너무 작으면, Local Minima에 빠질 위험이 있다.
  • 러닝레이트가 너무 크면, Global minimum을 가로질러 반대편으로 건너뛰어 Local Minima에 빠질 수 있다.

모멘텀(Momentum)

  • 경사 하강법의 해결방안이다.
  • 일저하게 Leraning rate를 주는 것이 아니라, 기울기에 관성을 부과한다.
  • 학습의 시간 소요를 지나치게 늘리는 것을 방지해 준다.
  • 지역 최소값을 탈출할 수 있게 한다.

Epoch

  • 훈련 데이터셋에 포함된 모든 데이터들이 한 번씩 모델을 통과한 횟수로, 모든 학습 데이터셋을 학습하는 횟수이다.
  • epoch를 높일수록 다양한 무작위 가중치로 학습을 해보는 것이므로 손실값이 내려간다.
  • 지나치게 높이게 되면, 과적합이 되어 다른 데이터에 대해선 제대로 된 예측을 하지 못할 수 있다.

early stopping

  • 실제 점수와 테스트 점수가 비슷해질 때 멈춰지는 기법을 early stopping이라고 한다.
  • 과대 적합이 시작하기 전에 훈련을 멈출 수 있다.

미니 배치 경사 하강법(Mini-Batch Gradient Descent)

  • 미니 배치 경사 하강법은 배치 크기를 줄이고, 확률적 경사 하강법(SGD)을 사용한다.
  • 일부 표본 집단을 넣어서 그때그때, 경사를 확인하는 방식이다.
  • batch size를 100으로 잡았다고 할 때 총 10개의 mini batch가 나온다.->Random하게 추출

배치 사이즈 크기는 총 데이터에 나눠떨어지는 크기로 하면 좋다.

옵티마이저(Optimizer)

  • 경사를 어떻게 내려갈지 정해주며, 가중치를 갱신해 준다.
  • 최적화에 도달하는 방법론을 표현하고 있다.
  • 대표적으로 Adam, Adagrad를 많이 사용한다.

과적합 해결 방법

Drop out

  • 과적합을 해결하는 가장 효과가 좋은 방법이다.
  • 학습시킬 때 무작위로 뉴런을 제외시킨다.
  • Drop out을 적용하면 실질적으로 많은 모델을 생성, 학습하고 그 안에서 예측을 실행하기 때문에 성능이 향상된다.
  • 자연어처리 분야에서도 많이 사용한다.