教師あり学習と回帰:正解から予測を学ぶ
正解つきのデータから予測のしかたを学ぶ、教師あり学習の大枠をつかみます。基礎層では、数値を当てる回帰と区分を当てる分類の違いを身近な例で整理します。深掘り層では、線形回帰のしくみから出発し、シグモイド関数を架け橋に数値の予測が確率の分類へ変わる流れと、時系列を扱う自己回帰モデルまで説明できるようになります。
ねらい
このレッスンでは、機械学習の中でもよく使われる教師あり学習(きょうしありがくしゅう)を学びます。
基礎
正解つきのデータから予測のしかたを学ぶという大枠と、回帰(かいき)と分類(ぶんるい)の違いを身近な例でつかみます。
1. 入力と正解の組から学ぶ教師あり学習
前の章では、人がルールを書き切れない問題で、データそのものにルールを語らせる機械学習が主役になった流れを見ました。とはいえ、機械は何の手がかりもなしに学べるわけではありません。最も確かな手がかりになるのが、正解の分かっている実例です。
教師あり学習は、入力と正解の組を大量に見せて、入力から正解を予測するしかたを学ばせる方法です。
フリマアプリの価格の提案で考えます。使い終わったスマートフォンを出品すると、アプリが売れやすい価格を示します。誰かが1台ずつ値付けしているわけではなく、過去に売れた同じような商品の記録から相場のパターンを学んだしくみが、価格をはじき出しています。過去に売れたスマートフォンには、機種や使った年数という入力と、実際に売れた価格という正解がそろっています。この組をたくさん見せると、機械は「使った年数が長いほど価格は下がる」といった関係を自分で見つけていきます。
学び終えたあとは、正解がまだ分からない入力にも予測を出せます。これから出品する商品の機種と使った年数を入れれば、売れそうな価格が返ってくるわけです。
ここでいう正解は、人があらかじめ用意します。学びを導く先生の役目を果たすので、この方法は教師あり学習と呼ばれます。なお、正解を付けないデータから、データのかたまりぐあいといった構造そのものを見つけ出す教師なし学習という方法もあります。教師なし学習は、クラスタリングと次元削減を扱うレッスンで登場します。
ポイント
教師あり学習は、入力と正解の組から、入力を正解へ結びつけるしかたを学びます。学んだあとは、正解の分からない新しい入力にも予測を出せます。
2. 当てるものが数値か区分かで分かれる回帰と分類
教師あり学習が当てるものは、大きく2種類に分かれます。数値か、区分かです。
数値を当てる問題は、回帰問題と呼ばれます。フリマの価格、明日の気温、お店の来客数のように、連続した数値を予測します。価格は8500円にも8550円にもなり、その間のどんな値にもなりえます。回帰の予測は、数直線の上のどこか一点を指し示す予測だといえます。
区分を当てる問題は、分類問題と呼ばれます。メールがふつうか迷惑か、写真が犬か猫か。あらかじめ決められた区分のどれに当てはまるかを予測します。こちらは、用意されたいくつかの箱から1つを選ぶ予測です。
区分が3つ以上あり、その中から1つを選ぶ問題は、とくに多クラス分類(たクラスぶんるい)と呼ばれます。手書きの数字を0から9のどれかに当てる問題は、区分が10あるので多クラス分類です。
| 種類 | 当てるもの | 身近な例 |
|---|---|---|
| 回帰問題 | 連続した数値 | フリマの価格、明日の気温、来客数 |
| 分類問題 | 決められた区分 | 迷惑メールかどうか、犬か猫か |
| 多クラス分類 | 3つ以上の区分から1つ | 手書き数字を0から9のどれかに当てる |
同じ予測でも、当てるものが数値か区分かで、使う手法も、良し悪しのはかり方も変わります。まずこの2つを見分けることが、手法選びの出発点になります。
注意
手法は名前だけで見分けないでください。この先に登場するロジスティック回帰は、回帰という名前で分類に使われる手法です。当てるものが数値か区分かに注目すると、正しく見分けられます。
ここまでの要点
- 教師あり学習は、正解の分かっている実例を先生役にして、予測のしかたを学びます。
- 数直線の上の一点を当てるのが回帰問題、用意された区分から1つを選ぶのが分類問題です。
- 選べる区分が3つ以上ある分類問題は、多クラス分類と呼ばれます。
まずは全体像をつかめれば十分という人は、ここで区切って大丈夫です。「正解つきのデータから学び、数値を当てるのが回帰で区分を当てるのが分類」と押さえられていれば、この先の深掘りに進む土台はできています。
発展
同じスマートフォンの中では、メールアプリがあやしいメールを迷惑メールフォルダへ振り分けています。こちらも過去の仕分けの記録から傾向を学んだしくみですが、出しているのは価格のような数値ではなく、ふつうか迷惑かという区分の判定です。ここからは、数値を予測する線形回帰のしくみを確かめたうえで、数値をはじき出す計算がどうやって区分の判定に変わるのかを解いていきます。
3. 直線の関係で数値を予測する線形回帰
回帰問題の最も基本となる手法が、線形回帰(せんけいかいき)です。線形回帰は、入力と予測したい数値の間に、まっすぐな比例のような関係があると考えます。
入力が1つだけの線形回帰は、単回帰分析(たんかいきぶんせき)と呼ばれます。部屋の広さだけから家賃を予測する場合が例です。予測は、次の形の式で表せます。
家賃の予測値 = 傾き × 広さ + 切片
言葉で読み下すと、広さに傾きという重みを掛け算して、切片(せっぺん)という基準の値を足す、という意味です。傾きは、広さが1増えると家賃がいくら増えるかを表します。切片は、広さが0のときの基準値にあたります。
学習で決めるのは、この傾きと切片です。過去のデータの点々のなるべく近くを直線が通るように、傾きと切片を調整していきます。
入力を複数に増やしたものが、重回帰分析(じゅうかいきぶんせき)です。家賃を広さだけでなく、駅からの距離や築年数も合わせて予測します。式の形は、入力ごとに別々の重みを掛け算して全部を足し合わせ、最後に切片を足すものになります。
入力が1つなら単回帰分析、複数なら重回帰分析です。どちらも「入力に重みを掛けて足し合わせる」という同じ骨組みで、数値をまっすぐ予測します。この骨組みは、このあとの話の土台になります。
なお、入力を増やしすぎると、学習に使ったデータには合うのに、新しいデータには外れるという不調が起きることがあります。予測の式が複雑になりすぎないように抑える工夫は正則化(せいそくか)と呼ばれ、ディープラーニングの学習を安定させる工夫としてあらためて登場します。
4. 数値の予測を確率の判定に変えるロジスティック回帰
線形回帰のおさらいから始めます。線形回帰は、入力に重みを掛けて足し合わせ、数値をまっすぐ予測する計算でした。
この計算をそのまま分類に使えるでしょうか。メールの特徴を入力にして、迷惑メールらしさを数値で出すと考えてみます。
やってみると、すぐに困ったことが起きます。直線の計算には上限も下限もないため、出てくる数値は100を超え、1000を超え、マイナスの側にもどこまでも突き抜けます。
「迷惑メールである確率は1000パーセント」という判定に、意味はありません。確率として扱うには、数値が0から1の範囲におさまっている必要があります。そこで登場するのが、シグモイド関数という特殊な関数です。
シグモイド関数は、どんな数値も0から1の範囲に滑らかに押し込める道具です。プラスに大きい数値を入れるほど1に近い値が返り、マイナスに大きい数値を入れるほど0に近い値が返ります。ちょうど0を入れると、真ん中の0.5が返ります。
線形回帰の出力をこのシグモイド関数に通すと、どこまでも突き抜けていた数値が、0から1の値、つまり0パーセントから100パーセントの確率に変わります。「このメールが迷惑メールである確率は92パーセント」のような、分類の判断に使える形です。
この手法がロジスティック回帰です。名前に回帰と付くのは、土台が線形回帰と同じ「重みを掛けて足し合わせる」計算だからです。その出力にシグモイド関数という架け橋を1本渡すだけで、数値の予測は確率の判定に変わります。回帰のしくみのままで分類に使える理由は、この架け橋にあります。
実際の判定では、確率に境目を置きます。たとえば0.5より大きければ迷惑、そうでなければふつう、と区分を選びます。
区分が3つ以上ある多クラス分類にも、この考え方は広げられます。区分ごとに当てはまる確率を出し、最も確率の高い区分を選びます。
理解の確認
線形回帰の出力をそのまま確率として使えない理由と、シグモイド関数が果たす役目。この2つを自分の言葉で言い直せるか、確かめてみてください。
5. 過去の自分の値から次を予測する自己回帰モデル
回帰の考え方は、時間とともに並ぶデータにも広がります。株価や毎日の気温のように、時間の順に記録されたデータは時系列データと呼ばれます。
時系列データの予測に使われるのが、自己回帰モデル(ARモデル)です。自己回帰モデルは、ある時点の値を式で書くと、ある時点の値 = 重み1 × 1つ前の値 + 重み2 × 2つ前の値 + …(さかのぼる分だけ続く)となります。読み下すと、その少し前までの自分自身の値に、それぞれ重みを掛けて足し合わせる、という形です。明日の気温なら、今日の気温、昨日の気温、一昨日の気温のそれぞれに重みを掛けて、足し合わせて見積もります。
入力に重みを掛けて足し合わせるという骨組みは、線形回帰と同じです。違うのは入力の中身です。ほかの情報ではなく、自分自身の過去の値を入力に使います。過去の自分で未来の自分を回帰するので、自己回帰という名前が付いています。
複数の時系列をたがいの影響も込めて同時に予測するように広げたものが、ベクトル自己回帰モデル(VARモデル)です。気温と電力の使用量のように、関係し合う複数の系列をまとめて扱います。片方の過去がもう片方の未来に影響する関係も、予測に取り込めます。
自己回帰モデルは1つの系列を扱い、ベクトル自己回帰モデルは複数の系列をまとめて扱います。どちらも、過去の値から未来の値を予測する回帰の仲間です。
理解度の確認
説明できる項目にチェックを入れましょう。すべて確認できたら、完了ボタンで記録します。
分からなかった点・気になった点
読み込み中です。