ニューラルネットワークの基礎知識をわかりやすく解説

ニューラル ネットワークはすべての AI アルゴリズムの中心であり、現在ディープ ニューラル ネットワークは、画像認識や物体検出から自然言語の処理と生成に至るまでのタスクに使用されています。ニューラル ネットワークを構成する基本的な構成要素とその動作方法を詳しく説明した後、この質問では、ニューラル アーキテクチャの種類とそれぞれの用途、ニューラル ネットワーク チップ、およびモデル最適化手法について詳しく説明します。

導入

       コンピューティング ユニット (ニューロンとも呼ばれる) の大規模な相互接続は、すべての人工知能 (AI) アルゴリズムの心臓部であるニューラル ネットワークを構成します。ニューラル ネットワークは、約 80 年前の 1943 年に、イリノイ大学シカゴ校の神経生理学者ウォーレン マッカロウと数学者ウォルター ピッツによって初めて提案されました。一連の進化を経て、ディープ ニューラル ネットワーク (DNN) (通常は 2 つ以上の隠れ層を持つネットワーク) は、現在、画像認識、画像分類、物体検出、音声認識、言語翻訳、自然言語処理 (NLP)、および自然言語で使用されています。世代 (NLG)

       この記事では、まず生物学的なニューラル ネットワークとの類似性を示すことによってニューラル ネットワークの概念を紹介し、次に、構成要素とみなされるニューラル ネットワークの基本コンポーネントについて説明します。次に、一般的なニューラル アーキテクチャについて説明し、ニューロンの基本的な配置とニューロンが果たす特定の目的を定義します。

       次に、DNN ワークロードを効率的に処理するために特別に設計されたさまざまな AI アクセラレータと、学習率を高めて全体の損失を削減し、精度を向上させるニューラル ネットワーク オプティマイザーについて説明します。最後に、さまざまな業界における DNN のさまざまなアプリケーションについて説明し、AI でハイ パフォーマンス コンピューティング (HPC) を使用する機能を探ります。

ニューラルネットワークとは何ですか?

       私たちの生物学的神経ネットワークは、五感を通じて外部環境から感覚を受け取ります。次に、ニューロンはこれらの感覚を他の神経細胞に伝えます。人工ニューラル ネットワーク (ANN) は、同じ方法でデータを入力として収集し、ニューロンがすべての情報を統合します生物学的ニューラル ネットワークのシナプスと同様に、ANN の相互接続は隠れ層の入力データを変換します。ANN での出力の生成は、出力をチャネル化する生物学的ニューラル ネットワークの軸索のメカニズムに似ています。

ニューラル ネットワークの基礎

       このセクションでは、まずニューラル ネットワークのコンポーネントを明らかにし、次にニューロンのさまざまなネットワーク アーキテクチャがどのように配置されているかを説明します。その後のニューラル ネットワーク チップとオプティマイザーのデモンストレーションでは、ネットワークをシームレスに実装して精度と速度を向上させます。

ニューラルネットワークコンポーネント

      まず、ニューラル ネットワークの基本を理解することが重要です。ニューラル ネットワークは、入力、隠れ、出力の 3 つの層と、パーセプトロン、活性化関数、重み、バイアスで構成されます。

入力層、隠し層、出力層

      単一の入力層は、望ましい結果の予測に役立つ外部の独立変数を受け入れます。モデルのすべての独立変数は入力層の一部です。1 対多の相互接続された隠れ層は、視覚認識や NLP によるオブジェクトの検出や分類など、ニューラル ネットワークが果たす目的に応じて構成されます。隠れ層は、入力変数と予測変数の加重合計の関数です。ネットワークに複数の隠れ層が含まれる場合、各隠れユニットは前の隠れ層のユニットの加重和の関数になります。出力層には、隠れ層の関数として、ターゲット (従属) 変数が含まれます。他の画像分類と同様に、出力層はモデルの意図された目標に従って入力データをノードに分割します。

                                    図 1: 入力、非表示、出力

4660b45b7d4c4c1d25bfe7b77e504713.jpeg

センサー

      コーネル大学の実験心理学者であるフランク ローゼンブラットは、ニューロンの学習能力に興味を持ち、複数の入力、プロセッサ、単一の出力を備えた単純なパーセプトロンを作成しました。したがって、パーセプトロンは、単一層で構成されるニューラル ネットワークの構成要素です。

                                                 図 2 パーセプトロン

078ae518f10a7d3f36f5f762ae703909.jpeg

活性化関数

      伝達関数としても知られる活性化関数は、ニューロンの出力の大きさを制御します。複数の隠れ層を持つディープ ニューラル ネットワークでは、アクティベーション関数により、1 つの層のユニットの加重合計が後続の層のユニットの値に関連付けられます。すべての隠れ層は同じ活性化関数を使用します。アクティベーション関数は線形または非線形にすることができます。次の表は、最も一般的に使用されるアクティベーション関数をまとめたものです。

                                              表1 アクティベーション機能

a81e7109680595405a2b8e7682424bce.png

自分のユースケースにどの活性化関数を使用するのが最適かについて混乱がある場合は、勾配消失問題を克服し、モデルのトレーニングを改善できるため、ReLU をお勧めします

重みとバイアス

       重みは、出力の予測における対応する特徴 (入力変数) の重要性を表します。また、この関数とターゲット出力の関係についても説明します。以下の図は、出力が x (入力) と接続の重み w0 の積と b (バイアス) と接続の重みの 1 倍の合計であることを示しています。

                                           図 3 重みとバイアス

753e8cfb8e2358ec0b16e5fc8cd64a46.jpeg

バイアスは、一次関数 y = mx+c の定数のようなものです。ここで、m = 重み、c = バイアスです。バイアスがなければ、モデルは原点を通過するだけとなり、そのようなシナリオは現実からかけ離れたものになります。したがって、バイアスはラインを転置し、モデルをより柔軟にするのに役立ちます。

一般的なニューラル アーキテクチャ

       ニューラル ネットワーク アーキテクチャは、アルゴリズムの学習方法を定義する構造を作成する方法で配置されたニューロンで構成されています。これらの順列には入力層と出力層があり、その間に隠れ層があり、モデルの計算能力と処理能力が向上します。主要なアーキテクチャについては以下で説明します。

動径基底関数

     放射基底関数 (RBF) には「固有ベクトル」と呼ばれる非線形隠れ層があり、データを高次元空間に投影するには、隠れ層のニューロンの数が入力層のニューロンの数よりも多くなければなりません。したがって、RBF は特徴ベクトルの次元を増やし、高次元空間での分類を高度に分離できるようにします。以下の図は、重みによって x と y に接続された単一の隠れ層 (つまり、特徴ベクトル) によって入力 (x) が出力 (y) にどのように変換されるかを示しています。

                                                   図 4 動径基底関数

63e5eda76f8d2478b4470525fe262fa4.jpeg

制限付きボルツマンマシン

       制限付きボルツマン マシン (RBM) は、可視/入力層と隠れ層を含む 2 層のニューラル ネットワークを備えた教師なし学習アルゴリズムであり、層内接続はありません。つまり、層内の 2 つのノードが接続されていないため、収量限界。RBM は、映画推奨エンジン、パターン認識 (手書きテキストの理解など)、リアルタイムのパルス内認識のためのレーダー オブジェクト認識で使用されます。

                                                   図 4 制限されたボルツマン マシン

e414747b1e7320fafdfe48630779709f.png

リカレントニューラルネットワーク

リカレント ニューラル ネットワーク (RNN) は入力を時系列として処理し、少なくとも 1 つの接続期間を持つ時系列である出力を生成します。RNN は汎用近似器であり、ほぼすべての動的システムを近似できます。RNN は、株価予測、売上予測、自然言語処理と翻訳、チャットボット、画像キャプション、音楽合成などの時系列分析に使用されます。

                                      図 6: リカレント ニューラル ネットワーク

9032d373f9dc4fa358364ff305fec74a.png

       忘却ゲート、入力ゲート、出力ゲートで構成される長短期記憶 (LSTM) には、時系列予測や自然言語の理解と生成など、さまざまな用途があります。LSTM は主に、長期的な依存関係を取得するために使用されます。忘却ゲートは、前のタイムスタンプの情報を保持するか、「忘れる」かを決定します。ゲート数が少ない、複雑性の低いバリアントは、ゲート付きリカレント ユニット (GRU) を形成します。

        GRU は LSTM の簡略化された変形であり、忘却ゲートと入力ゲートが更新ゲートに結合され、セル状態と隠れ状態も結合されます。したがって、GRU は使用するメモリが少なく、LSTM よりも高速です。

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

       畳み込みニューラル ネットワーク (CNN) は、画像分類によく使用されます。CNN は、分類のために画像内のオブジェクトに重みとバイアスを割り当てます。ピクセル値の行列を含む画像は、畳み込み層、プーリング層、完全接続 (FC) 層を通じて処理されます。プーリング層は、畳み込み特徴の空間サイズを削減します。最終出力層は、画像が定義されたクラスに属する可能性を決定するための信頼スコアを生成します。CNN は、Facebook やその他のソーシャル メディア プラットフォームでコンテンツを監視するために広く使用されています。

深層強化学習

       deep RL (深層強化学習の略) は、人工知能と強化学習の力を融合することで完璧な相乗効果を生み出します。強化学習とは、正しい決定に報酬を与え、間違った決定を罰するアルゴリズムを意味します。深層強化学習のアプリケーションには、負荷分散、ロボット工学、産業運営、交通制御、レコメンダー システムなどがあります。

敵対的生成ネットワーク

       Generative Adversarial Network (GAN) は、ジェネレーターとディスクリミネーターという 2 つのニューラル ネットワークを使用します。ジェネレーターは画像、音声、およびビデオ コンテンツの生成を支援しますが、ディスクリミネーターはそれらをドメインまたは世代のいずれかに分類します。生成モデルが妥当な結果を生成することが示されるまで、両方のモデルがゼロサム ゲームでトレーニングされました。

ニューラルネットワークチップ

      ニューラル ネットワーク チップは、処理速度、ストレージ、ネットワークを通じてコン​​ピューティング インフラストラクチャ機能を提供し、チップが大量のデータに対してニューラル ネットワーク アルゴリズムを迅速に実行できるようにします。ネットワーキング チップはタスクをサブタスクに分割し、複数のコアで同時に実行して処理速度を向上させます。

AI アクセラレータの種類

目的別に設計された AI アクセラレータは、モデル サイズ、サポートされているフレームワーク、プログラマビリティ、学習曲線、目標スループット、レイテンシ、コストに基づいて大きく異なります。このようなハードウェアには、グラフィックス プロセッシング ユニット (GPU)、ビジョン プロセッシング ユニット (VPU)、フィールド プログラマブル ゲート アレイ (FPGA)、中央処理装置 (CPU)、およびテンソル プロセッシング ユニット (TPU) が含まれます。GPU などの一部のアクセラレータはコンピュータ グラフィックスや画像処理をより処理できる一方で、FPGA は VHDL や Verilog などのハードウェア記述言語 (HDL) を使用したインフィールド プログラミングを必要とし、Google の TPU はニューラル ネットワーク マシンにより特化しています。学ぶ。以下でそれぞれを個別に見て、その機能を見てみましょう。

       GPU はもともとグラフィック処理用に開発されましたが、現在ではディープ ラーニング (DL) に広く使用されています。その利点は、次の 5 つのアーキテクチャによる並列処理です。

単一命令単一データ (SISD)

単一命令複数データ (SIMD)

複数命令単一データ (MISD)

複数命令複数データ (MIMD)

単一命令複数スレッド (SIMT)

       GPU は、より多くのトランジスタをデータ処理専用にするため、CPU よりも高速に計算します。これにより、中規模から大規模のモデルとより大きな有効バッチ サイズを含む大規模なデータセットのメモリ帯域幅を最大化できます。

       VPU は、パフォーマンスを損なうことなく、超低電力要件でコンピューター ビジョン タスクを実装するように設計された、最適化された DL プロセッサーです。したがって、VPU は、事前トレーニングされた CNN モデルの能力を利用することにより、ディープラーニング推論用に最適化されています。

       FPGA には、低消費電力の並列アーキテクチャで動作する数千のメモリ セルがあります。カスタム回路を作成するための再プログラム可能な論理ゲートで構成されています。FPGA は、自動運転や自動音声認識および検索に使用されます。

       MIMD アーキテクチャを備えた CPU はタスクの最適化に優れており、スパース DNN、ステップ依存の RNN、有効バッチ サイズが小さい小規模モデルなど、並列処理が制限されているアプリケーションに適しています。

      TPU は、DL ワークロードを高速化するために Google がカスタム開発した特定用途向け集積回路 (ASIC) です。TPU は大規模なバッチに対して高いスループットを提供し、数週間にわたってトレーニングされ、行列計算が大半を占めるモデルに適しています。

ディープラーニング推論のための AI アクセラレータ

       DL 推論には、並列コンピューティング機能による高速計算のための AI アクセラレータが必要です。これらは、従来のチップよりも 4 ~ 5 倍の帯域幅をプロセッサ間で分配できる高帯域幅メモリを備えています。DL 推論用の主要な AI アクセラレータには、カスタム設計の ASIC である AWS Inferentia と、AI 推論を最適化してデプロイするためのオープンソース ツールキットである Open Visual Inference and Neural Network Optimization (OpenVINO) があります。

       どちらも、コンピューター ビジョン、音声認識、NLP、NLG などのタスクの深層学習のパフォーマンスを向上させます。OpenVINO は、TensorFlow、PyTorch、Caffe、Keras などのフレームワークでトレーニングされたモデルを使用し、CPU、GPU、VPU、iGPU の高速化を通じてモデルのパフォーマンスを最適化します。

ニューラルネットワークモデルの最適化

       深層学習モデルは、ビデオ分析やコンピューター ビジョンなどのさまざまなシナリオで使用できるように最適化されています。これらの計算負荷の高い分析のほとんどはリアルタイムで実行されるため、次の目標が重要です。

より高速なパフォーマンス

計算要件の削減

スペースの使用を最適化する

たとえば、OpenVINO は、次のツールを利用してニューラル ネットワークをシームレスに最適化します。

      モデル オプティマイザー – 複数のフレームワークからモデルを中間表現 (IR) に変換します。これらの操作は OpenVINO ランタイムを使用して実行できます。OpenVINO ランタイム プラグインは、CPU、GPU、VPU などのハードウェアで推論するための完全な実装を含むソフトウェア コンポーネントです。

   トレーニング後最適化ツールキット (POT) – DefaultQuantization および AccuracyAwareQuantization アルゴリズムを介してトレーニング後の自動モデル量子化を適用し、IR モデルの推論を高速化します。

        Neural Network Compression Framework (NNCF) - PyTorch および TensorFlow と統合して、プルーニングを通じてモデルを量子化および圧縮します。一般的に使用される圧縮アルゴリズムは、8 ビット量子化、フィルター プルーニング、スパース、混合精度量子化、および 2 値化です。

結論は

      現代では、人工知能はさまざまな産業、さまざまな特定の分野で広く使用されています。それを念頭に置いて、このリファレンス カードでは AI アルゴリズムのルーツを掘り下げ、ニューラル ネットワークの基礎、DNN のアーキテクチャの複雑さ、最適なパフォーマンスのためのハードウェア要件を探ります。以下の表は、業界全体にわたるディープ ニューラル ネットワークの主な用途の一部を示しています。

業界

小売り

‍セルフチェックアウト

製品の寸法を自動的に測定し、棚割りのスペースを最適化します。

自動補充

医療保険

医用画像の分類

がん分散学習環境 (CANDLE)

政府 犯罪予防
資材の取り扱いと配送のための物流 倉庫ロボット
製造品質管理 欠陥の分類
オートパイロット
金融業務

不正行為の検出

マネーロンダリング対策とリスク分析

ローン処理

取引の清算と決済

オプションの価格設定

      AI アルゴリズムの複雑さが進むにつれて、AI チップを超えてモデリング時間/洞察時間を短縮し、精度を向上させることがますます重要になっています。ハイ パフォーマンス コンピューティングは共有リソースであるため、Kubernetes などのコンテナ化ソリューションは、ユーザーにさらなる制御を提供し、大規模なデータ処理を可能にする道を開きます。イリノイ州の国立スーパーコンピューティング アプリケーション センター (NCSA) は、ゲノム マッピングから自動運転輸送に至るまで、さまざまな業界における AI と HPC の融合アプリケーションの先頭に立っています。

 

おすすめ

転載: blog.csdn.net/CSS360/article/details/126388382