Linear Regression TensorFlow로 구현
본 글은 모두를 위한 머신러닝/딥러닝 강의를 참고하여 작성하였습니다.
소스 코드는 DeepLearningZeroToAll를 참고 하여 작성하였습니다.
ML lab 02 - TensorFlow로 간단한 linear regression을 구현
Linear Regression의 개념에서 다루었던 내용을 TensorFlow로 구현해 보겠습니다.
먼저, 우리는 가설을 세워야 합니다.
가설은
입니다.
오늘 실습에서는 $W$와 $b$ 값에 랜덤한 값을 설정하여 사용해 보겠습니다.
Build graph using TF operations
여기서, numpy는 선형대수학에 특화 된 라이브러리 입니다.
import numpy as np
import tensorflow as tf
x_train = [1, 2, 3, 4]
y_train = [0, -1, -2, -3]
tf.model = tf.keras.Sequential()
tf.model.add(tf.keras.layers.Dense(units = 1, input_dim = 1))
keras는 여러 층을 연결 및 조합하여 모델을 만드는 머신러닝 기법으로,
층을 쌓고 연결시켜주는 것이 이 Sequential 입니다.
Dense는 입력된 값을 연산시켜주는 장치로서,
units은 출력 데이터의 shape
input_dim은 입력 데이터의 shape
을 나타냅니다.
sgd = tf.keras.optimizers.SGD(lr = 0.1)
SGD의 경우 확률을 이용하여 최적의 값을 찾아가는 방법으로,
lr은 학습률로,
값이 크면 빠르게 학습하지만, 최적의 값을 찾기 힘듭니다.
값이 작으면 느리게 학습하지만, 효율적인 값을 찾을 수 있습니다.
tf.model.compile(loss = 'mse', optimizer = sgd)
tf.model.summary()
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense (Dense) (None, 1) 2
=================================================================
Total params: 2
Trainable params: 2
Non-trainable params: 0
_________________________________________________________________
tf.model.fit(x_train, y_train, epochs = 2000)
epoch는 모델 학습에 데이터를 적용시키는 횟수로,
100으로 설정 하면, 모델에 데이터를 100번 사용하여 학습한다고 이해하면 됩니다.
y_predict = tf.model.predict(np.array([5, 4]))
print(y_predict)
[[-3.9999998]
[-2.9999998]]
댓글남기기