728x90
반응형

전체 글 114

[pythonML] 앙상블(ensemble model)이란? | 앙상블의 종류 | 편향 (Bias)과 분산(Variance)

앙상블(ensemble)이란?축구 경기를 준비하는 감독을 생각해 보세요.감독님은 팀을 구성할 때, 각 선수의 특성과 능력을 고려하여 최적의 선수들로 조합을 만들겠죠!?  예를 들어,빠른 스피드를 가진 공격수, 강력한 방어력을 가진 수비수, 경기를 조율하고 전략을 이끄는 미드필터, 골을 지키는 데 탁월한 골키퍼 등이 감독님은 각 선수의 장점을 최대한 활용해 팀을 구성하고, 이들이 함께 협력하여 경기에서 승리할 수 있도록 합니다.  각 포지션 선수들은 저마다 다르게 경기에 기여하지만, 이들이 잘 조화되었을 때 팀은 최상의 성과를 내겠죠. 앙상블 모델도 이와 비슷하게 작동합니다. 각 머신러닝 모델은 축구팀의 선수들처럼특정한 역할을 맡고 있어요. 각 모델이 가진 강점을 결합함으로써, 하나의 모델이 혼자서 이루지..

pythonML 2024.08.27

[논문 리뷰] Resnet (Deep Residual Learning for Image Recognition)

초록1. 잔여 학습 프레임워크 소개: 일반적으로 신경망이 깊어질수록 학습하기 어려워집니다. 이 문제를 해결하기 위해 '잔여 학습 프레임워크'라는 새로운 방법을 제안했습니다. 이 방법은 각 레이어가 입력 데이터에 어떤 변화를 주어야 할지, 즉 '잔차'를 학습하도록 만듭니다. 이는 신경망이 더 깊어져도 잘 학습할 수 있게 도와줍니다.2. 신경망의 재정의: 이전에는 신경망의 각 레이어가 입력을 직접 처리하도록 설계되었습니다. 그러나 잔여 학습에서는 각 레이어가 입력과 출력 사이의 차이, 즉 '잔차'를 목표로 하여 학습합니다. 이 접근 방식으로 인해 신경망의 학습이 쉬워지고, 더 깊은 네트워크에서도 높은 정확도를 달성할 수 있습니다.3. ImageNet 데이터셋에서의 성공: 잔여 네트워크는 ImageNet 데이..

논문 리뷰 2024.08.16

[논문 리뷰] GoogleNet(Going deeper with convolutions)

GoogleNet 특징최적의 지역 희소 구조를 찾아 밀집된 구성 요소로 덮는 방식을 통해 설계되었습니다.1x1, 3x3, 5x5 크기의 필터를 활용하여 다양한 패치를 커버하고, 이를 다음 단계의 입력으로 결합합니다.계산 요구가 증가하는 경우 차원을 줄이는 길을 선택하여 계산 복잡성을 제어합니다.1x1 컨볼루션은 차원 축소 및 선형 활성화를 통해 두 가지 기능을 수행합니다.다양한 스케일에서 정보를 처리하고 집계하여 다음 단계에서 서로 다른 스케일의 특징을 동시에 추상화합니다.중간 계층에 보조 분류기를 추가하여 구별 능력을 강화하고, 학습 시 총손실에 추가하여 정규화 효과를 제공합니다.소개인셉션 아키텍처는 이미지넷 대규모 시각 인식 도전(ILSVRC14)에서 새로운 최고 성능을 달성한 딥 컨볼루션 신경망입니..

논문 리뷰 2024.07.08

[논문 리뷰] 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
728x90
반응형