본문 바로가기
728x90
반응형

deeplearning10

[Pytorch] Gradient Vanishing & Exploding 막는 방법 많은 layers를 가진 Neural Network을 학습할 때, Backpropagation 과정에서 input층으로 갈수록 Gradient가 점점 소멸되는 현상을 Gradient Vanishing. → Weight가 업데이트가 잘 이루어지지 않아서 최적의 모델을 만들어낼 수 없다. → 이번엔 Gradient Vanishing과 그 반대인 Exploding 현상 방지법에 대해 공부! 1. ReLU function 앞서 공부한 내용이므로 조금 복습하면, Sigmoid 함수를 Activation function으로 사용할 경우, 양끝단(입력의 절대값이 큰 경우)에 output이 0 혹은 1에 수렴하면서 기울기(Gradient)가 0에 가까워지는 현상이 발생한다. - 이 때, input측으로 갈수록 제대로 .. AI |Computer Vision/Basic Pytorch 2022. 6. 4.
[Pytorch] Overfitting(과적합) 방지하는 방법 1. Feature 줄이기 (모델의 복잡도 줄이기) - Overfitting을 방지하기 위한 첫번째 방법은 모델의 "Feature를 줄이는 방법"이다. 보통 Neural Network의 복잡도는 hidden layer(은닉층)의 수, parameter의 수로 결정되는데, 모델의 복잡도가 수준 이상으로 높아도 Overfitting(과적합)이 일어날 수 있다. ex) 3개 층의 hidden layer를 2개로 줄이는 등 2. Data Augmentation (데이터 증식) 적은 양의 Training data로 학습시킨 모델의 경우, 해당 데이터만의 패턴을 모두 학습하여 Overfitting이 발생할 확률이 높다. 이를 방지하기 위해 의도적으로 기존의 데이터를 조금씩 변형하여 데이터의 총량을 늘리는 데, 이 .. AI |Computer Vision/Basic Pytorch 2022. 5. 15.
[Pytorch] MLP(Multi-layer)를 사용하여 MNIST 분류하기 # Multi-Layer Perceptron(MLP)로 MNIST data 분류하기 → MNIST : 숫자 0~9까지의 이미지로 구성된 손글씨 Dataset → 60,000개의 Training data, label 와 10,000개의 Test data, label로 구성됨 → 각각의 이미지는 28 x 28 size이며, 해당 이미지가 어떤 숫자인지 분류하는 실습 import torch import torchvision import torchvision.datasets as dsets import torchvision.transforms as transforms # GPU & random seed 설정 device = 'cuda' if torch.cuda.is_available() else 'cpu' to.. AI |Computer Vision/Basic Pytorch 2022. 5. 15.
[Pytorch] MultiLayer Perceptron (MLP) & ReLU function 1. 기본 용어 및 특징 딥러닝에서 통용되고 있는 기본적인 용어들과 특징들을 공부해보자 → Perceptron, Backpropagation, Overfitting 등등 1-1. Perceptron (퍼셉트론) - Single / Multi-layer 인공신경망 중 한 종류로, 무언가를 인지하고 그 정보를 통해 문제를 해결하는 결과를 도출하는 것. 위의 사진처럼 Perceptron의 원리는 input(x)가 들어왔을 때, x들에 weight(가중치)를 곱하고 이 가중치들의 합과 Bias를 더해서 Activation function을 통해 output이 출력되는 것이다. 우리는 어떤 inputs에 대한 정답 label을 가지고 Perceptron의 성능을 확인할 수 있고 Training을 통해 정확한 결과.. AI |Computer Vision/Basic Pytorch 2022. 5. 8.
[Pytorch] Softmax Regression (소프트맥스 회귀) 1. Softmax Regression 이해 앞선 Binary Classification 이후, 이번엔 Softmax Regression(소프트맥스)를 이용하여 3개 이상의 선택지 중 1개를 고르는 Multi-Class Classification 실습을 진행한다. 1-1. Review of Logisitc Logistic regression에서는 Sigmoid 함수를 통해 예측값을 0 ~ 1 사이의 값을 출력한다. 그리고 두 확률의 합은 1이 된다. → ' H(X) = sigmoid(WX + B) ' 1-2. Softmax (= Multi-Class Classification) Softmax Regression은 각 클래스(=선택지)마다 확률을 할당하고, 그 확률의 총합이 1이 된다. 또한 각 클래스가 .. AI |Computer Vision/Basic Pytorch 2022. 4. 20.
[Pytorch] Logistic Regression (로지스틱 회귀) 1. Logistic Regression 간략 설명 및 구현 Logistic Regression은 2가지 중 하나를 결정하는 문제인 ' Binary Classification (이진 분류) '를 풀기 위한 대표적인 알고리즘 중에 하나이다. ex) 스팸 메일 분류, 합격/불합격 분류 등 1-1. Hypothesis ( ex, Sigmoid function ) Sigmoid function은 입력값이 커질수록 1에 수렴하고, 작아질수록 0에 수렴한다. 이 함수의 출력값은 0 ~ 1 사이의 값을 가지는데, 이 특성을 이용하여 Classification 작업에 사용 ex) 임계값(=0.5) 이상이면 1(True), 이하이면 0(False)로 판단 1-2. Cost function Linear re.. AI |Computer Vision/Basic Pytorch 2022. 4. 20.
[Pytorch] Multivariable Linear Regression (다중 선형 회귀) " 다수의 x로부터 하나의 y값을 예측하는 모델 " → 2개 이상의 데이터(정보)들로부터 어떤 값을 예측하는 모델 ex) 암의 위치, 넓이, 모양 등을 통한 치료 성공률 ex) 여러 쪽지시험 데이터들을 통한 마지막 시험의 점수 1. PyTorch로 모델 구현하기 → 독립 변수 x가 3개인 모델, 즉 3개의 쪽지시험 점수로부터 Final 점수를 예측하는 모델 구현 import torch import torch.nn as nn # 신경망을 구축하기 위한 데이터 구조나 레이어 정의 import torch.nn.functional as F import torch.optim as optim # Parameter 최적화 알고리즘 구현 # Random .. AI |Computer Vision/Basic Pytorch 2022. 4. 12.
[Pytorch] Single Linear regression(단일 선형 회귀) - 선형회귀(Linear regression)을 이해하고, Pytorch로 모델을 만들어보자 → 하나의 정보로부터 하나의 결과값을 추측! - 데이터 이해, 가설(Hypothesis)수립, 손실(Loss)계산, Gradient descent(Loss funcion) 최소화 ex) 쪽지 시험 점수 예측 1) Data - Train, Test 어떤 학생이 1,2,3시간을 공부했을 때 각각 2,4,6점을 받았다면, 4시간을 공부한다면 몇 점을 받을까? 이 상황에서 예측하기 위해 학습하는 데이터를 ' Training Dataset '라고 하며, 해당 모델이 얼마나 잘 작동하는지 판별하는 데이터를 ' Test Dataset '이라고 한.. AI |Computer Vision/Basic Pytorch 2022. 4. 10.
[PyTorch] Tensor Manipulation 2 1. PyTorch Tensor의 기본 연산 → View, Squeeze, Unsqeeze, Type casting, Concatenate 등의 기초적인 텐서 연산하기 1) View - Tensor의 size 조절 ( 매우 중요 ★★★ ) Pytorch View(뷰)는 "Tensor의 shape를 변경"해주는 역할을 수행한다. → view는 size 변경 전과 후의 Tensor 안의 원소 개수가 유지되어야 한다. → Pytorch의 view는 size가 -1로 설정되면, 해당 차원은 무시하고 다른 차원으로부터 값을 유추 3차원 Tensor에서 2차원 Tensor로 변경 import torch ft = torch.FloatTensor([[[0, 1, 2], # 3차원의 Tensor 생성(ft) [3, 4,.. AI |Computer Vision/Basic Pytorch 2022. 4. 4.
[PyTorch] Tensor Manipulation 1 1. Tensor 이해하기 1D : Vector (벡터) 2D : Matrix (행렬) 3D : Tensor (텐서) - 주로 3차원 이상을 Tensor로 분류 4D : 3차원의 텐서를 위로 쌓아 올린 형상 - 이후 차원은 옆/뒤로 확장한 모습 2. Pytorch Tensor Shape Convention Matrix, Tensor들에 대해 " 크기를 구하는 것 "이 중요하다. 정확한 크기를 고려해야 제대로 구현할 수 있으며, 수식을 쉽게 이해할 수 있다. 2D Tensor : |t| = ( batch size, dim ) 3D Tensor : |t| = ( batch size, width, height ) → 여기부터는 조금 더 복잡한 형.. AI |Computer Vision/Basic Pytorch 2022. 3. 29.
반응형