昨今注目を浴びているAI(人工知能)。このAIの根幹をともいえるのがアルゴリズムである。
現在のAIは、機械学習という仕組みで動いている。この機械学習とはデータをコンピューター(=機械)が解析し特定のパターンを見出す(=学習)するという手法のものだ。
機械学習では、人間がこのように解析しろという細かい指示をすることなく、アルゴリズムという特定の手順に基づいて膨大なデータを解析していく。このアルコリズムの優劣が、AIの性能を左右することからこのアルゴリズムに大きな注目が集まっている。
アルゴリズムには多くの種類があり、ディープラーニングもこのアルゴリズムの1つの種類だ。そして、AI (機械学習) で何かを認知・判断をする際には、このAIのアルゴリズムを選定が重要になってくる。というのもすべてのことに万能なアルゴリズムはなく、アルゴリズムによって得意な領域があるからだ。
マイクロソフトが発表しているアルゴリズムの選定方法では、実に多くのアルゴリズムが乗っている。
主要アルゴリズムを知る
アルゴリズムにはいろいろな種類があるが、目的別に使われているメジャーなアルゴリズムは以下である。
数値データをベースにしたカテゴリー予測 (分類)
例えば、
・クレジットカードで支払い不履行が起こる可能性
・アップセルしてくれそうなお客様の発見
・サブスクリプションサービスで解約しそうなお客様の発見
などは、テーブルデータ (Excelのような数値が入った表) をアルゴリズムが特徴を見つけて予測する。
このような分野は、不履行が起こる or 不履行が起こらないなどに分類するため、分類 (Classification) と呼ばれている。このような分野でよく使われているのが、決定木の発展形のテクノロジーであるランダムフォレストや勾配ブースティング木と呼ばれるアルゴリズムである。
マイクロソフトが発表しているアルゴリズム表では、2つのカテゴリーに分けるのと、3つ以上のカテゴリーに分けるのを区別しているものがあるが、最新アルゴリズムにおいては、基本的に3つ以上のカテゴリーに分けることに対応している。
数値データをベースにした数値予測 (回帰)
例えば、
・出荷量を予測する
・将来の不動産価格を予測する
といった、将来の数字を予測する場合も、テーブルデータ (Excelのような数値が入った表) をアルゴリズムが特徴を見つけて予測する。
このような分野は回帰 (Regression) と呼ばれ、基本的に分類と同じアルゴリズムが使われている。
数値データを異常データ検知
例えば、
・機械のログデータの中で異常値を見つける
という場合は、One Class SVMというサポートベクトルマシンというアルゴリズムがよく利用されます。
物体検知、画像判別
身近なAIといえば物体検知と画像判別でしょう。
物体検知とは、コロナ過ですっかり有名なった体温測定カメラがわかりやすい例です。広い領域の中から人間の顔を見つけ出しそこの温度をセンサーで測ります。
画像判別は、例えば、AIを使ったOCRである。手書きの文字をどのように認識するかというのをAIを使って行っている。
画像領域は、ディープラーニング (階層型ニューラルネットワーク、ニューラルネットワークを複数の層重ねたもの)の独壇場である。最近では、畳み込みニューラルネットワークというものが、最も高い認識率を誇るとされている。
動画生成
白黒映画を着色する、もしくは、ディープフェイクといわれる合成動画を作る際に使われているアルゴリズムは、敵対的生成ネットワークと呼ばれるディープラーニングをベースとしたアルゴリズムだ。
文章解析 (自然言語処理)
自然言語処理の領域も昨今、ディープラーニングが盛んに使われている。特に高い認識精度を誇るGoogleが開発した「BERT」というアルゴリズムは、ディープラーニングをベースにしている。
ということもあり、理解したほうが良いメジャーアルゴリズムは、
・ランダムフォレスト
・サポートベクトルマシン
・ニューラルネットワーク
・畳み込みニューラルネットワーク
・敵対的生成ネットワーク
ということになる。
アルゴリズムを理解する初級編:
初級編としては「機械学習図鑑」をお勧めしたい。この本では豊富な図表を使って、メジャーなアルゴリズムの手順を非常にわかりやすく解説している。
扱っているものは、決定木系のランダムフォレスト、ニューラルネットワーク、サポートベクトルマシンなどの基礎的なアルゴリズムを網羅しており、アルゴリズム初心者にも十分理解できる内容である。
アルゴリズムを理解する上級編:
上級者編としては「エンジニアなら知っておきたいAIのキホン 機械学習・統計学・アルゴリズムをやさしく解説」を薦めたい。
「機械学習図鑑」ではカバーしてなかった、より難しいAIのアルゴリズム、畳み込みニューラルネットワーク、敵対的生成ネットワークなどの解説まで行っている。機械学習図鑑を読んで理解したユーザーやそもそもアルゴリズムを若干知っているという人にはお勧めの本である。