AI-ML
-
[PyTorch] RNN 모듈 알아보기AI-ML 2023. 12. 29. 06:31
- 목차 들어가며.PyTorch 에는 내장된 RNN 모듈이 존재합니다.torch.nn.RNN 클래스를 사용하여 손쉽게 RNN 모듈을 사용 가능합니다.다만 PyTorch 의 내장 RNN 모듈이 사용법이 간단히 와닿지 않는 경향이 있어서 이번 글을 통해 그 사용법에 대해서 명확히 하려고 합니다. 기본적인 사용법 알아보기.RNN 모듈은 기본적으로 아래와 같이 생성합니다.RNN 모듈은 필수적으로 input_size 와 hidden_size 값을 입력으로 받아야합니다.import torch.nn as nnrnn = nn.RNN(input_size=5, hidden_size=10) input_size 는 입력 텐서의 차원의 크기가 됩니다.예를 들어서, NLP 모델에서 단어 하나하나가 입력으로 사용된다고 가정해보겠습..
-
Covariate Shift 알아보기AI-ML 2023. 12. 24. 08:48
- 목차 키워드.- Covariate Shift or Drift- Data Distribution- Shuffle 들어가며.Covariate Shift 는 우리말로 "공변량 변화" 라고 합니다.이는 머신러닝 모델의 학습 과정에서 발생할 수 있는 이슈 사항 중의 하나인데요.말이 어렵기 때문에 먼어 Covariate Shift 와 관련된 여러가지 상황들에 대해서 말씀드리겠습니다. Image Classification 에서 발생할 수 있는 문제 상황.아래의 사진 자료는 실제 사자의 사진과 카툰 이미지를 각각 보여줍니다.디즈니에서 자신들의 애니메이션을 실사화시켜서 개봉하고 있죠.만약 동물의 이미지 데이터를 기반으로 Image Classification Model 을 학습한다고 가정해보죠.학습 과정에서는 실제 동..
-
[pytorch] nn.BatchNorm 알아보기AI-ML 2023. 12. 24. 08:37
- 목차 키워드.- Batch Normalization 들어가며.이번 글에서는 pytorch 의 BatchNorm 에 대해서 알아보려고 합니다.Batch Normalization 의 개념과 여러가지 사례들, 그리고 pytorch.nn.BatchNorm 의 활용법에 대해서 알아봅니다. Batch Normlization 이란 ?Batch Normalization 은 이름 그대로 Batch Data 를 대상으로 Normalization 을 적용합니다.여기서 Batch Data 는 Neural Network 로 순전파되는 Batch Size 의 입력 데이터를 의미합니다.pytorch 를 예로 들면, DataLoader 의 batch_size 에 설정된 Batch Size 를 의미합니다.아래의 이미지 예시와 같이..
-
[pytorch] optim.SGD 알아보기AI-ML 2023. 12. 13. 07:54
- 목차 키워드.- Stochastic Gradient Descent SGD 란 ?이번 글에서는 pytorch 의 대표적인 Optimizer 인 SGD 와 그 사용법에 대해서 알아보려고 합니다.우리말로 경사하강법이라고 말하는 Gradient Descent 알고리즘은 Neural Network 의 파라미터를 업데이트하는 방식입니다.만약 12개의 Weight 로 구성된 Neural Network 가 존재한다고 가정하겠습니다.일반적인 DenseNet Layer 이며, 4개의 Input 에 대해서 3개의 Output 을 생성하는 Fully Connected Layer 입니다.그래서 4x3 인 Dense Net 은 12개의 Weight 를 가지게 됩니다. 그리고 MSE 와 같은 Loss 에 대해서 모든 Weigh..
-
[Statistics] Odds, Logit 알아보기AI-ML 2023. 11. 24. 09:43
- 목차 키워드.- Odds- Logit Function 들어가며.머신러닝 모델 중에서도 Classification 관련 문제를 해결하는 과정에서 Probability, Odds, Logit 등의 용어를 목격하는 경우가 많습니다.이해하는 것이 중요하지만, 긴급하지 않았던지라 매번 그냥 넘어갔던 기억이 많은데요.이번 글에서 이 개념에 대해 상세히 알아보도록 하겠습니다. Probability.먼저 Probability 에 대해서 알아봅니다. 이는 모두가 알듯이, 확률을 의미합니다.확률이란 어떤 사건이 발생하는 경우의 수를 비율적인 수치로 제공됩니다.확률은 아래와 같이 표현할 수가 있는데요.$$ P(x) = \frac{ x 가 발생한 경우의 수 }{ x 가 발생한 경우의 수 + x 가 발생하지 않는 경우의 수..
-
[pytorch] nn.Sigmoid 알아보기AI-ML 2023. 10. 30. 11:25
- 목차 키워드.- Activation Function- Sigmoid 들어가며.Deep Learning 에는 Activation Layer 가 존재합니다.Neural Network 내부의 각 뉴런은 입력 텐서와 자신의 가중치를 연산하여 출력 텐서를 생성하는데요.이 출력 텐서는 다음 단계로 Activation Layer 로 진입하게 됩니다.Activation Layer 의 역할은 한가지입니다.기준치 이상의 값만을 다음 Layer 로 출력하는 것입니다. 예를 들어, Activation Layer 를 통과할 수 있는 기준값을 100 으로 설정합니다.그리고 Input Tensor 는 [99, 100, 101] 을 가집니다.이 Input Tensor 는 Activation Layer 에 입력되고, Output ..
-
Collaborative Filtering 이해하기AI-ML 2023. 9. 25. 22:52
- 목차 키워드.Collabortive FilteringImplicit vs ExplicitData Imputation 들어가며."Collaborative Filtering (협업 필터링)" 은 흔히 "Content-based Filtering" 과 흔히 비교됩니다. 두가지 기법 모두 특정 사용자가 선호할 상품을 예측하여 추천하기 위한 모델링 기법인데요.Content-based Filtering 은 item 의 주요한 특징을 활용하여 user 에게 상품을 추천하며,Collaborative Filtering 은 item 과 user 간의 상호작용에 집중합니다. Content-based Filtering.자세한 설명을 위해서 먼저 Content-based Filtering 의 예를 들어볼까요 ?아래와 같이 ..
-
[ CNN ] Feature Map 이해하기AI-ML 2023. 9. 19. 08:54
- 목차 키워드.- CNN- Kernel- Feature Map - Convolution 들어가며.Convolution 연산은 입력 이미지와 커널 필터 사이에서 이뤄집니다.구체적인 연산 과정을 그림으로 표현하면 아래와 같습니다.4x4 입력 이미지와 2x2 커널 필터 사이의 일반적인 Convolution 연산을 수행합니다.4x4 입력 이미지는 2x2 커널 필터와 Convolution 결합을 하여 3x3 출력 텐서가 생성되는데요.자세한 연산의 순서는 아래의 이미지와 같습니다. 커널은 입력 이미지의 부분 집합을 순회하면서 Element wide Product 을 수행하게 됩니다.그리고 그 결과가 출력 텐서에 적용되는데, 이 출력 텐서는 Feature Map 이라고 표현합니다. Kernel Filter.Co..
-
[ pytorch ] ConvTranspose2d 알아보기AI-ML 2023. 9. 11. 09:19
- 목차 키워드.- Convolution- CNN- AutoEncoder 들어가며.CNN 이나 AutoEncoder, VAE (Variational Auto Encoder) 등을 구현할 때에 Convolution Layer 을 위해서 Con2d 레이어가 사용됩니다.Convolution Layer 로 구성된 Neural Network 는 필연적으로 뉴런의 사이즈가 작아지는 방향으로 이어집니다.예를 들어, 아래의 이미지처럼 36x36 사이즈의 이미지는 9x9 커널과 콘볼루션 연산을 통해 28x28 사이즈로 크기가 줄어듭니다.그리고 14x14 사이즈의 텐서 또한 5x5 커널과 연산되어 10x10 크기의 텐서로 변환됩니다. 즉, CNN 을 통한 Classification 이나 Auto Encoder 의 En..
-
[ pytorch ] AutoEncoder 구현하기AI-ML 2023. 9. 5. 08:20
- 목차 키워드.- Auto Encoder- CNN- Encoder Decoder 들어가며.이번 글에서는 pytorch 라이브러리를 사용하여 AutoEncoder 를 구현하는 내용에 대해서 설명하려고 합니다.AutoEncoder 의 학습 데이터는 CIFAR10 이미지를 활용하며, AutoEncoder 네트워크의 구조는 아래와 같습니다.아래 그림 설명에서 상단 부분이 Auto Encoder 의 Encoder 영역이고, 하단부가 Decoder 영역입니다.사용하는 CIFAR10 이미지는 3x32x32 크기의 이미지로 RGB Channel 을 가지며, 32x32 크기를 가집니다.Encoder 는 2개의 Convolution Layer 와 Max Pooling Layer 를 사용하구요.각 과정에서 Tensor 의..