[機械学習] Linear Regression

#１．はじめに
このような単純な例を見てみましょう。幅`x1`平方メートル、`x2`の寝室、市内中心部までの距離が`x3 `kmの家の価格はいくらですか。その都市の1000戸の住宅の統計を持っていたとします。面積、寝室の数、中心部までの距離についてのパラメータを持った新しい家があれば、その家の値段はわかりますか。もしそうであれば、予測関数`y=f(x)`はどんな形があるか。ここで、`x=[x1,x2,x3]`は入力情報を含む行ベクトル、`y`は出力を表すスカラー数（この例では家の価格）です。
単純な方法では、次のことがわかります。
1. 住宅面積が大きいほど、住宅価格は高くなります。 
2. 寝室の数が多いほど、住宅価格は高くなります。 
3. 中心から離れるほど住宅価格は下がる。
次の簡単な関数は、住宅価格と3つの投入数量との関係を表すことができます。
![Screenshot from 2019-04-01 17-48-05.png](https://qiita-image-store.s3.amazonaws.com/0/344186/6df715ad-dac5-4b88-9ef4-28932e060646.png)
ここで、`w1,w2,w3,w0`は定数、`w0`は[バイアス]と呼ばれます。 `y=f(x)`上記の関係は線形関係（linear）です。私たちがしている問題は回帰問題です。 したがって、最適な係数{w1,w2,w3,w0}を見つける問題は、線形回帰問題と呼ばれます。
`y`は（トレーニングデータセットに含まれる統計に基づく）結果の実際の値です。一方、`ŷ`は線形回帰モデルによって予測される値です。 一般に、`y`と`ŷ`はモデル誤差のために2つの異なる値ですが、この差は非常に小さいと欲望されます。
#2. 数学解析
###2.1. 線形回帰の形式
上記の式(1)で、![Screenshot from 2019-04-01 18-37-46.png](https://qiita-image-store.s3.amazonaws.com/0/344186/b0e8d292-423e-d132-2b3e-0b116a0fa51e.png)をベクトル（列）に設定した場合、係数は最適でなければならず、![Screenshot from 2019-04-01 18-38-20.png](https://qiita-image-store.s3.amazonaws.com/0/344186/46bf00b6-93e4-9160-e4fd-b2150345d63a.png)は展開された入力のベクトル（行）です。 一番上の数字1は、計算をより簡単かつ便利にするために追加されています。 そして、式（1）は次のように書き直すことができます。
![Screenshot from 2019-04-01 18-38-50.png](https://qiita-image-store.s3.amazonaws.com/0/344186/9efe4648-e25b-7948-87a6-8579b2852459.png)
###2.2. 予測誤差
実際の値`y`と予測された値`ŷ`の差`e`が最も小さいことが欲望されます。 つまり、次の値をできるだけ小さくします。
![Screenshot from 2019-04-01 18-44-37.png](https://qiita-image-store.s3.amazonaws.com/0/344186/73539aa1-6e3c-2a1a-a6ca-a47f9eb83812.png)
ここで、係数1/2は計算の便宜上のものです（導関数を計算するとき、数字1/2は消滅します）。`e`は負の数になる可能性があるため、`e^2`が必要です。`e=-∞`が非常に小さい場合、偏差が非常に大きいため、最小のeは正しくありません。
###2.3. 損失関数
同じことがすべてのペア（入力、結果）![Screenshot from 2019-04-01 18-52-59.png](https://qiita-image-store.s3.amazonaws.com/0/344186/2afc1a36-d53f-792b-e446-08a1adbfa4c7.png)
についても起こります。ここで、`N`は観測データの量です。 欲しいのは、合計誤差が最小で、次の関数が最小値になるように`w`を見つけることと同じです。
![Screenshot from 2019-04-01 18-53-49.png](https://qiita-image-store.s3.amazonaws.com/0/344186/47c51780-6107-2f63-d7bc-a9042e3ecee9.png)
関数![Screenshot from 2019-04-01 18-59-21.png](https://qiita-image-store.s3.amazonaws.com/0/344186/336aa284-3f64-60c4-4df8-9053292b9572.png)は、線形回帰問題の損失関数と呼ばれます。 常に損失（誤差）が最小であることを望みます。これは、この損失関数の値ができるだけ小さくなるように`w`係数ベクトルを見つけることを意味します。 `w`の値は損失関数が最小値になる最適点と呼ばれる。次のように表される。
![Screenshot from 2019-04-01 19-04-59.png](https://qiita-image-store.s3.amazonaws.com/0/344186/30cfb963-dca2-1e5a-f53d-e81db8a0ae15.png)
解を見つける前に、損失関数式（2）の演算を単純化します。 ![Screenshot from 2019-04-01 19-09-20.png](https://qiita-image-store.s3.amazonaws.com/0/344186/3c6c639c-950b-f026-97ce-7e90a94470b1.png)を学習データのすべての出力を含む列ベクトルに設定します。 ![Screenshot from 2019-04-01 19-09-34.png](https://qiita-image-store.s3.amazonaws.com/0/344186/252281ae-9864-05ff-c842-e94d70032439.png)は入力データ行列（拡張）で、それぞれがデータ点です。 それから、![Screenshot from 2019-04-01 18-59-21.png](https://qiita-image-store.s3.amazonaws.com/0/344186/38d26734-85a0-f5a5-739e-764ce0149b43.png)損失関数はより単純な行列で書かれます。
![Screenshot from 2019-04-01 19-10-44.png](https://qiita-image-store.s3.amazonaws.com/0/344186/a535a3f8-c45b-92df-7d71-d81b08e004c0.png)
![Screenshot from 2019-04-01 19-12-01.png](https://qiita-image-store.s3.amazonaws.com/0/344186/7d50bed5-5fc0-867e-c6d4-7187229130bb.png)はユークリッドノルム（ユークリッド標準、またはユークリッド距離）、つまり![Screenshot from 2019-04-01 19-12-55.png](https://qiita-image-store.s3.amazonaws.com/0/344186/7934cdb6-a21c-93e6-421b-ddbe52ff5aab.png)はベクトルzの各要素の二乗和です。 ここで、式（3）のように書かれた単純な形の損失関数があります。
###2.4. 線形回帰問題の方程式の解方程
最適な問題の解を見つける最も一般的な方法は、0で微分方程式（勾配）を解くことです。もちろん、微分を計算してゼロ微分方程式を解くときもそれほど複雑ではありません。 幸いにも、線形モデルでは、これら2つは実行可能です。
損失関数のwの導関数は次のとおりです。
![Screenshot from 2019-04-01 19-20-02.png](https://qiita-image-store.s3.amazonaws.com/0/344186/a92e87c9-4786-0003-daa8-c272b0475e5d.png)
ゼロ導関数の式は次の式と等価です。
![Screenshot from 2019-04-01 19-21-21.png](https://qiita-image-store.s3.amazonaws.com/0/344186/9c5e07fa-d845-4868-eede-fe7e5e0f4558.png)
(![Screenshot from 2019-04-01 19-21-40.png](https://qiita-image-store.s3.amazonaws.com/0/344186/a0df4a0e-a10a-94bf-2ca2-4c53e4f6b038.png)とは![Screenshot from 2019-04-01 19-21-48.png](https://qiita-image-store.s3.amazonaws.com/0/344186/caa49930-565e-1d9e-b6d3-5895aee6699a.png)を`b`に設定する）。逆模倣の概念では、線形回帰問題の最適点は次の形式になります。
![Screenshot from 2019-04-01 19-24-43.png](https://qiita-image-store.s3.amazonaws.com/0/344186/b7003e28-aec5-4202-4e08-5d4018329df5.png)
#3. 最後
以上にLinear Regressionという問題を数学的な知識を説明しました。線形回帰問題は、機械学習における教師あり学習の非常に基本的な問題です。 次の記事では、線形回帰を使って実際的な問題を提示します。