본문 바로가기

DL/밑바닥부터 시작하는 딥러닝1

[DL/밑바닥부터 시작하는 딥러닝] 4장 - 신경망 학습

한빛미디어의 "밑바닥부터 시작하는 딥러닝" 책을 다시 읽어보며 각 챕터에서 중요하게 생각한 부분이나, 정리하고 싶은 부분을 남깁니다.

 

목차

1. 데이터 학습
2. 손실 함수 
3. 미니배치 학습
4. 에폭(epoch), 배치 사이즈, 이터레이션(Iteration)
5. 미니 배치는 복원 추출일까 비복원 추출일까?
6. 경사 하강법

 

1. 데이터 학습 

  • 신경망은 데이터를 있는 그대로를 사용해 학습합니다.
    cf) 입력된 데이터로부터 중요한 데이터를 정확하게 추출할 수 있도록 설계된 변환기인 특징을 추출하고 그 특징의 패턴을 기계학습 기술로 학습하는 방법
  • 범용 능력을 제대로 평가하기 위해 train set 과 test set 을 분리합니다.

 

2. 손실 함수

  • 평균 제곱 오차
    y_k 는 신경망의 추정값, t_k는 정답 레이블, k는 데이터의 클래스 개수입니다.

  • 교차 엔트로피 오차
    -  t(k)는 정답에 해당하는 인덱스의 원소만 1이고 나머지는 0이므로 (one-hot encoding) 정답일 때 출력이 전체 값을 정하게 됩니다.

 

3. 미니배치 학습

미니배치 학습이란 훈련 데이터로부터 일부만 샘플링하여 학습을 수행하는 것을 말하며, 미니배치란 앞서 말한 일부의 샘플을 말합니다.

 

미니배치 학습하는 이유?

1. 배치학습과 온라인 학습

전체 데이터를 모두 사용하여 학습하여 가중치를 갱신하는 경우를 배치 학습 이라고 하며, 마치 실시간으로 들어오는 데이터를 바로바로 처리하듯 하나의 데이터를 사용하여 학습하여 가중치를 갱신하는 경우를 온라인 학습 이라고 합니다.

 

2. 배치학습과 온라인 학습의 장단점

배치 학습은 전체 데이터를 빠짐없이 사용하여 손실 함수의 미분값을 추정하므로 보다 최적으로 가중치를 갱신할 수 있지만 훈련 데이터에 과적합되기 쉽거나 데이터가 클수록 학습하는 시간이 오래 소요되며 많은 컴퓨팅 자원량을 필요로합니다. 또한 데이터가 추가될 때마다 다시 전체 데이터를 이용하여 학습을 진행해야하는 번거로움이 있습니다.

 

반면, 온라인 학습은 데이터를 하나씩 사용하여 학습하고 가중치를 업데이트하므로 새로운 데이터에 대하여 빠르게 처리할 수 있습니다. 그러나 최신 데이터의 영향을 많이 받아 안정적이지 않을 수 있으며, 하나씩 처리하므로 동시에 많은 데이터를 처리할 때 이점이 있는 컴퓨팅 자원을 효율적으로 사용하지 못할 수 있습니다. 

 

3. 미니 배치란

미니배치는 배치 (전체 데이터) 의 사이즈를 줄여 무작위 (random) 로 샘플(표본)을 뽑아 처리하는 것과 같습니다. 배치 학습과 온라인 학습의 장점을 살려 동시에 많은 데이터를 처리할 때 이점을 가질 수 있는 컴퓨팅 자원 내에서 빠르게 학습할 수 있습니다. 

 

참고한 자료는 더보기를 클릭하여 확인할 수 있습니다. 

더보기

stackoverflow에서의 배치 학습과 온라인 학습, 미니배치 학습 질의응답

https://stackoverflow.com/questions/58269460/what-is-the-meaning-of-a-mini-batch-in-deep-learning

 

4. 에폭(epoch), 배치 사이즈, 이터레이션(Iteration)

에폭 : 전체 데이터가 훈련에 사용되는 횟수

배치 사이즈 : 미니 배치 학습 시, 무작위로 뽑을 샘플 데이터의 수

이터레이션 : 배치 사이즈를 1에폭에 해당되는 전체 데이터 수와 같도록 반복하는 횟수 

 

Ex1) 전체 데이터를 사용하는 배치학습 1회의 경우 에폭 수는 1 입니다. 

Ex2) 1000 건의 데이터를 100개씩 샘플을 뽑는 과정을 10번 진행하는 경우 

  1. 1에폭은 1000건의 데이터를 사용하여 학습합니다. 2에폭은 1000*2 = 2000건의 데이터를 사용하여 학습합니다.
  2. 데이터를 랜덤으로 추출할 때마다 100건의 데이터를 사용하므로 배치 사이즈는 100 입니다. 
  3. 1 에폭만큼 데이터를 학습하기 위해서는 미니 배치 학습을 10회 반복해야하므로 이터레이션은 10 입니다.

 

5. 미니 배치는 복원 추출일까 비복원 추출일까?

배치 학습이 전체 데이터를 사용하여 학습하는 것이고, 미니 배치는 샘플을 추출해 학습하는 것이면 1 에폭만큼 진행하는 경우 다음 의문이 들었습니다.

 

1. 이미 미니 배치에 사용된 데이터는 다시 사용할까 (=복원 추출)

2. 이미 사용된 데이터는 제외하고 나머지 데이터에서 샘플을 추출할까 (=비복원 추출) 

 

참고하고 있는 책에서는 복원 추출 방식으로 미니 배치 학습을 진행하고 있으나, 여러 자료를 찾아보니 두 방법 모두 사용되고 있는 것으로 보입니다. 

 

참고한 자료는 더보기를 클릭하여 확인할 수 있습니다. 

 

6. 경사 하강법

기울기를 이용하여 손실 함수가 최솟값이 될 때의 최적의 매개 변수를 찾는 방법입니다.

손실 함수가 아래 이미지와 같을 때 A 지점과 B 지점에서는 손실 함수 값을 줄이기 위해 C 지점을 향해 매개변수 값을 갱신하고, C 지점과 같이 손실 함수의 기울기가 0이 될 때의 매개변수 값을 최적의 값으로 선정합니다.

예시1

  • 한계점
    경사 하강법으로 얻은 최소 손실 함수 값은 한정된 범위에서의 최솟값인 점이라는 점입니다.
    손실 함수가 아래와 같을 때, A, B 지점에서는 전체 손실 함수 값을 줄일 수 있는 D 지점 쪽으로 이동하지 못하고 C 지점을 향해 학습하게 됩니다. 

예시2