728x90
반응형

전체 글 103

[논문 리뷰] VGG (VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION)

Abstract이 연구는 합성곱 신경망의 깊이가 대규모 이미지 인식 정확도에 미치는 영향을 조사합니다. 저자들은 3x3 크기의 매우 작은 합성곱 필터를 사용하여 네트워크 깊이를 증가시키는 여러 아키텍처를 평가했습니다. 16~19개의 가중치 층을 가진 네트워크가 이전 모델들보다 성능이 우수하다는 것을 발견했습니다. 1. Introduction컴퓨터 비전 분야에서 AlexNet 등의 원래 아키텍처를 개선하려는 여러 시도가 이루어졌습니다. 예를 들어, ILSVRC-2013의 최우수 제출물들은 첫 번째 합성곱 층의 receptive field와 stride를 줄였습니다. 또 다른 개선 방향은 이미지 전체와 여러 스케일에 걸쳐 밀도 있게 네트워크를 학습하고 테스트하는 것이었습니다. 이 논문에서는 VGG 아키텍처 ..

논문 리뷰 2024.06.21

[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] 학습의 가속화를 위한 배치 정규화(Batch Normalization)

1. 입력 데이터 정규화딥러닝 모델에 입력되는 데이터는 각기 다른 범위의 값들을 포함할 수 있습니다. 예를 들어, 어떤 특성은 1에서 5 사이의 값을 가질 수 있고, 다른 특성은 1000에서 99999 사이의 값을 가질 수 있습니다. 이러한 데이터를 모델에 직접 입력하면 학습 과정에 부정적인 영향을 미칠 수 있습니다.위 이미지에서 데이터는 '몸무게'와 '키'라는 두 특성을 갖고 있어요. 몸무게의 단위는 킬로그램(kg)이며, 키의 단위는 센티미터(cm)입니다.- 왼쪽 표에서 몸무게는 60kg에서 90kg 사이고, 키는 170cm 에서 185cm 사이로 측정되어 있어요. 이러한 데이터를 기계 학습 모델에 직접 적용하면, 더 큰 숫자를 갖는 특성('키')이 모델에 더 큰 영향을 미칠 위험이 있습니다. 모델은 ..

Deep learning 2024.05.09

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

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

pytorch 2024.05.03

[밑바닥 DL] 4.word2vec와 추론 기반 기법 (feat.CBOW와 Skip-gram 모델로 단어 학습)

단어의 의미를 이해하고 처리하는 방법으로는 세 가지가 있다고 앞에서 설명했습니다.1. 시소러스를 활용한 기법2. 통계 기반 기법 시소러스와 통계 기반 기법(feat.동시 발생행렬, 코사인 유사도)자연어 처리란? 자연어 처리(Natural Language Processing, NLP)는 인간의 언어를 컴퓨터가 처리하도록 하는 인공지능의 한 분야입니다. NLP의 목표는 인간의 언어를 이해하고 생성할 수 있는 시스템을 개resultofeffort.tistory.com  PPMI의 한계와 차원 감소(feat.SVD)1.PPMI의 한계 PPMI 에는 몇 가지 제약이 존재합니다. 가장 중요한 문제 중 하나는 말뭉치 내 어휘의 수가 증가함에 따라, 단어 벡터의 차원 또한 비례하여 증가한다는 것입니다. 예를 들어, 어..

밑바닥 DL 2024.05.01

[오류Error] RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same

import torch import torch.nn as nn import torch.nn.functional as F class SimpleCNN(nn.Module): def __init__(self): super(SimpleCNN, self).__init__() self.conv1 = nn.Conv2d(in_channels=3, out_channels=4, kernel_size=3, stride=1, padding=1) self.conv2 = nn.Conv2d(in_channels=4, out_channels=8, kernel_size=3, stride=1, padding=1) self.pool = nn.MaxPool2d(kernel_size=2, stride=2) self.flatten = nn.F..

오류Error 2024.04.17

[밑바닥 DL] 3.PPMI의 한계와 차원 감소(feat.SVD)

1.PPMI의 한계PPMI 에는 몇 가지 제약이 존재합니다. 가장 중요한 문제 중 하나는 말뭉치 내 어휘의 수가 증가함에 따라, 단어 벡터의 차원 또한 비례하여 증가한다는 것입니다. 예를 들어, 어휘 수가 10만 개에 이른다면, 각 단어 벡터는 10만 차원의 공간에 배치됩니다. 이렇게 고차원의 벡터는 계산적으로 부담스럽고, 현실적인 데이터 처리에 있어 심각한 제약을 의미합니다.더 나아가, 해당 이미지의 PPMI 행렬을 자세히 살펴보면, 대부분의 원소가 0이라는 점을 알 수 있습니다. 이는 벡터의 대부분의 원소가 중요하지 않음을 시사하며, 각 원소의 '중요도'가 낮다는 것을 의미합니다. 이는 데이터의 희소성을 나타내며, 해당 벡터가 노이즈에 취약하고 견고하지 않다는 문제점을 드러냅니다. 이러한 고차원이고 ..

밑바닥 DL 2024.04.05

[밑바닥 DL] 2.동시발생 행렬의 한계와 해결책(feat. PPMI)

동시발생행렬은 말뭉치(corpus) 내에서 일정한 맥락 안에서 각 단어 쌍이 함께 등장하는 횟수를 세는 표입니다. 언어학, 자연어 처리, 데이터 분석에서 관계와 패턴을 분석하는데 유용한 도구지만 몇 가지 한계가 있습니다. 1.동시발생행렬의 한계1. 희소성(Sparsity): 많은 단어 쌍들이 함께 등장하지 않거나 자주 등장하지 않을 수 있습니다. 이로 인해 많은 값이 0인 희소 행렬이 되고, 이는 저장과 처리에 있어서 계산 효율성이 떨어질 수 있습니다.2. 고차원성(High Dimensionality): 말뭉치의 어휘가 많을수록 동시발생행렬의 크기가 커져 다루기 어렵게 됩니다. 3. 맥락 부족(Lack of Context): 단어들이 등장하는 순서나 맥락을 포착하지 못합니다. 예를 들어 "개가 사람을 물..

밑바닥 DL 2024.03.14

[밑바닥 DL] 1.시소러스와 통계 기반 기법(feat.동시 발생행렬, 코사인 유사도)

자연어 처리란?자연어 처리(Natural Language Processing, NLP)는 인간의 언어를 컴퓨터가 처리하도록 하는 인공지능의 한 분야입니다. NLP의 목표는 인간의 언어를 이해하고 생성할 수 있는 시스템을 개발하는 것입니다. 이를 통해 컴퓨터는 텍스트나 음성 데이터를 분석하고, 의미를 추출하며, 필요한 경우 자연어로 응답할 수 있게 됩니다. NLP는 기계 번역, 감정 분석, 챗봇 개발, 음성 인식 시스템 등 다양한 응용 분야에서 활용됩니다.단어의 의미를 이해하고 처리하는 것은 NLP에서 중요한 과제 중 하나입니다. 단어의 의미를 이해하고 처리하는 방법으로는 세 가지가 있습니다. 시소러스를 활용한 기법통계 기반 기법추론 기반 기법(예: word2vec)1. 시소러스 기반 기법시소러스는 단어의..

밑바닥 DL 2024.03.12
728x90
반응형