私達と接続

CNN (畳み込みニューラル ネットワーク) とは何ですか?

AI 101

CNN (畳み込みニューラル ネットワーク) とは何ですか?

mm

おそらく、Facebook や Instagram がどのようにして画像内の顔を自動的に認識できるのか、あるいは Google がどのようにして自分の写真をアップロードするだけで類似の写真をウェブで検索できるのか疑問に思ったことがあるかもしれません。これらの機能はコンピューター ビジョンの例であり、次のものを利用しています。 畳み込みニューラル ネットワーク (CNN)。 では、畳み込みニューラル ネットワークとは一体何なのでしょうか? CNN のアーキテクチャを深く掘り下げて、CNN がどのように動作するかを理解しましょう。

ニューラルネットワークとは何ですか?

畳み込みニューラル ネットワークについて話し始める前に、通常のニューラル ネットワークを定義することにしましょう。 あるよ 別の記事 利用可能なニューラル ネットワークのトピックについては、ここで詳しく説明しません。 ただし、簡単に定義すると、これらは人間の脳からインスピレーションを得た計算モデルです。 ニューラル ネットワークは、データを取り込み、「重み」を調整することでデータを操作します。重みとは、入力特徴が相互にどのように関連しているか、またオブジェクトのクラスに関する仮定です。 ネットワークがトレーニングされると重みの値が調整され、特徴間の関係を正確に捉える重みに収束することが期待されます。

これがフィードフォワード ニューラル ネットワークの動作方法であり、CNN はフィードフォワード ニューラル ネットワークと畳み込み層のグループの XNUMX つの部分で構成されます。

畳み込みニューラル ネットワーク (CNN) とは何ですか?

畳み込みニューラル ネットワークで発生する「畳み込み」とは何ですか?畳み込みは、一連の重みを作成する数学的演算であり、基本的に画像の一部の表現を作成します。この重みのセットは次のように呼ばれます。 カーネルまたはフィルター。 作成されるフィルターは入力画像全体よりも小さく、画像のサブセクションのみをカバーします。 フィルターの値は画像の値と乗算されます。 次に、フィルターを移動して画像の新しい部分の表現を形成し、画像全体が覆われるまでこのプロセスが繰り返されます。

これについて考えるもう XNUMX つの方法は、入力画像内のピクセルを表すレンガの壁を想像することです。 フィルターとなる「窓」を壁に沿って前後にスライドさせています。 ウィンドウを通して見えるレンガは、その値にフィルター内の値が乗算されたピクセルです。 このため、フィルターを使用して重みを作成するこの方法は、「スライディング ウィンドウ」技術と呼ばれることがよくあります。

入力画像全体を移動させるフィルタの出力は、画像全体を表す2次元配列です。この配列は「特徴マップ」と呼ばれます。

畳み込みが不可欠な理由

そもそも畳み込みを作成する目的は何でしょうか? 畳み込みが必要なのは、ニューラル ネットワークが画像内のピクセルを数値として解釈できる必要があるためです。 畳み込み層の機能は、画像をニューラル ネットワークが解釈できる数値に変換し、そこから関連するパターンを抽出することです。 畳み込みネットワークのフィルターの仕事は、画像内のパターンを学習するニューラル ネットワークの後続の層に渡すことができる値の XNUMX 次元配列を作成することです。

フィルターとチャンネル

写真: cecebur (ウィキメディア コモンズ経由)、CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Convolutional_Neural_Network_NeuralNetworkFeatureLayers.gif)

CNNは入力画像からパターンを学習するために、単一のフィルターだけを使用するわけではありません。複数のフィルターが使用されます。これは、異なるフィルターによって生成される異なる配列が、入力画像をより複雑で豊かな表現にするためです。CNNで使用されるフィルターの一般的な数は、32、64、128、512です。フィルターの数が多いほど、CNNが入力データを調べて学習する機会が増えます。

CNN は、オブジェクトの境界を決定するためにピクセル値の違いを分析します。 グレースケール画像では、CNN は白と黒、明暗の違いのみを調べます。 画像がカラー画像の場合、CNN は明暗を考慮するだけでなく、赤、緑、青の 3 つの異なるカラー チャネルも考慮する必要があります。 この場合、フィルターは画像自体と同様に XNUMX つのチャンネルを持っています。 フィルターが持つチャンネルの数は深度と呼ばれ、フィルター内のチャンネルの数は画像内のチャンネルの数と一致する必要があります。

畳み込みニューラルネットワーク(CNN) アーキテクチャ

畳み込みニューラルネットワークの完全なアーキテクチャを見てみましょう。畳み込み層は、画像データを数値配列に変換する必要があるため、すべての畳み込みネットワークの先頭に配置されます。ただし、畳み込み層は他の畳み込み層の後に配置することもでき、つまり、これらの層は互いに積み重ねることができます。複数の畳み込み層を持つということは、1つの層からの出力がさらに畳み込み処理され、関連するパターンにグループ化される可能性があることを意味します。実際には、画像データが畳み込み層を通過するにつれて、ネットワークは画像のより複雑な特徴を「認識」し始めます。

ConvNet の初期層は、単純な線を構成するピクセルなどの低レベルの特徴を抽出する役割を果たします。 ConvNet の後の層は、これらの線を結合して形状を作ります。 表面レベルの分析から深層レベルの分析に移行するこのプロセスは、ConvNet が動物、人間の顔、車などの複雑な形状を認識するまで続きます。

データはすべての畳み込み層を通過した後、CNN の密に接続された部分に進みます。 密に接続された層は、従来のフィードフォワード ニューラル ネットワークのように見え、一連のノードが互いに接続された層に配列されています。 データはこれらの密に接続された層を通過し、畳み込み層によって抽出されたパターンを学習します。そうすることで、ネットワークはオブジェクトを認識できるようになります。

専門分野を持つブロガーおよびプログラマー 機械学習   深層学習 トピック。 ダニエルは、他の人が社会利益のために AI の力を活用できるよう支援したいと考えています。