レッスン1 / 1問目

『単回帰分析2』

このレッスンは「単回帰分析」の続きとなります。

ここでは単回帰分析における損失関数の最小化についてみていきます。

単回帰分析のおさらい

まずはこれまでの単回帰分析のおさらいです。

単回帰分析はデータの関係性やパターンを導き出す分析です。

上記の緑色の直線を回帰直線といい、広告宣伝費と売上データの関係性を表しています。

この回帰直線(y = ax + b)を誤差が最小になるようにパラメーターを調整していきます。

単回帰分析の二乗誤差のグラフ

上記の誤差を測る指標として以下の損失関数(二乗誤差)を使用します。

L=n=1 N (yn- y ^n)2

この損失関数を最小化し、適切なパラメーターを求めていくことが単回帰分析の目的です。

また、モデルの定義ではこの単回帰分析で使用する関数を「y = ax + b」に決定しました。そして、データの中心化により「y = ax + b」は「y = ax」となり、上記損失関数のy^を「ax」に置き換えました。

L=n=1 N (yn- axn)2

そして上記損失関数はグラフにすると以下のような二次関数のグラフになります。

二次関数のグラフ

上記グラフの谷底の部分が損失関数(誤差)が最も小さくなる点であり、この谷底は言い換えると「傾きが0となる点」であるためここで微分を使用します。

では、おさらいはここまでとします。

本レッスンでは損失関数を微分した値が0となる場合のパラメーターを求めていきます。

損失関数の微分

では損失関数が最小となる点を微分により求めていきましょう。

損失関数

L=n=1 N (yn- axn)2

ここでの目的は損失関数を微分した値が0となる場合のパラメーターを求めることです。

これを式で表すと以下のようになります。

a ( n=1 N (yn- axn)2 ) = 0

つまり、この式を解いていくことで誤差が最小となる適切なパラメーターを求めることができます。

では式を解いていきましょう。

まずは 「(yn- axn)2」の部分を展開します。

a ( n=1 N (yn 2 - 2yn axn + a2 xn2) ) = 0

次にaで偏微分していきます。

aで偏微分を行うためaではない変数は定数とみなされ0となります。また微分の公式によりaは1、a²は2aとなります。

損失関数の偏微分

偏微分した値は以下の通りです。

n=1 N (- 2yn xn + 2 a xn2) = 0

ではこの方程式を解いていきます。まずは- 2yn xnを右辺へ移動します。

n=1 N ( 2 a xn2 ) = n=1 N ( 2yn xn )

次にa以外を右辺へ移動し、「2」を消しあいます。

a = n=1 N ( yn xn ) n=1 N ( xn2 )

これでaを偏微分することができました。

これで単回帰分析は完了です。

次のレッスンでは実際に単回帰分析をPythonで実装していきます。




練習問題

Lesson1

以下を偏微分した値を求めてください。

a ( n=1 N (yn- axn)2 ) = 0

a = n=1 N ( yn xn ) n=1 N ( xn2 )

解き方は本レッスンの例題を参考にしてください。



判定ボタンを押してレッスンを完了してください。

Last updated:2019/11/22

main.py
設定
g
n
i
d
a
o
L