以下の論文を読みます。
この論文は、何が異常かって正解を与えることなしに、画像から異常を検知するって話みたいです! 「この画像はこういう異常のデータ」って正解ラベルを付けて学習するのって、大量にラベルを付けるのが大変だし、学習データになかった異常に対応できないから、正解なしで学習したいって。GANってモデルと、画像から隠れ変数空間へのマッピング手法?を組み合わせたらしいです。あ、この論文で想定している画像というのは、OCT(光干渉断層撮影)スキャンといって、病院での検査などに用いる、皮膚や眼球の断面が撮影できる技術みたいです。網膜のOCTスキャンデータに対する検証で、病気状態の画像を異常として正しく特定できたそうです。…でも絵理さん! このモデルは、画像を入力すると、異常な画像かどうかを出力してくれるんですよね? 何が異常かっていう正解を与えてないのに、どうやってこの画像は異常だろうってわかるんですか? おかしくないですか!?
…この論文では、網膜のOCTスキャン画像のうち、網膜下液という症状のない箇所の画像のみを学習データにしている。だから、モデルは正常な画像と異常な画像をごちゃ混ぜに正解なしで与えられてるわけじゃない。正常な画像のみを学習データとして、正常な画像の特徴を学んでおいて、未知の画像の異常度を判定する。
うーん…それって、教師なし学習っていうんですか? 正常な画像か異常な画像かを判定するのに、正常な画像のみで学んでおきましたって…。犬の画像か猫の画像しか含まれていないデータを分類するのに、犬の画像をバッチリ学習しておきました、みたいな話ですよね。それってある意味正解ラベル付きみたいなものだし、予め学習したデータにあてはまりそうかそうでないかを判断するだけじゃないですか。
そう、予め知っているデータ側なのか、そうでない側なのかという話。でもそれを判定する方法は、自明じゃない。例えば、何かデータ間の距離を定義して、予め知っているデータに近いか判定する? 未知の画像が犬か猫かを判定したいとして、予め学習した犬の画像のどれにも近くなくても、犬の画像かもしれない。予め学習したある犬の画像に近くても、猫の画像かもしれない。教師なし学習で代表的なクラスタリングは、データの中にクラスタの分布たちを見出す。異常検知もまた、与えられた正常データを表現する正常な分布を見出す。異質なものとの比較によって自分の特徴を把握できないから、後者はきっと前者よりもっと難しい。教師なし学習か教師あり学習かという区別は、いま本質的じゃない。
じゃあ、GAN ってモデルはどうやって正常データの分布を学習するんだろう。
生成モデルと識別モデルを同時に学習するって書いてありますね。ある1つのコスト関数を最小化するのではなく、生成モデルの表現力(識別器に本物と判定される確率)と識別モデルの真贋の識別力のナッシュ均衡を目指すみたいです。