氮化镓(生成对抗网络)은합성영상을생성하는데사용되는일종의심층신경망입니다。이아키텍처는서로경쟁하는(즉,적대적인)2개의신경망인생성자와감별자로이루어져있습니다。생성자는새로운데이터인스턴스를생성하는반면,감별자는데이터의진정성을평가하고데이터의각인스턴스가훈련데이터셋에서나온”진짜'인스턴스인지,아니면생성자에게서나온’가짜'인스턴스인지판단합니다。

감별자가더이상가짜로판정하지않는진짜합성데이터를생성자가생성할수있을때까지,생성자와감별자는서로경쟁하면서훈련합니다。훈련을성공적으로마치면생성자가생성한데이터로새로운합성데이터를만들어서다른심층신경망에입력으로사용할수도있습니다。

氮化镓은얼굴의합성영상,특정한스타일의새로운노래,특정한장르의텍스트등모든데이터유형에대해새로운인스턴스를생성하도록학습할수있기때문에활용도가높은아키텍처입니다。

氮化镓훈련시키기

화폐의합성영상을생성하는예제를이용하여GAN아키텍처의구체적인구성과기능을살펴보겠습니다。

  1. 잡음이생성자에입력됩니다。생성자가아직훈련되지않았기때문에처음에는출력이잡음처럼보일것입니다。
  1. 훈련데이터와생성자의출력이감별자로전송되는데,감별자는진짜/가짜영상을식별하도록병렬로훈련됩니다。신경망에서감별자부분역시훈련중이기때문에감별자의출력은처음에는그다지정확하지않지만정확도는시간이지나면서향상될것입니다。
  1. 피드백:감별자의출력은다시생성자와감별자에게로입력될수있고감별자는이정보를활용하여파라미터들을업데이트하고정확도개선을시도합니다。

감별자의목표는진짜데이터세트에서나온인스턴스를보았을때진짜인영상을제대로인식하는것입니다。한편으로생성자는새로운합성영상을생성하여감별자에게전달합니다。생성자는비록영상이가짜일지라도진짜로판정되기를바라며그렇게합니다。생성자의목표는발각되지않고통과할수있는가짜영상을생성하는것입니다。감별자의목표는생성자가제공하는영상을가짜로식별하는것입니다。

MATLAB®深度学习工具箱™를이용하면자동미분,사용자지정훈련루프,공유가중치를이용하여GAN신경망을구축할수있습니다。

生成对抗网络의응용분야

손글씨생성:아래의영상예제와같이,GAN은합성데이터를생성하는데사용됩니다。정확한딥러닝모델을훈련시키기위해더많은데이터샘플이필요한작은데이터세트들을보충하는데사용할수있습니다。손글씨감지는그중한예입니다。손글씨에대해심층신경망을훈련하려면수천개의훈련데이터샘플이필요하며,그런데이터를직접수집하려면오랜시간이걸릴수있습니다。

氮化镓을사용한합성손글씨생성。

장면생성甘:조건부은레이블을활용하는특수한유형의GAN인반면,원래의GAN은레이블이있다고가정하지않습니다。조건부GAN은정보에반드시어떤구조가있어야하는장면생성등의응용분야에활용할수있습니다。자율주행에관한장면생성의예를들어보겠습니다。도로와인도는반드시건물과하늘아래에있어야합니다。이예제에서이런도로의위치를따르지않는합성영상은즉각가짜로판정되고,자율주행응용분야에서사용불가능하다고판정됩니다。

조건GAN을부이용한영상간변환(image-to-image翻译)(pix2pix)。

오디오및음성응용분야甘:은텍스트-음성합성,음성변환및음성향상등의응용분야에도활용할수있습니다。氮化镓은기존의신호를단순히보강하는데그치지않고새로운샘플을생성할수있기때문에종래의오디오및음성구현보다상당히많은장점이있습니다。소리합성에GAN을활용하는예로는드럼소리를합성을통해생성하는경우가있습니다。甘소리합성을위해(生成对抗网络)훈련시키기

참고:GAN은많은응용분야에서활용할수있는새로운합성데이터를생성하는강력한툴이될수있지만,실패유형이많이나타날수있기때문에정확한결과를얻기어려운경우가많습니다。MATLAB을통해氮化镓훈련진행과정을모니터링하고흔히발생하는실패유형을식별할수있습니다