ニューラルネットワーク (人工ニューラルネットワークまたは ANN とも呼ばれます) は、人間の脳に似た層構造内で相互接続されたノードまたはニューロンを使用して学習を行う適応システムです。ニューラルネットワークはデータから学習できるため、パターンを認識し、データを分類し、将来のイベントを予測するように学習させることができます。ニューラルネットワークは、入力を複数の抽象化の層に分類します。人間の脳と同様に、多くの例を用いて学習させることにより、音声や画像のパターンを認識できるようになります。ニューラルネットワークの動作は、個々の要素の接続方法と、その接続の強度または重みによって定義されます。これらの重みは、人工ニューラルネットワークが目的のタスクを正しく実行するまで、指定された学習ルールに応じて学習中に自動調整されます。
ニューラルネットワークの用途
ニューラルネットワークは、人間の脳におけるニューロン間の信号伝達の仕組みにヒントを得た機械学習手法の一種です。ニューラルネットワークは非線形関係のモデル化に特に適しており、一般的にパターン認識の実行や、音声、ビジョン、制御システムにおけるオブジェクトや信号の分類に使用されます。
ニューラルネットワークの中でも、特にディープ ニューラルネットワークは、顔認識、テキスト翻訳、音声認識など、複雑な識別の用途において優れた性能を発揮することが広く知られるようになりました。こうした手法は、車線分類や交通標識認識など、先進運転支援システムやそのタスクの技術革新を推進するための重要な技術となっています。
ニューラルネットワークの例
機械学習アプリケーションにおけるニューラルネットワークの使用例は、以下をご参照ください。
- 画像や動画のセマンティック セグメンテーション
- 歩行者と自転車利用者などの画像内のオブジェクトの検出
- 強化学習を使用した 2 足歩行ロボットの歩行学習
- がんの検出において病理学者による腫瘍の分類を支援
- その他
他の機械学習アルゴリズムと同様に、ニューラルネットワークは、分類タスクまたは回帰タスクに使用できます。モデルのパラメーターは、学習データでの学習を通じてニューラルネットワークに重み付けすることにより (通常、予測誤差を最小化するよう重みを最適化することにより) 設定されます。
ニューラルネットワークの種類
最初の最も単純なニューラルネットワークは、1958 年に Frank Rosenblatt 氏が発表したパーセプトロンです。これは、単一のニューロンで構成され、基本的にはシグモイド活性化関数を使用した線形回帰モデルです。その後、より複雑なニューラルネットワークの研究が進められた結果、何百もの層を含む現在のディープネットワークに至っています。
接続されたニューロンの層が 2、3 層しかないニューラルネットワークが「浅いニューラルネットワーク」とも呼ばれるのに対して、ディープラーニングは多くの層を持つニューラルネットワークを意味します。以前は画像や信号処理への機械学習の適用は困難なものでしたが、画像からの特徴抽出が不要になったことで、ディープラーニングが普及しました。画像処理アプリケーションでは特徴抽出を省略できますが、現在でも、モデルの精度を向上させるために、特徴抽出が何らかの形で信号処理タスクに広く適用されています。
工学的な用途で使用されるニューラルネットワークには、一般的に以下の 3 種類があります。
- フィードフォワード ニューラルネットワーク: 入力層、1 つ以上の隠れ層、および出力層で構成されています (一般的な浅いニューラルネットワーク)。
- 畳み込みニューラルネットワーク (CNN): ディープ ニューラルネットワーク アーキテクチャは、画像処理に幅広く適用され、重みを共有するノードを使用して入力に対してウィンドウを移動させる畳み込み層によって特性評価され、(通常は画像の) 入力を特徴マップに抽象化します。SqueezeNet や GoogleNet などの事前学習済み CNN ネットワークが利用できます。
- リカレント ニューラルネットワーク (RNN): 時系列データ、センサーデータ、テキストデータなどの、入力の逐次依存関係をモデル化するフィードバックループを持つニューラルネットワーク アーキテクチャ。RNN の中では、長・短期記憶 (LSTM) ネットワークが最も普及しています。
CNN の仕組み
この短いビデオでは、層、活性化、分類など、CNN の詳細について説明します。
ディープラーニングに関する詳細:
MATLAB を使用したニューラルネットワークの作成方法
MATLAB® を Deep Learning Toolbox™ および Statistics and Machine Learning Toolbox™ とともに使用すると、コンピューター ビジョンや自動運転などのアプリケーション用に深いニューラルネットワークと浅いニューラルネットワークを作成できます。
エキスパートでなくても、わずか数行のコードで、MATLAB でニューラルネットワークを作成できます。すぐに作成を始めることができ、ニューラルネットワーク モデルを学習および可視化して、ニューラルネットワークを既存のシステムに統合し、それらをサーバー、エンタープライズ システム、クラスター、クラウド、組み込みデバイスに展開することができます。
ニューラルネットワークを使用したシステム構築の一般的なワークフロー
AI アプリケーション、特にニューラルネットワークの開発は、一般的に以下の手順で行われます。
- データの準備
- ディープ ニューラルネットワークの学習を行うには、より多くのラベル付き学習データが必要になります。画像、動画、信号などのラベル付けを行うラベラーアプリを使用することで、このプロセスを促進できます。
- 特に、実際のシステムからデータを収集することが現実的でない場合 (故障状態など) は、シミュレーションを使用して学習データを生成します。
- データを拡張して学習データの変動性を表現します。
- AI モデリング
- Statistics and Machine Learning Toolbox の分類学習器と回帰学習器で対話的に浅いニューラルネットワークの学習を行うか、コマンドライン関数を使用します。これは、浅いニューラルネットワークのパフォーマンスを決定木や SVM などの他の従来の機械学習アルゴリズムと比較する場合や、使用可能なラベル付き学習データが制限されている場合に推奨されます。
- ディープ ネットワーク デザイナーまたは Deep Learning Toolbox のコマンドライン関数を使用して、(浅いまたは深い) ニューラルネットワーク を対話的に指定して学習を行います。この機能は、特にディープ ニューラルネットワークの場合や、ネットワーク アーキテクチャとソルバーをカスタマイズする柔軟性が必要な場合に適しています。
- シミュレーションとテスト
- Simulink® モデルにブロックとしてニューラルネットワークを統合することで、大規模システムとの統合、テスト、およびさまざまな種類のハードウェアへの展開を促進できます。
- 展開
- Statistics and Machine Learning Toolbox で学習を行った浅いニューラルネットワークから C/C++ コードを生成し、組み込みハードウェアや高性能コンピューティング システムに展開します。
- Deep Learning Toolbox で学習を行ったニューラルネットワークから最適化された CUDA® および C/C++ コードを生成し、GPU やその他の産業用ハードウェア (ARM、FPGA) 上で高速推論を行います。
ディープラーニング向け MATLAB
MATLAB によるディープラーニングのサポートについてご紹介します。
チュートリアルおよび例
MATLAB でディープラーニングを始めましょう。
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)