問題タブ [convolutional-neural-network]
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.
machine-learning - オブジェクト検出のための CNN における損失関数の周期的挙動
TensorFlow で CNN をトレーニングして、回帰を使用してテキストの周囲に境界ボックスを出力することにより、画像内のテキスト ローカリゼーションを実行しようとしています。テキストを含まないさまざまな画像に IIIT 5K-Word データセットの画像を貼り付けてカスタム データセットを作成し、[pos_x、pos_y、幅、高さ] の形式で各画像の境界ボックスのラベルを作成しました。各画像にはテキストが 1 つしか含まれていないため、ネットワークは画像ごとに 1 つのバウンディング ボックスを予測するだけで済みます。例えば:
l2lossとブログから、tensorflow の l2_loss がこのタスクに適しているかもしれないという印象を受けました。しかし、私の損失は周期的なパターンで振動することにより、非常に奇妙な振る舞いをします。ハイパーパラメータの選択が不適切なため、奇妙に見えます。損失の計算方法に問題があると思われます(例: 以下)。YOLO や R-CNN などのより複雑なモデル以外のオブジェクト検出の実装に関する多くの情報を見つけることができませんでした。
これが私のモデルです:
20 エポックのトレーニング後、損失は次のようになります。
損失を tf.reduce_mean(tf.nn.l2_loss(diff)) に変更してバッチ全体の平均誤差を取得しようとしましたが、同じ種類のプロットが生成されました。バッチの損失を計算する方法に明らかな間違いはありますか?