2023. 8. 2. 10:21ㆍ머신러닝 딥러닝
GAN 기초 : 적대적 훈련
생성자와 판별자는 신경망과 같은 미분가능한 함수로 표현된다. 이 신경망은 각자 자신만의 비용함수를 가진다.
판별자의 손실을 사용해 역전파로 두 네트워크를 훈련한다. 판별자는 진짜와 가짜 샘플에 대한 손실을 최소화하려고 노력한다. 반면 생성자는 자신이 생성한 가짜 샘플에 대해 판별자의 손실이 최대화되도록 노력한다.
생성자가 흉내 내려는 샘플의 종류는 훈련 데이터셋으로 결정. 예를 들어, 실제와 같은 고양이 이미지를 만드는 것이 목적이라면 GAN에 고양이 이미지 데이터셋을 주입해야 한다.
조금 더 기술적으로 말하면 생성자의 목적은 훈련 데이터셋의 데이터 분포를 흉내 내는 샘플을 생성하는 것. 컴퓨터 입장에서 보면 이미지는 값을 담은 행렬에 불과하다. 흑백 이미지는 2차원이고 컬러(RGB) 이미지는 3차원 행렬이다. 화면에 그려질 때 이 행렬에 있는 픽셀 값이 이미지의 모든 시각적 요소를 표현한다. 선, 모서리, 곡선 등이다. 이 값들은 데이터셋에 있는 각 이미지에 복잡하게 걸쳐 있는 어떤 분포를 따른다. 어떤 분포도 따르지 않는다면 이미지는 랜덤함한 잡음과 다를 바가 없다. 객체인식 모델은 이미지 콘텐츠를 이해하기 위해 이미지에 있는 패턴을 학습한다. 이런 작업의 역과정으로 생성자를 생각할 수 있다. 패턴을 인식하는 것이 아니라 패턴을 합성하는 것을 학습한다.
비용함수
표준 표기법을 따라서 J(G)는 생성자의 비용 함수이고 J(D)는 판별자의 비용함수이다. 두 네트워크의 훈련 파라미터(가중치와 절편)는 그리스 문제 세타(θ)로 나타냄. 생성자의 파라미터는 θ(G)이고 판별자의 파라미터는 θ(D)이다.
GAN이 합성곱 신경망과 다른 점은 크게 두가지이다. 첫째, 전통적인 신경망의 비용 함수 J는 훈련 파라미터 θ의 항으로 정의한다. 수학적으로 J(θ)로 표현. 이에 반해 GAN의 두 네트워크는 비용함수가 두 네트워크의 파라미터에 모두 의존한다. 즉 생성자의 비용함수는 J(G)(θ(G), θ(D)이고 판별자의 비용함수는 J(D)(θ(G), θ(D)이다.
두번째 차이점은 전통적인 신경망은 훈련하는 동안 파라미터 θ를 모두 튜닝할 수 있다. GAN에서 각 네트워크는 자신의 가중치와 절편만 튜닝한다. 훈련하는 동안 생성자는 θ(G)만 튜닝할 수 있고, 판별자는 θ(D)만 튜닝할 수 있다. 따라서 각 네트워크는 손실을 정의하는 것 중에 일부분만 제어한다.
회사에서 집까지 가는 길을 선택한다고 가정할 때, 교통 체증이 없다면 가장 빠른 방법은 고속도로이지만 출퇴근 시간 동안에는 주변 도로가 더 나을 수 있다.
이를 수학문제로 바꾸어, 비용함수 J를 집으로 가는 시간으로 정의한다. J를 최소화하는 것이 목적이다 .회사를 떠나는 시간이 정해져 있어서 러시아워보다 일찍 떠나거나 늦게 떠날 수 없다고 가정한다. 따라서 바꿀 수 있는 파라미터 θ는 경로 뿐이다.
도로에 내 차 뿐이라면 비용은 일반적인 신경망과 비슷하다. 경로만 영향을 미치기 때문에 내 노력만으로 J(θ)를 최적화 할 수 있다. 하지만 이 방정식에 다른 차가 끼어들자마자 상황이 복잡해진다. 집으로 가는 데 걸리는 시간은 내 결정뿐만 아니라 다른 운전자의 행동에 영향을 받기 때문이다. 즉 J(θ(나), θ(다른운전자))가 된다. 생성자와 판별자 네트워크와 비슷하게 이 '비용함수'는 상호작용 인자에 영향을 받는다. 이런 인자 중 어떤것은 제어할 수 있지만 그렇지 않은 것도 있다.
https://www.yes24.com/Product/Goods/92455849
'머신러닝 딥러닝' 카테고리의 다른 글
생성형 AI 기술 개발 및 활용 - 2 (0) | 2023.08.04 |
---|---|
생성형 AI 기술 개발 및 활용 - 1 (0) | 2023.08.04 |
사이킷런 결정 트리 파라미터 (0) | 2023.07.22 |
사이킷런 내장된 예제 데이터 세트 (0) | 2023.06.28 |
사이킷런의 주요 모듈 (0) | 2023.06.28 |