문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
2018_08 [2018/08/13 09:36] ehmoon |
2018_08 [2018/08/16 07:54] ehmoon |
||
---|---|---|---|
줄 234: | 줄 234: | ||
계산해주는 프로그램 개발해야 함. | 계산해주는 프로그램 개발해야 함. | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== 14일 화요일 ===== | ||
+ | |||
+ | [Study] | ||
+ | |||
+ | 모두를 위한 머신러닝 lecture 7. ML의 실용과 몇가지 팁 부분 공부 | ||
+ | |||
+ | 이번 챕터는 약간 짬뽕같은 느낌. 정리를 하자면 | ||
+ | |||
+ | (1) running rate | ||
+ | |||
+ | (2) Overfitting | ||
+ | |||
+ | (3) Regularization | ||
+ | |||
+ | 먼저 running rate같은 경우는 학습을 할때, 너무 러닝 rate을 너무 크게 잡으면 | ||
+ | |||
+ | overshooting 발생하여 데이터값이 위로 튀어버리고, | ||
+ | |||
+ | 가 너무 느리게 돌아가므로 트레이닝이 끝났을때 optimal value를 찾아가지 못함. | ||
+ | |||
+ | 따라서 제대로 cost 값이 측정이 안된다면 running rate 의심해봐야 함. | ||
+ | |||
+ | 다음으로 overfitting 부분은 트레이닝을 많이 시킨다고 다 좋을것 같지만, | ||
+ | |||
+ | 오히려 너무 많은 트레이닝은 트레이닝 데이터에 의존되므로 좋지 못함. | ||
+ | |||
+ | overfitting을 해결하는 방법으로는 3가지가 있음. | ||
+ | |||
+ | (1) training data의 양을 늘림 | ||
+ | |||
+ | (2) feature의 개수를 줄임 | ||
+ | |||
+ | (3) regularization | ||
+ | |||
+ | regularization은 feature 끼리의 분포가 너무 크거나 작을때 cost function을 그려보면 | ||
+ | |||
+ | 찌그러져버리는 현상이 생기는데 이때 사용하는 방법. | ||
+ | |||
+ | 모든 feature들의 range를 같은 범주로 정규화 시켜서 평평한 모양의 cost function을 만들어줌. | ||
+ | |||
+ | lecture는 이정도 진행했고, | ||
+ | |||
+ | 텐서플로에서 제공하는 mnist 데이터 이용하여 image classification 실습해봄. | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== 15일 수요일 ===== | ||
+ | |||
+ | 공휴일 | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== 16일 목요일 ===== | ||
+ | |||
+ | [Study] | ||
+ | |||
+ | 모두를 위한 머신러닝 lecture 8. 딥러닝의 기본 개념 lecture 9. MNL과 Backpropagation | ||
+ | |||
+ | 본격적인 Deep Learning 부분에 접어 듬. 학부 및 석사 수업시간에 배울때보다 훨씬 깊이 | ||
+ | |||
+ | 들어가서 이해하는데 시간이 걸렸지만 원론적으로 따라가다보니 이런 내용이었구나 신기함을 | ||
+ | |||
+ | 느낌. 요약하자면, | ||
+ | |||
+ | 이 방법은 선형 모델을 따르기때문에 XOR같은 비선형 문제는 해결하지 못함. | ||
+ | |||
+ | 그래서 해결책으로 제시된 방법이 다층 Layer를 설계하는 것. | ||
+ | |||
+ | 근데 이 역시도 문제가 있는게, 기존의 단층 Layer 모델에서는 신경망의 가중치를 학습시킬때 | ||
+ | |||
+ | cost function을 minimal 하게 optimization 하는 방향으로 일종의 learning 을 진행해 | ||
+ | |||
+ | 나갔었는데 다층 신경망이 되니, 각각의 perceptron에서의 미분 값 (즉, 각각의 perceptron들의 | ||
+ | |||
+ | 가중치가 최종 output에 얼마나 영향을 끼치는지의 정도)를 구하는데에는 막대한 계산량이 필요함. | ||
+ | |||
+ | 이유는 각 layer의 노드들끼리 input과 output이 연결되있는 구조 탓에 미분 값을 구하려면 | ||
+ | |||
+ | chain rull에 의해 이전 cost function의 결과 값을 알아야 하기 때문. | ||
+ | |||
+ | 그러나 이 한계를 가능하게 한 이론이 등장했는데, | ||
+ | |||
+ | 발견했고, | ||
+ | |||
+ | Backpropagation 알고리즘. 이름 그대로 각 Layer의 가중치 값들을 역전파 시키면서 갱신해나가는 | ||
+ | |||
+ | 방법. 이 방법은 뒤로 돌아올때 이미 계산해 놓은 미분값을 다음 뉴런에서 바로 이용할 수 있으므로 | ||
+ | |||
+ | chain rull의 한계를 교묘하게 넘어갈 수 있음. | ||
+ | |||
+ | 아무튼 이런 이론적인 바탕아래, | ||
+ | |||
+ | 신경망이 구현 가능해짐. | ||
+ | |||
+ | 내일부터는 DNN 관련 코딩 실습해보고 나머지 진도 진행해야 함. | ||