문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
2018_08 [2018/08/14 06:58] ehmoon |
2018_08 [2018/08/17 08:28] ehmoon |
||
---|---|---|---|
줄 282: | 줄 282: | ||
텐서플로에서 제공하는 mnist 데이터 이용하여 image classification 실습해봄. | 텐서플로에서 제공하는 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 관련 코딩 실습해보고 나머지 진도 진행해야 함. | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== 17일 금요일 ===== | ||
+ | |||
+ | [Study] | ||
+ | |||
+ | 모두를 위한 머신러닝 lecture 9. Backpropagation 실습 lecture 10. DNN Breakthrough | ||
+ | |||
+ | 어제 이론수업듣고 중간에 멈춘 9장 실습 진행. 이 전에는 1 Layer의 뉴런으로 학습하여 문제를 | ||
+ | |||
+ | 해결했었고, | ||
+ | |||
+ | 이 모델이 성능이 좋을것 같지만, XOR 문제를 (비선형적인 문제) 학습하여 돌려보면 accuracy가 | ||
+ | |||
+ | 엉망이 됌. 이유는 하나의 뉴런으로는 선형문제를 해결할 수가 없기때문. (물론 요즘에는 커널 | ||
+ | |||
+ | 알고리즘이라고 해서 차원을 늘려 위아래로 쪼개는 방법도 나왔다고 하지만 단순히 뉴런을 이용한 | ||
+ | |||
+ | 모델에서는 해결할 방법이 없다는 것이 명백히 증명되었음) | ||
+ | |||
+ | 이 문제를 해결하기 위해 뉴런을 하나 더 늘리고 (Layer를 늘리고) W의 input개수와 output개수를 | ||
+ | |||
+ | 잘 맞춰서 돌려보니 높은 accuracy 나옴. 그리고 tensorflow 노드들의 값이 변하는 과정을 | ||
+ | |||
+ | 찍어보는 방법으로 tensorbord 사용하는 방법도 실습해 봄. | ||
+ | |||
+ | 다음으로는 10장 DNN의 Breakthrough에 대해 강의를 들었는데, | ||
+ | |||
+ | DNN의 연구적인 흐름을 알아야 함. | ||
+ | |||
+ | 먼저 MIT AI Lab의 창립자였던 Minskey 그리고 Papert가 저서를 통해 현재의 퍼셉트론으로는 | ||
+ | |||
+ | XOR 가 절대 불가능하다라는 것을 수학적으로 증명함. 그뿐아니라 하나의 퍼셉트론이 아닌 MLP | ||
+ | |||
+ | (Multilayer Perceptron)을 통해서 XOR는 해결될 수 있지만, 각각의 weight와 bias를 학습시킬 | ||
+ | |||
+ | 방법이 없다라는 결론에 이르게 됨. 즉 이건 절대 해결할 수 없다고 저술하였고, | ||
+ | |||
+ | 이 책을 읽고 공감하게 됨. 그렇게 딥러닝의 빙하기가 약 10년간 이어지다가 딥러닝의 대부 | ||
+ | |||
+ | Geoffrey Hinton이 이 문제를 해결하는 논문을 발표함. 이게 그 유명한 Backpropagation | ||
+ | |||
+ | 알고리즘. activation function을 sigmiod로 사용하고, | ||
+ | |||
+ | 영향력을 미분으로 계산해냄으로써 모든 뉴런들의 W와 b를 계산해냄. 중요한 부분은 이 과정에서 | ||
+ | |||
+ | 앞의 계산 결과를 뒤의 연산에서도 사용하므로 계산량의 부담이 절감된다는 것. | ||
+ | |||
+ | 이후로 큰 선풍을 얻고 많은 연구가 진행되다가 두번째 빙하기가 찾아옴. | ||
+ | |||
+ | DNN의 길이가 길어지면 Backpropagation연산을 할때 input layer와 가까운 부분의 뉴런들이 | ||
+ | |||
+ | 학습이 되지 않는 현상이 발생. 이유는 sigmiod function이 값이 작아질 경우 0에 가까운 값을 | ||
+ | |||
+ | 곱해버리게 되니까 앞에서 밀려오던 weight 정보들이 손상되어버리는 것. | ||
+ | |||
+ | 이를 vanishing gradient 문제라 부름. | ||
+ | |||
+ | 그로부터 약 10년 뒤 이 문제를 해결하는 방법으로 Geoffrey Hinton이 유명한 breakthrou 논문을 | ||
+ | |||
+ | 발표. 지금까지의 DNN이 제대로 학습되지 않았던 이유를 4가지 꼽으면서 해결책을 제시 | ||
+ | |||
+ | 대표적인 예로는 w값들의 초기화 문제와 activation function 사용의 문제를 듬. | ||
+ | |||
+ | 10장에서는 이러한 연구 과정을 정리하면서 문제가 됐던 코드를 실행해 봄. | ||
+ | |||
+ | 여기서 tensorflow 에 큰 매력을 느낀게, 최신 논문들에서 제시한 다양한 알고리즘 및 | ||
+ | |||
+ | 딥러닝 모델들이 그대로 구현되어있고, | ||
+ | |||
+ | DNN 모델 만들어놓고 mnist 데이터로 성능이 향상되는 과정 보면서 매우 흥미로웠음. | ||
+ | |||
+ | 다음주 부터는 딥러닝의 꽃인 CNN과 RNN에 대해 본격적으로 시작해야 함. | ||
+ | |||
+ | 연구가 많이 밀리고있지만, | ||
+ | |||
+ | 생각임. 빨리 끝내고 연구와 함께 개발 진행하면 좋을것 같음. |