今回の解説では「人工知能」について取り扱うぞ!と思ったのですが、テーマが壮大すぎて途方にくれてしまいました・・・。
といきなり、ぼやきから入りましたが「人工知能」を理解するためには、まず大きな流れや考え方を解説するほうがわかりやすい気がしたので、概要編では大雑把な流れの解説をしてみます。。
この会議の開催を案内する「提案書」の中で、人間の学習や知能をシミュレーション(真似)する機械のことを人工知能と呼んだことが「人工知能」の始まりとされている。
この会議はダートマス大学にいた「ジョン・マッカーシー」が音頭をとって開催したのだが、実は、マッカーシーが参加者リストをなくしてしまったため、参加者は一時わからなくなってしまっていました・・・。
でも、のちに復元された参加者一覧により20名の参加者が特定されています。
参加者は「シャノン」等の超有名人ばかりで、約6週間にかけてブレストが行われ、その後の人工知能に関する重要なディスカッションが多く行われました。
この会議以降、「人工知能」という言葉が「人間の知的な活動を模倣する機械」という意味で使われるようになりました。
例えば、「ものを見て、何があるかを判断すること」、「チェスをすること」、「人と会話をすること」、「文章を要約すること」、「数学の証明をすること」等、例をあげればきりがありません。
このようにいろんな分野でいろんな人工知能が考えられてきたのですが、それを実現する方法は大きく2つあります。
1つは、「こういう場合にはこうしろ」といったルールをたくさん機械に教え込んで、「人間の知的な活動」を真似させる、「ルールベース」と呼ばれる手法です。
これは、初期のころに流行った方法で、たくさんルールを教えれば教えるほど賢い判断ができるようになるので、このまま簡単に人間の知能を超えることができると考えられました。
ただ、「ルールベース」の方法には「教えらえれていないものに対応できない」という悲しい欠点がありました。
「人間の知的な活動」では、過去の経験をもとに、初めて出くわす場面でもそつなくこなすことができますが、「ルールベース」はこのような臨機応変な対応ができません。
例えば、写真を機械にみせて何が写っているのか判別させることを考えましょう。
(これも人間ならばできる知的な活動の一つです)
ルールとして、「写真の中央に赤い円形のものが写っていればりんご」というルールを機械に教えたとしましょう。
その場合、多くの写真の場合は対応できるのかもしれないですが、「青りんご」の写真が提示された場合は対応できなくなります。
また、トマトが写った写真を見せられても「りんご」と判断してしまうでしょう。
いまいち「人間と同じ」というにはほど遠いですよね。。。
そこで、「ルールベース」の方法以外に「機械学習」と呼ばれる手法も考え出されました。
先ほどの「リンゴ」の例でいえば、いくつか「りんご」の写真をみせるだけで、「どういった場合なら「りんご」で、どういう場合なら「りんご」ではないのか」ということを自動的に学習します。
ルールを教えないのになんで?って気もしますが、そこはうまいこと仕組みがつくらているんです。
よく考えたら、私たち人間も、赤ちゃんに対して「赤い丸いものがリンゴだよ」なんて教え方はしないですよね。
単純に「リンゴ」を見て「りんごだよ」と教えるだけで、どういうものが「リンゴ」なのか勝手に赤ちゃんが学習していきます。
そのため、「機械学習」の方法のほうが人間の知的な活動を真似する「人工知能」を作る方法としてより相応しいと思われています。
「機械学習」の方法はいくつか考えられていますが、代表的なものを見ると以下のようなものがあります。
この1つ1つのニューロンは、他のニューロンからのエネルギーを受け取って、受け取った情報がある量を満たせば、そのニューロン自身も他のニューロンにエネルギーを送るといったシンプルな組織です。
この組織を、何百、何千、何万とつなぎ合わせていくと、全体ではとても複雑な動きをするようになります。
例えば、何万個のニューロンの中からいくつかのニューロンを選んで、そのニューロンに写真の情報をエネルギーに変えたものを入力します。
(情報をエネルギーに変える方法はなんでもいいです。例えば赤だったら50、黒だったら60、白だったら0といった具合に)
すると、一つ一つのニューロンが反応して、全体で複雑な反応が進んだあげく、「りんご」の写真が入力されたときだけ活性化するニューロンがでてきます。
「りんご」の写真を入力した後に複雑な反応をさせると、そのニューロンは活性化しますが、「りんご」じゃない写真を入力したときは活性化しません。
これは、このニューラルネットワーク(ニューロンをたくさんつなげたもの)が「りんご」を理解していると考えることができますね。
(人間の脳の中にも「おばあちゃん細胞」といって、ある物体(例えばおばあちゃん)を見たときだけ反応するニューロンが見つかっています)
実は、適当につくったニューラルネットワークが「りんご」をちゃんと発見してくれることはありません。
ニューロン同志のつながり方を調整してあげないといけないのですが、ニューラルネットワークでは人間が調整しなくても自動的に調整する方法が見つかっています。
だから「機械学習」の一つの手法なんですよ。
種類だけでいうと、例えばこんなものがあります。
このなかでも、最近話題になっている「ディープラーニング」は「多層パーセプトロン」の種類の一つです。
多層パーセプトロンとは、次の図のようにニューロンが層状に何個もならんでいる形のニューラルネットワークを言います。
(人間の脳にも同じような構造の部分があります)
いままでは、このニューロンの層は3段階以上にしてもあまり意味がないと考えられていました。
3段階以上にすると、ニューロンの反応を計算するのがとても複雑になって時間がかかってしまうのと、ニューロンのつながりを調整するよい方法がみつかっていなかったのです。
ところが、最近になってコンピュータの能力が飛躍的に向上し、ニューロンの反応を計算することができるようになったことと、上手にニューロンのつながりを調整する方法が考え出されました。
(例えば、「オートエンコーダ」や「ボルツマンマシン」という考え方を使ったニューロンのつながりを調整する方法が有効なことがわかってきました)
すると、誰も教えていないのに上手に「猫」を発見することができたり、囲碁でプロに勝ったり、テレビゲームを上手にすることができるようになったのです。
こういう「多層パーセプトロン」の学習を上手に進化させたものを「ディープラーニング」と呼びます。
(沢山の層がある=「深い(deep)」という意味でディープラーニングといいます)
ちなみに、ご参考までにディープラーニングでゲームの方法を学習していく過程の動画です。
最近話題の「ディープラーニング」もその中の方法の一つだというこっとがわかっていただいたと思います。
「シンギュラリティ(特異点技術)」というのは、例えば人間の知能を人工知能が超える技術というものですが、果たして今紹介した人工知能の技術の中からそのような技術が生まれるのでしょうか?
今後は、ざっとご紹介した人工知能の技術を少しずつ深く解説していきますね。
といきなり、ぼやきから入りましたが「人工知能」を理解するためには、まず大きな流れや考え方を解説するほうがわかりやすい気がしたので、概要編では大雑把な流れの解説をしてみます。。
1分:全ての始まりは「人工知能」
有名な出来事なのですが、1956年の夏に「ダートマス会議」と呼ばれる会議がアメリカ・ニューハンプシャー州にあるダートマス大学で開催されました。この会議の開催を案内する「提案書」の中で、人間の学習や知能をシミュレーション(真似)する機械のことを人工知能と呼んだことが「人工知能」の始まりとされている。
この会議はダートマス大学にいた「ジョン・マッカーシー」が音頭をとって開催したのだが、実は、マッカーシーが参加者リストをなくしてしまったため、参加者は一時わからなくなってしまっていました・・・。
でも、のちに復元された参加者一覧により20名の参加者が特定されています。
参加者は「シャノン」等の超有名人ばかりで、約6週間にかけてブレストが行われ、その後の人工知能に関する重要なディスカッションが多く行われました。
この会議以降、「人工知能」という言葉が「人間の知的な活動を模倣する機械」という意味で使われるようになりました。
2分:「人工知能」の流れは「ルールベース」「機械学習」の2つ
さて、「人間の知的な活動」を真似するっていったって、漠然としてますよね・・・。例えば、「ものを見て、何があるかを判断すること」、「チェスをすること」、「人と会話をすること」、「文章を要約すること」、「数学の証明をすること」等、例をあげればきりがありません。
このようにいろんな分野でいろんな人工知能が考えられてきたのですが、それを実現する方法は大きく2つあります。
1つは、「こういう場合にはこうしろ」といったルールをたくさん機械に教え込んで、「人間の知的な活動」を真似させる、「ルールベース」と呼ばれる手法です。
これは、初期のころに流行った方法で、たくさんルールを教えれば教えるほど賢い判断ができるようになるので、このまま簡単に人間の知能を超えることができると考えられました。
ただ、「ルールベース」の方法には「教えらえれていないものに対応できない」という悲しい欠点がありました。
「人間の知的な活動」では、過去の経験をもとに、初めて出くわす場面でもそつなくこなすことができますが、「ルールベース」はこのような臨機応変な対応ができません。
例えば、写真を機械にみせて何が写っているのか判別させることを考えましょう。
(これも人間ならばできる知的な活動の一つです)
ルールとして、「写真の中央に赤い円形のものが写っていればりんご」というルールを機械に教えたとしましょう。
その場合、多くの写真の場合は対応できるのかもしれないですが、「青りんご」の写真が提示された場合は対応できなくなります。
また、トマトが写った写真を見せられても「りんご」と判断してしまうでしょう。
いまいち「人間と同じ」というにはほど遠いですよね。。。
そこで、「ルールベース」の方法以外に「機械学習」と呼ばれる手法も考え出されました。
3分:ルールを教える必要がない「機械学習」
「機械学習」では、「ルール」を教え込む必要がありません。先ほどの「リンゴ」の例でいえば、いくつか「りんご」の写真をみせるだけで、「どういった場合なら「りんご」で、どういう場合なら「りんご」ではないのか」ということを自動的に学習します。
ルールを教えないのになんで?って気もしますが、そこはうまいこと仕組みがつくらているんです。
よく考えたら、私たち人間も、赤ちゃんに対して「赤い丸いものがリンゴだよ」なんて教え方はしないですよね。
単純に「リンゴ」を見て「りんごだよ」と教えるだけで、どういうものが「リンゴ」なのか勝手に赤ちゃんが学習していきます。
そのため、「機械学習」の方法のほうが人間の知的な活動を真似する「人工知能」を作る方法としてより相応しいと思われています。
「機械学習」の方法はいくつか考えられていますが、代表的なものを見ると以下のようなものがあります。
- ニューラルネットワーク
- 決定木学習
- 遺伝的プログラミング
- ベイジアンネットワーク
4分:「ニューラルネットワーク」にもいろんな分野が・・・
「ニューラルネットワーク」とは、人間の脳の中に実際にある「ニューロン」と呼ばれる神経細胞をモデルにして作られたものです。この1つ1つのニューロンは、他のニューロンからのエネルギーを受け取って、受け取った情報がある量を満たせば、そのニューロン自身も他のニューロンにエネルギーを送るといったシンプルな組織です。
この組織を、何百、何千、何万とつなぎ合わせていくと、全体ではとても複雑な動きをするようになります。
例えば、何万個のニューロンの中からいくつかのニューロンを選んで、そのニューロンに写真の情報をエネルギーに変えたものを入力します。
(情報をエネルギーに変える方法はなんでもいいです。例えば赤だったら50、黒だったら60、白だったら0といった具合に)
すると、一つ一つのニューロンが反応して、全体で複雑な反応が進んだあげく、「りんご」の写真が入力されたときだけ活性化するニューロンがでてきます。
「りんご」の写真を入力した後に複雑な反応をさせると、そのニューロンは活性化しますが、「りんご」じゃない写真を入力したときは活性化しません。
これは、このニューラルネットワーク(ニューロンをたくさんつなげたもの)が「りんご」を理解していると考えることができますね。
(人間の脳の中にも「おばあちゃん細胞」といって、ある物体(例えばおばあちゃん)を見たときだけ反応するニューロンが見つかっています)
実は、適当につくったニューラルネットワークが「りんご」をちゃんと発見してくれることはありません。
ニューロン同志のつながり方を調整してあげないといけないのですが、ニューラルネットワークでは人間が調整しなくても自動的に調整する方法が見つかっています。
だから「機械学習」の一つの手法なんですよ。
5分:「ニューラルネットワーク」の中の1つの分野が「ディープラーニング」
先ほど紹介した「ニューラルネットワーク」は様々な種類が考え出されています。種類だけでいうと、例えばこんなものがあります。
- 単層パーセプトロン
- 多層パーセプトロン
- リカレントニューラルネットワーク(RNN)
- 畳み込みニューラルネットワーク(CNN)
- 自己組織化マップ(SOM)
- ボルツマンマシン
このなかでも、最近話題になっている「ディープラーニング」は「多層パーセプトロン」の種類の一つです。
多層パーセプトロンとは、次の図のようにニューロンが層状に何個もならんでいる形のニューラルネットワークを言います。
(人間の脳にも同じような構造の部分があります)
いままでは、このニューロンの層は3段階以上にしてもあまり意味がないと考えられていました。
3段階以上にすると、ニューロンの反応を計算するのがとても複雑になって時間がかかってしまうのと、ニューロンのつながりを調整するよい方法がみつかっていなかったのです。
ところが、最近になってコンピュータの能力が飛躍的に向上し、ニューロンの反応を計算することができるようになったことと、上手にニューロンのつながりを調整する方法が考え出されました。
(例えば、「オートエンコーダ」や「ボルツマンマシン」という考え方を使ったニューロンのつながりを調整する方法が有効なことがわかってきました)
すると、誰も教えていないのに上手に「猫」を発見することができたり、囲碁でプロに勝ったり、テレビゲームを上手にすることができるようになったのです。
こういう「多層パーセプトロン」の学習を上手に進化させたものを「ディープラーニング」と呼びます。
(沢山の層がある=「深い(deep)」という意味でディープラーニングといいます)
ちなみに、ご参考までにディープラーニングでゲームの方法を学習していく過程の動画です。
終わりに
一言で「人工知能」といっても、たくさんの種類ややりかたがありますね・・・。最近話題の「ディープラーニング」もその中の方法の一つだというこっとがわかっていただいたと思います。
「シンギュラリティ(特異点技術)」というのは、例えば人間の知能を人工知能が超える技術というものですが、果たして今紹介した人工知能の技術の中からそのような技術が生まれるのでしょうか?
今後は、ざっとご紹介した人工知能の技術を少しずつ深く解説していきますね。