最近、AIという言葉が巷を賑わせている。
多くの人にとって、AIという言葉が魔法のように感じられる一方で、そんなに都合の良いことが果たしてあるのだろうか。と思うからだろう。
AI=人工知能とした時に、人間の脳の動きを数式で置き換えようという取り組みは何十年もトライされていて、まだ一向に解決することができていない。
一方で、Googleなどのウェブサービスを使っていると、こちらの心が読めるのではないかとすら思う出来事に出くわすケースが多い。
例えば、単純な検索をしたいばあいでも、書き損じているのに、適切な検索結果を返してくることなどの軽い驚きを覚えるはずだ。
何が入力されるかわからない、検索エンジンの「入力窓」を作ろうとしたラリー・ペイジは、そんな心も見透かすようなものを作ろうとしたのかもしれない。
ところで、IoT/AIの文脈で使われる「AI」は、こういった魔法の箱をイメージしているだろうか。
多くの場合は、人でしかできなかった「判断」を「AI」に委ねたいと考えられている。
例えば、「工場の表面検査において、出荷可能な状態かどうかを撮影した画像を元に判断する。」「自動運転カーにおいて、飛び出してきた子供にも気づき、必要な操作を行う。」など様々な場面での利用が期待されている。
そして、その複雑な処理は、「学習」によってもたらされるというのだが、この「学習」をどうやってやるのか、イメージがつきにくい。
通常の「アルゴリズム」であれば、あらかじめ「もしXXXならばYYYとする」といった分岐処理が決まっていて、入力された値によって処理を変えている。
しかし、このAIと呼ばれる処理の類は、多くは「もしXXXならば」に相当する部分を機械が決めてしまうというものなのだ。
例えば、犬と猫の画像を学習したAIの学習モデルがあるとする。そこに新しい動物の写真を登録した際、犬か猫かを判定して「どうやら犬らしい」「猫っぽい」という判断をするのだ。
ここが間違っていると、猫は首輪をつけられて散歩に連れて行かれることになる。
何を持って犬か猫かを判断するのか
この例の場合、画像データには特徴量と呼ばれるパラメータ値が計測される。
話を単純にするために、例を挙げると、目と目の距離だったり、鼻の高さであったり、口の位置であったり、そういった値のことだ。
そして、学習した時点での様々な犬の、そして猫のパラメータ情報と、新たに投入された動物のそれぞれのパラメータ値を数学的に比較して、犬か猫かを判断することになる。
単純にはこれだけなのだ。
Microsoft Azureには20以上の数式が準備されているが、大きくは、分類するものと、値を示すものに分けられる。
分類するということ
分類とは、犬か猫かを分類するものだ。二つに分けてもいいし、もっと多くの種類に分類してもよい。
x-y軸から構成される二次元上に、犬と猫がプロットされていることをイメージするとわかる。
この平面上のプロットには、必ず犬と猫との境界線が存在する。その境界線をどういう数式で表すか?が学習モデルを作るという行為にあたるのだ。
境界線を引く数式ができれば、あとは新しいデータをその数式に入れれば、結果となる値が境界線のどちら側にプロットされるかによって犬か猫かが判別されるのだ。
値を得るということ
値とは、入力データをある数式に投入した結果だ。例えば、100%犬と言い切れるとか、80%犬っぽいとか、そういうイメージだ。
クイズに答えるようなAIを作った場合をイメージしてみてほしい。
例えば、「本州の西の端の県は何県?」というクイズがあったとすると、回答は「山口県」となる。
これを処理するには、本州というのは日本の島を表す言葉として存在していて、西というのは北を上にした世界地図上左側を指す。県というのは日本の国を47個に区別する概念で、地図上ではその境界線が引かれている。
もちろん、県を表現するブロックを概念として持っている必要がある。
それがある前提で、人は「山口県」を回答とするのだが、山口県である確率は何パーセントだろうか。
例えば、47都道府県のすべての県名を正確に知っていなければ、山口県とは言えないはずだ。中国の行政区も「県」と呼ばれる。
コンピュータからすると、日本の「県」も中国の「県」もデータとしては同じなので、必ずしも日本の県を指すとは限らない。
値を100%決めるのが簡単ではないことがわかるだろう。
ディープラーニングが得意なこと
ところで、AIというと「ディープラーニング」という言葉があったり「機械学習」という言葉があったりするが、これは何なのだろうか。
AIに関してよく使われる数式の中に、「回帰」や「分類」というものがあるが、みなさんはこれらの数学的意味を説明できるだろうか。
比較的一般的な確率統計の手法なので知っている人もいるかもしれないが、多くの人にとっては説明ができないものだろう。
そこに新たにディープラーニングだとか機械学習だとかという言葉が付け加えられたからといって、対極に影響はないはずだ。
前述した「分類するということ」のように、値を数式に入力すれば良いという単純な処理から、より複雑な処理ができると分類するための境界線があいまいな場合でも分類することが可能になるとだけ覚えておけば良い。
実際にどういうパラメータを入力値とすれば、どういう出力が得られるかということについては、相当なノウハウが必要で、決して簡単ではない。
ただ、こう言ったある種感覚的な手法は、100%の分類を求められる工業的な世界では通用せず、現状では、コンビニに訪れた顧客が男性か女性かといった曖昧な結果でも対極に影響がないような世界では重宝される。
ディープラーニングは、画像データから男女を見分ける、人を特定する、といった曖昧なこと判断することが得意なのだ。
一方で、曖昧な故に、必ずしも正解が得られないということも知っておく必要がある。(認識率X%という表現がされるのはそれゆえだ)
AIという言葉に踊らされず、これまでの手法でできないこと(でどうしてもやりたいこと)が出てきた時に、初めて「AIで解決することはできなか?」と考えるのでも遅くはない。
無料メルマガ会員に登録しませんか?
IoTNEWS代表
1973年生まれ。株式会社アールジーン代表取締役。
フジテレビ Live News α コメンテーター。J-WAVE TOKYO MORNING RADIO 記事解説。など。
大阪大学でニューロコンピューティングを学び、アクセンチュアなどのグローバルコンサルティングファームより現職。
著書に、「2時間でわかる図解IoTビジネス入門(あさ出版)」「顧客ともっとつながる(日経BP)」、YouTubeチャンネルに「小泉耕二の未来大学」がある。