본문 바로가기

Data Analysis/Deep Learning

(5)
Keras / Sequential Model vs Functional Model Keras 모델을 만드는 방법은 Sequential과 Functional로 두가지 방법이 있다. Sequential Model은 레이어를 층층이 쌓아가는 방법으로 일반적으로 딥러닝 네트워크 구조를 생각할 때 Sequential Model의 구조를 떠올린다. Layer-by-layer 쌓아올리는 방법으로, layer를 공유하는 구조나 다중 입력/출력을 사용하지 못한다는 한계가 있다. Functional Model은 Layer가 앞/뒤 layer에만 연결된 구조뿐 아니라 훨씬 더 자유자재로 그 구조를 정의하여 사용할 수 있게 된다. Layer를 어떤 layer에든지 연결해서 사용할 수 있는 것이다. 그래서 siamese 네트워크와 residual 네트워크 같은 복잡한 구조의 네트워크를 만들수 있게 된다. S..
Long Short-Term Memory(LSTM) 장기 의존성 문제(the problem of Long-Term Dependencies)Vanlia RNN (Keras에서는 Simple RNN이라고 부름)은 Sequence의 길이가 길수록 성능이 떨어진다.시점(time step)이 길어질수록 앞의 정보가 충분히 전달되지 못하는 현상이 발생한다.이를 장기 의존성 문제라고 한다.위의 그림은 첫번째 입력값인 x_1의 정보량을 짙은 남색으로 표현했을 때, 색이 점차 얕아지는 것으로 시점이 지날수록 x_1의 정보량이 손실되어가는 과정을 표현하였다. 뒤로 갈수록 x_1의 정보량은 손실되고, 시점이 충분히 긴 상황에서는 x_1의 전체 정보에 대한 영향력은 거의 의미가 없을 수도 있다. 바닐라 RNN의 내부 구조LSTM에 대해서 이해해보기 전에 바닐라 RNN의 뚜껑을..
Recurrent Neural Network(RNN) 순환 신경망 (Recurrent Neural Network, RNN)입력과 출력을 시퀀스 단위로 처리하는 시퀀스(Sequence)모델RNN은 입력과 출력의 길이를 다르게 설계 할 수 있으므로 다양한 용도로 사용할 수 있다. 메모리 셀, RNN 셀RNN은 은닉층의 노드에서 활성화 함수를 통해 나온 결과값을 출력층 방향으로도 보내면서, 다시 은닉층 노드의 다음 계산의 입력으로 보내는 특징을 갖고 있다.위의 그림을 보면, x는 입력층의 입력 벡터, y는 출력층의 출력 벡터이다. 실제로는 편향 b도 입력으로 존재할 수 있지만, 앞으로의 그림에서는 생략한다. RNN에서 은닉층에서 활성화 함수를 통해 결과를 내보내는 역할을 하는 노드를 셀(cell)이라고 한다. 이 셀은 이전의 값을 기억하려고 하는 일종의 메모리 ..
딥러닝과 머신러닝 딥러닝과 머신러닝은 다르지 않다고 말하는 이들이 많다. 하지만 이를 구분하는 아주 명확한 척도가 있다. 머신 러닝딥 러닝분류 기준Label 이용에 따라서 분류를 함- Supervised Learning- Unsupervised Learning- Reinforcement LearningLabel에 따른 분류가 아닌 Learning 구조(방법)에 따른 분류- Supervised Deep Learning- Unsupervised Deep Learning- Deep Reinforcement Learning Shallow Learning딥러닝의 반댓말은 Shallow Learning 이다.Shallow Learning : Input에서 Output으로 도출되는 알고리즘이 1단계Deep Learning : Inpu..
Intra-class Variability / Inter-class Variability 딥러닝은 Feature Learning이다. Feature를 스스로 찾아주지만, 많은 데이터를 필요로 한다. 최대한 좋은 피쳐를 찾아서 데이터 셋을 구성해야 효율이 올라간다. - Intra-class Variability: 개별 Class의 분산- Inter-class Variability: Class 간의 분산Classification의 성능이 가장 높게 나오는 경우는 1,1 배열에 있는 경우이다. 일반적인 Real Data는 2,2 배열에 있는 경우와 같이 각 데이터의 필드가 섞여있다. 모델의 목적에 따라 Inter-class Variability는 작고, Intra-class Variability는 큰 데이터 셋으로 정돈하여 Input을 만들어주는 것이 중요하다.  예시)성적(Y)를 예측하라.X: ..