Lecture

TensorFlow로 간단한 선형 회귀 모델 만들기

선형 회귀는 입력과 출력 사이의 선형 관계(직선으로 표현 가능한 관계)를 모델링하는 머신러닝 알고리즘입니다.

예를 들어, 다음과 같은 관계를 생각해보겠습니다.

  • x가 1일 때 y가 2

  • x가 2일 때 y가 4

  • x가 3일 때 y가 6

이러한 관계는 y = 2x와 같은 선형 관계로 표현할 수 있습니다.

아래 코드는 컴퓨터가 숫자의 패턴을 학습하도록 돕는 간단한 머신러닝 모델을 만드는 예제입니다.

쉽게 설명하면, 주어진 숫자를 입력하면 그 숫자의 두 배를 출력하도록 컴퓨터가 스스로 학습하게 됩니다.

선형 회귀 모델 예제
import tensorflow as tf import numpy as np # 입력 데이터 정의 x_train = np.array([1, 2, 3, 4, 5], dtype=np.float32) # 출력 데이터 정의 y_train = np.array([2, 4, 6, 8, 10], dtype=np.float32) # 모델 생성 model = tf.keras.Sequential([ # 입력값이 1개이고 출력값이 1개인 Dense 레이어 생성 tf.keras.layers.Dense(units=1, input_shape=[1]) ]) # 모델 컴파일 model.compile(optimizer='sgd', loss='mean_squared_error') # 데이터를 100번 반복 학습하여 규칙을 익히게 함 model.fit(x_train, y_train, epochs=100, verbose=1) # 예측 수행 print(model.predict([6])) # 예상 출력: 12에 가까운 값

코드의 각 부분을 살펴보면 다음과 같습니다.


1. 입력과 출력 데이터 정의

x_train은 입력 데이터(1, 2, 3, 4, 5)이고, y_train은 출력 데이터(2, 4, 6, 8, 10)입니다.

즉, 입력값을 2배 한 값이 출력이 됩니다.


2. 모델 생성

tf.keras.Sequential()을 사용하여 신경망 모델을 만듭니다.

Dense(units=1, input_shape=[1])은 입력과 출력이 각각 하나인 레이어를 의미합니다.


3. 모델 컴파일

optimizer='sgd'는 경사 하강법(SGD)을 사용하여 학습합니다. 경사 하강법은 손실 함수를 최소화하는 방향으로 학습합니다.

loss='mean_squared_error'는 오차를 줄이는 방법입니다.


데이터를 100번 반복 학습하여 규칙을 익히게 함

model.fit(x_train, y_train, epochs=100, verbose=1)는 데이터를 500번 반복 학습하여 규칙을 익히게 합니다.


예측 수행

model.predict([6])을 실행하면, 6의 두 배인 12에 가까운 값을 예측합니다.


이렇게 간단한 선형 회귀 모델을 만들어보았습니다.

다음 수업에서는 지금까지 텐서플로우에 대해 배운 내용을 점검하는 간단한 퀴즈를 풀어보겠습니다.

Mission
0 / 1

텐서플로우 모델을 사용하여 선형 회귀를 구현할 때, 입력 데이터와 출력 데이터 사이의 관계를 나타내는 코드는 무엇인가요?

` `은(는) 입력 데이터이고, `
x_train, y_train
model, optimizer
fit, predict
Dense, Sequential

Lecture

AI Tutor

Design

Upload

Notes

Favorites

Help