データからパターンを自動的に学習し、予測や分類を行う技術
機械学習(Machine Learning)とは、大量のデータからパターンや規則性をコンピュータが自動的に学び取り、予測や分類を行えるようにする技術です。人間が「こういう条件ならこう判断する」というルールを一つひとつプログラムに書く代わりに、データそのものからルールを見つけさせるのが最大の特徴です。
身近な例で考えると、子どもが犬と猫を見分けられるようになる過程に似ています。「耳の形がこうで、鳴き声がこうなら犬」と細かく教え込まなくても、たくさんの犬・猫の写真を見るうちに、自然と特徴をつかんで見分けられるようになります。機械学習も同じで、たくさんの例(=データ)を与えると、その中の傾向を自分でつかんでいきます。
学習で作られた「判断のしくみ」をモデル(model)と呼びます。一度モデルを作れば、まだ見たことのない新しいデータに対しても予測ができます。迷惑メールの自動振り分け、商品のおすすめ表示、画像認識など、私たちの身の回りの多くのサービスで機械学習が使われています。上の図解は、機械学習が「学び方」によって3つに分類されることを一枚で整理したものです。
機械学習は「どうやって学ぶか」によって、大きく次の3つに分類されます。「どの分類に属するか」「正解ラベルが必要か」が見分けのポイントです。
・教師あり学習:正解ラベル(=答え)付きのデータを使い、入力から正解を当てる関係を学ぶ。例題と模範解答のセットで勉強するイメージ
・教師なし学習:正解ラベルのないデータから、似たもの同士のグループ分けや隠れた構造を自分で見つける。資料を「なんとなく似た者同士」に仕分けするイメージ
・強化学習:行動の結果として与えられる報酬(ごほうび)を手がかりに、報酬が最大になる行動を試行錯誤しながら学ぶ。ゲームで点数を稼ぐコツを練習で覚えるイメージ
| 分類 | 正解ラベル | 学ぶこと | 代表タスク |
|---|---|---|---|
| 教師あり | 必要(あり) | 入力→正解の対応 | 分類・回帰 |
| 教師なし | 不要(なし) | データの構造・グループ | クラスタリング |
| 強化 | なし(報酬を使う) | 報酬最大の行動方針 | 制御・ゲームAI |
見分けるポイントは「答え(ラベル)が用意されているか」です。答えがあれば教師あり、答えがなく構造を探すなら教師なし、答えはないが「報酬」という間接的なフィードバックで導くなら強化学習、と整理すると覚えやすいです。
なぜ機械学習が必要なのか、結論から言うと「人間がルールを書き切れない問題が世の中にはたくさんある」からです。
たとえば「迷惑メールを見分ける」プログラムを人が書こうとすると、「"安い" という単語が入っていたら迷惑」「送信者が知らない人なら迷惑」…と条件を列挙することになります。でも迷惑メールは無数のパターンがあり、条件を書き切ることは事実上不可能です。
機械学習を使えば、「迷惑メール」「通常メール」と正解のついた大量のメールデータをモデルに学ばせるだけで、人がルールを書かずに自動で判断できるようになります。
・画像認識(写真に何が写っているか)
・音声認識(話した言葉を文字にする)
・需要予測(明日の売上を予測する)
これらはすべて「ルールを手で書ける問題ではない」ため、機械学習が使われています。
機械学習の全体の流れは大きく3段階に分けられます。
① データを用意する:学習に使う「例と正解(ラベル)」の組を集めます。データが多く・質が高いほど、よいモデルが作れます。
② モデルを学習させる:データをモデルに与え、正解との差(誤差)が小さくなるようにパラメータ(=調整の数値)を繰り返し更新します。
③ 未知のデータで予測する:学習済みのモデルに、これまで見たことのない新しい入力を渡すと、予測や分類の結果が返ってきます。
なぜ「学習済みモデル」が重要かというと、一度作れば何度でも新しいデータに再利用できるからです。料理に例えると、「レシピ(=モデル)」を一度完成させれば、その後は食材(=新しいデータ)を変えて何度でも同じ料理が作れる、というイメージです。
それぞれの学習分類には、目的に応じたアルゴリズム(=学習の手順・方法)が用意されています。名前と「どの分類か・何をするか」を結びつけて覚えておくと整理しやすくなります。
教師あり学習の代表例:
・回帰分析:数値を予測する(例: 部屋の広さから家賃を予測)
・決定木:条件分岐(Yes/No)を木構造でたどって分類
・SVM(サポートベクターマシン):データを最もきれいに分ける境界線を引く
・k近傍法(k-NN):近くにある既知データの多数決で分類
教師なし学習の代表例:
・k-means(k平均法):データを k 個のグループ(クラスタ)に自動で分ける
・主成分分析(PCA):たくさんの特徴をなるべく情報を残して少数にまとめる(次元削減)
強化学習の代表例:
・Q学習(Q-learning):各状態でどの行動がどれだけ得かを表す値(Q値)を更新して学ぶ
・深層強化学習:強化学習にニューラルネットワークを組み合わせた手法(囲碁AIなどで有名)