상단

[[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 : 오차 역전파

 
 

참고 문헌


 
 

분류: BigData 
오픈소스 
Cloud

최종 수정일: 2024-09-30 12:26:18

이전글 :
다음글 :