본문 바로가기

케라스 창시자에게 배우는 딥러닝3

신경망의 엔진: 그래디언트 기반 최적화 에전 신경망 예제에 있는 각 층은 입력 데이터를 다음과 같이 변환합니다. output = relu(dot(W, input) + b) 텐서 W와 b는 층의 속성처럼 볼 수 있습니다. 가중치(weight) 또는 훈련된 파라미터라고 부릅니다(각각 커널과 편향이라고 부르기도 합니다). 가중치에는 훈련 데이터를 신경망에 노출시켜서 학습된 정보가 담겨 있습니다. 초기에는 가중치 행렬이 작은 난수로 채워져 있습니다(무작위 초기화 단계). 의미 없는 표현이 만들어지지만, 피드백 신호에 기초하여 가중치가 점진적으로 조정됩니다. 점진적인 조정 또는 훈련이 머신 러닝 학습의 핵심입니다. 훈련은 다음과 같은 훈련 반복 루프 안에서 일어납니다. 후련 샘플 x와 이에 상응하는 타깃 y의 배치를 추출합니다. x를 사용하여 네트워크.. 2020. 1. 1.
신경망의 톱니바퀴: 텐서 연산 심층 신경망이 학습한 모든 변환을 수치 데이터 텐서에 적용하는 몇 종류의 텐서 연산으로 나타낼 수 있습니다. 예를 들어 텐서 덧셈이나 텐서 곱셈 등입니다. 케라스의 층은 다음과 같이 생성합니다. keras.layers.Dense(512, activation='relu') 이 층은 2D 텐서를 입력으로 받고 입력 텐서의 새로운 표현인 또 다른 2D 텐서를 반환하는 함수처럼 해석할 수 있습니다. output = relu(dot(W, input) + b) W는 2D 텐서고, b는 벡터입니다. 위에서 3개의 텐서 연산이 있습니다. 입력 텐서와 텐서 W 사이의 점곱(dot), 점곱의 결과인 2D 텐서와 벡터 b 사이의 덧셈, 마지막으로 relu 연산입니다. 원소별 연산 relu 함수와 덧셈은 원소별 연산입니다. .. 2019. 12. 30.
신경망 만남 및 데이터 표현 신경망과의 첫 만남 흑백 손글씨 숫자 이미지(28 X 28 픽셀)를 10개의 범주(0에서 9까지)로 분류하겠습니다. 머신 러닝 커뮤니티에서 고전으로 취급받는 데이터셋인 MNIST를 사용하겠습니다. 이 데이터셋은 6만 개의 훈련 이미지와 1만 개의 테스트 이미지로 구성되어 있습니다. MNIST 문제를 알고리즘이 제대로 작동하는지 확인하기 위한 딥러닝계의 "hello world"라고 생각해도 됩니다. from keras.datasets import mnist (train_images, train_labels), (test_images, test_labels) = mnist.load_data() MNIST 데이터셋은 넘파이 배열 형태로 케라스에 이미 포함되어 있습니다. 케라스에서 MNIST 데이터셋을 적재하였.. 2019. 12. 28.