개요
가짜 데이터를 생성하는 신기한 알고리즘이다. 이상치 탐지를 할 때 오토인코더도 이와 비슷한 과정이였고 실제로 사용하려 했으나 너무 어려울 것 같아 뒤로 밀었던 알고리즘이다.
GAN의 목적은 갖고 있는 데이터를 모방하여 새로운 데이터를 만드는 것이며, 두개의 네트워크가 서로 목표를 달성하기 위해 적대적으로 겨루는 구조를 갖고 있다.
쉽고 유명한 예시
경찰과 위조지폐범이 있다고 가정하자
Generator(위조지폐범) G라고 부르겠다 . Discriminator(경찰) D라고 부르겠다.
G의 목적은 D를 속이면서 최대한 진짜 지폐와 비슷하게 만드는 것이고
D의 목적은 가짜 지폐와 진짜 지폐를 잘 구별해 내는 것이다.
(오랜만에 캐치미 이프유캔 땡기네..)
G가 너무 일을 잘할수록 D도 그걸 추적하기 위해 분류 능력이 향상 될것이다. 그러면 또 G는 더 발전 할 것이다.
이런 경쟁체계로 서로의 능력을 향상시켜주는 것이 GAN이라고 보면 되겠다.
손실함수
GAN의 손실함수는 Minimax Problem을 적용한다.
어질어질하다.
- G는 가짜데이터를 진짜로 분류할 확률 D(G(z))를 높게 해야한다.
- D는
- 정답이라고 옳게 분류할 확률 D(x)를 높게 예측
- 가짜인 데이터를 진짜 데이터가 아니라고 확률 D(g(z)) 를 낮추는
두가지 방법이 있다.
- 쉽게 말하면 손실함수가 G는 min 해야하고 D는 max해야 한다.
- D(x) = 1(진짜 데이터를 분류할 확률), D(G(z))= 0 이면 손실함수가 0 이되므로 아주 D입장에서는 이상적이다. 왜냐하면 0은 높은 숫자다
- 왜 0 이 높은 숫자냐면 D(G(z)) =1 로 가짜데이터를 진짜로 분류했다고 하자. 그러면 log(1-1)=log 0 = - 로 손실함수는 진짜 무척 낮을 것이다. 이걸 보면 0은 엄청 높은 숫자라는 걸 알 수 있다.
- 밑에 4,5번은 그냥 식 이해고 자주 쓰이는 방식이다. 근데 가장 핵심은 3번이라서 3번만 알면 된다.
- 하지만 난 다 알아야된다.. 수식은 그래도 다 이해하고 넘어가야 나의 전공을 살릴 차별화 된 개발자가 아닐까..
GAN 의 활용방안
다들 보실련지 모르겠지만 한창 코인이 유행할 때 일론 머스크가 도지 노래 부르는 영상이 있다. 이는 GAN으로 만든 거라고 보면 되겠다.
그리고 좀 안좋은 곳으로 쓰이기도 하고 유용한 곳에도 많이 쓰이는 Deep Fake 도 마찬가지고 내가 듣기론 영화계에서 이 기술을 사용해서 조만간 개봉하는 블랙펜서도 GAN을 이용해서 돌아가신 배우를 AI 기술이 대신 한다고 들은 것 같다..( 진짜 지나가면서 들은거라 아닐지도..)
암튼 재밌는 기술은 맞다.
Uploaded by Notion2Tistory v1.1.0