ディープラーニングは、人間の脳の構造にヒントを得た設計の多層ニューラル ネットワークによって駆動される機械学習のサブセットです。ディープラーニングモデルは、 コンピューター・ビジョン や 生成AIから自動運転車やロボティクスに至るまで、今日の最先端の 人工知能 (AI) のほとんどを支えています。
従来の機械学習アルゴリズムの明示的に定義された数学的ロジックとは異なり、ディープラーニングモデルの人工ニューラル・ネットワークは、数学的演算を実行する「ニューロン」の相互接続された多くの層で構成されています。機械学習を使用して、隣接する層の個々のニューロン間の接続の強度(つまり、さまざまなモデルの重みとバイアス)を調整することにより、ネットワークを最適化してより正確なアウトプットを生成することができます。 ニューラル・ネットワークとディープラーニングは互いに密接に関連していますが、厳密には同義語ではありません。「ディープラーニング」とは、少なくとも4層を持つモデルのトレーニングを指します(ただし、最新のニューラル・ネットワーク・アーキテクチャーは多くの場合、それよりもはるかに「ディープ」です)。
この分散型で柔軟性が高く調整可能な構造こそが、ディープラーニングの驚異的な力と多用途性を説明しているのです。トレーニングデータを2次元グラフ上に散在するデータポイントとして考えてみましょう。モデルトレーニングの目標は、それらの各データポイントを通る線を見つけることです。基本的に、従来の機械学習は、単一の直線(または曲線)を生成する単一の数学関数を使用してこれを実現することを目的としています。一方、ディープラーニングは、任意の数の小さな個別に調整可能な直線を組み合わせて、目的の形状を形成できます。ディープ・ニューラル・ネットワークは普遍的な近似量です。どのような関数に対しても、それを再現できるニューラル・ネットワークの配置が存在することが理論的に証明されています。 1
ディープラーニングモデルは、回帰タスクや分類 タスクを実行するために、ラベル付きデータに対する 教師あり学習 を通じてトレーニングされるのが最も一般的です。しかし、大規模なニューラル・ネットワークでは、最適な性能を実現するには通常、大量のトレーニングデータが必要になるため、注釈付きのトレーニング例の十分な量のデータセットを取得するためのコストと労力は法外に高額になる可能性があります。これにより、ラベルなしデータを使用して教師あり学習タスクを複製する技術が開発されました。自己教師学習という用語 この用語は、2010 年代後半に Yann LeCun によって造語され、このような手法を従来の教師なし学習と区別するために使用されました。それ以来、自己教師学習は、特に生成AIの基盤となる基盤モデルにおいて、ニューラルネットワークをトレーニングするための主要な方法として登場しました。
ニューラル・ネットワーク(または類似の概念)は、機械学習の歴史の初期にデータサイエンティストによって導入されましたが、そのブレークスルーが本格的に始まったのは2000年代後半から2010年代初頭でした。機械学習のほとんどのサブセットにわたるディープラーニングネットワークの出現は、大量の計算ステップの並列処理を可能にする高性能グラフィックプロセッシングユニット(GPU)の進歩によって可能になったことが一因です。ディープラーニングはトレーニングと推論の両方に膨大な量のコンピューティング能力を必要とするため、これらのハードウェアの進歩により、ディープラーニングモデルを大規模に実装する速度と実用性が大幅に向上しました。
人工ニューラルネットワークは、大まかに言えば、人間の脳の神経回路の働きにヒントを得たもので、その機能は神経細胞 (ニューロン) の分散ネットワーク全体にわたる化学的および電気的信号の複雑な伝達によって駆動されます。ディープラーニングでは、類似の「信号」は、多くの入れ子になった数学的演算の重み付けされた出力であり、それぞれが人工の「ニューロン」(またはノード)によって実行され、集合的にニューラル・ネットワークを構成します。
つまり、ディープラーニングは、インプットをアウトプットにマッピングする複雑な一連のネストされた方程式として理解することができます。特殊な機械学習プロセスを使用して、そのネットワーク内の個々の方程式の相対的な影響を調整すると、ネットワークがインプットをアウトプットにマッピングする方法を変更できます。
このフレームワークは非常に強力で多用途ですが、解釈可能性が犠牲になります。ニューラル・ネットワークによって学習された個々のモデルパラメータの値が現実世界のデータの特性をどのように反映するかについては、生の数学的説明以外に、たとえあったとしてもほとんど直感的な説明がありません。そのため、ディープラーニングモデルは、特に手動の主要な機能エンジニアリングに基づく従来のタイプの機械学習モデルと比較すると、「ブラックボックス」と呼ばれることがよくあります。
従来の機械学習と比較して、ディープラーニングのトレーニングには大量のデータと参考情報が必要です。高度なディープラーニング・アプリケーションの開発と実装に必要なエンタープライズ・レベルのハードウェアのコストと複雑さを考えると、クラウド・コンピューティング・サービスは、ディープラーニング・エコシステムのますます不可欠な要素となっています。
人工ニューラル・ネットワークは、相互接続された人工「ニューロン」(またはノード)の層で構成され、各ニューロンは独自の数学的オペレーション(「有効化」と呼ばれる)を実行します。活性化関数には多くの種類が存在し、ニューラル・ネットワークはその構造内に複数の活性化関数を組み込むことが多いですが、通常、ネットワークの特定の層にある全てのニューロンは同じ活性化関数を実行するように設定されます。ほとんどのニューラル・ネットワークでは、入力層の各ニューロンは次の層の各ニューロンと接続され、それらのニューロンはさらにその次の層のニューロンと接続されるといった仕組みになっています。
各ノードの有効化関数のアウトプットは、後続層の各ノードに提供されるインプットの一部に寄与します。重要なのは、各ノードで実行される有効化機能が非線形であるため、ニューラル・ネットワークが複雑なパターンと依存関係をモデル化できることです。ディープ・ニューラル・ネットワークを(非常に複雑な)線形回帰モデルと区別するのは、非線形有効化関数の使用です。
専門家モデルの混合や畳み込みニューラル・ネットワークなどの一部の特殊なニューラル・ネットワーク・アーキテクチャーでは、この配置のバリエーション、追加、または例外が必要になりますが、すべてのニューラル・ネットワークは、このコア構造の何らかのバージョンを採用しています。特定の層の数、各層内のノードの数、および各層のノードに対して選択された有効化関数は、トレーニング前に手動で決定されるハイパーパラメーターです。
これらの無数のニューロンからニューロンへの接続には、それぞれ独自のウェイトが掛けられ、各接続の影響力を増幅(または減少)させます。各ニューロンの有効化機能に提供されるインプットは、前の層の各ニューロンの出力の加重合計として理解できます。通常、各有効化関数には固有のバイアス項が追加されます。これは、一般的な回帰関数のバイアス項と同様に機能します。
トレーニング中、ニューラル・ネットワークは、これらの重みとバイアス項のそれぞれを調整することで「学習」し、より正確な出力を生成します。これらはモデルのパラメータです。たとえば、80億の「パラメータ」を持つ大規模言語モデル(LLM)について読むと、その数はモデルのニューラルネットワーク内の重み付けされたニューロン間の接続とニューロン固有のバイアスのすべてを反映しています。
ネットワークの隠れ層と呼ばれる中間層では、学習の大部分が行われます。ディープラーニング・モデルを「非深層」ニューラル・ネットワーク(例:制限ボルツマンマシン(RBN)や標準的な多層パーセプトロン(MLP))と区別する特徴は、複数の隠れ層を含む点です。複数の隠れ層が存在するため、ディープラーニング・モデルはデータの複雑な階層的特徴を学習することができ、初期層ではより広範なパターンを識別し、より深い層ではより詳細なパターンを識別します。
推論を実行するために、ネットワークはフォワードパスを完了します。入力層は、通常はベクトル埋め込みの形式で入力データを受信し、各入力ニューロンは入力ベクトルの個々の主要な機能を処理します。例えば、10 x 10ピクセルのグレースケール画像で動作するモデルでは、通常、入力層に100個のニューロンがあり、各入力ニューロンは個々のピクセルに対応します。したがって、ニューラル・ネットワークでは通常、入力ベクトルを特定のサイズに固定する必要がありますが、プーリングや正規化などの前処理技術により、元の入力データ自体のサイズに関してある程度の柔軟性が得られます。
データは段階的に変換され、最後の層まで後続の各層のノードに渡されます。出力層のニューロンの有効化関数は、ネットワークの最終アウトプット予測を計算します。たとえば、深層分類モデルの各出力ノードは、基本的に数値入力を受け取り、その入力が潜在的な分類カテゴリに属する確率 (0 ~ 1) にスケーリングするソフトマックス関数を実行する場合があります。モデルは、最も高い出力を生成した出力ノードに対応するカテゴリーを出力します。
ディープ・ニューラル・ネットワークの理論的な可能性は常に明らかでしたが、当初はそれらを効率的にトレーニングする方法は知られていませんでした。トレーニングを通じてモデル・パラメーターを最適化する目的は、ネットワークの最終アウトプットの誤差を減らすことですが、各ニューラル・ネットワークの数千(数百万、数十億とは言わないまでも)の重みが全体的な誤差にどのように寄与するかを個別に分離して計算することは、まったく非現実的です。
この障害は、2つの重要なアルゴリズムの導入によって克服されました:バックプロパゲーションと勾配降下法です。
バックプロパゲーション、つまり「誤差の後方伝播」は、ニューラル・ネットワーク内の個々の重みまたはバイアスの変更がモデル予測の精度にどのように影響するかを計算する優れた方法です。
人工ニューラル・ネットワークが本質的には、一連の入れ子になった数学関数であることを思い出してください。ある層のニューロンのアウトプットは、次の層のニューロンへのインプットとして機能するわけです。トレーニング中、これらの相互接続された方程式はさらに別の関数にネストされます。損失関数が、特定のインプットに対する望ましいアウトプット(または「グラウンドトゥルース」)と各フォワードパスのニューラルネットワークの実際のアウトプットとの間の平均差(または「損失」)を測定します。
モデルの初期ハイパーパメーターが決定されると、通常、トレーニングはモデルパラメーターのランダムな初期化から始まります。モデルはトレーニングデータセットからの一連のサンプルに対して予測を行い、損失関数は各予測の誤差を追跡します。トレーニングの目標は、平均損失が許容できるしきい値を下回るまでパラメーターを繰り返し最適化することです。
バックプロパゲーションには、損失関数の出力から始まり、入力層までさかのぼる単一のエンドツーエンドの逆伝播が必要です。微積分の連鎖律を使用して、バックプロパゲーションは損失関数の「勾配」を計算します。これは、最終的に損失関数の計算にネストされるすべての方程式の各変数に関する損失関数の偏導関数のベクトルです。言い換えれば、アウトプットの増減が全体的な損失にどのような影響を与えるかを説明します。ひいては、アウトプットの重みの変更に応じて、それらのアウトプットの重みにどのような変更があるか(またはバイアス項を追加すること)を説明します。
バックプロパゲーション中に計算された勾配は、勾配降下アルゴリズムへのインプットとして使用されます。
損失関数の勾配が下がっていくと(降順)、損失は減少します(それによって精度が上がります)。バックプロパゲーション中に計算される勾配には、すべてのモデル・パラメーターに関する損失関数の偏微分が含まれているため、損失を減らすために各パラメーターの値をどの方向に「ステップさせる」べきかがわかります。
各ステップにはモデルのパラメーターの更新が伴い、トレーニング・データからのモデルの「学習」が反映されます。私たちの目標は、最小勾配に達するまで重みを繰り返し更新することです。勾配降下アルゴリズムの目的は、勾配を最も効率的に下る特定のパラメーター調整を見つけることです。
モデルをゼロからトレーニングする場合でも、事前トレーニング済みのモデルを 微調整する場合でも、ディープラーニング・モデルを開発するためのオープンソースフレームワークが数多くあります。これらの機械学習ライブラリは、ニューラル・ネットワークの構築、トレーニング、評価のための事前構成されたさまざまなモジュールとワークフローを提供し、開発プロセスの簡素化と合理化を実現します。
ディープラーニングアルゴリズムを扱うための最も人気のあるオープンソースフレームワークには、 PyTorch 、TensorFlow、(特にLLM向け) Hugging Face Transformersライブラリがあります。これらのフレームワークを使用する前にPythonを学習することをお勧めします。
従来の(「標準的な」)深層ニューラル・ネットワークは、その本質的な能力と潜在的可能性にもかかわらず、特定のタスクにおいて十分な性能を発揮することが依然として不可能か非現実的です。ここ数十年間で、標準的なニューラル・ネットワークアーキテクチャに対するいくつかの革新が見られ、それぞれが特定のタスクや種類のデータのパフォーマンスを強化することを目的としていました。
特定のタイプのニューラル・ネットワークが複数のタイプのディープラーニングモデルに適している可能性があり、その逆も同様であることは注目に値します。例えば、画像タスクに使用されるオートエンコーダーモデルは、畳み込みニューラルネットワークベースのアーキテクチャを活用することができます。拡散モデルは、CNNベースまたはTransformerベースのアーキテクチャーを利用できます。
畳み込みニューラル・ネットワーク(CNN)は、主に(ただしそれだけではありませんが)物体検知、画像認識、画像分類、画像セグメンテーションなどのコンピューター・ビジョンタスクに関連しており、「局所的な」パターン認識(画像内の隣接するピクセル間の関係など)に優れています。
CNNの開発の背景にある直観は、特定のタスクやデータモダリティ(例えば数百から数千ピクセルの高解像度画像の分類など)の場合、標準的な全結合層のみで構成される十分な規模のニューラルネットワークでは、学習後に新規データへ良好に汎化するにはパラメータ数が多すぎるというものでした。言い換えると、真に役立つ現実世界のパターンを学習するよりも、計算効率が悪く、トレーニングデータが過剰に適合する傾向があるということです。
理論上、異なる形状やその他の意味のある特徴を検出できるニューラル・ネットワークは、生画像からそれらの特徴を抽出してさらに処理することで(画像内の意味のある特徴を持たない領域に関する情報を破棄しつつ)、計算能力を節約できる可能性があります。その1つの方法は、フィルター、つまり有用な特徴の形状に対応する値を持つ数値の小さな2次元配列であるフィルターを使用することです。たとえば、画像のピクセルを左上にスキャンするフィルターの値は次のようになります。
ここで、この5×5のフィルターが入力画像の5×5ピクセルのグリッドと乗算される様子を想像してみてください。数学用語では、これは畳み込みと呼ばれます:ある関数が別の関数を修正(または畳み込む)する数学的操作です。ピクセル値がフィルターの値に似ている場合、その乗算の積( 内積 )は大きくなり、それらのピクセルが表す主要な機能がキャプチャされます。そうでない場合、内積は小さく、ピクセルは無視されます。
CNNは、そのようなフィルターとして機能する標準の全結合層よりもはるかに少ないノードを含む畳み込み層を追加します。畳み込み層のフィルターは、画像内の個々のピクセルに対応する一意のノード(固有の重みを持つ)を必要とするのではなく、画像全体に沿ってストライドし、一度に 1 つの対応するサイズのピクセル・グリッドを処理します。これにより、有用な情報が抽出されるだけでなく、画像全体の処理に必要な固有のモデル・パラメーターの数も大幅に削減されます。
CNNは通常、標準的なニューラルネットワークよりも(層の数において)はるかに「深い」ですが、畳み込み層には比較的少ないニューロンしか含まれないため、総パラメータ数においては依然として効率的です。データがCNNを通過するにつれ、各畳み込み層は次第に詳細な特徴を抽出し、「特徴マップ」を構築します。最終的な特徴マップは最終的に標準的な全結合層に渡され、そこで最終的な予測が行われます。トレーニングにおいて、モデルは畳み込み層の重みを自然に学習し、その結果としてフィルターが正確な最終予測に寄与する特徴を捕捉するようになります。
リカレント・ニューラル・ネットワーク(RNN) は、時系列予測、音声認識、自然言語処理などの順次データを扱うタスクに使用されます。
従来のフィードフォワードニューラルネットワークが単一の入力を単一のアウトプットにマッピングするのに対し、RNNは、入力シーケンスの特定のステップのアウトプットが次のステップの計算へのインプットとなるリカレントループで動作することにより、入力シーケンスの一連のインプットをアウトプットにマッピングします。実際には、これにより、隠し状態と呼ばれる、過去の入力の内部「メモリ」が作成されます。各タイムステップ後に更新されるこの隠し状態により、RNNはコンテキストと順序の理解を維持することができます。
単一の「ロールアップ」層という概念は理解するのに役立ちますが、この再帰は同一の重みを共有する複数の層の連なりをデータが通過するものと捉えることもできます。
これにより、特にトレーニングに関して、従来のRNNにいくつかの根本的な欠点が生じます。バックプロパゲーションでは損失関数の勾配を計算し、それによって個々のモデルパラメータをどのように増加または減少させるかを決定することを思い出してください。これらのパラメーター更新があまりにも多くの「同一の」リカレント層にわたって繰り返されると、これらの更新は指数関数的に拡大します。パラメータを拡大すると勾配が爆発し、パラメータを最小化すると勾配が消失する可能性があります。どちらの問題も、トレーニングの不安定性、トレーニングの遅延、さらにはトレーニングの完全な停止を引き起こす可能性があります。したがって、Standard RNNは比較的短いシーケンスの処理に制限されています。
長短期記憶(LSTM)ネットワークやゲーテッド・リカレント・ユニット(GRU)など、基本的なRNNアーキテクチャーに対するさまざまな機能強化により、これらの問題が軽減され、長距離依存関係をモデル化するモデルの能力が向上します。
本質的に、これはモデルに、圧縮された表現が入力データの特徴量の中で最も本質的で意味のある部分集合のみを保持するように導く重みを学習させることを強制します。機械学習の用語では、オートエンコーダーは潜在空間をモデル化します。
オートエンコーダーには、データ圧縮、次元削減、主要な機能の抽出、破損データのノイズ除去、不正アクセス検知など、さまざまな用途があります。
ほとんどの場合、デコーダー・ネットワークはエンコーダーのトレーニングにのみ役立ち、トレーニング後には破棄されます。変分オートエンコーダー(VAE)は生成モデルの一種で、デコーダーが保持され、再構築前にエンコーダーによって学習された潜在的表現にランダムノイズを追加することで新しいデータポイントを生成するために使用されます。
トランスフォーマー・モデルの登場は、2017年にGoogle DeepMindが発表した「Attention is all you need」(PDF) という画期的な論文で初めて紹介されましたが、これはディープラーニングにおける画期的な出来事であり、現在の生成AIの時代へと直接つながりました。
RNNと同様に、トランスフォーマーは本質的にシーケンシャルデータを処理するように設計されています。トランスフォーマー・モデルの主要な機能を定義するのは、トランスフォーマーが入力シーケンスの各部分間の関係 (または依存関係) を識別する優れた能力を引き出す、その独自の自己注意メカニズムです。さらに重要なのは、この注意メカニズムにより、トランスフォーマーは、インプットの特定の瞬間に最も関連性の高い部分に選択的に焦点を当てる(または「注目する」)ことができるということです。
注意メカニズムは、機械翻訳に使用されるRNNのコンテキストで初めて導入されました。しかし、RNNとは異なり、トランスフォーマーはリカレント層を使用しません。標準的なトランスフォーマーアーキテクチャーは、リレーショナルデータベースのロジックに触発された新しい構造を活用して、注意層と標準フィードフォワード層のみを使用します。
トランスフォーマーは、大規模言語モデル (LLM) に最もよく関連付けられており、それに関連して、テキスト生成、チャットボット、感情分析などのNLPのユースケースにも用いられています。しかし、これらは非常に汎用性の高いモデルであり、音声や時系列データを含むあらゆるシーケンシャルデータモダリティを処理できます。画像データのようなデータモダリティでさえ、シーケンスとして表現する巧妙な回避策を通じて、ビジョン・トランスフォーマー(ViT)によって処理されます。
トランスフォーマーモデルは、ディープラーニングのほぼすべての領域で最先端の成果を生み出していますが、あらゆるユースケースにとって最適な選択肢であるわけではありません。例えば、ViTsはコンピューター・ビジョンのタスクのベンチマーク全体で最高のパフォーマンスを達成していますが、CNNは大幅に高速で計算効率が高くなります。オブジェクト検知や画像セグメンテーションのようなタスクの場合、トランスフォーマーとCNNのどちらを選択するかは、多くの場合、特定のディープラーニング・アプリケーションが最大の精度とリアルタイムのフィードバックを優先する必要があるかどうかによって決まります。
2023年に初めて導入されたMambaモデルは、シーケンシャルデータ向けの新しいディープラーニングアーキテクチャです。さまざまな状態空間モデル(SSM)から派生したMambaには、RNN、CNN、トランスフォーマーモデルとの興味深い理論的つながりがあります。最も重要なのは、Mambaが、特定の瞬間の関連性に基づいて過去の情報を選択的に優先する (または破棄する) 機能をトランスフォーマーと共有していることです。ただし、そのためのメカニズムはまったく独自です。
今のところ、Mambaは、LLMの領域でトランスフォーマーに匹敵する唯一のアーキテクチャであると考えられます。メモリをあまり消費しないアルゴリズムにより、同等の性能と大幅に優れた計算効率を実現しています。
VAEと同様に、敵対的生成ネットワーク(GAN)は、元のトレーニングデータに似た新しいデータを作成するために使用されるニューラルネットワークです。GANは、ゼロサムゲームで敵対的にトレーニングされた2つのディープラーニングネットワークを組み合わせた共同アーキテクチャです。
GANは、非常に正確な例を生成するように学習することができますが、プロセスの敵対的な性質により、トレーニングは本質的に難しく不安定になります。
拡散モデルは、生成AIにおける最も顕著なニューラルネットワークアーキテクチャの1つです。実用的でパフォーマンスも高く、VAEのトレーニングの安定性とGANのアウトプットを提供します。通常は画像の生成に使用されますが、テキスト、動画、音声データを生成することもできます。
オートエンコーダーと同様、拡散モデルは基本的に、画像を破壊して正確に再構築するようにトレーニングされますが、その方法はまったく異なります。トレーニングでは、拡散モデルは、データポイントをガウスノイズで段階的に拡散させ、そのプロセスを 逆 にして元のインプットを再構築することを学習します。そうすることで、ランダムノイズのサンプルを「ノイズ除去」して、新しいサンプル(元のトレーニングデータに似たもの)を生成できるようになります。
潜在拡散モデルは 、基本的にVAEと拡散モデルのハイブリッドです。まずインプットデータを潜在空間まで圧縮(符号化)し、拡散処理を行い、その結果をデコーダーに送り、希望の画像サイズまでアップサンプリングします。
拡散モデルは通常、CNNベースのアーキテクチャー(特に、医用画像のセグメンテーションによく使用されるU-netアーキテクチャー)を使用しますが、一部のトランスフォーマー・ベースのアーキテクチャーは、代わりにトランスフォーマー・ベースのアーキテクチャーを使用します。
グラフ・ニューラル・ネットワーク (GNN) は、一般的なほとんどのデータモダリティよりも、異なるエンティティ間のより複雑な関係をモデル化する必要があるタスク向けに設計されています。
画像のピクセルが 2 次元グリッドに配置される画像データを考えてみましょう。任意の 1 つのピクセルが最大 8 つの隣接するピクセルに直接接続されます。標準的なCNNは、このような関係のモデリングに適しています。しかし、その機能では、たとえば、特定のユーザーが他のユーザーと直接つながったり、間接的に何千人ものユーザーとつながったりする可能性のあるソーシャル・メディア・ネットワーク内の関係のモデル化には不十分です。
グラフ・ニューラル・ネットワークの構造により、他のニューラル・ネットワーク・アーキテクチャに固有のデータの単一方向の流れよりも、より複雑で不規則なデータ表現が可能になります。
AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、導入しましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。
業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。
AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。
1 Leshno, M., Lin, V.Y., Pinkus, A. and Schocken, S. “Multilayer feedforward networks with a nonpolynomial activation function can approximate any function” (PDF). New York University, March 1992.