Coursera教材を使用して機械学習を学習しようとしていました。この講義では、Andrew Ngは勾配降下アルゴリズムを使用して、誤差関数(コスト関数)を最小化する線形回帰モデルの係数を見つけます。
線形回帰の場合、勾配降下が必要ですか?誤差関数を分析的に微分し、係数を解くためにゼロに設定できるようです。そうですか?
Coursera教材を使用して機械学習を学習しようとしていました。この講義では、Andrew Ngは勾配降下アルゴリズムを使用して、誤差関数(コスト関数)を最小化する線形回帰モデルの係数を見つけます。
線形回帰の場合、勾配降下が必要ですか?誤差関数を分析的に微分し、係数を解くためにゼロに設定できるようです。そうですか?
回答:
線形最小二乗は
0)後述のSVDまたはQRに基づいた高品質の線形最小二乗ソルバーの使用、または制約のない線形最小二乗の場合、または以下に説明するようにバインドされたまたは線形に制約された最小二乗の2次計画法または円錐最適化のバージョンに基づく このようなソルバーは事前に用意されており、十分にテストされており、すぐに使用できます。
1)SVD。これは最も信頼性が高く数値的に正確な方法ですが、他の方法よりも多くの計算を必要とします。MATLABでは、制約のない線形最小二乗問題A * X = bのSVD解はpinv(A)* bであり、これは非常に正確で信頼性があります。
2)QR。かなり信頼性が高く、数値的に正確ですが、SVDほどではなく、SVDよりも高速です。MATLABでは、制約なし線形最小二乗問題A * X = bのQR解はA \ bであり、Aが悪条件の場合、つまり条件数が大きい場合を除き、かなり正確で信頼性があります。A \ bはpinv(A)* bよりも計算が高速ですが、信頼性や正確性は劣ります。
3)正規方程式を作成します(信頼性と数値精度の観点から、TERRIBLE。条件数を2乗するため、これは非常に悪いことです)。
3a)コレスキー分解による解法(良くない)
3b)明示的に逆行列(HORRIBLE)
4)二次計画問題または二次コーン問題として解く
4a)高品質の二次計画ソフトウェアを使用して解きます。これは信頼でき、数値的に正確ですが、SVDまたはQRよりも時間がかかります。ただし、目的関数に境界または一般線形制約、線形または2次(2ノルム)ペナルティまたは正則化項を追加し、2次プログラミングソフトウェアを使用して問題を解決するのは簡単です。
4b)高品質の円錐最適化ソフトウェアを使用して、2次円錐問題として解きます。注意は二次計画法ソフトウェアの場合と同じですが、バインドされたまたは一般的な線形制約、その他の円錐制約または目的関数項(ペナルティやさまざまな標準の正則化項など)を追加することもできます。
5)高品質の汎用非線形最適化ソフトウェアを使用して解決します。これはまだうまくいくかもしれませんが、一般に二次計画法や円錐最適化ソフトウェアよりも遅く、おそらくそれほど信頼性が高くありません。ただし、バインドされた一般的な線形制約だけでなく、非線形制約も最小二乗最適化に含めることができます。また、非線形最小二乗、および他の非線形項が目的関数に追加される場合に使用できます。
6)お粗末な汎用非線形最適化アルゴリズムを使用して解決->これを絶対にしないでください。
7)最も可能性の高い汎用非線形最適化アルゴリズム、すなわち勾配降下法を使用して解きます。勾配降下法を使用して線形最小二乗問題を解決するように誰かから指示された場合に、これは、解法がどれほど悪いか信頼できないかを確認したい場合にのみ使用します
7 i)統計計算について何か知っている人から統計計算について学ぶ
7 ii)それについて何かを知っている人から最適化を学びます。
Finding coefficients of a linear model is technically the process of finding solutions to a set of Linear Equations.
For computing such solutions, a lot of optimization techniques
have been developed and Gradient Descent
is one of them.
Thus, Gradient Descent is not the only way to do that.
Andrew Ng uses it in the course is because it is simple to understand, without dealing with advanced Linear Algebra and Numerical Computing.
GD
-gradient decent- is used as an example to introduce more advanced methods (eg. SGD
- stochastic GD
).
SGD
. As most people do not have very large matrices the QR decomposition is better. In general QR decomposition has shaped the numerical world; SIAM selected it as one of the top10 algorithms of the 20th century.