実践的 | この記事は畳み込みニューラルネットワークを始めるのに十分です

実践的 | この記事は畳み込みニューラルネットワークを始めるのに十分です

まず、ディープラーニングとはすべてのディープラーニングアルゴリズムの総称であり、CNNは画像処理分野におけるディープラーニングアルゴリズムの応用であるということを明確にしておきましょう。

まず、ディープラーニングと CNN を学ぶ前は、これらは素晴らしい知識であり、多くの問題を解決できると思っていました。しかし、学んだ後、これらは SVM などの他の機械学習アルゴリズムと似ていることに気付きました。分類器として扱い、ブラックボックスのように使用することはできました。

第二に、ディープラーニングの強みは、ネットワークの中間にある特定の層の出力をデータの別の表現として使用し、それをネットワークによって学習された特徴として見なすことができることです。この機能に基づいて、さらなる類似性の比較などを行うことができます。

3 つ目は、ディープラーニング アルゴリズムの有効性の鍵は、実は大規模なデータであるということです。その理由は、各ディープラーニングには多くのパラメータがあり、少量のデータではパラメータを完全にトレーニングできないからです。

それでは早速、CNN の旅を始めましょう。

1. 畳み込みニューラルネットワーク(CNN)の概要

畳み込みニューラルネットワークは、近年開発され、広く注目を集めている効率的な認識手法です。 1960年代、ヒューベルとヴィーゼルは、猫の大脳皮質における局所的な感度と方向選択に使用されるニューロンの独特なネットワーク構造が、フィードバックニューラルネットワークの複雑さを効果的に軽減できることを発見し、畳み込みニューラルネットワーク(CNN)を提案しました。現在、CNN は多くの科学分野、特にパターン分類の分野で研究のホットスポットの 1 つになっています。ネットワークは画像の複雑な前処理を回避し、元の画像を直接入力できるため、より広く使用されています。 1980 年に K.Fukushima によって提案された新しい認識マシンは、畳み込みニューラル ネットワークの最初の実装でした。その後、より多くの科学研究者がネットワークを改良しました。その中で最も代表的な研究成果は、アレクサンダーとテイラーが提唱した「改良型認知機械」であり、これはさまざまな改良方法の利点を組み合わせ、時間のかかる誤差逆伝播を回避します。

一般的に、CNN の基本構造は 2 つの層から構成され、そのうちの 1 つは特徴抽出層です。各ニューロンの入力は前の層の局所受容野に接続され、局所的な特徴が抽出されます。ローカル特徴が抽出されると、他の特徴との位置関係も決定されます。2 番目は特徴マッピング層です。ネットワークの各コンピューティング層は、複数の特徴マップで構成されています。各特徴マップは平面であり、平面上のすべてのニューロンの重みは等しくなります。特徴マッピング構造は、畳み込みネットワークの活性化関数として小さな影響関数カーネルを持つシグモイド関数を使用し、特徴マッピングをシフト不変にします。さらに、マッピング面上のニューロンは重みを共有するため、ネットワークの自由パラメータの数が削減されます。畳み込みニューラル ネットワークの各畳み込み層の後には、ローカル平均化と二次抽出のための計算層が続きます。この独自の 2 回の特徴抽出構造により、特徴の解像度が低下します。

CNN は主に、変位、拡大縮小、その他の歪みの影響を受けない 2 次元グラフィックスを認識するために使用されます。 CNN の特徴検出層はトレーニング データを通じて学習されるため、CNN を使用する場合、明示的な特徴抽出は回避され、トレーニング データから暗黙的に学習が行われます。さらに、同じ特徴マップ上のニューロンの重みは同じであるため、ネットワークは並列に学習することができ、これもニューロンが互いに接続されたネットワークに対する畳み込みネットワークの大きな利点です。畳み込みニューラル ネットワークは、ローカル重み共有の特殊な構造により、音声認識や画像処理において独自の利点を持っています。そのレイアウトは実際の生物学的ニューラル ネットワークに近いものであり、重み共有によりネットワークの複雑さが軽減されます。特に、多次元入力ベクトルの画像を直接ネットワークに入力できるため、特徴抽出および分類時のデータ再構築の複雑さが回避されます。

2. 畳み込みニューラルネットワーク

画像処理では、画像はピクセルのベクトルとして表現されることが多いです。たとえば、1000×1000 の画像は 1,000,000 のベクトルとして表現できます。従来のニューラルネットワークでは、隠れ層の数が入力層と同じ、つまり 1,000,000 の場合、入力層から隠れ層へのパラメータデータは 1,000,000 × 1,000,000 = 10^12 になります。数が多いため、基本的にトレーニングは不可能です。したがって、画像処理でニューラル ネットワークの技術を習得したい場合は、まずパラメータを減らしてプロセスを高速化する必要があります。

2.1 ローカル認識

畳み込みニューラル ネットワークには、パラメータの数を減らすことができる 2 つの魔法のツールがあります。最初の魔法のツールは、局所受容野と呼ばれます。一般的に、人間の外界認識は局所的なものから全体的なものへと移行し、画像の空間的なつながりも局所的なピクセル同士のつながりがより密接で、遠く離れたピクセル同士の相関は弱くなると考えられています。したがって、各ニューロンは実際にはグローバルイメージを認識する必要はなく、ローカル領域を認識するだけで、その後、ローカル情報をより高いレベルで統合してグローバル情報を取得する必要があります。ネットワークコンポーネントを接続するというアイデアは、生物学における視覚システムの構造からもインスピレーションを得ています。視覚皮質のニューロンは局所的に情報を提供します(つまり、特定の特定の領域の刺激にのみ反応します)。下の図に示すように、左側の写真はフル接続、右側の写真はローカル接続です。

右上の図では、各ニューロンが 10×10 ピクセル値にのみ接続されている場合、重みデータは 1000000×100 パラメータになり、元の 1000 分の 1 に削減されます。 10×10 ピクセル値に対応する 10×10 パラメータは、実際には畳み込み演算に相当します。

2.2 パラメータの共有

しかし、実際には、パラメータがまだ多すぎるため、第 2 レベルのアーティファクトである重み共有が有効になります。上記のローカル接続では、各ニューロンは 100 個のパラメータに対応しており、合計 1,000,000 個のニューロンがあります。これらの 1,000,000 個のニューロンの 100 個のパラメータがすべて等しい場合、パラメータの数は 100 になります。

重みの共有をどのように理解しますか?これら 100 個のパラメータ (つまり畳み込み演算) は、位置に依存しない特徴を抽出する方法と考えることができます。基本的な原理は、画像の一部の統計特性が他の部分の統計特性と同じであるということです。これは、ある部分で学習した特徴を別の部分でも使用できることも意味します。そのため、この画像内のすべての位置で、同じ学習した特徴を使用できます。

もっと直感的に言えば、たとえば 8×8 の大きなサイズの画像から小さな部分をサンプルとしてランダムに選択し、この小さなサンプルからいくつかの特徴を学習すると、この 8×8 サンプルから学習した特徴を検出器として使用し、画像の任意の部分に適用することができます。特に、8×8 サンプルから学習した特徴を使用して元の大きなサイズの画像を畳み込むことで、大きなサイズの画像上の任意の位置に対して異なる特徴の活性化値を取得できます。

下の図は、55 の画像に 33 の畳み込みカーネルを畳み込むプロセスを示しています。各畳み込みは、ふるいのような特徴抽出方法で、条件を満たす画像の部分をフィルタリングします(活性化値が大きいほど、条件を満たす部分が多くなります)。

2.3 多重畳み込みカーネル

前述のようにパラメータが 100 個しかない場合、100 * 100 の畳み込みカーネルが 1 つしかないことになります。明らかに、特徴抽出が不十分です。32 個の畳み込みカーネルなど、複数の畳み込みカーネルを追加して、32 個の特徴を学習することができます。次の図に示すように、複数の畳み込みカーネルがある場合:

上図の右側では、異なる色が異なる畳み込みカーネルを示しています。各畳み込みカーネルは、画像を別の画像に変換します。たとえば、2 つの畳み込みカーネルは、画像の異なるチャネルと見なすことができる 2 つの画像を生成できます。下の図に示すように、下の図には小さなエラーがあり、w1 が w0 に、w2 が w1 に変更されています。以下では、引き続き w1 および w2 と呼びます。

下の図は、2 つの畳み込みカーネルを使用して 2 つのチャネルを生成する、4 つのチャネルでの畳み込み演算を示しています。 4 つのチャネルのそれぞれが畳み込みカーネルに対応していることに注意してください。まず w2 を無視し、w1 のみを確認します。次に、4 つのチャネルの (i, j) での畳み込み結果を加算し、活性化関数の値を取得することで、w1 の特定の位置 (i, j) の値を取得します。

したがって、上図の 4 つのチャネルを畳み込んで 2 つのチャネルを取得するプロセスでは、パラメータの数は 4×2×2×2 になります。ここで、4 は 4 つのチャネルを表し、最初の 2 は 2 つのチャネルの生成を表し、最後の 2×2 は畳み込みカーネルのサイズを表します。

2.4 ダウンプーリング

畳み込みによって特徴を取得した後、次のステップはこれらの特徴を分類に使用することです。理論的には、抽出されたすべての特徴を使用して、ソフトマックス分類器などの分類器をトレーニングできますが、そうすると計算上の課題に直面します。たとえば、96x96 ピクセルの画像の場合、8x8 入力で定義された 400 個の特徴を学習したとします。画像と畳み込まれた各特徴は、(96 − 8 + 1) × (96 − 8 + 1) = 7921 次元の畳み込み特徴を生成します。特徴は 400 個あるため、各例には 892 × 400 = 3,168,400 次元の畳み込み特徴ベクトルが含まれます。 300 万を超える特徴を持つ分類器を学習するのは非常に不便であり、過剰適合になりがちです。

この問題を解決するには、まず、畳み込み特徴を使用することにした理由は、画像が「静的」な特性を持っているためであり、つまり、ある画像領域で有用な特徴は、別の領域にも適用できる可能性が非常に高いことを思い出してください。したがって、大きな画像を説明するには、さまざまな場所の特徴の統計を集計するのが自然な考え方です。たとえば、画像のある領域における特定の特徴の平均 (または最大) 値を計算できます。これらの要約統計は、(抽出されたすべての特徴を使用する場合と比較して)次元がはるかに低いだけでなく、結果も改善されます(過剰適合の可能性が低くなります)。この集計操作はプーリングと呼ばれ、プーリングの計算方法に応じて平均プーリングまたは最大プーリングと呼ばれることもあります。

これまで、畳み込みニューラルネットワークの基本的な構造と原理について説明してきました。

2.5 多層畳み込み

実際のアプリケーションでは、複数の畳み込み層が使用されることが多く、その後、完全に接続された層がトレーニングに使用されます。複数の畳み込み層の目的は、1 つの畳み込み層で学習される特徴がローカルであることが多いためです。層の数が多いほど、学習される特徴はよりグローバルになります。

3. ImageNet-2010 ネットワーク構造

ImageNet LSVRC は、127 万枚の画像のトレーニング セット、5 万枚の画像の検証セット、15 万枚の画像のテスト セットを使用した画像分類コンテストです。この記事では、2010 年の Alex Krizhevsky の CNN 構造を例として使用します。この構造は、トップ 5 のエラー率が 15.3% で、2010 年に優勝しました。今年の ImageNet LSVRC コンテストでは、優勝した GoogNet がトップ 5 のエラー率 6.67% を達成したことは特筆に値します。ディープラーニングには、まだ大きな改善の余地があることがわかります。

下の図はAlexのCNNの構造図です。このモデルは 2 GPU 並列構造を採用しており、第 1、第 2、第 4、および第 5 畳み込み層がモデル パラメータを 2 つの部分に分割してトレーニングすることに注意してください。ここで、さらに並列構造は

データの並列性とモデルの並列性。データ並列化とは、異なる GPU 上でモデル構造は同じですが、トレーニング データが分割され、個別にトレーニングされて異なるモデルが取得され、その後モデルが融合されることを意味します。モデルの並列処理とは、複数のレイヤーのモデル パラメータを分割し、異なる GPU でのトレーニングに同じデータを使用し、その結果を次のレイヤーの入力として直接接続することです。

上記のモデルの基本パラメータは次のとおりです。

入力: 224×224サイズの画像、3チャンネル

最初の畳み込み層には、サイズが 5×5 の畳み込みカーネルが 96 個あり、各 GPU に 48 個あります。

最初の層の最大プーリング: 2×2 カーネル。

2 番目の畳み込み層: 256 個の 3×3 畳み込みカーネル (各 GPU に 128 個)。

第 2 層の最大プーリング: 2×2 カーネル。

3 番目の畳み込み層は、384 個の 3*3 畳み込みカーネルを使用して、前の層に完全に接続されています。 192 を 2 つの GPU に分割します。

4 番目の畳み込み層には 384 個の 3×3 畳み込みカーネルがあり、各 GPU に 192 個あります。この層はプーリング層を経由せずに前の層に接続されます。

5 番目の畳み込み層には 256 個の 3×3 畳み込みカーネルがあり、2 つの GPU では 128 個のカーネルになります。

第 5 層の最大プーリング: 2×2 カーネル。

最初の完全接続層は 4096 次元です。5 番目の層の max-pooling の出力は、この層の入力として 1 次元ベクトルに接続されます。

2層目は完全に接続されています: 4096次元

ソフトマックス層: 出力は 1000 で、出力の各次元は画像がそのカテゴリに属する​​確率です。

4 DeepIDネットワーク構造

DeepID ネットワーク構造は、香港中文大学の Sun Yi 氏が顔の特徴を学習するために開発した畳み込みニューラル ネットワークです。入力された顔はそれぞれ160次元のベクトルとして表現され、学習されたベクトルは他のモデルによって分類され、顔認証テストで97.45%の精度を達成しました。さらに、原作者はCNNを改良し、99.15%の精度を達成しました。

下図の通り、ImageNetの具体的なパラメータと構造は似ているので、異なる部分のみ説明します。

上図の構造では、最後に完全に接続された層が 1 つだけあり、その次にソフトマックス層があります。この論文では、この完全に接続されたレイヤーを画像の表現として使用しています。完全結合層では、第 4 畳み込み層と第 3 最大プーリング層の出力が完全結合層の入力として使用されるため、ローカル機能とグローバル機能を学習できます。

<<:  2017 年のトップデータサイエンスと機械学習手法

>>:  AIを実際にどのように実装するかまだ検討中ですか? OpenPOWERは未来がここにあることを伝えます

推薦する

人工知能は将来のデジタルワークプレイスをどのように変えるのでしょうか?

[[347778]]デジタルワークプレイス コミュニケーション ソリューションの大手プロバイダー ...

スニーカーロボット大戦

[[430002]] 2019年、ボストンのバックベイにあるストリートウェアショップ「Bodega」...

投票の未来: AI、ブロックチェーン、生体認証

投票攻撃は止まらない2016年の米国大統領選挙は紆余曲折を経て、最終的にトランプ氏が米国大統領に選出...

コンピュータービジョン技術によって変革が期待できる3つの業界

コンピューター ビジョン テクノロジー (マシン ビジョンとも呼ばれます) により、機械は周囲の世界...

自動運転車の後、どのような仕事が人工知能に置き換えられるのでしょうか?

自動運転がどれだけ遠い未来の話なのか議論されている中、自動運転の旅客バス、アルファバス・スマートバス...

製造業、農業、医療…AIは新しい時代をどのように変えるのでしょうか?

2018年、国内の人工知能とビッグデータ産業は引き続き急速な発展を遂げ、国家計画の導入に伴い、各地...

Jenkins 独自のユーザー データベース暗号化アルゴリズムの簡単な分析

Jenkins のアクセス制御は、セキュリティ ドメイン (認証) と承認戦略に分かれています。その...

...

家庭では人工知能がどのように活用されているのでしょうか?

人工知能(AI)は現在、私たちの家族構造にますます統合されています。さらに、快適性、利便性、安全性、...

5 つのコア コンポーネントで構成される AIoT は、3 つの大きな課題に直面しています。2 つのブレークスルー以外に何があるのでしょうか。

IoT と AI が徐々に融合するにつれ、AIoT は人々の生活をまったく新しい形で変えようとして...

Python の基本 + モンテカルロ アルゴリズム (ソース コード付き) を使用して、順列と組み合わせに関する質問を共有します。

[[433465]]みなさんこんにちは。私は Python の専門家です。この記事のタイトルを考え...

収集する価値のあるAIツールメモ8つ

緊急時のメモとしても使える、コレクションする価値のあるAI写真を8枚シェアします。最初の RTF フ...

トレンド | 今後 10 年間の機械学習研究のホットスポット

[[248597]]人工知能が注目されています。技術革新は経済成長の根本的な原動力です。これらの技術...

AIは水産養殖業界に浸透しつつある。品質と効率性の向上に加え、人員の削減にもつながる。

[[264097]]この農場では、人工知能技術の活用により、人員が 3 分の 2 削減されました。...