Study/머신러닝 28

Generation-확산모델

확산 확률 모델( DPM)- 확산 모델은 정방향/역방향 과정으로 구성됨- 디노이징 확산 확률 모델(DDPM)은 현재 더해진 잡음을 추정하는 방식의 목적 함수를 취함 - 생성은 잡음을 점진적으로 제거하는 방식으로 진행되어 매우 느림확산 확률 모델 (Diffusion Probabilistic Model, DPM, 2015) - 최근 활발히 연구되고 있는 모델 DPM - 확산과 확률- 확산이란? → 물질(픽셀 값)이 섞이고 번져가다가 마지막에는 균일한 농도(노이즈)가 되는 현상 - 확산 현상을 시간에 따라 확률적 모델링 : 마르코프 체인 (Markov Chain) 미래는 과거가 아닌 현재에만 의존!DPM의 구조 - 정방향 확산 (Forward Diffusion Process): 데이터 → 노이즈 (고정)   ..

Study/머신러닝 2025.01.10

적대적 생성 신경망(Generative Adversarial Networks)

적대적 생성 신경망 (Generative Adversarial Networks) 적대적 생성 신경망 (Generative Adversarial Networks, GANs) - Generative (생성) / Adversarial (적대적) / 신경망 (Networks) - 적대적으로 학습하는 신경망들로 구성되며, 생성 모델로써 활용함생성 모델 관점에서의 VAE와 GANs의 차이- VAE의 생성 방식: 입력 분포를 근사하는 과정에서 규제 (Regularization)을 주며 데이터를 생성 - GANs의 생성 방식: 생성된 데이터와 실제 데이터를 판별하고 속이는 과정을 거치며 생성 모델을 개선 GANs 구조- 데이터를 생성하는 생성 모델 (Generator)과 데이터의 진위를 구별하는 판별 모델 (Discr..

Study/머신러닝 2025.01.09

Generation-오토 인코더

오토 인코더오토 인코더 (Autoencoder, 1987)- 입력 데이터의 패턴을 학습하여 데이터를 재건하는 모델    - 비선형 차원 축소 기법으로 활용 가능 오토 인코더의 구조- 인코더(Encoder): 데이터를 저차원 잠재 표현으로 요약 - 디코더(Decoder): 저차원 잠재 표현으로부터 데이터를 재구성(Reconstruction) - 손실 함수: 잠재 표현으로부터 복구한 데이터와 입력 데이터의 평균제곱오차(MSE) 디노이징 오토 인코더- 입력 데이터에 랜덤 노이즈를 주입하거나 Dropout 레이어를 적용- 노이즈가 없는 원래 데이터로 재구성- 디노이징 오토 인코더의 원리      - 안개 속에서 멀리 있는 물체를 구별하려면? 데이터의 특성들을 더욱 정확히 학습함      - 노이즈에 강건한 잠..

Study/머신러닝 2025.01.09

Generation-생성 모델 평가지표

판별모델의 평가 지표범주형 데이터를 활용하는 판별 모델의 평가 지표 - 분류 문제에서는 주어진 데이터에 대해 범주를 얼마나 잘 맞췄는지에 대해 평가 - 직관적인 개념인 정확도 (Accuracy)를 많이 활용 - 문제 상황: 각 클래스별 데이터가 불균형한 경우에 정확도만으로 평가할 수 없음 - 해결 방안: 정밀도 (Precision), 재현율 (Recall), F-점수 (F-score) 등 다른 지표를 통해 정확도의 단점을 보완연속형 데이터를 활용하는 판별 모델의 평가 지표 - 회귀 분석에서는 실제 값과 모델이 예측한 값의 차이를 기반으로 평가- 대표적으로 평균 제곱 오차 (Mean Square Error, MSE), 평균 절대 오차 (Mean Absolute Error, MAE)가 있음- 문제 상황: 주..

Study/머신러닝 2025.01.09

Generation-생성 모델

생성모델의 발전 과정고전 생성 모델- 생성 모델 (Generative models)    - 데이터는 저차원의 필수적인 정보로부터 생성 가능하다는 가정하에 분포를 학습, 새로운 데이터를 생성- 확률 분포 추정과 근사     - 가우시안 혼합 모델 (Gaussian Mixture Model, GMM, 1981) : 여러 개의 정규 분포      - 제한된 볼츠만 머신 (Restricted Boltzmann Machine, RBM, 1985) : 볼츠만 분포      - 심층 신뢰망 (Deep Belief Network, DBN, 2006) : 여러 층의 RBM      - 자기 회귀(Autoregressive Distribution Estimator, NADE, 2011) : 자기 회귀 기반의 생성 모델 ..

Study/머신러닝 2025.01.09

PyTorch Hydra

Hydra - 파라미터가 복잡해지면서 코드를 구조화하거나 관리하기 어려운 문제를 해결하기 위해, 별도의 설정 파일을 작성하여 관리하는데 사용하는 오픈소스 프레임워크 - 설정 파일을 통해 비슷한 여러 태스크를 관리 및 실행할 수 있도록 도와주는 프레임워크배경- 관리의 어려움: 파라미터가 여러 파일이나 클래스, 함수에 분산돼 있으면, 각각의 위치에서 파라미터를 변경해야 하므로 파라미터 관리가 어려워- 코드 일관성의 어려움: 같은 파라미터가 여러 위치에서 사용된다면, 일관성을 유지하기 위해 모든 위치를 동시에 업데이트Yet Another Markup Language(yaml) - Hydra에서 파라미터 관리를 위해 yaml이라는 데이터 포맷을 사용 - 포맷의 특징    - key-value 구성으로 작성된 파..

Study/머신러닝 2024.12.17

PyTorch Lightning

PyTorch Lightning 배경 - 구현하는 코드의 양이 늘어나며 코드의 복잡성이 증가하고 이에 따라 다양한 요소들이 복잡하게 얽히게 됨- 이런 요소들은 서로 강하게 관계성을 가지게 되어, 한 부분을 변경하면 다른 부분에도 영향PyTorch에 대한 high-level 인터페이스를 제공하는 오픈소스 라이브러리- High-level 인터페이스 : 복잡한 시스템이나 프로그램을 사용자에게 더 단순하고 이해하기 쉽게 만들어주는 인터페이스를 의미 - 딥러닝 모델 구축의 코드 템플릿으로써 기능을 하여 코드를 작성할 때 좀 더 정돈되고 간결화된 코드를 작성- 코드 템플릿 : 특정 프로그래밍 작업을 간소화하거나 반복적인 코드 작성을 줄이기 위해 미리 정의된 코드 블록이나 구조를 의미코드의 추상화 및 하드웨어 호출 ..

Study/머신러닝 2024.12.17

PyTorch 전이학습

Pretrained Model대규모 데이터셋을 기반으로 학습된 모델로, 학습한 task에 대한 일반적인 지식을 갖고 있음GPT, PALM, Stable-Diffusion전이학습사전 학습된 모델 (pretrained model)의 지식을 다른 task에 활용하는 것모델이 이미 학습한 일반적인 지식을 기반으로 더 빠르고 효과적이게 새로운 지식을 학습 가능전이 학습 종류Fine-Tuning - 전이 학습의 한 방법- Pretrained model을 그대로 혹은 layers를 추가한 후 새로운 작업에 맞는 데이터로 모델을 추가로 더 훈련시키는 방법Domain Adaptation - 전이 학습의 한 방법 - A 라는 도메인에서 학습한 모델을 B라는 도메인으로 전이하여 도메인 간의 차이를 극복하는 것이 목적Mult..

Study/머신러닝 2024.12.17

딥러닝과 PyTorch

PyTorch 작동 구조 학습 단계Data -> Model  -> Output -> Loss -> OptimizationPyTorch 사용Data : torch.utils.data.Dataset / torch.utils.data.DataLoader Model : torch.nn.Module Loss Function : torch.nn / torch.nn.functional Optimization : torch.optim각 클래스 간 관계  DataDataset과 DataLoader를 사용하여 데이터 로드 - `Dataset`과 `DataLoader`를 사용하면, 데이터 집합에서 미니 배치(전체 데이터 집합을 더 작은 부분집합으로 분할한 일부 데이터)크기의 데이터를 반환- PyTorch에는 이미지 데이터를..

Study/머신러닝 2024.12.17

텐서 조작, Tensor Manipulation(with PyTorch)

Tensor- 데이터 배열 (array)를 의미수학적 연산- 사칙 연산 :원소단위로 연산이 가능- 내적 : 1D 텐서 단위에서만 가능- 행렬 곱 연산 : 두 행렬의 대응하는 행과 열의 원소들을 곱한 뒤 더하는 방식 = 행과 열 단위로 내적      - 계산 상 앞의 행렬의 열과 뒤의 행렬의 행의 길이가 같아야 함 Broadcasting - 차원이 다른 두 텐서 혹은 텐서와 스칼라간 연산을 가능하게 해주는 기능 (※ 단, 불가능한 경우 존재) - 2D 텐서와 1D 텐서의 연산Sparse Tensor - Dense tensor: 배열의 모든 위치에 값을 가지는 텐서    - 생략 가능한 원소까지 모두 저장하여 tensor의 크기와 비례하게 memory 사용 -> Out of memory (OOM) 문제 ..

Study/머신러닝 2024.12.16