確率的勾配降下法(SGD)は、機械学習と数理最適化の両方において最も成功した技術の一つです。Lokadは、異なるプログラミングを通じて、供給チェーンの目的でSGDを長年にわたり積極的に活用してきました。ほとんどのクライアントのデータパイプラインのどこかに、少なくとも1つのSGDがあります。

ソフトウェアでは、速度が機能です。私たちは、SGDの実装を速くすることを目指しましたが、その決定論的な振る舞いを犠牲にすることなく。実際、決定論は、製品レベルの供給チェーンのセットアップを提供するために不可欠です。つまり、SGDを2回実行すると、まったく同じ結果が得られるはずです。

非常に高次元のデータに対する再現可能な並列確率的勾配降下法

この夏、私たちはZiyad Benomarを迎え、私たちのSGDの実装の「再現可能な高速化」に専念したインターンシップを行いました。Ziyad Benomarは、素晴らしい成果物を提供してくれましたので、以下で共有いたします。

短いバージョンでは、ベースラインのSGDと比較して、5倍の高速化と6倍の計算コストを実現しています。Lokadアーキテクチャでは、ボトルネックはデータの読み込みになります。パフォーマンスの最適化は、終わりのない「モグラたたき」です。ボトルネックが解消されると、新たなボトルネックが現れます。このI/Oの問題を解決することが、私たちの次の明確なステップです。お楽しみに!


Title: 非常に高次元のデータに対する再現可能な並列確率的勾配降下法

Author: Ziyad Benomar, エコール・ポリテクニーク

Abstract: 分散確率的勾配降下法アルゴリズムとその複数プロセッサ上での実装の研究に興味があります。私たちは、パフォーマンスと計算速度の観点から問題に取り組み、また、同じデータセットで実行した場合に同じ結果を出すことを強制します。主にPR-SGDアルゴリズムに焦点を当て、コンピュータのRAMにデータを読み込むのに非常に長い時間がかかる場合の実行速度を改善するいくつかの適応を行います。提案された各アルゴリズムについて、収束の証明と実行時間の推定を行います。最後に、私たちは定義したε-パフォーマンスの概念を用いてアルゴリズムを比較します。

PDFをダウンロード