オープンソースプロジェクトvowpal wabbitには、重量の更新に影響を与える3つの追加要因のオンザフライ(オンライン)計算によって強化されるオンラインSGDの実装が含まれています。これらの要因は、それぞれのコマンドラインオプションで有効/無効にすることができます(デフォルトでは、3つすべてがオンになり、--sgd
オプションにより、すべてがオフになります。つまり、「クラシック」SGDにフォールバックします)。
3つのSGD拡張オプションは次のとおりです。
--normalized
各機能の規模に合わせて調整された更新
--adaptive
適応勾配(AdaGrad)を使用(Duchi、Hazan、Singer)
--invariant
重要性を意識した更新(Karampatziakis、Langford)
一緒に、彼らはオンライン学習プロセスが以下の3ウェイ自動補償/調整を行うことを保証します:
- 機能ごとのスケーリング(大きい値と小さい値)
- 機能の重要度に基づく機能ごとの学習率の低下
- 例ごとの特徴の有病率/希少性に対する特徴ごとの適応学習率調整
要するに、学習者の偏見を減らしてより効果的にするために、さまざまな機能を事前に正規化またはスケーリングする必要はありません。
さらに、vowpal wabbitは、正則化オプションを使用した切り捨て勾配降下によるオンライン正則化も実装します。
--l1
(L1-ノルム)
--l2
(L2-ノルム)
複数のデータセットでこれらの拡張機能を使用した私の経験では、それぞれがコードに導入されたときにモデルの精度が大幅に向上し、収束がスムーズになりました。
これらの機能強化に関する詳細については、いくつかの学術論文をご覧ください。