問題タブ [mini-batch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
907 参照

machine-learning - Tensorflow - フル バッチで MNIST データセットを使用するにはどうすればよいですか?

機械学習について勉強しています。勉強していると、MNIST Datasetを使ったTensorflow CNNのコードを見つけました。

このコードでは、私の質問は batch = mnist.train.next_batch(100) についてです。これについて調べてみると、これはミニバッチで、MNIST データセットからランダムに 100 個のデータを選択するということです。ここで私の質問です。

  1. このコードを完全なバッチでテストしたい場合、どうすればよいですか? mnist.train.next_batch(100) を mnist.train.next_batch(55000) に変更するだけですか?
0 投票する
1 に答える
457 参照

machine-learning - apache spark MLlib を使用して Mini Batch Kmeans を実装する方法は?

Spark を使用して Kmeans を実装しました。しかし、私のデータは膨大で機能数も非常に多いため、Apache spark MLlib を使用してミニ バッチ kmeans を実装したいと考えています。それを実装する方法に関する例やドキュメントはありますか?

0 投票する
0 に答える
144 参照

tensorflow - Keras でミニバッチを 1 つずつ効率的に収集する

さまざまなサイズの画像を受信するネットワークを構築する必要があります。サイズ変更やトリミングをしたくないので、完全な畳み込みネットワークを使用しています。

問題は、各画像のサイズが異なるため、ミニバッチを事前に作成できないことです。

1 つの解決策は、目的のミニバッチで最大の画像を取得し、他のすべての画像を同じサイズに合わせてゼロ パディングすることです。ただし、特に画像のサイズが大幅に異なるため (30px から 3000px まで)、時間とメモリの点で効率的ではありません。

私が現在使用している別の解決策は、もちろん異なるサイズの問題を解決する 1 のミニバッチを作成することですが、収束には適していません。

問題は、Keras が複数の入力から勾配を収集し、学習ステップを実行する方法を提供するかどうかです。

0 投票する
1 に答える
795 参照

python - ミニバッチ更新で L1 正則化を実行する

現在、ニューラル ネットワークとディープ ラーニングを読んでいますが、問題が発生しています。問題は、L2 正則化の代わりに L1 正則化を使用するように彼が提供するコードを更新することです。

L2 正則化を使用する元のコードは次のとおりです。

self.weightsL2正則化項を使用して更新されていることがわかります。L1正規化については、同じ行を更新して反映するだけでよいと思います

l1 正則化の重みの更新

推定できると本に書いてある

ここに画像の説明を入力

ミニバッチ平均を使用した用語。これは私にとって紛らわしい発言でしたが、各ミニバッチがnabla_w各レイヤーの平均を使用することを意味すると思いました。これにより、コードに次の編集を加える必要がありました。

しかし、私が得た結果は、約 10% の精度を持つノイズにすぎません。ステートメントを間違って解釈していますか、それともコードが間違っていますか? ヒントをいただければ幸いです。

0 投票する
0 に答える
340 参照

tensorflow - 教師なし学習のためのデータのミニバッチ (ラベルなし) のトレーニング

教師なし学習の問題のためにデータのミニバッチをトレーニングした人はいますか? feed_dict はラベルを使用し、教師なし設定で使用します。それをどのように克服しますか?損失関数に寄与しない偽のラベルを使用できますか?

基本的に、巨大なデータセットを反復処理してから、カスタム損失関数を最適化したいと考えています。ただし、データから明示的に新しいミニバッチを使用するときに、トレーニング パラメーター (重み) を保持する方法がわかりませんでした。

たとえば、データセット全体は 6000 ポイントで、ミニバッチ サイズは 600 です。現在、ミニバッチごとに、このミニバッチのデータ ポイントに基づいて重みが初期化されるため、新しい独立した重みパラメーターしか使用できませんでした。600 データ ポイントの最初のミニバッチで損失を最適化すると、最適化された重みが得られます。これらの重みをどのように使用して、次の 600 データ ポイントのミニバッチを最適化するのでしょうか。問題は、共有グローバル変数を使用できないことです。

stackoverflow フォーラムで調査しましたが、教師なしデータのミニバッチに関連するものは見つかりませんでした。

'f' は私のデータセット全体で、次元 D の N 点のテキスト データを言います U は次元 D の K クラスターを持つクラスター重心です

変数を次のように定義します。

次に、カスタム損失または目的関数を「目的」として定義します

次にオプティマイザを使用します

最後に、変数を次のように評価します

私が行き詰まっているのは、最終的にオプティマイザtrain_Wで使用されるデータ「f」のバッチを反復処理することです。これらのミニバッチに for ループがある場合、これらの反復ごとに新しい変数 train_W を割り当てます。次のミニバッチで使用できるように、この値を渡すにはどうすればよいですか?

この点に関するヘルプやポインタは本当にありがたいです。前もって感謝します!