畳み込みニューラルネットワークが分かりませんか?怖がらないでください、このかわいい写真を​​見ればわかりますよ!

畳み込みニューラルネットワークが分かりませんか?怖がらないでください、このかわいい写真を​​見ればわかりますよ!

この記事では、畳み込みニューラル ネットワーク (CNN) の基本原理を、関連する数学理論を省き、最も簡潔かつわかりやすい方法で説明します。

同時に、CNN ネットワークをゼロから構築するなどの問題に興味がある場合は、「Artificial Intelligence for Humans Volume 3: Deep Learning and Neural Networks」の第 10 章を読むことを著者は推奨しています。

さあ、CNNの旅を始めましょう——

ネットワーク構造

CNN モデルは通常、フィードフォワード ニューラル ネットワーク モデルに基づいて構築されるため、その構造を理解しておく必要があります。違いは、「非表示レイヤー」が次のレイヤーに置き換えられることです。

  • 畳み込み層
  • プーリングレイヤー

完全接続層(密層)

構造は次の図のようになります。

畳み込み

この段階では、入力画像はグリッドによってスキャンされ、ネットワークへの入力として渡されます。次に、ネットワークは入力画像に畳み込み層を適用し、3 つの画像を含む 3D キューブ構造に分割します。これら 3 つの画像フレームは、それぞれ元の画像の赤、緑、青の情報を表します。

次に、PhotoShop のフィルターを使用して特定の特徴を強調するのと同様に、画像に畳み込みフィルター (ニューロンとも呼ばれます) を適用します。たとえば、漫画「Doc And Mharti」では、Roberts クロス エッジ強調フィルターを使用した効果が次の図に示されています。

オリジナル画像

治療後

100 種類以上のフィルターを備えたニューラル ネットワークが複雑な特徴を選別する能力がいかに強力であるかは想像に難くなく、それが現実世界の物事を識別するのに大いに役立つでしょう。ニューラル ネットワークが画像に畳み込みフィルターを適用すると、特徴/活性化マップを取得できます。

特徴マップは、指定された領域内の特定のニューロンによってアクティブ化されます。たとえば、下の左側の画像にエッジ検出フィルターを追加すると、そのアクティブ化マップが右側の画像に表示されます。

これらの点は 0 の行を表します (これらの領域がエッジである可能性が高いことを示します)。 2 次元配列では、値「30」は、画像領域にエッジが存在する可能性が高いことを示します。

レイヤーをアクティブ化

活性化マップができたら、その中の活性化関数を使用できます。研究者の最初の関数である ReLU 活性化関数 (正規化線形ユニット) を例として使用してみましょう。しかし、シグモイド関数や双曲正接関数を使用すると最良のトレーニング結果が得られると信じている研究者もいますが、私はそうは思いません。

アクティベーション レイヤーを使用すると、システムに非線形性が導入され、入力と出力の一般性が向上します。 ReLU(x) 関数は、単純に max(0,x) またはアクティベーション マップ内の負の重みを返します。

プーリング層

次のベストプラクティスは通常、特徴マップにディーププーリング(またはその他のタイプのプーリング)を適用することです。プーリング層を適用する原理は、小さなグリッドで画像をスキャンし、各グリッド セルを、指定されたグリッド内の最適な値を含む単一のセルに置き換えることです。

これを実行する重要な理由の 1 つは、特定の特徴が入力の特定の領域にあることがわかれば、その特徴の正確な位置を無視してデータを一般化し、過剰適合を減らすことができることです。たとえば、トレーニングの精度が 99% に達したとしても、これまでに見たことのない新しいデータでテストすると、その精度は 50% にしかなりません。

出力層

***プーリング層の後は、完全に接続されたネットワークに渡される情報の一部である、残りのアクティベーション マップについて説明します。完全接続層が含まれており、前の層の各ニューロンの出力を完全接続層のニューロンに単純にマッピングし、出力にソフトマックス関数を適用します。これは、前述の ReLU 関数に似た活性化関数です。

画像を分類するためにニューラル ネットワークを使用するため、ここではソフトマックス関数を使用します。ソフトマックス出力は、合計が 1 になる確率のリストを返します。各確率は、特定の画像が特定の出力クラスに属する確率を表します。しかし、後で画像の予測や復元のタスクになると、線形活性化関数の方がうまく機能します。

これまでは、畳み込み層とプーリング層が 1 つずつという単純なケースのみを検討してきたことに注意してください。最高の精度を達成したい場合は、通常、複数の層を積み重ねる必要があります。各完全な反復の後、ネットワークを通じて計算された損失に基づいて重みが更新されます。

<<:  Ant Financialが機械学習ツールSQLFlowをオープンソース化、機械学習はSQLよりも簡単

>>:  AIがバリアフリー時代へ:手話認識・翻訳の応用が意味するものとは?

ブログ    
ブログ    

推薦する

人工知能に関する世界インターネット会議の8つの視点のレビュー

[[416318]]最近、世界インターネット会議およびインターネット開発フォーラム「人工知能:新たな...

...

アマゾンがホームロボット「Vesta」を開発、2019年に販売開始

海外メディアの報道によると、アマゾンのハードウェア研究開発部門Lab126は、「Vesta」(ヴェス...

SAP の AI グローバル責任者、ウォルター・サン博士: ビジネスで AI を最大限に活用する

テクノロジーは私たちの世界を変えました。それは何十億もの人々に考え、アイデア、洞察を共有する機会を与...

...

「回帰分析」は本当に「機械学習」なのでしょうか?

「統計」と「機械学習」の違いは何ですか?これは数え切れないほど議論されてきた質問です。この問題につ...

OpenAI: GPT-5が危険すぎる場合、理事会はアルトマンの釈放を阻止する権利がある

OpenAIは新たな発表を行った。取締役会はアルトマン氏の決定を拒否する権限を持つようになった。特に...

...

人工知能技術の応用方向

[[395149]]人工知能を学ぶことで何ができるのでしょうか?詳しくご紹介します。 1. 製造業ス...

純粋な乾物 | ディープラーニング研究の概要

[[195952]] 1. ディープラーニングディープラーニングといえば、一度でも触れたことがある人...

Jupyter のアップグレード: さまざまな大規模モデルを接続し、コードを生成し、チャットを通じてエラーを修正できます

これで、大規模言語モデル (LLM) が Jupyter に接続されました。これは主に、Projec...

今日の生活における人工知能(AI)の実際的な意義

人工知能について言えば、ほとんどの人がまだ混乱していると思います。それは何なのか?何に使われるのか?...

機械学習の基礎知識がゼロでも、TensorFlow で画像認識システムを構築する方法をお教えします (パート 2)

[[182024]]これは Wolfgang Beyer によるブログ投稿です。この論文では、Te...