SLAM インタビュー ノート (8) — コンピューター ビジョンのインタビューでの質問

目次

質問 1: ターゲット検出のアルゴリズム分類

質問 2: 畳み込みニューラル ネットワークの構成

質問 3: 入力層の役割

質問 4: 畳み込み層の役割 

質問 5: コンボリューション カーネルのタイプ

質問 6: 1×1 コンボリューション カーネルの役割

質問 7: コンボリューション カーネルは大きいほど良いのですか?

質問 8: チェッカーボードの効果と解決策

質問 9: 畳み込み層パラメータを減らす方法

質問 10: ニューラル ネットワーク視覚化ツール

質問 11: プーリング層の役割 

質問 12: 畳み込み層とプーリング層の違い

質問 13: 活性化関数層の役割

質問 14: 全結合層の役割

質問 15: 畳み込みニューラル ネットワークの汎化能力を向上させる方法

質問 16: 正規化手法 BN、LN、IN、GN について話しましょう。 

質問 17: ソフトマックスの公式に係数 a を掛けると、確率分布はどのように変化しますか?​ 

質問 18: 陽性サンプルと陰性サンプル間の不均衡の問題を解決する方法 

質問 19: トレーニング ネットワークが収束しない理由 

質問 20: 最適化アルゴリズム、Adam、Momentum、Adagard、SGD の特性

質問 21: 小さなターゲットの検出が難しい理由


質問 1: ターゲット検出のアルゴリズム分類

深層学習に基づくターゲット検出アルゴリズムは、主に 2 つのカテゴリに分類されます。

2段階のターゲット検出アルゴリズム

  • 主なアイデアは、まず領域提案 (RP) を生成し、次に畳み込みニューラル ネットワークを通じてサンプルを分類することです。
  • タスクルート: 特徴抽出 - ターゲット候補領域の生成 - 分類/位置決め回帰。

1段階ターゲット検出アルゴリズム

  • 主なアイデア: 領域を生成する必要はなく、ネットワークから直接特徴を抽出してオブジェクトの分類と位置を予測します。
  • タスクルート: 特徴抽出 - 分類/位置決め回帰。

質問 2: 畳み込みニューラル ネットワークの構成

畳み込みニューラル ネットワークの基本構造は、入力層、畳み込み層、プーリング層、活性化関数層、全結合層の部分で構成されます。

質問 3: 入力層の役割

画像を処理する CNN では、入力層は通常、画像のピクセル行列を表します。画像は 3 次元のマトリックスで表現できます。 3 次元マトリクスの長さと幅は画像のサイズを表し、3 次元マトリクスの深さは画像のカラー チャネルを表します。たとえば、白黒画像の深度は 1 ですが、RGB カラー モードでは画像の深度は 3 です。

質問 4: 畳み込み層の役割 

畳み込みニューラル ネットワークの中核は畳み込み層であり、畳み込み層の中核部分は畳み込み演算です。

画像 (異なるデータ ウィンドウ データ) とフィルター行列 (固定重みのセット: 各ニューロンの複数の重みが固定されているため、定数フィルターとみなすことができます) の内積を実行します。 (要素ごとの乗算と加算) は、いわゆる畳み込み演算であり、畳み込みニューラル ネットワークの名前の由来でもあります。

CNN では、フィルターはローカル入力データに対して畳み込み計算を実行します。データ ウィンドウ内の各ローカル データが計算された後、すべてのデータが計算されるまでデータ ウィンドウは継続的に移動およびスライドされます。このプロセスには、いくつかのパラメーターがあります。

  • 深さ: ニューロンの数によって出力の深さの厚さが決まります。フィルターの数も表します。
  • 歩幅: 端までスライドする歩数を決定します。
  • 値のゼロパディング: 初期位置から終了位置まで段階的にスライドできるように、外側の端にゼロの円をいくつか追加します。全長ですので、ステップサイズで割り切れます。

質問 5: コンボリューション カーネルのタイプ

転置畳み込み

場合によっては、入力のサイズを増やすなどの処理 (「アップサンプリング」とも呼ばれます) が必要になることがあります。最初に元の特徴行列を埋めて、畳み込みターゲットの出力次元に合わせて次元を拡張し、その後、一般的な畳み込み演算を実行するプロセス。転置畳み込みは、ターゲット検出の分野で小さなターゲットを検出したり、画像セグメンテーションの分野で入力画像のスケールを復元したりするために一般的に使用されます。

拡張/Atrous コンボリューション

同じサイズのコンボリューションカーネルでより大きな受容視野を得るためにDilation Rateと呼ばれるパラメータを導入しているため、同じ受容視野を前提とした通常のコンボリューションよりも使用するパラメータが少なくなります。同じコンボリューション カーネル サイズ 3x3 を使用すると、拡張コンボリューションは 5x5 の範囲の領域特徴を抽出でき、リアルタイム画像セグメンテーションの分野で広く使用されています。

分離可能な畳み込み

標準の畳み込み演算は、元の画像 HxWxC に対する 3 方向の畳み込み演算です。同じサイズの畳み込みカーネルが 3 つあると仮定すると、そのような畳み込み演算には HxWxCxK パラメータが必要です。長さ、幅、および畳み込み演算の場合、深さ方向は分離され、最初に HXW 方向と畳み込み、次に C 方向と畳み込む 2 段階の畳み込み演算になります。その後、同じサイズの K 個の畳み込みカーネルも存在し、(HxW+C) XK パラメータのみを取得できます同じ出力スケール。 SeperableConvolution は通常、モデル圧縮や、MobileNet、Xception などの軽量畳み込みニューラル ネットワークで使用されます。

質問 6: 1×1 コンボリューション カーネルの役割

1x1 の場合コンボリューション カーネルの役割は次の点に要約できます

  • ネットワークの深さを増やす (非線形マッピングの数を増やす)
  • 次元増加/次元削減
  • クロスチャネルの情報交換
  • コンボリューションカーネルパラメータを減らす(モデルを単純化する)

質問 7: コンボリューション カーネルは大きいほど良いのですか?

コンボリューションカーネルを大きく設定すると、より大きな受容野が得られます。ただし、この大規模なコンボリューション カーネルは計算量の大幅な増加につながり、より深いモデルのトレーニングには役に立たず、それに対応するコンピューティング パフォーマンスも低下します。その後の畳み込みネットワーク (VGG、GoogLeNet など) では、2 つの 3X3 畳み込みカーネルをスタックすることで、5X5 畳み込みカーネルと同じ視野が得られると同時に、パラメーターの数が少なくなる (3X3X2+1<5X5X1+) ことがわかりました。 1). 3X3 畳み込みカーネルは、多くの畳み込みニューラル ネットワークで広く使用されています。

        ただし、これは、より大きな畳み込みカーネルが効果がないことを意味するものではなく、一部の分野で畳み込みニューラル ネットワークを適用する場合には、より大きな畳み込みカーネルを使用することもできます。畳み込みニューラル ネットワークを自然言語処理の分野に適用する場合、ニューラル ネットワークは通常、より浅い畳み込み層で構成されますが、モデルがより多くの特徴 (フレーズや文字など) を結合できるように、テキスト特徴にはより広い受容野が必要になる場合があります。 、現時点では、より大きなコンボリューション カーネルを使用することをお勧めします。

        要約すると、コンボリューション カーネルのサイズに絶対的な利点や欠点はなく、特定のアプリケーション シナリオに依存します。別個の畳み込みとして使用できますが、入力の元の機能を効果的に組み合わせることができません。非常に大規模な畳み込みカーネルは、通常、意味のない機能をあまりにも多く組み合わせるため、多くのコンピューティング リソースが無駄になります。

質問 8: チェッカーボードの効果と解決策

上記の現象から、フィルター サイズが畳み込みステップ サイズで割り切れない場合、転置された畳み込みの重なりが不均一になり、画像の特定の部分が他の部分よりも暗くなり、チェッカーボード効果が発生することがわかります。

チェッカーボード効果を回避および軽減する方法:

(1) 問題の重複を避けるために、使用するフィルターのサイズが畳み込みステップ サイズで割り切れることを確認します。

(2) 畳み込みステップ サイズ 1 の転置畳み込みを使用すると、チェッカーボード効果を軽減できます。

参考記事:畳み込み演算の概要 (3) - 転置畳み込みのチェッカーボード効果の原因と解決策 - Zhihu

質問 9: 畳み込み層パラメータを減らす方法

  • 大規模なコンボリューション カーネルの代わりにスタックされた小規模なコンボリューション カーネルを使用します: VGG ネットワーク内の 2 つの 3X3 コンボリューション カーネルは、1 つの 5X5 コンボリューション カーネルを置き換えることができます。
  • 分割された畳み込み演算を使用する: 元の KXKXC 畳み込み演算を、KXKX1 演算と 1X1XC 演算の 2 つの部分に分離します。
  • 1X1 畳み込み演算の追加: は分離畳み込みと似ていますが、チャネルの数は可変で、1X1XC2 畳み込みカーネルが KXKXC 畳み込みの前に追加されます。
  • 畳み込み層の前にプーリング操作を使用します。プーリングにより、畳み込み層の入力特徴の次元を削減できます

質問 10: ニューラル ネットワーク視覚化ツール

ニューラル ネットワークの視覚化ツールには、Netron、draw_convnet、NNSVG、PlotNeuralNet、Tensorboard、Caffe などが含まれます。

参考記事:【ディープラーニング | 機械学習】役立つ情報満載 | 10,000語近くにまとめられた驚異のニューラルネットワーク可視化ツール12選! _Kuan~ の旅に関するブログ - CSDN ブログ

質問 11: プーリング層の役割 

プーリング層は、ダウンサンプリング層とも呼ばれます。その機能は、受容野の特徴をフィルタリングし、その領域で最も代表的な特徴を抽出することです。出力特徴のスケールを効果的に縮小し、それによってモデルを縮小できます。必要なパラメータの数。主に平均プーリング (平均プーリング)、最大プーリング (最大プーリング) が含まれます。 )など。簡単に言えば、プーリングとは、領域全体を表す値を領域内に指定することです。プーリング層のハイパーパラメータ: プーリング ウィンドウとプーリング ステップ サイズ。プーリング操作は畳み込み操作とみなすこともできます。

質問 12: 畳み込み層とプーリング層の違い

畳み込み層とプーリング層は構造的に類似点があり、どちらも受容野内の特徴を抽出し、ステップ サイズの設定に従って異なる次元の出力を取得しますが、内部の動作は本質的に異なります。
畳み込み層 プーリング層
構造 ゼロパディングを行うと、出力次元は変わりませんが、チャネル数が変わります。 通常、機能の寸法は縮小され、チャネル数は変わりません。
安定性 入力特徴量がわずかに変化すると、出力結果も変化します 感覚野の微妙な変化は出力結果に影響を与えません
効果 受容野内の局所相関特徴を抽出 受容野内の汎化特徴を抽出し、次元を削減する
パラメータの数量 コンボリューション カーネルのサイズとコンボリューション カーネルの数に関連する 追加のパラメータは導入されません

質問 13:アクティベーション関数レイヤーの効果

活性化関数 (非線形活性化関数。活性化関数が線形関数を使用している場合、その出力は依然として線形関数です。) ただし、非線形活性化関数を使用すると、非線形の出力値を取得できます。一般的な活性化関数には、Sigmoid、tanh、Relu などが含まれます。一般に、畳み込みニューラル ネットワークの活性化関数として Relu を使用します。 Relu 活性化関数は、非常にシンプルな非線形変換手法を提供します。関数イメージは次のとおりです。

質問 14:完全接続レイヤーの役割

畳み込み層とプーリング層を複数回繰り返した後、CNN の最後には、通常 1 ~ 2 つの完全に接続された層があり、最終的な分類結果が得られます。数回の畳み込み層とプーリング層を経た後、画像内の情報はより高い情報量を含む特徴に抽象化されたと考えることができます。畳み込み層とプーリング層は、自動画像特徴抽出のプロセスとして考えることができます。抽出が完了した後も、分類タスクを完了するには完全に接続された層を使用する必要があります。

質問 15: 畳み込みニューラル ネットワークの汎化能力を向上させる方法

  • より多くのデータを使用する: より多くのトレーニング データにラベルを付けることができます。これは汎化能力を向上させる最も理想的な方法です。より多くのデータにより、モデルはより完全な結果を得ることができます。学習汎化能力が自然に向上します。
  • より大きなバッチ サイズを使用します:同じ反復数と学習率の下で、各バッチでより多くのデータを使用すると、モデルがより適切なモデルを学習するのに役立ち、モデルの出力結果がより多くなります。安定した。
  • データのオーバーサンプリング:多くの場合、取得したデータには不均一なカテゴリが含まれています。このとき、モデルは特定のタイプの多数のデータをオーバーフィットし、その結果、出力結果はこの種類のデータに偏りますが、このとき他の種類のデータをオーバーサンプリングすることでデータ量のバランスを整えることで汎化能力をある程度向上させることができます。
  • データ エンハンスメント:データ エンハンスメントとは、データが限られている場合に、いくつかの幾何学的操作を通じて画像を変換することを指します。これにより、類似したデータをより豊富な形式で表現できるようになり、その結果、データの汎用性が向上します。モデル化能力。
  • 損失関数を変更する:この領域には、ターゲット検出における焦点損失、GHM 損失、IOU 損失など、多くの作業があり、すべて改善するためのものです。モデルの汎化能力。
  • ネットワークを変更する:ネットワークが浅すぎてパラメータの数が少なすぎる場合、モデルの汎化能力が不十分になり、アンダーフィッティングが発生します。この場合は、単純な積み重ね畳み込みが一般的に考慮されており、層によってネットワークのパラメータが増加し、モデルの特徴抽出能力が向上します。ネットワークが深すぎて学習データの量が比較的少ない場合、モデルの過学習が起こりやすいため、一般にネットワーク構造を簡素化してネットワーク層数を減らすか、ネットワーク層の残差構造を利用する必要があります。 resnet と BN 層。
  • 重みペナルティ:重みペナルティも正則化演算です。一般に、重み行列の正規項が、より大きな損失を罰するペナルティ項として損失関数に追加されます。ネットワークの重みが大きすぎると、ネットワークの重みがデータ サンプルをオーバーフィットすることがよくあります。
  • ドロップアウト戦略: ネットワークの最後に完全に接続されたレイヤーがある場合は、ドロップアウト戦略を使用できます。これは深層学習モデルの Ensemble と同等であり、モデルの汎化能力。

質問 16: 正規化手法 BN、LN、IN、GN について話しましょう。 

BN

  • BatchNormalization は、特徴が異なる入力および H レベルと W レベルで均一に分布していることを前提としているため、各チャネルの平均と分散は NHW でカウントされ、パラメーター量は 2C です。
  • 欠点は、バッチ内のデータの分布の影響を受けやすいことであり、batch_size が小さい場合、計算された平均と分散は代表的ではなくなります。また、シーケンス モデル内の各サンプルの長さは通常異なるため、シーケンス モデルには適していません。また、学習データとテストデータの分布が異なる場合には適用されません。

LN

  • Layer Normalization、LN はバッチ サイズに依存しないアルゴリズムであり、サンプル数は LN 計算に含まれるデータ量に影響を与えないため、BN の 2 つの問題が解決されます。
  • 欠点は、BN と LN の両方を使用できるシナリオでは、一般に BN の効果が LN の効果よりも優れていることです。その理由は、異なるデータに基づいて、同じ特徴から取得された正規化された特徴は情報が失われる可能性が低いためです。 。

  • Instance Normalization は、各 HW を個別に取り出して正規化することで、チャネルやバッチサイズに影響されず、各サンプルの各ピクセルの情報をカウントするため、定型化された移行でよく使用されます。
  • 欠点は、特徴マップでチャネル間の相関を使用できる場合、それを正規化に使用することは推奨されないことです。

おやすみなさい

  • グループ正規化では、最初にチャネルを多くのグループ (グループ) に分割し、各グループを正規化し、最初に特徴の次元を [N, C, H, W] から [N, G, C// G , H, W] に再形成します。 、正規化された次元は [C//G , H, W] です。
  • GN の正規化方法は、モデルに対するバッチ サイズの影響を回避し、特徴のグループ正規化によって、InternalInternalInternalCovariateCovariateCovariateShiftShift の問題を解決し、より良い結果を達成することもできます。

質問 17: ソフトマックスの公式に係数 a を掛けると、確率分布はどのように変化しますか?​ 

a>1の場合は急峻になり、a<1の場合は滑らかになります。

質問 18:陽性サンプルと陰性サンプルの不均衡の問題を解決する方法 

  • オーバーサンプリング: トレーニング セット内の少数のサンプルでカテゴリ (少数クラス) をオーバーサンプリングし、新しいサンプルを合成してクラスの不均衡を軽減します。
  • アンダーサンプリング: トレーニング セット内のサンプル数が多いカテゴリ (多数派カテゴリ) をアンダーサンプリングし、一部のサンプルを破棄してクラスの不均衡を軽減します。
  • 新しい少数階級を統合する

質問 19: トレーニング ネットワークが収束しない理由 

データ処理の理由

  • データの正規化は行われませんでした。
  • データの前処理は行われません。
  • 正規化は使用されません。

パラメータ設定理由

  • バッチ サイズの設定が大きすぎます。
  • 学習率が不適切に設定されている。

ネットワーク設定の理由

  • ネットワークには悪い勾配があります。たとえば、逆伝播中の負の値に対する Relu の勾配が 0 の場合、勾配 0 は伝播がないことを意味します。
  • パラメータ初期化エラー。
  • ネットワーク設定が不当で、ネットワークが浅すぎる、または深すぎる。

質問 20: 最適化アルゴリズム、Adam、Momentum、Adagard、SGD の特性

  • Adagard はトレーニング プロセス中に学習率を自動的に変更し、グローバル学習率を設定できます。実際の学習率は、勾配履歴の二乗値の合計の平方根に反比例します。 adagrad を使用して前の勾配の 2 乗を合計し、ルート符号を分母にすると、学習率は最初に増幅され、トレーニングが進むにつれて徐々に減少します。
  • 運動量とは、物理学における運動量の概念を指します。前のラウンドの勾配も現在の計算に参加しますが、前のラウンドの勾配の重ね合わせにより、現在の計算では一定の減衰が生じます。勾配降下が不安定で鞍点に落ちやすいという欠点を解決するために使用されます。
  • SGD は確率的勾配降下法であり、反復ごとにデータセットのミニバッチの勾配を計算し、パラメーターを更新します。更新速度が速いのがメリットですが、トレーニングが不安定で精度が下がるのがデメリットです。
  • Adam は、勾配の一次モーメント推定値と二次モーメント推定値を使用して、各パラメーターの学習率を動的に調整します。バイアス補正後、各反復後の学習率は一定の範囲になり、パラメーターがより安定します。モメンタムと adagrad アルゴリズムの利点を備えています。

質問 21: 小さなターゲットの検出が難しい理由

元の画像に含まれる小さなターゲットのサイズは比較的小さいため、一般的なターゲット検出モデルでは、一般的な基本基幹ニューラル ネットワーク (VGG シリーズや Resnet シリーズ) で数回のダウンサンプリング処理が行われるため、そのサイズは特徴マップ内の小さなターゲットは基本的に同じであり、ピクセル サイズは 1 桁しかないため、設計されたターゲット検出分類器は小さなターゲットに対しては分類効果が低くなります。

元の画像に含まれる小さなターゲットの数が少なく、検出器が抽出する特徴が少ないため、小さなターゲットの検出効果が低くなります。

ニューラル ネットワークは学習において大きなターゲットによって支配され、小さなターゲットは学習プロセス全体を通じて無視されるため、小さなターゲットの検出結果は不十分になります。

トリック
(1) データ拡張。画像を拡大し、画像ピラミッドのマルチスケール検出を使用し、最後に検出結果を融合するなど、単純かつ粗雑です。欠点は次のとおりです。演算が複雑で計算量が多く、現実的ではないこと。
(2) 特徴融合手法: FPN、マルチスケール特徴マップ予測、特徴ストライドは小さいものから開始可能。
(3) 適切なトレーニング方法: CVPR2018 の SNIP および SNIPER;
(4) より小さく密度の高いアンカーを設定します。回帰がプリセット、アンカー マッチ戦略の設計など。S3FD を参照。
(5) GAN を使用して小さなオブジェクトを拡大し、検出します。CVPR2018 にはそのような論文があります。
(6) コンテキスト情報を使用してオブジェクトとコンテキストの接続 (関係ネットワークなど) を確立します。
(7) 密なオクルージョンがあります。位置と分類をより適切にする方法。IoU 損失、反発を参照してください。損失など
(8) 畳み込みニューラル ネットワークを設計するときは、できるだけ多くのターゲット特徴を保持するためにステップ サイズ 1 を使用するようにしてください。
(9) マッチング戦略。小さなオブジェクトに対して厳密すぎる IoU しきい値を設定しないでください。または、Cascade R-CNN のアイデアから学ばないでください。

質問 22: YOLOv5 フレームワークについて説明してください

1 ネットワーク構造

YOLOv5 のネットワーク構造は主に次​​の部分で構成されます。

  • バックボーン: 新しい CSP-Darknet53
  • ネック:SPPF、New CSP-PAN
  • ヘッド: YOLOv3 ヘッド

以下は、yolov5l.yaml に基づいて私が描いた全体的なネットワーク構造です。YOLOv5 は、異なるサイズ (n、s、m、l、x) に対して同じ全体的なネットワーク構造を持っていますが、サブモジュールごとに異なる深さと深さを使用します。幅。また、n、s、m、l に加えて、次の点にも注意してください。違いは、後者は 64 回ダウンサンプリングし、4 つの予測特徴レイヤーを使用するのに対し、前者は 32 回のみダウンサンプリングし、3 つの予測特徴レイヤーを使用することです。 。

YOLOv4 と比較してみると、実は YOLOv5 はバックボーン部分に大きな変化はありません。ただし、YOLOv5 は、バージョン v6.0 以降、以前のバージョンと比較して小さな変更が加えられています。ネットワークの最初の層 (元々は Focus モジュール) が 6x6 畳み込み層に置き換えられました。理論的には 2 つは実際には同等です。下の図はオリジナルの Focus モジュールです (以前の Swin Transformer のパッチ マージと同様) 2x2 の隣接する各ピクセルをパッチに分割し、各パッチ内の同じ位置 (同じ色) のピクセルをまとめます。特徴マップが取得され、3x3 畳み込み層に接続されました。これは、6x6 畳み込み層を直接使用するのと同じです。

Neck 部分の変更点は比較的大きく、まず SPP から SPPF に置き換わり、両者の機能は同じですが、後者の方が効率的です。 SPP の構造は下図に示すとおりで、入力をサイズの異なる複数の MaxPool に並列に通し、さらに融合することで、目的のマルチスケール問題をある程度解決できます。

および SPPF の構造は、複数の 5x5 サイズの MaxPool レイヤーを通じて入力をシリアル化することです。 5x5 サイズの MaxPool レイヤーが 2 つ直列にあり、 9x9 サイズの MaxPool レイヤーが 1 つあります。計算結果は同じです。 3 つの 5x5 サイズ MaxPool レイヤーをシリアル化することは、 1 つの 13x13 サイズ < i=11> 層の計算結果は同じです。 MaxPool

2 データの強化

YOLOv5 コードには、非常に多くのデータ拡張戦略があり、いくつかの方法の簡単なリストを次に示します。

  • モザイク、4 枚の写真を 1 枚の写真に結合します

  • コピー ペースト、いくつかのターゲットを画像にランダムに貼り付けます。前提として、データには segments データ、つまり各ターゲット インスタンスが含まれている必要があります。セグメンテーション情報。以下は元の論文の概略図です。 Copy paste

  • MixUp は、2 つの画像を一定の透明度で融合させることです。役に立つかどうかは不明です。結局のところ、紙やアブレーションの実験はありません。コードではより大きなモデルのみが使用されMixUp、毎回使用される確率はわずか 10% です。
  • 評価:主にフィルタリング、ヒストグラムの均等化、画質の変更などを行います。

  • HSV (色相、彩度、明度) を拡張し、 色相、彩度、明るさをランダムに調整します。

  • ランダムな水平反転、ランダムな水平反転

3 トレーニング戦略

YOLOv5 ソース コードでは、多くのトレーニング戦略が使用されています。ここでは、私が気づいたいくつかの点を簡単にまとめます。まだ気づいていない点もいくつかあります。ソース コードを自分で見てください。

  • マルチスケール トレーニング (0.5 ~ 1.5x)、マルチスケール トレーニング。入力画像のサイズがトレーニング中に使用されるサイズ 640 × 640 に設定されていると仮定します。は 0.5 × 640 〜 1.5 × 640 の間で値をランダムに選択します。値は常に 32 の整数倍であることに注意してください (ネットワークが最大 32 回までダウンサンプリングするため)。
  • AutoAnchor (カスタム データのトレーニング用) では、独自のデータ セットをトレーニングするときに、独自のデータ セット内のターゲットに基づいて再クラスタリングしてアンカー テンプレートを生成できます。
  • ウォームアップおよびコサイン LR スケジューラ、トレーニング前にウォームアップ ウォームアップを実行してから、コサイン学習率削減戦略を使用します。
  • EMA (指数移動平均) は、更新プロセスをよりスムーズにするためにトレーニング パラメータに勢いを加えるものとして理解できます。
  • 混合精度、混合精度トレーニングでは、GPU ハードウェアがサポートしている場合、メモリ使用量を削減し、トレーニングを高速化できます。
  • ハイパーパラメータの進化、ハイパーパラメータの最適化。錬金術の経験のない人はこれに触れず、デフォルトのままにしてください。

4 損失計算

YOLOv5 の喪失は主に 3 つの部分で構成されます。

  • クラス損失 (分類損失) は BCE 損失を使用します。陽性サンプルの分類損失のみが計算されることに注意してください。
  • オブジェクト性損失、obj 損失は、引き続き BCE 損失を使用します。ここでの obj は、ネットワークによって予測されたターゲット バウンディング ボックスと GT ボックスの CIoU を指すことに注意してください。ここで計算されるのは、すべてのサンプルのオブジェクト損失です。
  • 位置損失、位置損失、CIoU 損失が使用されます。陽性サンプルの位置損失のみが計算されることに注意してください

おすすめ

転載: blog.csdn.net/qq_41921826/article/details/133526883