복습하기 위해 학부 수업 내용을 필기한 내용입니다.
이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다.
그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다.
인간의 생성 능력
- ex. 아이는 오늘 겪은 일을 아빠에게 이야기하고, 처음 가본 곳의 풍경을 그림으로 그린다.
- 현실 세계를 비슷하게 모방하지만 같지는 않다.(의도적 왜곡, 도구 한계로 추상화 등)
생성 모델
- 레이블 별 데이터 분포를 이해하고, 새로운 데이터를 만들 수 있는 모델
- DALL-E, ChatGPT
판별 모델
- 데이터를 레이블에 맞춰 나누는 (분류) 모델
- 영상 분류 모델, 번호판 인식기, 구글 검색
▶생성 모델과 판별 모델
판별 모델
- 가족의 얼굴을 알아보고 표정을 보고 상대의 감정을 알아보는 등의 능력
- 인공지능은 분별 능력을 중심으로 발전해 왔다.
- 다층 퍼셉트론, 컨볼루션 신경망, LSTM, 강화 학습은 모두 분별 모델이다.
생성 모델
- 사람의 필체를 흉내 내는 인공지능 등.
- 예전에는 Hidden Markov Model 등의 모델을 사용했다.
- 2010년대부터 딥러닝 기반 생성 모델로 발전했다.
- GAN이 대표적이다.
▶지도 학습 vs 비지도 학습
지도 학습
주어진 데이터 : (x, y)
- x : 원 데이터 또는 특징
- y : 레이블 (정답)
목적
- x를 입력으로 받아 y를 출력으로 내는 함수를 학습하는 것 (f : x → y)
예제
- 분류 (classification)
- 객체 검출 (object detection)
- 픽셀 분류 (semantic segmentation)
비지도 학습 (Unsupervised Learning)
주어진 데이터 : x
- x : 원 데이터 또는 특징
- 레이블이 없다.
목적
- x(데이터)의 숨겨진 기본 구조를 학습하는 것
예제
- 군집화(clustering), 확률밀도 추정(probability density estimation)
▶생성 모델링 (generative modeling)
주어진 학습 데이터를 기반으로, 해당 분포에서 새로운 샘플 생성
목표
- pdata(x)를 근사화하는 pmodel(x)를 학습
- pmodel(x)에서 새로운 x를 샘플링
밀도 추정 문제로서 문제를 정의해서 푸는 경우
- 명시적(explicit) 밀도 추정: pmodel(x)를 명시적으로 정의하고 찾아내는 방법
- 암시적(implicit) 밀도 추정: pmodel(x)를 명시적으로 정의하지 않고도 샘플링할 수 있는 모델을 학습하는 방법
▶10.1 명시적(explicit) 밀도 추정 기반 이미지 생성 모
이미지 생성 모델
- 주어진 데이터 : x
- x : 이미지
- 목표
- pdata(x)를 근사화하는 pmodel(x)를 학습하여 새로운 x를 샘플링
방법
1. 모든 화소를 독립적으로 생각하는 모델
- ex. (1,1) 위치의 intensity 또는 color 값이 (1,2) 위치의 값에 영향을 주지 않는다.
2. 화소가 서로 독립적이지 않다고 생각하는 모델
1) PixelRNN
2) PixelCNN
10.1.1 화소를 독립적으로 생각하는 생성 모델
MNIST 데이터셋에 화소를 독립적으로 생각하는 생성 모델을 적용
- n x n 이미지의 명시적 밀도 함수 추정 모델
- p(x) = p(x1) p(x2)... p(xn^2)
10.1.2 화소가 서로 독립적이지 않다고 생각하는 생성 모델
화소를 비독립적으로 생각하는 이미지 생성 모델
- 명시적 밀도 함수 추정 모델 : p(x) = p(x1, x2,..., xn)
- Image x의 probability 값은 그 이미지의 각 픽셀의 joint-probability로 표현한다.
Chain rule
Chain rule을 사용해 이미지 x의 probability 값을 표현한다.
▶PixelRNN*
순환 신경망을 이용한 방법
- 첫 픽셀(왼쪽 위)부터 픽셀값을 한 개씩 생성한다.
- 새롭게 생성된 픽셀이 다음 픽셀을 생성할 때 영향을 준다.
▶PixelCNN*
합성곱 신경망을 이용한 방법
- 마찬가지로 첫 픽셀(왼쪽 위)부터 픽셀값 한개씩 생성한다.
- 이전 픽셀에 대한 의존성을 주변 영역에 대한 CNN을 사용하여 모델링
- 마스킹된 컨볼루션
PixelRNN보다 학습이 빠르다.
- 고정된 주변 영역 값이 학습 이미지에서 알려져 있으므로 컨볼루션을 병렬화 가능하다.
'컴퓨터공학 > 인공지능' 카테고리의 다른 글
[인공지능] 10장. 생성 모델(Generative Model) 3 (1) | 2023.06.07 |
---|---|
[인공지능] 10장. 생성 모델(Generative Model) 2 (0) | 2023.06.05 |
[인공지능] 9장. 강화 학습(Reinforcement Learning) 3 (0) | 2023.06.04 |
[인공지능] 9장. 강화 학습(Reinforcement Learning) 2 (0) | 2023.05.30 |
[인공지능] 9장. 강화 학습(Reinforcement Learning) 1 (0) | 2023.05.30 |