반응형

모두를 위한 딥러닝 시즌1 7

[모두를 위한 딥러닝 시즌1] Lec12. NN의 꽃 RNN 이야기

이전에 배운 CNN은 우리 말로 순환 신경망이라고 부른다. 대표적으로 이미지 처리에 이용되고 있다. 단연 모든 데이터를 CNN으로만 처리할 수 없다. 데이터들마다 특징이 있는데 이전 데이터가 나중 데이터에 영향을 주는 형태의 경우는 일반적인 NN이나 CNN으로는 해결이 불가능하다. 이런 문제에 이용하는 신경망이 RNN이다. 대표적으로 언어를 처리하는 모델들이 이것을 기반으로 한다. 언어는 이전 단어를 기준으로 다음 단어를 유추할 수 있는 구조이기 때문에 이러한 모델을 사용한다. 모델을 연속적으로 그려보면 위의 그림과 같은데 각 layer에 input이 들어오기도 하지만 이전 layer에서 이용된 값이 사라지는 것이 아니라 그대로 다음 모델에 영향을 주는 형태이다. 이것을 식으로 나타내면 위와 같다. 현재..

[모두를 위한 딥러닝 시즌1] Lec11-02. ConvNet Max pooling 과 Full Network

저번 시간에는 CNN의 기본적인 구조와 어떻게 CNN을 이용한 모델을 만들고 사용할 수 있는지 알아보았다. 이번에는 CNN 모델에 이미지의 사이즈를 줄여주는 sub sampling 기법에 대해서 알아보려고 한다. 위의 그림과 같이 이 기법은 "Pooling"이라고 불린다. input으로 들어온 데이터에 pooling을 적용하면 그 사이즈를 줄일 수 있다. Pooling에는 Max pooling (가장 큰 값만 고름) Average pooling (receptive field 안의 평균값을 이용) Stochastic pooling Cross channel pooling 등이 있다. 강의에서는 max pooling을 예시로 살펴본다. CNN의 필터와 비슷하게 여기에도 필터가 존재한다. receptive fi..

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

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

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

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

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

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

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

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

[모두를 위한 딥러닝 시즌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