AI実践者が適用すべき10のディープラーニング手法

AI実践者が適用すべき10のディープラーニング手法

過去 10 年間で、機械学習への関心は爆発的に高まりました。ほぼ毎日、さまざまなコンピューターサイエンスのコース、業界のカンファレンス、ウォールストリートジャーナルなどで機械学習に関する議論を見ることができます。機械学習に関する議論では、多くの人が機械学習で何ができるかと、機械学習に何をしてほしいかを混同しています。最も基本的なレベルでは、機械学習とは、アルゴリズムを使用して生データから情報を抽出し、その情報を何らかのモデルで表現することです。このモデルを使用して、まだモデル化されていない他のデータについて推論を行います。

ニューラル ネットワークは機械学習モデルの一種であり、少なくとも 50 年前から存在しています。ニューラル ネットワークの基本単位はノードであり、これは主に哺乳類の脳内の生物学的ニューロンからヒントを得ています。ニューロン間の接続も生物学的脳をモデルにしており、時間の経過とともにこれらの接続が発達する様子を「トレーニング」と呼びます。

1980 年代半ばから 1990 年代初頭にかけて、ニューラル ネットワークのモデル アーキテクチャにおいて多くの重要な進歩がありました。しかし、優れたパフォーマンスを達成するために必要な時間とデータの増加により、研究者の関心は大幅に低下しました。 21 世紀初頭、コンピューティング能力は飛躍的に向上し、研究者たちはコンピューター技術における「カンブリア爆発」を目撃しました。この分野における強力な競争相手であるディープラーニングは、コンピューティング能力の爆発的な成長により、多くの重要な機械学習コンテストで優勝してきました。現時点でもこの傾向は衰えることなく続いており、今日では機械学習のあらゆる場面でディープラーニングが言及されています。

最近、このディープラーニングに関する学術論文を読み始めました。私の研究に基づいて、この分野の発展に大きな影響を与えた出版物のいくつかを以下に示します。

  • ニューヨーク大学の「文書認識に応用された勾配ベース学習(1998 年)」は、畳み込みニューラル ネットワークを機械学習の世界に導入しました。
  • トロント大学の Deep Boltzmann Machines (2009) は、多くの層の隠れ変数を持つボルツマン マシンの新しい学習アルゴリズムを提供しました。
  • スタンフォード大学と Google の「大規模な教師なし学習を使用した高レベルの特徴の構築 (2012)」では、ラベルなしデータのみを使用して、クラス固有の高レベルの特徴検出器を構築するという問題に取り組みました。
  • Berkeley の DeCAF - 汎用視覚認識のための深層畳み込み活性化関数 (2013) では、深層畳み込み活性化関数のオープンソース実装である DeCAF と、関連するすべてのネットワーク パラメータがリリースされ、視覚研究者がさまざまな視覚概念学習パラダイムにわたって深層表現を実験できるようになりました。
  • DeepMind は、強化学習を使用して高次元の感覚入力から直接制御ポリシーを学習することに成功した最初のディープラーニング モデルを提供した、ディープ強化学習 (2016) で Atari に匹敵します。

論文を研究し勉強することで、ディープラーニングについて多くのことを学びました。ここでは、AI エンジニアが機械学習の問題に適用できる強力なディープラーニング手法を 10 個紹介したいと思います。しかし、まずはディープラーニングとは何かを定義しましょう。ディープラーニングは、過去 10 年間でその形態が徐々に変化してきたため、多くの人にとって課題となっています。ディープラーニングの現状をよりわかりやすく説明するために、次の図は人工知能、機械学習、ディープラーニングの関係の概念を示しています。

人工知能の分野は広大で、長い間存在してきました。ディープラーニングは機械学習の分野のサブセットであり、機械学習は人工知能のサブフィールドにすぎません。ディープラーニング ネットワークを従来のフィードフォワード マルチレイヤー ネットワークと区別します。

  • ディープラーニングには、以前のネットワークよりもはるかに多くのニューロンがあります。
  • ディープラーニングではレイヤーを接続するより複雑な方法があります。
  • コンピューティング能力の「カンブリア爆発」
  • ディープラーニングは特徴抽出を自動的に実行できます。

「ニューロンの増加」とは、近年ニューロンの数が増加し、ディープラーニングでより複雑なモデルを表現できるようになったことを意味します。レイヤーは、多層ネットワークの完全接続レイヤーから、畳み込みニューラル ネットワークのニューロン セグメントへのローカル接続、および再帰型ニューラル ネットワークの同じニューロンへの再帰接続 (前のレイヤーへの接続を除く) へと進化しました。

ディープラーニングは、多数のパラメータとレイヤーを持つニューラル ネットワークとして定義できます。

  • 教師なしの事前トレーニング済みネットワーク。
  • 畳み込みニューラルネットワーク;
  • リカレントニューラルネットワーク;
  • リカレントニューラルネットワーク。

この記事では、主に後者の3種類のネットワークについて説明します。畳み込みニューラル ネットワーク (CNN) は、基本的に、共有重みを使用して空間全体に広がる標準的なニューラル ネットワークです。 CNN は、画像上の認識されたオブジェクトのエッジを認識する内部の畳み込みを通じて画像を認識するように設計されています。リカレント ニューラル ネットワークは、基本的に、タイム ストレッチを使用して空間を拡張し、同時に次のレイヤーに入るのではなく、次のタイム ステップに入るエッジを抽出する標準的なニューラル ネットワークです。 RNN は内部ループを持っているため、音声やテキスト信号などのシーケンス認識を実行します。つまり、RNN ネットワークには短期記憶があるということです。リカレント ニューラル ネットワークは階層型ネットワークに似ており、入力シーケンスは実際には時間と関連していませんが、入力はツリーのような方法で階層的に処理される必要があります。次の 10 の方法は、これらすべてのアーキテクチャに適用できます。

1- バックプロパゲーション

バックプロパゲーションは、関数合成の形式を持つ関数の偏微分を単純に計算する方法です (ニューラル ネットワークの場合など)。これは、勾配ベースの方法を使用して最大化問題 (勾配降下法はその 1 つにすぎません) を解決し、各反復で関数の勾配を計算する場合に有効になります。

ニューラル ネットワークの場合、目的関数は組み合わせ形式になります。勾配はどのように計算するのでしょうか? 一般的な方法は 2 つあります: (i) 解析的微分法。関数の形式がわかっていれば、連鎖律(基本的な微積分)を使って導関数を計算することができます。 (ii) 差分による近似微分法。この方法は、評価される関数の数が O(N) (N はパラメータの数)であるため、計算コストが高くなります。このアプローチは、解析的微分法に比べて計算コストが高くなります。デバッグ時には、バックプロパゲーションの有効性を検証するために、有限差分がよく使用されます。

2- 確率的勾配降下法

勾配降下法を直感的に考えるには、山の頂上から始まる川の道を想像します。勾配降下法の目標は、まさに川が目指すものであり、山の頂上から最低地点まで流れることです。

さて、もし山の地形が、川が最終目的地に到達する前にどこかで止まる必要がないような形になっているなら、それが私たちが望む理想的な状況です。機械学習では、これは、初期点 (山の頂上) から始めて、ソリューションのグローバル最小値 (またはピーク) を見つけたと言うことと同じです。しかし、地形の性質上、川の流路にはいくつかの穴があり、川が閉じ込められてよどんでしまうことがあります。機械学習の用語では、このような落とし穴は局所最適解と呼ばれ、私たちが望まないものです。もちろん、局所最適解問題を解決する方法は数多くありますが、ここではこれ以上説明しません。

したがって、勾配降下法は、地形(または ML 用語では関数)の性質に応じて、局所最小値に陥る傾向があります。しかし、特殊な種類の丘の形状(ボウルのような形状で、ML 用語では凸関数と呼ばれる)がある場合、アルゴリズムは常に最適な値を見つけることができます。この川を視覚化して想像することができます。機械学習では、これらの特殊な地形 (凸関数とも呼ばれる) は常に最適化の対象となります。さらに、山の頂上からどこから始めるか(つまり、関数の初期値)によって、山の底に到達するまでの経路がまったく異なります。同様に、川の流れの速さ(つまり、勾配降下アルゴリズムの学習率またはステップ サイズ)に応じて、さまざまな方法で目的地に到達する可能性があります。落とし穴(局所的最小値)に陥るか回避するかは、これら 2 つの基準によって左右されます。

3-学習率の減衰

確率的勾配降下法オプティマイザーの学習率を調整すると、パフォーマンスが向上し、トレーニング時間が短縮されます。これは、学習率アニーリングまたは適応学習率と呼ばれることもあります。トレーニング中に最も単純かつ一般的に使用される学習率調整は、時間の経過とともに学習率を下げる手法です。トレーニングの初期段階で大きな学習率の値を使用すると、学習率を大幅に調整できます。トレーニングの後期段階では、モデルがより小さなレートで重みを更新するように学習率を下げます。この手法では、初期段階で適切な重みを素早く取得し、後期段階で重みを微調整する方法を学習できます。

人気があり使いやすい 2 つの学習率減衰は次のとおりです。

  • 各段階で学習率を徐々に下げていきます。
  • 特定のエポックでの学習率を下げるには、大きなドロップを使用します。

4-ドロップアウト

多数のパラメータを持つディープニューラルネットワークは、非常に強力な機械学習システムです。しかし、このようなネットワークでは過剰適合が深刻な問題となります。大規模なネットワークは使用にも時間がかかるため、テスト時に多くの異なる大規模なニューラル ネットワークの予測を組み合わせると、過剰適合に対処することが難しくなります。ドロップアウトはこの問題を解決する技術です。

重要なアイデアは、トレーニング中にニューラル ネットワークからユニットとその接続をランダムに削除し、ユニット間の過剰適応を防ぐことです。トレーニング中、指数関数的な数の異なる「スパース」ネットワークからサンプルが抽出されます。テスト時には、重みが小さい単一の非結合ネットワークを使用するだけで、これらすべてのスパース ネットワークの平均を近似して予測を簡単に達成できます。これにより、過剰適合が大幅に削減され、他の正規化方法よりも優れたパフォーマンスが得られます。 Dropout は、コンピューター ビジョン、音声認識、ドキュメント分類、計算生物学などの分野における教師あり学習タスクにおけるニューラル ネットワークのパフォーマンスを向上させることが示されており、多くのベンチマーク データセットで最先端の結果を達成しています。

5-*** プーリング

***プーリングはサンプルに基づく離散化プロセスです。目標は、入力表現(画像、隠れ層の出力行列など)の次元を減らし、サブ領域に含まれる特徴をマージできるようにすることで、入力表現をダウンサンプリングすることです。

このアプローチは、抽象的な形式の表現を提供することで、ある程度過剰適合に対処するのに役立ちます。同様に、学習したパラメータの数を減らし、基礎となる内部表現の変換不変性を実現することで、計算量も削減します。 *** プーリングは、通常は重複しない初期表現のサブ領域に *** フィルターを適用することによって行われます。

6バッチ正規化

もちろん、ディープ ネットワークを含むニューラル ネットワークでは、重みの初期化と学習パラメータを慎重に調整する必要があります。バッチ正規化により、中国でのプロセスが少し簡単になります。

体重の問題:

  • 重みがどのように初期化されても、ランダムに選択されたり経験的に選択されたりしても、学習された重みとは大きく異なります。初期エポックで特徴アクティベーションに多くの外れ値があるミニバッチ データセットを検討します。
  • ディープ ニューラル ネットワークは本質的に脆弱であり、最初の層での小さな変動でも後続の層に大きな変化が生じる可能性があります。

バックプロパゲーション中に、これらの現象によって勾配ドリフトが発生します。つまり、重みを学習して目的の出力を生成する前に、勾配で外れ値を補正する必要があります。これにより、収束に必要な時間も長くなります。

バッチ正規化は、これらの勾配を離散値から規則的な値に正規化し、ミニバッチの範囲内で(正規化することによって)共通の目標に向かって流れるようにします。

学習率の問題: 通常、学習率は小さく保たれ、重みを修正するために勾配のごく一部だけが使用されるようになります。これは、異常なアクティベーションの勾配が、すでに学習された重みに影響を与えてはならないためです。バッチ正規化では、これらの外れ値がアクティブ化される可能性が低くなるため、より高い学習率を使用して学習プロセスを高速化できます。

7- 長期記憶と短期記憶:

LSTM ネットワークには、リカレント ニューラル ネットワークの通常のニューロンとは異なる 3 つの側面があります。

  • ニューロンへの入力が許可されるタイミングを制御します。
  • 前のタイムステップで計算された内容をいつ記憶するかを制御します。
  • 出力が次のタイムスタンプに渡されるタイミングを制御します。

LSTM の優れた点は、次の図に示すように、これらすべてを現在の入力自体に基づいて決定することです。

現在のタイムスタンプでの入力信号 x(t) によって、上記の 3 つのポイントがすべて決定されます。入力ゲートはポイント 1 を決定します。忘却ゲートはポイント 2 を決定し、出力ゲートはポイント 3 を決定します。入力ゲートだけでこれら 3 つの決定を行うことができます。これは、私たちの脳がどのように機能し、突然のコンテキストの切り替えを処理できるかにヒントを得たものです。

8-スキップグラム:

単語埋め込みモデルの目標は、各単語の高次元の密な表現を学習することです。埋め込みベクトル間の類似性は、対応する単語間の意味的または構文的な類似性を示します。 Skip-gram は、単語埋め込みアルゴリズムを学習するためのモデルです。

スキップグラム モデル (および他の多くの単語埋め込みモデル) の背後にある主な考え方は次のとおりです。2 つの単語は、同様のコンテキストを持つ場合、類似しているということです。

言い換えれば、「猫は哺乳類です」のような文があるとします。 「猫」の代わりに「犬」という用語を使用した場合でも、その文は意味のある文になります。したがって、この例では、「犬」と「猫」は同じコンテキスト(つまり、「哺乳類である」)を共有している可能性があります。

上記の仮定に基づいて、コンテキスト ウィンドウ (k 個の連続する用語を含むウィンドウ) を検討できます。次に、単語の 1 つをスキップし、スキップした 1 つの用語を除くすべての用語を取得して、スキップした用語を予測するニューラル ネットワークを学習する必要があります。したがって、大規模なコーパス内で 2 つの単語が類似のコンテキストを繰り返し共有する場合、それらの用語の埋め込みベクトルは類似のベクトルを持つことになります。

9-連続した言葉の袋:

自然言語処理の問題では、文書内の各単語を数値のベクトルとして表現することを学習します。これにより、類似のコンテキストに出現する単語は互いに近いベクトルを持つようになります。連続バッグオブワードモデルでは、特定の単語を取り巻くコンテキストを使用して、特定の単語を予測できるようにすることが目標です。

私たちは、大規模なコーパスから多数の文をサンプリングし、単語が見つかるたびにその文脈の単語を使用することでこれを行います。次に、コンテキストの単語をニューラル ネットワークに入力し、そのコンテキストの中心となる単語を予測します。

このようなコンテキスト単語と中心単語が何千個もある場合、ニューラル ネットワーク データセットのインスタンスが得られます。エンコードされた隠し層の出力が特定の単語の埋め込みを表すようにニューラル ネットワークをトレーニングします。大量の文をトレーニングすると、似たような文脈の単語は似たようなベクトルになるということがよくあります。

10- 転移学習:

画像が畳み込みニューラル ネットワークを通過する仕組みを考えてみましょう。画像があり、畳み込みを適用して、ピクセルの組み合わせを出力として取得するとします。エッジにヒットすると、畳み込みが再度適用されるため、出力はエッジまたはラインの組み合わせになります。次に畳み込みが再度適用され、今度は出力は線の組み合わせになります。各レイヤーが特定のパターンを探していると考えることができます。ニューラル ネットワークの最後の層は、非常に特殊化される傾向があります。 ImageNet を使用している場合、ネットワークの最初のレイヤーでは、子供や犬、飛行機などを探します。数層戻ると、ネットワークが目や耳、口や車輪を探していることがわかります。

ディープ CNN の各レイヤーは、段階的に高レベルの特徴表現を構築します。最後の数層は、モデルに入力するデータに重点​​を置く傾向があります。一方、初期のレイヤーはより一般的であり、より大規模なクラスの画像にわたって多くの単純なパターンを見つけます。

転移学習とは、あるデータセットで CNN をトレーニングし、最後のレイヤーを切り取り、別のデータセットでモデルの最後のレイヤーを再トレーニングすることを意味します。直感的には、モデルを再トレーニングして、さまざまな高レベルの特徴を認識できるようにしていることになります。その結果、モデルのトレーニングにかかる​​時間が大幅に短縮され、データが十分でない場合やトレーニングに必要なリソースが多すぎる場合に転移学習が便利なツールになります。

この記事では、これらの方法の概要のみを説明します。より詳しい説明については、以下の記事を読むことをお勧めします。

Andrew Beam 著「Deep Learning 101」

リソースリンク:
http://beamandrew.github.io/deeplearning/2017/02/23/deep_learning_101_part1.html

「ニューラルネットワークとディープラーニングの簡潔な歴史」Andrei Kulinkov著

リソースリンク:
http://www.andreykurenkov.com/writing/a-brief-history-of-neural-nets-and-deep-learning/

「畳み込みニューラルネットワークを理解するための初心者向けガイド」、Adit Deshpande 著

リソースリンク:

https://adeshpande3.github.io/adeshpande3.github.io/A-Beginner%27s-Guide-To-Understanding-Convolutional-Neural-Networks/

Chris Olah 著「LSTM ネットワークの理解」

リソースリンク:
http://colah.github.io/posts/2015-08-Understanding-LSTMs/

Algobean の「人工ニューラル ネットワーク」

リソースリンク:
https://algobeans.com/2016/03/13/how-do-computers-recognise-handwriting-using-artificial-neural-networks/

「リカレントニューラルネットワークの不合理な有効性」Andrej Karpathy著

リソースリンク:
http://karpathy.github.io/2015/05/21/rnn-effectiveness/

ディープラーニングでは技術的な実践が非常に重視されます。この記事の新しいアイデアはどれも、具体的な説明があまりなく提示されています。ほとんどの新しいアイデアには、それが機能することを証明する実験結果が伴います。ディープラーニングはレゴで遊ぶようなものです。レゴをマスターするのは他の芸術と同じくらい難しいですが、それに比べるとレゴを始めるのは簡単です。

<<:  Baidu Cloud ABC3.0がリリースされ、Baidu Brain、Apollo、DuerOSが共同でBaidu AI3.0を構築

>>:  本当に良いものです!機械学習技術と市場の最強評価ガイド

ブログ    

推薦する

自然災害の予測に関しては、AIはまだ大丈夫でしょうか?

古代から現代に至るまで、自然災害は人類に限りない損失をもたらしてきました。都市社会がますます発展する...

スケッチが本物の顔に変わる? AI: はい、草はいくらでも大丈夫です。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

...

...

スマート シティ: 誇大広告と現実を切り離す!

スマート シティをめぐる熱狂はかつてないほど高まっていますが、この熱狂の中で、スマート シティが私た...

物流業界における人工知能の役割はどれほど大きいのでしょうか?

新型コロナウイルスの流行を受け、サプライチェーンの複雑化や労働力不足といった課題を克服するための取り...

AIが医療をどう変えるか リアルタイムのデータ分析は医療にとって重要

科学者たちは、人工知能が多くの分野で人間を日常的な作業から解放できると信じています。ヘルスケアはこう...

自動運転技術はすでにかなり成熟しているのに、なぜまだ普及していないのでしょうか?この技術を待っている

自動運転技術は人類社会の未来を変える科学技術であり、私たちの生活にどんどん浸透し、すでに多くの自動運...

5Gは医療業界に革命を起こす

[[377987]]画像ソース: https://pixabay.com/images/id-149...

...

南開大学、山東大学、北京理工大学のチームがtrRosettaRNAを開発: Transformerネットワークを使用してRNAの3D構造を自動的に予測

RNA 3D 構造予測は長年の課題です。タンパク質構造予測における最近の進歩に触発され、南開大学、山...

人工知能の65年の簡単な歴史:マッカーシーからヒントンまで、人類はどのようなAIを追求しているのでしょうか?

人工知能の発展は65年の歴史があり、厳しい冬も栄光も経験してきました。シンボリックエキスパートシステ...

MITジェネシス核融合が世界記録を更新!高温超伝導磁石が恒星のエネルギーを解放、人工太陽が誕生するのか?

クリーンエネルギーの聖杯は征服されたのか? 「MITチームは、一夜にして核融合炉のワット当たりコスト...

コードのスキャン、顔認識、人工知能、「インターネット+」...デジタル中国はあなたと私の人生を変えます!

[[264426]]第1回デジタル中国建設サミットのテーマは「情報化で近代化を推進し、デジタル中国...