手元で動かしてみたいと思います。example」と検索すると色々出てきますが、以下の記事を参考にしたいと思います。今回書いたスクリプトはほぼ以下の記事と同じです(ただし、訓練ルールがおかしい可能性があります;後述)。これは参考文献の記述というより自分で適当に書いています。何かの模造品が出てくるジェネレータです。「日本人の顔っぽい画像」を生成します。このジェネレータをつくるには日本人の顔の画像のサンプルデータセットを用意して、どんな画像を出せば日本人の顔っぽいのかを訓練する必要があります。このジェネレータを訓練する過程で、模造品と本物を識別するディスクリミネータというのを一緒に合わせて訓練するのがミソです。ジェネレータは乱数から模造データへの写像です。写像です(以下、がっちゃんこしたのをアドバーサリアルモデルとよびます)。訓練は以下の繰り返しです。個の模造データを生成します。個の本物データを受け取って、模造品を入れたら0、本物を入れたら1が出てくるように訓練します。個の乱数を用意して、どの乱数を入れても1が出てくるように訓練します。アドバーサリアルモデルの訓練のときディスクリミネータ部分のネットワークの重みは固定しておかないとディスクリミネータまで更新されてしまいます。参考の記事のスクリプトはディスクリミネータが2回更新されているようにみえるので確認中です。訓練して模造手書き数字を生成します。ジェネレータは100次元の乱数から模造手書き数字を生成します。します(通常の訓練データからの訓練と違って、入力が一様乱数だから入念な安定化が必要なのですかね?)。ディスクリミネータは普通の手書き数字分類と違って、maxプーリングしません。アドバーサリアルモデルの順に何か訓練は進んでいるようです(?)。1.000000]41ステップ目からなんかディスクリミネータが識別しづらくなっているようです。ディスクリミネータが全てのデータを本物と判定してしまっているようです。0.015625]50ステップ後のジェネレータ出力は以下です。なんかもにょもにょしていて全然手書き数字ではないです。参考文献には1000ステップくらい回して手書き数字っぽい出力を学習できている例が載っていますが、このまま学習を続けるとよくなるのでしょうか。積んでいないのでやるなら一晩かけてみないとよくわかりません。なくても、もうちょっと学習が上手くいっているのかどうか知りたいものです。そこで、以下の強硬手段をとります。数字が10種類もあるのがよくない。ここはもう数字の「1」のみに絞る。棒くらい学んでほしい。ディスクリミネータが4回も畳み込んでいる。時間がかかるので最後の畳込みを削る。このようにして実行してみると着実に数字の「1」への道を歩んでいるように見えます。25ステップ50ステップ75ステップ100ステップ125ステップ150ステップ175ステップ200ステップ225ステップスクリプト変数名と処理の順序を一部変更している以外参考文献のコードと同じです。訓練ルール(損失関数と勾配法)」という意味合いでつかっているようです。スクリプトでもネットワーク構造のみ(self.D)とネットワーク構造+訓練ルール(self.DM)を別のメンバとして持っています。アドバーサリアルモデルの訓練ルール」による訓練の2種類の訓練をしなければならないので、構造は構造単体で持っておかなければならないのですね。ユーザ名が日本語になっているなどすると(変えたいのですが...)一時ファイルのパスに日本語が交じりデータのダウンロードに失敗します。windows10環境でtensorflowを動かしたい(69477)|teratail)。クラスに1種類の数字に絞るかどうかのコメントアウトがあるので適宜変更してください。削るとか、バッチサイズを小さくするとかするといいと思います。下(第6章:その2)以下の本を読みます。上巻を読むこともあります。顔写真から年齢が学習できるのか深層学習で回帰をしてみたいときとかあると思います。変分自己符号化器(VAE)を学習したい以下の記事の続きです。注目記事はてなブログをはじめよう!cookie-boxさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。