鉄道模型工作実験室

Nゲージ鉄道模型に関する工作や実験を行っています。

わたしの作った AI はおバカさんです

 今、機械学習の実感をつかむため、インプレス社の「いちばんやさしい Python 機械学習の教本 第2版」のChapter4 「日本語の文章を生成しよう」に挑戦しています。その内容はマルコフ連鎖の辞書データを使って文章を自動生成する方法です。


 まったくの初歩的な自動生成プログラムですが、そのロジックをみると、文章の構成を学校で習った名詞、動詞、修飾語などの文法に従って解析するのではなくて、単語のつながりをその出現回数を追って行って、データ化するという確率論的なロジックなのである。


 そこで実験屋として、教本に従って作成したプログラムを使って、簡単なテストを実施してみました。その結果を下のイラストに示します。

 教本のプログラムをそのまま使用して、上記に示す3種類の文章をしっかりと覚えるようにと3回ずつ覚えさせました。ビールメーカ名とその銘柄である。
 しかし、プログラムを走らせて文章を自動生成させたが、その正解率はなんとたったの 30%であったのだ。なんと私の作った AI は、お馬鹿さんなのだろうか!
  ************************************
 でも、驚きません。この自動生成プログラムのロジックを理解しているからです。しっかりと覚えさせた学習内容をもとに作成されたマルコフ連鎖の辞書データ、すなわちmarkov_dict の内容をみると、”生ビールは” に続く単語は、3銘柄共に、3:3:3の割合で出現させよと命令しているからです。単に、出現回数の確率だけで決めていっているからです。肝心の ”生ビールは” の前の単語であるメーカー名は完全に無視しているのです。
  ************************************
 メーカ名をキーにし、銘柄名を値とする辞書リストを作って文章を生成するロジックにすれば、正解率は100%となるのです。しかし、これでは人間が書いたプログラムであり、機械が自動的に学習したプログラムとは言えません。今回使用したプログラムのロジックでは、目的とする文章の生成には不十分なロジックであり、さらに何らかの改良や工夫が必要であると言うことです。
 世間で活用されているAIプログラムでは、様々な工夫と改善が織り込まれて、初めて活用できるレベルまで進化させたと推測しますが、もう80を超えた後期高齢者にはついていけないようです。
 でも文字認識や顔認識などは、どんなロジックを使って判断しているのか?  興味ありますね。!(^^)!

×

非ログインユーザーとして返信する