728x90
반응형

pytorch 28

[pytorch] 과적합 방지를 위한 가중치 규제(Weight Regularization)(feat. L1 라쏘 규제, L2 릿지 규제)

가중치 규제(weight regularization)는 과적합(overfitting)을 방지하기 위해 신경망 모델의 학습 과정에서 가중치 크기에 제약을 추가하는 기법입니다.과적합은 모델이 학습 데이터에는 매우 잘 맞지만, 새로운 데이터에 대해서는 일반화 성능이 떨어지는 현상을 말합니다. 가중치 규제를 사용하면 이런 문제를 어느 정도 해결할 수 있습니다.😆 가중치 규제에는 주로 두 가지 유형이 있습니다. L1 규제 (라쏘 규제) 란? ✅L1 규제는 모델의 손실 함수에 가중치의 절댓값의 합에 비례하는 항을 추가합니다. 수학적 표현은 다음과 같습니다.$$ L = L_0 + \lambda \sum_{i} |w_i| $$\( L \): 총 손실\( L_0 \): 모델의 원래 손실 함수 (예: MSE, 크로스 엔..

pytorch 2024.05.13

[pytorch] Learning Rate Scheduler (학습률 동적 변경)

학습률(Learning rate)은 모델 훈련 중 가중치를 업데이트하는 속도를 결정하는 중요한 하이퍼파라미터입니다. 적절한 학습률 설정은 모델 성능에 큰 영향을 미칠 수 있습니다.파이토치에서는 `torch.optim.lr_scheduler` 모듈을 사용하여 학습률을 동적으로 조정할 수 있습니다. 이 모듈에는 여러 가지 스케줄러가 포함되어 있어 다양한 전략으로 학습률을 조절할 수 있습니다.  1.Lambda LRLambdaLR는 사용자가 직접 학습률 조정 로직을 정의할 수 있는 스케줄러입니다. 이 스케줄러를 사용하면, 매 에폭마다 각 파라미터 그룹의 학습률을 사용자가 정의한 함수(`lambda` 함수)에 따라 조정할 수 있습니다. 이 함수는 현재 에폭을 입력으로 받고, 학습률을 조정할 스케일링 팩터를 반환..

pytorch 2024.05.03

[pytorch] RNN 계층 구현하기

RNN(Recurrent Neural Network, 순환 신경망)은 딥러닝 모델 중 하나로, 주로 시계열 데이터와 같이 순서가 있는 데이터를 처리하는 데 사용됩니다. RNN의 핵심 구조는 간단한 개념으로 시작합니다. 기본적인 신경망, 즉 인공 신경망(Artificial Neural Network, ANN)은 데이터를 입력받아 가중치를 조정하고, 활성화 함수와 같은 방법으로 출력 값을 생성하는데 사용됩니다. 그러나 ANN은 각 입력 간의 연관성이 없다고 가정하며, 이로 인해 순서가 있는 데이터 처리에 어려움이 있습니다. 이 문제를 해결하기 위해 RNN이 등장했습니다. RNN은 인공 신경망 구조를 사용하지만, 순환적으로 연결되어 있어 이전 입력의 정보를 저장하고 처리할 수 있습니다. 이를 통해 연속된 데이..

pytorch 2023.07.11

[pytorch] 이미지 분류를 위한 AlexNet 구현

AlexNet은 컴퓨터 비전 분야의 발전에 중요한 역할을 한 합성곱 신경망(CNN) 아키텍처입니다. 이는 Alex Krizhevsky, Ilya Sutskever, Geoffrey Hinton에 의해 개발되었으며, 2012년 ImageNet 대규모 시각 인식 챌린지(ILSVRC)에서 우승하였습니다. 이 대회는 딥러닝의 전환점을 표시하며, CNN이 이미지 분류 작업에서 강력한 성능을 보여준 것을 보여주었습니다. AlexNet 아키텍처는 총 여덟 개의 레이어로 구성되어 있으며, 다섯 개의 합성곱 레이어와 세 개의 완전 연결 레이어로 이루어져 있습니다. 입력 레이어: 입력 이미지를 받습니다. 일반적으로 픽셀 값의 행렬 형태로 제공됩니다. 합성곱 레이어 1: 첫 번째 합성곱 레이어는 입력 이미지에 학습된 필터를..

pytorch 2023.05.31

[pytorch] 이미지 분류를 위한 LeNet-5 구현

이미지 분류는 주어진 이미지를 다양한 클래스 또는 범주로 분류하는 것을 의미합니다. 이때, 분류의 목적은 이미지에 특정 대상이 존재하는지 여부를 판단하는 것입니다. 예를 들어, 고양이와 개를 분류하는 문제를 생각해 보면, 이미지 분류 모델은 입력된 이미지가 고양이인지 개인지를 판단합니다. 모델은 이미지에 대한 특징을 추출하고, 추출된 특징을 기반으로 해당 이미지가 고양이인지 개인지를 예측합니다. LeNet은 1990년대 후반 Yann LeCun 등이 개발한 초기 합성곱 신경망(CNN) 아키텍처로, 주로 필기체 숫자 인식에 사용되었으며 컴퓨터 비전 작업에서 심층 학습의 발전에 중요한 역할을 했습니다. 현대적인 아키텍처에 비해 레이어 수가 적지만, CNN의 발전을 이해하는 데 기초로 작용합니다. LeNet ..

pytorch 2023.05.15

[pytorch] 전이 학습 - 특성 추출 기법 (Feature Extraction)

전이 학습(transfer learning)이란? 하나의 문제를 해결하기 위해 학습된 모델의 지식을 다른 문제를 해결하는데 활용하는 기법입니다. 즉, 기존에 학습한 모델의 가중치와 편향값 등의 정보를 새로운 모델의 초기값으로 활용하여 학습을 진행하는 것을 의미합니다. 전이 학습은 대규모 데이터셋을 가지고 모델을 학습시키는데 필요한 시간과 비용을 줄일 수 있습니다. 또한, 새로운 데이터셋에 대한 모델의 정확도를 높일 수 있습니다. 이는 기존 모델에서 학습한 특성이 비슷한 문제에서도 유용하기 때문입니다. 전이 학습은 크게 두 가지 방법으로 나뉩니다. 특성 추출(Feature Extraction): 사전 학습된 모델을 사용하여 새로운 모델을 초기화하는 방법 → 전체 모델을 처음부터 학습시키는 것보다 효율적 미..

pytorch 2023.05.09

[pytorch] Convolutional Neural Network (CNN) 로 FashionMNIST 구현해보기

fashion_mnist 데이터셋을 사용하여 합성곱 신경망을 직접 구현해 보겠습니다. fashion_mnist 데이터셋은 토치비전에 내장된 예제 데이터로 운동화, 셔츠, 샌들 같은 작은 이미지의 모음이며, 기본 MNIST 데이터셋처럼 열 가지로 분류될 수 있는 28x28 픽셀의 이미지 7만 개로 구성되어 있다. 데이터셋을 자세히 살펴보면 훈련 데이터는 0-255 사이의 값을 갖는 28x28 크기의 넘파이 배열이고, 레이블(정답) 데이터는 0-9 사이 정수 값을 갖는 배열입니다. 이전 포스팅에서는 Deep Neural Network (DNN)로 FashionMNIST를 구현해 보았는데요! https://resultofeffort.tistory.com/95 [pytorch] Deep Neural Networ..

pytorch 2023.04.28

[pytorch] Deep Neural Network (DNN) 로 FashionMNIST 구현해보기

fashion_mnist 데이터셋을 사용하여 심층 신경망을 직접 구현해 보겠습니다. fashion_mnist 데이터셋은 토치비전에 내장된 예제 데이터로 운동화, 셔츠, 샌들 같은 작은 이미지의 모음이며, 기본 MNIST 데이터셋처럼 열 가지로 분류될 수 있는 28x28 픽셀의 이미지 7만 개로 구성되어 있다. 데이터셋을 자세히 살펴보면 훈련 데이터는 0-255 사이의 값을 갖는 28x28 크기의 넘파이 배열이고, 레이블(정답) 데이터는 0-9 사이 정수 값을 갖는 배열입니다. 1. 라이브러리 호출 import numpy as np import matplotlib.pyplot as plt import torch import torch.nn as nn from torch.autograd import Vari..

pytorch 2023.04.25

[pytorch] 합성곱층 - Filter(stride / padding)

이 그림은 필터가 한 개인 경우의 계산이다. 위 그림에서는 이해를 돕기 위해 2차원으로 표현했지만 일반적으로 filter는 3차원이며 CNN에서는 3차원 filter 여러 개를 개별 feature map 에 적용하는 방식이다. 그럼 필터가 두 개 이상인 합성곱은 어떤 형태일까? convolution 연산을 적용할 filter의 채널 수 는 입력 feature map의 채널수와 같아야 한다. -> 3 convolution 연산을 적용한 filter의 개수는 출력 feature ma의 채널수가 됨 -> 4 입력 이미지가 3차원 -> 피처맵도 3차원 컨볼루션 적용 시 출력 피처맵의 크기 계산 공식 1. input size = 5*5, filter = 3*3, Strides = 1, padding = 0 인 경..

pytorch 2023.04.09

[pytorch] CNN (합성곱 신경망)의 구조

합성곱 신경망(Convolutional Neural Network, CNN)은 이미지, 음성, 텍스트 등과 같은 다양한 유형의 데이터에서 특징을 추출하고 분류하는 데 사용되는 딥러닝 모델 중 하나입니다. CNN은 기본적으로 이미지 처리에서 주로 사용되며, 입력 데이터를 이미지의 픽셀로 구성된 2D 배열로 취급합니다. 합성곱 계층과 풀링 계층으로 구성되며, 합성곱 계층(convolutional layer)은 입력 이미지에서 특징을 추출하는데 사용되고, 풀링 계층(pooling layer)은 추출된 특징을 간소화하고, 데이터의 크기를 줄입니다. 이러한 합성곱 계층과 풀링 계층의 반복적인 구성으로 인해 CNN은 입력 데이터에서 다양한 수준의 추상화된 특징을 학습하여, 이러한 특징을 바탕으로 입력 이미지를 분류..

pytorch 2023.04.09
728x90
반응형