この記事では、ディープ ラーニングと機械学習を比較し、AI のより広範なカテゴリにどのように適合するかを説明します。 不正行為の検出、音声と顔の認識、センチメント分析、タイムシリーズ予測など、Azure Machine Learning に基づいて構築できるディープ ラーニング ソリューションについて説明します。
ご利用のソリューションにふさわしいアルゴリズムを選択する方法については、機械学習アルゴリズムのチート シートに関するページを参照してください。
Azure Machine Learning の Foundry モデルは、特定のユース ケースに合わせて微調整できる事前トレーニング済みのディープ ラーニング モデルです。 詳細については、 Azure Machine Learning での Azure AI Foundry モデルの探索と、Azure Machine Learningによってキュレーションされたオープン ソース基盤モデルの使用方法に関するページを参照してください。
ディープ ラーニング、機械学習、AI
次の定義では、ディープ ラーニング、機械学習、AI の関係について説明します。
ディープ ラーニングは、人工ニューラル ネットワークに基づく機械学習のサブセットです。 人工ニューラル ネットワークの構造は複数の入力層、出力層、隠れ層で構成されるため、"学習プロセス" は "ディープ" です。 各層には、入力データを次の層で特定の予測タスクに使用できる情報に変換するためのユニットが含まれています。 この構造のため、コンピューターは独自のデータ処理を通じて学習できます。
機械学習 は、マシンがエクスペリエンスを使用してタスクを実行する能力を向上させる手法 (ディープ ラーニングなど) を使用する人工知能のサブセットです。 学習プロセスは、次の手順で構成されます。
- アルゴリズムにデータをフィードします。 (この手順では、特徴抽出を実行するなどして、モデルに追加情報を提供できます)。
- このデータを使用して、モデルをトレーニングします。
- モデルをテストして展開します。
- 展開されたモデルを使用して、自動予測タスクを行います。 (つまり、展開されたモデルを呼び出して使用し、モデルによって返される予測を受け取ります。)
AI は、コンピューターが人間のインテリジェンスを模倣できるようにする手法です。 機械学習が含まれています。
生成 AI は、手法 (ディープ ラーニングなど) を使用して新しいコンテンツを生成する AI のサブセットです。 たとえば、生成 AI を使用して画像、テキスト、またはオーディオを作成できます。 これらのモデルは、このコンテンツを生成するために、大量の事前トレーニング済み知識を使用します。
機械学習とディープ ラーニングの手法を使用することにより、一般に人間の知性と関連するタスクを行うコンピューター システムとアプリケーションを構築できます。 これらのタスクには、画像認識、音声認識、言語翻訳が含まれます。
ディープ ラーニングと機械学習の手法
機械学習とディープ ラーニングの違いについて基本的な理解を得たので、2 つの手法を比較してみましょう。 機械学習では、より多くの情報を使用して正確な予測を行う方法をアルゴリズムに伝える必要があります。 (たとえば、特徴抽出を実行します)。ディープ ラーニングでは、アルゴリズムは人工ニューラル ネットワーク構造を使用するため、独自のデータ処理を通じて正確な予測を行う方法を学習できます。
次の表は、2 つの手法の詳細を比較したものです。
| 機械学習 | ディープ ラーニング | |
|---|---|---|
| データポイントの数 | 少量のデータを使用して予測を行うことができます。 | 予測を行うには、大量のトレーニング データを使用する必要があります。 |
| ハードウェアの依存関係 | ローエンドのコンピューターで動作できます。 大量の計算能力は必要ありません。 | ハイエンドのマシンに依存します。 それは本質的に、多数の行列乗算演算を実行します。 GPU でこれらの操作を効率的に最適化できます。 |
| 特徴付けプロセス | ユーザーが特徴を正確に識別して作成する必要があります。 | データから高度な特徴を学習し、それ自体で新しい特徴を作成します。 |
| 学習方法 | 学習プロセスを小さいステップに分割します。 次に、各ステップからの結果を 1 つの出力に結合します。 | エンドツーエンドで問題を解決することにより学習プロセスを進めます。 |
| トレーニング時間 | トレーニングにあまり時間はかかりません (数秒から数時間の範囲)。 | ディープ ラーニング アルゴリズムには多くのレイヤーがあるため、通常、トレーニングには長い時間がかかります。 |
| 出力 | 通常、出力はスコアや分類などの数値になります。 | 出力には、テキスト、スコア、サウンドなどの複数の形式を使用できます。 |
転移学習とは何か
ディープ ラーニング モデルをトレーニングするには、多くの場合、大量のトレーニング データ、ハイエンドのコンピューティング リソース (GPU、TPU)、および長いトレーニング時間が必要になります。 これらのいずれも使用できない場合は、転移学習と呼ばれる手法を使用してトレーニング プロセスをショートカットできます。
転移学習は、ある問題を解決することで得られた知識を、異なるが関連している問題に適用する手法です。
ニューラル ネットワークの構造により、通常、最初のレイヤー セットには下位レベルの特徴が含まれる一方で、最後のレイヤー セットには、問題のドメインにより近い上位レベルの特徴が含まれています。 最後のレイヤーを新しいドメインまたは問題で使用するように用途変更することにより、新しいモデルをトレーニングするために必要な時間、データ、およびコンピューティング リソースを大幅に削減できます。 たとえば、車を認識するモデルが既にある場合は、転送学習を使用してトラック、オートバイ、その他の種類の車両も認識することで、そのモデルを再利用できます。
Azure Machine Learning でオープンソース フレームワークを使用して画像分類に転移学習を適用する方法については、「転移学習を使用して ディープ ラーニング PyTorch モデルをトレーニングする」を参照してください。
ディープ ラーニングのユース ケース
人工ニューラル ネットワーク構造のため、ディープ ラーニングは、画像、サウンド、ビデオ、テキストなどの非構造化データのパターンを識別するのに優れています。 このため、ディープ ラーニングにより、医療、エネルギー、フィンテック、輸送などの多くの業界が急速に変革されています。 これらの業界では、従来のビジネス プロセスが再考されています。
ディープ ラーニングの最も一般的な応用の一部を次に説明します。 Azure Machine Learning では、オープンソース フレームワークから構築したモデルを使用することも、提供されているツールを使用してモデルを構築することもできます。
名前付きエンティティの認識
名前付きエンティティの認識は、テキストを入力として受け取り、それを事前に指定されたクラスに変換するディープ ラーニング メソッドです。 この新しい情報には、郵便番号、日付、または製品 ID を指定できます。 その後、その情報を構造化スキーマに格納して、住所の一覧を作成したり、ID 検証エンジンのベンチマークとして提供したりすることができます。
オブジェクトの検出
ディープ ラーニングは、多くのオブジェクト検出のユース ケースで適用されています。 物体検出は、画像内のオブジェクト (自動車や人物など) を識別し、境界ボックスを使用してオブジェクトごとに特定の場所を提供するために使用されます。
オブジェクト検出は、ゲーム、小売、旅行、自動運転車などの業界で既に使用されています。
画像キャプションの生成
画像の認識と同様に、画像キャプション生成では、特定の画像について、画像の内容を説明するキャプションをシステムで生成する必要があります。 写真内のオブジェクトを検出してラベルを付けられるようになったら、次のステップでは、それらのラベルを説明文に変換します。
通常、画像キャプション生成アプリケーションでは、畳み込みニューラル ネットワークを使用して画像内のオブジェクトが識別された後、再帰型ニューラル ネットワークを使用してラベルが一貫した文章に変換されます。
機械翻訳
機械翻訳では、ある言語の単語や文が入力されて、自動的に別の言語に翻訳されます。 機械翻訳はかなり前から行われてきましたが、ディープ ラーニングでは、テキストの自動翻訳 (および音声テキスト変換) と画像の自動翻訳の 2 つの領域で、目覚ましい成果が得られています。
適切なデータ変換により、ニューラル ネットワークではテキスト、オーディオ、視覚的な信号を理解することができます。 機械翻訳を使用すると、大きなオーディオ ファイルから音声の断片を識別し、読み上げられた単語や画像をテキストとして文字起こしできます。
テキスト分析
ディープ ラーニング手法に基づくテキスト分析では、大量のテキスト データ (医療書類や経費の領収書など) の分析、パターンの認識、整理された簡潔な情報の作成が含まれます。
組織はディープ ラーニングを使用してテキスト分析を実行し、インサイダー取引と政府規制への準拠を検出します。 もう 1 つの一般的な例は、保険金詐欺です。テキスト分析は、多くの場合、多数のドキュメントを分析して、保険金請求が不正である可能性を認識するために使用されます。
人工ニューラル ネットワーク
人工ニューラル ネットワークは、接続されたノードのレイヤーによって形成されます。 ディープ ラーニング モデルでは、多数のレイヤーを持つニューラル ネットワークが使用されます。
次のセクションでは、一般的な人工ニューラル ネットワーク トポロジについて説明します。
フィードフォワード ニューラル ネットワーク
フィードフォワード ニューラル ネットワークは、最も単純な種類の人工ニューラル ネットワークです。 フィードフォワード ネットワークでは、情報は入力層から出力層への一方向にのみ移動します。 フィードフォワード ニューラル ネットワークでは、一連の隠れ層を通過することによって入力が変換されます。 すべての層はニューロンのセットで構成され、各層はその前の層のすべてのニューロンに完全に接続されています。 最後の完全に接続された層 (出力層) では、生成された予測が表されます。
再帰型ニューラル ネットワーク (RNN)
再帰型ニューラル ネットワークは、広く使用されている人工ニューラル ネットワークです。 これらのネットワークでは、層の出力が保存され、それが入力層にフィードバックされて、層の結果の予測に役立てられます。 反復ニューラル ネットワークには強力な学習能力があります。 時系列予測、手書き入力の学習、言語認識など、複雑なタスクに広く使用されています。
畳み込みニューラル ネットワーク (CNN)
畳み込みニューラル ネットワークは、特に効果的な人工ニューラル ネットワークであり、独特なアーキテクチャを備えています。 層は、幅、高さ、深さという 3 つのディメンションで構成されます。 ある層のニューロンは、次の層のすべてのニューロンには接続されておらず、層のニューロンの小さな領域にのみ接続されます。 最終的な出力は、深さディメンションに沿って構成される確率スコアの 1 つのベクターに削減されます。
畳み込みニューラル ネットワークは、ビデオ認識、画像認識、レコメンダー システムなどの領域で使用されます。
敵対的生成ネットワーク (GAN)
敵対的生成ネットワークは、画像などの実際のコンテンツを作成するための学習型生成モデルです。 これらは、 ジェネレーター と 識別子と呼ばれる 2 つのネットワークで構成されています。 これらのネットワークは同時に学習を進めます。 学習中、生成ネットワークは、ランダム ノイズを使用して、実際のデータに似た新しい合成データを作成します。 識別ネットワークは、生成ネットワークの出力を入力として受け取り、本物のデータを使用して、生成されたコンテンツが本物か合成かを判断します。 各ネットワークは互いに競合しています。 ジェネレーターは、実際のコンテンツと区別できない合成コンテンツを生成しようとしており、識別子は入力を実際または合成として正しく分類しようとしています。 次に、出力を使用して両方のネットワークの重み付けが更新され、それぞれの目標に近づけます。
生成敵対的ネットワークは、画像間の翻訳や年齢の進行などの問題を解決するために使用されます。
トランスフォーマー
トランスフォーマーは、テキストや時系列データなどのシーケンスを含む問題の解決に適したモデル アーキテクチャです。 これは、エンコーダー レイヤーとデコーダー レイヤーで構成されています。 エンコーダーは入力を受け取り、それをコンテキストなどの情報を含む数値表現にマップします。 デコーダーは、エンコーダーからの情報を使用して、翻訳テキストなどの出力を生成します。 トランスフォーマーが、エンコーダーとデコーダーを含む他のアーキテクチャと異なるのは、アテンションというサブレイヤーがある点です。 注意 とは、シーケンス内の他の入力に関連するコンテキストの重要性に基づいて、入力の特定の部分に焦点を当てることを指します。 たとえば、モデルがニュース記事を要約する場合、すべての文が主要なアイデアの記述に関連するわけではありません。 記事内の重要な用語に注目することで、見出しという 1 つの文に要約できます。
トランスフォーマーは、翻訳、テキスト生成、質問の回答、テキストの要約などの自然言語処理の問題を解決するために使用されます。
トランスフォーマーの実装には、次のようなものがあります。
- トランスフォーマーからの双方向エンコーダー表現 (BERT)
- 生成型事前学習済みトランスフォーマー2 (GPT-2)
- 生成型事前学習済みトランスフォーマー3 (GPT-3)
次のステップ
次の記事では、 Azure Machine Learning でオープンソースのディープ ラーニング モデルを使用するためのその他のオプションについて説明します。