プログラムを組んだ経験があれば「アルゴリズム(algorithm)」は、馴染み深い言葉でしょう。人工知能は、パターン認識と自動処理のために、プログラムで計算をして言語や画像などを処理しています。処理する領域によって複数のアルゴリズムがあります。
人工知能に使われるアルゴリズムの処理と特徴について、基本知識と概要を解説します。
人工知能に用いられるアルゴリズムとは
一般的にアルゴリズムは「計算方法」を意味しますが、広い意味では「問題解決の手法や手順」です。人工知能に用いられるアルゴリズムとは、どのようなものでしょうか。
人工知能はアルゴリズムでどのような処理をするか
人工知能には「強いAI」と「弱いAI」があります。強いAIは、人間のようにみずから思考する能力と意識を持ち、人間を超えると考えられていますが、現状では実現できるかどうか研究者たちの見解が異なります。
したがって、ここでは人工知能を、計算処理を基盤とした現実的な機能として考えます。このとき人工知能が認識できるデータと、アルゴリズムによって解決できる範囲には以下があります。
- 数値:天気予報、販売や株価の予測、異常検知や予知保全、健康状態の追跡など
- 言語:翻訳の自動化、チャットボットによる応答、文章の作成支援など
- 音声:音声認識、音声データからテキストの書き起こしなど
- 静止画や動画:顔認識、OCRによる手書き文字の認識、自動運転、CG制作など
人工知能のアルゴリズムは構造化されたデータを扱うため、音声や画像などは数値に置き換える必要があります。数値化されたデータは機械学習で特徴の抽出とパターンやモデルを構築し、その後は自動的に認識処理をします。
人工知能は、人間と同じようにデータによって言語や空間などをパターン化して認識しています。ただし、統計学などの計算が用いられている点で人間とは異なります。
人工知能のアルゴリズムに必要な特徴量と次元削減、機械学習による分類
人工知能が計算するときに欠かせないデータが「特徴量」です。特徴量とは、人工知能のアルゴリズムが処理できるように、対象の特徴を数値化した情報を呼びます。
特徴量は多ければ多いほどよいというわけではありません。特徴量が多すぎると、精度が悪くなることがあります。したがってデータを圧縮したり可視化したりするために、「次元削減」が行われます。次元削減とは、データの損失がない状態を維持しつつ、たとえば3次元の情報を2次元にすることです。
人工知能を機械学習の側面から整理すると、次のように分類されます。
- 教師あり学習
- 教師なし学習
- 強化学習
- ディープラーニング
最後のディープラーニングは他の学習方法と重なりますが、この分類をもとに、基本的な教師あり学習と教師なし学習を中心に使われているアルゴリズムを解説します。
教師あり学習に使われるアルゴリズムの処理と特徴
教師あり学習のアルゴリズムには、大きく分けて「分類」と「回帰」があります。それぞれの主要なものを簡単に解説します。
ランダムフォレスト
分類における代表的なアルゴリズムで「決定木(けっていぎ)」を利用します。
決定木では、閾値を設定して分類を処理します。特徴ベクトルの目的変数をクラスとして、特徴量によってデータのクラスを決めます。データが閾値の条件を満たす場合にはYes、満たさない場合にはNoによって枝分かれさせ、単一の根ノードから中間ノードをつないで、葉ノードに枝分かれするエッジ(枝)による樹形図を作成することが特徴です。
ランダムフォレストでは、決定木によって導かれた複数の結果から、多いものを選んで最終的な出力を決めます。精度の悪い結果を除外して全体の精度を維持します。
ロジスティック回帰
ロジスティック回帰も分類のためのアルゴリズムです。線形回帰を応用しているため回帰という名称ですが、実際には分類に使われます。
目的変数が「Yes(=1)」もしくは「No(=0)」になる問題を基本的に扱い、数字で表せる量的変数から数値で表せない質的変数を予測する際に、目的変数が「1」になる場合を予測します。重回帰分析では1以上の数値になることがありますが、必ず0から1の範囲になるため、結果を理解しやすいことが特徴です。
Elastic Net
回帰のアルゴリズムです。機械学習では、学習のしすぎによって未知のデータに対応できなくなる過学習が発生することがあります。Elastic Netに使われているリッジ回帰とLasso回帰は過学習を防ぐために行う正則化を適用しています。したがって、ロバストネス(外部の影響で変化を阻止する内的な仕組み)と予測の性能が高い特徴を持っています。
サポートベクターマシン(Support Vector Machine:SVM)
サポートベクターマシンは、分類と回帰の両方で利用できるアルゴリズムです。しかし、分類と回帰で計算方法は異なります。
分類においては、複数の軸でクラス分けして、外れ値のデータ消失を防ぎます。識別能力が高く、非線形な識別を簡単に実行して、精度の高い結果を出せることが特徴です。
回帰の場合は、サポートベクター回帰(Support Vector Regression)といい、変数が多い非線形な問題解決の手法になります。重みの最小化と誤差の最小化によって学習し、誤差の小さい結果を無視します。
教師なし学習に用いられるアルゴリズム
教師なし学習では、正解データを使わずに学習します。コンピュータ自身がデータから特徴量を抽出し、パターンやモデルなどを構築します。教師なし学習の代表的なアルゴリズムは、クラスタリングです。
クラスタリング
与えられた膨大なデータをクラスタというグループで分類します。クラスタリングは非階層と階層に大きく分かれます。
代表的なアルゴリズムを挙げます。
樹形図
階層クラスタリングの手法で、似ているものを順にまとめてクラスタにします。最終的には枝分かれしたチャートで表現されます。クラスタ間の距離を測定するには、ウォード法、群平均法、最短距離法、最長距離法があります。
k平均法(k-means)
非階層クラスタリングで、データ領域から代表を発見します。決められた「k」個のクラスタから平均(means)を用いて分類することから名付けられました。
DBSCAN(Density-based spatial clustering of applications with noise)
ある空間の点集合に対して、密接な点をクラスタにまとめます。k平均法では最初にクラスタ数を決める必要がありますが、DBSCANでは決める必要がありません。
主成分分析
多変量解析の手法のひとつで、マーケティングデータの分析などに利用されます。人工知能の分野では、次元削減のためのアルゴリズムとして使われます。相関のある多数の変数から、相関のない少数で全体のばらつきを示す主成分を導き出します。
強化学習に用いられるアルゴリズム
強化学習は、設定された環境でエージェントが最大の報酬(スコア)を獲得するように学習させる方法です。ディープラーニング(深層学習)以前には、Q-learning、SARSA、モンテカルロ法といったアルゴリズムがありました。Q-learningが主流で、この手法では行動価値関数であるQ関数を学習することにより制御します。
ディープラーニング登場後、強化学習と融合した「深層強化学習」が使われるようになりました。アルゴリズムにはQ関数にディープラーニングを使ったDQN(Deep Q-Network)、2つのQ-NetworkによるDDQN (Double DQN)があります。
さらにDDQNの精度を高めるために以下のようなアルゴリズムが登場しました。
- Dueling DQN
- Prioritized Experience Replay
- A3C(Asynchronous Advantage Actor-Critic)
- TRPO (Trust Region Policy Optimization)
- GAE(Generalized Advantage Estimator)
- UNREAL(UNsupervised REinforcement and Auxiliary Learning)
- PPO(Proximal Policy Optimization)
上記以降のアルゴリズムには、以下があります。
- Rainbow
- Ape-X
- R2D2(Recurrent Replay Distributed DQN)
ディープラーニングに用いられるアルゴリズム
ディープラーニングによって機械学習は大きく進歩しました。ディープラーニングは、ニューラルネットワークという脳のシナプスの仕組みを模倣した仕組みを使い、多層化することで精度を向上させています。
ディープラーニングのアルゴリズムには、CNN(畳み込みニューラルネットワーク)、RNN(再帰型ニューラルネットワーク)があります。また、RNNは長い時系列データを扱えなかったため、3つのゲートとメモリセルによって改良したLSTM(Long Short Term Memory)が生まれました。しかし、その後Attention、Transformerという手法が主流になっています。
まとめ
人工知能のアルゴリズムには、数学の統計的な知識も必要です。基礎知識を整理しましたが、ビジネスでG検定やE資格などを取得して、AIエンジニアやデータサイエンティストなど人工知能を扱うプロをめざす場合には、人工知能で実現したいことによって必要なアルゴリズムを深く学習して究めるとよいでしょう。