歧視者

GAN 中的辨別器只是分類器。它會嘗試區分實際資料與產生器建立的資料。並且可使用任何資料分類適用的網路類型。

生成對抗網路的圖表。圖表中央是標示為 'discriminator' 的方塊。兩個分支版本則會從左側往這個方塊中。上方分支版本位於圖表左上角,並標示「'real world 圖片'」方塊。一個箭頭從這個圓形指向另一個標示為「#39;Sample'」的方塊。標示「'Sample'」方塊的箭頭,指向「#39;Discriminator'」方塊。底部分支部分會送入 'Discriminator' 方塊,開頭為「'Random Input'」。一個箭頭從「#39;Random Input'」方塊引進,以標示為「##9;Generator'」的方塊。箭頭從「#39;Generator'」方塊導向第二個「##9;Sample'」方塊。一個箭頭從「##9;Sample'」方塊指向「##9;Discriminator」方塊。在 Discriminator 方塊右側,兩個箭頭會指向圖表右側的兩個方塊。其中一個箭頭會導向一個標示為「##39;Discriminator Loss'」的方塊。另一個箭頭會導向標示為「##39Generator Loss'」的方塊。標有左箭頭和「'Backpropagation&#39」字樣的黃色方塊則代表著在歧視框方塊和分離器方塊周圍。

圖 1:歧視訓練的反向傳播。

歧視器訓練資料

歧視者的訓練資料來自兩個來源:

  • 實際資料的執行個體,例如人物的真實相片。您在訓練期間會使用這些執行個體做為正範例。
  • 虛構資料產生的執行個體。您在訓練期間會使用這些執行個體做為負值範例。

在圖 1 中,兩個「樣本」方塊代表兩個餵食器正在執行的資料來源。在歧視訓練期間,產生器不會訓練。其權重保持不變,同時會產生進入訓練結果的訓練器範例。

訓練歧視器

離題器會連接兩個 loss 函式。在歧視訓練期間,歧視者會忽略發電機損失,只使用歧視器損失。我們會使用產生器產生器期間的產生器損失,如下一節所述。

在歧視訓練期間:

  1. 轉接程式會將真實資料和假資料從產生器中分類。
  2. 處分者會將實際執行個體誤認為假執行個體或虛假執行個體不實,而造成歧視的損失。
  3. 轉接器透過歧視器網路,透過反向傳播更新其權重。

在下一節中,我們會說明發電機耗電器連線至歧視器的原因。