勾配降下法が線形回帰に使用される主な理由は、計算の複雑さです:場合によっては、勾配降下法を使用して解を見つける方が計算的に安価(高速)です。
あなたが書いた式は、単変量の場合、つまり変数が1つしかない場合にのみ機能するため、計算的にも非常に単純に見えます。多変量の場合、多くの変数がある場合、式は紙上ではやや複雑になり、ソフトウェアに実装する場合はさらに多くの計算が必要になります。
ここで、行列を計算し、それを逆にする必要があります(下記の注を参照)。高価な計算です。参考までに、(設計)行列XにはK + 1列があり、Kは予測子の数とN行の観測値です。機械学習アルゴリズムでは、K> 1000およびN> 1,000,000になります。行列自体は、あなたが反転する必要があり、計算に少し時間がかかりますX ′ X X ′ X K × K
β=(X′X)−1X′Y
X′XX′XK×K行列-これは高価です。
したがって、勾配降下により、計算にかかる時間を大幅に節約できます。さらに、その方法により、単純な並列化が可能になります。つまり、計算を複数のプロセッサまたはマシンに分散できます。線形代数ソリューションも並列化できますが、より複雑であり、依然として高価です。
さらに、データの一部のみをメモリに保持する場合、勾配降下のバージョンがあり、コンピューターのメモリの要件が低くなります。全体として、非常に大きな問題の場合は、線形代数ソリューションよりも効率的です。
これは、機械学習のように数千の変数がある場合、次元が増加するにつれてさらに重要になります。
備考。Ngの講義で勾配降下にどれほど注意が払われているかに驚いた。彼はそれについて語るのに重要な時間を費やします。おそらくコース全体の20%です。私にとっては、これは実装の詳細に過ぎず、最適なものを見つける方法です。重要なのは、最適化の問題を定式化することであり、それがどの程度正確に見つかるかは重要ではありません。私はそれについてあまり心配しません。コンピュータサイエンスの人々に任せて、統計学者としてあなたにとって重要なことに集中してください。
これを言った後、解法アルゴリズムの計算の複雑さと数値の安定性を理解することは本当に重要であると言って資格を与えなければなりません。私はまだ、アルゴリズムの実装とコードの詳細を知っている必要はないと思います。通常、統計学者としてのあなたの時間の最良の使用ではありません。
注1。私は、教訓的な目的のためにマトリックスを逆にする必要があると書きました、そしてそれはあなたが方程式をどのように解くかではありません。実際には、線形代数の問題は、QRなどのある種の因数分解を使用して解決されます。この場合、行列を直接反転せず、数学的に同等の操作を行って答えを取得します。多くの場合、行列の反転は高価で数値的に不安定な操作であるため、これを行います。
これは、副作用として勾配降下アルゴリズムのもう1つの小さな利点をもたらします。設計マトリックスに共線性の問題がある場合でも機能します。通常の線形代数パスは爆破し、勾配降下は同一線上の予測子でも続行します。