#はじめに
JDLA E資格試験で出題される線形回帰について解説した記事です。
E資格試験の機械学習パートでは、モデルの定義や学習などが出題されます。
また、線形回帰は機械学習全般における基礎ですので、本稿の内容を理解しておくのは必須です。
なお、他パートの具体的な解説については、下記をご覧ください。
[E資格試験に関する私の投稿記事リスト][link-1]
[link-1]:https://qiita.com/fridericusgauss/items/5a97f2645cdcefe15ce0
###目次
#機械学習の分類
###モデルの分類
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)の導出
#線形重回帰
###線形重回帰のモデル
目的変数$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]