畳み込みニューラル ネットワークの実践 - 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 でリカレントニューラルネットワークを実装するにはどうすればいいですか?

ブログ    
ブログ    
ブログ    

推薦する

人工知能の未来とERPシステムの4つの新たな要件

今後 5 年間で、AI は企業とそのビジネス モデルに大きな影響を与えるでしょう。調査会社プライスウ...

GPT-4 が人間のデータ専門家を引き継いでいます!事前の知識により、LLMは従来の方法に匹敵する精度で大胆な予測を行うことができます。

データ サイエンスでは、AI 研究者は不完全なデータセットを処理するという課題にしばしば直面します。...

...

アルゴリズミア:人工知能は2021年に主流になる

1月6日、海外メディアの報道によると、新型コロナウイルス肺炎流行の影響により、企業内での人工知能技術...

...

ディスカッション | 人工知能は同時通訳に取って代わることができるか?

[[254687]]少し前に同時通訳者がiFlytekを「AI同時通訳詐欺」と非難し、ネット上で騒...

2022年に人工知能が製造業を変える4つの方法

何年もの間、私たちは「来年」が人工知能にとって画期的な年になるだろうという話を聞いたり読んだりしてき...

倫理的な AI の今後はどうなるのでしょうか?

今日のデジタル時代では、人工知能 (AI) と機械学習 (ML) はあらゆるところに存在しています。...

Microsoft の 38 TB の内部データが漏洩!秘密鍵と3万件以上の仕事上の会話が漏洩、その背後にある理由は衝撃的

何か大きなことが起こりました!数か月前、マイクロソフトの AI 研究チームは、大量のオープンソースの...

Google Bard「叙事詩」アップデート:カスタマイズされた中国語サービス、画像分析機能を公開

今年3月、Googleは生成AI「Bard」のベータ版のリリースを発表しました。当時、このバージョン...

新しいインフラの登場により、自動運転のビジネスチャンスはどこにあるのでしょうか?

まだ「投資段階」にある自動運転業界にとって、「新しいインフラ」は単なる概念ではなく、実際のビジネスチ...

ジェフ・ディーンの1万語の記事:2020年のGoogleの10大分野におけるAI技術の発展

ジェフ・ディーン氏は数万語に及ぶ長文の記事を公開し、過去1年間のGoogleのさまざまな分野での成果...

Java における 4 つの基本的な暗号化アルゴリズムの分析

シンプルな Java 暗号化アルゴリズムは次のとおりです。厳密に言えば、BASE64 は暗号化アルゴ...

メタは自社の弁護士の警告を無視し、海賊版書籍を使用してAIモデルを訓練したと報じられている。

ロイター通信は12月13日、著作権侵害訴訟の新たな文書によると、メタ・プラットフォームズは何千冊もの...

エッジAIの夢と課題

この記事では、AI を「小型マシン」に実装する根拠と、AI 小型マシンの開発で直面する課題という 2...