コンピューター ビジョンの面接の質問をまとめたもの

1. ターゲット検出ネットワーク yolo シリーズと ssd シリーズの原理を紹介 yolo はなぜ小さなターゲットの検出が苦手なのか? アンカーを減らす以外にどう改善できるのか?

  • Yolo ターゲット検出: YOLO はリアルタイムターゲット検出アルゴリズムです. その中心的なアイデアはターゲット検出問題を回帰問題として分類し, 入力画像からターゲットのカテゴリと位置を直接予測することです. YOLO の主な特徴は①単一の前方伝播(1 段階): YOLO は、複雑な複数の処理を行わずに、ターゲット検出タスク全体を完了するために 1 つの前方伝播のみを必要とします。セグメンテーショングリッド: 入力画像は一定数のグリッドユニットに分割され、各グリッドユニットはそこに含まれるオブジェクトの位置とカテゴリを予測する役割を果たします。③マルチスケール予測:YOLOはマルチスケールアンカーボックスを使用して、さまざまなサイズやアスペクト比のオブジェクトを処理し、検出パフォーマンスの向上に役立ちます。④損失関数:YOLOはマルチパート損失関数を使用して分類誤差と位置誤差を測定すると同時に、モデルがオブジェクトの境界ボックスを予測してオブジェクトを正確に配置するように促します。⑤リアルタイム性能:YOLOは単一順伝播と効率的な設計により、リアルタイムターゲット検出タスクで優れた性能を発揮します。
  • SSD (Single Shot MultiBox Detector): YOLO とは異なり、SSD はマルチレベルの特徴抽出方法を使用して、さまざまなサイズのオブジェクトを処理します。①マルチレベル特徴抽出:SSDは複数の畳み込み層を使用して画像特徴を抽出し、さまざまなレベルでターゲット検出を実行します。②アンカーボックス: SSD はアンカー ボックスを使用して、さまざまなサイズとアスペクト比のオブジェクトを予測します。各アンカー ボックスは特定の位置とサイズに関連付けられます。モデルはこれらのアンカー ボックスに基づいてオブジェクトの位置とカテゴリを予測します。③損失関数:YOLOと同様に、SSDはマルチパート損失関数を使用して分類誤差と位置決め誤差を測定し、モデルのパフォーマンスを最適化します。④効率性:SSDは速度と精度のバランスが良く、一部のYOLOバージョンほど高速ではないものの、検出精度は良好です
  • YOLO が小さなターゲットの検出が苦手な理由: YOLO はもともと比較的大きなターゲットを検出するように設計されているためです。採用可能な方法は次のとおりです。 ①通常、入力画像の解像度を上げると、小さなターゲットの検出性能が向上します。②YOLOは、異なるスケールでターゲット検出を行うことで、小さなターゲットの検出性能を向上させることができます。特徴ピラミッドを使用すると、小さなターゲットの検出を向上させることができます。注意メカニズムを導入すると、ネットワークが小さなターゲットにさらに注意を払うことができるようになります ④ランダムなトリミング、スケーリング、回転などのデータ拡張技術を使用すると、より多くの小さなターゲットのサンプルを生成し、ネットワークが小さなターゲットを識別して位置を特定する方法を学習できるようになります。⑤アンカーをより小さく、より密に設置します。畳み込みニューラル ネットワークを設計するときは、できるだけ多くのターゲット特徴を保持するために、ステップサイズ 1 を使用するようにしてください。

2. サンプル内の陽性サンプルと陰性サンプル間の不均衡を解決するにはどうすればよいですか?

  • クラスバランス型クロスエントロピー損失関数を使用する
  • 小さなサンプルに対してデータ拡張を実行する
  • リサンプリング (オーバーサンプリング、少数派クラスのサンプル数を増やす、アンダーサンプリング、多数派クラスのサンプル数を減らす)
  • 重みを調整し、損失関数を変更し、異なるカテゴリのサンプルに異なる重みを与えます。

3. サポート ベクター マシン SVM の原理を簡単に紹介します。

サポート ベクター マシンは 2 クラスの分類モデルです。その基本モデルは、特徴空間上で最大の間隔を持つ線形分類器として定義されます。その学習戦略は間隔を最大化することであり、最終的には凸二次方程式の解に変換できます。プログラミングの問題。

4. 正規化を必要としない機械学習アルゴリズムはどれですか?

  • 正規化が必要なモデル: 距離計算に基づくモデル: KNN、勾配降下法で解かれたモデル (線形回帰、ロジスティック回帰、サポート ベクター マシン、ニューラル ネットワーク)
  • ツリー モデルでは、変数の値は考慮されず、変数の分布と変数間の条件付き確率が考慮されるため、正規化は必要ありません。デシジョン ツリーやランダム フォレストなど。

5. ツリー構造に正規化が必要ないのはなぜですか?

数値スケーリングは分割点の位置に影響を与えないため、ツリー モデルの構造には影響を与えません。固有値に従ってソートされた場合、ソート順序は変更されないため、それらが属する分岐と分割点は変わりません。また、ツリーモデルは、最適点を見つけるためのツリーモデル(回帰木)を構築する際に、最適な分割点を見つけることで完成するため、勾配降下法を行うことができません。微分可能であり、導出は不可能です。つまり、正規化の必要はありません。

6. K-means や KNN では、最近隣間の距離を計算するためにユークリッド距離を使用することがよくありますが、マンハッタン距離を使用することもあります。これら 2 つの距離の差を比較してください。

  • ユークリッド距離: 最も一般的な距離測定方法であり、直線距離とも呼ばれます。2D 平面上の直線距離と同じように、2 点間の距離を計算します。ユークリッド距離は各次元の違いを考慮するため、各次元の特徴のスケールが類似している状況に適しています。
  • マンハッタン距離: 座標軸に沿った垂直線分の長さの合計であるため、市街区距離とも呼ばれます。都市の通りを歩く距離と同じように、2 点間の距離を計算します。マンハッタン距離は、各次元で独立して計算されるため、各次元のフィーチャのスケールが考慮される状況に適しています。 
  • 要約と比較: ① ユークリッド距離は、通常、各次元のスケールが類似している場合にパフォーマンスが向上します。これは、各次元間の差異が考慮されるためです。②マンハッタン距離は、次元間の違いを考慮せず、座標軸上の距離のみを計算するため、各次元のスケールが異なる場合やブロック分布が明らかなデータの場合に適しています。③どの距離測定方法を選択するかは、通常、問題の性質とデータの特性によって異なります。場合によっては、他のカスタム距離測定を使用して、データ間の類似点や相違点をより適切に捉えることもできます。

7. CNN が画像で優れたパフォーマンスを発揮する理由

画像データを入力として直接使用することで、手動による画像の前処理や追加の特徴抽出などの複雑な操作が不要になるだけでなく、独自のきめ細かい特徴抽出手法により、ほぼ人間のレベルに近い画像処理が可能になります。

8. パラメータの計算と計算量

畳み込み入力は W x H x C、畳み込みカーネルは K x K x N、出力は W1 x H1 x C1 です。

  • 計算量:W1×H1×C1×K×K×C 
  • パラメータ:C1×K×K×C

9. パラメータ調整やモデル修正の経験

  • データ レベル: より多くのデータを取得し、データを増幅または生成し、データを正規化または標準化し、特徴を再選択します。
  • アルゴリズムレベル: アルゴリズムに関するサンプル調査を実施します。最高のパフォーマンスを発揮するアルゴリズムを選択し、さらなるパラメーター調整とデータ準備を通じてリサンプリング方法を改善します。モデルの選択とパラメーターの調整は、最初に小さなデータ セットで完了し、その後、最終的な方法をデータ セット全体に拡張できます。
  • パラメータ調整:①診断、各サイクルでトレーニングセットと検証セットでモデルの性能を評価し、グラフ化②重みの初期化、さまざまな初期化方法を試し、次のような場合に使用できる方法があるか検討他の条件は変更されず、効果はより優れています; ③学習率:サイクルとともに減少する学習率を試すか、運動量項を増加させます; ④活性化関数: 一般的な活性化関数を試し、活性化関数の境界を満たすようにデータを再スケールします; ⑤バッチサイズと期間異なるバッチ サイズとエポック数を試してください。バッチ サイズによって最終的な勾配が決まります。重みを更新する頻度。⑥正則化: さまざまな正則化方法を試します。大きな重みを罰する重み減衰 (Weightdecay)、大きなアクティベーション値を罰するアクティベーション制約 (Activation Constraint)、入力層、隠れ層、出力層でそれぞれドロップアウト方法をテストする最適化アルゴリズムと損失関数:さまざまな最適化アルゴリズム (SGD、ADAM、RMSprop、、、) を試します。最適化する損失関数は、解決しようとしている問題との関連性が高いため、適切に調整する必要があります。⑧早期停止 訓練プロセス中に検証セットのパフォーマンスが低下したら、訓練と学習を停止できますこれは、訓練データに対するモデルの過剰適合を回避するための正則化手法です。
  • ネストされたモデルによるパフォーマンスの向上: 高度に調整された (脆弱な) モデルを複数組み合わせるのではなく、複数の「十分に優れた」モデルを組み合わせることで、優れた予測力を実現します。

10. Inception v1 ~ v4 の違いと改善点を簡単に説明します。

  • v1: ① 異なるサイズのコンボリューションカーネルを使用するということは、異なるサイズの受容野を意味し、最終的なスプライシングは異なるサイズの特徴の融合を意味する; ② 一般的に使用される CNN のコンボリューション (1x1、3x3、5x5) とプーリング演算 (3x3) を使用するそれらを積み重ねると(畳み込みとプーリング後のサイズは同じで、チャネルを追加する)、一方ではネットワークの幅が広がり、他方ではネットワークのサイズへの適応性も高まります。計算量に応じて1×1の体積が加算されます。
  • v2: ① 畳み込み分解。単一の 5x5 畳み込み層を 2 つの連続する 3x3 畳み込み層で構成される小規模なネットワークに置き換えます。これにより、受容野の範囲を維持しながらパラメーターの数が削減され、ネットワークも深くなります。② 有名なBatch Normalization (BN) 手法を提案 BN は各ミニバッチ データの内部を標準化し、出力を N(0,1) の正規分布に正規化することで、ネットワークの学習速度を高速化し、 ③学習率はBNがある意味正則化の役割を果たしているため、ドロップアウトを減らしたりなくしたり、ネットワーク構造を簡素化することができます。トレーニングが v1 の精度に達すると、v2 は 14 倍高速になり、最終的な収束精度も v1 よりも高くなります。
  • v3: ① nx1 畳み込みカーネルを考慮すると、より大きな 2 次元畳み込みが 2 つの小さな 1 次元畳み込みに分割されます (7x7 は 7x1 と 1x7 に分割され、3x3 は 1x3 と 3x1 に分割されます)。パラメータの数が増加し、操作が高速化され、オーバーフィッティングが減少します)が、ネットワークの深さがさらに増加し​​、ネットワークの非線形性が増加します。②インセプションモジュールの構造を最適化
  • v4: 残留構造 (残留接続) を使用して v3 構造を改善します

11. Inception v1 のインセプション構造はどのように設計されていますか?

  • 異なるサイズのコンボリューション カーネルを使用することは、異なるサイズの受容野を意味し、最終的なスプライシングは、異なるスケールの特徴の融合を意味します。
  • この構造は、CNN で一般的に使用される畳み込み (1x1、3x3、5x5) とプーリング演算 (3x3) をスタックします (畳み込みとプーリング後のサイズは同じで、チャネルが追加されます)。一方、ネットワークの拡張に対する適応性も向上します。

  • ただし、上記のオリジナル バージョンの Inception では、すべてのコンボリューション カーネルが前の層のすべての出力に対して実行され、5x5 コンボリューション カーネルに必要な計算量が多すぎて約 1 億 2,000 万回の計算が必要となり、その結果、機能マップは非常に大きいです。
  • この状況を回避するために、1x1 コンボリューション カーネルが 3x3 の前、5x5 の前、最大プーリングの後に追加され、特徴マップの厚さを減らします。これは、次の図に示すように、Inception v1 のネットワーク構造も形成します。 :

12. インセプションはなぜ 1x1 コンボリューション カーネルを使用するのですか?

  • 1x1 畳み込みの主な目的は、次元を削減し、線形アクティベーション (relu) を修正することです。たとえば、256 チャネル (stride=1、pad=2) を持つ 5x5 畳み込み層の後、前の層の出力は 100x100x128 になります。 ) の場合、出力データは 100x100x256 で、畳み込み層パラメーターは 128x5x5x256=819200 です。前の層の出力データが最初に 32 チャネルの 1x1 畳み込み層を通過し、次に 256 個の出力を持つ 5x5 畳み込み層を通過した場合、出力データは 100x100x256 のままですが、畳み込みパラメータの量は次のように減少します。 128x1x1x32 + 32x5x5x256 = 204800、約 4 倍の削減になります。
  • これにより、ネットワークの層が深くなり、ネットワークの非線形性が強化されます。

13. CNNネットワークの進化

  • LeNet: 2 つの畳み込み + 3 つの完全接続。最初はデジタル認識に使用されました。
  • AlexNet: 12 年間の ImageNet チャンピオン、5 つの畳み込みと 3 つの完全に接続された、単一の大きな畳み込みではなく複数の小さな畳み込み、ReLU 活性化関数を使用して勾配小数問題を解決、モデルの過学習を避けるためにドロップアウトを導入、最大プーリング。
  • ZF-Net: 2013 年の ImageNet チャンピオン。GPU の高密度接続構造のみを使用し、AlexNet の最初の層のコンボリューション カーネルを 11 から 7 に、ステップ サイズを 4 から 2 に変更しました。
  • VGG-Nets: 2014 年の ImageNet 分類で 2 位. より深いネットワーク. 畳み込み層はより小さなフィルター サイズと間隔を使用します; 複数の小さな畳み込みにより、ネットワークの非線形性が高まり、パラメーターが少なくなります。
  • GoogLeNet : 2014 年の ImageNet 分類で第 1 位。インセプション モジュールが導入され、異なるサイズのコンボリューション カーネルを使用することで異なるサイズの受容野を意味し、最終的なスプライシングは異なるスケールの特徴の融合を意味します。勾配の消失を避けるために完全に接続された層の代わりに平均プーリングが使用され、ネットワーク2 つの追加の補助を追加します。 ソフトマックスは、勾配を順方向に導くために使用されます。
  • ResNet : 残差ユニットの導入により、学習の目的と難易度が簡素化され、トレーニングが高速化され、モデルが深くなったときに劣化の問題が発生しなくなり、トレーニング プロセス中の勾配の消失と勾配の爆発の問題を効果的に解決できます。
  • DenseNet : 高密度接続。機能の伝播を強化し、機能の再利用を促進し、パラメータの量を大幅に削減します。

14. CNNの概要と各層とその機能

  • CNNの特徴検出層は学習データを介して学習します CNNCを使用する場合、明示的な特徴抽出を回避し、学習データから暗黙的に学習を行います 同一の特徴マッピング面上のニューロンの重みが同じであるため、ネットワークの並列学習が可能これは、ニューロンが相互に接続されているネットワークに対する畳み込みネットワークの大きな利点でもあります。畳み込みニューラル ネットワークは、ローカル重み共有の特殊な構造により、音声認識と画像処理において独自の利点を持っています。重み共有によりネットワークの複雑さが軽減され、特に多次元入力ベクトルを持つ画像をネットワークに直接入力できるため、特徴抽出および分類時のデータ再構成の複雑さが回避されます。
  • 畳み込みネットワークは主に、畳み込み層、活性化関数、プーリング層、および全結合層で構成されます。① 畳み込み層: 特徴抽出と特徴マッピングに畳み込みカーネルを使用する; ②活性化関数 (Activation) : 畳み込みも線形演算であるため、非線形マッピングを追加する必要がある; ③プーリング層 (Pool) : 入力用 特徴マップは圧縮される, 一方では、特徴マップを小さくし、ネットワーク計算の複雑さを簡素化します;他方では、特徴を圧縮して主要な特徴を抽出します; ④ 全結合層 (FC) : すべての特徴を接続し、出力を送信ます値を分類子に設定します。(少し休んでから更新してください

おすすめ

転載: blog.csdn.net/qq_43687860/article/details/132857594