import tensorflow as tf
from tensorflow import keras
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
keras.backend.clear_session()
model = keras.models.Sequential()
model.add(keras.layers.Input(shape = (a, ))) # Input 레이어 추가
model.add(keras.layers.Dense(b)) # Output 레이어 추가
model.compile(loss = 'mse', optimizer = 'adam')
# loss = keras.losses.mean_squared_error 대체 가능
# optimizer = keras.optimizer.Adam() 대체 가능
model.fit(x, y, epochs = n, verbose = m)
# 1. 세션 클리어
keras.backend.clear_session()
# 2. 모델 생성
model = keras.models.Sequential()
# 3. 레이어 쌓기
model.add(keras.layers.Input(shape = (a, )))
model.add(keras.layers.Dense(b))
# 4. 컴파일
model.compile(loss = 'mse', optimizer = 'adam')
# 5. 학습하기
model.fit(x, y, epochs = n, verbose = m)
model.add(keras.layers.Input(shape = (a, )))
model.add(keras.layers.Dense(b, activation = 'sigmoid'))
model.compile(loss = 'binary_crossentropy', metrics = ['accuracy'], optimizer = 'adam')
# 1. 세션 클리어
keras.backend.clear_session()
# 2. 모델 생성
model = keras.models.Sequential()
# 3. 레이어 쌓기
model.add(keras.layers.Input(shape = (a, )))
model.add(keras.layers.Dense(b, activation = 'sigmoid'))
# 4. 컴파일
model.compile(loss = 'binary_crossentropy',
metrics = ['accuracy'],
optimizer = 'adam')
# 5. 학습하기
model.fit(x, y, epochs = n, verbose = m)
from tensorflow.keras.utils import to_categorical
y = to_categorical(y, k)
model.add(keras.layers.Input(shape = (a, )))
model.add(keras.layers.Dense(b, activation = 'softmax'))
model.compile(loss = 'categorical_crossentropy',
metrics = ['accuracy],
optimizer = 'adam')
# 0. 인코딩
y = to_categorical(y, k)
# 1. 세션 클리어
keras.backend.clear_session()
# 2. 모델 생성
model = keras.models.Sequential()
# 3. 레이어 쌓기
model.add(keras.layers.Input(shape = (a, )))
model.add(keras.layers.Dense(b, activation = 'softmax))
# 4. 컴파일
model.compile(loss = 'categorical_crossentropy',
metrics = ['accuracy],
optimizer = 'adam')
# 5. 학습하기
model.fit(x, y, epochs = n, verbose = m)
딥러닝은 '연결주의 학파'의 알고리즘.
딥러닝 프레임워크에는 Tensorflow(구글) vs pyTorch(메타) 양대산맥이 있음.
keras는 high level API로 유저친화적이기 때문에 딥러닝을 입문에 배우기 좋음.
딥러닝 실습 과정에서 머신러닝도 같이 적용해보고 비교해보니, 머신러닝 성능이 더 우수했음.
딥러닝 성능을 향상시키는 방법은 아직 배우지 않았기에, 하이퍼파라미터 조정이 중요함을 알 수 있었음.
선형 회귀 | 로지스틱 회귀 | 멀티 클래스 분류 | |
---|---|---|---|
activation (활성화 함수) | linear | sigmoid | softmax |
loss (손실함수) | mse | binary_crossentropy | categorical_crossentropy |
metrics (평가 지표) | x | accuracy | accuracy |