トリックのニューラルネットワークの学習と予測

錬金術最適化のトリックを記録

参考:ニューラルネットワークを訓練スキルの多くのトリック(フル要約版)

 

右の学習率(学習率)検索

率は非常に、非常に重要な超引数である、そして、異なるサイズ、異なるバッチサイズ、さまざまな方法の最適化、データの異なるセットに直面して、最も適切な値が不確定である学習、我々は一人で体験することができません正確に決定しlrた値を、私たちにできる唯一のことは、現在の状態の最も適切な速度を探して絶えず訓練で学ぶあります。

例えば、学習の適切な速度のために図fastai lr_find()関数検索の使用は、学習率以下-損失曲線は、この時間の適切な学習率で得られます1e-2

fastaiチーフデザイナーお勧めしますシルヴァンGuggerブログ:どのようにあなたによって検索A良い学習率

学習率とのバッチサイズの関係

一般的には、バッチサイズより大きな学習率の大きい使用。

原理は、大きい非常に簡単ですbatch-size、私たちが学ぶことの収束方向時間手段confidenceが大きいほど、しっかりと私たちの進むべき道、そして小さなbatch-sizeそれははるかに厄介であるバッチと比較して、何の規則性が大きなバッチので、ありません小さな学習率がうまくいかないことを確認する必要があるような状況の二番目に小さいが、より多くの例世話をすることはできません下。

私たちは、図見ることができる损失Loss学习率Lr関係を:


 

好ましくは大きなバッチサイズのトレーニングを使用して十分な条件、後のメモリでは、適切な学習率を見つけ、あなたは収束をスピードアップすることができます。また、より大きなバッチサイズのバッチの正規化は、いくつかの小さな問題の出現避けるために:github.com/pytorch/pytを...

 

重みの初期化

他のトリックに比べて重量の初期化は、通常の使用では非常に頻繁ではありません。

ほとんどの人が使うモデルは、事前に訓練されたモデルであるため、使用のウェイトトレーニングへの権利は、大規模なデータセットの良いモデルである、もちろん、あなたが自分自身の体重を初期化する必要はありません。事前研修モデルの初期化なしの領域のみの重量を所有する、またはニューラルネットワークモデルに完全に層重量接続最後のいくつかの権利を初期化します。

一般的な重みは、アルゴリズムがある初期化kaiming_normalまたはxavier_normal

相关论文:
深い整流器掘り下げる:ImageNet分類に人間レベルのパフォーマンスを上回る
深いフィードフォワードニューラルネットワークを訓練することの難しさを理解します

 

脱落

ドロップアウトは、一時的にネットワークからドロップ特定の確率に従って、ニューラルネットワーク部、深度学習ネットワークトレーニングプロセスを指します。なお、一時的に、確率的勾配降下法のために、ランダムに廃棄し、したがってそれぞれ異なるネットワークにおけるミニバッチ訓練のため。同様の袋詰めアンサンブルドロップアウト分散を減らします。それは、ばらつきを減らすために、投票によってキャストされます。私たちは通常、全体の接続層の欠落部分は、畳み込み層で使用されていない使用しています。しかし、ドロップアウトはない脳なしで、すべての状況には適していませんDropout

Dropout、そのパラメータへのすべての層接続部、および畳み込み層のために一般的に適したので、モデルの汎化能力の言葉で結合され、大きな影響を受けていない、ドロップアウトしないでください、たくさんではありません。

 

 我々は、一般的に開始し、完全にネットワーク層に接続の使用が終了し、隠れ層は、畳み込みレイヤネットワークです。これは、ドロップアウトおよびドロップアウトの又は畳み込み層のない低い確率のより高い確率を用いて、一般場合、接続層の全体の一部です。

 

データ処理の設定

データのフィルタリング

データ拡張

画像強調技術fastaiはなぜ比較的良好です

 

例ハードハード陰性マイニング掘り

解析モデルは、正しいサンプルがターゲットを絞ったアプローチを与える予測することは困難です。

 

マルチモデル融合

ちゃったごめんなさい統合と投票方法:モデルのパフォーマンスと堅牢性大法を向上させます。

想定モデル1、モデル2、モデル3、その融合ができるようにあります:

1. MODEL1ちゃったごめんなさい+ MODEL2ちゃったごめんなさい+ MODEL3ちゃったごめんなさい==>最後のラベル

2. MODEL1ラベル、MODEL2ラベル、MODEL3ラベル==>投票==>最後のラベル

同買収MODEL3 1 ==>投票==>最後のラベルを持つ3 model1_1ちゃったごめんなさい+ ... + model1_nちゃったごめんなさい==> MODE1ラベル、ラベルMODEL2ラベル方法

ランダムシードモデルが固定されていない場合、繰り返し予測された結果が異なっていてもよい、からインスピレーションの第三の方法は、来ます。

ラベルの上記実施形態の効果データセットの数、大きさ及び他の特性に応じて特定の問題を分析するために、性能は、単に、単独で、または結合および融合の方法を投票ちゃったごめんなさい使用する異なる方法とすることができます。

 

 

レート差や転移学習を学びます

まず、次の転送学習することを、移動度は非常に一般的な深さの学習スキルで学ぶ、私たちは私たち自身のタスクを訓練するために、直接訓練の事前古典的モデルの多くを使用します。異なる領域が、しかし幅の重さを学んで、二つのタスク間のリンクがあります。

「ニューラルネットワーク(フル要約版)を訓練し、多くのスキルにトリック」

上記のチャートから、我々がするために使用するモデルの良いモデルは私たち自身のモデルの重み(訓練する権利ウエイトトレーニングでモデルB MODELAが事前トレーニングウエイトImageNet重量のかもしれ、)、そして、彼らは私たちModelBは猫を識別するために使用されたいと前の犬の訓練の重みの重み。

そして、それは問題ではないものを学んで学習し、転送速度の差?我々は適切な学習率は非常に重要な問題であるどのように選択するか、最適化の時間を作り、他のタスクの重いを指揮する権限を訓練するために使用しました。

 

一般的に、我々は、(下記参照)は、一般的に三つの部分、入力層、中間層、出力層、層の数が増えると、より抽象的な機能を学習するニューラルネットワークに分割されているニューラルネットワークを設計しました。したがって、図面は、畳み込み層が設けられている学習速度が低いと同じ、完全に接続された層は、一般に、提供されるべき学習率畳み込み層ではなく、完全に接続された層の学習を好適に向上させることができます。

「ニューラルネットワーク(フル要約版)を訓練し、多くのスキルにトリック」

これは、異なる層で意味を学習率の差は、異なる学習率、研修効果を高めることができるニューラルネットワークを設定され、具体的な説明は、接続の下を見ることができます。

「ニューラルネットワーク(フル要約版)を訓練し、多くのスキルにトリック」

図の上の例:towardsdatascience.com/transfer-le ...

確率的勾配アニーリング余弦(コサインアニーリング)およびホットリスタートの滴

コサインは、コサイン関数の曲線に似ているアニールが減少し、アニール処理の余弦は、学習率は徐々に減少コサイン関数に似ています。

ウォームリスタートは、学習の過程で、ある学習率は徐々に減少し、その後、突然リバウンド(再起動)し、その後ゆっくりと減少し続けました。

組み合わせた二人は、以下の変更チャートの学習率です:

「ニューラルネットワーク(フル要約版)を訓練し、多くのスキルにトリック」

より詳細な説明は知っているほとんど見ることができるパラメータを調整する方法を機械学習アルゴリズムを?ここでは、ニューラルネットワークの学習率設定のガイドラインで
、関連書類ウォーム再起動して確率的勾配降下:SGDR

 

私は、小さなデータセットを合わせてみました

これは古典的な小さなトリックですが、多くの人がこれをしない、あなたは試すことができます。

閉じる正則/ランダム不活性化/データ拡張は、トレーニングセットの小さな部分を使用し、ニューラルネットワークは数サイクルを訓練してみましょう。ない場合は、おそらく何が間違っていた、ゼロ損失を確認してください。

 

マルチスケールトレーニング

トレーニングは、マルチスケールされ、直接かつ効果的な方法は、異なるスケールでの入力画像データセットは、特徴画像を学習ニューラルネットワークが十分に異なる解像度であることを可能にするニューラルネットワーク畳み込みプールの特殊性から、機械を向上させることができますパフォーマンス学習。

過剰適合処理は、特定の画像データセットは、ケース内に十分ではなく、トレーニングが小型イメージを起動し、同じ訓練し、再びモデルの大きさを増大させることができる効果に使用することができる、アイデアは、紙ヨロ-V2に記載されていますに行ったことがあります:

「ニューラルネットワーク(フル要約版)を訓練し、多くのスキルにトリック」

ことを注意:マルチスケールトレーニングはすべて深い学習用途には適していない、マルチスケールのトレーニングデータは、画像サイズが調整された特別な強調方法とみなすことができます。あなたは、ビジュアルコード画像のマルチスケール詳しく見て、可能な限り最高の使用している場合は効果がありません全体的な情報のマルチスケールの画像を見て言葉のインパクトの画像情報は、そのような言葉は誤解を招くされた学習アルゴリズムの結果を指示する場合には、それはなってはなりません。


 

クロスバリデーションクロスバリデーション

ハングLiは統計的方法によると、クロスバリデーションは、多くの場合、実際のアプリケーションれるデータが不十分であるとの基本的な目的の使用は、再利用データです。通常では、トレーニングと検証セットにすべてのデータは、単純なクロスバリデーションを持っているだろう、と1倍のクロスバリデーション呼び出すことができます。クロス検証とテストセットは関係ありませんが、テスト・セットは、当社のアルゴリズムの標準を測定するために、クロスバリデーションに参加していない使用されています。

唯一のトレーニングと検証のセットのためのクロスバリデーション。

クロス検証技術Kaggleが尊重特別なゲームで、私たちはしばしば、オフ使用ランダム検証セットを選んで、クロスバリデーション、トレーニングセットを5部に分かれている(5倍)5-トレーニングセット、サイクルの残りを行い5量を計算することがより一般的である時間は、素晴らしいではありません。別の公知のleave-one-out cross validationクロスN-クロスバリデーション倍であるクロスバリデーションを残す場合は、この方法は、少量のデータ、非常に大きなはほとんど使用されないことは、計算量のためにのみ好適であり、nは容量データセットを表し方法。

アンドリュー・ウはレッスンがある使用してアプリケーションを構築するのナットとボルト深い学習をも言及されているが。

「ニューラルネットワーク(フル要約版)を訓練し、多くのスキルにトリック」

最適化アルゴリズム

これは、異なるタスクに適した理由異なる最適化アルゴリズムに立っているが、私たちのほとんどは、まだ最適化アルゴリズムのアダムとSGD + monmentumを使用しています。

 

おすすめ

転載: www.cnblogs.com/shona/p/12667950.html