2020年1月12日日曜日

システムの投資対効果 〈 Python AI ニューラルネット 〉

Python 使いやすいです。この簡単さ、何かに似ていると思いました。そう、BASIC* です。インタープリタだし、宣言しなくていいし。それでいて配列計算をスカラーのように記述できます。SASもそうですが、データアナリストは1命令でデータセットの処理記述ができる言語が好みです。ビギナーからプロまで遊ぶように使える素晴らしい環境ですね。


面白くなって少し遊びました。おなじみ「ゼロから作るDeep Learning」  ( 教材はGithub )。 でもあえて Deep とは反対の事を試しました。二層のニューラルネットで手書き文字認識( MNIST  0から9の数字 ) を学習させるのですが、中間層をどんどん落としていきます。タイトルの通り、費用対効果を見るというトライアルです。

結果です。
中間層 認識率(テストデータ)
 50 unit 94.6 %
 25 unit 94.1 %
 15 unit 93.3 %
 10 unit 92.1 %
   7 unit 91.3 %
   5 unit 87.3 %

中間層が 7 でも認識率が 90 %越えるのですよ。どうなっているのでしょうか?おそらく 0 から 9 のどれか 1つに分類するというタスクであれば、特徴量は 10 も必要ないということではないかと推察しました。7 程度の特徴量の組み合わせで まあまあの認識ができると。こんなことから CNN に発展したのかもしれませんね。
多ければいいというものではない、少ない程必要なものに迫っている、何だか要件定義と同じですね。機能やデータを絞って迷わず使いやすくするのがデザインのポイント、性能も上がりますし。だいたいロジカルじゃないことはシステム実装できませんから。思い切ってシンプルにそぎ落とすのが肝心です。
永島志津夫

全社のシステムを少ない人数で見ていれば時に見落としもあるかもしれません。
オフィスエヌ ショートレビュー5万円から。
連絡先 office.nagasima#gmail.com (#を@に変えてメールをお願い致します

* パソコンのコンピュータ言語といえば BASIC という時代がありました。1980年代です。