機械学習への関心は過去 10 年間で爆発的に高まりました。ほぼ毎日、さまざまなコンピューターサイエンスのコース、業界のカンファレンス、ウォールストリートジャーナルなどで機械学習に関する議論を見ることができます。機械学習に関する議論では、多くの人が機械学習で何ができるかと、機械学習に何をしてほしいかを混同しています。最も基本的なレベルでは、機械学習とは、アルゴリズムを使用して生データから情報を抽出し、その情報を何らかのモデルで表現することです。このモデルを使用して、まだモデル化されていない他のデータについて推論を行います。 ニューラル ネットワークは機械学習モデルの一種であり、少なくとも 50 年前から存在しています。ニューラル ネットワークの基本単位はノードであり、これは主に哺乳類の脳内の生物学的ニューロンからヒントを得ています。ニューロン間の接続も生物学的脳をモデルにしており、時間の経過とともにこれらの接続が発達する様子を「トレーニング」と呼びます。 1980 年代半ばから 1990 年代初頭にかけて、ニューラル ネットワークのアーキテクチャにおいて多くの重要な進歩がありました。しかし、良好な結果を得るためには膨大な時間とデータが必要であるため、ニューラル ネットワークの導入が妨げられ、関心が低下しています。 21 世紀初頭、コンピューティング能力が飛躍的に向上し、コンピューティング技術の「カンブリア爆発」が起こりました。コンピューティングが爆発的に成長したこの 10 年間で、ディープラーニングはこの分野における強力な競争相手となり、多くの重要な機械学習コンテストで優勝しました。 2017 年現在でもこの関心は冷めておらず、今日では機械学習について語るときにはディープラーニングについて言及する必要があります。 著者は、Udacity の「ディープラーニング」コースにも登録しています。このコースでは、ディープラーニングの動機と、TensorFlow を使用して複雑で大規模なデータセットから学習するインテリジェント システムの設計について、優れた入門書が提供されています。コースのプロジェクトでは、画像認識用の畳み込みニューラル ネットワーク、自然言語処理用の組み込みニューラル ネットワーク、再帰型ニューラル ネットワーク/長期短期記憶を使用した文字レベルのテキスト生成を使用および開発しました。 この記事では、AI エンジニアが機械学習の問題に適用できる 10 種類の強力なディープラーニング手法をまとめています。まず、次の図は人工知能、機械学習、ディープラーニングの関係を直感的に示しています。 人工知能の分野は非常に広範囲です。ディープラーニングは機械学習の分野のサブセットであり、機械学習は人工知能のサブフィールドです。ディープラーニング ネットワークを「従来の」フィードフォワード多層ネットワークと区別する要素は次のとおりです。
ここで「ニューロンが増える」というのは、より複雑なモデルを表現するためにニューロンの数が年々増加していることを意味します。レイヤーは、多層ネットワークの各レイヤーが完全に接続されることから、畳み込みニューラル ネットワークのレイヤー間のローカル ニューロンの接続、再帰型ニューラル ネットワークの同じニューロンへの再帰的接続へと進化してきました。 ディープラーニングは、次の 4 つの基本的なネットワーク構造を含む、多数のパラメーターとレイヤーを持つニューラル ネットワークとして定義できます。
この記事では、主に後者の 3 つのアーキテクチャを紹介します。基本的に、畳み込みニューラル ネットワーク (CNN) は、共有重みを使用して空間的に拡張された標準的なニューラル ネットワークです。 CNN は、画像内で認識されるオブジェクトのエッジを認識する畳み込みを通じて画像を認識するように設計されています。リカレント ニューラル ネットワーク (RNN) は、音声信号やテキストなどのシーケンスを認識するように設計されています。内部にループがあるため、ネットワークのメモリが不足しています。再帰型ニューラル ネットワークは、入力をツリーのように階層的に処理する必要がある階層型ネットワークに似ています。次の 10 の方法は、これらすべてのアーキテクチャに適用できます。 1. バックプロパゲーション バックプロパゲーションは、関数合成の形式(ニューラル ネットワークなど)で関数の偏導関数(または勾配)を計算する方法です。勾配ベースの方法 (勾配降下法はこれらの方法の 1 つにすぎません) を使用して最適化問題を解決する場合、各反復で関数の勾配を計算する必要があります。 ニューラル ネットワークの場合、目的関数は組み合わせ形式になります。勾配を計算するにはどうすればいいですか?一般的に使用される方法は 2 つあります: (i) 解析的微分法。関数の形式はすでにわかっているので、微分を計算するには連鎖律(基本的な微積分)を使用するだけです。 (ii) 有限差分を使った近似微分法。このアプローチは、関数値の数が O(N) (N はパラメータの数)であるため、計算コストが高くなります。ただし、デバッグ時にバックプロパゲーションの実装を検証するために、有限差分がよく使用されます。 2. 確率的勾配降下法 勾配降下法を直感的に理解する方法は、山の頂上から流れ落ちる川の道を想像することです。勾配降下法の目標は、まさに川が目指すもの、つまり山頂(山のふもと)に到達することです。 さて、山の地形が、川が最終目的地(山のふもとの最高点)に到達する前に完全に止まらないようなものであれば、これが私たちが望む理想的な状況です。機械学習では、最初のポイント(山の頂上)から始めて、ソリューションのグローバル最小値(または最高点)を見つけます。しかし、地形の性質上、川の流路にいくつかの穴があいてしまい、それが川に問題を引き起こした可能性もある。機械学習の用語では、これらの落とし穴は局所最小値と呼ばれ、望ましくないものです。この問題を解決する方法はたくさんあります。 したがって、勾配降下法は、地形の性質 (または、ML 用語では関数の性質) に応じて、簡単に局所最小値に陥る可能性があります。ただし、特殊な種類の地形 (ML 用語ではボウルのような形状で、凸関数と呼ばれます) がある場合、アルゴリズムは常に最適なソリューションを見つけることが保証されます。凸関数は ML 最適化には常に適しており、関数の初期値に応じて、異なるパスに到達する可能性があります。同様に、川の速度(つまり、勾配降下アルゴリズムの学習率またはステップ サイズ)に応じて、最終目的地に到達する方法が異なる場合があります。これら両方の基準は、落とし穴(局所的最小値)に陥るかどうかに影響します。 3. 学習率の減衰 確率的勾配降下法の最適化プロセス中に学習率を調整すると、パフォーマンスが向上し、トレーニング時間が短縮されます。 これは、学習率アニーリングまたは適応学習率と呼ばれることもあります。トレーニング中の最も単純かつ一般的な学習率の適応は、時間の経過とともに学習率を下げることです。 トレーニング プロセスの開始時に大きな学習率を使用すると、大きな変更を加えてから学習率を下げることで、その後のトレーニングでの重みの更新が小さくなるという利点があります。これにより、早い段階で適切な重みを素早く学習し、後で微調整できるようになります。 一般的で使いやすい 2 つの学習率減衰法は次のとおりです。
4. ドロップアウト 多数のパラメータを持つディープニューラルネットワークは、非常に強力な機械学習システムです。しかし、このようなネットワークでは過剰適合が深刻な問題となります。大規模なネットワークは使用速度も遅いため、テスト時に多数の異なる大規模なニューラル ネットワークの予測を組み合わせることが困難になります。ドロップアウトはこの問題を解決する 1 つの方法です。 ドロップアウトの重要なアイデアは、トレーニング中にニューラル ネットワークからいくつかのユニット (およびその接続) をランダムに削除することです。これにより、ユニットの過剰適合が防止されます。トレーニング中、指数関数的に異なる「スパース」ネットワークからいくつかのサンプルが削除されます。テスト時には、重みが小さい単一のネットワークを使用するだけで、これらすべての「間引き」ネットワークの平均予測パフォーマンスを簡単に推定できます。これにより、過剰適合が大幅に削減され、他の正規化方法に比べて大きな改善が実現します。研究により、視覚、音声認識、文書分類、計算生物学などの教師あり学習タスクにおけるニューラル ネットワークのパフォーマンスが向上し、多くのベンチマーク データセットで最先端の結果が達成されたことが示されています。 5. 最大プーリング 最大プーリングはサンプルベースの離散化プロセスです。目標は、入力表現 (画像、隠れ層の出力行列など) をダウンサンプリングして次元を減らし、サブ領域に含まれる特徴について仮定できるようにすることです。 これは抽象的な表現を提供することで過剰適合を軽減することを目的としています。同時に、学習するパラメータの数を減らし、内部表現に基本的な変換不変性を提供することで、計算コストを削減します。 *** プーリングは、通常は重複しない初期表現のサブ領域に *** フィルターを適用することによって行われます。 6. バッチ正規化 もちろん、ディープ ネットワークを含むニューラル ネットワークでは、重みの初期化と学習パラメータを慎重に調整する必要があります。バッチ正規化はこれを実現するのに役立ちます。 重みの問題: 重みがどのように初期化されても、ランダムであっても経験的に選択されたものであっても、学習した重みからは程遠いものになります。ミニバッチを検討すると、最初は、目的の機能のアクティベーションに関して多くの外れ値が存在することになります。 ディープ ニューラル ネットワークには本質的に欠陥があり、最初の層での小さな変動が後続の層に大きな変化をもたらす可能性があります。バックプロパゲーション中に、これらの現象によって勾配が分散される可能性があります。つまり、目的の出力を生成するために重みを学習する前に、勾配で外れ値を補正する必要があり、収束に余分な時間がかかる可能性があります。 バッチ正規化は、ミニバッチ全体で、勾配を分散状態から正規状態へと正規化し、(正規化を通じて)共通のターゲットに向かって流れるようにします。 学習率の問題: 一般的に、学習率は低く抑えられ、重みを修正するのは勾配のごく一部だけです。その理由は、外れ値のアクティベーションの勾配が学習されたアクティベーションに影響を与えてはならないからです。バッチ正規化を使用すると、外れ値のアクティベーションが削減されるため、より高い学習率を使用して学習プロセスを高速化できます。 7. 長期記憶と短期記憶 LSTM ネットワークは、次の 3 つの点で RNN ニューロンと異なります。
LSTM の優れた点は、これらすべてを現在の入力自体に基づいて決定することです。そこで、次のグラフを見てみましょう。 現在のタイムスタンプにおける入力信号 x(t) によって、上記の 3 つのポイントがすべて決定されます。入力ゲートはポイント 1 からの決定を受け取り、忘却ゲートはポイント 2 からの決定を受け取り、出力ゲートはポイント 3 からの決定を受け取ります。 1 つの入力で 3 つの決定すべてを行えます。これは、私たちの脳がどのように機能し、入力に基づいて突然のコンテキスト/シーンの切り替えを処理できるかにヒントを得たものです。 8. スキップグラム 単語埋め込みモデルの目標は、各語彙項目の高次元の密な表現を学習することです。埋め込みベクトル間の類似性は、対応する単語間の意味的または構文的な類似性を示します。 Skip-gram は、単語埋め込みアルゴリズムを学習するためのモデルです。 スキップグラム モデル (および他の多くの単語埋め込みモデル) の背後にある主な考え方は、2 つの語彙用語は、それらが共有するコンテキストが類似している場合に類似しているというものです。 言い換えれば、「猫は哺乳類です」のような文があるとします。 「猫」を「犬」に置き換えても、文章は意味を成します。したがって、この例では、「犬」と「猫」は同じコンテキスト(つまり、「哺乳類である」)を共有できます。 上記の仮定に基づいて、コンテキスト ウィンドウ (k 個の連続する項目を含むウィンドウ) を検討し、単語の 1 つをスキップして、スキップされた項目を除くすべての項目を取得し、スキップされた項目が何であるかを予測できるニューラル ネットワークを学習しようとします。大規模なコーパス内で 2 つの単語が類似のコンテキストを繰り返し共有する場合、これらの単語の埋め込みベクトルは類似のベクトルを持つことになります。 9. 連続した言葉の袋 自然言語処理の問題では、文書内の各単語を数値のベクトルとして表現することを学習します。これにより、類似のコンテキストに出現する単語は互いに近いベクトルを持つようになります。連続単語モデルでは、特定の単語を取り巻くコンテキストを使用して、特定の単語を予測できるようにすることが目標です。 これを実現するために、大規模なコーパスから多数の文をサンプリングし、単語が見つかるたびにその周囲の単語を抽出します。次に、文脈上の単語をニューラル ネットワークに入力し、この文脈の中心となる単語を予測します。 このようなコンテキスト単語と中心単語が何千個も揃うと、ニューラル ネットワーク データセットのインスタンスが作成されます。ニューラル ネットワークは、エンコードされた隠し層の出力が特定の単語の埋め込みを表すようにトレーニングされます。多数の文をトレーニングすると、類似したコンテキスト内の単語は類似したベクトルを取得することもわかります。 10. 転移学習 画像が畳み込みニューラル ネットワークをどのように通過するかを考えてみましょう。画像があり、畳み込みを適用して、ピクセルの組み合わせを出力として取得するとします。これらの出力がエッジであると仮定します。ここで再度畳み込みを適用すると、出力はエッジまたは線の組み合わせになります。次に、畳み込みを再度適用すると、出力は線の組み合わせになります。これを各レイヤーが特定のパターンを探していると考えることができます。ニューラル ネットワークの最後の層は、非常に特殊化される傾向があります。 ImageNet で作業している場合、ネットワークの最初のレイヤーでは、おそらく子供、犬、飛行機などの全体的なパターンを探していることになります。さらに数層戻ると、ネットワークが目や耳、口や車輪などのコンポーネントを探しているのがわかるでしょう。 ディープ CNN の各レイヤーは、徐々に高レベルの特徴表現を構築します。最初の数層は、モデルに入力されるデータに固有のものであることが多いです。一方、初期のレイヤーはより一般的です。転移学習とは、データセットで CNN をトレーニングし、最後のレイヤーを切り取り、モデルの最後のレイヤーを別のデータセットで再トレーニングすることです。直感的には、さまざまな高レベルの特徴を認識できるようにモデルを再トレーニングしていることになります。その結果、トレーニング時間が大幅に短縮されるため、十分なデータがない場合やトレーニングに多くのリソースが必要な場合に転移学習は便利なツールとなります。 結論 この記事ではディープラーニングについて簡単に紹介しました。より深く知りたい場合は、以下の資料を読み続けることをお勧めします。
ディープラーニングはテクノロジーに重点を置いています。それぞれの新しいアイデアに対する具体的な説明はあまりありません。 ほとんどの新しいアイデアには、それが機能することを証明する実験結果が伴います。ディープラーニングはレゴで遊ぶようなものです。 LEGO をマスターするのは他の芸術をマスターするのと同じくらい難しいですが、LEGO を始めるのははるかに簡単です。楽しい勉強をお願いします〜 |
<<: 卒業後すぐに年収56万は貰えるんですか?右! Twitterの機械学習の専門家が書いた上級マニュアルをご覧ください
>>: なぜ今、AI 画像はすべて女性なのでしょうか?人間とコンピュータの相互作用のメンタルモデルから始めましょう
SVM は機械学習の分野における古典的なアルゴリズムの 1 つです。 SVM をニューラル ネットワ...
テキスト分析は、顧客が話す言語に関係なく、顧客の意見のあらゆる例を発見して注釈を付けることができる強...
Google アシスタントのような AI アシスタントは、追加データや再トレーニングを必要とせずに、...
2008 年の金融危機後、都市計画とサービス提供に対する新しいアプローチが世界中で定着し始めました。...
2019年を振り返ると、無人商用車にとっては着陸の兆しがなく、資金調達がますます困難になり、最悪の...
11月30日、エヌビディアのCEOジェンスン・フアン氏は水曜日に開催されたニューヨーク・タイムズの年...
[[335033]]決定木からニューラルネットワークへTL;DR: エントロピーはシステム内の混沌の...
ガートナーのデータによると、2020 年までに人工知能は CIO の 30% 以上にとって最優先事項...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
アクセンチュアのアナリストは、2020 年に企業がより多くのイノベーションを獲得するのはクラウド プ...
最新世代の言語モデル (特に GPT-4、PaLM、LLaMa) は、自然言語処理と生成の限界を押し...