.png)
✅ 핵심내용
Tensorflow 의 표준 API 인 tf.keras 의 Sequential API 를 이용하여 숫자 손글씨 분류기를 만들어보자.


전체 과정은 다음과 같은 순서 진행되었다.
tensorflow.keras.datasets.mnist 를 통해 MNIST 숫자 손글씨 이미지 분류3. 딥러닝 네트워크 설계
Sequential API 를 이용하여 딥러닝 모델 만들기

keras.layers.Flatten() 층은 2차원의 이미지 데이터 배열을 일렬로 변환하는 층이다.
activation 함수 relu 와 softmax 에 대하여 정리할 예정이다.
만든 딥러닝 네트워크의 정보는 다음과 같다.

4. 딥러닝 네트워크 학습
epoch 는 10으로 지정했다.)
5. 성능 평가


6. 더 좋은 네트워크 만들기
자세한 과정은 아래의 Github Link 를 통해 볼 수 있다.
Github Link ➡ EP01_MNIST
Tensorflow 의 표준 API 인 tf.keras 의 Sequential API 를 이용하여 가위바위보 분류기를 만들어보자.

전체 과정은 다음과 같은 순서 진행되었다.
1. 데이터 준비
2. 딥러닝 네트워크 설계

3. 모델 학습
epoch 값은 10으로 지정하여 모델을 학습시켰다.
4. 모델 성능 평가

결과적으로 33.3% 의 정확도를 가지는 모델이 만들었다.
가위, 바위, 보 세 개의 카테고리 중 무작위로 하나를 골라도 정답일 확률이 33.3% 이므로 굉장히 안좋은 성능을 가지는 모델이라고 할 수 있다.
사실 있으나 마나 한 성능이라고 볼 수 있다.
모델이 이렇게 낮은 성능을 보이는 이유를 다음과 같이 예상하였다.
위에서 얻은 성능이 낮은 원인들을 보완하여 두번째 시도를 하였다.
이전 모델에서 보완한 점은 다음과 같다.
두번째 시도는 다음과 같은 순서로 이루어졌다.
1. 데이터 준비
Train set, Validation set, Test set 을 통해 최적의 hyperparameter 찾기
해당 데이터에 대한 overfitting 문제를 방지하고 한번도 보지못한 새로운 데이터에 대해 분류를 잘하기 위해서 trainning set, validation set, test set 으로 나누는 방법__을 사용한다.
trainning set, validation set을 통해 hyperparmeter 에 대해 실험해보고 마지막으로 새로운 데이터인 test set을 통해 평가하는 방법이다.
2. 딥러닝 네트워크 설계

3. 모델 학습

4. Validation set 을 이용한 모델 성능 평가


5. Test set 을 이용한 최종 모델 성능 평가

최종적으로 모델의 성능은 약 98.47% 의 정확도를 보인다.
자세한 과정은 아래의 Github Link 를 통해 볼 수 있다.
Github Link ➡ EP01_Rock-Paper-Scissors
간단한 딥러닝 네트워크를 통해 가위, 바위 보를 분류하는 모델을 만들보았다.
첫 시도에는 내가 찍은 가위바위보 사진 300장을 training set 으로 사용하여 모델을 학습시켰다.
이후 다른 사람이 찍은 가위바위보 사진 300장을 test set 으로 사용하여 모델의 성능을 평가하였다.
그 결과 모델의 정확도는 33.3% 가 나왔다. 세 가지 분류 중 무작위로 골라도 정답일 확률이 33.3% 이므로 아무 의미가 없는 모델을 만든 것이다.
그러한 결과가 나온 원인를 다음과 같이 정리하였다.
이것을 바탕으로 위의 원인들을 해결하는 해결책을 다음과 같이 정하여 두번째 모델을 만들었다.
그 결과 98.47% 의 정확도를 가지는 모델을 만들어낼수 있었다.
이후 더 높은 성능의 모델을 구현하려면
등의 방법을 통해 정확도를 향상시킬 수 있을 것으로 예상한다.