이처럼 신경망을 잘 학습시키려면 학습한 신경망이 분류한 값과 실제 값의 오차부터 계산해야 합니다. 그리고 오차를 줄이기 위해 경사 하강법을 사용합니다. 지금부터 모델을 학습시켜 봅시다.
TIP
경사 하강법은 5.2절 인공 신경망의 핵심! 오차 줄이기에서 살펴보았습니다.
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(X_train, Y_train, batch_size=128, epochs=10, verbose=1)
실행 결과
Epoch 1/10 469/469 [==============================] - 4s 9ms/step - loss: 0.2277 - accuracy: 0.9339 Epoch 2/10 469/469 [==============================] - 4s 9ms/step - loss: 0.0816 - accuracy: 0.9747 Epoch 3/10 469/469 [==============================] - 4s 9ms/step - loss: 0.0522 - accuracy: 0.9840 Epoch 4/10 469/469 [==============================] - 4s 9ms/step - loss: 0.0348 - accuracy: 0.9890 Epoch 5/10 469/469 [==============================] - 4s 9ms/step - loss: 0.0267 - accuracy: 0.9915 Epoch 6/10 469/469 [==============================] - 4s 9ms/step - loss: 0.0222 - accuracy: 0.9926 Epoch 7/10 469/469 [==============================] - 4s 9ms/step - loss: 0.0179 - accuracy: 0.9940 Epoch 8/10 469/469 [==============================] - 4s 9ms/step - loss: 0.0173 - accuracy: 0.9941 Epoch 9/10 469/469 [==============================] - 4s 9ms/step - loss: 0.0144 - accuracy: 0.9952 Epoch 10/10 469/469 [==============================] - 4s 9ms/step - loss: 0.0112 - accuracy: 0.9963 <tensorflow.python.keras.callbacks.History at 0x7f92a1ff7f28>