- Model
- Layer
- Dense
- Activation
- Loss
- Optimizer
- Metrics
- Predict
- 사용자 매뉴얼
- 사용 라이브러리 지정
- Device 지정
- Trouble Shooting
- 용어 사전
- AI
- 딥러닝 모델
- Activation Function (활성화 함수)
- Loss Function (손실 함수)
- Optimizer (최적화)
- 기타 용어
- 참고 문헌
[[Tensorflow]], [[Theano]], CNTK 등을 사용하기 편하게 해주는 Keras를 정리 한다.
Model
Layer
from keras.models import Sequential
model = Sequential()
Dense
from keras.layers import Dense
model.add(Dense(units=128, activation='relu', input_shape=(x_train.shape[1](1.md), )))
model.add(Dense(units=1))
Activation
은닉층에서 사용하는 Activation
relu
linear. 계산된 값을 그대로 출력으로 보냄
출력층에서 사용하는 Activation
sigmoid. 이진 분류
softmax. 다중 분류
Loss
categorical_crossentropy : 분류시 사용
mse : 값 예측시 사용
model.compile(loss='categorical_crossentropy', optimizer=sgd(lr=0.01, momentum=0.9), metrics=['accuracy']('accuracy'.md))
model.compile(loss='mse', optimizer=sgd(lr=0.01, momentum=0.9), metrics=['accuracy']('accuracy'.md))
사용자 정의 loss 함수 지정
import numpy as np
import tensorflow as tf
def ml_mean_squared_error(y, pred):
return tf.sqrt(np.mean(tf.square(y - pred), axis=-1))
model.compile(loss=ml_mean_squared_error, optimizer=Adam(lr=0.01), metrics=['accuracy']('accuracy'.md))
Optimizer
sgd (확률적 경사 하강법)
학습률 (LR, Learning Rate) : 0.1, 0.01
momentum : 학습률 값을 고정하고 모멘텀 항으로 매개변수의 변경값을 조정
nesterov : True. 순수한 momentum을 약간 변형함
from keras.optimizers import SGD
model.compile(loss='mse', optimizer=SGD(lr=0.1, momentum=0.9, nesterov=True), metrics=['accuracy']('accuracy'.md))
adagrad : 학습률을 조정하며 학습
from keras.optimizers import Adagrad
model.compile(loss='mse', optimizer=Adagrad(lr=0.01, epsilon=1e-6), metrics=['accuracy']('accuracy'.md))
adadelta : adagrad을 보완
from keras.optimizers import Adadelta
model.compile(loss='mse', optimizer=Adadelta(rho=0.95), metrics=['accuracy']('accuracy'.md))
rmsprop : adagrad을 보완
from keras.optimizers import RMSprop
model.compile(loss='mse', optimizer=RMSprop(lr=0.001, rho=0.9, epsilon=1e-08, decay=0.0), metrics=['accuracy']('accuracy'.md))
adam : 값을 예측할 경우 사용
from keras.optimizers import Adam
model.compile(loss='mse', optimizer=Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0), metrics=['accuracy']('accuracy'.md))
adamax
nadam
참고 문헌
Metrics
accuracy : 정확도
Predict
사용자 매뉴얼
사용 라이브러리 지정
"c:/사용자/{사용자_이름}/.keras/keras.json" 파일에서 backend를 지정 한다.
backend : tensorflow, theano, cntk
{
"backend": "tensorflow",
"image_data_format": "channels_last",
"floatx": "float32",
"epsilon": 1e-07
}
Device 지정
Device 목록 확인
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
Device 사용 지정
import keras.backend.tensorflow_backend
with tensorflow_backend .tf.device('/gpu:0'):
#--- Keras 코드
Trouble Shooting
용어 사전
AI
AI (Artificial Intelligence, 인공지능)
ML (Machine Learning, 머신러닝)
Deep Learning (딥러닝)
딥러닝 모델
FNN (Feedforward Neural Network)
CNN (Convolutional Neural Network, 합성곱 신경망) : 영상 인식
RNN (Recurrent Neural Network, 순환 신경망) : 음성 인식, 언어 번역
Recurrent Weight
BPTT (Back Propagation Throuth Time)
LSTM (Long Short Term Memory, 장단기 메모리 셀)
Activation Function (활성화 함수)
연속값
ReLU (Rectified Linear Unit)
linear
분류
sigmoid : 이진 분류
softmax : 다중 분류
Loss Function (손실 함수)
연속값
MSE (Mean Squared Error, 평균 제곱 오차)
RMSE (Root Mean Squared Error, 평균 제곱근 오차)
Cross Entropy
분류
categorical_crossentropy
Optimizer (최적화)
SGD (Stochastic Gradient Descent, 확률적 경사 하강법)
LR (Learning Rate, 학습률)
Momentum (모멘텀)
adagrad
adadelta
rmsprop
adam
adamax
nadam
기타 용어
Logistic Regression : 로지스틱 회귀
Perceptron (퍼셉트론) : 신경망을 이루는 기본 단위
y = wx + b (w. weight, 가중치, b. bias, 바이어스)
Back Propagation : 오차 역전파