●トピック
・人工知能(AI)
・エキスパートシステム
・機械学習
・人工ニューラルネットワーク
・ディープラーニング(深層学習)
・遺伝的プログラミング(GP)
●深く知る
ソフトウェアがうまく動くというのは、はっきり言って当然です。あなたはもっと素晴らしいソフトウェアを開発するためにアルゴリズムを学ぶと良いでしょう。アルゴリズムは、その問題をどのように解くべきなのかを追求します。コンピュータの処理能力は人間には考えられないほど優れているものですが、その力をさらに何千倍何万倍にもできます。コンピューターは、事前に定義されたことを正確に行います。人工知能は、考えるということを再現するための電子コンピューターをプログラミングする科学です。
エキスパートシステムは、2つの主要なコンポーネントで構成されています。 1つ目は、「if then」のルールで構成される知識ベース(ナレッジベース)です。エキスパートシステムが決定を行うための要素となるルールになります。 2つ目は、ナレッジベースによって形成されたツリーをたどる推論エンジンです。一致する場合はルールを実行します。
人工ニューラルネットワーク(ANN)は、人間や動物に見られるニューラルネットワークをシミュレートします。人間の脳のニューラルネットワークには1,000億個のニューロンがあり、それぞれ数千以上のシナプスによって相互接続されています。各ニューロンは、シナプス入力に基づいて発火してきます。その結果、この多層ニューラルネットワークは数千以上の入力に基づいて一つの決定を行うことができます。
ニューラルネットワークが実際にどのように機能するかについて例を用いて説明します。あるカフェに入って、カウンターの列に並びます。レジの上に掛かれたメニュー表を見ながら、自分の番を待っています。いつも通りレギュラーコーヒーを頼もうとすると、前に並んでいた人がパフェの話をしています。たまにはパフェもいいなと思い、カウンター横のショーケースに目をやると、おいしそうなパンプキンパイが並んでいました。祖母が出してくれたアップルパイが紅茶がとても好きだったことを思い出し、パンプキンパイなら紅茶が合うことを確信します。要約自分の番になり、店員から期間限定のブレンドコーヒーを紹介され、期間限定の言葉につられてブレンドコーヒーを頼もうとします。そそくさと財布に手をやりお金を出そうとしたとき、レギュラーコーヒーの無料クーポンがあることに気付き、レギュラーコーヒーを頼みました。
五感を使って得られるさまざまな現在の状況が連続的に流れ込んでくると同時に、その状況下でどのような決断をしてきたのかを過去の知識と照らし合わせてより良くなるような回答を探し廻ります。この時、必要ではない触感などの入力は重要度を下げ、今のメニューを確認する視覚から得られる情報の重要度は上がっていくでしょう。より重要度の高い入力を受け取るとニューロンは発火する可能性が上がり、出力ニューロンでは最終的に発火します。この時、あなたは何かしらの決断をするのです。人工ニューラルネットワークは、トレーニングをすることでその精度をあげていきます。直感的にも分かる通り、ニューロンは過去の知識の影響を受けて発火してきますから、知識の多い人の方が失敗も少ないだろうということです。
このような意思決定のモデル化は、セキュリティ業務においては非常に有用です。ニュースなどでは人間と同じ思考ができるようになり、定型業務の自動化による従業員削減や新しい創造物を作るところばかりが注目され物議を醸しますが、スパムメールなどの検出には欠かせません。スパムメールは他人を誘導するような文言が入っているだけで、他のメールとは遜色ありません。しかし、誘導するような文言の兆候を数学的確率を自動的に割り当てることで人間も無視してしまうほどのニュアンスを分別することができます。
遺伝的アルゴリズムとプログラミングは、ソフトウェアの開発方法を根本的に変えています。遺伝的アルゴリズムとプログラムの世界では、プログラマーによってコーディングされるのではなく、問題を解決するために”進化”します。遺伝的プログラミングとは、ソフトウェアプログラム全体の構成、多くの場合LISP言語を作成することを指します。 LISP言語では、ほぼすべての処理記載について()で括るリストを基本要素として表現できます。今までは、処理なら処理、データはデータのようにどのような処理をしているのかについてはブラックボックスのような扱いでした。しかし、LISP言語ではそれぞれの処理で何をしているのかを分解することができるため、どのように解くのか、どこがボトルネックとなっているのかをソースコードに対しても追求していきます。遺伝的アルゴリズムとは、自然淘汰と自然遺伝学のメカニズムに基づく検索アルゴリズムです。 遺伝的プログラミングも遺伝的アルゴリズムも両方とも自動的に生成され、ダーウィンの原則によって改善するために複数の世代に育てられます。パックマンプレイプログラム、ロボットサッカーチーム、ネットワーク化された侵入検知システム、および他の多くをプログラムするために使用されました。