オンライン学習とバッチ学習の違いは何ですか?


16

私は現在、John DuchiとYoram Singer の論文Efficient Online and Batch Learning using Forward-Backward Splittingを読みました。「オンライン」および「バッチ」という用語の使用法について非常に混乱しています。

「オンライン」とは、トレーニングデータの1単位を処理した後、重みパラメーターを更新することを意味すると考えました。次に、新しい重みパラメーターを使用して、トレーニングデータの次のユニットを処理します。

ただし、上記の論文では、使用法はそれほど明確ではありません。


1
そして質問は?
a.desantos

回答:


5

私には、バッチ学習とオンライン学習を正しく使用しているように見えます。セクション3では、学習、つまりバッチ学習を実行するためにデータセット全体に取り組んでいますが、セクション4では、オンライン学習アルゴリズムとして使用できる確率的勾配追従に切り替えます。

オンライン学習アルゴリズムとして確率的勾配追従を使用したことはありません。ただし、学習実行の途中で単純に最適化プロセスを停止することは可能ですが、それでも有用なモデルです。非常に大きなデータセットの場合、収束を測定して学習を早期に終了できるため、これは便利です。あなた自身が言ったように、新しいデータポイントごとにモデルを更新するので、オンライン学習方法として確率的勾配追従を使用できます。ただし、「トレーニングデータごと」と呼ぶことに注意してください。トレーニングデータはデータポイントではなくデータセットですが、「トレーニングデータごと」と言ってから理解できたと思います。


お返事ありがとうございます。セクションでは、著者はと言い、それぞれに同じ番号のトレーニングセットを使用する必要があります。バッチ学習では、tは反復回数を意味するため、混乱しました。ただし、オンライン学習では、tは使用するデータセットに対応します。ftft
ビビアン

11

バッチとオンライン学習

オンラインモードとバッチモードはわずかに異なりますが、どちらも放物線状のパフォーマンスサーフェスに適しています。大きな違いの1つは、バッチアルゴリズムがシステムの重みを一定に保ちながら、入力の各サンプルに関連するエラーを計算することです。オンライン版は常に重みを更新しているため、その誤差計算(および勾配推定)では各入力サンプルに対して異なる重みが使用されます。これは、2つのアルゴリズムが適応中に異なるポイントセットにアクセスすることを意味します。ただし、両方とも同じ最小値に収束します。

同じ数のデータ表示に対する2つの方法の重み更新の数は非常に異なることに注意してください。オンライン方式(LMS)は各サンプルを更新し、バッチは各エポックを更新します。つまり、

LMS更新=(バッチ更新)x(トレーニングセットのサンプル数)。

バッチアルゴリズムは、計算数の点でもわずかに効率的です。


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