ディープラーニング技術に関する珍しいガイド

ディープラーニング技術に関する珍しいガイド

[[207922]]

データ前処理

(この部分は原著者が書いたものではなく、個人的な理解と関連内容に基づいて補足したものです)

概要: ニューラル ネットワークへの入力データの品質は、ネットワークのトレーニング結果に直接関係します。通常、データは前処理する必要があります。一般的なデータ前処理方法は次のとおりです。

  • 平均を削除します。各元のデータからすべてのデータの平均を減算します。つまり、入力データの各次元のデータを 0 に中心化します。
  • 正規化: 1 つの方法は、平均を除いたデータを標準偏差で割ることです。もう 1 つの方法は、すべてのデータをデータの絶対値の最大値で割ることです。
  • PCA/ホワイトニング: これはデータ前処理の別の形式であり、1 つは次元削減であり、もう 1 つは分散処理です。

理由: データを前処理すると、モデルへの影響が同じ規模になったり、他の目的が達成されたりします。

参照: CS231n 視覚認識のための畳み込みニューラル ネットワーク。

初期化

内容: 重みが適切に初期化されると、パフォーマンスが向上し、トレーニングが高速化されます。バイアスは通常 0 に設定されます。重みについては、特定の範囲内で統一することをお勧めします。

  • 線形層[1]の場合:間隔は[-v, v]、v = 1/sqrt(入力サイズ)、sqrtは平方根を意味します。
  • 畳み込み層[2]の場合:間隔は[-v, v]、v = 1/sqrt(畳み込みカーネルの幅 x 畳み込みカーネルの高さ x 入力深度)です。
  • バッチ正規化[3]の適用により、いくつかの側面で重みの初期化を調整する必要性が軽減され、いくつかの研究結果ページでは対応する代替式が提案されています。

理由: デフォルトの初期化では、入力数が増加すると各ニューロンに分散が生じます。平方根を取って各重みをスケーリングすると、ニューロンの出力分布が同様になります。

参照:

  • 1. 確率的勾配降下法のトリック、Leon Bottou;
  • 2. これは Torch ではデフォルトで実行されます。
  • 3. バッチ正規化: 内部共変量シフトの削減によるディープネットワークトレーニングの高速化、S. Ioffe および C. Szegedy;

概要: 長短期記憶ネットワーク (LSTM) の場合、忘却バイアスは通常 1 に設定され、トレーニング プロセスを高速化できます。

理由: 直感的には、トレーニングの開始時にセル間で情報を伝播させたいので、セルがその状態を忘れないようにしたいのです。

参照: 再帰型ネットワーク アーキテクチャの実証的調査、Rafal Jozefowicz 他

概要: t-Distributed Neighbor Embedding (t-SNE) アルゴリズムの場合、原作者は 5,000 から 10,000 のデータセットに対して、パープレキシティを 5 から 50 に設定することを推奨しています [1]。データセットが大きいほど、パープレキシティはそれに応じて増加します。

理由: パープレキシティは各ポイントのガウス分布の分散を決定します。パープレキシティが小さいほどクラスターの数が多くなり、パープレキシティが大きいほどクラスターの数が多くなります。パープレキシティが大きすぎると意味がありません。また、描画されたクラスターは元のスケールを維持できず、クラスター間の距離が必ずしも元の空間ジオメトリを表すとは限らないことも考慮する必要があります。異なるパープレキシティはデータ構造に関する補完的な情報を提供することができ、実行するたびに異なる結果が得られます [2]。

参照:

  • 1. t-SNE を使用した高次元データの視覚化、LJP van der Maaten。
  • 2. t-SNE を効果的に使用する方法、Wattenberg 他、Distill、2016 年。

電車

概要: 真の値の強化ターゲットを使用するだけでなく、軟化ターゲット (ソフトマックス出力) を使用してネットワークをトレーニングすることもできます。

参照: ニューラル ネットワーク内の知識の抽出 / ダーク ナレッジ、G. Hinton 他

概要: 学習率は、おそらく調整すべき最も重要なパラメータです。1 つの戦略としては、ランダム化された学習率を持ついくつかのパラメータを選択し、数回の反復後にテスト エラーを観察することです。

参照: ハイパーパラメータの調整に関するアドバイス。参照: Goodfellow et al 2016 Book

正規化

概要: ドロップアウトは RNN で使用されます。ドロップアウトは非再帰接続にのみ適用されます [1] が、最近のいくつかの論文では、ドロップアウトを再帰接続に適用できるようにするためのいくつかのトリックが提案されています [2]。

参照:

  • 1. リカレントニューラルネットワークの正規化、Wojciech Zaremba 他
  • 2. 記憶喪失を伴わない再発性中退、Stanislau Semeniuta 他

内容: バッチ正規化 (BN)。新しいレイヤーを追加します。著者は、BN レイヤーの作業を高速化するための追加のトリックをいくつか提供しています。

  • 学習率を上げる。
  • ドロップアウトを削除/削減: 過剰適合を増やすことなくトレーニングを高速化します。
  • L2 ノルム重み正規化を削除/削減します。
  • 学習率の低下を高速化: ネットワークのトレーニングを高速化します。
  • ローカル応答の正規化を削除します。
  • トレーニング サンプルをより徹底的にシャッフルします。同じサンプルがミニバッチに常に表示されないようにします (検証セットで 1% 改善されました)。
  • 測光歪みを軽減します。

理由: ここに良い説明がいくつかあります。

参照:内部共変量シフトの削減によるディープネットワークトレーニングの高速化、S. Ioffe および C. Szegedy。

ネットワーク構造

内容: スキップ接続を使用して、中間層を入力/出力層に直接接続します。

理由: 著者の主張は、ニューラル ネットワークの下部と上部の間の処理ステップの数を減らすことで、ディープ ネットワークのトレーニングが容易になり、勾配消失問題が軽減されるということです。

いつ: 一部の CNN 構造または RNN の重要なレイヤー。

参照: リカレントニューラルネットワークによるシーケンスの生成、Alex Grave 他

内容: LSTM にピープホール接続を追加します (前の出力をゲートの入力に接続します)。これは、著者によると、長期的な依存関係に役立ちます。

参照: LSTM リカレント ネットワークによる正確なタイミングの学習、Felix A. Gers 他

概要: ほとんどのディープラーニング フレームワークでは、SoftMax と Log を組み合わせたり、損失関数で SoftMax を計算したりする関数 (Tensorflow では softmax_cross_entropy_with_logits、Torch では nn.LogSoftMax) が提供されており、これをより適切に使用する必要があります。

理由: Log(SoftMax) が数値的に不安定になる可能性がわずかにあり、オーバーフローなどの望ましくない結果につながる可能性があります。もう一つの一般的な方法は、不安定さを避けるためにログに小数点を追加することです。

自然言語処理 (NLP)

内容: RNN および seq2seq モデルに関するヒント:

  • 埋め込みサイズ: 1024 または 620。 256 などの小さい次元でもパフォーマンスは向上しますが、次元が大きいほど必ずしもパフォーマンスが向上するわけではありません。
  • デコーダーの場合: LSTM>GRU>Vanilla-RNN;
  • 一般的には 2 ~ 4 層で十分と思われますが、残差のあるより深いネットワークでは収束が困難になるようで、より多くのトリックが検討されています。
  • Resd (密な残差接続) > Res (前のレイヤーへの密接な接続) > 残差接続なし;
  • エンコーダーの場合: 双方向 > 単方向 (逆入力) > 単方向。
  • 注意(加算)>注意(乗算)>注意なし。
  • ビームを使用すると、より良い結果が得られます。

参照: ニューラル機械翻訳アーキテクチャの大規模な調査、Denny Britz、Anna Goldie 他

内容: seq2seq では、入力シーケンスの順序を反転して、ターゲット シーケンスをそのまま維持します。

理由: 著者によると、この単純なデータ変換により、LSTM のパフォーマンスが大幅に向上します。

参照: Sequence to Sequence Learning with Neural Networks、Ilya Sutskever 他

内容: seq2seq では、エンコーダー ネットワークとデコーダー ネットワークに異なる重みを使用します。

参照: Sequence to Sequence Learning with Neural Networks、Ilya Sutskever 他

内容:トレーニング時にはデコーダー入力を強制的に修正し、テスト時には前のステップを使用することで、トレーニングを最初から非常に効率的に行うことができます。Samyらはモデル変換に基づく改良法を提案しました[1]。

参照:1.リカレントニューラルネットワークによるシーケンス予測のためのスケジュールされたサンプリング、Samy Bengio 他

内容: 教師なしの方法でネットワークをトレーニングして、テキストの次の文字を予測します (char-RNN)。これにより、教師ありタスク (感情分析など) に使用できる表現が学習されます。

参照: レビューの生成と感情の発見の学習、Ilya Sutskever 他

強化学習

内容: 非同期: 異なる探索ポリシーを使用して複数のエージェントを同時にトレーニングし、堅牢性を向上させます。

参照: 深層強化学習のための非同期メソッド、V. Mnih。

内容: フレームをスキップ: フレームごとにではなく 4 フレームごとにアクションを計算し、他のフレームに対してアクションを繰り返します。

理由: Atari ゲームでうまく機能し、このトリックを使用するとトレーニング プロセスが約 4 倍高速化されます。

参照: 深層強化学習で Atari をプレイ、V. Mnih。

概要: 履歴: 現在のフレームをそのまま入力するのではなく、最新のフレームを入力に重ねて、4 間隔でフレームをスキップします。つまり、t、t-4、t-8、t-12 を含むフレームのスタックが作成されます。

理由: これにより、ネットワークは運動量情報を取得できるようになります。

参照: 二重 Q 学習による深層強化学習、V. Mnih。

内容: エクスペリエンスのリプレイ: フレーム間の相関関係を回避するために、エージェントとして、各フレームを更新する代わりに、遷移期間の履歴でいくつかのサンプルをサンプリングします。この考え方は、教師あり学習でトレーニングする前にデータセットをシャッフルするのと似ています。

参照:Prioritized Experience Replay、Tom Schaul 他

概要: Parallel Advantage Actor Critic (PAAC): エージェントの経験を活用し、単一の同期更新モデルを使用して A3C アルゴリズムを簡素化します。

参照: 深層強化学習のための効率的な並列手法、Alfredo V. Clemente 他

ネットワーク圧縮

概要: 推論では、レイヤーの数を減らすために、バッチ正規化 (BN) レイヤーが他の重みを吸収できます。これは、バッチ正規化がテスト時に単純な線形スケーリングを実行するためです。

<<:  Kerasで最もよく使われるディープラーニングAPI

>>:  1行のコードで顔認識を実装する方法を教えます

ブログ    
ブログ    

推薦する

2022年に注目すべき5つのAI活用法

AI インフラストラクチャの継続的な革新と開発により、今日の仕事のやり方は変化しました。人工知能は...

ディープラーニングモデルの知的財産権をどのように保護するか? IJCAI 2021ワークショップの内容をご覧ください

先日終了したIJCAI 2021カンファレンスでは、「ディープラーニングモデルの知的財産保護に関する...

...

アリババ副社長でDAMOアカデミーの自動運転部門責任者の王剛氏が辞任し、自身のビジネスを立ち上げる予定

マシンハートは、アリババの副社長であり、DAMOアカデミーの自動運転研究所の所長である王剛氏が最近辞...

中国のAI臨床診断がネイチャー誌に初掲載:71人の専門家が人間の医師を上回る精度の報告書を寄稿

[[257228]] 【新知能紹介】中国内外の科学者71人が共同で、検査結果を検知し、医師と同じくら...

新しい検索エンジンのスキル: アリババの新しい研究では、2D 画像を使用して 3D モデルを検索します

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

AIを使ってAIを攻撃する?敵対的機械学習に対する脅威と防御

人工知能 (AI) や機械学習 (ML) プロジェクトを適用する組織が増えるにつれて、これらのプロジ...

PyTorch 1.0 プレビューがリリースされました: Facebook の最新のオープンソース AI フレームワーク

Facebook は、人工知能プロジェクトで独自のオープンソース AI フレームワーク PyTorc...

香水アートとAIが出会うとき

[51CTO.com 速訳] 香水は依然として人工物とみなされており、「スーパーな鼻」を持つトップマ...

スーパー暗号解読:自動運転はこうして実現される

多くの新製品と同様に、自動運転に対する人々の態度は、過度の信頼から過少な信頼まで二極化しています。自...

...

Raft アルゴリズムの原理と CMQ への応用 (パート 2)

CMQにおけるラフトの応用初期には、rabbitmqをベースにスケーラブルなメッセージミドルウェア...

...