본문 바로가기

강의/Udacity ML

3.16 GANs와 AWS DeepComposer

SMALL

GANs란?

GAN은 생성 기계 학습 모델의 일종으로, 두 개의 신경 네트워크를 서로 연결하여 새로운 컨텐츠(생성기와 판별기)를 생성하는 것이다.

생성기는 학습된 소스 데이터와 유사한 새 데이터를 생성하는 방법을 학습하는 신경 네트워크이다.

판별기는 실제 데이터와 합성 데이터를 구별하도록 훈련된 또 다른 신경 네트워크이다.

생성기와 판별기는 교대 사이클에 대해 교육을 받는다. 생성자는 점점 더 현실적인 데이터를 생성하는 법을 배우는 반면, 판별자는 반복적으로 새로 생성된 데이터와 실제 데이터를 구별하는 법을 더 잘 배운다.


오케스트라와 지휘자의 협연

오케스트라와 오케스트라의 지휘자의 간단한 은유를 사용하여 관현악단을 이해할 수 있다. 오케스트라는 세련된 음악을 훈련하고, 연습하고, 만들어내려고 노력하며 지휘자는 심사위원으로서 그리고 코치로서 그들과 함께 일한다. 도체는 출력의 품질을 판단하는 동시에 특정 스타일을 달성하기 위한 피드백을 제공한다. 그들이 더 많이 협력할수록 오케스트라는 더 나은 연주를 할 수 있다.

AWS Deep Composer가 사용하는 GAN 모델도 비슷한 방식으로 작동한다. 독특한 스타일로 음악을 작곡하는 방법을 배우기 위해 서로 협력하는 두 개의 경쟁 네트워크가 있다.

GAN의 발전기는 오케스트라가 하는 것처럼 새로운 음악을 만들어 낸다. 그리고 판별자는 지휘자가 오케스트라의 소리를 더 좋게 하기 위해 피드백을 제공하는 것처럼 음악 발생기가 만들어내는 것이 현실적인지를 판단하고 데이터를 더 사실적으로 만드는 방법에 대한 피드백을 제공한다.


교육 방법론

생성기

제너레이터는 입력으로 싱글 트랙 피아노 롤(멜로디) 배치를 수신하고 각 입력 음악 트랙에 반주를 추가하여 멀티 트랙 피아노 롤 배치를 출력으로 생성한다. 그런 다음 판별자는 이렇게 생성된 음악 트랙을 가져와 교육 데이터 세트에 존재하는 실제 데이터로부터 얼마나 멀리 떨어져 있는지를 예측한다. 이 편차를 제너레이터 손실이라고 한다. 판별기의 이 피드백은 발전기가 실제 출력을 점진적으로 더 잘 내기 위해 사용한다.

 

판별기

발전기가 음악 반주를 더 잘 만들수록, 그것은 판별자를 속이기 시작한다. 그래서 차별자들도 재교육을 받을 필요가 있다. 판별자는 식별자 손실을 측정하여 실제 데이터와 가짜 데이터를 얼마나 잘 구별하는지 평가한다.

 

첫 번째 반복 시 판별기로 시작하여, 알고리즘이 전체 데이터 세트를 특정 횟수 또는 발생기 및 판별기 손실이 어느 정도 정지 상태에 도달할 때까지 이 두 네트워크를 번갈아 교육합니다(다음 그림 참조).

SMALL

'강의 > Udacity ML' 카테고리의 다른 글

3.19 Demo: AWS DeepComposer로 작곡하기  (0) 2021.07.20
3.17 AR-CNN과 AWS DeepComposer  (0) 2021.07.20
3.15 Generative AI와 AWS DeepComposer  (0) 2021.07.17
3.14 Generative AI 소개  (0) 2021.07.15
3.13 연습 해설  (0) 2021.07.14