畳み込みニューラル ネットワークの実践 - Keras を使用して猫を識別する

畳み込みニューラル ネットワークの実践 - Keras を使用して猫を識別する

近年、ディープラーニングの分野における畳み込みニューラルネットワーク(CNN または ConvNet)は、さまざまな業界で数多くの実用的な問題を解決してきました。しかし、ほとんどの人にとって、CNN は謎に包まれているようです。ニューラルネットワークのプロセスを分解して、各ステップの結果がどうなるかを確認できたらどんなに素晴らしいだろうとよく思います。これがこのブログの意味です。

高度なCNN

まず、畳み込みニューラル ネットワークが得意とする分野を理解する必要があります。 CNN は主に画像内のパターンを見つけるために使用されます。このプロセスは主に 2 つのステップで構成されます。まず、画像に対して畳み込みが実行され、次にパターンが検出されます。ニューラル ネットワークでは、最初の数層は境界とコーナーを見つけるために使用されます。層の数が増えるにつれて、より複雑な特徴を認識できるようになります。この特性により、CNN は画像内のオブジェクトの識別に非常に優れています。

CNNとは

CNN は、畳み込み層、プーリング層、活性化層を含む特殊な種類のニューラル ネットワークです。

畳み込み層

畳み込みニューラル ネットワークとは何かを理解するには、まず畳み込みがどのように機能するかを知る必要があります。画像を表す 5*5 の行列があり、その画像上で 3*3 の行列をスライドさせるとします。 3*3 行列が点を通過するたびに、元の行列で覆われている行列にこの行列が掛けられます。これにより、単一の値を使用して現在のウィンドウ内のすべてのポイントを表すことができます。以下にプロセスの GIF を示します。

ご覧のとおり、特徴マトリックスの各エントリは元の画像内の領域に関連付けられています。

グラフ内でウィンドウのように動くものをカーネルと呼びます。カーネルは一般に正方行列です。小さい画像の場合、通常は 3*3 行列で十分です。ウィンドウが毎回移動する距離をステップ サイズと呼びます。一部の画像では境界部分がゼロで埋められることに注意してください。畳み込み演算を直接実行すると、境界部分のデータは小さくなります (もちろん、画像の中央部分のデータの方が重要です)。

畳み込み層の主な目的はフィルタリングです。画像を操作すると、パターンのどの部分が適用したフィルタリングによるものかを簡単に確認できます。畳み込みの出力に重みベクトルを掛けます。画像をトレーニングすると、これらの重みは常に変化し、以前に見たパターンに遭遇すると、対応する重みが増加します。さまざまなフィルターからの高重みの組み合わせにより、ネットワークは画像の内容を予測できるようになります。 このため、CNN アーキテクチャの図では、畳み込みステップは長方形ではなくボックスで表され、3 番目の次元はフィルターを表します。

注記:

畳み込み演算後の出力は、幅と高さが元の出力よりも小さくなります。

カーネルと画像ウィンドウ間の操作は線形です。

フィルタの重みは多数の画像にわたって学習されます。

プーリング層

プーリング層は畳み込み層と非常によく似ており、グラフ上を移動するために畳み込みカーネルも使用します。唯一の違いは、プーリング層におけるカーネルと画像ウィンドウの動作が線形ではなくなったことです。

*** プーリングと平均プーリングは最も一般的なプーリング関数です。 *** プーリングは現在のカーネルでカバーされている画像ウィンドウ内の最大の数値を選択し、平均プーリングは画像ウィンドウの平均を選択します。

レイヤーをアクティブ化

CNNでは活性化関数は他のネットワークと同じで、関数によって値を範囲に圧縮します。一般的な機能のいくつかを以下に示します。

CNN で最もよく使用されるのは relu (Rectified Linear Unit) です。 relu が好まれる理由はたくさんありますが、最も重要なのは、実装が非常に簡単で、値が負の場合は 0 を出力し、それ以外の場合はそれ自身を出力することです。この機能は操作が簡単なので、ネットワークのトレーニングも非常に高速です。

レビュー:

CNN には、畳み込み層、プーリング層、活性化層という 3 つの主要な層があります。

畳み込み層は畳み込みカーネルを画像ウィンドウに掛け合わせ、勾配降下法を使用して畳み込みカーネルを最適化します。

プーリング層は、最大値または平均を使用してグラフィック ウィンドウを記述します。

アクティベーションレイヤーはアクティベーション関数を使用して、入力を範囲(通常は [0, 1][-1, 1])に圧縮します。

CNNとは何ですか?

CNN について詳しく説明する前に、まず背景を説明しましょう。 1990 年代初頭、Yann LeCun 氏は CNN を使用して手書き数字認識プログラムを作成しました。時代の発展、特にコンピュータの性能と GPU の向上により、研究者には想像の余地が広がりました。 2010 年、スタンフォード大学のマシン ビジョン研究所は ImageNet プロジェクトをリリースしました。このプロジェクトには、説明が付けられた 1,400 万枚の画像が含まれています。これは、CNN モデルを比較するための標準になりつつあります。現在、*** のモデルはこのデータセットで 94% の精度を達成できます。精度を高めるために、モデルは絶えず改良されています。 2014 年には、GoogLeNet と VGGNet が最も人気のあるモデルになりましたが、それ以前は ZFNet でした。 ImageNet に適用された CNN の最初の実用例は AlexNet でした。これに先立ち、研究者は従来のコンピューター ビジョン技術の使用を試みましたが、AlexNet は他のすべてを 15% 上回るパフォーマンスを発揮しました。 LeNetを見てみましょう:

この図にはアクティベーション レイヤーは示されていません。全体のプロセスは次のとおりです。

入力画像 → 畳み込み層 → Relu → *** プーリング → 畳み込み層 → Relu → *** プーリング → 隠れ層 → Softmax (活性化) → 出力層。

実際の例を見てみましょう

以下は猫の写真です。

この画像は長さ 400 ピクセル、幅 320 ピクセルで、3 つのカラー チャネル (RGB) があります。

では、畳み込み演算のレイヤーを経るとどうなるでしょうか?

これは、3*3 畳み込みカーネルと 3 つのフィルターを使用した場合の効果です (フィルターが 3 つ以上ある場合は、猫の 2D 画像を描くことができます。高次元は処理が困難です)

ランダムな初期化値を使用し、ネットワークをまだトレーニングしていないため、猫が非常にぼやけていることがわかります。それらはすべて重なり合っており、各レイヤーに詳細があっても、それを見ることはできません。しかし、猫の部分を目や背景と同じ色にすることはできます。カーネル サイズを 10x10 に増やすとどうなりますか?

カーネルが大きすぎるために、詳細が失われていることがわかります。また、数学的に言えば、カーネルが大きくなるほど、画像の形状が小さくなることに注意してください。

少し圧縮すると、カラー チャネルに何が起こるかがよくわかります。

こちらのほうがずっと良くなりました! これで、フィルターが見ているものの一部がわかります。猫の黒い鼻と黒い目が赤に、薄い灰色の縁取りが青に置き換えられているようです。レイヤーが写真のより重要な詳細をどのように捉えているかがわかります。

カーネル サイズを大きくすると、より詳細な情報が得られますが、当然ながら画像は他の 2 つよりも小さくなります。

アクティベーションレイヤーを追加する

relu を追加することで、青色以外の部分を多く削除します。

プーリング層を追加する

プーリング レイヤーを追加します (画像の可視性を最大化するためにアクティベーション レイヤーを削除します)。

予想通りまだら模様になってしまいましたが、さらにまだら模様にすることも可能です。

画像は元のサイズの約 3 分の 1 になりました。

アクティベーションとプーリング

レネット

畳み込みとプーリングのために猫の写真を LeNet モデルに入れると何が起こるでしょうか?

要約する

ConvNet は、画像のコア機能を抽出し、その機能を使用してその機能を含む画像を識別できるため、強力です。 2 層の CNN であっても、ネットワークが猫のひげ、鼻、目などの領域に多くの注意を払っていることがわかります。これらは、CNN が猫と鳥を区別できるようにする特徴の種類です。

CNN は非常に強力であり、これらの視覚化は完璧ではありませんが、ConvNet をより深く理解しようとしている私のような人々の役に立つことを願っています。

<<:  CNNの簡単な分析と、長年にわたるImageNetチャンピオンモデルの分析

>>:  PyTorch でリカレントニューラルネットワークを実装するにはどうすればいいですか?

ブログ    

推薦する

中国人がさらに7,360万ドルの資金調達を実施した!天才プログラマーが共同設立したLeCunの重鎮たちが全員サポート

Perplexity AIは本日、シリーズBの資金調達で7,360万ドルを調達し、評価額は5億2,0...

...

AIアーキテクトとはどのような人達でしょうか?

アシュトーシュ・グプタ翻訳者: ブガッティ企画丨孫淑娥亮策要するに:人工知能 (AI) プロジェクト...

ChatGPT Plusアカウント登録が停止されました!ネットユーザーは激怒、アカウントの売買やレンタルがネットワーク全体で高騰中

ちょうど今、サム・アルトマンがXで衝撃的なニュースを発表しました—— ChatGPT Plusアカウ...

...

...

数は力なり!テンセントが明らかに:エージェントの数が増えるほど、大規模言語モデルはより良くなる

Tencent の研究者は、エージェントのスケーリング特性に関する研究を行いました。単純なサンプリン...

...

米国は中国のAI企業に対する制裁で目的を果たせなかったのか?

[[278497]]中国の人工知能企業数社は、ある日、自分たちがこのようなユニークな形で世界の注目...

スマートシティ開発:廃棄物管理と大気質監視

廃棄物管理と空気質監視におけるスマートシティの進歩を通じて、都市生活の未来を探ります。 「スマート ...

Siriは中国で禁止されるのでしょうか?国内AI企業がアップルを特許侵害で訴え、高等法院は中国の特許を有効と認定

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

色を選ぶと、このAIシステムがロゴをデザインします

LoGANがデザインしたいくつかのロゴ画像提供: マーストリヒト大学[51CTO.com クイック翻...

百度グループ副社長ウー・ティエン氏:文心ビッグモデル3.5は機能面でChatGPT3.5を上回った

7月19日、「新バージョンの文心易言の性能はChatGPT 3.5を上回り、これは我が国の関連技術作...

...

3分で振り返る!2021年9月のロボット分野の重要な動向を概観

2021年9月に北京で開催された世界ロボットコンテストでは、さまざまな企業がロボット技術の研究開発に...