条件付きニューラルネットワーク(CNN)の受容体フィールドは、レイヤー内の特定の機能に影響を与える入力画像の領域を指します。 計算する方法を理解することは、効果的なアーキテクチャの設計とモデルの動作を解釈するのに役立ちます。

受容体分野を理解する

受容体領域のサイズは、データが連続した対電圧とプール層を通過するにつれて増加します。 これにより、出力を生成するときに神経の要素の量が考慮されます。 受容体領域が大きいため、ネットワークはよりグローバル情報をキャプチャすることができます。

受容体分野を計算する

受容体フィールドを計算するには、各レイヤーでカーネルサイズ、ストライド、パディングを考慮してください。 プロセスは、出力レイヤーから始まり、後方を入力レイヤーに加工し、各ステップで受容体フィールドサイズを更新します。

カーネルサイズ[k[:1]のレイヤーの場合、stride ]s]、およびパディング[]p[]]])、受容体フィールドは、次の再帰式を使用して計算することができます。

層の受容体 []l: [
RFl] = RF]l+1 + (k[l]])] - 1) * stridel

出力層から始めて、この式を繰り返して、受容体フィールドを入力層で見つけます。

実用事例

次のレイヤーでCNNを検討してください。

  • 層: カーネル サイズ 3、stride 1、パディング 1
  • 最高のプール: カーネルのサイズ 2、 stride 2

出力から始まると、コンボリューション後の受容体フィールドが3です。プール後、ストライドとカーネルサイズを考慮して4になります。このプロセスを繰り返して、入力レイヤーで受容体フィールドを全体的に判断できます。

ツールとリソース

Pythonライブラリやオンライン計算機など、受容体フィールドの計算を自動化するために、いくつかのツールが利用できます。 これらのツールは、特に複雑なアーキテクチャのために、プロセスを簡素化します。