1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【JDLA E資格】線形回帰

Last updated at Posted at 2021-03-08

#はじめに
JDLA E資格試験で出題される線形回帰について解説した記事です。
E資格試験の機械学習パートでは、モデルの定義や学習などが出題されます
また、線形回帰は機械学習全般における基礎ですので、本稿の内容を理解しておくのは必須です。

なお、他パートの具体的な解説については、下記をご覧ください。
[E資格試験に関する私の投稿記事リスト][link-1]
[link-1]:https://qiita.com/fridericusgauss/items/5a97f2645cdcefe15ce0

###目次

  1. 機械学習の分類
  2. 線形単回帰
  3. 線形重回帰
  4. おわりに

#機械学習の分類
###モデルの分類
E資格試験で登場する機械学習モデル・アルゴリズムは下記表のように分類されます。

モデル 学習タイプ タスク
線形回帰 教師あり 回帰
ロジスティック回帰 教師あり 分類
SVM 教師あり 分類
k-近傍法 教師あり 分類
k-means 教師なし クラスタリング
k-means++ 教師なし クラスタリング
主成分分析 教師なし 次元削減
動的計画法 強化学習
モンテカルロ法 強化学習
Q-Learning 強化学習
SARSA 強化学習

###線形回帰
線形回帰は、教師あり学習で回帰タスクのための(説明変数を用いて実数値の目的変数を表現する)線形の数理モデルです。
説明変数と目的変数の組のデータを学習させ、目的変数を予測するモデルを構築できます。
__線形単回帰モデル__は、説明変数が1つの線形回帰モデルで、__線形重回帰モデル__は、説明変数が2つ以上の線形回帰モデルです。

#線形単回帰
###線形単回帰のモデル
目的変数$y$、説明変数$x$としたとき、線形単回帰モデルは式(1)で表されます。

y=wx+w_{0}
\tag{1}

$w,w_{0}$はモデルパラメータ(回帰係数、バイアス)で、データを学習することで決定します。
学習によってモデルパラメータが決まれば、そのモデルに説明変数にデータを入力することで、目的変数の値を出力することができます。
このとき、学習済データの説明変数$x$を入力して、目的変数$y$の値を出力することを__推定__、未学習データの説明変数$x$を入力して、目的変数$y$の値を出力することを__予測__と呼びます。

###線形単回帰の学習
線形回帰モデル(式(1))による目的変数の出力を$\hat{y}$、学習データを$D=\{(x_{1},y_{1}),\cdots,(x_{N},y_{N})\}$と表します。
学習では、学習データ$D$を与え、最小二乗法によって誤差関数を最小化する問題を解くことで、モデルパラメータを求めます。

学習データの説明変数$x_n$を入力したときにモデル(式(1))から計算される目的変数の値$\hat{y_{n}}$を、学習データの目的変数$y_{n}$に近づけることができれば、「モデルが学習した」と言えるので、その差の2乗和を誤差とみなし、誤差を最小化するようなモデルパラメータを求めます。

2乗和誤差関数$L(w;D)$は式(2)で表されます。

L(w;D)=\frac{1}{2}\sum_{n=1}^N(y_n-\hat{y_{n}})^2
\tag{2}

線形単回帰の場合、式(2)の誤差関数は式(3)に変形できます。

L(w,w_0;D)=\frac{1}{2}\sum_{n=1}^N(y_n-(wx_n+w_{0}))^2
\tag{3}

$L(w,w_0;D)$が最小となるような、モデルパラメータは式(4)で表されます。なお、式(4)はE資格試験では出題されません。

\begin{align}
w=&\frac{s_{xy}}{s_{x}}\\
w_0=&\mu_{y}-\frac{s_{xy}}{s_{x}}\mu_{x}
\end{align}
\tag{4}

ただし、式(4)中の$\mu_{y}$は$y$の平均、$\mu_{x}$は$x$の平均、$s_{x}$は$x$の分散、$s_{xy}$は$x$と$y$の共分散です。

\begin{align}
\mu_{y}=&\mathbb{E}[y]=\frac{1}{N}\sum_{n=1}^N y_n\\
\mu_{x}=&\mathbb{E}[x]=\frac{1}{N}\sum_{n=1}^N x_n\\
s_{x}=&\mathbb{V}[x]=\frac{1}{N}\sum_{n=1}^N (x_n-\mu_{x})^2\\
s_{xy}=&\frac{1}{N}\sum_{n=1}^N (x_n-\mu_{x})(y_n-\mu_{y})
\end{align}
【折り畳み】式(4)の導出
>$L(w,w_0;D)$の最小値を求めるには、ラグランジュの未定乗数法によって解く。 >つまり、$L(w,w_0;D)$のモデルパラメータによる偏微分が$0$になるような連立方程式を解けば良い。 >その偏微分方程式は下記で表される。 > >```math >\begin{align} >\frac{\partial L(w,w_0;D)}{\partial w}=&0\\ >\frac{\partial L(w,w_0;D)}{\partial w_0}=&0 >\end{align} >``` > >各偏微分方程式は下記の通り整理できる。 > >```math >\begin{align} >&\frac{\partial}{\partial w}\frac{1}{2}\sum_{n=1}^N(y_n-(wx_n+w_{0}))^2\\ =&-\sum_{n=1}^N x_n(y_n-(wx_n+w_{0}))\\ >=&-\sum_{n=1}^N (x_n y_n - x_n^2 w - x_n w_{0})\\ >=&-\sum_{n=1}^N (x_n y_n) + w\sum_{n=1}^N(x_n^2) + w_{0}\sum_{n=1}^N(x_n)=0 >\end{align} >``` > >```math >\begin{align} >&\frac{\partial}{\partial w_0}\frac{1}{2}\sum_{n=1}^N(y_n-(wx_n+w_{0}))^2\\ >=&-\sum_{n=1}^N(y_n-(wx_n+w_{0}))\\ >=&-\sum_{n=1}^N(y_n - x_n w - w_{0})\\ >=&-\sum_{n=1}^N (y_n) + w\sum_{n=1}^N(x_n) + \sum_{n=1}^N (w_{0})\\ >=&-\sum_{n=1}^N (y_n) + w\sum_{n=1}^N(x_n) + N w_{0}=0 >\end{align} >``` > >これらの連立方程式を解くと、式(4)が得られます。

#線形重回帰
###線形重回帰のモデル
目的変数$y$、説明変数$\boldsymbol{x}=(x_1,\cdots,x_M)^{\mathrm{T}}$としたとき、線形重回帰モデルは式(5)で表されます。

y=\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}+w_{0}
\tag{5}

$\boldsymbol{w}=(w_1,\cdots,w_M)^{\mathrm{T}},w_{0}$はモデルパラメータ(偏回帰係数、バイアス)で、データを学習することで決定します。

###線形重回帰の学習
線形回帰モデル(式(5))による目的変数の出力を$\hat{y}$、学習データを$D=\{({\boldsymbol{x}}_{1},y_{1}),\cdots,({\boldsymbol{x}}_{N},y_{N})\}$と表します。

線形重回帰の場合、式(2)の誤差関数は式(6)に変形できます。

L(\boldsymbol{w},w_0;D)=\frac{1}{2}\sum_{n=1}^N(y_n-(\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_n+w_{0}))^2
\tag{6}

$L(\boldsymbol{w},w_0;D)$が最小となるような、モデルパラメータは式(7)で表されます。なお、式(7)はE資格試験では出題されません。

\boldsymbol{w}^{\prime}=(\boldsymbol{X}^{\mathrm{T}}\boldsymbol{X})^{-1}\boldsymbol{X}^{\mathrm{T}}\boldsymbol{y}
\tag{7}

ただし、式(7)中の文字をダミー変数として置換し直しています。

\begin{align}
\boldsymbol{y}=&(y_1,\cdots,y_N)^{\mathrm{T}}\\
\boldsymbol{w}^{\prime}=&(w_1 ,\cdots,w_M ,w_0 )^{\mathrm{T}}\\
\boldsymbol{x}^{\prime}=&(x_1 ,\cdots,x_M ,1)^{\mathrm{T}}\\
\boldsymbol{X}=&[\boldsymbol{x}_1 ^{\prime},\cdots,\boldsymbol{x}_N ^{\prime}]^{\mathrm{T}}
\end{align}

###非線形性への対応方法
線形回帰モデルは、説明変数に対して目的変数が線形なので、データの非線形性に対応できません。
そこで、非線型性やバイナリ出力(分類タスク)に対応するための、線形回帰の発展形として、基底展開法に基づく非線型回帰や、活性化関数を用いるものがあります。
このとき、モデルは線形回帰とは呼ばなくなるので、ご注意ください。

これらの解説については下記をご覧ください。
[基底展開法に基づく非線形回帰][link-2]
[link-2]:https://qiita.com/fridericusgauss/items/3052ba024521f50bd666

#おわりに
E資格向けの線形回帰について解説しました。
なお、上記は、2021年2月時点における内容であることにご注意ください。

[E資格試験に関する私の投稿記事リスト][link-1]

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?