推奨ニューラルネットワーク自体の概要は以下のリンクを読むと理解が深まるかもしれない。https://tutorials.chainer.org/ja/src/13_Basics_of_Neural_Networks_ja.htmlTensorFlow私が最初にニューラルネットワークに手を付けたのは、GoogleからTensorFlowがリリースされた2017年ごろ。(ベータ版は2015年末に公開)TensorFlowはニューラルネットワークを利用するためのソフトウェアライブラリで、誰でもニューラルネットワークが使えると機械学習(ディープラーニング)ブームの一因になっていたような気がします。TensorFlowができることは以下のようなネットワーク構造を表現し、その構造に沿った数学的計算を行うことでした。引用元:https://tutorials.chainer.org/ja/src/13_Basics_of_Neural_Networks_ja.htmlこのため実際に高精度な識別をさせるためには、適切なネットワーク構造等の理論背景を理解し、大量の教師データを準備する必要がありました。ド素人には結局何をしていいかわからない状況だったのです。TensorFlowをインストールしておきましょう。(ここから先の工程にも必要です。tensorflow学習済みモデル現代では理論背景を詳細に理解していない人間にも手軽にニューラルネットワークを利用した機械学習を試す機会が得られるようです。その一つが学習済みモデル。凄まじい数のデータセットを良い感じに学習してくれている、学習済みモデルというものが配布されています。分類問題で優勝したネットワークです。アーキテクチャの難しい話は以下の論文が詳しいです。向けにも配布されています。“classify_image.py”を実行します。classify_image.pyモデルのデータダウンロード後、サンプルとして用意されたパンダ画像の解析結果が表示されます。0.00117)パンダを識別しても仕方ないので、早速げんこつハンバーグを突っ込んでみましょう。以下のげんこつハンバーグの画像をひとまず突っ込みます。オプションで画像ファイルを渡してあげます。test.jpg以下のような解析結果が得られました。さんから見るとげんこつハンバーグはチョコレートソースやミートローフに見えるようです。(皆さんも好きな画像を突っ込んでみましょう。ような大規模画像ライブラリを利用した学習済みモデルは、パンダのような一般的な分類には強いですが、げんこつハンバーグのような細分化されたローカルな分類は苦手なようです。転移学習では現在でもど素人がげんこつハンバーグの前で無力なのかというと、そんなことはありません。「転移学習」という素晴らしい手法が存在します。転移学習は、予め学習済みのモデルを他の領域に転用する手法です。ような学習済みモデルを転用することで比較的短時間に自身の対象とする領域向けのモデルを作成することができます。利用することで転移学習を手軽に利用することができるようです。使った転移学習は、チュートリアルを見れば誰でも簡単に試すことができます。Categories早速チュートリアルをぶっ飛ばして、ハンバーグの画像を覚えさせます。さわやかびっくりドンキーココスビックボーイetc適当に画像をまとめてダウンロードした後、手作業であまりにもかけ離れた画像を抜いています。さわやかびっくりドンキーココスビックボーイetcこれらの画像を使って実際に転移学習を行います。画像を以下のようなディレクトリ構成にまとめます。この後の学習でディレクトリ名がクラス名として扱われることに注意してください。sawayaka/以下のスクリプトをダウンロードします。オプションで読み込み、学習をさせます。./HamburgSteakこんなログが永遠と流れます。それなりの時間の後、下記2つのファイルが出力されます。(私の環境では30分程度)12C:\tmp\output_graph.pbC:\tmp\output_labels.txtこれらの学習させたモデルを使って画像識別を行ってみます。以下のスクリプトをダウンロードします。--imageオプションで解析対象の画像を指定してスクリプトを実行します。\--image=./test.jpg先ほどのこちらの画像を突っ込んでみました。すると以下の結果が得られました。すごい!しかし、すべてのハンバーグをさわやかだと言いはる可能性もあります。他のハンバーグも解析してみましょう。びっくりドンキーとご判断いただきました。まとめ解析できること自体には、今の時代驚きも少なくなってきましたが、ここまで簡単に機械学習による画像識別を行うことができるとは思っていませんでした。