ついに誰かが畳み込みニューラルネットワーク(CNN)を明確にした。

ついに誰かが畳み込みニューラルネットワーク(CNN)を明確にした。

[[406748]]

従来のニューラル ネットワーク レイヤーは完全に接続されています。サンプリング データ レイヤーの数が多く、入力が高次元データである場合、パラメーターの数は天文学的な数になる可能性があります。

たとえば、1000×1000 ピクセルのグレー画像をトレーニングする場合、入力ノードの数は 1000×1000 です。隠し層ノードが 100 の場合、入力層から隠し層への重みマトリックスは 1000000×100 になります。隠れ層を追加してバックプロパゲーションを実行すると、結果は想像できます。それだけでなく、完全接続方式では過剰適合が発生しやすくなります。

したがって、画像、ビデオ、音声、自然言語などのデータ情報をより効率的に処理するには、別の方法を見つける必要があります。長年にわたるたゆまぬ努力の結果、人々はついにいくつかの効果的な方法とツールを発見しました。その中でも畳み込みニューラルネットワークが代表的なものです。

01 畳み込みネットワークの一般的なアーキテクチャ

畳み込みニューラル ネットワーク (CNN) は、1986 年に BP アルゴリズムで初めて提案されたフィードフォワード ニューラル ネットワークです。 1989 年に LeCun はこれを多層ニューラル ネットワークに適用しましたが、ニューラル ネットワークのプロトタイプが基本的に形成されたのは、1998 年に LeCun が LeNet-5 モデルを提案したときでした。

次の 10 年間、畳み込みニューラル ネットワークの研究は、2 つの理由から低迷しました。1 つ目は、研究者が多層ニューラル ネットワークの BP トレーニングに必要な計算量が非常に大きく、当時のハードウェアの計算能力ではまったく達成不可能であることを認識したことです。2 つ目は、SVM などの浅い機械学習アルゴリズムも登場し始めたことです。

2006年、ヒントンは「ニューラルネットワークによるデータの次元削減」と題する論文を科学誌に発表し、衝撃的なデビューを果たしました。CNNは再び目覚め、大きな進歩を遂げました。 2012年、CNNがImageNetコンペティションで優勝しました。

2014 年に、Google は 20 層の VGG モデルを開発しました。同年、DeepFace モデルと DeepID モデルが登場し、LFW データベースでの顔認識と顔認証の精度が 99.75% まで直接向上し、人間の平均を超えました。

畳み込みニューラル ネットワークは、1 つ以上の畳み込み層と最上部の完全接続層 (従来のニューラル ネットワークに対応)、および関連する重みとプーリング層で構成されます。他のディープラーニングアーキテクチャと比較して、畳み込みニューラルネットワークは画像認識と音声認識においてより優れた結果をもたらすことができます。このモデルは、バックプロパゲーション アルゴリズムを使用してトレーニングすることもできます。

他のディープなフィードフォワード ニューラル ネットワークと比較して、畳み込みニューラル ネットワークは、より少ないパラメータでより高いパフォーマンスを実現できます。図 3-1 は単純な畳み込みニューラル ネットワーク アーキテクチャです。

▲図3-1 畳み込みニューラルネットワークの模式図

図 3-1 に示すように、アーキテクチャには、畳み込み層、プーリング層、完全接続層、出力層などの畳み込みニューラル ネットワークの一般的な層が含まれます。また、正規化層、高度な層などの他の層が含まれる場合もあります。次に、各層の構造と原理について詳しく説明します。

図 3-1 は、畳み込み層、プーリング層、および完全結合層で構成される比較的単純な畳み込みニューラル ネットワークを使用して手書き入力データを分類するアーキテクチャの概略図です。次に、この畳み込みニューラル ネットワークをコードで定義し、各部分の定義と実装の原則を紹介します。

02 チャンネルの魅力を高める

チャネルを追加するということは、実際には畳み込みカーネルを追加することを意味し、これが畳み込みプロセス全体の中核となります。比較的単純な畳み込みカーネルまたはフィルターには、垂直エッジ フィルター (Vertical Filter)、水平エッジ フィルター (Horizo​​ntal Filter)、ソーベル フィルター (Sobel Filter) などがあります。

これらのフィルターは、画像の垂直エッジ、水平エッジを検出したり、画像の中央領域の重みを強調したりすることができます。以下では、いくつかの図を使用して、これらのフィルターの特定の機能を簡単に説明します。

1. 垂直エッジ検出

垂直エッジ フィルタは 3×3 行列です (フィルタは一般に奇数次行列であることに注意してください)。その特徴は、1 列目と 3 列目に値があり、2 列目が 0 であることです。図 3-2 に示すように、元のデータの垂直エッジを検出するために使用できます。

▲図3-2 垂直エッジのフィルタ検出

2. 水平エッジ検出

水平エッジ フィルタも 3×3 行列です。その特徴は、1 行目と 3 行目に値があり、2 行目が 0 であることです。図 3-3 に示すように、元のデータの水平エッジを検出するために使用できます。

▲図3-3 水平エッジのフィルタ検出

上記の 2 つのフィルタが画像の水平エッジ検出と垂直エッジ検出に与える影響を図 3-4 に示します。

▲図3-4 画像の水平エッジ検出と垂直エッジ検出におけるフィルタの効果

上記で紹介した 2 つのフィルターは比較的単純です。ディープラーニングでは、垂直エッジ、水平エッジなどの検出に加えて、フィルターは他のエッジ特徴も検出する必要があります。

では、フィルターはどのように決定するのでしょうか?フィルターは、標準的なニューラル ネットワークの重み行列 W に似ています。W は、勾配降下アルゴリズムを繰り返し実行して取得する必要があります。したがって、ディープラーニングでは、フィルターもモデルのトレーニングを通じて取得する必要があります。畳み込みニューラル ネットワークはこれらのフィルターの値を計算し、画像のすべてのエッジ特徴の検出を実現します。

03 ネットワークを深める動機

ネットワークを深くすることによる利点としては、パラメータの数を減らし、受容野(ニューロンに変更が適用される局所的な空間領域)を拡大できることなどが挙げられます。

受容野とは、畳み込みニューラル ネットワークの各層によって出力される特徴マップ上のピクセルが入力画像にマッピングされる領域のサイズを指します。簡単に言えば、受容野とは、図 3-5 に示すように、特徴マップ上の各点に対応する入力マップ上の領域です。

▲図3-5 ネットワーク層を追加して受容野を拡大する図

図3-5からわかるように、畳み込み層が複数あると、特徴によって表現される情報量が増加し、1つのs3がx1、x2、x3、x4、x5の情報を表すようになります。

さらに、レイヤーを積み重ねることで、ネットワークの表現力がさらに向上します。これは、活性化関数に基づく「非線形」な表現力をネットワークに付加するものであり、非線形関数の重ね合わせにより、より複雑な内容を表現できるようになります。

異なるレイヤーで抽出された画像の特徴は異なります。図 3-6 に示すように、レイヤーの数が増えるほど、表現される特徴は複雑になります。

▲図3-6 層によって特徴が異なる

図 3-6 からわかるように、前のレイヤーによって抽出された特徴は、いくつかの色とエッジの特徴など、比較的単純です。さらに進むと、抽出される特徴はより複雑になり、複雑な幾何学的形状になります。これは、多層畳み込みを通じてレイヤーごとの特徴抽出と画像の抽象化を完了するという、畳み込みニューラル ネットワークの当初の設計意図と一致しています。

図 3-7 に示すように、ELMo 事前トレーニング済みモデルでも同様の状況が存在します。レイヤーの数が増えるにつれて、表現するコンテンツはより複雑で抽象的になります。

▲図3-7 ELMoモデル

04 残留接続

ネットワーク層の数が増えると、微分の連鎖律に従って、勾配消失や爆発などの問題が発生する可能性が高くなります。たとえば、各ネットワーク層の活性化関数の導関数が比較的小さい場合、複数回の乗算の後に勾配がどんどん小さくなる可能性があります。これは、勾配消散と呼ばれることがよくあります。深いネットワークの場合、勾配は浅い層に到達するとほとんどなくなります。

このような問題を解決する場合、適切な活性化関数を使用することに加えて、残差接続を使用するというもう 1 つの重要な手法があります。図3-8は残留接続の簡単な概略図です。

▲図3-8 残留接続の模式図

図 3-8 に示すように、図中の各導関数に恒等項 1 が追加され、dh/dx = d(f + x)/dx = 1 + df/dx となります。このとき、元の導関数 df/dx が非常に小さい場合でも、誤差を効果的に逆伝播することができ、これも残差接続の核心的な考え方です。

著者について: Wu Maogui は、ビッグデータと人工知能技術の上級専門家であり、BI、データマイニングと分析、データウェアハウス、機械学習などの分野で 20 年以上働いています。彼は、Spark、TensorFlow、PyTorch、Keras などに基づく機械学習とディープラーニングの分野で幅広いエンジニアリングの実績があり、埋め込みに関する詳細な研究を行っています。

シニア データ サイエンティストの Wang Hongxing 氏は、Bosch (China) Investment Co., Ltd. Suzhou Branch に勤務し、BOSCH データ レイク、データ分析、人工知能関連の製品とサービスの設計と開発を担当しています。彼はビッグデータ、機械学習、人工知能の分野で豊富な実務経験を持っています。

この記事は「Embedding in Simple Terms: Principle Analysis and Application Practice」から抜粋したもので、出版社の許可を得ています。

<<:  シングルチップマイクロコンピュータ用のいくつかのC言語アルゴリズム

>>:  Facebook、MITなどが研究論文を発表:ディープラーニングの実際の仕組みを説明する理論

ブログ    
ブログ    
ブログ    

推薦する

...

機械学習の実践者が直面する8つの大きな課題

機械学習 (ML) や人工知能 (AI) と聞くと、多くの人はロボットやターミネーターを想像します。...

人工知能の時代では、女の子よりも男の子の方が失業する可能性が高いです!

ジョークを一つ言わせてください。今、路上で物乞いをしている人を見かけたら、ぎこちなくポケットを触り、...

AIが銀行業務をどう変えるか

今日、人工知能 (AI) は多くの業界に多くの資産と利点をもたらし、チャットボットから Siri や...

紆余曲折の続く教育+AI。舞台裏へのシフトは、巨大企業の拡大に向けた「新たな春」となるのか?

現在、人工知能技術は多くの産業に大きな影響を与えています。その中で、近年最もホットな産業である教育は...

人工知能は電子商取引の分野でどのような応用が期待できるでしょうか?

科学技術と経済社会の急速な発展に伴い、人工知能の応用はますます一般的になり、その発展は私たちの仕事や...

現代の分散ストレージシステムをサポートするアルゴリズム

アプリケーションによって処理されるデータの量が増え続けるにつれて、ストレージの拡張はますます困難にな...

分散システム設計のための負荷分散アルゴリズム

概要分散システムの設計では、通常、サービスはクラスターに展開されます。クラスター内の複数のノードが同...

人工知能に関する12の有名な引用

[[321443]]アラン・チューリング(1912-1954)は、人工知能の概念を真剣に受け止めた最...

Torch7 オープンソース PyTorch: Python ファーストのディープラーニング フレームワーク

PyTorch は、次の 2 つの高レベル機能を提供する Python パッケージです。強力な GP...

ビル・ゲイツ氏:GPT-5はGPT-4よりそれほど良くはならない、生成AIは限界に達した

ビル・ゲイツ氏の暴露は機械学習コミュニティで話題となっている。 「GPT-5 は GPT-4 よりそ...

知識が求められるポストディープラーニング時代に、知識グラフをいかに効率的かつ自動的に構築するか

ナレッジグラフは何ができるのでしょうか?ナレッジグラフを自動的かつ効率的に構築するにはどうすればよい...

...

海外の詐欺師はAIを使ってテイラー・スウィフトの声を合成し、「無料のキッチン用品」の広告を偽造して詐欺行為を行った。

ニューヨーク・タイムズ紙は現地時間1月10日、ここ数週間、フェイスブックなどのプラットフォームに、ア...

SAPはイノベーションで顧客の成功を支援し、AI時代のデータ主導のビジネス変革の未来を形作ります

SAP は、AI 時代において顧客がデータの潜在能力を最大限に活用し、より深い洞察、より速い成長、よ...