機械学習とは
機械学習とは、人間が細かいルールを全部書かなくても、
データからパターンや判断基準を学ばせる技術
ざっくり言うと、AIという大きな分野の中に機械学習があり、
機械学習の中にディープラーニングがある、という位置づけ。
例:迷惑メール
🔷 従来のプログラム
本文に、無料・当選・今すぐが入っているなら迷惑メールのようなルールを人間が作成
🔷 機械学習の迷惑メール対策
過去の正解データから“迷惑メールっぽさ”のパターンを数値的に学んで判断している
つまり、
ルールを人間が書く
→ データからルールっぽいものを機械に見つけさせる
という発想。
G検定向けには、こう覚えるといい。
機械学習 = データから規則性を学び、未知のデータに対して予測・分類・判断する方法
ポイントは 未知のデータ。
学習済みのデータだけ当てられても意味がなくて、初めて見るデータにも使えること、つまり 汎化性能 が大事。
例:
| やりたいこと | 機械学習での扱い |
|---|---|
| 家の広さから価格を予測 | 回帰 |
| メールを迷惑/通常に分ける | 分類 |
| 顧客を似た者同士で分ける | クラスタリング |
| ゲームAIが勝つ行動を覚える | 強化学習 |
教師あり学習
正解つきデータから学ぶ方法。
例のように、あらかじめ「答え」が付いている。
例:
| 入力データ | 正解 |
|---|---|
| メール本文 | 迷惑メール |
| 画像 | 猫 |
| 面積・駅距離・築年数 | 家賃 |
代表例は2つ。
とりあえず、分類と回帰を覚えること。
| 種類 | 内容 | 例 |
|---|---|---|
| 分類 | カテゴリを当てる | 迷惑メール/通常メール、犬/猫 |
| 回帰 | 数値を予測する | 家賃、売上、気温 |
教師なし学習
正解なしデータから構造を見つける方法。
答えなしで、「似ている」「まとまり」「外れ値」を探す。
たとえば、顧客データに「優良顧客」「離反しそうな顧客」みたいな正解ラベルがない状態で、
似た特徴を持つ人たちをグループ分けする。
代表例は3つ。
とりあえず、クラスタリングと次元削減と異常検知を覚えること。
| 種類 | 内容 | 例 |
|---|---|---|
| クラスタリング | 似たデータをグループ化 | 顧客分類、記事分類 |
| 次元削減 | データの情報を保ちながら圧縮 | 可視化、特徴量圧縮 |
| 異常検知 | 普通と違うデータを見つける | 不正検知、故障検知 |
強化学習
行動して、報酬をもとに学ぶ方法。
AIに試行錯誤してもらい、報酬を最大化する学習方法です。
教師あり学習のように「この入力の正解はこれ」と毎回教えるのではなく、
行動の結果として得られる 報酬 をもとに、より良い行動を学ぶ。
例:
| 場面 | 学ぶこと |
|---|---|
| ゲームAI | 勝つための行動 |
| ロボット制御 | 転ばずに歩く動き |
| 広告配信 | クリックされやすい配信方法 |
| 自動運転 | 安全に目的地へ進む行動 |
基本要素(G検定にはあまりでない?)
| 用語 | 意味 |
|---|---|
| エージェント | 行動する主体 |
| 環境 | エージェントが関わる世界 |
| 状態 | 現在の状況 |
| 行動 | エージェントが選ぶ動き |
| 報酬 | 行動の良し悪しを表す点数 |
| 方策 | どの状態でどの行動を取るかのルール |
半教師あり学習
少量の正解付きデータと大量の正解なしデータを使う方法
教師あり学習のめんどいところは、データはたくさんあるが、それに正解ラベルを付ける作業が大変・・・
たとえば画像は大量に集められても、「これは猫」「これは犬」と人間がラベルを付けるコストが高い
そこで、
少しだけラベル付きデータがある
大量のラベルなしデータもある
という状態で、両方を活用する。
イメージ:
| 学習方法 | 正解ラベル |
|---|---|
| 教師あり学習 | たくさん必要 |
| 教師なし学習 | 不要 |
| 半教師あり学習 | 少しだけ必要 |
| 強化学習 | 正解ラベルではなく報酬を使う |
過学習と汎化性能
過学習
学習データに合わせすぎて、初めて見るデータに弱くなる状態。
たとえば、模試の答えを丸暗記して点数は取れるけど、本番の少し違う問題に対応できない感じ。
参考:
| 状態 | 学習データ | 新しいデータ |
|---|---|---|
| 良いモデル | よく当たる | よく当たる |
| 過学習 | よく当たる | 当たらない |
| 学習不足 | 当たらない | 当たらない |
つまり、"学習データの点数だけ高い"モデルは危ない
汎化性能
学習に使っていない未知のデータに対して、どれだけうまく予測できるか。
G検定対策ならこれでいい・・・
汎化性能 = 未知データへの対応力
機械学習の目的は、学習データを丸暗記することではなく、
新しいデータにも通用する規則性を学ぶこと。
なぜ過学習が起きるのか
過学習の主な原因
| 原因 | 内容 |
|---|---|
| モデルが複雑すぎる | 細かい例外まで覚えてしまう |
| 学習データが少ない | 偏ったデータを一般法則だと思い込む |
| ノイズが多い | 本来関係ない偶然まで学んでしまう |
| 学習しすぎ | 訓練データに最適化されすぎる |
たとえば「犬を判定するAI」に、白い犬の画像ばかり学習させると、
犬 = 白いもの と勘違いする可能性がある。
過学習の見分け方
ポイントは、訓練データと検証データの成績差
イメージ:
| 訓練データの成績 | 検証データの成績 | 状態 |
|---|---|---|
| 高い | 高い | 良い |
| 高い | 低い | 過学習 |
| 低い | 低い | 学習不足 |
ようするに、
訓練データでは正解率が高いのに、検証データでは正解率が低い
これが出たら過学習を疑う。
過学習の対策
代表的対策:
| 対策 | 内容 |
|---|---|
| データを増やす | 偏りを減らす |
| モデルを単純にする | 複雑すぎる表現を抑える |
| 正則化 | 複雑なモデルにペナルティを与える |
| 早期終了 | 学習しすぎる前に止める |
| 交差検証 | データの分け方に依存しないよう評価する |
| ドロップアウト | ニューラルネットワークの一部をランダムに無効化する |
G検定では、正則化、早期終了、ドロップアウト、交差検証から優先して覚えること
まとめ
| 用語 | 意味 |
|---|---|
| 過学習 | 学習データに合わせすぎて、未知データに弱くなる状態 |
| 汎化性能 | 未知データに対してうまく予測できる性能 |
| 学習不足 | 学習データに対しても十分に当たらない状態 |
| 正則化 | 複雑すぎるモデルを抑える方法 |
| 早期終了 | 過学習が進む前に学習を止める方法 |
| 交差検証 | データ分割に依存しすぎないように評価する方法 |
過学習とは、訓練データにはよく適合するが、未知データへの汎化性能が低下している状態。