(내가 몰라서 정리한 글)
파이썬에서 figure() 함수는 matplotlib에서 그래프 그리는 것으로 이해함
import matplotlib.pyplot as plt
1) train losses
plt.figure()
plt.ylabel("Loss")
plt.xlabel("Training Steps")
plt.ylim([0,2])
plt.plot(fc_without_relu_batch_stats.batch_losses)
첫번째는 loss(손실율)구하는건데, x,y축 각각 Traning Steps와 Loss에 대한 그래프임
손실율이 낮을수록 좋은 알고리즘이라고 한다.
2) train accuracy
plt.figure()
plt.ylabel("Training Accuracy")
plt.xlabel("Training Steps")
plt.ylim([0,1])
plt.plot(fc_without_relu_batch_stats.batch_acc)
두번째는 학습정확도를 구하는건데, x,y축 각각 Training steps와 Traning Accuracy에 대한 그래프임
당연히 높을수록 좋다
3) test accuracy
plt.figure()
plt.ylabel("Test Accuracy")
plt.xlabel("Epochs")
plt.ylim([0,1])
plt.plot(fc_without_relu_batch_stats.epoch_val_acc)
세번째는 테스트 정확도를 구하는건데, x,y축 각각 Epochs와 Test Accuracy에 대한 그래프임
높을수록 좋다.
추가적으로
Epochs는 일반적으로 모든 훈련 데이터에 대한 한 번의 반복을 의미한다. (데이터 한바퀴 뺑뺑 돈것)
Training steps는 1개의 batch (batch mini 라고도 표현)로 부터 loss를 계산한 뒤 weight와 bias를 1회 업데이트 한 것을 1step이라고 한다. (말그대로 학습한 스텝이라고 보면 될 것 같다, 각 스텝별로 손실과 정확도를 계산)
재미있는 요약으로는
n = num of samples (학습할 데이터양) 1회 운동 당 벤치 프레스 목표 개수 (40개)
e = epochs: 몇 번 반복할 것인가? 1회
b = batch size: 1세트 당 회수. 8개
s = steps: 몇 세트로 나누어 할 것인가. 5 세트
가 있었다.
추가적으로 itration이라고 하는 epoch 값을 나누어 실행하는 개념도 있다.
굳이 이렇게 데이터를 나눠가며 학습시키는 이유는 머신러닝에서 최적화(optimizer)를 하기 위해서이다.
머신러닝을 할 때 너무 많은 컴퓨팅파워를 요구하기 때문에 최적으로 학습하는 방법을 찾으려고 데이터를 몇번에 나눠서 하는 것임.