본문 바로가기

분류 전체보기26

[PyTorch] Dataset과 DataLoader PyTorch에서는 데이터를 쉽게 다루게 하기 위해 torch.utils.data.Dataset과 torch.utils.data.DataLoader 클래스를 제공합니다. Dataset 클래스를 사용하여 사용자 데이터셋을 정의할 수 있으며 이를 통해 데이터를 불러오고 전처리하는 과정을 학습 코드로부터 분리하여 관리할 수 있습니다. DataLoader 클래스는 데이터셋을 배치 단위로 쉽게 접근할 수 있도록 iterable한 객체로 변환시켜주는 역할을 합니다. DatasetDataset 클래스를 상속 받아 필요한 사용자 데이터셋을 만들어 줄 수 있습니다. Dataset 클래스의 구성은 다음과 같습니다. __init__: 객체가 생성될 때 데이터를 불러오고 필요한 변수를 선언할 수 있습니다... 2024. 4. 20.
[ML] Importance Sampling (중요도 샘플링) 확률 모델에 기반한 머신 러닝에서 함수 $f(x)$의 확률분포 $p(x)$의 기댓값을 구해야 하는 경우가 있습니다. 하지만 기댓값 $\mathbb{E}_{x\sim p}[f(x)]=\int f(x)p(x)dx$ 을 수식적으로 계산하기 어려운 경우 큰 수의 법칙(Law of large numbers)에 따라 sampling을 통해 $x^{(n)}$을 추출한 후 아래와 같이 기댓값을 근사할 수 있습니다. 이러한 방법을 Monte Carlo 기법이라고 합니다.  $$ \mathbb{E}_{x\sim p}[f(x)]\simeq\frac{1}{N}\sum_{n=1}^N f(x^{(n)})$$ Importance Sampling이란?Importance sampling은 이러한 상황에서 본래의 분포 $p(.. 2023. 12. 3.
[RL] 강화학습 이론: On-policy & Off-policy 강화학습 알고리즘은 on-policy 방식과 off-policy 방식으로 분류될 수 있습니다. On-policy와 Off-policy의 차이는 아래와 같습니다. On-policy methods: Behavior policy = Target policyOff-policy methods: Behavior policy ≠ Target policy 여기서 behavior policy와 target policy의 개념이 나오는데 아래와 같습니다. Behavior policy $b(a|s)$: Action을 선택하고 데이터 샘플을 얻을 때 사용되는 policyTarget policy $\pi(a|s)$: 평가(evaluate)하고 업데이트(improve)하고자 하는 policy 즉 정책 .. 2023. 11. 8.
[ML] 손실 함수: Huber Loss & Smooth L1 Loss 회귀 모델의 대표적인 손실 함수로 L1 loss와 L2 loss가 있습니다. L1 loss는 MAE (Mean Absolute Error)라고도 하며 L2 loss는 MSE (Mean Squared Error)라고도 합니다. ■ L2 Loss (MSE, Mean Squared Error) L2 loss는 실제값과 예측값의 오차를 제곱하여 구합니다. 모든 구간에서 미분이 가능하여 gradient를 구하기 쉽지만, 실제값과 예측값이 차이가 큰 outlier에 대해서는 제곱 효과에 의해 loss가 커지는 단점이 있습니다. $$ \text{L2 Loss} = \sum_{n=1}^N (x_n-y_n)^2 $$ ■ L1 Loss (MAE, Mean Absolute Error) L1 loss는 실제값과 예측값 차이의.. 2023. 11. 7.
[RL] 강화학습 알고리즘: (5) PPO PPO (Proximal Policy Optimization)는 2017년도 OpenAI에서 공개한 논문으로 이전 TRPO (Trust Region Policy Optimization) 알고리즘을 실용적으로 발전시킨 논문입니다. Policy gradient 계열의 알고리즘으로 성능이 우수하면서도 구현이 간단하여 performance와 complexity의 밸런스가 잘 잡힌 알고리즘으로 알려져 있습니다. Motivation PPO와 TRPO는 동일한 motivation을 가지고 있습니다. 주어진 데이터를 가지고 현재 policy를 최대한 큰 step만큼 빠르게 향상시키면서, 그렇다고 성능이 발산해버릴 정도로 너무 큰 step으로 업데이트 하는 것은 억제하고자 합니다. TRPO와 PPO의 최적화식을 비교해보.. 2023. 8. 13.
[ML] 분류 성능 지표: Precision(정밀도), Recall(재현율), F1-score 분류 모델이 얼마나 잘 학습되었는지에 대한 성능 지표는 Accuracy (정확도), Precision (정밀도), Recall (재현율) 등이 있습니다. 각각의 성능 지표 전에 confusion matrix 먼저 알아보도록 하겠습니다. 1) Confusion Matrix Confusion matrix는 실제 클래스와 예측된 클래스의 매칭을 이용하여 분류 모델을 평가하는 도구입니다. 이진 분류 문제에서 실제 클래스는 Positive/Negative로 나누어져 있고 분류 모델은 샘플들을 Positive/Negative로 분류합니다. 따라서 [그림 1]처럼 TP (True Positive), FP (False Positive), FN (False Negative), TN (True Negative)의 네가지 .. 2023. 1. 21.
[최적화] DE (Differential Evolution) 알고리즘 차분 진화 (Differential evolution, DE) 알고리즘은 최적해를 찾기 위한 metaheuristic 기법 중 하나입니다. Metaheuristic 알고리즘들은 global optimal solution으로의 수렴을 보장해주지는 않지만, 제한된 정보와 적은 복잡도를 가지고 상당히 좋은 솔루션을 찾을 수 있다는 장점이 있습니다. Differential Evolution이란? DE 알고리즘은 multi-dimensional real-valued 함수의 최적화를 위해 쓰이지만 gradient를 사용하지 않기 때문에 목적 함수가 미분 가능하지 않아도 된다는 특징이 있습니다. DE 알고리즘은 기본적으로 유전 알고리즘 (Genetic algorithm, GA)와 유사한 구조를 가지고 있습니다. Po.. 2022. 12. 31.
[RL] 강화학습 알고리즘: (4) DDPG DDPG (Deep Deterministic Policy Gradient)는 Google DeepMind에서 2016년도 ICLR에 발표한 논문입니다. 이전 2014년에 공개한 DPG (Deterministic Policy Gradient) 논문에서 DQN을 결합하여 발전시킨 알고리즘입니다. Motivation DDPG는 DQN에서 성공적이었던 부분들을 continuous action 영역으로 확장하고자 하였습니다. 단순히 continuous action 영역을 discrete한 구간으로 잘게 나누는 것은 많아진 discrete action들로 인한 학습 성능 저해(curse of dimensionality)와 기존 continuous action이 가진 구조적 정보를 잃어버린다는 단점이 있습니다. 따라.. 2022. 12. 30.
반응형