こんにちは。できです。
人工知能の記事書くとすぐ読んでくれて嬉しいので書きます。たくさん。書きます。今日は、人工知能にはどんな技術が使われているのか解説しますね。
ですが、人工知能にもいろいろな種類があるので、まずはどんなものがあるか解説していこうと思います。今日は統計的な手法編です。他の手法でニューラルネットというのがありますがそれは今度にします。
人工知能を実現する技術、機械学習の方法
- 統計的機械学習 <ー 今日はこっち
- ニューラルネットワーク
人工知能って言っても、考え方がたくさんあって単純に切り分けることはできないのだけど、とりあえず工場で車を作っているロボットよりは人間ぽいね、くらいの技術なら現時点でもたくさん存在しています。
人工知能というと機械学習を指すことが多い
そういった技術を生み出しているのが上記のアプローチによる機械学習です。こういうロボットは、ドラえもんとか鉄腕アトムとかアイアンマンのジャービスほどのレベルではないけど、工場の機械みたいに100パーセント決まった動きしかできないロボットではないものです。
あんまり簡単に人工知能って言葉を使うなという人もいる
工場のロボットよりも柔軟にベルトコンベアーを流れてきた位置がずれていても対応できるとか、その程度のものも。
で今日は統計を使った方法なので、、、
統計的機械学習
まずは統計学を使った機械学習の方法について。本を読むならこの本がオススメです。ぼくの研究室でも使っています。
手書き文字の認識
統計的機械学習は、名前の通り確率統計を用いて学習をするアプローチです。簡単なイメージだと、手書き文字の認識がわかりやすいです。
人間はいろんなフォントの文字が読めますよね。ですが、機械は文字をコードで識別しているので、形には弱いです。それを解決するのが機械学習です。
手書き文字を確率で表すってどういうこと?
これをどう確率で表すかというと、画像情報を数値として扱って、他の画像と比べられるようにすることで確率を計算します。数値にする方法は考えなくていいですが、以下のようなイメージを持ってください。
確率っていうのは単純に出やすさのこと
「あ」がいくつかあったとして、縦軸が出やすさ、つまり確率、横軸が「あ」の表現や形です。
一般的な楷書体のような「あ」はよく出てくるし、汚い「あ」は少しだけあります。偏差値と一緒ですね。普通の人はグラフの内側にたくさんいるし、点数高すぎ!って人や、ちょっとテストで失敗しちゃうような人は外側に少しだけいますよね。
線を使って初めて見る手書き文字も判別できる
いくつかの「あ」が事前に準備できれば、大体の線が引けます。この線が引けると、例えば今まで知らなかった横位置に「あ」が現れても、なめらかな線が引いてあるので、次の画像のような感じでこの「あ」はどれくらい出やすい「あ」なのかわかります。
この画像の横軸にある黒い点々は事前に準備した「あ」です。これを使って線を引きました。
初めて見る「あ」に対する認識の例
そして赤い「あ」は線を引くのに使っていない「あ」なんです。初めて見る「あ」です。でも、なめらかな線があるので、点線を追っかけるとどれくらい出やすいか把握できますよね?
たとえ、形はまったく違うような左側の「あ」とも比べられます。赤い「あ」よりも「あ」っぽいものと、そうでないものが点線で上下にありますよね。こうして「あ」という文字について、どれだけ「あ」っぽいかを比べることができるようになりました。
他の文字についても判別する線を作り出す
これを他の文字についても行うんです。そうすると、それぞれの文字の分だけなめらかな線が得られます。機械には読めないはずの文字を、すべてのなめらかな線を使ってどの文字らしさが一番か確かめていきます。
そうして、このパターンがどの文字に一番近いのか判別するわけです。
もちろん、一番中心寄りに配置した文字がもっともそれらしいと考えられます。最後は、絵描きませんでしたけど、大丈夫でしょうか?
もっと詳しい計算方法や学習としての側面また今度書いていきます。今日は大学1年生向けの解説です。
機械学習の使い所って?
ちなみに、機械学習はなめらかな線を引くときに使います。ガウス分布を仮定して、その分散と平均の値を学習します。少しずつ、それっぽい線を探していくんですね。今日はこの辺にします。今度、学習をするアルゴリズムを解説していきます。