[목차]

(0) 환경 설정 : DL4J 개발 환경 설정 및 예제 설명 (完)

(1) Data Iterator : 사용하고자 하는 데이터를 DL4J 에서 사용가능한 형태로 변환하는 작업 개발 필요

• Canova: The Rosetta Stone of Vectorization

(2) Net : 사용할 신경망의 형태가 어떤 것이 있는지 이해하고 선택, 활용 할 수 있어야 함
• Restricted Boltzmann machines (完)
• Convolutional nets (完)
• Recursive autoencoders (完)
• Recurrent nets: Long Short-Term Memory (LSTM) (including bi-directional LSTMs)
• Deep-belief networks
• Denoising and Stacked Denoising autoencoders
• Deep autoencoders

(3) Activation : Weight + Bias 결과 다음 적용할 함수 결정 (예 : SigMoid : Chap1 에서 설명한 것)

• ReLU <—
• Leaky ReLU
• Tanh
• Sigmoid
• Hard Tanh
• Softmax
• Identity
• ELU: Exponential Linear Units
• Softsign
• Softplus

(4) Loss&Objective Functions : 일부 데이터를 누락함으로써 더 Robust 한 모델을 만들 수 있다.
• Reconstruction entropy
• Squared loss
• Mean squared error
• Multi-class cross entropy for classification
• Negative log likelihood
• RMSE_XENT

(5) Hyperparameters : 모든 Layer 에 공통적으로 적용되는 파라메터로 숙지 필요

• Dropout (random ommission of feature detectors to prevent overfitting)
• Sparsity (force activations of sparse/rare inputs)
• Adagrad (feature-specific learning-rate optimization)
• L1 and L2 regularization (weight decay)
• Weight transforms (useful for deep autoencoders)
• Probability distribution manipulation for initial weight generation
• Gradient normalization and clipping

(6) Event Listener & Result Anal : 분석 중간 발생하는 이벤트를 받아서 처리 및 결과에 대한 검증 및 비지니스 연동 등

1. ReLu (Rectifier Linear Unit)

– 다른 Activator 인 Sigmoid 에 대해서 설명한 것 처럼 ReLu 는 Weight, Bias, Input 으로 이루어진 결과를 보정하는 역할을 하는

또 다른 종류의 알고리즘이다. 아래의 그래프에서 파란선은 원래 값, 빨간선은 ReLu 로 보정한 결과 값이다.

K-043 K-044

 

– ReLu를 어떤 경우에 사용할지 판단하려면 ReLu 의 특성을 알아야 한다. 그럼 ReLu 과 Sigmoid 등과 어떤 차이와 장단점이 있는가.

결국 확률로 표시하고자 할 경우는 Sigmoid 가 유용할 듯하고 다음 Hidden Layer 에 Real Number 를 넘겨야 하는 경우에는 ReLu 가

더 효과적인 그런 것인듯 하다..

(1) 차이점

– Sigmoid 는 0 ~ 1 사이의 값을 갖는 반면 ReLu는 0 ~ Infinite 의 값을 갖는다. 그 말인 즉슨 Sigmoid 는 확률적인 표현만 가능한 반면

ReLu는 다음 Hidden Layer에 실제 값에 가까운 값을 전달할 수 있다는 것이다. (굉장히 큰 차이군..)

– Sigmoid 등은 탐색 과정에서 사라지는 경우가 있는데 ReLu는 그렇지 않다 (??)

(2) 장점

– Hidden Layer 의 Sparsity 를 증가 시킨다.. 결국 Density 가 출어서 Perfomance 가 올라간다는 말 같은데 어떻게 인지 모르겠음..

– 위에 말한 것처럼 Sigmoid 나 tanh 처럼 탐색중 사라지는 문제가 없다.

– 사전 트레이닝 과정 없이도 효과적으로 Net 에 트레이닝이 된다

– RBM 에 실제 데이터를 적용할 수 있다.. (위에 말한거다..)

[참조]

DL4J 공식 문서에서도 아래와 같은 예를 들어 설명하고 있는데, 결국 위에 설명된 내용중 실수 값을 전달할 수 있다가 핵심이다.

아래 그림을 그리면서 설명한 예제는 집값에 영향을 주는 요소를 Input , 예상 집값을 Ouput 으로 NN 은 설계한 예를 들은 것

결국 Hidden Layer 에서 Activator 로 Sigmoid 를 사용했다면 예상 집값은 0 ~ 1 값의 SUM 이 되어 얼토 당토 않은 결과가 나왔겠지만

하지만 ReLu 를 써서 실수 값을 예상할 수 있다. 뭐 이런 내용이다.

K-045

Categories: DeepLearning4j

Leave a Reply

Your email address will not be published. Required fields are marked *