回転猫の雑記

新しいことを知るのはたのしい。

平手友梨奈をNeural Network Consoleで深層学習する。

記述背景

日頃から深層学習を扱ってみたいと思いつつ、人工知能深層学習と聞くとどうしても理数分野の話なので、実装するのは専門的知識が必要になり難しいとお考えの方に。ソニーが開発したこちらのソフトを使用すればGUIでのネットワークの構築が可能ということで今回記事にしました。

 

SONY Neural Network Consoleとは。

 ソニーが開発したノンプログラミングなニューラルネット構築ソフトです。無料配布されています。11月8日にクラウドβが配信されています。

https://www.sony.co.jp/SonyInfo/News/Press/201711/17-107/img/image02.jpg

Neural Network Console

www.sony.co.jp

 

 現在、一般的なディープラーニングのプログラム生成においては、ニューラルネットワークの構造を、プログラムのコードを記述して、その関数ブロックを組み合わせることで構築しています。一方、新開発のコンソールソフトウェアでは、この関数ブロックの概念をそのままに、簡便な形でGUI上に表現できます。コンソールソフトウェアの画面上には、コンポーネントの形であらかじめレイヤー(関数ブロック)が用意されており、それらをGUI上に自由に配置する簡単な操作でニューラルネットワークを構築でき、プログラム開発効率を大幅に改善します。またディープラーニングの初心者には、コアライブラリの機能を視覚的に確認しながら短期間で技能の習得が可能です。

目的

本件はプログラミング言語を使用せずに最先端の技術、深層学習、機械学習ニューラルネットの実用を行うことを目的としています。理論の理解を目的としていません。上記トピックにご関心のある方はご期待に添えない形になります。因みに筆者にプログラミング経験はありません。 

 

実験

山口百恵の再来と記事になったこともある欅坂46の平手友理奈山口百恵をどの程度判別出来るのか出来ないのかdeeplearningで判断してみる。

 

方法(こちらのブログの記事を参考にしました)

cedro3.com

 

データセットの設定

まず始めにDATASETの用意を行います。Google画像検索にて表示された結果をクリップしたものです。

 正確な画像認識を行う場合、少なくともサンプル数は1000は必要との事ですが、手作業でそれほどの量のアイドルの画像を収集するのは困難なので、上記ブログ記事を参考に平手友梨奈75枚山口百恵75枚合計150枚を用意します。

f:id:timenyan:20171114203111p:plain

 

チュートリアルに用意されているサンプルは手書き文字の4と9をどちらなのかを01で判別する物が用意されています。こちらと同じ形式で画像を用意したいと思います。

f:id:timenyan:20171114203155p:plain

 

 

追記

画像収集中同時代のアイドルを比較対象にしないと、写真の色の出方などで正確に深層学習の成果を比較できないんじゃないかと思いましたが、今回はあくまで実装までが目標なので結果について正確に検証することを辞めました。 

 ニューラルネットの構築

こちらも筆者PC環境ではGPUを用意できないため、サンプルと同様な負荷の低い構成を選択しました。深層学習の中では一般的なロジスティックス回帰というモデルの様です。 

ロジスティック回帰(ロジスティックかいき、Logistic regression)は、ベルヌーイ分布に従う変数の統計的回帰モデルの一種である。連結関数としてロジットを使用する一般化線形モデル (GLM) の一種でもある。1958年に David Cox が発表した[1]。確率の回帰であり、統計学の分類に主に使われる。医学や社会科学でもよく使われる。

モデルは同じく1958年に発表された単純パーセプトロンと等価であるが、scikit-learn などでは、パラメータを決める最適化問題確率的勾配降下法を使用する物をパーセプトロンと呼び、座標降下法準ニュートン法などを使用する物をロジスティック回帰と呼んでいる。

 よくわかりません。

 

 

深層学習の実行

f:id:timenyan:20171114203222p:plain

ものの数秒で完了しました。

横軸が世代数(繰り返し最適化を行う)

縦軸左が最適かにかかるロス関数、縦軸右がそれに対するエラーの比率

世代を追うごとに正確になっています。

 

実行結果の評価

f:id:timenyan:20171114203406p:plain

 実行結果をサンプルの正解と照らし合わせ正解率を測定します。

平手友理奈を平手友理奈と正確に判断した回数15回中13回

山口百恵を平手友理奈でないと判断した回数15回中12回 

合計の正解率83%でした。

 

 

自動最適化機能

深層学習のパラメーターを最適化する機能がついていたのでそちらも実行してみようと思います。1度目は一層でしたので同じ層を2層追加した形でより精度の高い判定を試みたいと思います。再評価9回目にしてmax poolingがaverage poolingへ変更されています。

 pooling Layerというのが レイヤの縮小を行う層とのことです。一度データを圧縮しそのデータから特徴を抽出し、その特徴と近いものを判断するという流れのようです。

f:id:timenyan:20171114203533p:plain

正解率90%まで上がりました。学習を繰り返すうちに自動で少しずつ内部のパラメーターを自動調整してくれました。

 

結果

150枚の顔画像を用意するのが大変でした。ただ2択に設定したため比較的高い正解率90%という結果が出せたのではないかと思います。また、同時代のアイドルの写真でないため32ピクセルにした段階で色調が遠巻きに違いがわかる程度に出ているのも何かしら測定に影響しているかもしれません。

 

 画像収集時には結果が不安でしたが結果的に大成功に終わりました。これも上記ブログの親切丁寧な解説と本ソフトを用意してくださっているソニーが研究してきたディープラーニング技術のオープンソースライブラリー「Neural Network Libraries」の恩恵に寄るものです。

 

感想

再計算するたびに実行結果が異なります。同じ入力があれば同じ結果を返すという従来のソフトウェアと異なる使用感があります。画像認識だけでなく行列や波形なども学習元データセットに設定できるため株価予想などにも応用できるようです。

 

皆さんもぜひ、有効な利用方法でお試しいただければと思います。以上です。