ML & DL/개념정리

모델에서 최적화의 목표는 손실함수(Loss function)의 값을 최소로 만들어줄 수 있는 가중치 Weight를 효율적으로 찾는 것이라고 여러 번 말했었다. $$ w^* = \arg\min_w L(w) $$ 이러한 최적화 알고리즘 중 경사하강법, 스토케스틱 경사하강법, 미니배치 경사하강법을 이전에 알아봤었다. Gradient Descent: 경사하강법 딥러닝에서 손실 함수의 값이 최소가 되도록 모델의 파라미터를 조정하는 최적화 알고리즘에 대하여 정리해 봤다. 우선 최적화알고리즘에 쓰이는 경사하강법을 알기 전에 미분에 대하여 먼저 changsroad.tistory.com 이번에는 경사하강법을 발전시킨 다양한 옵티마이저들을 알아보겠다. 1. Gradient Descent 손실함수의 기울기를 계산하여, 기울..
1. Weight Initialization 신경망의 주목적은 손실을 최소화하는 것이며 이를 위해서는 파라미터 최적화가 필수적이다. 이를 위해 경사하강법, 미니배치경사하강법 등 최적화 기법을 배웠었는데, 그 기법들을 사용하며 계산되는 가중치도 최적화기법이 존재한다. 이를 알아보도록 하자. 가중치 초기화, Weight Initialization을 제대로 하지 않으면, 기울기 소실 혹은 학습시간이 엄청 오래 걸리는 등 모델 학습이 효율적으로 진행되지 않는다. 가중치가 매우 높거나, 작게 초기화되면 일반적으로 사용하는 활성화 함수인 sigmoid나 relu를 사용하였을 때 기울기가 0에 가까워지게 되기 때문에 기울기가 천천히 변하며 학습에 오랜 시간이 걸리게 되고 기울기 소실도 발생한다. 또한 각 활성화 함수..
이번시간에는 모델 성능과 관련된 여러 가지 문제점 및 해결법등에 대하여 알아보도록 하겠다. 1. 과적합과 과소적합 모델 훈련과정에서 학습데이터의 오차가 일반화 오차에 비해서 현격하게 낮아지는 현상을 Overfitting(과적합)이라고 부르고, 학습데이터의 오차가 매우 큰, 정확히 예측하지 못할 경우 Underfitting(과소적합)되었다고 부른다. 제일 왼쪽 그림과 같이 모델이 너무 간단하여 예측자체를 못하는 그래프가 Underfit. 제일 오른쪽 그림과 같이 모델이 너무 복잡하여 학습데이터셋에만 딱 맞는 그래프를 Overfit. 가운데 그림처럼 모델이 적당하게 구성되어 train, test 셋에서 모두 성능이 좋은 경우를 가장 이상적인 학습이라고 본다. 이러한 underfitting과 overfitti..
이번에는 순환신경망: RNN과 RNN의 한계를 보완하여 나온 LSTM, GRU에 대하여 공부해 볼 것이다. 이는 아주 많이 쓰이는 모델 구조이기 때문에 잘 알아두면 좋을 것이다. 0. 순환신경망의 등장 기존에 딥러닝은 합성곱신경망을 기반으로 많이 발전을 했었다. 그런데 이러한 합성곱 신경망은 고정된 크기의 입력과 출력을 처리하도록 설계되었다. 따라서 고정된 크기를 요구하는 이미지 분류 등의 task에는 훌륭했다. 이러한 합성곱 신경망에서는 모델 학습 때와 동일한 사이즈로 입력을 resize 해줌으로써 사용할 수 있었다. 그러나 텍스트, 음성 등은 길이가 고정되어있지 않은 sequence 데이터이고, 이러한 seqeunce데이터는 고정된 크기가 아닐뿐더러 과거의 정보를 기억하면서 현재의 입력도 동시에 처리..
이번 시간에는 대표적인 딥러닝 모델 CNN에 대하여 설명해 볼 것이다. 0. CNN:Convolution Neural Network 우선 CNN이 도입되게 된 이유는 기존의 MLP 등에서 사용되던 Fully connected layer: 완전연결계층에서는 이미지 데이터등의 데이터를 를 입력으로 넣었을 때, 이를 학습시키기 위하여 1차원으로 평탄화(Flatten)를 시켰다. 그러나 이렇게 평탄화하는 과정에서 이미지 데이터의 경우 "형상정보" 가 사라진다. 형상정보라 함은 공간적 구조를 의미한다. 이러한 형상정보를 유지하기 위해 합성곱 신경망이 등장하였다. 합성곱 신경망은 모델의 첫부분에 합성곱과 관련된 연산, 합성곱연산을 진행하여 주요 특징들을 추출한 뒤 이후에 flatten을 시키는 방식이다. 1. 합성..
1. 딥러닝 프레임워크 딥러닝의 뉴럴네트워크를 구현하기 위해서는 다양한 것들을 구현해야 한다. 1. neural network의 모든 layer 2. Loss Function 3. 모든 layer의 weight, bais에 대한 gradient 4. 최적화 알고리즘 이러한 것들을 매번 하나하나 구현할 수 없고 모델이 복잡해지는 만큼 이러한 것들이 힘들어진다. 이때, PyTorch 같은 딥러닝 프레임워크에 모델을 구성하는 구성요소, 다양한 loss function, 자동 미분 계산, 다양한 optimizer 등을 제공하기 때문에 쉽게 구현을 도와준다. 1-1. 트렌드 딥러닝 프레임워크는 다양한 것들이 있다. 1. `TensorFlow`- Google 2. `PyTorch` - Meta 3. `JAX` - ..
창빵맨
'ML & DL/개념정리' 카테고리의 글 목록 (4 Page)