ディープ ラーニングの概念は、人工ニューラル ネットワークの研究に由来しており、複数の隠れ層を含む多層パーセプトロンがディープ ラーニング構造です。ディープラーニングは、低レベルの特徴を組み合わせて、データのカテゴリや特性を表すより抽象的な高レベルの表現を形成します。データの分散された特徴表現を検出できます。ディープラーニングは機械学習の一種であり、機械学習は人工知能を実現する唯一の方法です。
それでは、さまざまな深層学習システム アーキテクチャの違いは何でしょうか?
完全接続ネットワーク (FCN) は、完全に接続された一連の層で構成され、各層の各ニューロンは別の層に接続されています。その主な利点は、「構造に依存しない」ことです。つまり、入力に関する特別な仮定が必要ありません。この構造に依存しないため、完全に接続されたネットワークは非常に広く適用可能になりますが、そのようなネットワークは、問題空間の構造に特化して調整された特殊なネットワークよりもパフォーマンスが低下する傾向があります。
次の図は、多層深度完全接続ネットワークを示しています:
畳み込みニューラル ネットワーク (CNN) は、主に画像処理アプリケーションで使用される多層ニューラル ネットワーク アーキテクチャです。 CNN アーキテクチャは、入力に画像などの空間次元 (およびオプションで深度次元) があることを明示的に想定しており、これにより特定のプロパティをモデル アーキテクチャにエンコードできます。 Yann LeCun は、もともと手書き文字を認識するために使用されていたアーキテクチャである最初の CNN を作成しました。
CNN を使用したコンピューター ビジョン モデルの技術的な詳細を説明します:
画像は、ここではピクセルのグリッドとして表されます。これは正の整数のグリッドであり、各数値に色が割り当てられています。
#単純な畳み込みニューラル ネットワークは一連の層で構成され、各層は微分可能関数を通じてアクティベーション ボリュームを別の表現に変換します。畳み込みニューラル ネットワークのアーキテクチャでは、主に畳み込み層、プーリング層、全結合層の 3 種類の層が使用されます。以下の画像は、畳み込みニューラル ネットワーク層のさまざまな部分を示しています。
畳み込み: 畳み込みフィルターは、加算と乗算の演算を使用して画像をスキャンします。 CNN は、畳み込みフィルターの値を学習して、目的の出力を予測しようとします。
非線形性: これは畳み込みフィルターに適用される方程式で、CNN が入力画像と出力画像の間の複雑な関係を学習できるようになります。
畳み込み層では、入力は形状の画像 (Hin、Win、Cin) であり、重みは指定されたピクセルの近傍サイズを K×K とみなします。出力は、特定のピクセルとその近傍のピクセルの加重合計です。入力チャネルと出力チャネルのペア (Cin、Cout) ごとに個別のカーネルがありますが、カーネルの重みは位置に依存しない形状テンソル (K、K、Cin、Cout) です。実際、このレイヤーは任意の解像度の画像を受け入れることができますが、完全に接続されたレイヤーは固定解像度のみを使用できます。最後に、層パラメータは (K, K, Cin, Cout) です。カーネル サイズ K が入力解像度よりもはるかに小さい場合、変数の数は大幅に減少します。
AlexNet が ImageNet コンペティションで優勝して以来、優勝したすべてのニューラル ネットワークが CNN コンポーネントを使用しているという事実は、CNN が画像データに対してより効果的であることを証明しています。 CNN は画像データを処理できる一方で、FC レイヤーのみを使用して画像データを処理することは現実的ではないため、意味のある比較が見つからない可能性が非常に高くなります。なぜ?
FC 層内の 1,000 個のニューロンを含む重みの数は、画像では約 1 億 5,000 万個になります。これは、レイヤーのウェイトの数にすぎません。最新の CNN アーキテクチャには、合計数十万のパラメーターを備えた 50 ~ 100 のレイヤーがあります (たとえば、ResNet50 には 2,300 万のパラメーターがあり、Inception V3 には 2,100 万のパラメーターがあります)。
数学的な観点から、入力画像が 500×500×3 の場合、CNN と FCN (100 個の隠れユニットあり) の重みの数を比較します:
<code>((shape of width of the filter * shape of height of the filter * number of filters in the previous layer+1)*number of filters)( +1 是为了偏置) = (Fw×Fh×D+1)×F=(5×5×3+1)∗2=152</code>
翻訳不変性
不変性はオブジェクトを指します位置が変わっても正しく識別できます。これは、オブジェクトのアイデンティティ (またはカテゴリ) を維持するため、通常は肯定的な機能です。ここでの「平行移動」は幾何学において特別な意味を持ちます。下の画像は、異なる場所にある同じオブジェクトを示しています。変換の不変性により、CNN はそれらが両方とも猫であることを正しく識別できます。
RNN は、他の深層学習アーキテクチャが構築される基本的なネットワーク アーキテクチャの 1 つです。主な違いは、通常のフィードフォワード ネットワークとは異なり、RNN は前の層または同じ層にフィードバックする接続を持つことができることです。ある意味、RNN は以前の計算の「メモリ」を持っており、この情報を現在の処理に使用します。
「リカレント」という用語は、各シーケンス インスタンスで同じタスクを実行するネットワークに適用されます。したがって、出力は以前の計算と結果に依存します。
RNN は、言語モデリングなどの多くの NLP タスクに当然適しています。これらは「犬」と「ホットドッグ」の意味の違いを捉えることができるため、RNN は言語におけるこの種のコンテキスト依存性のモデリングや同様のシーケンス モデリング タスク向けにカスタマイズされており、これらの領域ではむしろ RNN を使用する必要があります。 CNNの主な理由より。 RNN のもう 1 つの利点は、入力サイズによってモデル サイズが増加しないため、任意の長さの入力を処理できることです。
さらに、CNN とは異なり、RNN には柔軟な計算ステップがあり、より優れたモデリング機能が提供され、履歴情報が考慮され、その重みが時間共有されるため、無制限のコンテキストをキャプチャする可能性が生まれます。ただし、リカレント ニューラル ネットワークには勾配消失の問題があります。勾配が非常に小さくなるため、バックプロパゲーションの更新重みが非常に小さくなります。各ラベルに必要な逐次処理と、勾配の消失/爆発の存在により、RNN トレーニングは遅くなり、場合によっては収束が困難になります。
スタンフォード大学からの以下の図は、RNN アーキテクチャの例です。
もう 1 つ注意すべき点は、CNN と RNN のアーキテクチャが異なることです。 CNN はフィルターとプーリング層を使用するフィードフォワード ニューラル ネットワークですが、RNN は自己回帰を通じて結果をネットワークにフィードバックします。
RNN は、時系列データを分析するために特別に設計されたニューラル ネットワークです。このうち時系列データとは、テキストや動画など、時系列に並べられたデータのことを指します。 RNN は、テキスト翻訳、自然言語処理、感情分析、音声分析に幅広く応用できます。たとえば、音声録音を分析して話者の発話を識別し、テキストに変換するために使用できます。さらに、RNN は、電子メールやソーシャル メディア投稿用のテキストの作成などのテキスト生成にも使用できます。
CNN では、入力サイズと出力サイズが固定されています。これは、CNN が固定サイズの画像を取得し、それを予測の信頼性とともに適切なレベルに出力することを意味します。ただし、RNN では、入力サイズと出力サイズが異なる場合があります。この機能は、テキストの生成など、可変サイズの入出力が必要なアプリケーションに役立ちます。
ゲート型リカレント ユニット (GRU) と長期短期記憶ユニット (LSTM) はどちらも、リカレント ニューラル ネットワーク (RNN) が遭遇する勾配消失問題の解決策を提供します。
ロング ショート メモリ ニューラル ネットワーク (LSTM) は、特殊なタイプの RNN です。これにより、RNN は長期的な依存関係を学習することで、多数のタイムスタンプにわたって情報を保持しやすくなります。以下の図は、LSTM アーキテクチャを視覚的に表現したものです。
LSTM は遍在しており、多くのアプリケーションや製品で使用できます。スマートフォンとして。その威力は、典型的なニューロンベースのアーキテクチャから離れ、代わりにメモリユニットの概念を採用しているという事実にあります。このメモリ ユニットは、入力の機能に従ってその値を保持し、その値を短期間または長期間保持できます。これにより、ユニットは最後に計算された値だけでなく、重要なことを記憶できるようになります。
LSTM メモリ ユニットには、ユニット内の情報の流入または流出を制御する 3 つのゲートが含まれています。
忘れゲート: 処理装置が新しいデータを記憶する余地を作るために、どの情報が「忘れられる」可能性があるかを追跡する責任を負います。
出力ゲート: 処理ユニット内に保存された情報をいつセルの出力として使用できるかを決定します。
GRU との比較特に RNN と LSTM は長期的な依存関係を学習できます。ゲートが 3 つあるため (GRU には 2 つ、RNN には 0 つ)、LSTM には RNN や GRU と比較してより多くのパラメーターがあります。これらの追加パラメーターにより、LSTM モデルは自然言語や時系列データなどの複雑なシーケンス データをより適切に処理できるようになります。さらに、LSTM はゲート構造により不要な入力を無視できるため、可変長の入力シーケンスも処理できます。その結果、LSTM は音声認識、機械翻訳、株式市場予測などの多くのアプリケーションで良好なパフォーマンスを発揮します。
GRU には、どの情報を出力に渡すかを決定するための 2 つのゲート、更新ゲートとリセット ゲート (基本的に 2 つのベクトル) があります。
トランスフォーマーに関する論文「Attending is All You Need」は、Arxiv 上でほぼナンバーワンの論文です。 Transformer は、複雑なアテンション メカニズムを使用してシーケンス全体を処理できる大規模なエンコーダ/デコーダ モデルです。
# 通常、自然言語処理アプリケーションでは、各入力単語はまず埋め込みアルゴリズムを使用してベクトルに変換されます。埋め込みは最下位レベルのエンコーダでのみ行われます。すべてのエンコーダで共有される抽象化は、サイズ 512 のベクトルのリストを受け取ることです。これは単語の埋め込みになりますが、他のエンコーダでは、それはエンコーダ出力の直下になります。
#Attention はボトルネック問題の解決策を提供します。このようなタイプのモデルでは、コンテキスト ベクトルがボトルネックとなり、モデルが長い文を処理することが困難になります。アテンションにより、モデルは必要に応じて入力シーケンスの関連部分に焦点を当て、各単語の表現をクエリとして扱い、一連の値の情報にアクセスして結合することができます。 6.1 Transformer アーキテクチャの特徴一般に、Transformer アーキテクチャでは、エンコーダはすべての隠れた状態をデコーダに渡すことができます。ただし、デコーダは出力を生成する前に注意を払って追加のステップを実行します。デコーダは各隠れ状態にそのソフトマックス スコアを乗算することで、よりスコアの高い隠れ状態を増幅し、他の隠れ状態をフラッディングします。これにより、モデルは出力に関連する入力の部分に焦点を当てることができます。 セルフ アテンションはエンコーダ内にあります。最初のステップは、各エンコーダ入力ベクトル (各単語の埋め込み) から 3 つのベクトルを作成することです: キー ベクトル、クエリ ベクトル、および値ベクトルです。これらのベクトルは、埋め込みを変換することによって取得されます。トレーニング中にトレーニングされた 3 つの行列を乗算して作成されます。 K、V、Q の次元は 64 ですが、埋め込みベクトルとエンコーダの入出力ベクトルの次元は 512 です。下の写真は Jay Alammar の Illustrated Transformer からのもので、これはおそらくインターネット上で最も優れた視覚的解釈です。 このリストのサイズは設定可能なハイパーパラメーターであり、基本的にはトレーニング データ セット内の最も長い文の長さになります。Transformer が登場する前は、AI 言語タスクの進歩は他の分野の発展に大きく遅れをとっていた。実際、過去 10 年ほどの深層学習革命では、自然言語処理は後発であり、NLP はコンピューター ビジョンにある程度遅れをとっていました。しかし、Transformers の出現により、NLP 分野は大きな後押しを受け、さまざまな NLP タスクで良好な結果を達成する一連のモデルが発売されました。
たとえば、従来の言語モデル (RNN、LSTM、GRU などの再帰的アーキテクチャに基づく) と Transformers の違いを理解するために、次のような例を挙げることができます。爪でそれをつかみましたが、尻尾の端だけを手に入れました。」 2 番目の文の構造は混乱しています。その「それ」は何を意味しますか? 「それ」の周囲の単語のみに焦点を当てる従来の言語モデルでは困難ですが、各単語を他の単語に接続するトランスフォーマーは、フクロウがリスを捕まえたこと、リスが尻尾の一部を失ったことを伝えることができます。
CNN では、ローカルから始めて、徐々にグローバルな視点を獲得します。 CNN は、ローカルからグローバルまで特徴を構築してコーナーや線などの特徴を識別することにより、画像をピクセルごとに認識します。しかし、変換器では、自己注意を通じて、情報処理の第一レベルでも(言語と同様に)遠隔の画像位置間の接続が確立されます。 CNN アプローチが単一ピクセルから開始するスケーリングに似ている場合、トランスフォーマーはぼやけた画像全体に徐々に焦点を合わせます。
#CNN は、入力データのローカル パッチにフィルターを繰り返し適用することでローカル特徴表現を生成し、徐々に受容視野を広げてグローバル特徴を構築します。表現。写真アプリが梨と雲を区別できるのは、畳み込みのおかげです。トランスフォーマー アーキテクチャが登場する前は、CNN はビジョン タスクに不可欠であると考えられていました。 Vision Transformer モデルのアーキテクチャは、2017 年に提案された最初の Transformer とほぼ同じですが、単語の代わりに画像を分析できるようにするための小さな変更がいくつかあります。言語は離散的になる傾向があるため、トランスフォーマーが視覚入力を処理できるようにするには、入力画像を離散化する必要があります。言語アプローチを正確に模倣し、すべてのピクセルに対してセルフアテンションを実行すると、計算時間が法外に高くなります。したがって、ViT は大きな画像を正方形のセルまたはパッチに分割します (NLP のトークンと同様)。トークンは元の画像の解像度 (デフォルトは 16x16 ピクセル) に応じて大きくなったり小さくなったりする可能性があるため、サイズは任意です。しかし、ピクセルをグループで処理し、各ピクセルにセルフ アテンションを適用することで、ViT は膨大なトレーニング データ セットを迅速に処理し、ますます正確な分類を出力できます。 6.2.3 マルチモーダル タスクTransformer と比較すると、他の深層学習アーキテクチャには 1 つのスキルしかありませんが、マルチモーダル学習では、スムーズ アーキテクチャ モーダルでさまざまなモードを処理する必要があり、非常に高いスキルが必要です。人間の知性のレベルに到達するための高い関係誘導バイアス。言い換えれば、読む/見る、話す、聞くといった感覚の間をシームレスに移行できる、単一の多目的アーキテクチャが必要でした。 マルチモーダル タスクの場合、元の画像、ビデオ、言語など、複数の種類のデータを同時に処理する必要があります。Transformer は、一般的なアーキテクチャの可能性を提供します。 以前のアーキテクチャでは個別のアプローチが採用されており、各タイプのデータに独自の特定のモデル タスクがあったため、これを達成するのは困難なタスクでした。ただし、Transformer を使用すると、複数の入力ソースを簡単に組み合わせることができます。たとえば、マルチモーダル ネットワークは、言語と画像情報の豊富な表現を同時に使用して、人々の唇の動きを読み取り、その声を聞くシステムを強化することができます。 Transformer はクロスアテンションを通じて、さまざまなソースからクエリ、キー、および値のベクトルを導き出すことができるため、マルチモーダル学習の強力なツールになります。 したがって、Transformer は、ニューラル ネットワーク アーキテクチャの「融合」に向けた大きな一歩であり、複数のモーダル データの汎用処理の実現に役立ちます。 6.3 RNN/GRU/LSTM と比較した Transformer の長所と短所RNN/GRU/LSTM と比較した場合、Transformer は RNN およびそのバリアント (GRU や LSTM など) よりも長時間学習できます。 。ただし、最大のメリットは、Transformer が並列化に適していることです。各タイム ステップで 1 つの単語を処理する RNN とは異なり、Transformer の重要な特性は、各位置の単語が独自のパスを介してエンコーダーを通過することです。セルフアテンション層では、その単語に対する各入力シーケンス内の他の単語の重要性を計算するため、これらのパス間に依存関係が存在します。ただし、セルフアテンション出力が生成されると、フィードフォワード層にはこれらの依存関係がなくなるため、個々のパスはフィードフォワード層を通過するときに並行して実行できます。これは、セルフアテンション層の後で各入力単語を他の単語と並行して処理する Transformer エンコーダの場合に特に便利な機能です。ただし、この機能は一度に 1 ワードのみを生成し、並列ワード パスを使用しないため、デコーダにとってはあまり重要ではありません。
Transformer アーキテクチャの実行時間は、入力シーケンスの長さに応じて二次関数的に増加します。つまり、長いドキュメントや文字を入力として処理する場合、処理が遅くなる可能性があります。言い換えれば、セルフアテンションの形成中に、すべての相互作用ペアを計算する必要があります。これは、計算がシーケンスの長さ、つまり O(T^2 d) に応じて二次関数的に増大することを意味します。ここで、T はシーケンスの長さ、D は次元。例えば、単文 d=1000 に対応すると、T≤30⇒T^2≤900⇒T^2d≈900Kとなります。そして、循環神経の場合、直線的にのみ成長します。
Transformer が文内のすべての単語のペア間の相互作用を計算する必要がなければ、素晴らしいと思いませんか?すべての単語ペア間の相互作用を計算しなくても (ペアごとの注意を近似することによって) 非常に高いパフォーマンス レベルを達成できることを示す研究があります。
CNN と比較すると、Transformer には非常に高いデータ要件があります。 CNN は依然としてサンプル効率が高いため、リソースが少ないタスクには優れた選択肢となります。これは、CNN アーキテクチャであっても大量のデータを必要とする画像/ビデオ生成タスクに特に当てはまります (したがって、Transformer アーキテクチャの非常に高いデータ要件を意味します)。たとえば、Radford らが最近提案した CLIP アーキテクチャは、ビジュアル バックボーンとして (ViT のような Transformer アーキテクチャの代わりに) CNN ベースの ResNets を使用してトレーニングされています。 Transformer はデータ要件が満たされると精度が向上しますが、CNN は利用可能なデータの量が異常に多くないタスクで優れた精度パフォーマンスを提供する方法を提供します。したがって、どちらのアーキテクチャにもそれぞれの用途があります。
Transformer アーキテクチャの実行時間は、入力シーケンスの長さと 2 次の関係があるためです。つまり、すべての単語のペアに対するアテンションを計算するには、グラフ内のエッジの数がノードの数に応じて二次関数的に増加する必要があります。つまり、n 単語の文の場合、Transformer は n^2 の単語のペアを計算する必要があります。これは、パラメーターの数が膨大である (つまり、メモリ使用量が多い) ことを意味し、その結果、計算の複雑さが高くなります。高いコンピューティング要件は、特にモバイル デバイスの場合、電力とバッテリー寿命の両方に悪影響を及ぼします。全体として、より優れたパフォーマンス (精度など) を提供するために、Transformer はより高いコンピューティング能力、より多くのデータ、電力/バッテリー寿命、およびメモリー占有面積を必要とします。
ニアレストネイバーから勾配ブースティングまで、実際に使用されるすべての機械学習アルゴリズムには、どのカテゴリが学習しやすいかについての独自の帰納的バイアスが伴います。ほとんどすべての学習アルゴリズムには、類似した (ある特徴空間で互いに「近い」) アイテムは同じクラスに属する可能性が高いという学習バイアスがあります。ロジスティック回帰などの線形モデルも、カテゴリが線形境界によって分離できると想定していますが、モデルは他に何も学習できないため、これは「ハード」バイアスとなります。機械学習でほぼ常に使用される正則化回帰の場合でも、特徴の重みが低く、少数の特徴が関与する境界の学習に偏りがあり、モデルは多くのクラスを学習できるため、これは「ソフト」バイアスです。重みの高い特徴を含む境界を作成しますが、これはより困難であり、より多くのデータが必要です。
ディープ ラーニング モデルにも推論バイアスがあります。たとえば、LSTM ニューラル ネットワークは、長いシーケンスにわたってコンテキスト情報を保持することを好むため、自然言語処理タスクに非常に効果的です。
#ドメインの知識と問題の難易度を理解すると、適切なアルゴリズム アプリケーションを選択するのに役立ちます。たとえば、患者が癌と診断されているかどうかを判断するために、臨床記録から関連する用語を抽出するという問題があります。この場合、独立した情報を与える用語が多数あるため、ロジスティック回帰は適切に実行されます。複雑な PDF レポートから遺伝子検査の結果を抽出するなど、他の問題については、LSTM を使用すると各単語の長距離コンテキストをより適切に処理できるため、パフォーマンスが向上します。基本アルゴリズムを選択したら、そのバイアスを理解することは、学習アルゴリズムに供給する情報を選択するプロセスである特徴量エンジニアリングの実行にも役立ちます。各モデル構造には固有の推論バイアスがあり、データ内のパターンを理解するのに役立ち、それによって学習が可能になります。たとえば、CNN は空間パラメータ共有と変換/空間不変性を示しますが、RNN は時間パラメータ共有を示します。
古いプログラマーは、ディープ ラーニング アーキテクチャで Transformer、CNN、RNN/GRU/LSTM を比較および分析しようとしましたが、Transformer はより長い依存関係を学習できることを理解しましたが、それには、より高いデータ要件とコンピューティング能力。Transformer はマルチモーダルなタスクに適しており、読む/見る、話す、聞くなどの感覚をシームレスに切り替えることができます。各モデル構造には、学習を達成するためにデータ モデルを理解するのに役立つ固有の推論バイアスがあります。 。
【参考】
以上が深層学習アーキテクチャの比較分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。