Pytorch 17

Computer Vision

• 컴퓨터 분야에서 시각을 연구하는 분야 RecognitionClassification• 이미지 input에 대해서 label 예측하는 것 • CNN 모델을 중첩해서 사용하거나, 응용하여 모델들을 구현 ex) LeNet, AlexNet, GoogleNet, ResNet, VGG Semantic Segmentation• 모든 픽셀의 label을 예측하는 Task • 한 장에 사진에서 여러 개의 label이 존재 가능 • 한 장의 이미지에서 대상을 구체적으로 정의하지 않고, 큰 분류로 구분 ex) DeepLabV3, FCN, LRASPP Instance Segmentation• Semantic segmentation과 다르게 각각의 객체를 인식하는 것이 특징 ex) Mask R-CNN Object Dete..

Pytorch 2025.05.10

Overfitting, Underfitting

Overfitting• 모델이 학습 데이터(Training data)에 과하게(over) 맞춰진(fitted) 상황• 모델이 문제를 해결하는데 있어서 범용성(Generality)이 떨어지는 문제 원인데이터• 학습 데이터가 다양한 특징을 반영하지 못하고 편향되어 있는 경우• 데이터 자체가 부족한 경우• 데이터의 특징이 너무 다양해서 결정 경계를 만들기 어려운 경우 학습 알고리즘• Loss 함수에 의해 오차 자체가 너무 데이터에 fit하게 모델이 학습하는 경우 모델• 데이터에 비해 너무 복잡한 모델을 활용하는 경우 -> hidden layers-> 히든 유닛이 많으면 결정 경계를 더 고차원으로 만들 수 있음• 모델에 너무 많은 정보를 담으려고 하는 경우 -> layer 깊이• 모델을 필요 이상으로 학습을 진..

Pytorch 2025.05.09

Loss and Optimizer

LossesMean Square Error (MSE) : L2 Loss-> RegressionCrossEntropyLoss* Entropy엔트로피는 정보의 불확실성을 의미 * CrossEntropyq(x) *log p(x)예측모델(q)는 실제 분포 p를 모르는 상태에서 구분 분포를 따라가고자함entropy를 줄이는 쪽으로 minimize함 : 불확실성을 줄이겠다.Loss 함수에서는 분포의 차이를 줄이는 것이 목표pytorch에서는 crossentropyloss는 softmax가 포함되어 구현 Kullback-Leibler divergence loss* KLDivLoss서로 다른 두 분포의 차이를 측정하는 데 쓰이는 measurecross-entropy는 entropy보다 항상 0보다 크거나 같은 값을 갖..

Pytorch 2025.05.01

Backpropagation & Activations

인공신경망의 기본 원리신경망 모델신경망 모델 학습 원리input, activation func, output으로 구성 가중치와 편향 y=wx+b인풋(x)이 들어오면 가중치(w)를 곱함 (wx)가중치 : 신호 전달의 정보를 얼마나 많이할 것인지를 나타냄편향(b) : 뉴런이 얼마나 쉽게 활성화 되느냐를 결정 - 활성화 하는 레벨을 의미함 (있을수도~없을수도~) 활성화 함수 h(x)y=h(b+w1x1+w2x2): 입력 신호의 총합을 출력 신호로 변환하는 함수임계 값을 경계로 출력하는 특징 다층 perceptron입력층 : 데이터를 입력 받음은닉층 hidden layer : 학습을 진행함. N개 이상으로 구성되며 정보를 담아냄출력층 : 입력된 데이터에 따라 결과를 출력하는 계층. Task에 따라 다르게 구성 가..

Pytorch 2025.04.22

Model

Review of Neural Network Model오차 산출 단계 Losses정답을 알고 있는 입력 이미지 여러장을 딥러닝 모델에 넣었을 때 나온 예측 값과 정답을 비교 가중치 수정 단계 Optimization틀린 정답에 대해서 optimize 함수로 가중치를 수정함 평가 단계 Evaluation정답을 알고 있는 입력 이미지 여러장을 일부 학습된 딥러닝 모델에 넣었을 때 나온 예측 값과 정답을 비교 출력층softmax layer를 통해서 확률분포화 시킨다. Parametric vs Non-parametricParametric layers* backpropagation을 통해 학습을 진행하는 계층- loss를 통해 학습을 진행하는 계층* 은닉층, 출력층, 합성곱 층* 모델의 크기(메모리)를 좌우함- 학..

Pytorch 2025.04.14

Transform

: 데이터를 변형하고 가공하기 쉽게 만들어주는 함수1. 학습 데이터 증가용2. 모델 학습하기 위해 텐서를 제공하기 위해데이터 변형ML/DL 모델 학습에 적합한 형태로 변환하는 과정이 필요함ex. ToTensor() : 이미지로 존재하는 정보를 토치에 적용할 수 있도록 채널을 앞으로 빼는 형식 자동 증강 auto augmentation이미지 데이터에서 데이터의 다양성 부여를 위해 활용자동 증강을 통해 모델의 정확성 향상 가능ImageNet에 적용된 자동증강 기술들은 다른 데이터셋에 적용될 때도 상당히 유용TorchVision에서는 ImageNet, CIFAR10, SVHN에 대해 기본 제공 polish ToTensor(): min-max필터를 사용해서 normalization을 진행함

Pytorch 2025.04.14

DataLoader

data좋은 데이터 - 양 : 크기가 크다- 완결성 : 비어있는 값이 없다- 신뢰도 : 현실을 잘 계측함- 시기적절함 : 필요할 때 수집하고 사용 데이터 기술 시 사용하는 단어특성 : 정형/비정형크기 : 행 수, 차원 수 , 크기타입 : 범주형 변수와 연송형 변수용도 : 학습, 검증(모델 튜닝), 평가 데이터 (7:2:1)-> 더 좋은 모델일수록 검증 데이터에서 잘 나오면 평가 데이터에서도 잘 나옴 정형데이터행, 열(; 차원 dimension), 크기 비정형데이터구조가 없는 이미지, 자연어 등 데이터 확보 전략수집 목적과 데이터 종류에 대해 구체적인 계획 세우는 것이 좋음. 데이터 행의 개수 - 최대한 많을 수록 좋음테이블 데이터 - 특성의 개수가 너무 많을 경우 문제가 됨-> overfitting의 위..

Pytorch 2025.04.11

Tensors Operation

torch.is_tensor(x) # 텐서 여부 확인torch.is_nonzero(x) # zero 여부 확인 # 학습이 잘 안된 케이스는 0인 케이스가 발생함 # 텐서로 들어온 인풋은 잘 작동 안함 텐서 생성torch.tensor([[0,1,2], [3,4,5]])torch.from_numpy(n)torch.zeros(2,3)torch.ones(2,3) 연산torch.permute # 위치 바꾸기torch.reshape(b, (-1,)) # flattentorch.transpose # 2 axis를 바꿈torch.squeeze # 데이터 전처리에 활용. 디멘션을 출여줌. 차원이 1인 것을 없애줌. reduction opstorch.argmax(a) # 가장 큰 값의 인덱스를 가져오는 것torch.arg..

Pytorch 2025.04.09

Tensor

텐서텐서 정의와 특징모델의 입력, 출력 뿐만 아니라 매개 변수 인코딩 가능Numpy의 ndarrays와 유사Numpy 배열과 텐서는 기본 메모리를 공유 가능하므로 데이터 복사할 필요성이 없음- 연산 처리가 편리하지만, 의도치 않게 데이터가 참조가 되는 경우가 발생Auto Diff에 최적화되어있음-> x->ㅁ->y^ y 차이를 optim을 통해 학습을 진행하는 것. 차이를 구하고 최적값을 산출하는 파라미터의 메모리 주소가 auto tracing이 된다. 사용자가 일일이 해주지 않아도 됨.--> 생각하지 못한 곳에서 메모리가 참조되는 경우가 있음.  텐서 생성직접 생성데이터(사용자가 인코딩해서 벡터 형식으로 표현)로부터 직접적으로 텐서 생성이 가능함자료형은 자동으로 유추되어 적용specific한 자료형이 ..

Pytorch 2025.04.08

딥러닝 파이프라인

학습 단계배치가 작을수록 가중치 수정이 빈번하게 일어남.배치가 작으면 모델이 디테일하지만, 다양한/일반적인 특징은 못봄.  GPU 메모리에서 핸들링할 수 있는 최대치로 하는게 좋음.  epoch과 batch-> 가지고 있는 데이터를 다 쓰면 1 epoch10 epoch는 가지고 있는 데이터를 10번 돌린다는 뜻batch는 모델에 가지고 있는 데이터를 몇장씩 넣을 건지. 넣은 배치 이미지 마다 예측, 정답을 가려서 가중치를 수정하고 다음 배치를 다시 입력으로 받음 1 epoch는 여러 batch 오차는 예측과 정답 사이에 차이가 얼만큼 있는지.최적화는 선을 얼마만큼 움직여서 최적의 방향으로 가는지.오차가 큰 경우에는 최적화를 더 많이 할 수도 있음. 텐서와 벡터텐서를 1차원으로 펼치면 벡터 커널 기반 모델..

Pytorch 2025.04.07