[Lecture Notes] 세상에서 가장 간단한 신경망 2탄

A Ydobon
3 min readOct 3, 2019

--

앞서 1탄에서, 우리는 케라스를 포함한 텐서플로우 코드 5줄로 가장 간단한 신경망을 살펴보았습니다.

import tensorflow as tfmy_model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=[1])
])
my_model.compile(
loss = 'mse',
optimizer = 'adam'
)
my_model.fit([0], [1])my_model.predict([0.5])

이번에는 이 5줄 중 맨 앞 2줄에 대해 더 자세히 살펴보겠습니다. 첫번째 줄의 코드는 텐서플로우 모듈을 가져오는 기능을하고, 두번째 줄은 노드가 하나인 단층 레이어 모델을 만드는 역할을 합니다.

처음 모델을 만들면, 머신러닝을 완료하기 위해 서너 단계를 더 밟아야 하는데요, 그 내용은 아래와 같습니다:

  1. 모델에게 loss와 optimizer 할당하기
  2. 모델 학습시키기
  3. 그리고 예측 시키기
  4. (또는 정확도 측정)

아래의 코드를 살펴보면 굉장히 모델 스스로를 잘 보여주는데요,

my_model.compile(
loss = 'mse',
optimizer = 'adam'
)

위를 보면 loss는 ‘mse’로, optimizer는 ‘adam’으로 설정되어 있는 것을 알 수 있습니다. ‘mse’는 ‘mean squared errors’, 즉 평균제곱오차를 말하는 것이고, ‘adam’은 ‘adaptive moment estimation’에서 파생된 optimizer입니다.

이렇게 loss와 optimizer 두 가지를 설정해주는 것은 .compile 단계를 밟기 위해 꼭 필수적인 과정입니다. 이 두가지에 대한 설명은 향후 더 자세히 다뤄질 예정입니다 :)

my_model.fit([0], [1])

이제 my_model 은 구조(노드 하나, 레이어 하나)도 갖추고, loss function과 optimization model도 정했으니 학습시킬 시간입니다.

.fit 단계는 인풋과 아웃풋을 학습시키는 건데요, 위 코드 같은 경우 인풋은 0, 아웃풋은 1입니다. 즉, 인풋 0을 넣어 1을 아웃풋 값으로 갖고자 하는 것입니다.
0을 넣어 1을 얻는 것에 대해서 더 자세한 설명은 생략할텐데요, 그래도 .fit의 기능을 이해하는데는 충분하셨으라 믿습니다.

my_model.predict([0.5])

이제 마지막으로, 학습까지 시킨 my_model 로 새로운 아웃풋 값을 예측하거나, 모델의 정확도를 측정합니다.

세상에서 가장 간단한 신경망 2탄에서는 1탄에서 다뤘던 코드 5줄의 세부적인 부분에 대해 자세히 알아보았습니다.

도움이 많이 되셨나요?

궁금하신 점이나 개선할 점 등 댓글은 언제나 환영하고,

CLAP은 항상 큰 힘이 됩니다.

읽어주셔서 감사합니다.

--

--

A Ydobon
A Ydobon

No responses yet