ディープラーニングに関する面接で絶対に聞きたい12の質問

ディープラーニングに関する面接で絶対に聞きたい12の質問

導入

これら 12 の質問は、現在の面接で最も人気のある質問です。これらは非常に基本的な質問ですが、面接対象者のレベルを反映することもあり、非常に差別的です。面接官も求職者も見ることができます。

これらは、AI エンジニア職の面接で私がよく尋ねる質問です。実際には、候補者のこれまでの経験やプロジェクトに応じて、これらの質問すべてをすべての面接で使用する必要はありません。私は、特に学生との数多くのインタビューを通じて、ディープラーニングに関する最も人気のあるインタビューの質問を 12 個集めました。今日のこの投稿で、それらを皆さん​​と共有します。皆様のたくさんのコメントをお待ちしております。さて、話はこれくらいにして、始めましょう。

1. バッチ正規化の重要性の紹介

これは、ニューラル ネットワーク モデルを扱う際に候補者が知っておく必要のあるほとんどのことを網羅しているため、非常に良い質問です。これにはさまざまな方法で答えることができますが、主に次の点を指摘する必要があります。

バッチ正規化は、ニューラル ネットワーク モデルをトレーニングするための効果的な方法です。この方法の目的は、特徴(各レイヤーのアクティブ化後の出力)を平均 0、標準偏差 1 になるように正規化することです。問題は、ゼロ以外の平均値がモデルのトレーニングにどのように影響するかということです。

  • まず、非ゼロ平均とは、データが 0 の値を中心に分布しているのではなく、データ内のほとんどの値が 0 より大きいか 0 より小さいことを意味することがわかります。高分散の問題と組み合わせると、データは非常に大きくなるか、非常に小さくなります。この問題は、多くの層を持つニューラル ネットワークをトレーニングするときによく発生します。特徴は安定した範囲(小さいものから大きいものまで)に分布していないため、ネットワークの最適化プロセスに影響します。ニューラル ネットワークを最適化するには、微分計算を使用する必要があることはよく知られています。単純なレイヤー計算式が y = (Wx + b) であると仮定すると、w に関する y の導関数は dy = dWx です。したがって、x の値は導関数の値に直接影響します (もちろん、ニューラル ネットワーク モデルにおける勾配の概念はそれほど単純ではありませんが、理論的には x は導関数に影響します)。したがって、x が不安定な変化をもたらす場合、その導関数が大きすぎたり小さすぎたりする可能性があり、学習モデルが不安定になる可能性があります。これは、バッチ正規化を使用する場合、トレーニング中により高い学習率を使用できることも意味します。
  • バッチ正規化により、非線形活性化関数を通過した後、x 値が飽和する傾向にあるという現象を回避できます。したがって、アクティベーション値が高すぎたり低すぎたりしないことが保証されます。これは重みの学習に役立ちます。使用しないと、一部の重みは学習されない可能性がありますが、使用後は基本的に学習できます。これにより、パラメータの初期値への依存を減らすことができます。
  • バッチ正規化も、過剰適合を最小限に抑えるのに役立つ正規化の一種です。バッチ正規化では、ドロップアウトをあまり使用する必要はありません。これは、多くの情報が失われることを心配する必要がないため理にかなっています。ただし、実際にこれら 2 つの手法を使用する場合は、組み合わせて使用​​することをお勧めします。

2. バイアスと分散のトレードオフを説明する

バイアスとは何でしょうか? ご存知のとおり、バイアスとは、現在のモデルの平均予測と予測する必要がある実際の結果との差です。バイアスが高いモデルは、トレーニング データにあまり注意を払っていないことを示します。これにより、モデルが単純になりすぎて、トレーニングとテストの両方で非常に高い精度が達成されませんでした。この現象はアンダーフィッティングとも呼ばれます。

分散は、データ ポイント上のモデル出力の分布として簡単に理解できます。分散が大きいほど、モデルがトレーニング データに重点​​を置き、これまで遭遇したことのないデータに対して一般化を行わない可能性が高くなります。つまり、モデルはトレーニング データセットでは非常に良い結果を達成しましたが、テスト データセットと比較すると結果は非常に悪く、これはオーバーフィッティングと呼ばれる現象です。

これら 2 つの概念の関係は次の図に示されています。


上の画像では、円の中心が正確な値を完璧に予測したモデルです。実際、これほど優れたモデルはこれまで見たことがありません。円の中心から離れるほど、予測は悪くなります。

円の中心に入るモデル推測の数をできるだけ増やすようにモデルを変更することができます。偏りと差異の間でバランスを取る必要があります。モデルが単純すぎてパラメータが少ない場合、バイアスが高くなり、分散が低くなる可能性があります。

一方、モデルのパラメータ数が多い場合、分散は大きくなり、バイアスは小さくなります。これは、アルゴリズムを設計するときにモデルの複雑さを計算するための基礎となります。


3. ディープラーニング モデルにすでに 1,000 万の顔ベクトルがある場合、クエリを通じて新しい顔を見つけるにはどうすればよいでしょうか?

この質問は、ディープラーニング アルゴリズムの実際の応用に関するものです。この問題の鍵となるのは、データのインデックス作成方法です。これは、ワンショット学習を顔認識問題に適用する最後のステップですが、実際に展開するための最も重要なステップです。

基本的に、この質問に答えるには、まず顔認識のためのワンショット学習の一般的な方法を説明する必要があります。これは簡単に言えば、各顔をベクトルに変換することであり、新しい顔認識は、入力された顔に最も近い(最も類似する)ベクトルを見つけることです。通常、これを実現するには、トリプレット損失関数を備えたディープラーニング モデルを使用します。


しかし、画像の数が増えると、認識ごとに 1,000 万のベクトルまでの距離を計算するのは賢明な解決策ではなく、システムの速度が大幅に低下します。クエリをより便利にするためには、実ベクトル空間でデータをインデックスする方法を考慮する必要があります。

これらの方法の主な考え方は、新しいデータのクエリに便利な構造(おそらくツリー構造に似たもの)にデータを分割することです。新しいデータが利用可能になると、ツリーをクエリすると、最も近いベクトルをすばやく見つけることができます。


この目的に使用できる方法はいくつかあり、たとえば、Locality Sensitive Hashing (LSH)、approximate Nearest Neighbors (Annoy Indexing) などがあります。

4. 分類問題に対する精度指標は完全に信頼できるものですか? モデルを評価するために通常どの指標を使用していますか?

ある種の問題にはさまざまな評価方法があります。精度の点では、この式は、正しく予測されたデータ ポイントの数を合計データで単純に割ります。これは合理的に思えますが、実際には、不均衡なデータの問題の場合、この量は十分に重要ではありません。ネットワーク攻撃の予測モデルを構築しているとします (攻撃リクエストが総リクエストの 1/100,000 を占めると想定)。

モデルがすべてのリクエストが正常であると予測した場合、精度は 99.9999% になりますが、これは通常、分類モデルでは信頼できません。上記の精度計算では、通常、データの何パーセントが正しく予測されたかが示されますが、各クラスがどのように分類されたかは詳細には示されません。代わりに、混同行列を使用することができます。基本的に、混同行列は、実際に 1 つのクラスに属し、別のクラスに属すると予測されるデータ ポイントの数を示します。その形式は次のとおりです。


分類を定義する各しきい値に対応する真陽性および偽陽性のメトリックの変化を表すことに加えて、ROC プロットもあります。 ROC 曲線によれば、モデルが有効かどうかがわかります。


理想的な ROC 曲線は、左上隅に最も近いオレンジ色の線です。真陽性率は比較的高く、偽陽性率は比較的低いです。

5. バックプロパゲーションを理解するにはどうすればよいでしょうか? その作用メカニズムを説明してください。


この質問は、ニューラル ネットワークの仕組みに関する知識をテストするために設計されています。以下の点を明確にする必要があります。

  • フォワードプロセス(フォワード計算)は、モデルが各レイヤーの重みを計算するのに役立つプロセスであり、計算の結果、yp 結果が生成されます。この時点で損失関数の値が計算され、モデルがどれだけ優れているかが示されます。損失関数が十分でない場合は、損失関数の値を減らす方法を見つける必要があります。ニューラル ネットワークのトレーニングは、本質的には損失関数を最小化することです。損失関数 L(yp, yt) は、yp モデルの出力値と yt データ ラベルの実際の値の差を表します。
  • 損失関数の値を減らすには、導関数を使用する必要があります。バックプロパゲーションは、ネットワークの各層での導関数を計算するのに役立ちます。各層の微分値に基づいて、オプティマイザー (Adam、SGD、AdaDelta など) は勾配降下法を適用してネットワークの重みを更新します。
  • バックプロパゲーションでは、連鎖律または微分関数を使用して、最後の層から最初の層までの各層の勾配値を計算します。

6. 活性化関数とは何を意味しますか? 活性化関数の飽和範囲は何ですか?

活性化関数の重要性

活性化関数は、ニューラル ネットワークの線形特性を破壊するために作成されます。これらの機能は、フィルターを使用して情報がニューロンを通過するかどうかを決定するものとして簡単に理解できます。ニューラル ネットワークのトレーニングでは、活性化関数が導関数の傾きを調整する上で重要な役割を果たします。シグモイド、フィッシュ、ReLU などのいくつかの活性化関数については、次のセクションでさらに詳しく説明します。

しかし、理解する必要があるのは、これらの非線形関数の特性により、ニューラル ネットワークが単なる線形関数よりも複雑な関数の表現を学習できるようになるということです。ほとんどの活性化関数は連続的に微分可能です。

これらの関数は連続的です。つまり、入力変数が小さく微分可能 (そのドメイン内のすべてのポイントで導関数を持つ) であれば、出力に小さな変化が生じます。もちろん、上で述べたように、導関数の計算は非常に重要であり、ニューロンをトレーニングできるかどうかの決定的な要因となります。 Sigmoid、Softmax、ReLU など、よく使用される活性化関数をいくつか挙げます。

活性化関数の飽和区間

Tanh、Sigmoid、ReLU などの非線形活性化関数にはすべて飽和区間があります。


トリガー関数の飽和範囲とは、入力値が変化しても関数の出力値が変化しない区間を指すことは容易に理解できます。変化間隔には2つの問題があります。ニューラルネットワークの順方向伝播では、この層の値が徐々に活性化関数の飽和間隔に陥り、複数の同一の出力が徐々に出現するようになります。

これにより、モデル全体で同じデータ フローが実現されます。この現象は共分散シフトと呼ばれます。 2 番目の問題は、バックプロパゲーション中に、導関数が飽和領域でゼロになるため、ネットワークがほとんど何も学習しないことです。このため、バッチ正規化のセクションで説明したように、値の範囲を平均が 0 になるように設定する必要があります。

7. モデルのハイパーパラメータとは何ですか? パラメータとどう違うのですか?

モデルのパラメータは何ですか?


機械学習の本質に戻ると、機械学習にはデータセットが必要です。データなしでどうやって学習できるでしょうか? データが利用可能になると、マシンはデータの山の中で入力と出力の関係を見つける必要があります。

データが気温や湿度などの気象情報だとします。機械に求められるのは、上記の要因と奥さんが怒っているかどうかの関連性を見つけることです。これは関係ないように思えるかもしれませんが、機械学習は、その機能に関して言えば、かなり愚かです。ここで、変数 y を使用して妻が怒っているかどうかを表し、変数 x1、x2、x3... が天候の要素を表すとします。関数 f (x) を次の関係に簡約します。


係数w1、w2、w3が見えますか? w_1、w_2、w_3 ..w1、w2、w3 ..? これは、必要なデータと要素の関係であり、いわゆるモデル パラメーターです。したがって、モデルパラメータを次のように定義できます。

モデル パラメーターは、トレーニング データから生成されるモデル値であり、データ内の数量間の関係を示すのに役立ちます。

したがって、問題に適したモデルを見つけたと言う場合、それは既存のデータセット上で問題に最適なモデル パラメータを見つけたことを意味します。次のような特徴があります。

  • 新しいデータを予測するために使用される
  • これは、使用したモデルの機能を示しています。これは通常、正確性という観点から表現され、これを精度と呼びます。
  • トレーニングデータセットから直接学習する
  • 通常、手動設定は必要ありません

モデル パラメータには、ニューラル ネットワークの重み、サポート ベクター マシンのサポート ベクター、線形回帰またはロジスティック回帰アルゴリズムの係数など、さまざまな形式があります。

モデルのハイパーパラメータとは何ですか?


モデルのハイパーパラメータはモデルパラメータに似ているとよく思われますが、実際はそうではありません。実際、これら 2 つの概念は完全に別個のものです。モデル パラメータがトレーニング データセット自体によってモデル化される場合、モデルのハイパーパラメータは完全に異なります。これは完全にモデルの外部にあり、トレーニング データに依存しません。その目的は何でしょうか? 実際には、いくつかのタスクがあります。

  • トレーニングプロセスで使用され、モデルが最適なパラメータを見つけるのに役立ちます。
  • これは通常、モデルトレーニングの参加者によって厳選されます。
  • これは、いくつかのヒューリスティック戦略に基づいて定義できます。

特定の問題に関して、最適なモデルハイパーパラメータが何であるかがまったくわかりません。したがって、実際には、グリッド検索などのいくつかの手法を使用して、適切な値の範囲(k 最近傍モデルにおける k 係数など)を推定する必要があります。ここで、モデルのハイパーパラメータの例をいくつか示します。

  • 人工ニューラルネットワークを訓練する際の学習率
  • サポートベクターマシンをトレーニングする際のCおよびシグマパラメータ
  • 最近傍モデルにおけるk係数

8. 学習率が高すぎる、または低すぎる場合はどうなりますか?


モデルの学習率が低すぎると、重みの更新が非常に少なくなるため、モデルのトレーニングが非常に遅くなります。局所最適値に到達するまでに多くの更新が必要です。

学習率が高すぎると、重みの更新が過剰になり、モデルが収束しない可能性があります。重みを更新するステップで、モデルがローカル最適化から外れ、将来的にモデルが最適なポイントに更新することが困難になり、代わりにローカル最適化ポイントの周りをジャンプする可能性があります。

9. 画像サイズが 2 倍になると、CNN パラメータの数はいくつに増えますか? なぜですか?

これは受験者にとって非常に誤解を招く質問です。なぜなら、ほとんどの受験者は CNN パラメータの数が何倍に増加するかに焦点を合わせるからです。ただし、CNN のアーキテクチャを見てみましょう。


CNN モデルのパラメータの数は、入力画像ではなく、フィルターの数とサイズによって決まることがわかります。したがって、画像のサイズを 2 倍にしても、モデルのパラメータの数は変わりません。

10. 不均衡なデータにはどのように対処すればよいですか?

これは、実際のデータの問題に対処する候補者のアプローチをテストする質問です。通常、実際のデータと標準データセットは、データセットの特性と量が大きく異なります (標準データセットでは調整は必要ありません)。実際のデータセットでは、データの不均衡、つまりクラス間のデータが不均衡になる場合があります。ここで、次のテクニックを検討することができます。

  • モデルを評価するための適切なメトリックの選択: 前のセクションで説明したように、不均衡なデータセットの場合、評価に精度を使用することは非常に危険な作業です。精度、再現率、F1 スコア、AUC などの適切な評価指標を選択する必要があります。
  • トレーニング データセットの再サンプリング: 異なる評価基準を使用するだけでなく、いくつかの手法を使用して異なるデータセットを取得することもできます。不均衡なデータセットから均衡のとれたデータセットを作成する方法は、アンダーサンプリングとオーバーサンプリングの 2 つがあり、具体的な手法としては、繰り返し、ブートストラップ、ヒット (包括的少数派オーバーサンプリング手法) などがあります。
  • さまざまなモデルのアンサンブル: より多くのデータを作成してモデルを一般化することは、実際には必ずしも実行可能ではありません。たとえば、1,000 個のデータ サンプルを持つ希少クラスと 10,000 個のデータ サンプルを持つ大規模クラスの 2 つのレイヤーがあるとします。したがって、モデルをトレーニングするためにまれなクラスから 9,000 個のデータ サンプルを探す代わりに、10 個のモデルをトレーニングするというソリューションを検討できます。各モデルは、1000 個の希少クラスと 1000 個の大規模クラスでトレーニングされます。次に、アンサンブル技術を使用して優れた結果を得ます。

  • モデルの再設計 - 損失関数: ペナルティ手法を使用して、コスト関数内の多数派クラスに厳しいペナルティを課し、モデル自体がまれなクラスのデータについてより適切に学習できるようにします。これにより、損失関数の値がクラス全体でより包括的になります。

11. ディープラーニング モデルをトレーニングする場合、エポック、バッチ、反復の概念はどういう意味ですか?

これらはニューラル ネットワークをトレーニングする際の非常に基本的な概念ですが、実際には多くの受験者がこれらの概念を区別する際に混乱します。具体的には、次の質問に答える必要があります。

  • エポック: データセット全体の反復を表します (すべてがトレーニング モデルに含まれます)。
  • バッチ: データセット全体を一度にニューラル ネットワークに配置できない場合は、データセットをいくつかの小さなデータセットのバッチに分割します。
  • 反復: エポックを実行するために必要なバッチの数です。データとして 10,000 枚の画像があり、バッチ サイズ (batch_size) が 200 であると仮定します。そうすると、エポックには 50 回の反復 (10,000 を 200 で割った値) が含まれます。

12. データ ジェネレーターの概念は何ですか? いつ使用する必要がありますか?

データ ジェネレーターは、コードを書く上で非常に重要です。データ生成関数は、データを直接生成し、それをモデルに送信して各バッチをトレーニングするのに役立ちます。


生成関数の使用は、ビッグデータのトレーニングに非常に役立ちます。データセットを常に RAM に完全にロードする必要はないため、これはメモリの無駄であり、データセットが大きすぎるとメモリ オーバーフローが発生し、入力データの処理時間が長くなります。

要約する

これらは、面接プロセス中に候補者によく尋ねるディープラーニングに関する 12 の面接の質問です。ただし、質問の仕方は受験者ごとに異なり、受験者の質問の中からランダムに出題される質問もあります。

この記事は技術的な問題についてのものですが、面接にも関係しており、私の個人的な意見では、面接の成功の 50% は態度によって決まります。したがって、知識とスキルを積み重ねることに加えて、常に誠実さ、進歩、謙虚さを持って自分自身を表現すれば、どんな会話でも必ず成功するでしょう。あなたの願いが早く叶うことを願っています。

<<:  ハイパーコンバージド インフラストラクチャで AI をエッジに押し上げる

>>:  【ビッグネームがやってくる、エピソード10】柔軟なビッグデータクラウド分析プラットフォームを構築するためのハードルはゼロ

ブログ    
ブログ    
ブログ    

推薦する

2022年の人工知能の7つのトレンド

近い将来に大きな価値を生み出す可能性のある技術の予測となると、人工知能は間違いなくリストのトップに位...

...

中山大学、AIGCの大規模応用を促進するためにソース拡散モデル統合コードフレームワークを公開

近年、拡散モデルに基づく画像生成モデルが次々と登場し、驚くべき生成効果を示しています。しかし、関連す...

...

デューク大学: 効率的な人工知能システムのソフトウェアとハ​​ードウェアの共同設計

少し前に、機械知能 AI テクノロジー年次会議がオンラインで開催されました。デューク大学電気・コンピ...

マスク氏はオープンAIの主任科学者に質問した。「いったい何を見てそんなに怖くなったのですか?」

2015年11月27日、イーロン・マスクはイリヤ・スツケヴァー氏がOpenAIの主任科学者として参...

2024年以降の5つのAIトレンド

GPT-4 以降: OpenAI GPT-3 は、その自然言語機能で大きな話題を呼びました。 GPT...

NatureがAIGC禁止令を発令!ビジュアルコンテンツにAIを使用した投稿は受け付けられません

最も権威のある科学雑誌の一つであるネイチャー誌は最近、明確な声明を発表しました。 生成型人工知能 (...

...

知遠の「盗作スキャンダル」最新報道:盗作2件、不正引用4件、関係者全員が自主辞任

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

Bengio が参加、LeCun が気に入る: グラフ ニューラル ネットワークの権威あるベンチマークがオープンソースに

[[317692]]グラフニューラルネットワークはどの程度発展しましたか?現在、評価専用のベンチマー...

...

AIチップ市場に必要なのは火か氷か?

最近、AIチップ市場は明らかに冷え込んでいます。チップ市場のリーダーであるNvidiaが先日発表した...

AI導入で避けるべき5つの間違い

人工知能と機械学習は、ビジネスの成功にとって貴重な資産となるでしょう。 AI を実装することで、企業...