분류와 회귀의 차이
분류
- 카테고리의 개수로 나뉘고, 그중에서 반드시 하나를 선택해야 하는 이산적 변량
회귀
- 어떤 카테고리로 나뉘는것이 아닌 구체적인 수치를 예측하도록 학습시키는 연속적 변량
AI는 체격만 보고 체중을 추론할 수 있을까?
신경망 구조
- 입력층의 크기는 7<가슴둘레,소매길이,신장,허리둘레,샅높이,머리둘레,발 길이>
- 노멀라이즈를 통해 체중값을 0~1사이 숫자로 변환하기 위해 sigmoid함수를 활성화 함수로 적용한다.
층수 | 종류 | 크기 | 활성화 함수 |
---|
1층 | FNN | 7 | 없음 |
2층 | FNN | 256 | ReLu |
3층 | FNN | 256 | ReLu |
4층 | FNN | 256 | ReLu |
5층 | FNN | 256 | ReLu |
6층 | FNN | 1 | sigmoid |
딥러닝 모델 코딩
"""
Author : Byunghyun Ban
from tensorflow import keras
import data_reader
EPOCHS = 50
dr = data_reader.DataReader()
model = keras.Sequential([
keras.layers.Dense(7),
keras.layers.Dense(256, activation="relu"),
keras.layers.Dense(256, activation="relu"),
keras.layers.Dense(256, activation="relu"),
keras.layers.Dense(256, activation="relu"),
keras.layers.Dense(1, activation='sigmoid')
])
model.compile(optimizer="adam", loss="mse", metrics=['mae'])
print("\n\n************ TRAINING START ************ ")
early_stop = keras.callbacks.EarlyStopping(monitor='val_loss', patience=10)
history = model.fit(dr.train_X, dr.train_Y, epochs=EPOCHS,
validation_data=(dr.test_X, dr.test_Y),
callbacks=[early_stop])
data_reader.draw_graph(model(dr.test_X), dr.test_Y, history)
