업무 TIP/인공지능

파이썬에서 train losses, train accuracy, test accuracy 보여주기

플라시스 2022. 10. 25. 19:07
728x90
반응형

(내가 몰라서 정리한 글)

 

파이썬에서 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)를 하기 위해서이다.

머신러닝을 할 때 너무 많은 컴퓨팅파워를 요구하기 때문에 최적으로 학습하는 방법을 찾으려고 데이터를 몇번에 나눠서 하는 것임.

 

 

 

 

 

728x90
반응형