ケミカルGANトレーニングを解決するのはlossで変化が発生しません。accuracyはずっと0.5の問題です。


1、Binary Cross Entropy
第二の分類問題によく使われています。もちろん、多分類問題にも使用できます。通常はネットワークの最後の層にsigmoidを追加して、その期待出力値はone hot符号化が必要です。また、BELLossは多分類問題Multi-label classicationにも使用できます。
定義:
For brevity,let x=output,z=target.The binary cross entropy loss is
loss(x,z)=-sum_i(x[i]*ロゴ(z[i])+(1−x[i])*ロゴ(1−z[i])))
対応コードは:
def binary_crossentropy(t,o):
return-(t*tf.log(o+eps)+(1.0-t)*tf.log(1.0-o+eps)
2、Categorical cross-entropy

p are the preditions、t are the tagets、i denotes the data point and j denotes the class.
多分類問題に適用され、出力層の活性化関数としてソフトウェアを使用する場合。
補足知識:GANを訓練するいくつかの掲示板
次は自分が犯した過ちと私が学んだことを知っています。ですから、もしGANsの新人であれば、トレーニングで大きな成功を収めたことは見られませんでした。次のいくつかの面を見て助けになるかもしれません。
1、大巻積核とより多くのフィルタ
より大きな畳込み核は前の層の画像のより多くのピクセルをカバーしているので、より多くの情報を見ることができます。5 x 5の核はCIFAR-10とよく配合されており、判別器に3 x 3の核を使用して判別器の損失を急速に0に近づけている。生成器に対しては、ある種の滑らかさを維持するために、最上階の畳層により大きな核があることを望む。より低い層では,カーネルの大きさを変える大きな影響は見られなかった。
フィルタの数はパラメータの数を大幅に増加させることができますが、通常はより多くのフィルタが必要です。私はほぼすべての畳み込み層で128個のフィルタを使った。少ないフィルタを使用して、特に生成器では、最終的に生成される画像がぼやけすぎてしまう。したがって、より多くのように見えるフィルタは、付加的な情報の取り込みを助けることができ、最終的に生成された画像の解像度を増加させる。
2、ラベル反転(Generated=True、Real=False)
最初はバカに見えましたが、タグの割り当てを変えるのが主なテクニックです。
Real Images=1を使って生成された画像=0を使うと、別の方法で助けられます。後に見られるように,これは初期の反復に勾配流を用いることを助け,勾配流を作るのに役立つ。
3、騒音のあるラベルとソフトラベルを使用する
これは判別器を訓練する時にとても重要です。ハードラベル(1または0)は初期の学習すべてをほぼ扼殺しており、識別器が非常に早く0の損失に近づいている。最後に0から0.1の間の乱数を使って0ラベル(リアル画像)を表し、0.9から1.0までの乱数を使って1ラベル(生成された画像)を表します。ジェネレータを訓練する時はこのようにする必要はありません。
加えて、いくつかの騒音のトレーニングラベルを増やすことも助けになります。入力識別器の5%の画像に対して、ラベルがランダムに反転されます。例えば、本当に生成されたものとしてマークされ、生成されたものは真実としてマークされます。
4、ロットを使って正規化するのは有用ですが、他のものが必要です。
決定化はきっと最終的な結果に役立ちます。バッチを追加して正規化した後、生成された画像は明らかにより鮮明になります。しかし、もし畳み込み核やフィルタを誤って設定したり、認識器の損失がすぐに0に達したりすると、バッチを追加して正規化することは本当に回復を助けることができないかもしれません。
5、毎回一つのカテゴリ
GANsをより簡単に訓練するためには、入力データが類似した特徴を持つことを確実にすることが有用である。例えば、CIFAR-10の全10種類の中でGANをトレーニングするよりも、タイプ(例えば自動車やカエル)を選択して、GANsを訓練して、これらから画像を生成する。DC-GANの他の変形体は、複数の種類の画像を生成することを学ぶ上でより良い。例えば、クラスラベルを入力として、クラスラベルに基づく画像を生成する。しかし、普通のDC-GANから始めるなら、事情を簡単に維持したほうがいいです。
6、勾配を表示する
できれば、勾配やネット上の損失を監視してみましょう。これらは訓練の進捗をよりよく理解してくれます。仕事がうまくいかない時にデバッグすることもできます。
理想的な場合には、ジェネレータは、実際のデータをどのように生成するかを学ぶ必要があるので、トレーニングの早期に大きな勾配を得るべきである。一方、判別器は常に早期に大きな勾配を得るのではなく、真伪の画像を容易にエリア分けできるからである。生成器が十分な訓練を受けると、判別器は真贋の画像を見分けるのが難しい。それは間違いを繰り返し、大きな勾配を得る。
以上の問題を解決したkers GANトレーニングはlossが変化しないので、accuracyはずっと0.5の問題です。つまり、小編集はみんなに共有している内容です。参考にしてもらいたいです。皆さん、よろしくお願いします。