신경망 학습

m0ng5he1l·2022년 6월 24일
0

딥러닝 공부

목록 보기
3/7

훈련 데이터 & 시험 데이터

  • 기계학습은 훈련 데이터만 사용하여 학습하면서 최적의 매개변수를 찾는다.
  • 이후 시험 데이터를 사용하여 훈련한 모델의 실력을 평가한다.
  • 훈련 데이터와 시험 데이터를 나누는 이유 : 아직 보지 못한 데이터로도 문제를 풀어내는 ‘범용 능력’을 제대로 평가하기 위함
  • 오버피팅 : 한 데이터셋에만 지나치게 최적화된 상태

손실 함수(Loss Function)

1. 오차제곱합(Sum of Squares for Error, SSE)

  • 가장 많이 쓰이는 손실 함수
    • y : 신경망의 출력 (신경망이 추정한 값)
    • t : 원-핫 인코딩인 정답 레이블
    • k : 데이터의 차원 수
  • 각 원소의 출력과 정답 레이블의 차를 제곱한 후 그 총합을 구함
  • 원-핫 인코딩 : 한 원소만 1로 하고 그 외는 0으로 나타내는 표기법

2. 교차 엔트로피 오차(Cross Entropy Error, CEE)

  • 자주 쓰이는 손실 함수
    • log의 밑은 e인 자연로그
    • y : 신경망의 출력
    • t : 원-핫 인코딩인 정답 레이블
  • 정답에 해당하는 y가 커질 수록 오차가 0에 가까워지고, y가 1이 되면 0이 된다. 반대로 정답에 해당하는 y가 작아질수록 오차는 커짐

3. 미니배치 학습

  • 신경망 학습에서 훈련 데이터로부터 일부만 골라 수행하는 학습 방법
  • 교차 엔트로피 오차
    • t : n번째 데이터의 k번째 값
    • y : 신경망의 출력
    • k : 원-핫 테이블인 정답 테이블
    • N : 데이터의 개수
  • 데이터의 개수인 N으로 나눔으로써 ‘평균 손실 함수’를 구함

4. 정확도 대신에 손실 함수를 설정하는 이유

  • 높은 정확도를 끌어내는 매개변수의 값을 찾아야 한다. 이 때 굳이 정확도 대신에 손실 함수의 값이라는 우회적인 방법을 사용한다.
  • 신경망 학습에서 매개변수를 탐색할 때 손실 함수의 값을 가능한 작게 하는 매개변수를 찾기 위해 매개변수의 미분(기울기)를 계산하고, 미분 값을 서서히 갱신한다.
  • 미분 값이 음수나 양수의 가중치 매개변수의 값을 변화시키며 손실 함수의 값을 줄여가며 가중치 매개변수의 값을 갱신할 수 있지만, 미분 값이 0이 되면 가중치 매개변수를 변경하더라도 손실 함수의 값이 줄어들지 않는다. 그러므로 가중치 매개변수의 값이 갱신되지 않는다.
  • 정확도를 지표로 삼지 않는 이유는 미분 값이 대부분의 장소에서 0이 되어 매개변수를 갱신할 수 없기 때문이다.
    • 0이 되는 이유 : 정확도는 20, 21, 22.. 불연속적인 띄엄띄엄한 값으로 바뀌게 되는 반면, 손실 함수를 지표로 삼게 되면 0.93432… 같이 연속적으로 변화한다.
    • 즉 정확도는 계단 함수의 모양을 띄게 되어 대부분의 장소에서 0이 되고, 손실 함수는 시그모이드 함수의 모양을 띄게 되어 기울기가 연속적으로 변화하고, 어느 장소라도 기울기가 0이 되지 않는다. 그러므로 신경망이 올바르게 학습할 수 있다.

수치 미분

  • 중심 차분(중앙 차분) : x를 중심으로 (x+h)와 (x-h)일 때의 함수 f의 차분 계산 (h는 0에 무한히 가까워짐)
  • 편미분 : 변수가 여럿인 함수에 대한 미분

기울기(Gradient)

  • 모든 변수의 편미분을 벡터로 정리한 것
  • 기울기가 가리키는 쪽은 각 장소에서 함수의 출력 값을 가장 크게 줄이는 방향

경사법(경사 하강법)

  • 기울기를 이용해 함수의 최솟값 혹은 가능한 한 작은 값을 찾는 방법
  • 하지만 기울기가 가리키는 곳이 꼭 최솟값을 가리키는 것은 아니나, 해당 방향으로 가야 함수의 값을 줄일 수 있다.
  • 기울기를 구하여 기울어진 방향으로 일정 거리만큼 나아가고, 또 이동한 곳에서 다시 기울기를 구해서 기울어진 방향으로 나가며 함수의 값을 줄여나가는 방법
  • 기계 학습, 특히 신경망 학습에서 많이 사용된다.
  • 경사 하강법 : 최솟값을 찾는 방법
  • 경사 상승법 : 최댓값을 찾는 방법
    • η (에타) : 학습률 (갱신하는 양)
    • 해당 식을 여러 번 반복하여 함수의 값을 줄여나감
  • 학습률이 너무 작으면 큰 값으로 발산해버리고 반대로 너무 크면 거의 갱신되지 않은 채 끝나므로, 학습률을 적절히 설정하는 것은 중요하다.

신경망 학습의 절차

  • 확률적 경사 하강법(Stochastic Gradient Descent, SGD) : 미니 배치를 무작위로 선정하여 경사 하강법으로 매개변수를 갱신하는 방법
    1. 미니 배치 : 무작위로 훈련 데이터 중 일부를 가져온 후 이를 미니 배치라고 한다.
    2. 기울기 산출 : 미니 배치의 손실 함수 값을 줄이기 위해 각 가중치 매개변수의 기울기를 구한 후 손실 함수의 값을 가장 작게 하는 방향으로 제시한다.
    3. 매개변수 갱신 : 가중치 매개변수를 기울기 방향으로 조금 갱신한다.
    4. 반복 : 1~3단계를 반복한다.
profile
통통

0개의 댓글

관련 채용 정보