반응형

딥러닝 7

[모두를 위한 딥러닝 시즌1] Lec11-01. ConvNet의 Conv 레이어 만들기

이제 우리는 머신러닝의 기본 개념과 딥러닝의 기초 그리고 모델의 효율을 높이기 위해 지금까지 발전해온 다양한 기법들을 알게 되었다. 어떤 모델이든 우리의 상상력만 더해진다면 충분히 만들 수 있다고 교수님이 강의에서 말하신다. 당연히 오랜 기간 연구를 걸쳐오면서 CNN, RNN 등 많은 분야에서 큰 역할을 한 모델들이 생겨났다. 남은 11강, 12강에서는 가장 기초과 되는 CNN과 RNN의 구조를 알아본다. CNN은 고양이가 이미지를 인식할 때 이미지에 따라 특정 뉴런만 반응하는 것을 보고 만들어진 인공 신경망이다. 아이디어는 이미지 파일에서 특정 사이즈의 필터를 이용하여 사이즈를 축소시켜 나가는 것이다. 필터가 무엇이고 어떻게 동작하는지 살펴보자. 특정 사이즈의 필터를 정의하면, 몇 칸을 건너뛰면서 필터..

[모두를 위한 딥러닝 시즌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] Lec04. Multi-Variable linear regression

저번 시간까지는 선형회귀의 가설을 H(x) = Wx + b 의 1차식 형태로 세워서 살펴보았다. 또한 이때 해당하는 Cost function과 그 cost를 최소화시키는 Gradient Descent Algorithm에 대해서 알아보았다. 만약 변수가 x 하나가 아니고 여러개가 되면 어떻게 될까? 예를 들어, 3개의 시험을 본다면 3개의 변수를 가지게 된다. H(x)의 가설 식을 다시 세워보자. H(x)를 구했으면 저번 시간에 배운 MSE loss function을 통해 cost 식을 세워볼 수 있다. 여기까지가 변수가 여러개일 때 선형회귀의 기본적인 틀이다. 만약 무수히 많은 변수가 있다면 우리는 가설 식을 일자로 쭉 써봐야할까? 이때 Matrix, 행렬을 이용할 수 있다. Matrix를 쓸 때 보통 ..

728x90