IoT, AI,機械学習 トピックス プログラム、シミュレーション

分類器によって間違える

投稿日:

手書きで書いた文字を学習したAIが認識してくれるかどうかを試すプログラムコードです。

資料をご覧ください。 → 機械学習6

p.1 サポートベクトルマシンを用いた文字認識プログラムの実行結果です。①Runすると3つの枠が表示されますので、②左の枠内にマウスで例えば「2」を描き、下の「認識」ボタンをクリックします。③真中に手書きデータを濃淡データに換算した図が表示され、右に学習したデータを基に認識した文字を表示します。合っていたでしょうか?

p.2~4 サポートベクトルマシンを用いたプログラムコードです。19行目の「SVC」と書いてあるので、サポートベクトルマシンを用いていることがわかります。4行目で、PIL(Pillow):画像処理ライブラリーを読み込んでいます。通常、グレースケール画像では、0~255の間のデータとなります。今回は16種類の濃淡で分類するので、データを255で割って16を掛けています(104行目)。

プログラムコードは → ml0608

p.5 左側が、サポートベクトルマシンを用いて紛らわしい文字を描いた事例です。「1」と「9」の文字を描いて、いずれも「4」と認識してしまいました。 右側がニューラルネットワークを用いたプログラムで、同様の文字を手書きで描いて認識させたものです。「1」と「9」は正しく認識されましたが、「0」が「4」と認識されてしまいました。 いずれのプログラムも学習不足なのでしょう。きっと。

p.6~9 ニューラルネットワークを用いたプログラムコードです。21行目にニューラルネットワークを用いる「MLP」の分類器を使うことが書かれています。プログラムコードは → ml0609

正解率は文字の位置大きさによって変化するようなので、位置や大きさを補正する必要があります。 ディープラーニングという深層学習をするとさらに正解率は増すそうです。文字通り深いですね。

-IoT, AI,機械学習, トピックス, プログラム、シミュレーション

Copyright© 進化するガラクタ , 2021 All Rights Reserved Powered by STINGER.