seegongsik
人工知能

わかりやすく 線形回帰 とは

勉強した時間が長いほど、点数も高い傾向があるとしましょう。人それぞれなので、点はばらばらに散らばっています。それでも全体の流れを一本の直線で引いておけば、五時間勉強した新しい人の点数も、その線から見積もれます。散らばった点の間をいちばんよく通る直線を見つけて値を予測する方法、これが線形回帰です。

01

散らばった点から始める

前のレッスンまでは、一つの値のまんなかと散らばり、そして起こりやすさを見てきました。今回は、組になった二つの値を見ます。勉強した時間ととった点数のようにです。時間を横軸に、点数を縦軸におくと、一人の人が一つの点になります。
人によって事情がちがうので、点は一本の線にぴったりのらず、雲のように散らばります。下で、点を一つずつ打ってみましょう。

勉強時間点数
あいているところを押して、点をまきましょう
0 / 12

あいているところを押して、点をまいてみましょう。右へ行くほど上がっていく流れが、ぼんやりと見えます。

点が散らばっていても、少し離れて見ると流れが見えます。右へ行くほど、だいたい上がっていきます。時間をたくさん使った人ほど、点数が高い傾向があるということです。
でも、これだけでは、新しい人の点数をぴたりと言い当てるのはむずかしいでしょう。この流れを一本の線でかければ、ずっとはっきりするはずです。

02

点の間に線を引く

流れを表すいちばん簡単な方法は、まっすぐな直線を一本引くことです。この線は、散らばった点のまんなかを横切るように通ります。線の上にある点も下にある点もありますが、全体として見れば、線が点を代表しています。
このように直線で流れを表すので、線形回帰と呼びます。線さえあれば、点がなかったところの値も読み取れます。

左で、線が通るところを押しましょう

左と右で、線が通るところを一つずつ押してみましょう。二か所を選ぶと、その間に直線が引かれます。

線を一本引くと、散らばった点がずっと整って見えます。横軸でどんな時間を選んでも、線までたどって縦軸の点数を読めます。これが予測です。
でも、線をどこに、どれくらいかたむけて引くかは、まだ自分たちの好きにしていました。選んだところによって、線が変わりました。線を決める決まりが必要です。

03

傾きと切片が線を決める

直線一本は、二つの数で完全に決まります。一つは傾きで、横に一目もり進むとき、縦にどれだけ上がるかを表します。傾きが大きいと線は急になり、小さいとゆるやかになります。
もう一つはy切片で、線が縦軸と交わる高さです。この二つを決めれば線は一本に決まり、式ではy=ax+bと書きます。aが傾き、bが切片です。

傾き a
0.8
切片 b
1.5
y = 0.8 x + 1.5

傾き(a)と切片(b)を、増減ボタンで変えてみましょう。線が急になったりゆるやかになったりし、上下に動きます。

傾きを大きくすると線は急になり、小さくすると寝ていきます。切片を上げると線全体が上へ、下げると下へすべります。二つの数だけで、線を好きなように動かせるのです。
では、散らばった点にいちばんよく合う傾き(a)と切片(b)は、どうやって見つけるのでしょうか。よい線と悪い線を分ける基準が必要です。

04

ずれがいちばん小さい線がよい

基準は簡単です。点ごとに、線が予測した値と実際の値が、縦にどれくらいちがうかを見ます。このちがいを残差と呼び、大きいほど、線がその点を大きく外したことになります。
すべての点のちがいを足すと、線が全体としてどれくらいずれているかが分かります。この合計が小さいほど線は点によく合うので、いちばんよく合う線は、ずれの合計がいちばん小さい線です。下の図はちがいの大きさをそのまま足していますが、ふつうの線形回帰では、ちがいを二乗して足した値をいちばん小さくします。これを最小二乗法といい、大きく外れた点をより重く見ます。

a
b
ずれの合計: 13.4
まだずれています

ボタンで線を少しずつ動かして、ずれの合計を減らしてみましょう。合計が小さくなるほど、いちばんよく合う線に近づきます。

ずれの合計を減らしていくと、線は点の雲のまんなかに落ち着きました。もうそれ以上減らない場所、それがいちばんよく合う線です。
人はボタンを押しながら見当で見つけましたが、機械はこの減らす作業を数えきれないほどくり返して、とても正確に見つけ出します。最小二乗法なら、式を解いて一度に答えを求めることもできます。どちらにしても、することは同じです。ずれを減らして、いちばんよく合う傾き(a)と切片(b)を見つけることです。

05

まとめ

まとめるとこうです。組になった点が散らばっているとき、その間をいちばんよく通る直線を一本引きます。線は傾き(a)と切片(b)という二つの数で決まり、点とのずれがいちばん小さくなるように選びます。その線に新しい入力を入れれば、結果を予測できます。
一つだけ覚えておきましょう。線を決める傾き(a)と切片(b)は、あとで学ぶニューロンで、重みとバイアスという名前でまた出てきます。

01組になった点が散らばっています
02その間に、いちばんよく合う線を引きます
03線は傾き(a)と切片(b)が決めます
04ずれを減らして、いちばん合う線を探します
05aとbは、あとでニューロンの重みとバイアスになります

要点を順に押して振り返りましょう。(散らばった点 → 線を引く → 傾き(a)と切片(b) → ずれを減らしていちばん合う線 → 重みとバイアスの予告)

これで、散らばった点の間に線を引き、その線で先のことを見積もれるようになりました。二つの数が予測を生み出すというこの考えは、これから学ぶほとんどすべてのことの種です。
回帰は、点数のように連続した数を予測します。でも、迷惑メールかどうか、猫か犬かのように、どのグループに入るかを答えなければならないこともよくあります。そうした問題をあつかう分類を、次のレッスンで見ていきます。

一言でいうと線形回帰とは、散らばった点の間をいちばんよく通る直線を一本引く方法です。その線はy=ax+bという式で書き、新しい入力を入れれば結果を予測できます。線を決めるのは二つだけです。傾き(a)は入力が一つ増えたとき結果がどれだけ上がるかを、切片(b)は線が縦軸のどこを通るかを決めます。いちばんよく合う線は点とのずれがいちばん小さい線で、ふつうは縦方向のちがいを二乗して足した値がいちばん小さい線を選びます(最小二乗法)。傾き(a)と切片(b)というこの二つの数は、あとでニューロンの重みとバイアスにそのままつながります。
← 人工知能
このページがお役に立ったなら支援する