## 인프런_딥러닝 강의
해당 글은 인프런 모두를 위한 딥러닝 - 홍콩과기대 김성훈 교수님의 강의를 보며 정리한 노트입니다.
@ 세션6. Softmax Regression
- logistic regression 복습
- H(x) = Wx의 결과가 1을 초과한 큰 값이 나오므로 이를 z로 생각하고, g(z)라는 수식이 큰 값들을 0과 1사이로 압축해줌.
- x -> w -> z -> y의 햇 // z를 통해 시그모이드로 변환, y햇은 0과 1사이
- 2개의 결과를 구분 짓은 리니어를 그리는 것.
- multinomial classification ( 여러개의 입력을 통한 여러개의 결과 )
- binary classification으로 multinomial classification 구현이 가능함.
- ex) a, b, c가 있는 경우 a b / c - c or not, b / a c - b or not, a / b c - a or not
- y --s(y)--> p(모두 합하면 1, 확률) <-one-hot enncoding-> 하나의 유력한 값이 1로 변함.
- cross-entropy cost function, 결과를 예측하기 위해 위 수식에 대입하여 0이 나오면 cost가 0이므로 결과가 적중한다는 의미임.
- Cross-entropy VS Logistic cost
- Gradient descent 똑같이 적용.
- tensorflow에 적용.
- hypothesis = tf.nn.softmax(tf.matmul(X,W)+b)
- Cost function : cross entropy
- cost = tf.reduce_mean(-tf.reduce_sum(Y * tf.log(hypothesis), axis=1))
- optimizer = tf.train.GradientDescentOptimizer(learning_rata=0.1).minimize(cost)
@ 세션7 Learning rate, Evaluation
- learning rate를 잘못 설정할 경우.
- test data를 통해 모델을 다시 한번 재 평가하여 확인해주어야 함.
- training과 test datasets을 나누어야 함. 모델의 정확도를 파악해야 하기 때문임
- training : 모델에 학습되는 데이터 / test datasets : 모델이 한번도 보지 못한 데이터
- learning rate가 너무 크면, 움직이는 폭이 커서 밖으로 튀어나가는 overshooting이 발생할 수 있음
- learning rate가 너무 작으면 학습이 너무 느려서 진행이 안될 수 있으며, 작은 굴곡이 존재하면 그 안에서 갇히는 문제가 발생 - local minima 현상
- 이 문제를 normalization 정규화를 통해 0~1사이의 값을 매겨주는 일반화 과정을 거침.
- 데이터 크기가 들쭉날쭉할때는 일반화 과정을 하는 것이 좋음
- overfitting 문제 : 너무 데이터에 집착(너무 line을 구부리는)하여 타 모델에 직접 적용되었을 경우 일반적인 결과를 내지 못할 수 있음.
- 이를 해결하기 위해 더 많은 트레이닝 데이터, 갖고 있는 feature의 갯수를 줄이거나 Regularization(일반화)를 거침.
- regularization은 각 요소들을 제곱하여 더한 것에 regularization strength를 곱한 것을 loss 함수에 더하면 됨.
'▶개발 > 머신러닝&딥러닝(ML,DL)' 카테고리의 다른 글
딥러닝 Backpropagation, L2 regularization (1) | 2018.06.02 |
---|---|
(딥러닝 정리노트 #4) 딥러닝의 역사, XOR문제 (0) | 2018.06.01 |
(딥러닝 정리노트 #2) Binary Classification-Logistic regression (0) | 2018.05.30 |
(딥러닝 정리노트 #1) 딥러닝개요와 Linear Regression (0) | 2018.05.30 |
딥러닝 사례분석 : 자율주행 자동차 (0) | 2018.05.15 |