"Keras"의 두 판 사이의 차이
둘러보기로 가기
검색하러 가기
잔글 (→용어 사전) |
잔글 (→용어 사전) |
||
111번째 줄: | 111번째 줄: | ||
== 용어 사전 == | == 용어 사전 == | ||
+ | |||
+ | === 딥러닝 모델 === | ||
+ | |||
+ | * FNN (Feedforward Neural Network) | ||
+ | * CNN (Convolutional Neural Network) | ||
+ | :* 이미지로부터 고수준의 추상화된 특징을 추출하거나 질감 정보를 처리하는 방법 | ||
+ | * RNN (Recurrent Neural Network) | ||
+ | :* 순차적으로 진행되는 사항을 학습 | ||
+ | :* LSTM (Long Short Term Memory) | ||
+ | |||
+ | === 기타 용어 === | ||
* Machine Learning | * Machine Learning |
2019년 5월 9일 (목) 19:48 판
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], ))) 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']) model.compile(loss='mse', optimizer=sgd(lr=0.01, momentum=0.9), metrics=['accuracy'])
사용자 정의 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'])
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'])
- adagrad : 학습률을 조정하며 학습
from keras.optimizers import Adagrad model.compile(loss='mse', optimizer=Adagrad(lr=0.01, epsilon=1e-6), metrics=['accuracy'])
- adadelta : adagrad을 보완
from keras.optimizers import Adadelta model.compile(loss='mse', optimizer=Adadelta(rho=0.95), metrics=['accuracy'])
- 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'])
- 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'])
- 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
용어 사전
딥러닝 모델
- FNN (Feedforward Neural Network)
- CNN (Convolutional Neural Network)
- 이미지로부터 고수준의 추상화된 특징을 추출하거나 질감 정보를 처리하는 방법
- RNN (Recurrent Neural Network)
- 순차적으로 진행되는 사항을 학습
- LSTM (Long Short Term Memory)
기타 용어
- Machine Learning
- Deep Learning
- Layer
- Activation : 활성화 함수
- Loss : 손실 함수
- Optimizer : 최적화 함수
- Metrics
- MSE (Mean Squared Error, 평균 제곱 오차)
- RMSE (Root Mean Squared Error, 평균 제곱근 오차)
- Gradient Decent : 경사 하강법
- Learning rate : 학습률
- Logistic Regression : 로지스틱 회귀
- Sigmoid Function : 시그모이드 함수
- Perceptron (퍼셉트론) : 신경망을 이루는 기본 단위
- y = wx + b (w. weight, 가중치, b. bias, 바이어스)
- Back Propagation : 오차 역전파
- SGD (Stochastic Gradient Descent, 확률적 경사 하강법)