AIのために知っておくべき10のディープラーニング手法

AIのために知っておくべき10のディープラーニング手法

[[211929]]

AIであろうと他の分野であろうと、学習と研究の過程で、その分野の歴史を常に振り返り、その分野の現在の発展状況を総括し、最も重要な概念を見つけることで、人々は常に「自分のやり方に一貫性を持つ」ことができるようになります。ソフトウェアエンジニアのJames Le氏は最近、自身の研究経験に基づいて、AI研究で知っておくべき10のディープラーニング手法をまとめており、非常に刺激的です。

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

機械学習への関心は過去 10 年間で爆発的に高まりました。機械学習は、コンピューター サイエンス プロジェクト、業界カンファレンス、メディア レポートなどで目にすることができます。しかし、機械学習に関する議論が盛んに行われるなかで、AI で何ができるかと AI に何をしてほしいかを混同する人が多々いるようです。

基本的に、機械学習とは、アルゴリズムを使用して生データから情報を抽出し、それを何らかのモデルで表現することです。その後、このモデルを使用して、まだモデル化されていない他のデータについて推論を行います。

ニューラル ネットワークは、機械学習のモデルの一種として、少なくとも 50 年前から存在しています。ニューラル ネットワークの基本単位はノードであり、これは哺乳類の脳の生物​​学的ニューロンを大まかにモデル化したものです。ノード間のリンク (これも生物学的脳をモデル化) は時間の経過とともに進化します (トレーニング)。

1980 年代半ばから 1990 年代初頭にかけて、多くの重要なニューラル ネットワーク アーキテクチャが開発されましたが、良好な結果を得るには十分な計算能力と大規模なデータ セットが必要であり、当時としては理想的ではなかったため、機械学習に対する人々の熱意は徐々に冷めていきました。 21 世紀初頭、コンピューターの計算能力は飛躍的な成長を見せ、業界ではそれまでほとんど想像もできなかったコンピューター技術の「カンブリア爆発」が起こりました。ディープラーニングは、この分野の重要なアーキテクチャとして、コンピューティング能力が爆発的に成長したこの 10 年間で、多くの重要な機械学習コンテストで優勝してきました。このボーナスの熱気は今年になっても冷めることなく、今日では機械学習のあらゆる場面でディープラーニングが話題になっています。

これらをより深く理解するために、「ディープラーニング」のコースを受講し、リカレントニューラルネットワーク(RNN)と長短期記憶(LSTM)に基づいた画像認識と自然言語処理のためのニューラルネットワークを開発しました。私の Github リポジトリでコードをチェックアウトできます:

https://github.com/khanhnamle1994/ディープラーニング

最近はディープラーニングに関する学術論文も読み始めました。以下は、私が収集した、ディープラーニング分野の発展に大きな影響を与えた論文の一部です。

1. 文書認識への勾配ベース学習の応用 (1998)

意義: 畳み込みニューラルネットワークを機械学習の世界に導入した

著者: ヤン・ルカン、レオン・ボットー、ヨシュア・ベンジオ、パトリック・ハフナー

2. ディープボルツマンマシン (2009)

意義: 多くの層の隠れ変数を持つボルツマンマシン用の新しい学習アルゴリズムが提案されています。

ルスラン・サラクディノフ、ジェフリー・ヒントン

3. 大規模な教師なし学習を使用した高レベル機能の構築 (2012)

意義: ラベル付けされていないデータのみから、高レベルのカテゴリ固有の特徴検出器を構築するという問題を解決します。

著者: Quoc V. Le、Marc'Aurelio Ranzato、Rajat Monga、Matthieu Devin、Kai Chen、Greg S. Corrado、Jeff Dean、Andrew Y. Ng

4. DeCAF — 一般的な視覚認識のための深層畳み込み活性化特徴 (2013)

意義: 視覚研究者がさまざまな視覚概念学習パラダイムを深く実験できるように、Deep Convolutional Activation Features (DeCAF) のオープンソース実装を、関連するすべてのネットワーク パラメータとともにリリースします。

著者: Jeff Donahue、Yangqing Jia、Oriol Vinyals、Judy Hoffman、Ning Zhang、Eric Tzeng、Trevor Darrell

5. 深層強化学習で Atari をプレイする (2016)

意義: 強化学習を使用して高次元の感覚入力から制御ポリシーを直接学習できる初のディープラーニングモデルを提供します。

著者: Volodymyr Mnih、Koray Kavukcuoglu、David Silver、Alex Graves、Ioannis Antonoglou、Daan Wierstra、Martin Riedmiller (DeepMind チーム)

これらの研究と調査を通して、私は非常に興味深い知識のポイントをたくさん発見しました。ここでは、AI エンジニアが機械学習の問題に適用できる 10 種類のディープラーニング手法を紹介します。

しかし、まずは「ディープラーニング」とは何かを定義しましょう。 「ディープラーニング」は過去 10 年間でゆっくりと大きく進化してきたため、多くの人にとって定義するのは困難です。

まずは「ディープラーニング」の現状を視覚的に体験してみましょう。下の図は、AI、機械学習、ディープラーニングの3つの概念の関係図です。

AI の分野は比較的広範囲です。機械学習は AI のサブ分野であり、ディープラーニングは機械学習の分野のサブセットです。

ディープラーニング ネットワークと「一般的な」フィードフォワード多層ネットワークには、次のようにいくつかの違いがあります。

  • ディープラーニングネットワークは従来のネットワークよりも多くのニューロンを持っている
  • ディープラーニングネットワークがより複雑な接続層を持つ仕組み
  • ディープラーニングネットワークのトレーニングには膨大な計算能力が必要
  • ディープラーニングネットワークにより自動特徴抽出が可能

したがって、ディープラーニングは、次の 4 つの基本的なネットワーク フレームワーク内の多数のパラメーターとレイヤーを持つニューラル ネットワークとして定義できます。

  • 教師なし事前学習ネットワーク
  • 畳み込みニューラルネットワーク
  • リカレントニューラルネットワーク
  • 再帰型ニューラルネットワーク

この記事では、主に後者の 3 つのフレームワークに焦点を当てます。

畳み込みニューラル ネットワークは、基本的に、共有重みを使用して空間的に拡張された標準的なニューラル ネットワークです。 CNN は主に、認識対象のオブジェクトのエッジを認識できる内部畳み込みを通じて画像を認識するように設計されています。

リカレント ニューラル ネットワークは、基本的に、エッジが同じタイム ステップで次のレイヤーに移動するのではなく、次のタイム ステップに移動するという点で、時間的に拡張された標準的なニューラル ネットワークです。 RNN は主に音声信号やテキストなどのシーケンスを認識するように設計されています。内部のループは、ネットワーク内に短期記憶があることを意味します。

リカレント ニューラル ネットワークは階層型ネットワークに似ており、入力シーケンスに実際の時間的側面はなく、入力はツリーのような方法で階層的に処理される必要があります。

次の 10 の方法は、これらすべてのアーキテクチャに適用できます。

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

バックプロパゲーションは「誤差逆伝播」の略で、関数(ニューラル ネットワーク内の関数として存在する)の偏微分を計算する方法です。勾配ベースの方法を使用して問題を解決する場合 (勾配降下法は、このタイプの問題を解決するための 1 つの方法にすぎないことに注意してください)、各反復で関数の勾配を計算する必要があります。

ニューラル ネットワークの場合、目的関数は合成形式になります。では、勾配はどのように計算するのでしょうか?一般的な方法は 2 つあります。

  1. 差分分析。この関数の形がわかれば、連鎖律を使って導関数を計算するだけで済みます。
  2. 差分法を使用して微分を近似します。このアプローチは、関数評価の回数が O(N) (N はパラメータの数)であるため、計算コストが高くなります。これは差分解析に比べると比較的高価です。ただし、デバッグ時にバックエンドの実装を検証するために、有限差分がよく使用されます。

2. 確率的勾配降下法

勾配降下法を直感的に理解する方法は、山頂から川が流れていく様子を想像することです。川は山の勾配に沿って流れ、山のふもとの最高点まで達します。

人間を歩かせると、状況は異なるかもしれません。まずランダムに方向を選び、その方向の勾配に沿って下っていきます。しばらくすると、ランダムに別の方向に変えて下っていきます。そして最後に、谷底にほぼ到達していることに気づくでしょう。

数学的な理解は次のとおりです。

確率的勾配降下法は、主に次の合計に類似した最適化問題を解決するために使用されます。

勾配降下法:

n が大きい場合、各反復ですべての勾配を計算するのに非常に時間がかかる可能性があります。

確率的勾配降下法の考え方は、毎回 Delta f_i 内の計算をランダムに選択して上記の Delta f_i を置き換え、このランダムに選択された方向を降下方向として使用するというものです。この方法は、勾配降下法よりも速く(局所的な)最適解に到達できます。

3. 学習率の低下

モデルをトレーニングするときに、次のような状況によく遭遇します。モデルのトレーニング速度と損失のバランスを取り、比較的適切な学習率を選択しますが、トレーニング セットの損失は特定のレベルまで低下すると減少しなくなります。たとえば、トレーニング損失は 0.7 と 0.9 の間を変動し続け、それ以上減少することはできません。次の図に示すように:

これは通常、学習率を適切に下げることで解決できます。ただし、学習率を下げると、トレーニングに必要な時間が長くなります。

学習率の減衰は、この 2 つの間の矛盾をバランスさせることができるソリューションです。学習率減衰の基本的な考え方は、トレーニングが進むにつれて学習率が徐々に減衰するというものです。

学習率の減衰を実装する方法は基本的に 2 つあります。

  • 線形減衰。たとえば、5 エポックごとに学習率は半分になります。
  • 指数関数的減少。たとえば、5 エポックごとに学習率を 0.1 倍にします。

4. ドロップアウト

現在の大規模ニューラル ネットワークには 2 つの欠点があります。

  • 時間がかかる;
  • 過剰適合しやすい

Dropout はこの問題を非常にうまく解決できます。ドロップアウトとは、順方向の伝達中に、ニューロンの活性化値が一定の確率 p で機能しなくなることを意味します。概略図は次のとおりです。

ドロップアウトが実行されるたびに、元のネットワークからより薄いネットワークが見つかることになります。

ヒントンは論文の中で、無性生殖は優れた遺伝子の大部分を保存できるが、有性生殖は遺伝子を何度もランダムに分割し、遺伝子の大部分の共同適応性を破壊する、しかし自然は有性生殖、すなわち適者生存を選択し、それが有性生殖の力を示している、といった類推を行った。ドロップアウトでも同じ効果が得られます。ドロップアウトでは、ニューラル ユニットを他のランダムに選択されたニューラル ユニットと連携させて動作させることで、ニューラル ノード間の共同適応性が排除され、一般化能力が向上します。

5. 最大プーリング

プーリングは畳み込みニューラル ネットワークにおけるもう 1 つの重要な概念であり、実際にはダウン サンプリングの一種です。非線形プーリング関数にはさまざまな形式がありますが、「最大プーリング」が最も一般的です。入力画像を複数の長方形領域に分割し、各サブ領域の最大値を出力します。

直感的に言えば、このメカニズムが機能するのは、特徴が発見された後、その正確な位置よりも他の特徴に対する相対的な位置が重要になるからです。プーリング層はデータの空間サイズを継続的に縮小するため、パラメータの数と計算量も減少し、過剰適合もある程度制御されます。一般的に、プーリング層は CNN の畳み込み層の間に定期的に挿入されます。

6. バッチ正規化

ディープ ネットワークを含むニューラル ネットワークでは、重みの初期化と学習パラメータを慎重に調整する必要があります。バッチ正規化により、これが非常に簡単になります。

体重の問題:

  • 重みがどのように初期化されても、ランダムに選択されたか、経験的に選択されたかに関係なく、学習された重みからは程遠いものになります。最初は、望ましい機能のアクティベーションに関して多くの外れ値が存在する小さなバッチ サイズを検討してください。
  • ディープ ニューラル ネットワークは本質的に条件が悪く、最初の層での小さな変動が後の層で非常に大きな変化を引き起こす可能性があります。

バックプロパゲーション中に、これらの現象により勾配消失が発生する可能性があります。つまり、学習した重みが目的の出力を生成する前に、勾配の外れ値を補正する必要があり、その結果、収束するために追加のエポックが必要になる可能性があります。

バッチ正規化により、これらの勾配は分散状態から正規状態になり、ミニバッチ全体で (正規化を通じて) 共通のターゲットに向かって流れます。

学習率の問題: 一般的に、学習率は低く抑えて、重みを修正する勾配がごく一部になるようにする必要があります。その理由は、異常なアクティベーションの勾配が学習したアクティベーションに影響を与えないようにするためです。バッチ正規化を使用することで、これらの異常なアクティベーションを削減できるため、より高い学習率を使用して学習プロセスを高速化できます。

7. 長期短期記憶

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

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

LSTM の優れた点は、現在の入力自体に基づいてこれらすべてを決定できることです。 そこで次のグラフを見てみましょう。

現在の時刻における入力信号 x(t) によって、上記の 3 つのポイントがすべて決定されます。 入力ゲートはポイント 1 を決定し、忘却ゲートはポイント 2 を決定し、出力ゲートはポイント 3 を決定します。 1 つの入力で 3 つの決定をすべて行うことができます。このデザインは、実際には私たちの脳の働きにヒントを得たもので、入力に基づいて突然のコンテキストの切り替えを処理できます。

8. スキップグラム

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

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

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

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

9. 連続した言葉の袋

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

これを実現するために、大規模なコーパスから多数の文を取り出し、単語が見つかるたびに周囲の単語を抽出します。 次に、コンテキストの単語をニューラル ネットワークに入力し、このコンテキストの真ん中にある単語を予測します。

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

10. 転移学習

CNN で画像がどのように処理されるかを考えてみましょう。画像があり、その画像に対して畳み込みを実行すると、得られる出力は「エッジ」と呼ばれるピクセルの組み合わせになります。畳み込みを再度使用します。今回得られる出力はエッジの組み合わせとなり、これを「ライン」と呼びます。畳み込みを再度使用すると、線の組み合わせなどが得られます。

各レイヤーは特定のパターンを探します。ニューラル ネットワークの最後の層は、通常、非常に特殊なパターンを生成します。おそらく、ImageNet に取り組んでいて、ネットワークの最初のレイヤーでは、子供や犬、飛行機などを見つけることになっているかもしれません。 2 層先を見ると、ネットワークは目、耳、口、または車輪を探している可能性があります。

深層畳み込みニューラル ネットワークの各層は、より高レベルの特徴表現を構築します。最初の 2 つのレイヤーは、モデルに入力するデータに特定のパターンを生成します。言い換えれば、初期の層によって抽出される特徴ははるかに幅広く、抽出された多数のクラスの中には単純なパターンが多く含まれています。

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

この記事では、これらのアプローチの概要のみを説明します。これらの概念のより詳細な説明については、次の記事を読んでみることをお勧めします。

  • アンドリュー・ビームの「ディープラーニング 101」
  • Andrey Kurenkov の「ニューラル ネットとディープラーニングの簡単な歴史」
  • Adit Deshpande の「畳み込みニューラル ネットワークを理解するための初心者向けガイド」
  • Chris Olah の「LSTM ネットワークを理解する」
  • Algobean の「人工ニューラル ネットワーク」
  • Andrej Karpathy の「リカレント ニューラル ネットワークの不合理な有効性」

ディープラーニングは技術に重点が置かれており、それぞれの新しいアイデアについて具体的な説明はあまりありません。新しいアイデアのほとんどは、それが機能することを証明するために実験結果で実証されるだけです。ディープラーニングはレゴで遊ぶようなものです。習得するのは難しいですが、始めるのは簡単です。

<<:  ディープラーニングと通常の機械学習の違いは何ですか?

>>:  TensorFlow ワイド&ディープラーニングチュートリアル

ブログ    
ブログ    

推薦する

駐車問題を解決する 3 つの最善の方法をご存知ですか?

近年、都市部の駐車場の問題はますます顕著になっており、混乱した駐車が頻繁に発生し、人々の移動や生活に...

日本生命保険は6年間にわたりRPAを導入し、1万人の従業員の2,000万時間以上の工数を節約した。

日本生命保険株式会社(以下、日本生命)は、日本最大級の保険会社の一つであり、世界60カ国以上で事業を...

2022年の中国人工知能産業の発展状況と市場規模の分析 市場規模は3000億元を超える

人工知能業界の主要上場企業:Hikvision(002415)、iFlytek(002230)、Sa...

OpenAI CEO: GPT-4 は週当たり 1 億人のアクティブ ユーザーを抱え、依然として世界で最も強力な AI モデルです

米国現地時間11月7日月曜日に開催された第1回OpenAI開発者会議で、同社CEOのサム・アルトマン...

人工知能とは何かについて10分ほどお話ししましょう。

1999年、ハリウッドSF映画史上最も重要なSF映画『マトリックス』が公開されました。この映画は、...

蘇寧における知識抽出分野におけるディープラーニングの試みと実践

[[257470]] 【51CTO.comオリジナル記事】背景近年、膨大なデータの蓄積、計算能力の向...

...

人工知能技術はどのようにビジネスに統合されるのでしょうか?

AI技術の発展の歴史は数十年前に遡りますが、1970年代から1980年代までの初期段階では、ビジネ...

...

AIはスマートシティの人材採用に役割を果たすのでしょうか?

AI ツールとテクノロジーはスマート シティと IoT 主導の業界にとってゲームチェンジャーとなっ...

大型模型のレイアウトは何度も変わります!

ChatGPT の Android バージョンが登場します。 OpenAI は今年 5 月に早くも...

エネルギー分野における人工知能の5つの主要な応用

[[435080]]エネルギー分野における AI の革新と進歩により、企業がエネルギーを生産、販売、...

マイクロソフト、ヘルスケア業界がデータの価値を解き放つための新しい AI ソリューションをリリース

ヘルスケア業界とそのサービス技術が急速に発展するにつれて、大量のデータと情報が生成されます。統計レポ...

...

14,000元相当のコースノートはオープンソースで、fast.aiの創設者が新しい本のソースコードを公開

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