더북(TheBook)

방금 과정을 통해서 우리는 인공 신경망의 결과를 보고 인공 신경망의 구조를 수정한 셈이다. 하지만 안타깝게도 수정해도 결과는 크게 개선되지 않는다.

지금까지 아주 간단한 데이터에 복잡해 보이는 인공 신경망을 적용해보았다. 복잡하지만 너무 걱정할 필요는 없다. 인공 신경망의 X, Y 부분과 가중치 차원을 잘 지정한다면 기존 코드를 다른 데이터에 재활용하는 데 어렵지 않기 때문이다.

이번에는 숫자 이미지를 인공 신경망으로 분류해보자. 이번 새로운 예제에서는 MNIST에서 제공하는 예제 데이터를 활용하는데, 해당 데이터는 다음처럼 간단하게 불러올 수 있다. 불러온 값은 넘파이의 배열 형태로 존재하며, 이 값들은 0~255까지의 값으로 색상을 나타낸다. 0~1 사이의 값으로 변환하여 나타내기 위해 모두 255로 나눠준다.

>>> import tensorflow as tf
>>> mnist = tf.keras.datasets.mnist
>>> (x_train, y_train), (x_test, y_test) = mnist.load_data()
>>> x_train, x_test = x_train / 255.0, x_test / 255.0

이제 XY 차원을 통해 대략적인 인공 신경망을 구성해보자.

▲ 그림 8-20 MNIST의 손글씨 숫자 인식을 위한 인공 신경망

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.