신경망과의 첫 만남

머신러닝에서 분류 문제의 **범주(Category)**를 클래스(class) 라고한다.

데이터 포인트는 샘플(Sample) 이라고 한다.

특정 샘플의 클래스는 레이블(Label) 이라고 한다.

케라스에서 MNIST 데이터셋 적재하기

from tensorflow.keras.datasets import mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()

나는 책의 내용과 다르게 tensorflow.keras.datasets로 했다.

나중에 tensorflow + keras 가 통합 했기 때문이다.

train_images와 train_labels가 모델이 학습해야 할 훈련세트(training set)를 구성한다.

모델은 test_images와 test_labels로 구성된 **테스트 세트(test set)**에서 테스트가 된다.

신경망의 핵심 구성 요소는 일종의 데이터 처리 필터라고 생각할 수 있는 층(layers) 이다.

조금 더 구체적으로 층은 주어진 문제에 더 의미있는 **표현(representation)**을 입력된 데이터로부터 추출한다.

대부분의 딥러닝은 간단한 층을 연결하여 구성되어 있고, 점진적으로 데이터를 정제하는 형태를 띠고 있다. 딥러닝 모델은 데이터 정제 필터(층)가 연속되어 있는 데이터 프로세싱을 위한 여과기와 같다.

신경망구조

from tensorflow.keras import models
from tensorflow.keras import layers

network = models.Sequential()
network.add(layers.Dense(512, activation = 'relu', input_shape(28 * 28, )))
network.add(layers.Dense(10, activation = 'softmax'))

이 예시에서는 조밀하게 연결된(또는 **완전 연결(fully connected)**된) 신경망 층인 Dense 층 2개가 연속되어 있다.