過去 10 年間で、機械学習への関心は爆発的に高まりました。ほぼ毎日、さまざまなコンピューターサイエンスのコース、業界のカンファレンス、ウォールストリートジャーナルなどで機械学習に関する議論を見ることができます。機械学習に関する議論では、多くの人が機械学習で何ができるかと、機械学習に何をしてほしいかを混同しています。最も基本的なレベルでは、機械学習とは、アルゴリズムを使用して生データから情報を抽出し、その情報を何らかのモデルで表現することです。このモデルを使用して、まだモデル化されていない他のデータについて推論を行います。 ニューラル ネットワークは機械学習モデルの一種であり、少なくとも 50 年前から存在しています。ニューラル ネットワークの基本単位はノードであり、これは主に哺乳類の脳内の生物学的ニューロンからヒントを得ています。ニューロン間の接続も生物学的脳をモデルにしており、時間の経過とともにこれらの接続が発達する様子を「トレーニング」と呼びます。 1980 年代半ばから 1990 年代初頭にかけて、ニューラル ネットワークのモデル アーキテクチャにおいて多くの重要な進歩がありました。しかし、優れたパフォーマンスを達成するために必要な時間とデータの増加により、研究者の関心は大幅に低下しました。 21 世紀初頭、コンピューティング能力は飛躍的に向上し、研究者たちはコンピューター技術における「カンブリア爆発」を目撃しました。この分野における強力な競争相手であるディープラーニングは、コンピューティング能力の爆発的な成長により、多くの重要な機械学習コンテストで優勝してきました。現時点でもこの傾向は衰えることなく続いており、今日では機械学習のあらゆる場面でディープラーニングが言及されています。 最近、このディープラーニングに関する学術論文を読み始めました。私の研究に基づいて、この分野の発展に大きな影響を与えた出版物のいくつかを以下に示します。
論文を研究し勉強することで、ディープラーニングについて多くのことを学びました。ここでは、AI エンジニアが機械学習の問題に適用できる強力なディープラーニング手法を 10 個紹介したいと思います。しかし、まずはディープラーニングとは何かを定義しましょう。ディープラーニングは、過去 10 年間でその形態が徐々に変化してきたため、多くの人にとって課題となっています。ディープラーニングの現状をよりわかりやすく説明するために、次の図は人工知能、機械学習、ディープラーニングの関係の概念を示しています。 人工知能の分野は広大で、長い間存在してきました。ディープラーニングは機械学習の分野のサブセットであり、機械学習は人工知能のサブフィールドにすぎません。ディープラーニング ネットワークを従来のフィードフォワード マルチレイヤー ネットワークと区別します。
「ニューロンの増加」とは、近年ニューロンの数が増加し、ディープラーニングでより複雑なモデルを表現できるようになったことを意味します。レイヤーは、多層ネットワークの完全接続レイヤーから、畳み込みニューラル ネットワークのニューロン セグメントへのローカル接続、および再帰型ニューラル ネットワークの同じニューロンへの再帰接続 (前のレイヤーへの接続を除く) へと進化しました。 ディープラーニングは、多数のパラメータとレイヤーを持つニューラル ネットワークとして定義できます。
この記事では、主に後者の3種類のネットワークについて説明します。畳み込みニューラル ネットワーク (CNN) は、基本的に、共有重みを使用して空間全体に広がる標準的なニューラル ネットワークです。 CNN は、画像上の認識されたオブジェクトのエッジを認識する内部の畳み込みを通じて画像を認識するように設計されています。リカレント ニューラル ネットワークは、基本的に、タイム ストレッチを使用して空間を拡張し、同時に次のレイヤーに入るのではなく、次のタイム ステップに入るエッジを抽出する標準的なニューラル ネットワークです。 RNN は内部ループを持っているため、音声やテキスト信号などのシーケンス認識を実行します。つまり、RNN ネットワークには短期記憶があるということです。リカレント ニューラル ネットワークは階層型ネットワークに似ており、入力シーケンスは実際には時間と関連していませんが、入力はツリーのような方法で階層的に処理される必要があります。次の 10 の方法は、これらすべてのアーキテクチャに適用できます。 バックプロパゲーション バックプロパゲーションは、関数合成の形式(ニューラル ネットワークなど)を持つ関数の偏導関数を計算する簡単な方法です。これは、勾配ベースの方法を使用して最大化問題 (勾配降下法はその 1 つにすぎません) を解決し、各反復で関数の勾配を計算する場合に有効になります。 ニューラル ネットワークの場合、目的関数は組み合わせ形式になります。勾配はどのように計算しますか?これを行うには、2 つの一般的な方法があります: (i) 分析的微分化。関数の形式がわかっていれば、連鎖律(基本的な微積分)を使って導関数を計算することができます。 (ii) 差分による近似微分法。この方法は、評価される関数の数が O(N) (N はパラメータの数)であるため、計算コストが高くなります。このアプローチは、解析的微分法に比べて計算コストが高くなります。デバッグ時には、バックプロパゲーションの有効性を検証するために、有限差分がよく使用されます。 確率的勾配降下法 勾配降下法を直感的に考えるには、山の頂上から始まる川の道を想像します。勾配降下法の目標は、まさに川が目指すものであり、山の頂上から最低地点まで流れることです。 さて、もし山の地形が、川が最終目的地に到達する前にどこかで止まる必要がないような形になっているなら、それが私たちが望む理想的な状況です。機械学習では、これは、初期点 (山の頂上) から始めて、ソリューションのグローバル最小値 (またはピーク) を見つけたと言うことと同じです。しかし、地形の性質上、川の流路にはいくつかの穴があり、川が閉じ込められてよどんでしまうことがあります。機械学習の用語では、このような落とし穴は局所最適解と呼ばれ、私たちが望まないものです。もちろん、局所最適解問題を解決する方法は数多くありますが、ここではこれ以上説明しません。 したがって、勾配降下法は、地形(または ML 用語では関数)の性質に応じて、局所最小値に陥る傾向があります。ただし、特殊な種類の丘の形状 (ボウルのような形状で、ML 用語では凸関数と呼ばれます) がある場合、アルゴリズムは常に最適な値を見つけることができます。この川を視覚化して想像することができます。機械学習では、これらの特殊な地形 (凸関数とも呼ばれる) は常に最適化の対象となります。さらに、山の頂上からどこから始めるか(つまり、関数の初期値)によって、山の底に到達するまでの経路がまったく異なります。同様に、川の流れの速さ(つまり、勾配降下アルゴリズムの学習率またはステップ サイズ)に応じて、さまざまな方法で目的地に到着する可能性があります。落とし穴(局所的最小値)に陥るか回避するかは、これら 2 つの基準によって左右されます。 学習率の減衰 確率的勾配降下法オプティマイザーの学習率を調整すると、パフォーマンスが向上し、トレーニング時間が短縮されます。これは、学習率アニーリングまたは適応学習率と呼ばれることもあります。トレーニング中に最も単純かつ一般的に使用される学習率調整は、時間の経過とともに学習率を下げる手法です。トレーニングの初期段階で大きな学習率の値を使用すると、学習率を大幅に調整できます。トレーニングの後期段階では、モデルがより小さなレートで重みを更新するように学習率を下げます。この手法では、初期段階で適切な重みを素早く取得し、後期段階で重みを微調整する方法を学習できます。 人気があり使いやすい 2 つの学習率減衰は次のとおりです。
ドロップアウト 多数のパラメータを持つディープニューラルネットワークは、非常に強力な機械学習システムです。しかし、このようなネットワークでは過剰適合が深刻な問題となります。大規模なネットワークは使用にも時間がかかるため、テスト時に多くの異なる大規模なニューラル ネットワークの予測を組み合わせると、過剰適合に対処することが難しくなります。ドロップアウトはこの問題を解決する技術です。 重要なアイデアは、トレーニング中にニューラル ネットワークからユニットとその接続をランダムに削除し、ユニット間の過剰適応を防ぐことです。トレーニング中、指数関数的な数の異なる「スパース」ネットワークからサンプルが抽出されます。テスト時には、重みが小さい単一の非結合ネットワークを使用するだけで、これらすべてのスパース ネットワークの平均を近似して予測を簡単に達成できます。これにより、過剰適合が大幅に削減され、他の正規化方法よりも優れたパフォーマンスが得られます。 Dropout は、コンピューター ビジョン、音声認識、ドキュメント分類、計算生物学などの分野における教師あり学習タスクにおけるニューラル ネットワークのパフォーマンスを向上させることが示されており、多くのベンチマーク データセットで最先端の結果を達成しています。 ***プーリング ***プーリングはサンプルに基づく離散化プロセスです。目標は、入力表現(画像、隠れ層の出力行列など)の次元を減らし、サブ領域に含まれる特徴をマージできるようにすることで、入力表現をダウンサンプリングすることです。 このアプローチは、抽象的な形式の表現を提供することで、ある程度過剰適合に対処するのに役立ちます。同様に、学習したパラメータの数を減らし、基礎となる内部表現の変換不変性を実現することで、計算量も削減します。 *** プーリングは、通常は重複しない初期表現のサブ領域に *** フィルターを適用することによって行われます。 バッチ正規化 もちろん、ディープ ネットワークを含むニューラル ネットワークでは、重みの初期化と学習パラメータを慎重に調整する必要があります。バッチ正規化により、中国でのプロセスが少し簡単になります。 体重の問題:
バックプロパゲーション中に、これらの現象によって勾配ドリフトが発生します。つまり、重みを学習して目的の出力を生成する前に、勾配で外れ値を補正する必要があります。これにより、収束に必要な時間も長くなります。 バッチ正規化は、これらの勾配を離散値から規則的な値に正規化し、ミニバッチの範囲にわたって(正規化することによって)共通の目標に向かって流れるようにします。 学習率の問題: 通常、学習率は小さく保たれ、重みを修正するために勾配のごく一部だけが使用されるようになります。これは、異常なアクティベーションの勾配が、すでに学習された重みに影響を与えてはならないためです。バッチ正規化では、これらの外れ値がアクティブ化される可能性が低くなるため、より高い学習率を使用して学習プロセスを高速化できます。 長期記憶と短期記憶 LSTM ネットワークには、リカレント ニューラル ネットワークの通常のニューロンとは異なる 3 つの側面があります。 1. 入力がニューロンに入るのを許可するタイミングを制御します。 2. 前のタイムステップで計算された内容をいつ記憶するかを制御します。 3. 出力を次のタイムスタンプに渡すタイミングを制御できます。 LSTM の優れた点は、次の図に示すように、これらすべてを現在の入力自体に基づいて決定することです。 現在のタイムスタンプでの入力信号 x(t) によって、上記の 3 つのポイントがすべて決定されます。入力ゲートはポイント 1 を決定します。忘却ゲートはポイント 2 を決定し、出力ゲートはポイント 3 を決定します。入力ゲートだけでこれら 3 つの決定を行うことができます。これは、私たちの脳がどのように機能し、突然のコンテキストの切り替えを処理できるかにヒントを得たものです。 スキムグラム 単語埋め込みモデルの目標は、各単語の高次元の密な表現を学習することです。埋め込みベクトル間の類似性は、対応する単語間の意味的または構文的な類似性を示します。 Skip-gram は、単語埋め込みアルゴリズムを学習するためのモデルです。 スキップグラム モデル (および他の多くの単語埋め込みモデル) の背後にある主な考え方は次のとおりです。2 つの単語は、同様のコンテキストを持つ場合、類似しているということです。 言い換えれば、「猫は哺乳類です」のような文があるとします。 「猫」の代わりに「犬」という用語を使用した場合でも、その文は意味のある文になります。したがって、この例では、「犬」と「猫」は同じコンテキスト(つまり、「哺乳類である」)を共有できます。 上記の仮定に基づいて、コンテキスト ウィンドウ (k 個の連続する用語を含むウィンドウ) を検討できます。次に、単語の 1 つをスキップし、スキップした 1 つの用語を除くすべての用語を取得して、スキップした用語を予測するニューラル ネットワークを学習する必要があります。したがって、大規模なコーパス内で 2 つの単語が類似のコンテキストを繰り返し共有する場合、それらの用語の埋め込みベクトルは類似のベクトルを持つことになります。 連続した言葉の袋 自然言語処理の問題では、文書内の各単語を数値のベクトルとして表現することを学習します。これにより、類似のコンテキストに出現する単語は互いに近いベクトルを持つようになります。連続バッグオブワードモデルでは、特定の単語を取り巻くコンテキストを使用して、特定の単語を予測できるようにすることが目標です。 私たちは、大規模なコーパスから多数の文をサンプリングし、単語が見つかるたびにその文脈の単語を使用することでこれを行います。次に、コンテキストの単語をニューラル ネットワークに入力し、そのコンテキストの中心となる単語を予測します。 このようなコンテキスト単語と中心単語が何千個もある場合、ニューラル ネットワーク データセットのインスタンスが得られます。エンコードされた隠し層の出力が特定の単語の埋め込みを表すようにニューラル ネットワークをトレーニングします。大量の文をトレーニングすると、似たような文脈の単語は似たようなベクトルになるということがよくあります。 転移学習 画像が畳み込みニューラル ネットワークを通過する仕組みを考えてみましょう。画像があり、畳み込みを適用して、ピクセルの組み合わせを出力として取得するとします。エッジにヒットすると、畳み込みが再度適用されるため、出力はエッジまたはラインの組み合わせになります。次に畳み込みが再度適用され、今度は出力は線の組み合わせになります。各レイヤーが特定のパターンを探していると考えることができます。ニューラル ネットワークの最後の層は、非常に特殊化される傾向があります。 ImageNet を使用している場合、ネットワークの最初のレイヤーでは、子供や犬、飛行機などを探します。数層戻ると、ネットワークが目や耳、口や車輪を探していることがわかります。 ディープ CNN の各レイヤーは、段階的に高レベルの特徴表現を構築します。最後の数層は、モデルに入力するデータに重点を置く傾向があります。一方、初期のレイヤーはより一般的であり、より大規模なクラスの画像にわたって多くの単純なパターンを見つけます。 転移学習とは、あるデータセットで CNN をトレーニングし、最後のレイヤーを切り取り、別のデータセットでモデルの最後のレイヤーを再トレーニングすることを意味します。直感的には、モデルを再トレーニングして、さまざまな高レベルの特徴を認識できるようにしていることになります。その結果、モデルのトレーニングにかかる時間が大幅に短縮され、データが十分でない場合やトレーニングに必要なリソースが多すぎる場合に転移学習が便利なツールになります。 |
<<: ジャック・マー氏、AIについて語る:今後10~15年で従来の製造業が被る苦痛は、今日の想像をはるかに超えるものになるだろう
>>: テンセント AI ラボが初の自動モデル圧縮フレームワークのソースを公開: ディープラーニングをポケットに
ディープ ニューラル ネットワーク (DNN) は、基本的に複数の接続されたパーセプトロン (パーセ...
【51CTO.comオリジナル記事】 1. はじめに:昨今、人工知能の研究が盛んになり、機械学習技術...
最近、Dynatrace は、AI への投資が増加し続けるにつれて、「複合 AI」が企業による AI...
2018年世界ロボット会議が北京で開催され、ロボット産業の最先端技術が披露されました。世界的なロボ...
この記事を読んでいただければ、確率の基本原理を機械学習に応用できる可能性が 100% あります。機械...
[[387879]] AI、つまり人工知能は、最近誰もが口にする言葉になっているようです。私はこのテ...
7月末にLK-99が引き起こした熱狂は、8月中旬には徐々に沈静化しました。いくつかの権威ある組織が...
コンピューター ビジョンの GPT の瞬間が到来しました。最近、カリフォルニア大学バークレー校のコン...
7月11日、ネットユーザーは、MicrosoftがBuildカンファレンスで発表した新しいMicro...
[[412443]]現在の人工知能研究コミュニティでは、データ中心の方法が絶対的に優勢であり、その...
近年、科学技術革命と産業変革の新たな局面の始まりに伴い、わが国の物流業界は情報化、デジタル化、インテ...