Contents
機械学習モデルとは
機械学習モデルとは、コンピュータが理解可能な形でデータや値を入力することで、コンピューターが何かしらの評価・判定を下し、値などの結果を出力するものであり、機械学習やAIにおいて根幹を担う頭脳のようなものです。そして近年では、ディープラーニング (深層学習) の台頭により、実に様々な機械学習モデルの精度が大幅に向上しています。例えば、人間が話している音声言語を受け取りそれを文字に起こすモデルは、Siriなどに代表される音声認識アシスタントとして、道の画像の中で車線や他の自動車、その他障害物を認識するモデルは自動運転として実用的に応用されています。
機械学習モデルが重要な理由
機械学習モデルは、データ分析の基礎となるものです。機械学習モデルがなければ、コンピューターは「1+1=2」といった単純な四則演算のような計算しかできず、データに合った柔軟かつ正確な結果を得ることは到底困難なことになるでしょう。また、機械学習では履歴などの既存のデータから複雑な関係性を見出し、新たな知見を得て情報を処理するため、データ量が多ければ多いほど、正確な結果が得られることが期待されます。最新のニーズに合わせて迅速かつ柔軟に対応していかなければならない現代では、機械学習モデルは欠かすことのできないデータ分析の代表的手法となりました。
人間が経験をもとに学習して未知の事柄に対して経験則として応用できるようになるのと同様に、コンピューターが何度も同じデータを解析し、統計的な情報を習得することで、「概念」を理解するようになります。しかし、そのような機械学習モデルを構築するためには、膨大なサンプルデータが必要です。例えば子供に言葉を教える作業などはこれに似ています。猫の絵がついたカードを見せて「これは猫」ということを毎日繰り返し子供に教え込んでいるうちに、子供は「猫」という「概念」が次第に分かるようになっていきます。幸運なことに人間は特徴を掴むことに長けているので、同じカードを繰り返し子供に見せるという単純作業だけで、子供は「猫」という「概念」を理解するようになります。しかし、機械はそのような賢さを備え付けておりません。機械には最低でも様々な色や形をした数百種類の猫の画像を、あらゆる角度から見せて初めて「猫」という概念が分かるようになります。そのために用いる元データを教師データと言います。すなわち、サンプルデータをどれほど多く集められるかが、機械学習モデルの精度の鍵と言えます。
しかし、次の章で解説するように、機械が概念を理解するための元データとなる教師データが存在しない機械学習の手法も存在します。
教師あり学習と教師なし学習
そもそも機械学習の手法は大きく分けて,学習データが存在する教師あり学習と学習データが存在しない教師なし学習の二種類に分けられます。
- 教師あり学習:人間が与えた正解を元にモデルを訓練させ,観測データから将来を予測する規則を生成 (例:競馬の勝ち馬予測など、先にそれぞれの正解を学ばせている)
- 教師なし学習:観測データだけを対象に分析を行い、入力データや隠れたパターンや固有の構造を発見 (例:大量のデータを入れて,それらを数種類のグループに分類させるなど)
モデルの精度
構築されたモデルの良し悪しを図る指標として、「精度」という概念があります。それまでの学習の経緯でモデルに見せたことがない新規データのテスト問題で、モデルが実際にどの程度良い出力をしているかというテストです。通常は元々あるデータを学習 (訓練) データとテストデータに分けて、テスト用のデータセットでは学習させずに最後にモデルの良し悪しを判別するためにテストするという一連の流れで行われます。
一括りに精度といっても、モデルの種類や用途によってその精度の尺度も様々です。例えば画像に猫があるかどうかを判別するための分類器であれば、テスト問題の写真10枚中8枚は正解、残りの2枚が不正解だったので、正解率80%という一つの明確な指標を簡単に出せます。
しかし、全てのことがそのように単純に上手くいくとは限りません。今回の二択の分類のケースでは、間違いの中にも間違えるパターンが2通りあることに気が付きます。猫がいるのに猫を見逃すパターンと、猫がいないのに猫がいると錯覚するパターンです。正解する方も同様に2パターンあります。猫がいるときにいると正答するパターンと、猫がいないときにいないと正答するという2パターンです。
さらに猫がいるかどうかの二択の分類器ではなく、仮に値段のような数値を予測するモデルの場合、ドンピシャで明日の価格は1056円みたいに当てた場合のみ正解としてしまうとハードルが高すぎます。この場合は正解から平均してどれだけ離れた値を予測するかをベースにモデルを評価します。代表的な指標としてRMSE (平方平均二乗誤差) やMAPE (平均絶対誤差率) などがあります。また、”どれだけ”離れているかの定義にしても、価格が何円乖離したのかという「絶対値」と、何パーセント乖離したかという「比率・割合」があります。「絶対値」の場合は前者のRMSEが、「比率・割合」の場合は後者のMAPEがモデルの精度を表す指標となります。
モデルの汎用性
モデルの汎用性とは、あるシチュエーションで構築されたモデルが他のケースにどれだけ応用が利くかを表す指標です。例えば一軒家の値段を予測するモデルを群馬のデータだけをベースに作ったとします。この群馬モデルでニューヨークの家の値段を正しく予測することは可能でしょうか。何となく答えに想像はつくとは思いますが、予測は非常に困難です。なぜなら、一軒家の土台となる地価や、もっと言うと物価及びこれらのインフレ率が地域によって全く異なるからです。同様に、群馬の一軒家の価格予測モデルを日本全体の一軒家の価格予測モデルに転用するのも困難です (逆の場合は、群馬は日本に含まれるのである程度汎用可能な可能性あり) 。したがって、モデルを作る際には実際に現場でどのような場面で使われるかを想定しながら、シチュエーションに合致した適切な学習用のデータを集めて起こりうる変化を想定しながらモデルを作っていく必要があります。現在は群馬のデータしか集められないが、将来的にはニューヨークやロンドンなどでも応用したいと思うのであれば、汎用性を担保するような項目や変数を工夫して組み込む必要があります。
教師あり学習
先ほど教師あり学習と教師なし学習の違いについて軽く触れましたが、ここでは改めて詳しく教師あり学習について説明します。
教師あり学習は、トレーニングデータや教師データなどと呼ばれる正解となる学習データをベースに学習させる手法です。教師あり学習のアルゴリズムは、すでにある一連の入力データとそれに対する応答(出力)を用いてモデルを訓練し、新たなデータへの応答を証拠に基づいて合理的に予測できるモデルを構築するためのものです。したがって、予測しようとする事象について、既存の応答(出力)データがある場合は、教師あり学習を使用します。
教師あり学習では、分類や回帰の手法を用いて予測モデルを作成します。
分類
分類手法では 、「アリかナシか」・「はいかいいえか」・「AかBかCか」といった離散的な応答を予測します。例えば、新着メールが迷惑メールか否か、腫瘍が癌の疑いがあるかどうか、といった場合の分類です。分類モデルは、データをカテゴリーに分類するための学習を行います。用途としては、医療画像診断、音声認識、国債や社債といった債権の信用評価などが挙げられます。
分類を実行するための一般的なアルゴリズムには、 サポートベクターマシン(SVM)や決定木分析、k 最近傍法、単純ベイズ、判別分析、 ロジスティック回帰分析、ニューラルネットワーク等が代表的手法として挙げられます。
以下では、それぞれのアルゴリズムについて紹介及び解説していきます。
サポートベクターマシン (SVM)
サポートベクターマシン (SVM)は、二項分類や回帰に使用できる教師あり学習のアルゴリズムです。カーネル法と呼ばれる機械学習アルゴリズムのクラスに属し、カーネルマシンとも呼ばれています。サポートベクターマシンは、データ中の2つのクラス間の分離マージン(2つのデータを分離する境界と各データとの距離)を最大化する超平面により、分類タスクを実行します。サポートベクターマシンは、現在知られている手法の中でも認識性能が優れた学習モデルの一つで、自然言語処理、音声認識、画像認識、コンピュータビジョンなどのアプリケーションでよく使用されます。
決定木分析
決定木分析とは、目的の特徴が分かりやすく現れるよう、ツリー構造を用いて分類、回帰を行う機械学習の手法です。分類の結果がツリー構造で可視化されるため、視覚的に目的変数と関係が強い要因を把握したり、その特徴が最も現れる条件ルールを把握することができます。
決定木の予測精度 (汎化能力) を向上させる機械学習の手法としては、ランダムフォレストやブースティングがあります。ランダムフォレストは、決定木を1つのみ生成するわけではなく、データの一部から決定木を生成し、学習に使用するデータセットを何度も入れ替えることで多数の決定木を生成し、最後に得られたすべての決定木の結果を統合し評価する手法です。これにより学習を複数回行うことができるため、全体の予測精度を向上させることが可能です。いわゆるブートストラップ法を決定木分析に応用したような形です。ブースティングはすべてのデータあるいは一部のデータでまず暫定的な決定木を生成し、その予測結果で間違って予測されたデータの重みを重くして決定木を更新することで、その間違ったデータをうまく予測できるようにしていきます。この調整を繰り返して複数の決定木を生成し、最後に結果を組み合わせることで予測精度を向上させます。
k 最近傍法
k 最近傍法(K-Nearest Neighbor Algorithm) は教師あり学習の中でもシンプルなアルゴリズムの一つです。ある未知のデータが、データセットの中から類似するk個それぞれのクラス(グループ)の中でも最も数が多いクラスに、多数決の方式でデータを分類します。このアルゴリズムは、クラスター数が既知の場合、大規模データセットの高速クラスタリングにおいて有効であり、ECサイトの商品のレコメンドシステム等にも採用されていました。
単純ベイズ
単純ベイズは、特徴量が独立していると仮定した上でベイズの定理を活用することが基となっています。単純ベイズのメリットとしては、学習データが少ない状態でも分類に必要な特徴を推定することが可能であること、高速に処理をするため少ない負荷で実行可能なこと、重要でない特徴量の影響を受けにくいことが挙げられます。実例として、電車の混雑状況や、洪水等の災害予測、記事の自動カテゴリ(政治・スポーツ等)分類等があります。
判別分析
判別分析では、データの特性から特定の性質を持つ集団とそうでない集団という二つのグループに分類する手法です。判別分析はマーケティング等で利用されており、「購入者」と「非購入者」や、「リピーター」と「一度のみの購入者」等のその境界を隔てている原因を調査するために使用されています。
ロジスティック回帰
ロジスティック回帰分析は、目的変数が質的であり、説明変数が量的である多変量解析を行う際に有効な手法です。ロジスティック回帰分析では、ある事象が発生するかしないか、その事象が発生する確率を予測します。質的な目的変数として例えば、「賛成か反対」か、「選挙で当選したか落選したか」、「商品を購入したか購入しなかったか」などが使用できます。 これらの「Yes or No」で分類される目的変数は、「Yes」の場合は1、「No」の場合は0という [0,1] で表されることが一般的です。したがって、事象発生確率を予測するロジスティック回帰分析の目的変数の値の取りうる範囲は0~1(0%~100%)となります。目的変数の値(確率)が0.5より大きい場合はその事象が発生すると予測され、0.5を下回るとその事象は発生しないと予測されます。目的変数が2値である場合には二項ロジスティック回帰分析が、3つの値以上の場合は多項ロジスティック回帰分析が、順序変数である場合には順序ロジスティック回帰分析が利用されます。
ニューラルネットワーク
ニューラルネットワークとは、人間の脳内の神経細胞(ニューロン)のネットワーク構造を人工的に模し、問題解決能力を持つよう数学モデルで表現したものです。シナプスの結合により複数の相互に接続する人工ニューロン(ノード)から構成される層(隠れ層)を多層組み合わせることで学習を行います。ニューラルネットワークは、複雑な関数近似をしなければ分類や回帰ができない場合においても、関数近似を行うことができるという特徴をもっています。ニューラルネットワークは画像認識、音声認識、パターン認識、データ分類、未来の予測など、ありとあらゆる場面において活用されており、例えば電力会社の電力網の負荷を正確に予測した発電効率を最適化、ATM による小切手に記載された口座番号と預金額の読取、腫瘍の良性か悪性かの分類等の実例があります。
このニューラルネットワークのノードで構成される層が深く、深層にまで渡るアルゴリズムをディープラーニング(深層学習)と呼びます。
回帰
機械学習における回帰手法では、連続的な応答を予測します。例えば、売上予測、需要予測、来店者予測、株価予測、経済分析、温度予測、機器の故障までの時間、電気負荷予測やアルゴリズム取引等、用途も多岐に渡ります。
一般的な回帰アルゴリズムには、線形回帰、非線形回帰、決定木分析、ニューラルネットワークなどが含まれます。また、過学習を防ぐ手法として正則化もよく使われます。
線形回帰
まず回帰分析とは、目的変数(従属変数)を複数の説明変数(独立変数)を用いて予測・説明することです。一般的に、目的変数とは予測・分析したい出力データ、説明変数は予測・分析するために用いる入力データのことを指します。線形回帰モデルの一般的な式は次の形式です。
y=β0+∑βiXi+ϵi(yは応答変数、Xは予測子、βは線型方程式の係数、ϵは誤差項)
線形回帰では、応答変数の最適な予測を行うために、1つ以上の独立した予測子変数を使用し、線形方程式の係数を推定します。線形回帰は一般的に、1つの応答変数に対し1つの予測子(説明変数)のみをもつ単回帰、複数の予測子をもつ重回帰、複数の応答変数のためのモデルである多変量回帰などのタイプに分かれます。
非線形回帰
非線形回帰では、連続する応答変数と1つ以上の予測子変数との間の非線形な関係を表す方程式を生成し、新しい観測値を予測します。
y=f(X,β)+ϵ
線形パラメータとの関係を適切にモデル化できない場合、すなわち線形回帰では正確に予測することができない場合に、非線形回帰を使用します。非線形回帰モデルは、パラメトリックであると見なされ、モデルは非線形回帰として記述されます。その他のノンパラメトリック非線形回帰には機械学習の手法が使用されます。例えば、SVMを回帰に応用したSVR (サポートベクター回帰) などが代表的手法の一つとして挙げられます。パラメトリック非線形回帰は、応答変数(目的変数)を、非線形パラメーターと1つ以上の説明変数の組み合わせとして関数化します。これは1変量 (1つの応答変数) または多変量 (複数の応答変数) どちらでも対応可能です。このパラメータは指数関数、三角関数、べき関数、あるいはその他様々な非線形関数を採用することができます。
正則化
正則化は、機械学習においてモデルの学習のために使われ、特に過学習を防ぎ、汎化能力を高める目的で使用されます。過学習とは、過剰適合とも呼ばれ、学習データでは精度の高い評価を出していたモデルが、テストデータには適合できず、精度が低く他のデータには応用ができないモデルとなってしまうことを指します。これを汎化ができていない状態とも言います。正則化では、モデルが複雑過ぎることやなめらかでないこと等に、ペナルティという形で情報を追加することで過学習を防ぎ、汎化能力を高めます。正則化を施した線形回帰としては、リッジ回帰、LASSO回帰等があります。
教師なし学習
教師あり学習を説明したときと同様に、教師なし学習についてもここで改めて詳しく説明します。
教師あり学習と異なり、教師なし学習は 正解となる学習データが存在しないため、学習データに正解を与えない状態で学習させる学習手法です。データに内在する隠れたパターンや固有の構造・分布を見出すことを目的とした場合に用いられます。ラベル付けされた応答を持たない一連の入力データから推論を導き出すために用いられます。
教師なし学習の代表的な手法としては、クラスタリングや次元削減などが挙げられます。
クラスタリングは、最も一般的な教師なし学習手法であり、データ内の隠れたパターンやグループ構造を発見するために用いるものです。 例えばA・B・Cという特徴を持つデータが無造作に配置されていた場合、人間であれば正解を示さずともAグループ・Bグループ・Cグループとグルーピングできます。教師なし学習のクラスタリングを用いることで、人間と同様に、コンピュータも各特徴を手掛かりにグルーピングすることが可能なのです。この手法は、遺伝子配列解析、市場調査、および物体認識など、様々な分野に応用されています。
クラスタリングを実行するための一般的なアルゴリズムには、k平均法および階層クラスタリング、混合ガウスモデル、隠れマルコフモデル、ファジィc 平均クラスタリングなどが採用されます。ここでは、階層クラスタリングと、非階層クラスタリングの代表的手法のk平均法のみを解説します。
k平均法
k平均法(K-means clustering)とは、非階層クラスタリングの最も有名な手法の1つです。k平均法は、 最初に指定したクラスタの数だけ「重心」をランダムに指定し、その重心を基準にクラスタを分けていくという手法です。 まずデータを定められたk個のクラスターに分けた後、各クラスターの重心と各データポイントとの距離を計算し、距離が一番近いクラスターに割り当て直す、というプロセスをk個のクラスターが変化しなくなるまで行い、分類する手法です。ただ、k平均法は最初のクラスターのランダムな分割に結果が大きく依存するため、 同じ母集団でも計算する度に結果が少し変わる、言い換えると、 1回のk平均法で最良の結果とならない可能性があることに留意しなければなりません。 より望ましい計算結果を得るためには、初期値を変えて何度か計算を実施し、それぞれのクラスター内の平均距離が最小になるものを選ぶなど、分析結果が初期値に依存しないような工夫が必要となります。
階層クラスタリング
階層クラスタリングとは、データ内のクラスター数が事前には分からない場合において有効なクラスタリングの手法です。まず、N個のデータが含まれるデータセットがあり、それぞれ1つのデータのみで構成されるN個のクラスターがある状態が初期状態として始まります。そして、このN個のクラスターの中で最もこの距離の近い2つのクラスター統合します。これが繰り返されていき、全ての対象が1つのクラスターに統合された時点で終了します。このプロセスで作成されたものをツリー化したものを樹形樹(デンドログラム)と呼び、1つのクラスターの集合ではなく、あるレベルのクラスターが次のレベルでクラスターとして加わる多重レベルの階層を表します。
樹形図を完成させることによって、視覚的にデータの関係性を把握することができます。そのため、サンプル数がそこまで多くない集団に対しては有効なクラスタリングです。例えば、売上金額を参考に取引先について階層クラスタリングを行えば、クラスターごとに今後の取引の進め方などを検討することができるでしょう。同様に、顧客アンケートの内容に応じて商品をクラスタリングすることで、似た商品の売上傾向などを視覚的にとらえることも可能です。
階層クラスタリングを行う場合、サンプル同士が何をもって「似ている(もしくは似ていない)」と判断するかによって計算方法が異なります。階層クラスタリングの代表的な計算手法としては、ウォード法、群平均法、最短距離法、最長距離法などがあります。
コメントする