GOAL
- 지난 포스팅으로 프로젝트를 마무리하려고 했는데
정확도 그래프를 조금 더 괜찮게 만들고 싶어서 이 점을 개선하려고 합니다.
1. 중간에 뚝 떨어지는 정확도 개선
2. 학습이 계속되고 있는 것으로 보여 epochs 수를 더 늘려봄
3. 정확도 상승 방법 구현
1. 중간에 뚝 떨어지는 정확도 개선
- 보여드린 정확도 그래프에서 보시는 것처럼 뚝 떨어지는 구간이 있고 그것을 없애기 위해 여러 가지 방법으로 해보려고 했습니다. optimizer의 lr을 낮춰 보거나 weghit dacay 값을 낮게 주는 것으로 학습해보았습니다.
1-1 optimizer.Adam의 lr을 절반으로 낮춰서 학습
- optimizer = Adam()의 기본 lr은 0.001입니다. 그래서 절반으로 낮춰서 학습을 시켜보았습니다. 나머지는 똑같이!
model.compile(optimizer = keras.optimizers.Adam(0.0005),
loss = 'categorical_crossentropy',
metrics = ['accuracy'])
결과)
→ lr을 줄이니 초반에는 학습이 안 되는 것을 보여주었고 그래프가 튀는 부분은 적어졌습니다!
model.evaluate(X_test, y_test)
→ loss : 0.5444 - accuracy : 0.9043
→ 학습률을 절반으로 하여 학습을 하였더니 정확도가 약 90%로 상승한 것을 계속해서 학습 중인 것으로 판단하여 epochs를 늘려 보기로 했습니다.
1-2 batch size와 epochs 수를 늘려서 학습
model.compile(optimizer = tf.keras.optimizers.Adam(0.0005),
loss = 'categorical_crossentropy',
metrics = ['accuracy'])
history = model.fit(X_train, y_train,
batch_size = 60,
epochs = 200,
verbose = 1,
validation_data=(X_test, y_test))
결과)
→ loss: 0.6263 - accuracy: 0.8979
→ 정확도는 상승했지만 초반의 정확도 그래프가 오히려 안좋아졌습니다.
그래프가 튀는 것을 막기 위해 lr을 줄이고 batch size를 늘려서 학습을 해보았고 결과는
어느 정도 epochs 이후에 그래프가 튀지 않는 것을 확인했습니다!
다음에는 정확도를 올리기 위해 여러 가지 방법을 해보고 결과를 포스팅하겠습니다!
틀린 점이나 질문이 있으시면 댓글로 남겨주세요!
감사합니다 :)
'Project' 카테고리의 다른 글
PyQt5를 이용한 Data Augmentation Tool 구현 - 1 (UI 구현) (0) | 2022.07.05 |
---|---|
남녀 얼굴을 분류하는 딥러닝 모델 구현 - 4 (개선) (2) | 2021.08.25 |
남녀 얼굴을 분류하는 딥러닝 모델 구현 - 2 (전처리 및 모델링) (9) | 2021.08.23 |
남녀 얼굴을 분류하는 딥러닝 모델 구현 - 1 (데이터 셋 만들기) (2) | 2021.08.20 |
Image to Cartoon Image (OpenCV를 이용해 만화풍 이미지 만들기) (0) | 2021.07.11 |