コンピュータビジョン
MNISTによる数字分類
たたみ込みニューラルネットワークを使って,手書き数字のMNISTデータベースで数字認識子を訓練する.
入力として28
×28のグレースケール画像を取る,たたみ込みニューラルネットワークを定義する:
検証集合からランダムに抽出した画像で,訓練されたネットワークを直接評価する:
トクテイの入力に対するすべてのクラスの確率推定を得る:
CIFAR-10のオブジェクト分類
ラベル付き画像のCIFAR-10データベースを使って,各オブジェクトのクラスを予測するたたみ込みネットを訓練する.まず,訓練データを取得する:
画像が与えられたときにクラスを予測するたたみ込みネットを作成する:
画像の集合について,最も可能性の高いクラスを予測する:
特定の例では,最も可能性の高いラベルの割当ての確率が与えられる:
ランダムなサンプルから,ネットが最高および最低のエントロピー予測を行う画像を選ぶ.高エントロピー入力は,ネットが正しいクラスについて最も不確かとする入力として解釈される:
まずデータをインポートし,0から4までのラベルを持つ例だけを取る:
画像のペアを抽出し,それらのラベルが異なっていれば
True,同じならば
Falseと関連付けることで,訓練集合を作成する:
埋込みネットワークとして使用するたたみ込みネットを定義する:
数字のペアのリストにネットワークを適用し,埋め込みの下での距離を計算する.同じラベルを持つ数字同士の距離は小さい:
500個の数字を抽出し,ラベルでグループ分けする:
埋込みを計算し,プロットする.同じラベルを持つ数字は学習済みの埋め込みの下でクラスタ化される:
ある画像の内容で,別の画像の画風を使って新しい画像を作成する.この実装はGatys,その他の人によって書かれた「A Neural Algorithm of Artistic Style」で説明されている方法に従っている.
この両方の画像を組み合せた画像を作成するためには,まず学習前の画像分類ネットワークを取得する:
画像の画風と内容の特徴抽出器として使われる層を取る:
3つの損失関数が使われる.最初の損失は,合成画像の内容が内容画像の内容と似ていることを示している:
2つ目の損失は,合成画像の画風が画風画像の画風と似ていることを示す.画風の類似性は,入力とターゲットのグラム行列の間の平均二乗差として定義される:
3つ目の損失は,合成画像の隣接画素の明度差の大きさが小さいことを確認する.これにより合成画像がより自然に見える:
任意の内容および画風の画像に対する,最終的な訓練集合を作成する関数を定義する.この関数はランダムな初期画像も作成する:
訓練データは,内容と画風の画像から抽出された特徴で構成される.特徴抽出関数を定義する:
内容および画風の特徴の単独の例からなる訓練集合を作成する:
入力次元が内容および画風の画像の次元に対応する訓練ネットを作成する:
訓練する場合,内容と画風の相対的重要性を設定するために,3つの損失関数には異なる重みが付けられる.これらの値は内容と画風の画像によって変更される必要がある場合がある.最終的な損失を,3つの損失の合計として定義する損失指定を作成する:
Toyテキストデータセットのセマンティックセグメンテーション
単語の画像のすべての画素を,背景の一部あるいはaからzまでの1つの文字の一部として分類するネットを訓練する.
まず訓練データと検証データを生成する.これは単語の画像,および各画素にラベルを付ける対応する「マスク」整数行列からなる:
訓練集合の入力画像からランダムなサンプルを取得する:
1つの例のマスク配列を可視化する.ここで,それぞれの色は特定のクラスを表している:
1つの画像を取り,画像の中のすべての画素に対する確率ベクトルを返すたたみ込みネットを定義する:
CPU訓練には最大1時間かかる可能性があるため,GPU訓練が推奨される.ネットを訓練する:
各画素において最も確率の高いクラスのインデックスを与える予測関数を作成する:
指定された画素がある特定のクラスになるような確率のソートされたリストを取得する:
文字列をラスタ化してから,各画素の最も可能性の高いクラスに対応するインデックスの行列を与えるために訓練されたネットを適用する関数を定義する:
検証集合で,訓練されたネットの画素レベルの確度を求める: