閉形式の数学ソリューションが利用可能な場合、線形回帰に勾配降下法を使用する理由は何ですか?


74

私はオンラインで機械学習コースを受講しており、仮説の最適値を計算するための勾配降下について学びました。

h(x) = B0 + B1X

以下の式で値を簡単に見つけることができる場合、なぜ勾配降下を使用する必要があるのですか?これも簡単で簡単です。しかし、GDは値を取得するために複数の反復を必要とします。

B1 = Correlation * (Std. Dev. of y/ Std. Dev. of x)

B0 = Mean(Y) – B1 * Mean(X)

注:https : //www.dezyre.com/data-science-in-r-programming-tutorial/linear-regression-tutorialのように撮影

私は以下の質問をチェックしましたが、私にとっては理解するのが明確ではありませんでした。

なぜ勾配降下が必要なのですか?

最適化が分析ソリューションではなく勾配降下で解決されるのはなぜですか?

上記の回答では、GDと派生物の使用を比較しています。


5
線形回帰係数を推定するために勾配降下は必要ありません。
モニカの

8
@Sycoraxの「必要ない」は強力な声明です。反復法は、巨大なデータに役立つ場合があります。データマトリックスが非常に大きく、メモリに収まらないとしましょう。
ハイタオデュ

8
@ hxd1011問題に対するこの実用的な側面を明確にしていただきありがとうございます。私は純粋に数学的な用語で考えていました。
モニカを

回答:


90

勾配降下法が線形回帰に使用される主な理由は、計算の複雑さです:場合によっては、勾配降下法を使用して解を見つける方が計算的に安価(高速)です。

あなたが書いた式は、単変量の場合、つまり変数が1つしかない場合にのみ機能するため、計算的にも非常に単純に見えます。多変量の場合、多くの変数がある場合、式は紙上ではやや複雑になり、ソフトウェアに実装する場合はさらに多くの計算が必要なります。 ここで、行列を計算し、それを逆にする必要があります(下記の注を参照)。高価な計算です。参考までに、(設計)行列XにはK + 1列があり、Kは予測子の数とN行の観測値です。機械学習アルゴリズムでは、K> 1000およびN> 1,000,000になります。行列自体は、あなたが反転する必要があり、計算に少し時間がかかりますX X X X K × K

β=(XX)1XY
XXXXK×K行列-これは高価です。

したがって、勾配降下により、計算にかかる時間を大幅に節約できます。さらに、その方法により、単純な並列化が可能になります。つまり、計算を複数のプロセッサまたはマシンに分散できます。線形代数ソリューションも並列化できますが、より複雑であり、依然として高価です。

さらに、データの一部のみをメモリに保持する場合、勾配降下のバージョンがあり、コンピューターのメモリの要件が低くなります。全体として、非常に大きな問題の場合は、線形代数ソリューションよりも効率的です。

これは、機械学習のように数千の変数がある場合、次元が増加するにつれてさらに重要になります。

備考。Ngの講義で勾配降下にどれほど注意が払われているかに驚いた。彼はそれについて語るのに重要な時間を費やします。おそらくコース全体の20%です。私にとっては、これは実装の詳細に過ぎず、最適なものを見つける方法です。重要なのは、最適化の問題を定式化することであり、それがどの程度正確に見つかるかは重要ではありません。私はそれについてあまり心配しません。コンピュータサイエンスの人々に任せて、統計学者としてあなたにとって重要なことに集中してください。

これを言った後、解法アルゴリズムの計算の複雑さと数値の安定性を理解することは本当に重要であると言って資格を与えなければなりません。私はまだ、アルゴリズムの実装とコードの詳細を知っている必要はないと思います。通常、統計学者としてのあなたの時間の最良の使用ではありません。

注1。私は、教訓的な目的のためにマトリックスを逆にする必要があると書きました、そしてそれはあなたが方程式をどのように解くかではありません。実際には、線形代数の問題は、QRなどのある種の因数分解を使用して解決されます。この場合、行列を直接反転せず、数学的に同等の操作を行って答えを取得します。多くの場合、行列の反転は高価で数値的に不安定な操作であるため、これを行います。

これは、副作用として勾配降下アルゴリズムのもう1つの小さな利点をもたらします。設計マトリックスに共線性の問題がある場合でも機能します。通常の線形代数パスは爆破し、勾配降下は同一線上の予測子でも続行します。


17
しかし、Ng コンピューターサイエンスの人です。
アメーバは、モニカを復活させる

21
あなたの発言について:数学者として、私はかつて同意しました。しかし、今の私の理解は、現代の機械学習では、最適化の方法は本質的に最適化される目標と結びついているということです。ドロップアウトなどの一部の形式の正規化は、目的ではなくアルゴリズムの観点からより明確に表現されます。つまり、ディープネットを取得し、目的関数を維持しながら最適化方法を変更すると、パフォーマンスが大きく異なる場合があります。実際には、時々 、より良いオプティマイザは...実際にはより悪い結果をもたらす
A.レックス

14
ちょっとした注意:反転さ ないでください。代わりに、あなたは思い解く線形方程式システム用。抽象的には同じですが、数値的にははるかに安定しており、潜在的にはさらに安くなっています。、X '、X β = X '、Y βXXXXβ=Xyβ
S. Kolassa -モニカ元に戻し

3
一方、QR分解を使用した@AnderBiguriソリューションは後方安定であるため、入力データの不確実性を考慮して可能な限り正確なソリューションを提供します。
フェデリコポロニ

7
私たちは、すべてのストップ筆記べきだと思いますと書くだけすべての時間を。X T X β = XとTの Yβ=(XtX)1XtyXtXβ=Xty
マシュードゥルーリー

21

まず、次の2つの投稿を読むことを強くお勧めします(重複していない場合)

JMの答えをチェックしてください

線形回帰ではどのアルゴリズムが使用されますか?

(数値安定性の観点から)マークの答えをチェックしてください

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


要するに、我々は二乗損失と線形回帰問題解決したいと 私たちは、派生設定することができに、それが解決されます線形システム

minimize Axb2
2AT(Axb)0
ATAx=ATb

高レベルでは、線形システムを解くには2つの方法があります。直接法と反復法。直接法は解き、勾配降下法(1つの反復法)は直接解き。ATAx=ATbminimize Axb2

直接法と比較して(Say QR / LU Decomposition)。大量のデータがある場合、またはデータが非常にまばらな場合、反復法にはいくつかの利点があります。

一方、Andrew Ngが強調している理由の1つは、それが一般的な方法(機械学習で最も広く使用されている方法)であり、ロジスティック回帰やニューラルネットワークなどの他のモデルで使用できるためだと思います。


あなたは、絶対に正しい。SGDは、大量のデータを処理する際に非常に役立ちます。Ng教授が示す方法は、最も古典的で純粋な方法です。明確なアイデアを得るには、その時点から開始する必要があります。そのモットーを理解できれば、線形推定全体が彼/彼女にとって非常に明確になります。
サンディパンカルマカール

1
データmaxtrixのサイズは、の関係を使用して、実際には問題ではありません。と観測値を一度に計算できます。これは、実際にコンピューターのメモリが今日よりもはるかに限られていた時代にSASで行われた方法です。の列数が制限要因です。XTX=xixiTXTXXTyX
jbowman

6

Sycoraxは正しいので、線形回帰を推定するときに勾配降下は必要ありません。あなたのコースは、より複雑なバージョンの序文として勾配降下法を教えるために簡単な例を使用しているかもしれません。

ただし、私が付け加えたいのは、現在、モデルの過剰適合を防ぐために勾配降下を早期に終了することを含む小さな研究分野があるということです。


2
過剰適合ステートメントについては、リンクを提供してもらえますか?繰り返し回数を制限するよりも正則化用語を追加する方が良いですか?
ハイタオデュ

Goodfellow et alによるディープラーニングの第7章を見ることができます。この章では、ニューラルネットの過剰適合を防ぐための早期停止について言及しています。
バットマン

2
早期停止による正則化は決して新しい手法ではありません。:それは周知の技術と言う、で、最急降下の繰り返しだen.wikipedia.org/wiki/Landweber_iteration
CFH

3

私が間違っていなければ、Andrew Ng教授によって提供されたMOOCに向かっていると思います。最適な回帰係数を見つけるには、大きく2つの方法があります。一つは、単に見つけることによって、すなわち、正規方程式を用いることによるものである及び第二のことである最低の最小化引用した仮説から導き出される二乗基準。ところで、最初の方法、つまり正規方程式は、2番目の方法、つまり最適化方法の積です。(XTX)1XTy

あなたが言及した方法、すなわち相関を使用する方法は、1つの予測変数と1つの切片量にのみ適用できます。フォームに注目してください。それでは、予測変数の数が1つ以上の場合、どのような方法がありますか?次に、他の方法、つまり正規方程式または最適化に頼らなければなりません。

なぜ、最適化(ここでは勾配降下)なのか、直接正規方程式は利用可能です。正規方程式では、行列を反転する必要があることに注意してください。ここで、行列の反転には、計算にコストがかかります。ここで、は行列の行数、つまり観測値です。さらに、条件が悪い場合、推定で計算エラーが発生します。したがって、このタイプの問題から私たちを救うことができるのは、勾配降下型の最適化アルゴリズムです。別の問題は、回帰係数の推定における過剰適合と不十分適合です。O(N3)NXX

あなたへの私の提案は、単に問題を解決するためではありません。理論を理解してみてください。Ng教授は、MOOCで機械学習を親切に教えているこの世界で最高の教授の1人です。したがって、彼がこのように指示しているとき、それはいくつかの潜在的な意図を持たなければなりません。私の言葉を気にしないでください。

ではごきげんよう。


5
「マトリックスの反転」は強く推奨されません。QRは、線形システムを解くためにより数値的に安定しています。
ハイタオデュ

1
私は計算上の議論に同意します。ただし、オーバーフィッティングまたはアンダーフィッティングは、GD対正規方程式の使用とは関係なく、(回帰)モデルの複雑さとは関係ありません。両方の方法(適切に機能する場合はGD)は、同じ最小二乗解(存在する場合)を見つけるため、同じ量でデータをオーバーまたはアンダーフィットします。
ルーベンファンベルゲン

2

まず、はい、本当の理由はティム・アトレイデスによって与えられたものです。これは教育的な演習です。

ただし、可能性は低いものの、ネットワークソケットからストリームされる数兆個のデータポイントに対して線形回帰を実行することは可能です。この場合、分析的ソリューションの素朴な評価は実行不可能であり、一方、確率的/適応的勾配降下法のいくつかのバリアントは、最小限のメモリオーバーヘッドで正しいソリューションに収束します。

(線形回帰の場合、分析ソリューションを繰り返しシステムとして再定式化できますが、これは一般的な手法ではありません。)


2

もう1つの理由は、勾配降下法がより一般的な方法であるということです。多くの機械学習の問題では、コスト関数は凸型ではないため(行列分解、ニューラルネットワークなど)、閉形式のソリューションを使用できません。これらの場合、勾配降下を使用して、いくつかの適切な局所最適点を見つけます。または、オンラインバージョンを再度実装する場合は、勾配降下ベースのアルゴリズムを使用する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.