2.1 機械学習とは
ルールを書くかわりにデータで教える
この回で分かること
- 人がルールを書く従来のプログラムと、データから規則を学ぶ 機械学習 の違いを説明できる
- 教師あり学習(回帰・分類)・教師なし学習・強化学習 の違いを、例を挙げて説明できる
- モデル・パラメータ・学習・推論・汎化の意味と、機械学習の性能がデータで決まることを説明できる
直感で理解する
カメラ画像から歩行者を見つけるプログラムを、ルールで書くことを考えてみましょう。「縦長の形で、高さが1〜2m、手足がある……」。ところが、傘をさした人、自転車を押す人、しゃがんだ子ども、大きな荷物を持った人、夜の暗がりにいる人──例外はきりがありません。条件を書き足すほどルールは複雑になり、それでも書き漏れが残ります。
機械学習では発想を逆にします。人が判定のルールを書く代わりに、「これは歩行者」「これは歩行者ではない」という 正解付きのデータ を大量に用意し、判定のしかたそのものをデータからコンピュータに作らせます。こうしてできた判定のしくみを モデル と呼びます。
モデルを作る作業が 学習(訓練)、できたモデルで新しい入力に答えを出すのが 推論 です。学習は開発のときに大量のデータと時間を使って行い、推論は車の中で一瞬で行います。
機械学習には、何をどう学ぶかによって、大きく次の種類があります。
| 種類 | 何を学ぶか | 自動運転での例 |
|---|---|---|
| 教師あり学習(回帰) | 入力から、数値を予測する | 前の車が3秒後にどこにいるか |
| 教師あり学習(分類) | 入力から、カテゴリを予測する | カメラに写った物体が、歩行者・自転車・車のどれか |
| 教師なし学習 | 正解なしで、データの中のまとまりや「いつもと違うもの」を見つける | 大量の走行記録から、似た場面をまとめる・珍しい場面を探す |
| 強化学習 | 試行錯誤して、ほうび(報酬)が大きくなる行動を学ぶ | シミュレーションの中で運転のしかたを学ぶ |
この講座では、いちばんよく使われる教師あり学習を中心に進めます。
数式で確かめる
① モデルは「調整できるつまみ」を持った関数
x は入力(画像や、センサで測った値など)、\(\hat{y}\) は予測です(ハットは「推定した値」の印、1.6)。θ(シータ)はモデルの パラメータ で、モデルの振る舞いを決める「つまみ」のようなものです。いちばん簡単な例は直線 \(\hat{y} = ax + b\) で、つまみは a と b の2つだけ。画像を扱うディープラーニングのモデルでは、つまみが数百万〜数十億個にもなります。
② 学習は「ずれが最も小さくなるつまみ」を探すこと
正解付きのデータ \((x_1, y_1), \dots, (x_n, y_n)\) について、予測と正解のずれを L で測り、その平均が最も小さくなるパラメータを選びます。
\(\arg\min_{\theta}\)(アーグミン)は「右の式が最も小さくなるときの θ」という意味です(記号表)。ずれの測り方 L を 損失関数 と呼び、2.2 線形回帰と損失関数で扱います。最も小さくなる θ の探し方が、2.3 勾配降下法です。
③ 大事なのは「まだ見ていないデータ」での性能
学習に使ったデータにぴったり合うだけでは意味がありません。本当に知りたいのは、学習に使っていない新しいデータでどれだけ当たるか、つまり 汎化性能 です。そのため、手元のデータの一部を学習に使わずにとっておき、試験に使います。これは、1.6 で手元の試験結果から本当の検出率を推し量ったのと同じ考え方です。詳しくは 2.6 過学習と正則化と 2.8 データの分け方と分布シフトで扱います。
自動運転との接点
- ルールで書ききれない所に使われる:カメラやLiDARでの物体の認識、周りの車や歩行者の動きの予測など、条件が無数にある部分で機械学習が使われます。→ 4.2 システムの全体像
- 仕様が「データ」に移る:従来のソフトウェアは、仕様書とコードを読めば振る舞いを確かめられました。機械学習では、どんなデータで学んだかが振る舞いを決めます。データの偏りや抜けが、そのまま性能の穴(SOTIFでいう機能不十分)になります。→ 5.3 機能不十分とトリガー条件
- 100%はない:どれだけ学習しても、モデルはときどき間違えます。性能は 1.6 のように試験で推定し、区間をつけて示します。→ 2.7 評価指標
- 見たことのない状況に弱い:学習データの範囲の外(ODDの外、新しい種類の物体、見慣れない天候)では、予測が当てになりません。→ 2.8 データの分け方と分布シフト、5.9 AIコンポーネントの安全
まとめ
- 機械学習は、人がルールを書く代わりに、正解付きのデータから規則(モデル)を作る方法
- 数値を予測する回帰と、カテゴリを予測する分類が教師あり学習。ほかに教師なし学習と強化学習がある
- 学習は、予測と正解のずれ(損失)が最も小さくなるパラメータを探すこと。大事なのは、学習に使っていないデータでの性能(汎化性能)
確認クイズ
Q1. 機械学習に向いているのはどちら?(a)制限速度を超えたら警告を出す(b)カメラ画像から歩行者を見つける
(b)です。(a)は「速度 > 制限速度」という明確なルールで書けるので、機械学習を使う必要はありません。(b)は見え方の例外が無数にあり、ルールで書ききれないため、データから学ばせるのが向いています。
Q2. 「前の車の3秒後の位置を予測する」と「信号の色を判定する」は、それぞれ回帰と分類のどちら?
位置の予測は数値を答えるので回帰、信号の色(赤・黄・青)はカテゴリを答えるので分類です。
Q3. 学習に使ったデータで試したら、正解率は99%でした。これで「本番でも99%」と言える?
言えません。学習に使ったデータでの成績は、覚えてしまえば高くなります(2.6 で扱う過学習)。性能は、学習に使っていないデータで測ります。さらに、本番のデータが試験のデータとずれていないかも確かめる必要があります。
Q4. 歩行者検出の学習に使った画像が、すべて昼間のものでした。夜間の歩行者検出はどうなりやすい?
性能が落ちやすくなります。モデルは学習データにない状況をうまく扱えないためです。夜間のように学習データに含まれない条件は、SOTIFでいうトリガー条件の候補になります。
もっと知りたい人へ
- 次の回:2.2 線形回帰と損失関数
- 関連:1.6 推定と信頼区間、5.9 AIコンポーネントの安全
- 用語集:機械学習、教師あり学習・教師なし学習・強化学習、回帰・分類、モデル・パラメータ・推論、汎化
- 解説動画:YouTube(約5分)(静止画のスライドと音声で要点を説明。英語版の記事には英語の動画があります)