본문 바로가기

Study67

[머신러닝/딥러닝] numpy로 구현하는 Affine Affine class Affine: #파라미터 정의 def __init__(self, w, b): #if Input x = 6, 5 self.params = [w, b] #w, b = 5, 5 self.grads = [np.zeros_like(w), np.zeros_like(b)] self.x = None #순전파 def forward(self, x): w, b = self.params out = np.matmul(x, w) + b #=> b는 broadcast (1, 5) -> (5 by 5) self.x = x return out #역전파 def backward(self, dout): w, b = self.params dx = np.matmul(dout, w.T) dw = np.matmul(self.. 2024. 2. 16.
[머신러닝/딥러닝]Softmax와 Crossentropy 1. Softmax : 출력이 총 n개일때 k번째의 출력 yk를 구하는 계산식 2. CrossEntropy Sk = 예측값, yk는 클래스 k에 속할 확률 yk = exp(Sk) / ∑exp(Si) => exp은 음수를 제거함, yk는 0과 1사이의 값 Loss = -∑ tklogyk => yk가 0과 1사이이므로, log를 씌우면 음수가 됌. tk는 one-hot 인코딩 된 것으로 모든 클래스에 대해 구함 미니배치에 대해서는 Loss = -1/N(∑n∑k*tnk*logynk) 2024. 2. 16.
[머신러닝/딥러닝] pytorch로 구현하는 MLP 1. 사용자정의 Dataset 클래스 정의 2. Dataset 인스턴스 생성 및, DataLoader을 통해 데이터 형식 지정 3. MLP 구조 정의 (2에서 지정한 Feature 수 = infeature, hiddenfeature, outfeature는 사용자 지정) import torch import torch.nn as nn import numpy as np import pandas as pd from torch.utils.data import DataLoader, Dataset # 데이터 생성 및 DataFrame 변환 a = np.arange(100).reshape(-1, 10) df = pd.DataFrame(a) # 사용자 정의 Dataset 클래스 class MyDataset(Dataset.. 2024. 2. 11.
[경량화/최적화] Unstructured Pruning Unstructured pruning은 신경망에서 개별 파라미터(가중치)를 독립적으로 평가하고 제거함으로써 모델의 크기를 줄이는 기법. 이 접근 방식은 모델 내부의 가중치를 개별적으로 살펴보고, 중요도에 따라 일부를 제거하여 모델을 희소화함. 결과적으로, 모델의 가중치 행렬이 점점 더 희소해지게 되며, 이는 저장 공간과 계산 비용을 줄일 수 있음. 1. Unstructured Pruning의 특징 개별 가중치 평가: 각 가중치의 중요성을 개별적으로 평가하여, 중요하지 않은 가중치를 제거 희소한 행렬 생성: Pruning을 진행하면서 점점 더 많은 가중치가 0이 되어, 모델의 가중치 행렬이 희소해짐 계산 속도 향상의 한계: 희소한 계산을 효율적으로 처리할 수 있는 전용 소프트웨어나 하드웨어가 없는 경우, .. 2024. 2. 9.