한글 손 글씨 글자 분류기

2023.11.01 - 2023.12.13
27
총 1

sand

follower0

팔로우
프로필 보기

sand

2023.12.20 01:30

0
0
33
5등 (0.8756613757점)
최종 결과는 60 epoch, batch size 32를 사용하고, 과적합 방지를 위해 기본 dropout을 사용하였습니다. 또한 모델 구조를 복잡하게 만들어보기 위해 단순한 방법이지만 layer를 2개 추가하였고, optimizer를 SGD(0.008, 0.9)로 사용하여 학습시켰을 때 0.8756613757점이 나왔습니다.처음에 baseline 코드에서 20 epoch, batch size 64로 변경하고, 모델 구조에서 layer 1개 추가를 해봤을 때 0.6798점으로 성능이 향상되었습니다. 이후 30 epoch, batch size 32로 변경하고 layer 1개 추가는 유지하고 과적합 방지를 위해 dropout를 추가적으로 사용하였더니 0.7301점이 되었습니다.더 학습을 시켜보기 위해 50 epoch, batch size 32, dropout 사용, layer 2개 추가로 조건을 변경해보니 0.8227로 향상이 되었습니다. 동일한 조건에서 100 epoch로 바꿔봤을 때는 0.8015점으로 오히려 성능이 떨어져서 과적합이 되고 있다고 판단했습니다.그 다음으로는 optimizer를 변경해보면서 살펴보았고, 기존 baseline의 optimizer 대신 SGD optimizer를 사용해보며 성능을 살펴보았습니다. SGD의 하이퍼 파라미터 중 learning_rate와 momentum의 값을 변경해보며 성능을 확인했습니다.위와 동일한 조건(50 epoch, 32batch, dropout, layer 2개 추가)에서 SGD(learning_rate=0.01, momentum=0.9)를 optimizer로 변경했을 때는 0.8597점이 성능이 향상되어 나왔고, 여기서 70epoch로 변경해보니 0.8492점이 나와 과적합되어 50 epoch 근처가 성능이 낫다는 것을 판단했습니다. 그리고 SGD 의 learning rate를 0.02로 바꾸니 0.6693점으로 확 떨어져 ‘0.01보다 낮춰보되 조금만 낮춰보면 어떨까?’ 해서 0.008으로 적용해보니 0.8756(최종 점수)점을 얻게 되었습니다. 그 이후로 momentum을 0.95, 0.85로 변경하여 살펴보기도 하고 BatchNormalization, SpatialDropout2D, dropout의 파라미터도 변경해보는 등 다양한 변화를 시도해봤지만, 최종 결과로 나온 구조가 가장 성능이 우수했습니다.이번 태스크를 진행하면서 다양한 하이퍼파라미터 튜닝에 대해 공부하게 되었던 것 같습니다.