線形回帰モデルの係数を見つけるために勾配降下が必要ですか?


31

Coursera教材を使用して機械学習を学習しようとしていました。この講義では、Andrew Ngは勾配降下アルゴリズムを使用して、誤差関数(コスト関数)を最小化する線形回帰モデルの係数を見つけます。

線形回帰の場合、勾配降下が必要ですか?誤差関数を分析的に微分し、係数を解くためにゼロに設定できるようです。そうですか?


3
線形モデルは、1700年代から適切に処理されています。勾配降下(GD)を必要としないそれらを処理する方法はたくさんあります。これらの方法のほとんどは、表面が平らになる非線形モデルがあります。Andrewは、アプローチをデバッグできるように、非常に単純な問題に対して、なじみのない非常に便利な方法を使用するようにしています。この方法が得意であれば、GDが結果を得る唯一の方法である驚くほど非線形な問題に適用できます。
EngrStudent-モニカの復活

10
いいえ、勾配降下のようなアプローチを使用する必要はありません(いずれにしても、最適化の方法はこれだけではありません)。あなたが提案するように、あなたは確かに分析的にそれを解決することができます。各パラメーターについて微分するため、パラメーターごとに1つの方程式が得られます。しかし、他の方法で実行できる単純な問題を解決することは有用です。すでに答えがわかっている場合は、勾配降下法で正しい答えが得られていることを確認できます。
Glen_b-モニカの復職

コスト関数が通常の2次(「距離」)ペナルティである場合、閉形式の解があります。ただし、一般に勾配降下ははるかに高速であるため、一般的に使用されます。
aginensky

さらに、勾配降下法を使用して、分析的に扱いにくい問題の数値解を見つけることができます。私は、彼が慣れるのに早い段階で勾配降下法を使用しているのではないかと疑っています。彼はニューラルネットで勾配降下法を使用していると思います。言うまでもなく、ニューラルネットの状況はより複雑です。以前にそれらを線形モデルで見た教育学的状況から、ニューラルネットで使用するための勾配降下はより合理的であると思います。
aginensky

3
私がいくつか見たAndre Ngビデオへのthetリンクを投稿してくれてありがとう。極端なことではありませんが、すでに知っていましたが、最適化を「学習」している大多数の人々が学習していることを見るのは怖いです。彼は彼のスタンフォード大学コンピュータサイエンス学科ザ・「面白い」のビデオがある中で、今教えられているものを知っていた場合、その遺伝子ゴラブ、コンピューティングおよびSVDを使用しての先駆者は、彼の墓に寝返りされるだろうyoutube.com/watch?v=B3vseKmgi8E、どの最小二乗2つのWORSTアルゴリズムを推奨し、比較する。
マークL.ストーン

回答:


43

線形最小二乗は

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)それについて何かを知っている人から最適化を学びます。


Nice post, why you think that Cholesky is not good given your system is PD though? (and not with a ridiculous condition number) BTW, I think in you want to say (or add) the notion of generalised inverse (used mostly for educational purposes obviously) either at the "SVD" or the "explicitly inverting" point.
usεr11852 says Reinstate Monic

2
BTW, it's ridiculous how frequently matrices with very high condition numbers are generated, especially by the unwashed masses (i.e., the majority of people doing linear least squares, especially given the democratization in access), who are not attuned to it.
Mark L. Stone

1
mldivide, i.e.. backslash, i.e., \ uses QR when m ~= n (least squares), as I stated in the 2nd sentence of my paragraph (2) above. You'd be surprised how much crap there is in MATLAB though - not just in the toolboxes, some of which are absolutely horrid, but to a lesser extent in some of the core functions as well.
Mark L. Stone

1
@MarkL.Stone, great answer! could you please explain a bit more on why it's not advisable to use Gradient descent for solving least square! (in my understanding it's just an iterative approach compared to the others(direction solution approaches) which you have mentioned above). Moreover, Could you also comment on the problem: "if I have n>=30,000 features for a problem, Normal equation method will be very slow since inverting n*n matrix would be terrible! on the other hand, GD would work in this case pretty! any thoughts on how SVD & QR will perform". any suggestion would be helpful.
anu

1
@ anu Only use gradient descent as a last resort. and that would only be if the problem is too big to be solved by SVD or QR. Never form the Normal Equations, let alone explicitly invert a matrix to solve Normal equations, NEVER. 30,000 features doesn't sound like very many for nowadays.
Mark L. Stone

0

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.


While not wrong I think your answer misses the bigger picture by focusing on a non-standard case. The vast majority of linear regression models are fitted by using QR decomposition employing a closed form solution. GD -gradient decent- is used as an example to introduce more advanced methods (eg. SGD - stochastic GD).
usεr11852 says Reinstate Monic

Can you elaborate what is QR decomposition?
Victor

3
You want to solve Ax=b. Given A=QR where R is upper triangular and Q is orthogonal, Ax=bQRx=bRx=QTb which can be solved by backward substitution (ie. fast) as R is triangular and QTQ=I. For very large matrices (millions of entries) this can be more expensive than an iterative solver eg. 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.
usεr11852 says Reinstate Monic

@usεr11852 yes ofcourse. That because, i wanted to keep the answer simple, so as to avoid concepts such as QR decompostion, remaining relevant to the domain of Ng's course level.
Vikas Raturi

3
QR was one of the top 10 algorithms of the 20th century. But time marches on, and even though effective algorithms for computing SVD date back to the 1960s, you have to look at the importance of the application areas. Therefore I believe SVD is the TOP algorithm of the 21st century. Quite frankly, have you ever heard of QR being used to recommend movies? No, SVD is used for that critical appiication. SVD clearly is the algorithm of choice when Twitter sends out unsolicited recommendations to conservative old geezers as to which teenage celebrities they should follow. Let's see QR do that!!!
Mark L. Stone
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.