TensorFlowについての覚書です。どういったものか触ってみました。
TensorFlow:機械学習用のライブラリ
様々なサービスで活用されている機械学習のツールです。グーグル社で開発された後、オープンソースになった経緯があります。
工業的な活用だと、品質管理や生産技術的な場面において人的な判断を請け負ってもらうような使い方が考えられます。
設計現場(CAE)では、従来からある感度解析・数値解析等との関係が気になるところです。
keras:深層学習フレームワーク
学習を請け負うAPIです。
以下、簡単に確認してみました。
作業フロー
大まかな流れは以下のようになります。この作業では、判断してくれるh5ファイル作成が中心になります。
実施確認
学習データの用意
学習用のデータが必要なので、データを集めます。「りんご」(90枚)と「みかん」(87枚)の画像を集めました。(A)
学習の実施と成果
tensorFlowとkerasから学習を実行して、*.h5または学習セット(モデルと呼びます)を取得します。形式として2種類用意されているみたいです。(下図はFruitの名称になっています。どちらか一方が必要となります。)
//Fruitフォルダ内の構成 Fruit ├ assets (空フォルダ) ├ variables (フォルダ) │ ├ variables.data-00000-of-00001 (バイナリファイル) │ └ variables.index (バイナリファイル) ├ keras_metadata.pb (バイナリファイル) └ saved_model.pb (バイナリファイル)
推定実施
学習して得られたモデルに、確認用の画像を照会させて判定します。
判定精度
人が「りんご」か「みかん」かを判断できる画像だと判断できていました。人でも判断つかない準加工品のようなものは誤認するようでした。(りんごを切って円形に並べているものは、みかんのつぶの集合だと判断するような場合)
今回は学習データがすごく少なく、通常は数千~数万のデータで学習するようです。データが少ないと過学習の弊害がでたりするといったこともあるようです。
また、学習のさせ方やデータの与え方にも工夫があるようです。
同様の処理を解析の図で行ってみました。TA11 画像分類 検討
その他
上記は画像の判別したが、他にもテキスト・音声・動画等も行えるようです。
コメント