プログラムで生成したデータで学習してみると2019年12月26日 07:39

個人レベルでは、機械学習のデータが用意できないなら、作ってしまおう、とプログラムで生成するとして、それは、使い物になるのか。

学習データ生成アプリ

漢字を構成する要素を、乱数をふんだんに配置して、プログラムで生成。これなら万単位のデータも用意できる。Win2DのCanvasPathBuilderで書いていく。

木、ゴシックの評価

試しということで、CNTKで生成したラベル数が5のCNNのモデルを読み込み、検証。Windows MLが使えなかったので、アプリは、WPFで作成。C++のWrapperを用意してUWPにする手もあるのだけど。

ゴシックフォントの「木」を認識。評価関数は、学習した内容から、それである確率を数値化する。これを、右の一覧に表示。最大値のものを正答とする。

土、ゴシックの評価

ゴシックフォントの「土」を認識。そこそこ。

土、明朝の評価

明朝フォントの「土」を認識。「土」と「木」の判定数値が接近している。学習データがゴシック様のものであることが影響するか。

他、「口」、「氵」などは、正しく認識。ただし、「亻」は、誤認識。形状が単純で不十分な学習に終わったか。

まだ、なんともいえないが、漢字フォントのようなかっちりしたものには、プログラムで生成したデータでもそこそこいけそうな感触。もう少し、先に進めてみる。