はじめに
前回の記事の続きとなります。
yaju3d.hatenablog.jp
参考
やる夫で学ぶ機械学習 - 多項式回帰と重回帰 - · けんごのお屋敷
重回帰
前回の多項式回帰でも、変数 が1つだけでした。
機械学習をする上で実際に解きたい問題は変数 が2つ以上の方が多いです。
変数が3つの場合
一般式
変数を 個にした場合の一般式
列ベクトル化
先程の一般式を と を列ベクトルとして定義してみます。
と の次元数が違うので揃えます。
1を追加したとしても計算上は値が変わらない。となるため。
もう一工夫する。 と定義することで、すべて とすることができる。
こうすることで、 を転置したものと を掛けると次のように書ける。
これは一般式を としたものと同じになるわけです。
そして、すべて としたことで簡潔した式に表現できるようになるのです。
更新式を求める
の 番目の要素を とすると、 を で偏微分した式
※誤解されないように最初に説明しておくと、 や は 乗という意味ではなくて、 番目の学習用データを参照する意味である。
を で微分
で微分するので、 は計算対象外なので除外します。
共通因数の を前に出します。
こうすると と相殺できます。
このままでもいいですが、マイナス符号を先頭に付けないようにもう一工夫します。
足し算を入れ替えても結果は変わらないので、 と を入れ替えます。
の定義を元に戻す。
を で微分
を で微分する。
結果を掛ける
合成関数の微分に従って、それぞれの結果を掛ける。
最終的な更新式
最終的なパラメーターの更新式は下記のようになります。
最後に
今回はここまで、次回は確率的勾配法となります。