간단한 숫자 예측 머신러닝 모델 만들기
머신러닝(Machine Learning)
은 데이터를 이용하여 패턴을 학습하고 결과를 예측하는 기술로, AI를 구현하는 데 가장 널리 사용되는 방법 중 하나입니다.
딥러닝(Deep Learning)
은 머신러닝의 한 분야로, 인공 신경망(Artificial Neural Network)을 이용하여 복잡한 패턴을 학습하는 기술입니다.
인공 신경망은 사람의 뇌를 모방한 프로그램으로 대규모의 데이터를 학습한 다양한 층(Layer)
으로 구성되어 있으며, 각 층은 사람의 뇌와 유사한 뉴런(Neuron)
으로 이루어져 있습니다.
머신러닝과 딥러닝에 대한 자세한 내용은 추후 수업에서 본격적으로 다루며, 이번 수업에서는 가장 인기 있는 머신러닝 라이브러리 중 하나인 텐서플로우(TensorFlow)
를 활용해 간단한 머신러닝 모델을 만들어보겠습니다.
아직 코드를 이해하지 못해도 괜찮습니다! AI 모델을 만드는 파이썬 코드가 무엇을 의미하는지는 추후 수업에서 자세히 다루며, 지금은 코드를 실행해 보면서 체험하는 것에 집중해 주세요. 😊
AI 모델은 어떻게 만들어질까?
AI 모델을 만드는 과정은 크게 3단계로 이루어집니다.
-
데이터 준비 : 모델이 학습할 데이터를 준비합니다.
-
모델 정의 : 신경망의 구조를 설정합니다.
-
모델 학습 : 데이터로 모델을 학습시킨 후 결과를 확인합니다.
TensorFlow로 간단한 AI 모델 만들기
다음 코드는 숫자를 입력하면, 입력값의 제곱에 1을 더한 값(y = x^2 + 1)을 예측하는 AI 모델을 만드는 코드입니다.
이제 TensorFlow
와 함께 단계별로 따라가며, 간단한 숫자 예측 모델을 만들어 보겠습니다.
tensorflow, numpy 라이브러리 불러오기
파이썬 import
키워드로 tensorflow
와 numpy
라이브러리를 불러옵니다.
import tensorflow as tf import numpy as np
tensorflow는 코드 내에서 tf
로, numpy는 np
로 사용할 수 있습니다.
1. 데이터 준비
X
는 AI 모델을 학습시킬 입력값, Y
는 원하는 출력값입니다.
모델은 입출력값의 관계를 학습하게 됩니다.
# 확습용 데이터셋 생성 (y = x^2 + 1), x_train: 입력값 x_train = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0], dtype=np.float32) # y_train: 출력값 y_train = np.array([2.0, 5.0, 10.0, 17.0, 26.0, 37.0, 50.0, 65.0, 82.0, 100.0], dtype=np.float32)
2. 모델 정의
TensorFlow
와 Keras
를 사용해 인공지능 모델을 정의합니다.
Keras
는 머신러닝 모델을 쉽게 만들 수 있도록 도와주는 라이브러리입니다.
요리 레시피를 보고 요리를 만드는 것처럼, Keras를 사용하면 머신러닝 모델을 보다 간단한 코드로 설계할 수 있습니다.
model = tf.keras.Sequential([ # 50개의 뉴런을 가진 층, 활성화 함수는 ReLU를 사용한 입력층 tf.keras.layers.Dense(50, activation='relu', input_shape=[1]), # 50개의 뉴런을 가진 층, 활성화 함수는 ReLU를 사용한 은닉층 tf.keras.layers.Dense(50, activation='relu'), # 1개의 뉴런을 가진 출력층 tf.keras.layers.Dense(1) ])
Sequential
은 입력층 → 은닉층 → 출력층으로 구성된 층(layer)을 순차적으로 쌓아가는 방식으로 인공 신경망을 설계하는 방법입니다.
Dense
는 완전 연결층(Fully Connected Layer, FC Layer)을 의미합니다.
이는 모든 뉴런이 다음 층의 모든 뉴런과 연결되는 신경망 구조를 의미합니다.
3. 모델 학습
아래는 우리가 만든 인공지능(AI) 모델을 어떻게 학습할지 설정하는 단계입니다.
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.01), loss='mean_squared_error')
AI 모델이 데이터를 학습할 때, 다음과 같은 2가지를 설정해야 합니다.
-
오차(에러)를 계산하는 방법 :
mean_squared_error
는 평균 제곱 오차를 사용해 손실 함수를 계산합니다. 손실 함수는 모델이 예측한 값과 실제 값의 차이를 계산합니다. -
최적화 방법 :
Adam
은 최적화 방법 중 하나로, 손실 함수의 값을 줄이기 위해 가중치를 조정하는 방법입니다.
4. 모델 훈련
아래 코드는 위에서 정의한 모델을 200번 반복하여 학습시키는 코드입니다.
history = model.fit(x_train, y_train, epochs=200, verbose=1)
fit
함수는 모델을 학습시키는 함수로, x_train
과 y_train
데이터를 이용해 모델을 학습합니다.
epochs
는 전체 데이터셋을 몇 번 반복하여 학습할지를 설정하는 매개변수입니다.
5. 결과 확인
마지막으로 학습된 모델을 이용해 예측을 수행하고, 결과를 확인합니다.
x_test = np.array([2.0, 5.0, 8.0], dtype=np.float32) predictions = model.predict(x_test, verbose=1)
predict
함수는 모델을 이용해 입력값에 대한 예측값을 계산하는 함수입니다.
이후 예측값을 print 함수를 이용해 출력합니다.
지금까지 파이썬 코드를 활용해 입력된 숫자에 대한 출력을 예측하는 간단한 AI 모델을 만들어보았습니다.
앞서 말씀드린 것처럼, AI는 데이터를 통해 학습하고 예측을 수행하는 함수
입니다.
AI를 학습시키는 것은 이 함수를 정교하게 만들어가는 과정이라고 할 수 있습니다.
입력에 대한 원하는 출력을 정확하게 구현하는 AI 모델을 만들려면, 더 양질의 데이터와 복잡하게 설계된 모델이 필요합니다.
다음 수업에서는 sklearn
라이브러리를 활용해 간단한 스팸 메일 분류 모델을 만들어보겠습니다.
Lecture
AI Tutor
Design
Upload
Notes
Favorites
Help