Andrew Ng 氏は、Tess Ferrandez 氏が修了したディープラーニング特別コースのインフォグラフィックを Twitter で紹介しました。このインフォグラフィックは、ディープラーニング コースの知識とハイライトを美しく記録しています。そのため、初心者がディープラーニングを理解するのに適しているだけでなく、機械学習の実践者や研究者が基本的な概念を確認するのにも適しています。これは単なるコースノートではなく、インフォグラフィックとチートシートのセットでもあります。 この記事では、ディープラーニングの基礎、畳み込みネットワーク、再帰型ネットワークの 3 つの側面からノートブックを紹介します。 1. ディープラーニングの基礎 1. ディープラーニングの基本概念 2. ロジスティック回帰 3. 浅いネットワークの特徴 4. ディープニューラルネットワークの特徴 5. バイアスと分散 6. 正規化 7. 最適化 8. ハイパーパラメータ 9. 機械学習のプロセスを構築する 10. エラー分析 11. トレーニングセット、開発セット、テストセット 12. その他の学習方法 2. 畳み込みネットワーク 13. 畳み込みニューラルネットワークの基礎 14. 古典的な畳み込みニューラルネットワーク 15. 特殊な畳み込みニューラルネットワーク 16. 実践的な提案 17. 物体検出アルゴリズム 18. 顔認識 19. スタイル転送 3. 再帰ネットワーク 20. リカレントニューラルネットワークの基礎 21. NLPにおける単語表現 22. シーケンスからシーケンスへ 1. ディープラーニングの基礎 1. ディープラーニングの基本概念 教師あり学習: すべての入力データには対応する出力データがあります。さまざまなネットワーク アーキテクチャでは、入力データと出力データのノード レイヤーがネットワークの両端に配置されています。トレーニング プロセスでは、それらの間のネットワーク接続の重みを継続的に調整します。 左上: さまざまなネットワーク アーキテクチャの教師あり学習がリストされています。たとえば、標準ニューラル ネットワーク (NN) は住宅の特徴と住宅価格の間の機能をトレーニングするために使用でき、畳み込みニューラル ネットワーク (CNN) は画像とカテゴリの間の機能をトレーニングするために使用でき、再帰型ニューラル ネットワーク (RNN) は音声とテキストの間の機能をトレーニングするために使用できます。 左下: NN、CNN、RNN の簡略化されたアーキテクチャがそれぞれ表示されます。これら 3 つのアーキテクチャのフォワード プロセスは異なります。NN は、重み行列 (接続) とノード値を乗算して次の層のノードに伝播する方法を使用します。CNN は、長方形の畳み込みカーネルを使用して畳み込み操作を実行し、画像入力を順番にスライドさせて次の層の入力を取得します。RNN は、前のタイム ステップの情報を記憶または忘れて、現在の計算プロセスに長期メモリを提供します。 右上: NN は構造化データ (テーブル、データベースなど) と非構造化データ (画像、音声など) の両方を処理できます。 右下: ディープラーニングの発展は、主にビッグデータの出現によるものです。ニューラル ネットワークのトレーニングには大量のデータが必要であり、ビッグデータ自体が、より大きなネットワークの出現を促進します。ディープラーニング研究における大きな進歩は、新しい活性化関数の出現です。シグモイド関数を ReLU 関数に置き換えると、バックプロパゲーションで高速な勾配降下プロセスを維持できます。シグモイド関数は、正の無限大と負の無限大でゼロになる傾向がある導関数を持ちます。これが勾配が消える主な原因であり、トレーニングが遅くなったり、失敗したりします。ディープラーニングを学ぶには、「アイデア – コード – 実験 – アイデア」という好循環を学ぶ必要があります。 2. ロジスティック回帰 左上: ロジスティック回帰は主にバイナリ分類問題に使用されます。図に示すように、ロジスティック回帰は、画像が猫であるかどうかという問題を解決できます。ここで、画像は入力 (x) で、猫 (1) か猫でないか (0) が出力です。ロジスティック回帰は、2 つのデータ ポイント グループを分離する問題と考えることができます。線形回帰 (活性化関数が線形) のみの場合、非線形境界 (たとえば、1 つのデータ ポイント グループが別のグループに囲まれている) 上のデータ ポイントを効果的に分離することはできません。そのため、線形活性化関数を非線形活性化関数に置き換える必要があります。この場合、シグモイド活性化関数を使用します。これは、値の範囲が (0, 1) の滑らかな関数です。これにより、ニューラル ネットワークの出力は連続的で正規化された (確率値) 結果を得ることができます。たとえば、出力ノードが (0.2, 0.8) の場合、画像は猫ではない (0) と判断されます。 左下: ニューラル ネットワークのトレーニング目標は、最も適切な重み w とバイアス項 b を決定することです。このプロセスはどのようなものですか? この分類は、実際には最適化の問題です。最適化プロセスの目的は、予測値 y ハットと実際の値 y のギャップを最小化することです。これは、目的関数の最小値を見つけることで実現できます。そこで、まず目的関数(損失関数、コスト関数)の形式を決定し、次に勾配降下法を使用して w と b を徐々に更新します。損失関数が最小値に達するか、十分に小さい場合、良好な予測結果が得られます。 右上: パラメータ表面上の損失関数値の変化を簡略化した図。勾配を使用して最速の下降パスを見つけることができ、学習率の大きさによって収束速度と最終結果が決まります。学習率が大きい場合、初期の収束は速く、局所的最小値に留まることは容易ではありませんが、後期段階で安定した値に収束することは困難です。学習率が小さい場合、状況は正反対になります。一般的には、トレーニングの初期段階では学習率を大きくし、後期段階では学習率を小さくすることが望まれます。学習率を変更するトレーニング方法については後ほど紹介します。 右下: トレーニング プロセス全体を要約すると、入力ノード x から開始して、順方向伝播によって予測出力 y ハットが取得され、y ハットと y を使用して損失関数値が取得され、次に逆方向伝播が開始されて w と b が更新されます。このプロセスは収束するまで繰り返されます。 3. 浅いネットワークの特徴 左上: 浅いネットワークでは、隠れ層が少なくなります。図に示すように、隠れ層は 1 つだけです。 左下: さまざまな活性化関数の特性は次のとおりです。 シグモイド: シグモイド関数は、主にその正規化特性により、バイナリ分類問題、または多重分類問題の最後の層でよく使用されます。シグモイド関数は両側でゼロに近づく勾配があり、トレーニングが遅くなる可能性があります。 Tanh: シグモイドと比較して、tanh 関数の利点は勾配値が大きいため、トレーニング速度を速くできることです。 ReLU: 閾値活性化(スパイクモデルの特殊なケース、生物学的ニューロンの働きに似ている)として理解できます。 この関数は非常に一般的に使用されており、基本的にデフォルトの活性化関数です。 その利点は、トレーニングが遅くならないことです。また、活性化値がゼロのノードはバックプロパゲーションに参加しないため、この関数はネットワークを疎にする効果もあります。 Leaky ReLU: アクティベーション値がゼロになる結果を回避し、バックプロパゲーション プロセスが常に実行されますが、実際にはほとんど使用されません。 右上: 活性化関数を使用する理由より正確に言えば、なぜ非線形活性化関数を使用するのでしょうか? 上図の例から、2層の伝播後、活性化関数のないニューラルネットワークの最終結果は、単層の線形演算の結果と同じであることがわかります。つまり、非線形活性化関数を使用しない場合、ニューラルネットワークの層がいくつあっても、単層のニューラルネットワーク(入力層を除く)と同等になります。 右下:パラメータwとbの値を初期化するにはどうすればよいでしょうか? すべてのパラメータがゼロに初期化されると、すべてのノードが同一になり、トレーニング中に複数レベルの多様な機能ではなく、同じ機能のみを学習できるようになります。解決策は、すべてのパラメータをランダムに初期化することですが、分散はごくわずかです。そのため、初期化には Rand(0.01) を使用します。ここで、0.01 もハイパーパラメータの 1 つです。 4. ディープニューラルネットワークの特徴 左上: ニューラル ネットワークのパラメータ化容量は層の数に応じて指数関数的に増大します。つまり、ディープ ニューラル ネットワークで解決できる問題の中には、浅いニューラル ネットワークで解決するには指数関数的な量の計算が必要になるものもあります。 左下: CNN のディープ ネットワークは、最下層の単純な特徴を、層ごとに複雑な特徴に組み合わせることができます。深度が増すほど、分類できる画像の複雑さと多様性が増します。同じことが RNN のディープ ネットワークにも当てはまり、音声を音素に分解し、徐々に文字、単語、文に組み合わせて、複雑な音声テキスト変換タスクを実行できます。 右: ディープ ネットワークには大量のトレーニング データとコンピューティング リソースが必要であり、GPU で並列実行できる多数の行列演算が伴います。また、学習率、反復回数、隠し層の数、アクティベーション関数の選択、学習率調整スキーム、バッチ サイズ、正規化方法など、多数のハイパーパラメータも含まれます。 5. バイアスと分散 では、機械学習モデルを展開する際には、何に注意する必要があるのでしょうか?次の図は、ML アプリケーションの構築に必要なデータセットのセグメンテーション、バイアス、および分散の問題を示しています。 上記のように、従来の機械学習モデルとディープラーニングモデルに必要なサンプル数には大きな違いがあります。ディープラーニングのサンプル数は、従来の ML の数千倍です。したがって、トレーニング セット、開発セット、テスト セットの分布も大きく異なります。もちろん、これらの異なるデータ セットはすべて同じ分布に従うと想定しています。 バイアスと分散の問題も、機械学習モデルにおける一般的な課題です。上の図は、高いバイアスによって引き起こされるアンダーフィッティングと、高い分散によって引き起こされるオーバーフィッティングを示しています。一般的に言えば、高いバイアスは、より複雑なネットワークまたは異なるニューラル ネットワーク アーキテクチャを選択することで対処できますが、高い分散は、正規化を追加したり、モデルの冗長性を減らしたり、トレーニングにさらに多くのデータを使用したりすることで対処できます。 もちろん、機械学習モデルには注意すべき問題が他にもたくさんありますが、これらは ML アプリケーションを構成する上で最も基本的で重要な部分です。データの前処理、データの正規化、ハイパーパラメータの選択などのその他の側面は、次のインフォグラフィックに反映されています。 6. 正規化 正則化は、高分散やモデルの過剰適合を解決するための主な手段です。過去数年間、研究者は、データ拡張、L2 正則化 (重み減衰)、L1 正則化、ドロップアウト、ドロップコネクト、ランダムプーリング、早期終了など、機械学習アルゴリズムに適したさまざまな正則化手法を提案し、開発してきました。 上図の左の列に示されているように、L1 正則化と L2 正則化も機械学習で最も広く使用されている正則化方法です。 L1 正則化では、パラメータの絶対値の合計を減らすために目的関数に正則化項を追加します。一方、L2 正則化では、正則化項を追加する目的は、パラメータの二乗の合計を減らすことです。これまでの研究によると、L1 正則化における多くのパラメータ ベクトルはスパース ベクトルであり、多くのモデルでパラメータが 0 に近づくため、特徴選択設定でよく使用されます。さらに、パラメータ ノルム ペナルティ L2 正規化により、ディープラーニング アルゴリズムはより高い分散を持つ入力 x を「感知」できるため、出力ターゲットとの共分散が小さい (分散が比較的大きい) 特徴の重みが縮小されます。 上の図の中央の列は、ドロップアウト手法を示しています。これは、ニューロンとその接続の一部を一時的に破棄する方法です。ニューロンをランダムにドロップすると、異なるネットワーク アーキテクチャを指数関数的に効率的に接続しながら、過剰適合を防ぐことができます。一般に、ドロップアウト手法を使用するニューラル ネットワークは保持率 p を設定し、各ニューロンはトレーニングのバッチで 1-p の確率でランダムに選択されて削除されます。最後に推論を実行するときにすべてのニューロンを保持する必要があり、その結果、精度が高くなります。 バギングは、複数のモデルを組み合わせることで一般化エラーを減らす手法です。主なアプローチは、複数の異なるモデルを個別にトレーニングし、すべてのモデルにテスト サンプルの出力を投票させることです。ドロップアウトは、多数のディープ ニューラル ネットワークを統合するバギング手法と見なすことができるため、少量のデータでニューラル ネットワークをトレーニングおよび評価できるバギング アンサンブルの安価な近似を提供します。 最後に、上の図では、データ拡張や早期停止などの正規化方法についても説明しています。データ拡張は、トレーニング データに変換または摂動を追加することで、トレーニング データセットを人工的に増加させます。画像の水平または垂直方向の反転、切り取り、色の変更、拡大、回転などのデータ拡張技術は、視覚的表現や画像分類でよく使用されます。早期停止は、過剰表現されたモデルがトレーニング中に適切に一般化されないようにするためによく使用されます。反復回数が少なすぎると、アルゴリズムはアンダーフィッティング(分散が小さく、バイアスが大きい)になりやすく、反復回数が多すぎると、アルゴリズムはオーバーフィッティング(分散が大きく、バイアスが小さい)になりやすくなります。したがって、早期終了は反復回数を決定することによってこの問題を解決します。 7. 最適化 最適化は、機械学習モデルにおいて非常に重要なモジュールです。トレーニング プロセス全体を支配するだけでなく、最終的なモデルのパフォーマンスと収束に必要な時間も決定します。以下の 2 つのインフォグラフィックは、最適化の準備や具体的な最適化方法など、最適化手法で注意すべき知識ポイントを示しています。 上記は、一般的な最適化の問題と必要な操作を示しています。まず、最適化を実行する前に、入力データを正規化する必要があり、開発セットとテストセットの正規化定数(平均と分散)はトレーニングセットのものと同じになります。上図は正規化の理由も示しています。特徴量間の大きさの差が大きすぎると、損失関数の表面が細長い楕円になり、勾配降下法や最急降下法は「のこぎり歯」現象により収束しにくくなります。そのため、円に正規化することで、降下方向の振動を抑えることができます。 それに続く勾配消失や勾配爆発の問題も非常に一般的な現象です。 「勾配消失」とは、ネットワークの深さが増すにつれて、パラメータの勾配ノルムが指数関数的に減少する現象を指します。勾配が小さいということは、パラメータの変化が非常に遅いことを意味し、学習プロセスが停滞します。勾配爆発とは、ニューラル ネットワークのトレーニング中に大きな誤差勾配が蓄積され、モデルの重みが大幅に更新されることを指します。極端な場合には、重みの値が大きくなりすぎて NaN 値が発生します。 TensorFlow や他のフレームワークで最適化アルゴリズムを実行するにはオプティマイザーを呼び出すだけでよいため、勾配チェックは現在はあまり使用されない可能性があります。勾配チェックでは、一般的に数値手法を使用して近似導関数を計算し、それを伝播することで、解析式に基づいて計算した勾配が正しいかどうかをチェックできます。 以下は、最も基本的な小バッチ確率的勾配降下法、モメンタム付き確率的勾配降下法、RMSProp などの適応学習率アルゴリズムを含む特定の最適化アルゴリズムです。 ミニバッチ確率的勾配降下法 (通常 SGD と呼ばれます) では、データのバッチを使用してパラメータを更新するため、1 回の反復に必要な計算量が大幅に削減されます。この方法は、更新されたパラメータの分散を減らし、収束プロセスをより安定させます。また、一般的なディープラーニング フレームワークの高度に最適化された行列演算子を利用して、各小さなデータ バッチの勾配を効率的に計算することもできます。通常、ミニバッチには 50 ~ 256 個のサンプルが含まれますが、目的によって異なる場合があります。 モメンタム戦略は、特に曲率が高い状況で、SGD の学習プロセスを高速化することを目的としています。一般的に言えば、モメンタム アルゴリズムは、以前の勾配の指数関数的に減少するスライド平均を使用してその方向に修正を行い、それによって履歴勾配の情報をより有効に活用します。このアルゴリズムは、パラメータ空間内を連続的に移動するパラメータの速度ベクトルとして変数 v を導入します。速度は一般に、負の勾配の指数関数的に減少するスライド平均に設定できます。 上の図に示されている RMSProp や Adam などの適応学習率アルゴリズムは、現在最も一般的に使用されている最適化手法です。 RMSProp アルゴリズム (Hinton、2012) は、勾配の累積を指数的に加重された移動平均に変更し、遠く離れた過去の勾配情報を破棄することで、非凸の場合のパフォーマンスが向上するように AdaGrad を変更します。 RMSProp は、Hinton がパブリック クラスで提案した最適化アルゴリズムです。実際、これは AdaDelta の特殊なケースと見なすことができます。しかし、実践により、RMSProp は非常に優れたパフォーマンスを発揮することが証明されており、現在はディープラーニングで広く使用されています。 Adam アルゴリズムは、AdaGrad アルゴリズムと RMSProp アルゴリズムの両方の利点を活用します。 Adam は、RMSProp アルゴリズムのように 1 次モーメント平均に基づいて適応パラメータ学習率を計算するだけでなく、勾配の 2 次モーメント平均 (つまり、偏りのある分散/中心化されていない分散) も最大限に活用します。 8. ハイパーパラメータ 以下は、モデルのパフォーマンスを直接向上できるため、ニューラル ネットワークで重要な役割を果たすハイパーパラメータを紹介するインフォグラフィックです。 学習率、ニューラルネットワーク内の隠れユニットの数、バッチサイズ、レイヤー数、正則化係数などのハイパーパラメータがモデルのパフォーマンスに直接影響を与える可能性があることはよく知られており、それらをどのように調整するかが非常に重要です。現在、最も一般的な方法は、手動でパラメータを調整することです。開発者は、独自のモデリング経験に基づいて「適切な」ハイパーパラメータを選択し、モデルのパフォーマンスに基づいて小さな調整を行います。ただし、ランダムプロセスやベイズ最適化などの自動パラメータ調整には、依然として非常に大量の計算が必要であり、比較的非効率的です。しかし、近年では強化学習、遺伝的アルゴリズム、ニューラルネットワークなどの手法を用いたハイパーパラメータの探索が大きく進歩しており、研究者は効率的かつ正確な手法を模索しています。 現在のハイパーパラメータ検索方法は次のとおりです。 経験を頼りにしましょう。自分の直感に耳を傾け、適切だと感じるパラメータを設定してそれが機能するかどうかを確認し、飽きるまで試し続けてください。 グリッド検索: 特定の範囲内で均等に分布しているいくつかの値をコンピューターに試させます。 ランダム検索: コンピューターにいくつかのランダムな値を試させて、それがうまく機能するかどうかを確認します。 ベイズ最適化: MATLAB bayesopt などのツールを使用して、最適なパラメータを自動的に選択します。ベイズ最適化には、独自の機械学習アルゴリズムよりも多くのハイパーパラメータがあるため、これに飽きてしまい、経験とグリッド検索方法に頼ることになります。 スペースが限られているため、以下のプレゼンテーションではインフォグラフィックを簡単に紹介するだけにします。すべての読者にとって非常に役立つものになると信じています。 9. 機械学習のプロセスを構築する 機械学習システムをプロセスまたは構造で設定する必要があります。まず、期待されるパフォーマンスや測定方法など、モデルが達成すべき目標を設定する必要があります。次に、トレーニング セット、開発セット、テスト セットを分割し、可能な最適化レベルを推定します。その後、モデルが構築およびトレーニングされ、開発セットとテスト セットで検証された後、推論に使用できるようになります。 10. エラー分析 トレーニング後、間違った注釈や不正確な損失関数などを見つけるなど、エラーの原因を分析してパフォーマンスを向上させることができます。 11. トレーニングセット、開発セット、テストセット 上の図は、3 つのセグメンテーション データ セットと、それらのパフォーマンスで注意する必要がある点、つまり、それらの精度率が異なる場合、これらの「違い」をどのように修正できるかを示しています。たとえば、トレーニング セットの精度は検証セットやテスト セットの精度よりも大幅に高く、モデルが過剰適合していることを示しています。また、3 つのデータ セットの精度は許容レベルよりも大幅に低く、不足適合が原因である可能性があります。 12. その他の学習方法 機械学習やディープラーニングは、もちろん教師あり学習法だけではなく、転移学習、マルチタスク学習、エンドツーエンド学習もあります。 2. 畳み込みネットワーク 13. 畳み込みニューラルネットワークの基礎 コンピューター ビジョンのタスクに関係するデータの量は非常に膨大です。高解像度の画像やビデオは言うまでもなく、1 つの画像には何千ものデータ ポイントが含まれます。このとき、全結合ネットワークを使用するとパラメータ数が大きくなりすぎるため、代わりに畳み込みニューラルネットワーク(CNN)を使用することで、パラメータ数を大幅に削減できます。 CNN の動作原理は、特定の特徴を検出するフィルターを使用して画像全体をスキャンし、特徴を抽出し、それらをレイヤーごとにより複雑な特徴に組み合わせるようなものです。この「スキャン」方法は、優れたパラメータ共有特性を備え、異なる場所にある同じターゲットを検出できるように機能します(並進対称性)。 畳み込みカーネルに対応する検出特徴は、そのパラメータ分布から簡単に判断できます。たとえば、左から右への重みが小さい畳み込みカーネルは、白黒の縦縞の境界を検出し、中央が明るく、両側が暗い特徴マップとして表示できます。具体的な相対的な明るさと暗さの結果は、画像のピクセル分布と畳み込みカーネルの相対関係によって異なります。畳み込みカーネルの重みは直接ハードコードすることもできますが、同じアーキテクチャをさまざまなタスクに適応させるには、トレーニングを通じて畳み込みカーネルの重みを取得する方がよい方法です。 畳み込み演算の主なパラメータは次のとおりです。 パディング: 直接畳み込み操作を行うと、結果の特徴マップはどんどん小さくなります。パディング操作では、画像の周囲に 0 ピクセルのエッジが追加され、畳み込み後に取得される特徴マップのサイズが元の画像と同じになります (長さと幅、チャネル数は除く)。 よく使用される 2 つのオプションは、「VALID」(パディングは実行されません)、「SAME」(出力フィーチャ マップの長さと幅が元の画像と同じになります) です。 ストライド: 2 つの畳み込み演算間のステップ サイズ。 畳み込み層には複数の畳み込みカーネルが存在する場合があります。各畳み込みカーネル操作の結果はチャネルです。各チャネルの特徴マップは同じ長さと幅を持ち、次の畳み込み層の入力として積み重ねてマルチチャネル特徴マップを形成できます。 深層畳み込みニューラルネットワークのアーキテクチャ: 深層畳み込みニューラル ネットワークのアーキテクチャは、主に畳み込み層とプーリング層の複数レベルの積み重ねと、最後に分類を実行するための完全接続層で構成されます。プーリング層の主な機能は、特徴マップのサイズを縮小し、それによってパラメータの数を減らし、計算を高速化し、ターゲット検出のパフォーマンスをより堅牢にすることです。 14. 古典的な畳み込みニューラルネットワーク LeNet·5: 手書き認識および分類ネットワーク。Yann LeCun によって提案された最初の畳み込みニューラル ネットワークです。 AlexNet: 画像分類ネットワーク。CNN で初めて ReLU 活性化関数を導入しました。 VGG-16: 非常に深い画像分類ネットワーク。 15. 特殊な畳み込みニューラルネットワーク ResNet: 勾配消失問題と勾配爆発問題を軽減するために残差接続を導入し、非常に深いネットワークをトレーニングできます。 ネットワークインネットワーク: 1x1 畳み込みカーネルを使用すると、畳み込み演算を完全接続ネットワークに似た形式に変換でき、特徴マップのチャネル数を削減して、パラメータ数を削減できます。 インセプションネットワーク:様々なサイズの畳み込みカーネルを並列演算し、複数のチャネルに積み重ねます。様々なスケールの特徴を捉えることができますが、計算量が多すぎるという欠点があります。1x1畳み込みによりチャネル数を減らすことができます。 16. 実践的な提案 オープンソース実装を使用する: 何かをゼロから実装するのは非常に困難です。他の人の実装を使用すると、より複雑で興味深いタスクをすばやく探索できるようになります。 データ強化: 元の画像に対してミラーリング、ランダム クロッピング、回転、色の変更などの操作を実行することで、トレーニング データの量と多様性を高めます。 転移学習: 現在のタスクのトレーニング データが少なすぎる場合、完全にトレーニングされたモデルを少量のデータで微調整して、十分に優れたパフォーマンスを得ることができます。 ベンチマークやコンテストで良い成績を収めるためのヒント: モデル アンサンブルを使用して複数のモデルの出力を平均します。テスト中は、画像を複数のコピーに切り取って個別にテストし、テスト結果を平均します。 17. 物体検出アルゴリズム オープンソース実装を使用する: 何かをゼロから実装するのは非常に困難です。他の人の実装を使用すると、より複雑で興味深いタスクをすばやく探索できるようになります。 データ強化: 元の画像に対してミラーリング、ランダム クロッピング、回転、色の変更などの操作を実行することで、トレーニング データの量と多様性を高めます。 転移学習: 現在のタスクのトレーニング データが少なすぎる場合、完全にトレーニングされたモデルを少量のデータで微調整して、十分に優れたパフォーマンスを得ることができます。 ベンチマークやコンテストで良い成績を収めるためのヒント: モデル アンサンブルを使用して複数のモデルの出力を平均します。テスト中は、画像を複数のコピーに切り取って個別にテストし、テスト結果を平均します。 17. 物体検出アルゴリズム 顔認識アプリケーションには、顔検証(バイナリ分類)と顔認識(複数人分類)の 2 つの主要なタイプがあります。 サンプルサイズが不十分な場合や、新しいサンプルが継続的に追加される場合は、ワンショット学習が必要です。解決策は、類似度関数を学習すること、つまり、2 つの画像間の類似性を判断することです。たとえば、Siamese Network で顔認識を学習する場合、2 つのネットワークの出力を使用して、同じ人物の 2 つの出力間の差を減らし、異なる人物の 2 つの出力間の差を増やします。 19. スタイル転送 スタイルトランスファーは、視覚的に人々に爽快感を与えることができるホットな話題です。たとえば、ある写真に対して別の写真のスタイル機能を適用し、有名な画家や有名な絵画のスタイルを使用してイメージを修正するなど、独自のスタイルの作品を作成できます。 3. 再帰ネットワーク 20. リカレントニューラルネットワークの基礎 上で示したように、名前付きエンティティの認識などのシーケンスの問題は現実世界で大きな割合を占めますが、隠れマルコフ連鎖などの従来の機械学習アルゴリズムは、強力な仮定を立てて一部のシーケンスの問題しか処理できません。しかし最近、リカレント ニューラル ネットワークがこれらの問題に大きな進歩をもたらしました。RNN の隠れ状態の構造は循環形式で保存されます。各瞬間の隠れ層の状態は過去の状態に依存します。この構造により、RNN は過去の複雑な信号を長期間保存、記憶、処理することができます。 リカレント ニューラル ネットワーク (RNN) は、シーケンス データと時系列データから特徴と長期的な依存関係を学習できます。 RNN には、非線形ユニットのスタックがあり、それらの間には少なくとも 1 つの接続があり、有向ループを形成します。トレーニングされた RNN はあらゆる動的システムをモデル化できますが、RNN のトレーニングは主に長期的な依存関係を学習するという問題の影響を受けます。 以下に、RNN のアプリケーション、問題、およびバリエーションを示します。 リカレントニューラルネットワークは、言語モデリングなどのシーケンス問題では非常に強力ですが、同時に深刻な勾配消失問題も抱えています。したがって、LSTM や GRU などのゲートベースの RNN には大きな可能性があります。ゲート メカニズムを使用して、以前のタイム ステップの情報を保持または忘れ、現在の計算プロセスに提供するメモリを形成します。 21. NLPにおける単語表現 どのようなタスクを実行する場合でも単語を表現する必要があるため、単語の埋め込みは自然言語処理において非常に重要です。上の図は単語埋め込み法を示しています。語彙ライブラリを 200 次元または 300 次元のベクトルにマッピングすることで、単語を表現するためのスペースを大幅に削減できます。さらに、この単語表現方法は、意味が似ている単語が埋め込み空間内で互いに近いため、単語の意味も表現できます。 上記の Skip Grams に加えて、単語埋め込みを学習するための一般的な方法も次に示します。 GloVe 単語ベクトルは、非常に一般的な単語ベクトル学習方法です。学習した単語表現は、文の分類などのタスクにも使用できます。 22. シーケンスからシーケンスへ 最も一般的に使用されるシーケンスツーシーケンス方式はエンコーダー/デコーダー フレームワークであり、ビーム サーチなどの他のモジュールも導入されています。 エンコーダー/デコーダー アーキテクチャとアテンション メカニズムを組み合わせることで、多くの自然言語処理の問題を解決できます。以下では、BLEU スコアとアテンション メカニズムについて説明します。これらは、機械翻訳のアーキテクチャと評価の両方において不可欠な部分です。 これらはすべて、Andrew Ng のディープラーニング スペシャライゼーションに関するインフォグラフィックです。情報量が多いため、ここでは一部を紹介しただけで、簡単にしか触れられていない内容も多数あります。したがって、読者はインフォグラフィックをダウンロードし、その後の学習プロセスでゆっくりと理解し、最適化するのが最適です。 |
<<: 先頭に立つのはロボット工学の専門家ダニエラ・ルスです! MIT の新しいアルゴリズムにより、ソフトロボットの「固有受容感覚」が実現
>>: アダプティブコンピューティングがAI製品化の課題にどのように対処するか
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
OpenAIはSoraで世界に衝撃を与えた。どのような才能あるチームがこのような傑作を開発できるので...
北京時間4月16日、外国メディアの報道によると、ロボットが人間の仕事を代替するというのはSF映画のス...
[[271670]]一度ベッドに入ったら決して起き上がりたくない人にとって、電気を消すことは寝る前の...
国家設備登録局が発表したデータによると、建設現場での盗難による損失は年間10億ドルを超えることが多い...
10月31日、中関村サイエンスパーク管理委員会の指導の下、美団クラウドが主催し、「AIの力で共存とW...
8月2日、Googleの研究チームはOpenAIのGPT-4を使用して他のAIモデルのセキュリティ保...
ロボット工学は、ロボットの構想、設計、製造、操作を扱う工学の分野です。ロボット産業はここ数年で驚異的...
現在、アクセス制御にはより高度な技術と新しいアプリケーション市場があります。アクセス制御システムで現...
人工知能アルゴリズムによる注目ベースの単一画像超解像法は、テクスチャと滑らかさを区別します。概要: ...
最近、「Honhe AI、生活をより良くする--Honheグループ2019年新製品発表会」が成都で開...