[ジャン・エルシア | 知識学習 | イング]

ヒートマップ

ガウス ヒートマップは、各キー ポイントの位置にガウス分布関数を適用して、キー ポイントの位置を表すキー ポイントを中心とするガウス ヒート マップを生成します。具体的には、キーポイントを中心とするガウス分布関数は、そのポイントで最大値に達し、中心ポイントからの距離が増加するにつれて徐々に減少しますこの方法は、キー ポイントの位置を連続した滑らかな関数として表し、ピクセル レベルのキー ポイント検出タスクに適しています。キー ポイント検出タスクでは、通常、各キー ポイントの位置確率分布を表すガウス ヒートマップを生成する必要があります。ガウス ヒート マップは、連続性と滑らかさを備えた滑らかな確率分布であり、キー ポイントの位置情報をより適切に表現できます。

ガウス ヒート マップを生成する場合、通常の方法は、キー ポイントを中心とする標準偏差 $\sigma$ の 2 次元ガウス分布を生成し、このガウス分布を画像内の対応する位置に重ね合わせる方法です。最後にガウス ヒート マップを取得します。ガウス ヒート マップを生成する場合、通常は適切なガウス カーネル サイズ $k$ が選択され、ガウス分布に適用されてサイズ $k \times k$ のガウス カーネル $G$ が生成されます。次に、このガウス カーネル $G$ と元のヒート マップ $H$ に対して畳み込み演算を実行して、滑らかなヒート マップ $H'$ を取得します。この畳み込みプロセスは、PyTorch の関数を使用するなど、通常の畳み込み操作を使用して実装できますconv2d実装時には、ガウス カーネルの生成と正規化、畳み込み時の境界処理などの問題に注意を払う必要があります。

||

高品質のガウス ヒートマップを生成するには、通常、ヒートマップに対して畳み込み平滑化操作を実行する必要があります。これは、元のガウス ヒート マップにはノイズや不連続性が含まれることが多く、これらの問題がキー ポイントの検出の精度に一定の影響を与える可能性があるためです。ガウス ヒート マップに対して畳み込み平滑化操作を実行することで、これらのノイズを除去し、ガウス ヒート マップをより滑らかで連続的なものにすることができ、キー ポイント検出の精度が向上します。ガウス平滑化ヒートマップは、元の画像を畳み込みガウス ヒートマップとは異なり、ガウス平滑化ヒートマップでは、ヒート マップを生成するときに画像内の隣接するピクセルの類似性が考慮されます。これにより、ヒート マップが空間的により連続的になり、ピクセル レベルを超えるキー ポイント検出タスクに適したものになります。さらに、ガウス ヒート マップはキー ポイントの位置のガウス分布をモデル化することによって取得されるため、通常は実装時に畳み込み演算を通じてガウス カーネルを生成し、それを画像の各ピクセルに適用して、対応するガウス カーネルを取得する必要があります。ヒートマップ。このプロセスでは、畳み込み平滑化操作はガウス カーネル生成の一部であり、滑らかなガウス カーネルを生成し、高品質のガウス ヒート マップを取得するのに役立ちます。

||

畳み込み平滑化 (Convolutional Smoothing) は、一般的に使用される画像処理方法であり、その主な考え方は、画像をフィルタリングして画像内のノイズと細部を除去し、画像をより滑らかで連続的なものにすることです。具体的には、畳み込み平滑化では、画像内の各ピクセルの周囲の近傍に対して加重平均演算を実行して、ピクセルの平滑値を取得します。加重平均の重みは、通常、畳み込みカーネル内の値を使用します。畳み込みカーネルは 2 次元の行列で、中心点の値が最大となり、他の点の値は中心点から離れるにつれて徐々に減少します。中心点が増加します。畳み込み平滑化演算は、畳み込みカーネルと画像の畳み込み演算によって実現できます。畳み込み平滑化は、画像内のノイズとディテールを効果的に低減し、画像をより滑らかにすることができます。これは、特定の画像処理タスクに非常に役立ちます。たとえば、キー ポイント検出タスクでは、元の画像に畳み込み平滑化操作を実行することにより、より滑らかな画像が得られます。明瞭かつ連続的な特徴表現により、キーポイント検出の精度向上に貢献します。

スムージングでノイズを除去できる理由: 画像処理やコンピュータ ビジョンでは、スムージング操作により画像のノイズを軽減できます。これは、平滑化操作により画像内の高周波ノイズが除去され、画像内の低周波情報が保持されるためです。画像では、通常、高周波信号は画像の詳細とノイズを表し、低周波信号は通常、画像の全体的な特性を表します。平滑化操作により、画像内の高周波ノイズを除去し、画像内の低周波情報を保持することができるため、画像内のノイズが軽減され、画像内の特徴が強調表示されます。

スムージング操作では、通常、スムージング カーネルを使用して画像を畳み込みます。スムージング カーネルは、特定の範囲内のピクセル値を平滑化することができるため、画像内のノイズや詳細が低減され、画像内の特徴が強調表示されます。一般的に使用されるスムージング カーネルには、平均カーネルとガウス カーネルが含まれます。その中でも、ガウス カーネルは、優れた平滑化効果と調整可能なパラメータにより、通常広く使用されています。

スムージング操作は画像のノイズを減らすだけでなく、画像をぼかすことにも注意してください。したがって、実際のアプリケーションでは、よりバランスのとれた効果を得るために、特定の状況に応じて適切なスムージング カーネル サイズとパラメーターを比較検討する必要があります。

2D キーポイント座標は、予測されたヒートマップから抽出されます文献 [2] に基づいて、著者は微分可能な局所ソフト引数最大法を使用して、ヒート マップの量子化誤差によって引き起こされる誤差を削減します。具体的には、各キーポイントについて、著者はまずソフトマックス関数を使用してヒートマップを確率分布に変換します。次に、グリッド座標と対応する確率値を 2D 画像内のピクセルとして扱い、双一次補間を使用して極大値の位置を推定しました。最後に、これらの位置は予測された 2D キーポイント座標にデコードされます。この方法は従来の argmax 方法よりも滑らかで、離散化によって生じるエラーを減らすことができます。

||

argmax は、特定の領域内で最大値を達成する関数の独立変数を見つけるために使用される数学関数です具体的には、シーケンスまたはベクトル内で、argmax 関数は最大値を持つ要素のインデックスを返します。たとえば、argmax([3, 5, 1, 7]) は、配列内の 7 のインデックスが 3 であるため、3 を返します。

ソフトマックス関数は、K 次元ベクトル (K は任意の正の整数) を別の K 次元ベクトルに圧縮するために使用される数学関数でもあり、ベクトルの各要素が 0 ~ 1 の間にあり、すべての要素の合計が 1 になるようにしますソフトマックス関数は分類タスクのトレーニングと予測のためにモデルの出力を確率分布に変換するために深層学習でよく使用されます。

argmax 関数は通常、数列またはベクトル内の最大値の位置情報を取得するために使用され、softmax 関数はベクトルを確率分布に変換するためによく使用されます場合によっては、softmax 関数の出力を使用して、argmax 関数を通じて最終的な分類結果を取得することもできます。

||

ヒートマップ(ヒートマップ)を取得したら、対応する座標点(キーポイント)に変換する必要がありますが、この処理は argmax 関数を使用して実装できます。ポイント。

しかし、この方法には問題があり、ピクセル座標が離散的であるため、argmax で得られる座標に誤差が生じる可能性があります。この問題を解決するには、関数 Soft-argmax を使用して、離散ピクセル座標を連続座標値に変換します。Soft-argmax関数は、各ピクセルの座標値に対応するピクセルの確率値を乗算し、すべてのピクセルの重み付けされた座標を合計することによって取得できます。この方法により、離散化による誤差を軽減できます。

ローカルのSoft-argmax は、 soft-argmax に基づく改良です。ローカルのソフト引数最大値は、ピクセル座標をローカル領域に制限して、座標点が敏感になりすぎるのを防ぎ、エラーをさらに減らすことができます。この方法では通常、ローカル領域の範囲を決定するためにコンボリューション カーネル サイズとステップ サイズを設定する必要があります。Local Soft-argmax は、ガウス ヒートマップから座標情報を抽出する方法です。この手法では、各特徴点はヒートマップ上のガウス分布のピークとして表現されるため、各点の座標はピークの位置とみなすことができます。従来の argmax 演算では、最大値の位置のみが返され、ピーク値付近の微妙な変化が無視されるため、量子化エラーが発生します。

この問題を解決するために、Local Soft-argmax は微分可能な方法を使用してヒート マップを補間し、より正確な座標を取得します。具体的には、各ピークをローカル座標系の中心として扱い、各ピークの周囲のピクセルに双一次補間を実行して、ピークのサブピクセル レベルの座標を取得します。したがって、この方法は量子化誤差を効果的に削減し、座標予測の精度を向上させることができます。

||

ヒートマップ定量化エラー: ヒートマップでは、各ピクセルがキーポイントの確率分布を表します。したがって、ヒート マップをキーポイント座標に変換するときは、最も可能性の高い位置、つまりヒート マップ内の最大値ピクセルを見つける必要があります。最大ピクセルは離散ピクセル座標としてのみ表現できるため、このプロセスは量子化と呼ばれます。ピクセルの解像度が低い場合、量子化エラーが発生します。つまり、予測されたキーポイントの位置が実際の位置からずれる可能性があり、モデルのパフォーマンスの低下につながります。したがって、微分可能な局所ソフト引数最大法を採用すると、この量を削減できます。

離散化されたピクセル座標: ピクセル座標は、画像内の各ピクセルの座標を指し、連続した実数値ではなく整数値として表現されます。たとえば、1000x1000 の画像では、各ピクセルの座標は (0,0) から (999,999) の範囲の整数で表されます。ここで離散的とは、ピクセル座標が連続的ではなく有限かつ離散的であることを意味します。実数値です。連続関数の離散化では、ピクセル座標が典型的な離散化表現です。

離散化とは、コンピュータによって処理されるデータが離散形式で表現され、ピクセル座標、ピクセル値などがすべて離散形式で存在するためです。したがって、コンピューター ビジョン タスクを実行する場合は、連続データを離散データに変換する必要があります。たとえば、人間の姿勢推定では、キーポイントの座標を連続値から離散ガウス ヒート マップに変換する必要があります。離散化は、コンピューターのデータ処理方法に準拠するだけでなく、計算量と記憶スペースを効果的に削減できるため、コンピューターの計算と処理の速度が向上します。

||

sargmax (Scaled Argmax)は、セマンティック セグメンテーション、人間の姿勢推定など、コンピューター ビジョンのさまざまなタスクに適用できる argmax の改良版です。argmax では通常、離散点を取得しますが、sargmax では、その離散点の周囲の領域の加重平均を取得しますこの加重平均の重みは、離散点とその周囲のピクセルとの距離によって決まります。

Soft-argmax は、離散 argmax 演算を微分可能なソフトマックス演算に置き換えることにより、空間変換の離散サンプリングを回避する sargmax の変形です。sargmax と比較して、soft-argmax は、ほぼ連続的な関数に対してよりスムーズかつ連続的に応答します。

Local Soft-argmax は、セマンティック セグメンテーション タスクに対して提案された改善です。従来の Soft-argmax では、すべてのピクセルが均等に重み付けされますが、ローカル Soft-argmax では、特定のピクセルに近いピクセルのみが重み付けされますこの重み付け方法により、画像の局所的な詳細を認識するモデルの能力が向上します。

sargmax_coord属性は、予測ヒート マップに基づいて取得される予測ヒート マップ上の各キー ポイントの座標であり、画像内の各キー ポイントの位置を表します。このコード スニペットでは、このプロパティがコピーされ、manual_pred手動でマークするときにマーカーの位置を決定するために使用できるようになります。

正規化されていないガウス カーネル

パラメータσはピークの伝播を制御するために使用されます

ヒートマップキーポイント検出アルゴリズム_CSDNブログ読書メモ

一般に、姿勢推定タスクは、ヒートマップ ベースと回帰ベースの 2 つの流派に分けることができます。

主な違いは監視情報の違いにあります。ヒートマップ ベースの方法ではモデルを監視してガウス確率分布マップを学習します。つまり、GroundTruth の各ポイントはガウス ヒート マップにレンダリングされ、最終的なネットワーク出力は K 特徴です。 K個のキーポイントに対応するマップを作成し、argmaxまたはsoft-argmaxを通じて推定結果として最大値ポイントを取得します。この方法ではガウス ヒート マップをレンダリングする必要があり、ヒート マップの最大値点が結果に直接対応するため、必然的に比較的高解像度のヒート マップ (通常は 64x64) を維持する必要があります。 (誤差の下限が大きすぎます。精度が大幅に低下します)、必然的に大量の計算とメモリのオーバーヘッドが発生します。

回帰ベースの手法は非常に単純かつ粗雑で、モデルを直接監視して座標値を学習し、座標値の L1 または L2 損失を計算します。ガウス ヒート マップをレンダリングして高解像度を維持する必要がないため、ネットワークによって出力される特徴マップは非常に小さくなります (14x14 または 7x7 など)。Resnet-50 を例にとると、FLOP はその 20,000 倍です。ヒートマップベースの方法。まず、これは計算能力の低いデバイス (携帯電話など) に非常に適しており、実際のプロジェクトではこの方法がよく使用されます。

回帰ベースの手法のメリットを一言で言うと、単純に以下の3点に集約されます。

1. 高解像度のヒート マップがなくても、何の負担にもなりません。計算コストとメモリのオーバーヘッドが同時に大幅に削減されます。
2. 連続出力なので量子化誤差の心配がありません。(Heatmap-based で出力されるヒートマップの最大値点は、元の画像に対応する点によって決まります。出力されるヒートマップの解像度が小さいほど、拡大後の対応点の精度は低くなります。)ベースの出力は値の小数点以下の桁数が多く、精度はスケーリングの影響を受けません)
3. 高いスケーラビリティ。1 段階または 2 段階、画像ベースまたはビデオベース、2D または 3D のいずれであっても、回帰ベースの方法を使用できます。この方法は、共同トレーニング用に 2D データと 3D データを組み合わせるために以前から使用されてきました。これは、出力が高度にカスタマイズされているため、ヒートマップ ベースの方法では実行できないことです。2D 出力では 2D ガウス ヒート マップをレンダリングする必要があり、3D 出力では 3D ガウス ヒート マップをレンダリングする必要があります。計算量とメモリのオーバーヘッドも急増しました。

ヒートマップ ベースの手法では、ガウス ヒート マップを明示的にレンダリングすることで、モデルが出力のターゲット分布を学習できるようになります。また、モデルが単純にフィルタリング手法を学習し、入力画像をフィルタリングして、最終的に必要なガウス ヒート マップを作成するものとみなすこともできます。これにより、モデルの学習の難易度が大幅に簡素化され、畳み込みネットワークの特性と非常に一致しています (畳み込み自体は一種のフィルタリングとみなすことができます)。また、この方法は、結果を除く内部のすべてと比較して、学習の分布を規定します。ボックスの回帰ベースの方法は、さまざまな状況 (オクルージョン、動的ブラー、切り捨てなど) に対してはるかに堅牢です。

上記の利点に基づいて、姿勢推定の分野ではヒートマップベースの手法が主流であり、SOTA ソリューションもこれに基づいており、これは学術研究とアルゴリズム実装の分離にもつながっています。指標は急上昇していますが、プロジェクトが実装されると、エンジニアは、使用するメソッドが遅く、メモリを消費し、実際のプロジェクトでは使用できないため心配するだけです。
-------------------------------------------------- - - -分割線 - - - - - - - - - - - - - - - - - - - - - - ----------

(2) 予測ガウス ヒート マップ手法を使用し、argmax は、コーナーネット、グリッド-rcnn、cpn などの座標点であるピークに対応するインデックスを見つけます。一人の人物の姿勢推定を例にとると、出力は 1 人だけを含む画像、入力はすべてのキー ポイントのガウス ヒート マップ、ラベルは各キー ポイントに基づいて生成されたガウス マップです。各人が 17 個のキー ポイントを回帰したい場合、予測された出力特徴マップは (batch,h_o,w_o,17) になります。つまり、各チャネルはジョイント ポイントを予測するヒート マップとなり、各チャネルで argmax が実行され、次のようになります。整数座標を取得します。
ガウス ヒート マップに基づく出力方法は、直接回帰座標点よりも精度が高くなります。その理由は、ガウス ヒート マップの出力方法がよりよく表現されているためではなく、出力特徴マップが大きく、空間一般化能力が強いためです。したがって、当然のことながら、(1) 直接回帰座標予測を引き続き使用し、完全な接続ではなく完全な畳み込みを使用する場合、精度は依然としてガウス ヒート マップよりも低いことが説明できます。フル畳み込み出力ですが、yolo-v2、ssdなどの出力特徴マップは非常に小さいため、空間汎化能力は方法(2)ほど良くありません。数値の観点からは、明らかに優れています。座標点を直接返すのは、座標点を直接返す場合、出力は浮動小数点数なので精度が失われませんが、ガウス熱出力は整数である必要があり、理論上の誤差の下限が含まれるためです。入力画像が 512x512 で、出力が 4 倍の 128x128 であると仮定し、キーポイントの位置が 507x507 であるとして、4 倍に縮小した後、何もせずにガウス ヒート マップを復元しても、エラーの場合、最大 507-126*4=3 ピクセルのエラーが発生します。この 3 が理論上のエラーの下限です。低減係数が増加すると、理論上の誤差の下限が増加します。したがって、現在のほとんどの手法は速度と精度を犠牲にして、4 倍の削減方法を採用しています。

このタイプのアプローチの利点は、通常、全結合層の直接回帰座標点法よりも精度が高いことですが、欠点も明らかであり、入力から座標点出力までが完全な差分モデルではないためです。座標点へのヒートマップは、argmax メソッドを通じてオフラインで取得されます (実際、argmax は微分できないため、代わりにソフト argmax を使用します。これを行う論文もあります)。また、必要な出力特徴マップが非常に大きいため、トレーニングと転送の速度が非常に遅く、メモリの消費量も多くなります。

ヒートマップで座標を生成する過程では、(1) 使用する argmax などの処理過程が微分不可能で直接学習できない、(2) ヒートマップを座標に生成する過程で量子化誤差が生じる、というデメリットがあります。ヒートマップと入力解像度の間のダウンサンプリング係数が大きいほど、量子化誤差も大きくなります。さらに注目すべき点は、監視がヒートマップに基づいていることです。これにより、損失関数がメトリクス (座標) から分離されます。推論中は数値座標の計算に特定のピクセルのみを使用しますが、トレーニング中はすべてのピクセルに損失が発生します。

要約すると、ガウス ヒート マップの予測精度は通常、回帰法の予測精度よりも高いですが、いくつかの非常に厄介な問題があります。(1) 出力マップが非常に大きいため、メモリ使用量が多くなり、推論とトレーニングの速度が遅くなります。 (2) 理論上の誤差の下限がある、(3) mse 損失により学習結果がずれる可能性がある、(4) 完全差分モデルではない、(4) 完全差分モデルではない。

プーリング

通常のプーリング(最大プーリングまたは平均プーリング) は、通常、各特徴マップ上で独立して実行されます。各特徴マップを重複しないいくつかのサブ領域に分割し、各サブ領域の最大値 (または平均) を取得します。このサブ領域の出力として。具体的には、C×W×H の入力に対して、Max Pooling は各 C を個別にダウンサンプリングし、W と H をいくつかの重複しないサブ領域に分割し、各サブ領域の最大値を見つけます。サブ領域; 平均プーリングは、各 C を個別にダウンサンプリングし、W と H をいくつかの重複しないサブ領域に分割し、各サブ領域の平均値をサブ領域の出力として取得します。最終的な出力特徴マップの形状は C'×W'×H' です。ここで、C'=C はチャネルの定数であり、W' と H' は入力 W と H、サイズとステップ サイズによって決まります。サブリージョンの。

通常のプーリングは、畳み込みニューラル ネットワークで一般的に使用される操作です。設定されたウィンドウ サイズに従って、入力特徴マップをいくつかの領域に分割します。次に、各領域の値に対して平均値や最大値を取るなどのプーリング操作を実行して、プールされた値を取得します。このようなプーリング結果により、通常、データが圧縮され、計算量が削減され、モデルの堅牢性が向上します。

グローバル プーリング操作は、通常のプーリングとは異なり、特徴マップを複数の領域に分割してプーリング操作を行うのではなく、特徴マップ全体をプールします。グローバル平均プーリングは、特徴マップ内の各チャネルの値を平均してチャネル内の単一の値を取得することですが、グローバル最大プーリングは、特徴マップ内の各チャネルの値に対して最大演算を実行して取得することですチャネル内の単一の値。このプーリング操作は、特徴マップ全体のグローバル情報を取得でき、特徴抽出および分類タスクでよく使用されます。

入力特徴マップの場合、その次元は [C, W, H] です。ここで、C はチャネル数を表し、W は特徴マップの幅を表し、H は特徴マップの高さを表します。グローバル平均プーリングでは、各チャネルの特徴マップが平均されてチャネル内の単一の値が取得されるため、出力特徴マップの次元は [C, 1, 1] になります。つまり、チャネルごとに、そのすべての要素が平均プーリング操作の影響を受け、その結果、チャネル内の単一の値が得られます。

グローバル最大プーリングでは、特徴マップ全体の各チャネルのすべてのピクセル値の最大値を取得して、チャネル内の単一の値を取得します。たとえば、入力特徴マップのサイズが C×W×H の場合、C はチャネル数、W と H はそれぞれ幅と高さであり、グローバル最大プーリングの後、各チャネルは長さのベクトルになります。 1.

グローバル平均プーリングでは、特徴マップ全体上の各チャネルのすべてのピクセル値を平均して、チャネル内の単一の値を取得します。グローバル最大プーリングと同様に、各チャネルは長さ 1 のベクトルになります。

これら 2 つのプーリング方法は通常、画像の特性をグローバルに捉えるために、特徴マップ全体のグローバル情報をベクトルにエンコードするために使用されます。

通常のプーリングとグローバル プーリングの結果は、入力特徴マップに対して次元削減操作を実行して、出力特徴マップを取得することです。各チャネルはプールされます。違いはプーリング領域で、通常のプーリングの出力特徴マップの空間サイズは入力特徴マップの空間サイズより小さくなりますが、グローバルプーリングの出力特徴マップは要素が1つしかありません(と理解することもできます)。スペースサイズは1×1です)通常のプーリングは局所的な領域の平均値や最大値を取る操作ですが、グローバルプーリングは特徴マップ全体の平均値や最大値を取る操作です。したがって、グローバル プーリングでは特徴マップ全体の情報を集約して 1 つの値を生成できますが、通常のプーリングではより小さいサイズの特徴マップが生成されます。

畳み込みニューラル ネットワークの出力特徴マップは、入力画像のサイズよりも小さくなります。この設計により、計算コストが削減されるだけでなく、出力解像度の低下によって引き起こされる正点と負点の間の不均衡の問題も軽減されます

簡単に言うと、畳み込みニューラル ネットワークが特徴抽出を実行するとき、通常、複数の畳み込みとプーリング操作を通じて特徴マップのサイズを徐々に縮小し、それによってより抽象的でより高いレベルの特徴を抽出します。これらの操作により解像度が低下するため、出力特徴マップのサイズは通常、入力画像のサイズよりも小さくなります。

この設計では、出力特徴マップのサイズが小さくなるにつれて、計算する必要がある特徴点の数も減るため、計算コストを節約できます。さらに、出力分解能が低下したため、正の点と負の点の数の差が小さくなり、結果として生じる不均衡の問題が軽減され、モデルの安定性とパフォーマンスが向上します。

出力解像度を下げると、正のサンプル数と負のサンプル数の間の不均衡が緩和されますが、通常、その影響は限定的です。具体的には、入力画像に対して、複数の畳み込みとプーリング操作を経て、出力特徴マップのサイズが元の H×W から h×w に縮小された場合、各ピクセルは、対応するサイズの局所領域を指します。元のイメージの k × k、ここで k は通常奇数です。したがって、出力特徴マップ上の各ピクセルは、元の画像内の小さな領域に対する畳み込み演算とプーリング演算の結果とみなすことができます。

分類タスクでは、通常、正と負のサンプルの数は相対的にバランスが取れているため、出力特徴マップ上の各ピクセルに対応する正と負のサンプルの数も相対的にバランスが取れています。ただし、ターゲット検出やセマンティック セグメンテーションなどの特殊なケースでは、正のサンプル数と負のサンプル数の間の不均衡の問題が深刻になる可能性があり、この場合、出力解像度を下げることでこの問題をある程度軽減できます。範囲。

エントロピー (Entropy) とクロスエントロピー (Cross-Entropy) を 1 つの記事で理解する

実験的指標

医療分野では、信頼性の高いパフォーマンス検証が非常に重要です。一般に、モデルはより多くのトレーニング データを使用するほど、より良い結果が得られます。ただし、一部の特殊なケースでは、トレーニング セットが小さすぎるとモデルが過剰適合する可能性があります。つまり、モデルはトレーニング セットでは良好なパフォーマンスを発揮しますが、テスト セットではパフォーマンスが低下します。医療分野では、データの取得とラベル付けのプロセスが複雑でコストがかかるため、通常、トレーニングに利用できるデータが少なくなります。過剰適合を回避し、信頼性の高いパフォーマンス評価を取得するために、作成者は小さなトレーニング セットと大規模なテスト セットを使用する場合があります。これにより、モデルの一般化能力、つまり、モデルが目に見えないデータに対してどの程度うまく機能するかをより適切に評価できるようになります

|| 

平均動径誤差 (MRE) は、キーポイント検出のパフォーマンス指標として広く使用されています。K 個のキーポイントを含む画像の場合、 MRE はすべてのキーポイントとそれらに対応する推定位置の間のユークリッド距離の平均として定義されますMRE の計算方法は、MRE = 1/K * ∑K_i=1 ||p_i - ^p_i|| です。ここで、p_i は i 番目のキーポイントの真の位置、 ^p_i は対応する推定位置です。

MREは、単一のキーポイントの誤差だけでなく、すべてのキーポイントの予測誤差を考慮するため、キーポイント検出タスクに適しています。さらに、MRE はすべてのキーポイント誤差の平均であるため、キーポイント予測結果の平均精度を適切に表現できます。

MRE は予測誤差の方向を考慮していないため、場合によっては MRE が同じであっても実際のキーポイント予測結果が異なる場合があることに注意してくださいしたがって、MRE を評価指標として使用する場合は、特定のタスク要件や他の評価指標と組み合わせて検討する必要があります。

||

BRS (Boundary Recall Score)、f-BRS (free Boundary Recall Score)、および RITM (Region Intersection over the Minimum area) は、画像セグメンテーション モデルのパフォーマンスを評価するために使用される指標であり、通常、モデルのセグメンテーション境界と領域を確認するために使用されます。オーバーラップ、パフォーマンス。

具体的には、BRS と f-BRS の両方を使用して、モデルによって予測されたセグメンテーション境界と真の境界の間の重複の程度を測定しますこのうち、BRS は境界の一致度と誤差を考慮し、f-BRS は BRS に基づいて境界の並進不変性を考慮します。これら 2 つの指標の計算では、どの予測境界が真の境界と一致するとみなされるかを決定するためのしきい値を設定する必要があります。BRS と f-BRS を計算するときは、通常、予測境界内、予測境界上、予測境界外のピクセルがそれぞれ考慮されます。

RITM は、モデルによって予測されたセグメンテーション領域と実際の領域の間の重複の程度を測定するために使用され、特に領域の最小領域が考慮されます。正しい分類と正しい配置の観点からモデルのパフォーマンスを同時に測定できます。RITM の計算では、通常、予測領域と実際の領域の交差および和集合演算と、それらの面積の計算が必要です。

実験手順

self.model.train()このコードは、Dropout と BatchNormalization がオンになっているトレーニング モードを反映しています。

PyTorch では、メソッドを呼び出すことでtrain()モデルをトレーニング モードに設定できますが、このとき、モデル内の Dropout 層と BatchNormalization 層がモデルのトレーニングのためにオンになります。逆に、メソッドが呼び出された場合eval()、モデルは評価モードに設定され、モデルの Dropout 層と BatchNormalization 層はモデル評価のためにオフになります。

モデル検証を行う部分です。検証フェーズでは、Dropout レイヤーと BatchNormalization レイヤーをオフにする必要があります。コマンドを使用してself.model.eval()モデルを検証モードに変換します。

次に、モデルが検証セット上で順方向に伝播され、出力outとが得られますbatch検証フェーズでは、モデルに対してバックプロパゲーションやパラメーターの更新を実行する必要がないため、torch.no_grad()コマンドを使用して勾配計算をオフにして、コード効率を向上させることができます。

各バッチの検証損失を に累積しますval_loss次に、 を使用してself.metric_manager.average_running_metric()現在の検証セットの平均メトリックを計算し、 に保存しますval_metric

最後に、現在の検証メトリクスに基づいてコマンドを通じてoptimizer.scheduler_step()学習率が更新されます。具体的には、この関数は、save_manager.config.Train.decision_metric決定メトリックの値に基づいてオプティマイザーの学習率を調整します。この決定インジケータは、構成ファイル内のパラメータによって制御されますTrain.decision_metric

Pytorch オプティマイザーの完全な概要 (1) SGD、ASGD、Rprop、Adagrad

Pytorch オプティマイザーの完全な概要 (2) Adadelta、RMSprop、Adam、Adamax、AdamW、NAdam、SparseAdam

Pytorch オプティマイザー完全まとめ (3) Newton 法、BFGS、L-BFGS コードも含めて

Pytorch オプティマイザーの完全なまとめ (4) コードを含む一般的に使用されるオプティマイザーのパフォーマンス比較

おすすめ

転載: blog.csdn.net/sinat_40759442/article/details/129911248