이전 내용
주피터노트북에서 tensorflow GPU 사용하기
오토인코더
오토인코더는 지도 방식을 사용하지 않고 잠재 표현 또는 입력 데이터의 밀집 표현(코딩)을 학습할 수 있는 인공 신경망이다. 코딩은 일반적으로 입력보다 훨씬 낮은 차원을 가지므로 오토인코더는 차원 축소, 시각화에 유용하게 사용된다.
일부 인코더는 훈련 데이터와 매우 비슷한 새로운 데이터인 생성 모델을 생성할 수 있다. 생성 모델의 예로는 얼굴 사진으로 오토인코더를 훈련하면 이 모델은 새로운 얼굴을 생성할 수 있게 되는 것을 들 수 있다.
- 작동 방식:
- 인코더 부분: 입력 데이터를 더 작은 차원(latent space representation)으로 변환하고, 이 과정에서 데이터의 중요한 특징을 압축하여 표현. (입력을 내부 표현으로 바꿈)
- 디코더 부분: 압축된 표현(latent representation)을 다시 원래의 형태로 복원. (내부 표현을 출력으로 바꿈)
- 목적: 입력 데이터와 복원된 데이터 간의 차이 최소화. 일반적으로 L2 손실(Mean Squared Error, MSE)을 최소화하도록 훈련.
- 구조:
- 일반적인 오토인코더는 두 개의 신경망 인코더와 디코더로 구성.
- 인코더는 입력을 latent vector로 변환하고, 디코더는 latent vector를 원래의 입력 형태로 재구성.
- 오토인코더가 입력을 재구성하기 때문에 출력을 종종 재구성 이라고 부름.
- 비용 함수는 재구성이 입력과 다를 때 모델에 벌점을 부과하는 재구성 손실 포함.
- 과소완전: 내부의 표현이 입력 데이터보다 저차원인 오토인코더. 과소완전 오토인코더는 입력을 코딩으로 간단히 복사할 수 없으며, 입력과 똑같은 것을 출력하기 위한 다른 방법을 찾아 입력 데이터에서 가장 중요한 특성을 학습하도록 만듦.
생성적 적대 신경망(generative adversarial networks, GAN)
GAN은 비지도 학습에 사용되는 인공지능 알고리즘으로, 제로섬 게임 틀 안에서 서로 경쟁하는 두 개의 신경 네트워크 시스템에 의해 구현된다. 이미지 해상도 높이기, 이미지를 컬러로 바꾸기, 강력한 이미지 편집, 간단한 스케치를 실제 같은 이미지로 바꾸기, 동영상에서 다음 프레임 예측하기, 다른 모델 훈련을 위한 데이터 증식, 여러 종류의 데이터 생성, 다른 모델의 취약점을 식별하고 개선하기 등에 널리 사용된다.
GAN은 적대적 방식으로 학습하는 두 개의 모델로 구성된다. 한 모델은 데이터를 생성하고 다른 모델은 생성된 데이터의 진위 여부를 판별한다.
- 작동 방식:
- 생성자(Generator): 랜덤 노이즈를 받아서 현실적인 데이터를 생성.
- 판별자(Discriminator): 실제 데이터와 생성된 데이터를 구분.
- 목적: 생성자는 판별자를 속이도록 학습하고, 판별자는 생성자가 만들어낸 가짜 데이터와 진짜 데이터를 구별하도록 학습.
- 구조:
- 생성자는 주로 랜덤 노이즈(z)를 받아 이미지나 다른 데이터를 생성.
- 판별자는 입력받은 데이터가 진짜인지 가짜인지 판별.
확산 모델(diffusion model)
확산 모델(Diffusion model, 디퓨전 모델)은 확산 과정을 수행한 뒤 원본 이미지를 만들려고 노력하는 과정을 기계 학습하여 새로운 이미지를 만드는 생성 모델(Generative model)이다. 확산 확률 모델이라고도 한다. 과거의 최고 기술이었던 생성적 적대 신경망(GAN)보다 성능이 더 좋은 것으로 알려져있다.
확산 모델은 생성 모델의 일종으로, 데이터의 소음을 점차적으로 줄여가며 생성 과정을 수행힌다.
- 작동 방식:
- 전방 과정(Forward Process): 원본 데이터를 점진적으로 더 많은 노이즈가 추가되는 단계로 변환다.
- 역방향 과정(Reverse Process): 노이즈가 있는 상태에서 원래 데이터를 복원하는 과정 학습.
- 목적: 노이즈가 있는 데이터에서 원래의 데이터를 복원하는 능력 학습.
- 구조:
- 확산 모델은 주로 확률론적 모델링에 기반하며, 베이즈 정리를 활용하여 학습.
- 기본 개념은 노이즈 단계에서 시작하여 점차적으로 데이터를 생성하는 것.
▶ 오토인코더, GAN, 확산 모델 모두 비지도 학습이며, 셋 다 잠재 표현을 학습하고 생성 모델로 사용될 수 있다. 세 모델은 비슷한 애플리케이션이 많으나, 작동 방식은 크게 다르다.
- 오토인코더(Autoencoder): 입력 데이터를 압축하고 복원하는 비지도 학습 모델.
- GAN(Generative Adversarial Network): 생성자와 판별자가 적대적으로 학습하는 생성 모델.
- 확산 모델(Diffusion Model): 데이터의 소음을 점차 줄이며 원래 데이터를 생성하는 과정을 학습하는 모델.
다음 내용
[출처]
핸즈 온 머신러닝
위키백과
'[파이썬 Projects] > <파이썬 딥러닝, 신경망>' 카테고리의 다른 글
[딥러닝] 비지도 학습: 적대적 생성 신경망(GAN) (1) | 2024.12.04 |
---|---|
[딥러닝] 비지도 학습: 오토인코더 (1) | 2024.12.03 |
[딥러닝] RNN을 사용한 자연어 처리 (1) | 2024.12.02 |
[딥러닝] RNN & CNN(feat. 시카고 교통국 데이터셋) - 3 (1) | 2024.12.02 |
[딥러닝] RNN & CNN(feat. 시카고 교통국 데이터셋) - 2 (1) | 2024.12.01 |