ソフトウェアの世界において、近年、多くの利用範囲が生まれているのが、AIを活用した分野だ。AIとは何か?ソフトウェア開発上知っておくべき事項について、取り上げてみたい。
AIとは
AIとは、Artificial Intelligence(アーティフィシャル・インテリジェンス)の略称であり、日本語訳すると、Artificialは「人工的な」、Intelligenceは「知能/知性」という意味になる。
一般的に、言葉の理解や推論、問題解決など、人間にしか出来ないと考えられてきた知的行動を、人間に代わってコンピュータに行わせる技術や研究のことを言う。
1956年に、アメリカのダートマス大学で開催されたダートマス会議において、ジョン・マッカーシー教授によって提案された。
AIの歴史
AIは、1950年代からその開発が始まり、概ね三つの時代を経て進化している。
第1次AIブーム(1950年代後半~1960年代)
コンピュータを使い、明確なルールや解がある問題に対して、「推論や探索」を行い、迅速に答えが出せるシステムが開発された。ただし、複雑な要因が絡み合うような問題は解決できなかった。
第2次AIブーム(1980年代〜1990年代)
多くの条件を与えた上で、最適解を導き出せる、まるで専門家のような人工知能である「エキスパートシステム」が開発された。しかし、この段階においても、人がコンピュータに対して必要な情報をインプットする必要があった。
第3次AIブーム(2000年代〜現在)
AIが大量のデータ(ビックデータ)から、知識や法則性を得る「機械学習」が始まった。この時点でも、AIが判断する上で重要な要素は人間が与えなくてはならなかった。
しかし、2006年には、判断に際して重要な要素をAI自らが収集する「ディープラーニング(深層学習)」の技術が広まっている。
AIの代表的なアルゴリズム(処理手順)
AIシステムを構築する場合には、以下の三つのアルゴリズムが使われることが多い。
ニューラルネットワーク
生物の脳の中の信号伝達細胞である「ニューロン」の働きを手本にしたAIである。ニューロンは複数の神経細胞が複雑に接続されている状態になっている。他のニューロンから電気信号を受けると、ニューロンは興奮し、次のニューロンに情報を伝える仕組みになっている。
ニューラルネットワークでは、データをインプットする入力層と、そのデータを処理する中間層、処理結果を書き出す出力層に分かれている。
入力層に例題を与え、出力層に正解を与え続けていると、実施していない問題にも解答できるようになる。
遺伝的アルゴリズム
ダーウィンの進化論をもとに作られたAIのアルゴリズムである。生物は、環境に対応して、優秀な個体が生き残り、劣等な個体は淘汰される。さらに、個体は突然変異を起こして優秀な個体になることもある。
このアルゴリズムを利用して、膨大なデータから最適解を見つけることが出来る。
エキスパートシステム
ある分野の専門的知識をAIに学習させ、その情報を元に判断・予想するアルゴリズム。情報を蓄積する「知識ベース」とその情報を判断する「推論エンジン」、自然言語でユーザーと対話するための「インターフェイス」部分から構成されている。医療診断など複雑な条件から正解を判断する業務に向いている。
AIの利用分野
では一体、AIは具体的にどんな業務が出来るのだろうか?産業別に利用内容を概観してみたい。
・製造業 ・・・・不良品の検出や部品や原材料在庫の最適化など。
・農林水産業・・・作物の選別や農薬散布用ドローンの制御など。
・漁業・・・・・・養殖魚の給餌制御や漁獲高予測など。
・金融業・・・・・クレジットカードの不正検知や株価予測など。
・不動産業・・・・消費者に対する最適物件紹介や不動産価格診断など。
・小売業・・・・・需要予測や店舗の無人化など。
・医療・福祉・・・画像診断や介護用ロボット制御など
まとめ
AIの概要や歴史、AIの技術概要を説明してきたが、AIは、3度のブームを経て、着実に社会のツールになりつつあるが、未だ発展途上の技術分野であると言える。
しかし、第3のブームで起きた、ディープラーニング技術は、AIが「自立」して処理をすることが出来るようになり、大きな転換点を迎えたと言える。
当面は、特定分野での活用が深化しつつ、いずれ汎用的なAI活用の時代が訪れることが予測されるであろう。