본문 바로가기

전체 글120

[DLBasic] 8-2. Back-propagation과 Deep의 출현 저번 시간에 neural network의 등장과 XOR 문제를 해결하기 위해서 back propagation과 CNN이 등장하게 된 배경을 배웠다. 하지만 Back Propagation이 여러 층에 사용되었을 때 input으로 점점 되돌아갈수록 error가 점점 약해져서 결국 학습에 영향을 줄 수 없다는 문제가 생겼었다. 위의 CIFAR이라는 단체는 당장 활용도가 없어도 연구를 하도록 장려했다. 이전에 외면을 받은 Neural Network에 대해 지원을 해줌으로써 지금의 딥러닝이 이루어질 수 있다고 할 수 있겠다. CIFAR의 지원으로 Hinton과 Bengio 교수님께서 큰 breakthrough가 될 논문을 발표했다. 이 논문은 여태까지는 깊은 신경망은 학습할 수 없다고 했는데 초기값을 잘못 주었기.. 2020. 1. 16.
[DLBasic] 8-1. 딥러닝의 기본 개념 : 시작과 XOR 문제 딥러닝이 어떻게 생겨나게 되었는지 알아보도록 하겠다. 생활을 더 편리하게 기계가 일들을 처리하게 하기 위해 우리의 뇌처럼 기계가 사고해서 알아서 일을 잘 처리할 수 있게 해야했다. 우리의 뇌는 뉴런이 신호를 전달받아서 받은 input에 weight을 곱한 값들을 다 합친 다음 bias라는 값이 더해져서 전달된다. 이 합이 어느 정도 이상이면 활성화가 되고 넘지 못하면 활성화가 되지 않는다. 이런 뉴런을 위와 같이 구상해볼 수 있다. 이전 시간에 배웠던 logistic regression을 적용하여 여러 단계로 구성하여 모으면 오른쪽과 같은 형태가 될 것이다. 이 기계를 위와 같이 하드웨어로 직접 만들 수 있다. 이것이 많은 사람들의 관심을 끌자, 하드웨어를 만든 박사님이 그 기계가 걷고, 말하고, 보며 .. 2020. 1. 16.
[DLBasic] 7-2. Training / Testing Data Set 이번 시간에는 머신 러닝 모델이 얼마나 잘 동작하는지를 알아보는 방법을 배운다. 우리의 머신러닝 모델을 데이터로 학습을 시켰을 때 그 모델이 얼마나 성공적으로 예측을 하는지 어떻게 평가할 수 있을까? 만약 training data set으로 학습을 시킨 다음에 다시 그 training set으로 평가를 한다면 공정하지 않다. 아마 100% 완벽한 대답을 할 수 있을 것이다. 이것은 아주 나쁜 방법이다. 시험을 볼 때 답을 이미 외워놓는 것과 같은 것이다. 그래서 보통은 전체 데이터셋 중에서 70%를 training data set으로, 나머지 30%를 testing data set으로 설정한다. testing dataset은 숨겨놓고 절대로 학습할 때 보지 않도록 한다. 훈련이 완벽하게 끝났다고 했을 때.. 2020. 1. 16.
[DLBasic] 7-1. Application & Tips: Learning rate, data preprocessing, overfitting 이번 시간에는 학습률을 어떻게 결정하면 좋을지, 데이터에 대한 전처리는 어떻게 할지, 머신 러닝에서 가장 큰 문제 중 하나인 overfitting 문제를 어떻게 해결할 것인지 배우도록 하겠다. learning rate는 cost function을 최소화하기 위해 사용했던 gradient descent 알고리즘에서 사용되었다. 위와 같이 실제 코드를 짤 때도 learning rate를 미리 정해주었었다. 만약 learning rate를 너무 크게 설정했다면 step이 너무 커서 최소값을 제대로 찾지 못하고 지나치는 문제가 생길 수 있다. 심한 경우에는 그래프 바깥으로 튀어나가기까지 해서 제대로 된 학습을 하지 못할 수 있다. 코드의 결과는 숫자가 아닌 값까지 출력될 수도 있으며, 이 현상을 Overshoo.. 2020. 1. 16.