機械学習・AI

機械学習の代表的なアルゴリズム19選

機械学習をはじめとしたAI技術がさまざまな場面で利用されるようになっており、データサイエンティストは、解析に使用するデータやアルゴリズムを調整して機械学習モデルを作成します。

機械学習を活用するには「教師あり学習」「教師なし学習」といった学習手法を選択し、レコメンド、需要予測、異常検知などの目的に応じてアルゴリズムを使い分ける必要があります。

今回の記事では、データサイエンスやAI開発実務でよく利用される「機械学習アルゴリズム」について特徴や用途などを中心に紹介します。

線形回帰

線形回帰は、統計分析の基本としてよく用いられている理論です。回帰分析では、変数xと相関関係のあるyの値を予測できます。1つの従属変数yと、1つあるいは複数の独立変数xの関係を予測するわけです。比較的単純なモデルである線形回帰は、売上予測や保険会社のリスク評価などのビジネス利用をはじめ、スポーツ分析や環境科学など多分野において使用可能です。線に沿わせてデータを分布させる手法で、直感的にデータを理解したり新たな洞察を生むためにも役立ちます。線形回帰では、説明したい変数や予測したい変数を目的変数と呼んでいます。また、予測したい変数を説明するための変数は説明変数です。目的変数と説明変数の関係性に、非線形な関係を紛れ込ませてしまうと非線形回帰となってしまいます。

最小二乗法

最小二乗法は、ドイツの数学者ヨハン・カール・フリードリヒ・ガウスが1820年代に発展した線形回帰の一種です。線形にしたデータが回帰直線ですが、実際の数値と線形にはズレが生じることがあります。これを最小にするための方法が、最小二乗法です。最小二乗法では、横軸xが同じ値のときの縦軸yの違いがデータと回帰直線の誤差として定義されます。この誤差を表現するとき、負の値を考えないようにするために二乗するプロセスがあるのが最小二乗法と呼ばれる理由です。誤差を最小にする計算方法は他にもありますが、最小二乗法を用いれば複数の解が導かれずに済みます。

正則化(Regularization)

正則化法は、機械学習における過学習を防ぐ手段としてよく用いられています。主に回帰法を拡張した手法で、学習データを広げ過ぎず、なおかつ過学習を起しにくく汎化性能を高めた学習モデルを構築できるのがメリットです。正則化法では、モデルを学習するときに複雑になるとペナルティが設定されます。そのため、訓練誤差にペナルティを加えた量が最小になるような学習モデルを求めなければなりません。ただし、正則化しすぎても十分な性能が出ない可能性があります。一般的に使用されることが多いのは、L1正則化とL2正則化です。L1正則化では特定のデータ量をゼロにして不要なデータを削除し、L2正則化ではモデルを滑らかにするためにデータサイズに応じてゼロに近づけます。

決定木

決定木(けっていぎ)は意思決定をサポートするために用いられるグラフで、回帰木や分類木とも呼ばれています。何かをするにあたって、「する」「しない」の問題解決を木構造にするのが特徴です。例えば屋外スポーツするには、天候の影響を受けます。まずは屋外スポーツを「する」か「しない」かの2つに分かれた枝が、晴れ・曇り・雨の場合ごとに「する」「しない」の枝に分かれます。さらに湿度何パーセント以上なら「する」「しない」、強風なら「する」「しない」といった具合に枝分かれしたグラフでデータを出し、最上部の「する」「しない」が全データのまとめとなります。複雑な意思決定データの表現を簡単に構造化するために、決定木は役立つのです。

ランダムフォレスト

ランダムフォレストは、カリフォルニア大学バークレー校の統計学者であったレオ・ブレイマンによって2001年に提案されたアルゴリズムです。数多くの決定木を用いて、平均あるいは多数決をとりたいときなどによく使用されます。複数の決定木で多数決をとると全体が分類器となり、より精度が高いデータを求めることが可能です。ただし使用する決定木は、似たようなデータだと意味がありません。異なるデータを基にして、異なる説明変数を分割候補として用いることで、決定木の多様性が出てきます。ランダムフォレストのメリットとしては、高速な計算ができること、出力結果を説明しやすいことなどが挙げられます。いずれも、決定木をベースとした手法だからこそのメリットです。

k近傍法(k-NN)

機械学習アルゴリズムの中でも、最も単純とされているのがk近傍法(ケイきんぼうほう)です。既に答えがわかっている問題を教師あり学習していく手法で、遅延学習として分類されています。k近傍法では、学習データをベクトル空間上にプロットしておきます。未知のデータが出てきたときには、距離が近いほうから任意でk個のデータを取得していくのです。最終的に、多数決によってデータが属するクラスを推定します。分類は距離に基づいておこなわれるため、ユーグリッド距離やマンハッタン距離など適切な距離を選ぶことが重要です。データセットの特徴に見合ったkを選ぶことも欠かせず、データセットの特徴やkの選び方が合っていないと答えが1つに確定しない可能性が出てきます。

ロジスティック回帰

ロジスティック回帰分析を用いると、複数のx要因が考えられるときにyという特定の事象が起こる確率を予測できます。多変量解析の一種であり、ある因子から判明していない結果を予測したいときに便利です。また、既に結果が出ているときの説明にも用いることができます。例えば、アルコール摂取量や喫煙本数と病気の発症有無との相関関係を調べ、まだ発見されていない病気を予測するなどはわかりやすい使用例です。ロジスティック回帰で得られる答えは、事象が起こる確率を示す判別スコアです。回帰分析の手法には重回帰分析もありますが、目的変数の値を予測できる重回帰分析に対して、ロジスティック回帰ではあくまでも特定の現象の有無を求める点に注意しておきましょう。

サポートベクターマシン(SVM)

サポートベクターマシンは優れた認識性能を発揮する教師あり学習モデルです。分類や回帰などの問題を解くのに役立ち、異なるクラスを境界線で明確に分けることができます。境界の種類は、2次元なら線、3次元なら平面、n次元なら超平面です。2つのクラス分けなら境界線で示されますが、3つ以上のクラス分けなら面で境界が示されるというわけです。サポートベクターマシンには、計算コストの小ささというメリットがあります。データが線形分離可能だからこそ、境界を示すときに必要なデータがサポートベクトルのみなのです。つまり、計算が不要です。SVMには、マージン最大化という方法で各クラスから最も遠い境界線を引くという特徴もあります。

ナイーブベイズ(単純ベイズ分類器)

ナイーブベイズは、確率論の定理であるベイズの定理を基にしたアルゴリズムです。教師あり学習モデルで、文書データの分類に用いると良い結果を求めることができます。与えられたデータから全ての推定の確率を計算し、最も確率の高い結果を出力できるのです。ナイーブベイズのメリットは、単純でありながら強力である点、データセットが大きくても有効な点にあります。高速な計算が可能で、少しのトレーニングデータで高い性能を出せる点もメリットです。特徴量が独立していると仮定しなければならないものの、重要ではない特徴量の影響はなかなか受けないというメリットも持っています。株価や災害といったリアルタイム予測、テキスト分類、レコメンドシステム、センチメント分析などへの応用にも便利です。

ニューラルネットワーク(NN)

ニューラルネットワークは、人の脳神経系ニューロンを数理モデル化したアルゴリズムです。教師あり学習と教師データなしの学習とがあり、誤差逆伝播法によってパラメータが調整されます。人が望む結果を出すためには、パラメータの調整が不可欠です。ニューラルネットワークにも種類があり、最も広く用いられているものにディープニューラルネットワーク(DNN)があります。ニューラルネットワークを多層に重ねた深層学習モデルで、大きな規模でも構築可能です。画像認識処理や自然言語処理でよく用いられている畳み込みニューラルネットワーク(CNN)は、FacebookやGoogleでの活用が有名です。

パーセプトロン

ニューラルネットワークの一種であるパーセプトロンは、1957年にアメリカの研究者が考えたアルゴリズムです。複数の入力に対して「0」か「1」のどちらかを出力する関数で、どちらの値にするかはしきい値によって決められます。入力した信号に結合荷重の積を足した数がしきい値より高ければ「1」、そうでなければ「0」を出力するわけです。複数のパーセプトロンを組み合わせれば、非線形領域の表現も可能になります。より複雑で高度な識別を行うのにも便利です。

マルコフ連鎖モンテカルロ法(MCMC)

マルコフ連鎖モンテカルロ法では、マルコフ連鎖を使用することによってモンテカルロ法が強化されます。ランダムにサンプリングをするモンテカルロ法では計算コストの高さや精度の低さが難点ですが、マルコフ連鎖を利用すれば問題点が改善されるのです。マルコフ連鎖モンテカルロ法が最も広く用いられているのは、多重積分の数値的な計算です。一様分布や正規分布とは異なる確率分布で、乱数を生成できるというメリットもあります。

主成分分析(PCA)

主成分分析は、多種類のデータを要約するのに便利な手法です。データの要約ができれば、データの特徴も見分けやすくなります。カテゴライズへの応用も可能です。次元の縮約と呼ばれることもある主成分分析は、全体を見通しやすい1つから3つくらいの次元に要約していきます。多変量で多次元なビッグデータでも情報を損ないにくく、全体のイメージを可視化していけます。さらに、理解しやすい形式にすることができるのが主成分分析の力です。

非負値行列因子分析(NMF)

非負値行列因子分析は、データの持つ重要な特徴を抽出するためによく用いられる手法です。行列を正の数、つまり非負値で因子分解すると特徴を抽出できます。主成分分析にも似たアルゴリズムの動きをするため、次元削減に用いることも可能です。主成分分析より理解しやすい成分に分解されるのもメリットで、複数の人の会話から元の成分を特定したいときなどにも有効です。ただし、成分と係数は常に「0」以上でなければなりません。

トピックモデル(LDA)

トピックモデルは、文書データからトピックを抽出して何かを説明するというモデルです。文書データ以外に、音楽や画像にも適用されています。トピックごとに単語などの出現頻度分布を想定すると、トピック同士で似た部分や意味を解析できるのです。これにより、より多くの人に潜在志向に基づく情報を届けたり、トピックの話題を時間変化で追跡したりといったことが可能になります。トピック分析の手法には、潜在的意味解析(LSI)、確率的潜在的意味論的分析(PLSI)、線形判別分析(LDA)などがあります。

K平均法(K-means)

K平均法は教師なし学習の代表格で、類似するインスタンスをクラスタに分類する手法の一種です。例えば、座標上に散らばったデータを仲間同士でまとめたいときなどによく用いられます。クラスタ分析は、ビッグデータを分析するときに頻繁に用いられる最も重要な手法です。教師データがない学習ですから、分類にあたっての基準や評価は与えられていません。そのため、まずはグループ分けの対象や分類の形式、分類に用いる対象間の距離、クラスタの合併方法などを選択する必要が出てきます。あらかじめ分類数を決めてからサンプルを分割するのが非階層クラスタ分析で、その代表的手法がK平均法です。

混合ガウスモデル (GMM)

クラスタ分析の手法の一種に、混合ガウスモデルがあります。データセットをクラスタごとに分けたうえで確率密度分布を得られるのがメリットです。与えられたデータは複数のクラスタから構築されており、クラスタごとにガウス分布に基づいた生成がされているはずです。こうした仮定から、混合ガウスモデルでは各クラスタがどのようなガウス分布で表現できるかを推定できます。新たなサンプリングをおこなったり、回帰分析やクラス分類の逆解析への応用も可能です。

自己組織化マップ(SOM)

自己組織化マップは、フィンランドの研究者であるコホネンによって提案されたニューラルネットワークアルゴリズムです。教師なし学習モデルで、高次元データを2次元平面上に非線形写像する手法として知られています。大きく分けて2種類ある自己組織化マップの1つは、大脳視覚野を基にしたオンライン学習モデルです。データが入力されるたびに学習されるため、後から入力されたデータが比重を占めやすくなります。もう1つはBL-SOMで、全データを各ニューロンに分類してからそれぞれのニューロンが同時学習をおこなうのが特徴です。

アソシエーション分析

アソシエーション分析は連関分析とも呼ばれ、同時に買物されるのが何かなどの分析をおこなうときに便利です。顧客ごとに蓄積された取引データを分析することで、合わせて売れている関係性や割合、そのルールなどを抽出することができます。同じ買物カゴに商品Aも商品Bも購入している確率の高さを発掘できることから、マーケットバスケット分析の別名も持っている手法です。アソシエーション分析の応用として、POSレジで支払いをしたときに次回使えるクーポンの発行などがあります。

協調フィルタリング

協調フィルタリングは、通販サイトなどでよく用いられているレコメンド手法です。ユーザーの行動履歴を分析したり、類似した嗜好を持つ別ユーザーの行動履歴からおすすめの商品を決めたりするのに役立ちます。「この商品を購入した人は、こんな商品もチェックしています。」といった案内も、協調フィルタリングの活用例です。購買データをベースに人と人の類似性を定義するのが特徴で、自分はまだ持っていないが興味を引かれるという意外性のある商品をおすすめするために役立ちます。

まとめ

今回は、機械学習アルゴリズムのなかでも特に有名な19の手法に絞り紹介しました。機械学習の実務では、目的や課題に応じてアルゴリズムを使い分ける必要があります。データサイエンティストやAIエンジニアを目指す場合は、実際に使いこなせるように勉強を進めましょう。

データサイエンティストを目指さない場合にも、機械学習の知識やスキルを持つエンジニアは「データエンジニア」や「SREエンジニア」といった職種において企業から優遇されます。

数学や統計についての理解がないとアルゴリズムを把握することは難しいですが、スキルアップすることで年収を上げることも夢ではありません。アルゴリズムの選択に迷った際は、チートシートや書籍を参考にするとよいでしょう。

関連記事Related Posts