ここでは、AI(artificial intelligence:人工知能)について簡単にご紹介します。今更、人に聞けないとか、今よりもう少し知識を身に着けたいという方にお読みいただければ幸いです。
AIの歴史
AIがいつ頃生まれて、これまでどのように変化してきたのかについてご紹介します。世界最初のコンピュータのENIACは1946年に誕生しました。その10年後の1956年にダートマス会議において、初めて「人工知能」という言葉が使われたのがAIの最初といわれています。このころは、プログラミング言語のFORTRANがやっと生まれたころですので、ずいぶん早く誕生していることに驚かれたのではないでしょうか。AI誕生から10年前後を第1次AIブームと呼びますが、この時期にAIの基礎となる技術が多く発表されています。現在話題となっているディープラーニングの基礎となるパーセプトロンやバックプロパゲーションは既にこの時期に発表されているのです。余談ですが、「鉄腕アトム」はAI誕生の1年前の1955年に出版されていますので、手塚治虫氏のすごさが分かりますね。ちなみに年表に緑色で映画やアニメの情報も記載しておきましたので合わせてご覧ください。さて、第1次AIブームは10年程度で終焉を迎えます。その理由は、コンピュータの性能の問題が大きな原因です。幾つかの理論を実践するためには圧倒的にコンピュータの処理能力が不足していたため実用化にまで至らなかったのです。それから15年後の1980年代に入るとコンピュータの処理能力も向上し、第2次AIブームがやってきますが、このブームは10年も持ちませんでした。ニューラルネットワークは、上手く収束させることができない。エキスパートシステムは、ルールの記述が大変などの理由によりブームが去ります。その後、1997年にDeepBlueがチェスで棋士に勝利したことで話題となるなどの進化はありますが、やはり第3次AIブームの火付け役は、ディープラーニングではないでしょうか。ディープラーニングによりニューラルネットワークの学習が格段に進化したことで、多くの分野での利用が盛んに行われるようになったのです。
AIの種類
AIは、現在よく耳にするニューラルネットワークだけではなく、いくつかの種類があります。ニューラルネットワークについては、後ほど紹介しますのでここでは、それ以外の2つについてご紹介します。1つ目は、エキスパートシステムやRPA(Robotics Process Automation)に代表される知識ベースです。これは、有識者の知識を1つ1つのルールという形でデータベース化して、それを利用して推論するシステムを構築することで、その知識を活用しようとするものです。エキスパートシステムは、その知識データベースを使って答えを推論するシステムですが、知識ベースを使っているため、なぜそのような回答に至ったかの理由を示すことが可能です。ただし、暗黙知のようなルールで表現が難しいものは利用しずらい欠点があります。また、実際のシステム構築には膨大なルールが必要となることなどから、構築事例はあるものの現状では積極的な活用には至っていません。次に紹介するのは遺伝的アルゴリズムです。これは、データの塊を遺伝子配列と見なして、そのデータ配列に対して突然変異や交差を行い評価した結果が良かったデータ配列を残すことを繰り返し行うことで、最終的に最適解に近いデータ配列を見つけ出すものです。データ配列で何を表現するかで実際に利用される範囲が広がります。例えば、弊社が開発した「AI工程スケジューラ」は、この遺伝的アルゴリズムを使って、最適なスケジュールを見つけ出しています。
ニューラルネットワークとは
AIで現在最も注目され活用が進んでいるのがニューラルネットワークです。ここからは、その注目を集めているニューラルネットワークを簡単にご紹介します。ニューラルネットワークは人間の脳をモデル化したものです。人間の脳は、ニューロンと呼ぶ神経細胞とシナプスと呼ぶ樹状突起からなり、人間の脳の神経細胞の数は1兆個あると言われており、1個の神経細胞に10万個の樹状突起があることもあると言われています。ニューロンはシナプスからの刺激により興奮し、その興奮状態を発火と呼び、その発火状態を1つのシナプスを通して次のニューロンに伝達します。つまりN個の入力に対して1つの結果を出力します。これをモデル化したのがニューラルネットワークです。余談ですが、ニューラルネットワークは脳細胞をモデル化したものですが、完全なモデルではありません。例えば、新たなニューロンが生まれたりニューロンから新たにシナプスが別のニューロンに繋がったり消滅したりという機構は、現状のニューラルネットワークではモデル化されていません。その意味でニューラルネットワークはまだ発展途上で、将来ニューラルネットワーク自体に新たな機構を持つモデルが登場するかもしれません。
ニューロンの発火については、活性化関数を用いて出力値が0~1までの値を取るようにします。活性化関数は表にあるようにいくつかの関数が発表されていますが、ここでは関数の細かい特徴まではご紹介しませんので、興味のある方は別途問合せ頂くなりご自分で調べてみてください。
ニューラルネットワークは、モデル化した神経細胞が集まって出来ています。最初に外部からの入力を受ける部分を入力層、最後に結果を出力する部分を出力層、その間にある層を中間層と呼び、入力層に入った刺激が中間層を通り出力層まで伝播した結果が出力されます。入力層に異なる刺激が入力されると中間層との結合の強さにより伝播される刺激の大きさが異なるため結果として出力層の出力が異なることになり、1つのニューラルネットワークにおいていくつかの異なる入力に対してそれぞれの異なる出力が得られることになります。つまり、この結合の強さを適切に設定することができれば、ある入力に対して期待する出力が得られることになります。
結合の強さを適切に設定するための行為が学習です。1つの出力層のニューロンの学習について考えてみます。ある刺激に対して結果として出力結果が0.82となったが本来の出力結果の期待値は0.2だった場合、その出力を0.2に近づけるためには、その出力層のニューロンの結合の強さを少し下げることで期待値に近づけることができます。
この操作を1つ上の中間層のニューロンに対しても同様に行うことで、全てのニューロンの結合の強さを変更します。このように出力の結果から順に上に伝播する方法のことを誤差伝播法(バックプロパゲーション)と呼びます。なぜ結合の強さを少しづつしか変化させないかというと、ある刺激の時には出力結果は期待値より大きく、ある刺激の時には期待値より小さい場合があるため、結合の強さを大きく変化させてしまうと結合の強さがある刺激と異なる刺激の間でとるべき値が振動してしまい期待する値に収束しない現象が発生してしまうからです。また、結合の強さの変化量を小さくしすぎてしまうと学習回数を増やしてもなかなか学習が進まないということにもなります。学習を繰り返し全ての入力データ(学習データ)に対して期待する出力結果が得られるようになれば学習の終了ですが、最後に本当にうまく学習ができているかを学習に使っていない新たなデータ(試験データ)を使って学習済みのニューラルネットワークに与えて出力した結果を評価し、期待値になっていればニューラルネットワークの完成です。
ここまでが、第2次AIブームまでの紹介ですが、なぜ冬の時代を迎えることになったかというと、ネットワークの層の数を大きくするなど少し複雑なニューラルネットワークの学習がうまく進まなかったためでした。第3次ブームの火付け役となったのが、ディープラーニングによる画像認識でした。ニューラルネットワークで層を深くすると学習が上手く行かない課題を、ディープラーニングはバッチノーマライゼーションという技術で克服したことで一躍注目されたのです。つまりニューラルネットワークの学習をバッチノーマライゼーションにより多くの中間層をもつニューラルネットワークの構築を可能にしたのが、ディープラーニングです。
以上、AIの歴史から技術の概要までをご紹介いたしました。ご参考になれば幸いです。また、ご質問、ご意見等ございましたら何なりとお問い合わせください。
(AI活用支援へ戻る)