본문내용
1. 딥러닝 개요
1.1. Teachable Machine을 이용한 머신러닝 모형 구축
Teachable Machine은 구글에서 개발한 머신러닝 툴로, 이를 활용하여 손쉽게 자신의 머신러닝 모형을 만들 수 있다. 먼저 구글 이미지에서 '귀멸의 칼날'이라는 애니메이션 주인공 4명의 사진을 각각 10장씩 수집하였다. 이를 Teachable Machine의 입력값으로 사용하여 학습을 진행하였다. 학습 설정은 에포크 50, 배치 크기 16, 학습률 0.001로 진행하였고, 결과를 검증하기 위해 4장의 테스트 이미지를 활용하였다.
그 결과 대부분의 테스트 이미지에서 95% 이상의 높은 분류 정확도를 보였으나, 일부 이미지에서는 정확도가 낮게 나타났다. 이에 따라 에포크를 100으로 늘리거나, 배치 크기를 256으로 늘리는 등 하이퍼파라미터를 조정하여 성능 향상을 시도하였다. 그 결과 배치 크기를 늘리고 학습률을 낮추었을 때 가장 높은 정확도를 얻을 수 있었다.
하지만 Teachable Machine에서 최적의 하이퍼파라미터를 찾는 것은 쉽지 않았다. 대량의 실험을 통해 최적화 과정을 거치는 것이 필요하다는 것을 알 수 있었다. 이처럼 Teachable Machine을 활용하여 간단한 머신러닝 모형을 구축할 수 있지만, 보다 정확한 모형을 만들기 위해서는 체계적인 실험과 튜닝이 요구된다.
1.2. 다층신경망의 학습과정 이해
다층신경망은 복잡한 데이터 구조를 효과적으로 학습할 수 있는 기술이다. 이 신경망은 입력층, 여러 개의 은닉층, 출력층으로 구성되어 있다. 입력 데이터는 각 층을 거치면서 비선형적인 변환을 거치며, 이를 통해 데이터의 복잡한 특징들이 추출된다.
다층신경망의 학습 과정은 다음과 같이 진행된다. 먼저, 데이터 수집 및 전처리 단계에서 학습에 활용할 데이터를 수집하고 정제한다. 이때 입력 데이터와 출력 데이터를 구분하고, 필요에 따라 정규화 및 노이즈 제거 등의 전처리를 수행한다.
다음으로 신경망 아키텍처 선택 단계에서 모델의 구조와 하이퍼파라미터를 설계한다. 이 단계에서는 은닉층의 수, 뉴런 수, 활성화 함수 등을 결정한다. 또한 가중치 초기화 단계에서 신경망의 초기 가중치를 무작위로 설정한다.
이후 순전파(forward propagation) 단계에서 입력 데이터를 신경망에 넣어 예측값을 계산하고, 손실 함수 계산 단계에서 예측값과 실제 출력값 간의 차이를 계산한다. 그리고 역전파(back propagation) 단계에서 이 손실 함수를 최소화하도록 가중치를 조정한다.
마지막으로 가중치 업데이트 단계에서 역전파를 통해 계산된 기울기를 이용하여 모델의 가중치를 갱신한다. 이 과정을 반복하여 모델이 점차 최적화된다.
이와 같은 학습 과정을 거치면서 다층신경망은 데이터의 복잡한 구조와 특징을 자동으로 학습할 수 있다. 이를 통해 높은 성능의 예측 모델을 구축할 수 있으며, 이미지 인식, 자연어 처리 등 다양한 분야에 효과적으로 적용할 수 있다.
1.3. 신경망 하이퍼파라미터 변화에 따른 성능 비교
<신경망 하이퍼파라미터 변화에 따른 성능 비교>
학번 끝자리가 8에 해당하므로 (d)의 데이터를 이용하여 하이퍼파라미터에 따른 신경망 변화를 비교한다. DATA, FEATURES, HIDDEN LAYERS는 기본값을 유지한다.
우선, 활성화 함수로 Tanh를 사용하고 학습률을 다양하게 적용해 보았다. 학습률이 0.003일 때는 Epoch가 1,000 이상이 되어도 제대로 된 분류가 이루어지지 않으며 기울기 소실 문제가 발생한다. 0.03의 학습률을 사용하면 어느 정도 분류가 되는 듯 하지만 여전히 성능이 뛰어나지는 않으며 기울기 소실 문제가 존재한다. 0.3의 학습률을 사용한 경우에도 마찬가지로 좋은 성능을 내지 못하였다.
다음으로 활성화 함수를 Sigmoid로 바꾸어 실험해 보았다. 정규화를 적용하지 않은 상태에서 각 학습률을 사용해 보았지만, 모든 경우에 제대로 된 분류가 이루어지지 않았고 반절 정도만 구...