본문 바로가기

처음부터 하는 딥러닝16

[딥러닝 기초] Overfitting과 모델 규제(regularization) 1. Overfitting (과적합) 2. Regularization (모델 규제) 2-1. L2 regularization 2-2. L1 regularization 2-3. Regularization이 효과 있는 이유 2-4. Dropout 3. EarlyStopping (학습 조기 종료) 4. Data Augmentation 5. 실험 5-1. Regularize 실험 5-2. Data Augmentation 실험 6. 마무리 1. Overfitting (과적합) 인공지능 모델링은 모델을 주어진 데이터들에 맞추는(fit) 과정이라고 볼 수 있습니다. 잘 학습된 모델은 주어진 데이터셋에 있는 통계적인 경향성을 잘 반영한 모델이라고 볼 수 있을 것입니다. Overfitting(과적합)은 모델이 훈련 데이.. 2023. 6. 14.
[딥러닝 기초] Recurrent Neural Network (RNN) Sequential data Sequential data란, 순서가 있는 데이터를 말합니다. 앞의 정보가 뒤의 정보에 영향을 미치는 인과가 존재하는 것입니다. 예를 들면 사람이 하는 말, 기상 예보, 웹 로그 분석에 사용되는 데이터들을 말합니다. 이런 데이터들을 제대로 처리하기 위해선 모델로 하여금 순서에 대한 정보를 처리할 수 있게끔 하는 과정이 필요합니다. 일기 예보를 예로 들면, 지난 데이터들을 봤을 때 어느 시기에 온도가 하락했고, 어느 시기에 온도가 상승했는지를 알아야 올해에도 어느 시기에 온도가 하락하고 상승할 지를 예측할 수 있을 것입니다. 그러나 지금까지 살펴봤던 DNN이나 CNN 모델은 이런 순서에 대한 정보를 고려하는데 한계가 존재합니다. 위와 같이 DNN은 모든 뉴런끼리 연결하는 과정.. 2023. 5. 31.
[딥러닝 기초] Convolutional neural network (CNN) Dense layer(Fully connected layer, Linear layer)는 딥러닝 모델로서 훌륭한 성능을 보여줍니다. 특히 이들의 차원 수를 늘리거나 깊이를 늘리는 방식으로 그 성능을 더 높일 수 있었습니다. 그러나 dense layer는 깊게 쌓을수록 파라미터 수가 기하급수적으로 증가하고 이로 인해 메모리 증가, 학습 속도 저하 등의 문제가 생길 수 있습니다. 간단히 256차원의 dense layer를 5개만 쌓더라도 파라미터 수가 $256^5$개로 감당할 수 없는 숫자가 됩니다. '좀 더 효율적으로 파라미터를 사용할 수는 없을까?' 해서 등장한 것이 convolution layer입니다. 기존의 dense layer가 모든 input 값마다 서로 다른 파라미터가 관여하는 구조라면, co.. 2023. 5. 23.
[딥러닝 기초] 활성화 함수 (Activation function) 활성화 함수의 필요성 딥러닝 모델의 성능을 높이는 방법 중 하나는 레이어의 깊이를 늘리는 것입니다. 위 그림의 모델 수식은 아래와 같이 쓸 수 있습니다. $$ y=w_3(w_2(w_1x+b_1)+b_2)+b_3=w_3w_2w_1x+w_3w_2b_1+w_3b_2+b_3 $$ 그러나 이 모델을 자세히 본다면, 사실상 weight가 $w_3w_2w_1$이고 bias가 $w_3w_2b_1+w_3b_2+b_3$인 하나의 뉴런으로 이루어진 모델과 같다는 걸 알 수 있습니다. 즉, 뉴런을 아무리 깊이 쌓아봤자 사실상 뉴런 하나짜리 모델과 크게 다르지 않게 되는 것입니다. 이를 해결하기 위해 사용하는 것이 '활성화 함수(activation function)'입니다. 앞서 봤듯이, 선형 함수(wx+b와 같이 그래프 형태.. 2023. 5. 17.
[딥러닝 기초] 손실 함수 (Loss function) 이번엔 손실 함수에 대해 좀 더 자세히 다뤄보겠습니다. 손실 함수란, 모델의 예측값과 실제 데이터의 값 사이의 차이를 측정하기 위한 함수라고 할 수 있습니다. 손실 함수는 '목적 함수(Objective function)'라고도 합니다. 실제값과 예측값 사이의 차이(loss)는 적을수록 좋겠죠. 이를 줄이기 위해 경사 하강법(Gradient descent)을 수행합니다. 경사 하강법은 미분을 기반으로 하기 때문에 손실 함수 또한 미분 가능해야 합니다. 손실 함수는 목적 함수라고도 불리는 만큼, 학습의 목적에 따라 손실 함수의 유형도 달라집니다. 딥러닝에서의 목적은 크게 2가지로 나눌 수 있을 것 같습니다. (회귀(regression)와 분류(classification)) 지금부터 각 목적에 알맞는 손실 함.. 2023. 5. 17.
[딥러닝 기초] 경사 하강법(Gradient descent) 오늘은 경사 하강법에 대해서 알아보겠습니다. 딥러닝 모델의 학습은 경사 하강법(gradient descent)에 의해서 이뤄집니다. Gradient descent에 미분을 사용한다고 했었는데, 왜 미분을 이용하는지에 대해 알아보고, 가장 많이 쓰이는 gradient descent 방법인 Adam optimizer에 대해서 알아보도록 하겠습니다. 미분 위키에 따르면 미분(derivate, 도함수)의 정의는 "어떤 함수의 정의역 속 각 점에서 함숫값의 변화량과 독립 변숫값의 변화량 비의 극한 혹은 극한들로 치역이 구성되는 새로운 함수"라고 합니다. 어릴 적 배웠던 수학용어들에 대해서 생각이 안 날 수 있으니까 뜻을 하나하나 알아보겠습니다. 정의역 : 함수의 입력값 $x$들의 집합 치역 : 함수에 변수 $x$.. 2023. 5. 9.