技術研究所の (あ) です。
この一年くらいで、社内外のいろいろな方々向けに眼科画像と機械学習の話をさせていただく機会がいくつかありました。長めの話をする場合には、「そもそも機械学習とか AI (人工知能) ってなぁに?」というあたりから話を始めます。
先日もそのあたりに関する話が社内報向けの Q&A形式の記事になったのですが、紙面も限られていて削った部分もありました。せっかくなのでそれをベースに、新たに内容も追加してブログ記事にしてみました。
大雑把にいうと、人工的に作った、人間の知的活動と同じような活動を行うカラクリやプログラムです。「じゃあ、知的活動って何?」となりますが、今現在よく「人工知能」として取り上げられるのは、たくさんのデータから学習して、分類や判断のしかたを自力で見つけだす (「機械学習」といいます) ようなものです。
普通のプログラムでは、分類や判断のポイントや特徴を人間が具体的に書く必要があります。たとえば「昆虫」ならば「体が頭・胸・腹にくっきり分かれている」「足は6本、胸から出ている」
などが特徴になります。画像で見分ける場合は、こうした特徴が画像の中でどのように見えるかということも考えて、それを見つけ出す方法もプログラムしてやる必要があります。
これに対して機械学習では、たくさんの昆虫や似ているけど昆虫ではない生き物の画像から、「昆虫」に共通する画像の中の特徴をコンピュータ自身が見つけて、見分けられるようになります。なので、「見分け方を具体的に書くのが難しい」ようなものでも見分けることができます。
たとえば、みなさんにとって「いぬ」と「ねこ」を見分けるのは (犬種・猫種によっては難しめなのもあるかもしれませんが…) 難しくないと思います。でも、「どこで見分けている?」と訊かれても「なんとなく」としか言いようがない人が多いでしょう。見た目の特徴の違いを具体的に書き出して、というとさらに難しくなるでしょう。
具体的に書きづらいということは、普通のプログラムではやりづらいということであり、こうしたものには機械学習を使うのが向いています。違いを見分けやすいけれど書きづらい「特徴」をいろいろみつけ、どのあたりが境界線になるか、というのをデータから探してくれるのです。
Cf)「機械学習で自然現象の写真を分類してみる」
機械学習を行って画像を見分けたりする仕組みの一種です。
「ニューラル」とは「神経の」という意味で、人間の神経細胞の働きを真似たプログラム上の「細胞」のようなものを複雑につなぎ合わせたネットワークで分類などを行います。細胞どうしのつながりの強さなどが学習を進めることで変化していって、目的のものが見分けられるようになります。
ニューラルネットワークにもいろいろ種類があり、画像を見分けるのが得意なタイプが、畳み込みニューラルネットワークと呼ばれるものです。これは、人間が、目で見たものを視神経から脳にかけての神経細胞のつながりで認識する仕組み (の一部) を真似ているような感じです。
ニューラルネットワークはより多くの「細胞」を重ねる (層を増やす) ようにすると、より複雑な境界線を引くことができるようになるので、見分ける能力があがります。しかし、初期のニューラルネットワークの技術では層が増えるとうまく学習させることができませんでした。それを効率よく学習できるようにしたのが「深層学習」と呼ばれている技術です。
さすがに何でもかんでも、とはいきません(笑)。
まず、当たり前ですが、画像中に「見分けるための特徴」が含まれている必要があります。人間が見分けられるものであればだいたいなんとかなりますし、人間には見分けにくいくらいのささいな違いでも見分けられることもあります。画像以外の、音などに関しても同様です。
そして、学習して特徴を見つけるための、十分な量のデータが必要です。データが少ないと、きちんと特徴を把握できずに、見分けられなかったり、見分けられるけれども間違いも多かったり、というような感じになってしまいます。
それでもよいですが、それだけでは十分な確かさ (精度) で見分けられないこともあります。
機械学習をうまく行い、より良い精度を達成するためには、ニューラルネットワークの大きさ (「細胞」の数など) や繋がり方を調整したり、学習用のデータの中の見分けたいものの割合を調整したり、また、データに予め処理をいろいろ加えたりする必要などもあります。それ以外にも、複数のニューラルネットワークを使って出た結果の多数決を採ったり、出てきた結果を最終的にどのように人間に見せるかなどを決めたりなども工夫する必要があります。
このような調整は、まだ機械学習だけではできませんし (将来的にはできるようになるでしょう)、扱う課題 (たとえば、病気の種類や画像の種類) ごとに、課題の内容も理解しつつ考える必要があります。
画像の分類のような、特定の課題をこなす AI を特化型 AI (あるいは「弱いAI」) と呼びますが、そうした AI では、すでに人間を超えるような精度が出ている例も多くあります。その作業を疲れたりせずに続けられる、という点では人間は足元にも及びませんね^^;。一方、フィクションに登場するような「人間ができるような知的活動が何でもできる」AI は汎用 AI (あるいは「強いAI」) と呼ばれますが、これが登場するのはまだまだ先の話になります。
その汎用 AI の技術が発達したときに、人間の知能を超えられない理由は特にない、と私は考えます。「いや、ある!」と考える人たちもいますが、十分に説得力のある理由は挙げられていない、と思います。
Cf)「シンギュラリティと知性とゾンビ」
そうなったとき、フィクションの世界ではよく「AI が人間を支配する・滅ぼす」みたいな状況が描かれますが、それはまずないでしょう。そこまで発達した AI が、わざわざ「人間を支配する・滅ぼす」ことに価値を見出すとは思えないからです。でも、ついうっかり大変なことに、とかだったらあるかも…?!
過去、コンピュータやネットワークが一般社会に普及し始めたときにもいろいろと不安や期待はもたれていましたが、今ではほとんど「あたりまえのもの」として社会に溶け込んでいます。AI や機械学習も、今は過剰とも入れる不安や期待を持たれる時期ですが、数年~十数年もすれば「あたりまえのもの」として溶け込んでいくでしょう。
そのときはどんな世界になっているのか? 楽しく素晴らしい世界であることを祈りたい、というか、そういう世界を作ることに少しでも貢献できればと願います。