機械学習(マシンラーニング)というとなんだか新鮮で目新しくカッコいい雰囲気を醸し出していますが、その正体は漠然としか知られていないように見受けられます。
今回は、機械学習(マシンラーニング)とは何ぞやということで、その正体を炙り出してみましょう。
Table of Contents
教師あり学習と教師なし学習
機械学習とはその名の通り、「機械が学習する」ことを指します。
何か特別なものを思い浮かべるかもしれませんが、統計学で出てくる「回帰分析」も機械学習の1つです。
回帰分析の本質は「既知の事実をもとに、未知の状態を推測する」点にあります。
回帰分析の場合、回帰式を導くために「既知の事実に関するデータ」が用いられます。このように法則を見出すために使われるデータを「教師データ」と呼ぶことがあります。
X1ならY1、X2ならY2、・・・というように、入力(X)と出力(Y)の組み合わせをいくつも教え込むことで、機械に学習させるわけですね。
「教師あり学習」に分類される機械学習
回帰
繰り返しになりますが、回帰分析の本質は「既知の事実をもとに、未知の状態を推測する」ところにあります。
単回帰分析、重回帰分析などありますが、通常は一種類の変数で結果を予測することは困難ですから、重回帰分析を用いるケースがほとんどでしょう。
統計学の教科書でも最初の方に学ぶ基礎的な手法です。
回帰分析も機械学習の1つなんですよ。ここ重要。
代表的な手法
線形回帰
- 線形回帰は、2つのデータ(例:勉強時間とテストの点数)の関係を調べる方法。
- データをグラフに点でプロット(散布図)して、その点全体の真ん中あたりを通る「まっすぐな線(回帰直線)」を引く。
- その直線を使って、片方のデータからもう片方のデータを「予測」したり、2つのデータの「関係性(どれくらい増えると、もう片方もどれくらい増えるか)」を知ることができる。
- 世の中のいろんな現象(例えば、気温とアイスの売上とか、身長と体重とか)の関係を調べたり、未来を予測したりするのに使われている、とても便利な考え方なんだ。
- 注意点
- これはあくまで「傾向」を見るものだから、予測がピッタリ当たるとは限らないよ。勉強時間以外の要素(得意不得意、体調とか)も点数に関係するからね。
- 直線からすごく離れたところに点があることもある。
ベイズ線形回帰
- ふつうの線形回帰:データに一番合う「一本のベストな線」を探す。
- ベイズ線形回帰:データに合いそうな「たくさんの可能性のある線」を考えて、それぞれの確率(どれくらいありそうか)を計算する。
- 結果や予測を「ピッタリこの値!」じゃなくて、「だいたいこの範囲だよ」と不確かさ(幅)と一緒に教えてくれるのが大きな特徴。
- ベイズ線形回帰は、結果に「どれくらい自信があるか」という情報も含まれるから、より慎重で現実的な判断をしたいときに役立つ考え方なんだ。
クラス分け
こちらも古典的な統計学に出てくる手法の1つです。
ロジスティック回帰分析などが有名でしょう。
重回帰分析と同様に、結果を予測するための変数は複数用いられることがほとんどです。
重回帰分析との違いは、予測結果が「クラスに分かれている」点です。
連続変数ではなくて離散変数になっている、とも言えますね。
もう少し具体例を挙げるなら、予測結果が「0か1か」や「AかBかCか」のような、二値変数あるいはカテゴリ変数になっています。
代表的な手法
ロジスティック回帰
- ロジスティック回帰は、「Yes/No」や「合格/不合格」のように、結果が2択になるものを予測するのに使う。
- まっすぐな線じゃなくて、S字カーブを使って、「Yes」になる確率(0%~100%)を予測する。
- 計算された確率と、決めておいた境目(例えば"50%")を比べて、最終的に「Yes」か「No」かを判断する。
- 天気予報の「降水確率」なんかも、これに近い考え方が使われているかもしれないね!
多クラス分類
- 多クラス分類は、物事を分類したいグループ(クラス)が3つ以上あるときに使う方法。
- 入力されたデータ(写真とか)を見て、それぞれのクラスに当てはまる可能性を点数(スコア)や確率で計算する。
- 計算した結果、一番高い点数(スコア)や確率になったクラスを、最終的な分類結果として選ぶ。
- 手書き文字の認識や、写真の自動仕分け、迷惑メールフィルター(迷惑メールか、普通のメールか、重要なメールか、みたいに分類する場合)など、身の回りのいろんな技術に使われているんだよ。
Decision Tree(決定木)
- デシジョンツリー(決定木)は、質問に順番に答えていくことで、**結論(分類や予測)**を導き出す方法。
- 見た目がフローチャートや逆さまの木のようになっている。
質問(ノード)、答えによる枝分かれ(ブランチ)、最終的な結論(リーフ)からできている。 - 人間にもわかりやすく、コンピューターがデータから自動で作ることもできる。
- 身近な意思決定も、実はデシジョンツリーみたいになっていることがあるかもしれないね!
ニューラルネットワーク
- ニューラルネットワークは、脳の神経回路をヒントにしたコンピューターのモデル。
- 入力層、隠れ層、出力層という層構造になっている。
- 層の中のニューロン同士が、重み(重要度)のついた線でつながっている。
- たくさんのお手本データで学習し、間違いながら重みを調整して賢くなる。
- 複雑なパターン認識が得意で、画像、音声、言語など、様々なAI技術の基礎になっている。
- ちょっと難しいけど、なんとなくイメージできたかな?
サポートベクターマシン(SVM)
- サポートベクターマシン(SVM)は、データをグループ分け(分類)する方法の一つ。
- グループ間に線を引くとき、境界線と一番近い点との隙間(マージン)が最大になるように、一番「余裕のある」境界線を引こうとする。
- その境界線の位置を決めている、一番大事な点たちのことをサポートベクターと呼ぶ。
- 「カーネルトリック」という技を使えば、直線で分けられない複雑なデータも分類できることがある。
- 分類問題でとてもパワフルな方法の一つとして、画像認識や文字認識、医療データの分析なんかの分野で活躍しているんだよ。
「教師なし学習」に分類される機械学習
クラスタリング
クラスタリングは、前述の「クラス分け(教師あり学習)」とは区別して使われます。
その大きな理由は、クラスタリングは「教師なし学習」であるためです。
クラスタリングをする際には、AとBはどの程度近いか、ということを数値化します。
「どの程度近いか」を測る方法は、素直に2地点間の距離を測る方法と根本は同じです。
三平方の定理を使うんですね。
直角三角形の斜辺cは、その他の辺の長さをaとbとしたときに、c2=a2+b2 で表されるというあれです。両辺の平方根を取れば c の値が a と b から導けますね。
この時の c の値を、ユークリッド幾何学にちなんでユークリッド距離などと呼びます。
右辺の変数は n 個まで拡張することができ(n次元まで拡張可能)、n個の変数であってもユークリッド距離を計算するときは平方根で計算されます。
情報圧縮
情報圧縮というと難しそうな印象を受けますが「顔認証技術」に使われるような手法です。
大量にある情報の中から、特徴を決めるための決定的な要素(主成分、特異値)を炙り出す手法、ともいえるでしょう。
無駄あるいは冗長なデータを省き、重要なデータのみに絞るために使われることがあります。
結果の予測に有用な変数もありますが、集めてもあまり使いどころのないデータもありますから、その区別をするということですね。
データや情報の優先付けにもなるため、将来のデータ収集の労力をどこに割けばよいか考えるヒントにもなります。
代表的な手法
主成分分析
簡単に言うと、「たくさんの情報(変数)の中から、データの『特徴』や『ばらつき』を一番よく表している『まとめ軸(主成分)』を見つけ出して、データをシンプルにする方法」だよ。
- 主成分分析(PCA)は、たくさんの変数を持つ複雑なデータを、より少ない「主成分」という新しい軸で要約する方法。
- データの「ばらつき」が最も大きい方向を第一主成分、次に大きい方向を第二主成分…として見つけ出す。
- データの次元を削減したり、可視化したり、他の分析の前処理として使われたりする。
- たくさんの情報の中から、大事なエッセンスを抜き出すための強力なツールなんだ。
特異値分解
すごく簡単に言うと、SVDは「どんな長方形の数字の表(行列)でも、3つの特別な行列(部品)の掛け算に分解する方法」だよ。
- 特異値分解(SVD)は、どんな行列(数字の表)も、3つの特別な行列(回転→伸び縮み→回転)の掛け算に分解する数学の強力なテクニック。
- 真ん中の行列に含まれる「特異値」が、データの各方向の「重要度」を表す。
- 主成分分析(PCA)と密接に関係している。
- 画像圧縮、推薦システム、ノイズ除去など、データ分析やAIの様々な分野で基礎となる重要な技術。
- 数学の道具だけど、データを理解したり、うまく扱ったりするために、コンピューターの世界では欠かせないものなんだよ。
「教師あり学習」と「教師なし学習」の両方に分類される機械学習
レコメンデーション
イメージしやすいのは、Amazonや楽天のようなEコマースのサイトで「あなたへのオススメ」として自分が興味のありそうな商品が表示される仕組みです。
代表的なものに「協調フィルタリング」があります。
協調フィルタリングとは、「Aさんに類似した人が持っている商品のうち、Aさんはまだ持っていないものは、Aさんが欲しい商品だろう」という仮定に基づいた手法です。
「Aさんに類似した人」の定義が必要になりますが、この部分に例えばクラスタリングのような「教師なし学習」の手法を用いることもできるでしょう。
同じクラスターにいる人達が、商品Xを買う確率をはじき出すには、過去の購買履歴のデータを用いて、回帰のような「教師あり学習」の手法を用いるのがシンプルです。