반응형

전체 글 42

[모두를 위한 딥러닝 시즌1] Lec10-03. Dropout과 앙상블

Dropout이라는게 뭔지 생각해보려면 머신러닝 기초 파트를 공부할 때 배웠던 overfitting에 대해서 다시 상기해야한다. Overfitting이란 train data에 과하게 학습이 되어 그 이외의 데이터에서는 정확도가 떨어지는 현상을 의미한다. 이것을 해결하기 위해서 다양한 해결법이 존재했다. 3가지 정도를 봤었고 그 중에서 regularization이 조금 특이했기에 식까지 살펴보았다. cost 값에 상수와 weight 제곱의 합의 곱을 더해주는 L2 형식의 규제를 살펴보았었다. 위의 내용은 강의 7강에 담겨있다. Dropout 도 딥러닝에서 overfitting을 해결하는 방법 중 하나이다. 그 아이디어가 특이하기에 살펴볼 필요가 있다. 위의 그림에서 보이는 것과 같이 학습 시 neural ..

[모두를 위한 딥러닝 시즌1] Lec10-02. Weight 초기화

저번 강의에서는 back-propagation 의 문제점이 어떻게 해결되었고, 그 결과 neural network 가 어떻게 발전하였는지 알아보았다. 이제 계속해서 인공 신경망의 결과를 더욱 좋게 만들기 위해 발전이 이루어지기 시작했다. 그 중 하나는 초깃값을 어떻게 잡는지에 관련되어있다. Geoffrey Hinton은 당시 초깃값을 stupid way로 설정했다라고 말했다. 초깃값이 인공신경망의 학습에 시작이 되는만큼 얼마나 중요한 역할을 하는지를 나타내는 대목이다. 예를들어 특정 층의 초깃값을 0으로 설정한다면 역전파 시 어느 순간부터 0이 전달되기 시작할 것이다. 즉 역전파를 방해하는 요소가 된다. 그렇게 첫 번째로 고안된 것이 "Restricted Boatman Machine" 이다. 이 방법은 ..

[모두를 위한 딥러닝 시즌1] Lec10-01. ReLU activation function

이번 시간에는 ReLU에 대해서 알아본다. ReLU가 뭔지 그리고 왜 사용하는지 알아야하는데, 이것을 위해서는 역전파 시 발생했던 문제에 대해서 알아야한다. 갑자기 cost와 accuracy 그래프가 나와서 당황했을 수도 있겠다. 우리가 배운대로 multi layer 모델을 사용했을 때의 결과이다. 무엇인가 이상하다. cost는 갑자기 0이 되었고, accuracy도 이상한 움직임을 보인다. 즉 제대로 결과가 나오지 않은 것이다. 이런 현상은 우리가 만든 모델을 좀 더 구체적으로 생각해보면 된다. Backpropagation을 진행할 때 chain rule을 기반으로 계산을 했었다. 또한 그 안에서 sigmoid 계산으로 0~1 사이의 값으로 바꿔주는 과정이 있었다. 즉, 층이 늘어날수록 chain ru..

[모두를 위한 딥러닝 시즌1] Lec09. XOR 문제 딥러닝으로 풀기

저번 시간 마지막 부분에 다뤘던 문제점은 Lec 10에서 좀 더 생각을 해보기로 하자. 일단은 다층 퍼셉트론, 즉 Neural Network를 이용해서 이전에 풀지 못했던 XOR 문제가 해결되는지 살펴보자. 다음과 같이 간단한 NN을 만들었다고 생각해보자. Sigmoid 함수를 이용하기에 0 아니면 1의 결과를 낼 것이다. 예를 들어, 첫 번째 케이스인 x1 = 0, x2 = 0인 경우를 봐보자. 보라색 층과 초록색 층을 통과한 결과가 각각 y1, y2가 되어 다시 검정색 층에 들어갈 것이다. 계산을 통해 결과를 정리하면 아래와 같다. 이제 결과를 보면 우리가 원하는 XOR의 올바른 결과를 예측했음을 알 수 있다. 물론 우리가 지정한 weght과 bias 이외에도 다른 w, b 값도 존재할 것이다. 실제..

[모두를 위한 딥러닝 시즌1] Lec08. 딥러닝: 시작과 XOR 문제, Back-propagation

이번 강의부터 본격적으로 딥러닝에 대해서 배우기 시작한다. 그 시작 강의이기에 딥러닝이 어떻게 발전했는지 간략한 역사를 배운다. 가볍게 알아두면 좋을 것 같다. 딥러닝, 인공신경망 이라는 것을 말에서 알 수 있듯이 사람의 뇌에 있는 신경망을 컴퓨터에서 구현하려는 목적으로 생겨났다. 컴퓨터를 사람처럼 생각하게 만들기 위한 방법이었다고 할 수 있다. 연구자들은 weight과 bias를 이용하여 결과를 출력하는 신경망의 작동을 식으로 표현하였고, 이때부터 이것을 컴퓨터에 적용하기 위한 노력이 시작된다. 하지만 당시 기술력으로는 현재와 같은 수준의 딥러닝이 존재하지 않았다. 연구가 막 시작되던 때였고 뒷받침해줄만한 컴퓨터도 존재하지 않았을 것이다. 하지만 과학자들은 위와같이 너무 먼 미래를 미리 생각하였고 기대..

[모두를 위한 딥러닝 시즌1] Lec07-2. Training/Testing 데이터 셋

기본적으로 Training data는 모델을 학습시킬 때 이용하는 데이터를 의미한다. 만약 우리의 모델을 평가하는데 다시 이 training data를 사용해도 괜찮을까? 당연히 안된다. 공부를 한 문제집으로 다시 시험을 보면 올바른 평가가 될 수 없을 것이다.우리가 만든 모델은 공부시킨 데이터가 아니라 다른 어떤 데이터가 들어오더라도 올바른 결과를 내놓는 것을 목표로 하는 것이다. 이때 필요한 것이 학습에 참여하지 않은 새로운 데이터, Test data이다. (전체 data의 15% ~ 20%)  이와 더불어 우리는 모델을 학습시키면서 다양한 파라미터들을 조정하고 효율이 높은 파라미터를 찾아야한다.파라미터를 조정하고 그때마다 Test data로 테스트를 해보는 과정은 올바른 과정일까? 결국 파라미터 조..

[모두를 위한 딥러닝 시즌1] Lec07-1. 학습 rate, Overfitting, 그리고 일반화 (Regularization)

이번 7강에서는 모델의 관점이 아닌 학습의 관점에서 어떤 것들이 영향을 미칠 수 있는지, 그리고 어떻게 해야 좋은 결과를 얻을 수 있는지 등을 배운다. 1. Learning Rate 먼저 배우는 것은 learning rate이다. 경사 하강법에 대해서 배울 때 이미 배운 적이 있다. 알파 값에 해당하는 learning rate가 커지게 되면 학습 속도가 빨라지게 되고, 작아지면 학습 속도가 느려지는 결과를 얻는다. 우리가 어떤 일을 할 때 빨리하면 투자하는 시간은 줄어들지만 완성도가 낮아질 수 있다. 또 너무 느리게하면 꼼꼼하게 하여 완성도를 높일 수 있겠지만 투자하는 시간은 매우 늘어날 것이다. 학습 모델도 마찬가지이다. 학습 속도가 너무 빠르면 우리가 원하는 cost의 최솟값을 지나치고 다시 증가하는..

[모두를 위한 딥러닝 시즌1] Lec06. Softmax Regression의 개념과 Cost

선형회귀의 cost function까지 살펴보고 우리는 변수가 여러개인 선형회귀 모델을 알아보았다. 바로 이전 시간에 배운 Logistic Classification 모델은 이진분류에 사용되는 모델이다. 그렇다면 우리가 분류하는 범주가 2개가 아니라 여러개라면 어떨까? 구분해야하는 범주(class)가 3개라고 가정해보자. 우리가 배운 범위 내에서 간단하게 떠올릴 수 있는 방법은 3개의 개별 classifier를 생성하는 것이다. 결국 하나의 input이 주어지면 3개의 classifier를 통과시켜서 결과를 얻게 될 것이다. 하지만 분류 해야하는 범주가 늘어난다면 너무 복잡해지지는 않을까? 따로따로 되는 계산을 줄이기 위해 Matrix Multiplication이 다시 등장한다. 이후 이 결과를 각각 시..

[모두를 위한 딥러닝 시즌1] Lec05-2. Logistic Classification의 Cost

선형회귀 모델을 배울 때 배운 것의 순서를 떠올려보자. 먼저 모델의 특징을 배우며 Hypothesis를 배웠다. 이후 Cost 의 식을 어떻게 세울 수 있는지를 알아보았다. Logistic Classification을 배울 때에도 마찬가지이다. 저번 시간에는 시그모이드 함수를 통과시켜서 얻은 Logistic Classification의 가설함수를 알아보았다. 오늘은 예측값과 실제값의 오차를 제곱해서 얻는 MSE loss function을 통해 Logistic Classification의 cost function을 알아볼 것이다. 우리가 알고 있는 cost function을 이용하여 그래프를 그려보면 뭔가 복잡해짐을 알 수 있다. 저렇게 구불거리는 형태의 그래프가 나오는 이유는 우리가 sigmoid fun..

[모두를 위한 딥러닝 시즌1] Lec05-1. Logistic Classification의 Hypothesis

저번 시간까지 배웠던 것은 선형회귀 모델의 가설과 Cost 등을 살펴보고 더 나아가 Multi variable의 경우에서 알고리즘을 알아보았다. 선형회귀의 가장 큰 특징 중 하나는 '회귀'라는 이름에 맞게 특정 값을 예측할 때 이용할 수 있다. (선형 모델이기에 음수인 값이 나오면 안되는 경우는 사용할 수 없다) 하지만 우리가 마주하는 문제들이 '회귀' 만 있는 것이 아니다. 카테코리를 나누고 입력으로 받은 값이 어떤 범주에 속하는지 찾아내는 '분류' 알고리즘도 대표적이 ML, DL의 역할이 될 수 있다. 분류는 두 개의 카테고리를 기준으로 하는 Binary Classification과 그 이상의 카테고리로 나누는 Classification이 있다. 0과 1을 이용한 0,1 encoding을 통하여 이들..

728x90