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에 가까운 값을 예측합니다.
이렇게 간단한 선형 회귀 모델을 만들어보았습니다.
다음 수업에서는 지금까지 텐서플로우에 대해 배운 내용을 점검하는 간단한 퀴즈를 풀어보겠습니다.
이 챕터의 강의 · 데이터에서 패턴을 학습하는 프로그램, 머신러닝
- 1. 화제의 그 단어, 머신러닝이란?
- 2. 인간의 뇌를 모방한 신경망이란?
- 3. 퍼셉트론이 동작하는 원리
- 4. 머신러닝을 더 깊게, 딥러닝이란?
- 5. 머신러닝 vs 딥러닝 핵심 차이점 정리
- 6. 선택형 퀴즈
- 7. AI를 학습시킨다는 것은 무슨 의미일까?
- 8. AI 학습의 결과물 - 행렬로 구성된 파일
- 9. 정답과 함께 알려주는 지도 학습
- 10. 정답 없이 스스로 패턴을 찾는 비지도 학습
- 11. 보상을 통해 배우는 강화 학습
- 12. 빈칸 채우기 퀴즈
- 13. 머신러닝과 딥러닝을 위한 라이브러리, TensorFlow
- 14. 텐서플로우의 기본 단위, 텐서(Tensor)
- 15. 텐서의 차원
- 16. 선택형 퀴즈
- 17. 텐서 연산 이해하기
- 18. 자주 사용하는 TensorFlow API 5가지
- 19. TensorFlow로 간단한 선형 회귀 모델 만들기
- 20. 빈칸 채우기 퀴즈
- 21. 쉽고 직관적인 신경망 라이브러리, Keras
- 22. Keras를 활용한 모델 학습 및 평가
- 23. 선택형 퀴즈
텐서플로우 모델을 사용하여 선형 회귀를 구현할 때, 입력 데이터와 출력 데이터 사이의 관계를 나타내는 코드는 무엇인가요?
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말