Sequential() 함수와 Dense() 함수는 2장에서 이미 소개한 바 있습니다. 이 함수를 불러와 선형 회귀를 실행하는 코드는 다음과 같습니다.
1, =1, ='linear')) ----- ➊ .compile( ='sgd', ='mse') ----- ➋ .fit( , , =2000) ----- ➌.add(Dense(
단 세 줄의 코드에 앞서 공부한 모든 것이 담겨 있습니다. 어떻게 설정하는지 살펴보겠습니다.
➊ 먼저 가설 함수는 H(x) = wx + b입니다. 이때 출력되는 값(=성적)이 하나씩이므로 Dense() 함수의 첫 번째 인자에 1이라고 설정합니다. 입력될 변수(=학습 시간)도 하나뿐이므로 input_dim 역시 1이라고 설정합니다. 입력된 값을 다음 층으로 넘길 때 각 값을 어떻게 처리할지를 결정하는 함수를 활성화 함수라고 합니다. activation은 활성화 함수를 정하는 옵션입니다. 여기에서는 선형 회귀를 다루고 있으므로 'linear'라고 적어 주면 됩니다. 딥러닝 목적에 따라 다른 활성화 함수를 넣을 수 있는데, 예를 들어 다음 절에서 배울 시그모이드 함수가 필요하다면 ‘sigmoid’라고 넣어 주는 식입니다. 딥러닝에서 사용하는 여러 가지 활성화 함수에 대해서는 9장에서 상세히 배웁니다. ➋ 앞서 배운 경사 하강법을 실행하려면 옵티마이저에 sgd라고 설정합니다. 손실 함수는 평균 제곱 오차를 사용할 것이므로 mse라고 설정합니다. ➌ 끝으로 앞서 따로 적어 주었던 epochs 숫자를 model.fit() 함수에 적습니다.
학습 시간(x)이 입력되었을 때의 예측 점수는 model.predict(x)로 알 수 있습니다. 예측 점수로 그래프를 그려 보면 다음과 같습니다.
plt.scatter( , ) plt.plot( , .predict( ), 'r') # 예측 결과를 그래프로 나타냅니다. plt.show()
이제 모든 코드를 모아 보면 다음과 같습니다.