본문 바로가기

Deep Learning

Deep Learning : 텐서플로우에서 학습시 epoch와 batch_size에 대한설명

- epoch : 한번 학습을 완료한 상태

- batch : 나눠진 데이터 셋

 

 

우선, 아래의 세가지 모듈이 필요하다.

import numpy as np
import pandas as pd
import os
 
csv 파일이 들어있는 폴더로 경로를 정해준다.
예시 :  os.chdir('/content/drive/MyDrive/Colab Notebooks/deeplearning')

 


epoch

 

One Epoch is when an ENTIRE dataset is passed forward and backward through the neural network only ONCE
(한 번의 epoch는 인공 신경망에서 전체 데이터 셋에 대해 forward pass/backward pass 과정을 거친 것을 말함. 즉, 전체 데이터 셋에 대해 한 번 학습을 완료한 상태)

▶ 신경망에서 사용되는 역전파 알고리즘(backpropagation algorithm)은 파라미터를 사용하여 입력부터 출력까지의 각 계층의 weight를 계산하는 과정을 거치는 순방향 패스(forward pass), forward pass를 반대로 거슬러 올라가며 다시 한 번 계산 과정을 거처 기존의 weight를 수정하는 역방향 패스(backward pass)로 나뉜다.

이 전체 데이터 셋에 대해 해당 과정(forward pass + backward pass)이 완료되면 한 번의 epoch가 진행됐다고 볼 수 있습니다.

!! 참고사항 epochs = 40이라면 전체 데이터를 40번 사용해서 학습을 거치는 것이다.

▶ 우리는 모델을 만들 때 적절한 epoch 값을 설정해야만 underfitting과 overfitting을 방지할 수 있다.

epoch 값이 너무 작다면 underfitting이 너무 크다면 overfitting이 발생할 확률이 높은 것이다.


- batch size

Total number of training examples present in a single batch.

batch size는 한 번의 batch마다 주는 데이터 샘플의 size. 여기서 batch(보통 mini-batch라고 표현)는 나눠진 데이터 셋을 뜻하며 iteration는 epoch를 나누어서 실행하는 횟수라고 생각하면 된다.