Lecture09 강의
하나의 logistic regression unit은 XOR문제를 해결할 수 없음. 따라서 여러개 즉,Multiple logistic regression units를 통해 문제를 해결한다.
Forward propagation을 진행하면서 값을 갱신한다.
Backpropagation
(using chain rule)
Lecture10 강의
NN을 deep and wide한 형태로 바꾸었더니 그 결과가 좋지않았는데 backpropagation을 하면서 생기는 vanishing gradient한 문제가 생기고 이에 대한 해결 방법으로 activation function으로 sigmoid가 아닌 RELU를 쓰고 RBM(2layer씩 forward->backward한 그 가중치에 대해 새롭게 initialize하는 것)방법을 써서 weight에 대한 초기값을 정의한다.
그런데 이러한 RBM은 simple method로 가능한데 그에 대한 예가 Xavier initialization.
overfitting
training dataset에 대해서는 좋은 accuracy의 결과를 내나 test dataset에 대해서는 accuracy가 떨어지는 결과를 내는 경우 이에대한 solution으로 1. training data를 더 많이 둔다. 2.특징들의 개수를 줄인다. 3.Regularization과 같은 것들이 있는데 이는 weight에 너무 큰 수자를 두지 않게 하는 것으로 regularization strenght를 두는 term을 식에 추가하거나 "Dropout"(몇개의 노드들을 nonactive하게 하는 것으로(off시킴으로써))앞서 말했던 overfitting과 같은 결과를 방지한다.
그리고 이때 주의해야 될 사항으로는 dropout_rate와 같은 인자를 traing할때는 1미만으로 하여서 dropout을 적용시키지만 실제 test 즉, evaluation할때는 1로 모든 node를 activation한 상태로 두어야 한다는 것이다.
emsemble(앙상블)은 각각의 trainingset을 만들어서 training 시킨 후 결과값을 combine하는 과정을 거칩니다.
NN의 skill및 종류에는
Fast forward처럼 결과값을 layers를 몇개 건너뛴 뒤의 결과값으로 적용시키는 것과
split & merge
나눠서 training을 적용하고 그 결과 값을 다시 merge시키는 방법. 시간순으로 전개되는 정보까지 반영하는, 그러니까 input과 더불어서 전 단계에서의 state까지 반영하는 Recurrent network 즉 RNN이 있는 것을 알 수 있다.
Lecture11 강의
CNN(:Convolutional Neural Networks)
input size N, filter size F stride 라고 할때 output size는 (N-F)/stride + 1이다.
zero padding을 한다면 결과 값이 처음 input size랑 같고, CNN에서 진행되는 pooling 즉, sampling은 주로 Maxpooling으로 그 값에 대해서 가장 큰 값을 고르는 것이다. 그렇다면 CNN의 종류에는 어떤 것들이 있는지 보면 AlexNet, Google Net,VGGNet,ResNet과 같은 것들이 있다.
Lecture12 강의
RNN은 이전의 상태가 이후에 영향을 미치도록 하는것으로
t시점의 new state는 t-1시점의 old state와 t시점의 input vector를 weight를 반영하는 특정 function을 통과시켜서 얻는 것을 알 수 있습니다.
RNN application으로는 language modeling, speech recognition, machine translation, ...등이 있고 따라서 그에 맞는 모델 또한 one to one, one to many, many to one, many to many와 같이 있는 것을 알 수 있습니다.