ディープラーニングの事前トレーニングとは どのように機能しますか?


ベストアンサー

ディープラーニングの事前トレーニングは他にありません。 、特定のタスクの実行を開始する前に、マシンをトレーニングします。

例:

  1. タスクを実行するようにニューラルネットワークをトレーニングしたい場合は、画像のデータセット。重みをランダムに初期化することからトレーニングを開始します。トレーニングを開始するとすぐに、ミスの少ない(最適化された)タスクを実行するために、重みが変更または変更されます。トレーニング結果に満足したら、ネットワークの重みを節約して、トレーニングされたニューラルネットワークが次回同様のタスクを実行し、優れた最適化とより良い結果を得ることができるようにします。
  2. 次回はランダムに初期化された重みを使用してトレーニングすると、以前のネットワークから保存した重みを新しい実験の初期重み値として使用できます。この方法で重みを初期化することは、事前にトレーニングされたネットワークを使用することと呼ばれます………………………。

最初のネットワークは事前にトレーニングされたネットワークです。 2つ目は、微調整しているネットワークです。

事前トレーニングの背後にある基本的な考え方は、入力のランダムな初期化は適切です。ランダムであり、重みの値は、解決しようとしているタスク。

前のトレーニングの値は、前のトレーニングよりも優れている必要があります。値はタスクに対して適切に初期化されている必要があります。最適な値に設定することもできます。

したがって、事前トレーニングはネットワークに有利なスタートを与えます。以前にデータを見たかのように。

回答

まず、私たちは水星にいて、1週間は約58週間であると仮定します。 1日約8時間、週5日間の学習に費やすとすると、2320時間あります。これは、ディープラーニングを十分に理解して、研究エンジニアおよび初心者レベルの研究者として受け継ぐのに十分です。

まず、Goodfellow etalによるディープラーニングの本を手に入れましょう。これは、過度に衒学的ではなく、数学のいずれからも遠ざかることのない、ディープラーニングに関する非常に堅実な本です。たとえば、KL発散を逆に最適化するとどうなるか、L1とL2の損失が実際に重みにどのように影響するか(損失関数の固有ベクトルの観点から)、LSTMの背後にある直感などを説明する優れた方法があります。本の最初のセクションから始めます。その材料(YMMV)を完全に消化するのに約2週間かかります。数学の複雑さに飽きたり、行き詰まったりせずに今週を過ぎた場合は、機械学習に進む準備ができています。

この時点で、読書をやめてコーディングを開始する必要があります。 。ただし、実際に内容を理解するには、Tensorflowをダウンロードせず、基本的なもの(ロジスティック回帰、SVM、kNN、PCA、GMM)を古き良きPythonで実装することから始めます。多くの人は、基本ブロックを最初からコーディングする方法を理解せずに、高レベルのライブラリを使用することに急いでいます。そうすれば、多くのことを学ぶことができます。たとえば、PCAを適用する前にデータを標準化する必要があること、softmaxを数値的に安定させる方法、softmax関数を再利用してlog-softmaxを実装しない理由などを学びます。これらの実装を開始するには、 CS231n に移動し、最初の割り当てを完了して、SVMとGMMを実装するためにそれを構築します。これは、実装とデバッグに約4週間かかります(numpyまたはpythonの知識がなくても開始すると仮定します)。これで、基本的な機械学習アルゴリズムを最初から実装する方法がわかりました。

これで、CS231n Webサイトの優れたメモを読むことができます(モジュール1まで)。非凸関数を最適化することの複雑さを消化するためにあなた自身の甘い時間をとってください、そしてそうです、あなたが読んだすべてのものを実装してください。勢いに基づく方法から基本的なバックプロパゲーションまで、実際にメカニズムを学びたい場合は、実装が鍵となります。たとえば、バックプロパゲーションを独自に実装する場合、バックワードパスのために大量のデータを保持する必要があることに気付くでしょう。この知識は、DLエンジニアリングのある段階でメモリ不足エラーが発生した場合に非常に役立ちます。キャリア。これにはさらに4週間かかります。

10週間の非常識なDLになりました。これで、基本的な数学のスキルが身に付き、フィードフォワードネットと基本的なMLアルゴリズムを生のPythonで実装できるようになりました。おめでとうございます。これから一段上げましょう。難しくなるだけです(したがって、もっと楽しくなります)。

ディープラーニングの本を取り出して、中断したところから始めましょう。第6章、第7章、および第8章をお読みください。第6章は簡単なものであり、すでに習得しています。第7章はそれが難しくなり始めるところです-しかし、本は数学の重い概念を理解しやすいテキストに蒸留するのに優れた仕事をします。学習を補足するために、このすばらしい講義をご覧ください-ディープラーニング講義11:最大マージンの学習、転送、メモリネットワーク

これさらに4週間かかりますが、これが完了すると、CNNとRNNに卒業する準備が整います。もう一度同じ哲学に従います。cs231nからメモを読み、dat netを実装してトレーニングし、本を読んで詳細を理解します。 CNNにbackpropを実装する(バッチ正規化などのすべてのベルとホイッスルを使用する)のはそれほど簡単ではないため、このフェーズにはさらに時間がかかります。 LSTMについても同じことが言えます(その勾配のノルムを監視し、大きくなりすぎる場合はクリップし、小さくなりすぎる場合は短いシーケンスに切り捨てます)。 プロのヒント -LSTMをトレーニングするには、PennTree Bankデータセットを確認し、言語モデルをトレーニングして、約110の困惑を取得することをお勧めします。その90っぽい、おめでとう、あなたはそれを正しくやっています。 CNNをトレーニングするには、CS231nから割り当て2を実行するだけです。

Phew。 CNN / RNNをトレーニングし、本から関連資料を読む最後のフェーズでは、約6週間前に戻り、最高になるための追求はわずか38週間になりました。

最後に、時間to pip install tensorflow. 他のことは考えないでください。いいえ、私たちはpytorch(autodiffソフトウェアのコツをつかみたいと思うなら、それは本質的に動的なのであまり良くありませんが、そうでなければ素晴らしいです)やtheano(十分な大きさではありません)をしていません。または、kerasのような高レベルのライブラリ(美しいですが、すべてが簡単に見えます)。ドキュメントにアクセスして、MNISTチュートリアルを読んでください(専門家の場合は、現在のところです)。最初は、計算グラフ、セッションのアイデア、そしてPython自体の内部でも別々の「コンパイル」と「実行」があるという事実はすべて非常に奇妙になります。しかし、物事のコツをつかむと、それがいかに美しく設計されているか、そして拡張がいかに簡単であるかを理解し始めます。たとえば、独自のLSTMを作成することは、基本LSTMクラスを拡張するのと同じくらい簡単です。ウォームアップ演習のセットとして、チュートリアル( Tutorials | TensorFlow )のコードを読み、各チュートリアルを非常に注意深く実行して、各行の機能を理解してください。なぜ。 TensorFlowコードを整理する方法を学習します。 プロのヒント-トレーニング、テスト、予測のために、常に個別の抽象化を行うのが好きです。また、プレースホルダーから始まり、損失関数とその損失関数を最適化するtrain\_opの定義に至るまで、計算グラフ全体を構築する別個のbuild()関数。

恥知らずなプラグ-私は最近、機械理解のためのモデルをコーディングしました(私が本当に好きになったタスク)。モデルコードをまとめる方法については、 MurtyShikhar / Question-Answering をご覧ください。テンソルフローのスキルをテストするには、CNNコードとLSTMコードをテンソルフローに変換して、同じ(おそらくより良い)精度/複雑さを実現します。

テンソルフローの学習には、約8週間の非常識なハッキング、チュートリアルの閲覧、デムに不満を感じるtensorflowのコンパイルエラーですが、この旅がやりがいのあるものであったことを願っています。これで、自動微分の力と、文字通りあらゆる深層学習モデルを接続するための非常に優れた機能が利用できるようになりました。いくつかの研究に移る前に、テンソルフローで楽しいプロジェクトを試してみませんか?明確に定義された問題(機械翻訳/画像キャプション/理解/質問応答/視覚的質問応答/スタイル転送)に関するクールな論文をピックアップし、Tensorflowに最先端のモデルを実装します。まだGANを試さないでください、私たちはそれほどクールではありません(まだ)。プロジェクトを完了して競争力のある結果を得るには約5週間かかり、現在の研究について読むだけで約5週間かかります。

5週間はDLの幅をカバーするのに本当に短い期間であると思います研究なので、範囲を絞り込んでみませんか?生成モデル、seq2seqモデル、強化学習など、1つの問題または手法を取り上げます。強化学習については何も知らないので(学習しようとしています)、他の2つに焦点を当てます。

生成モデルについては、主と救世主によるこのすばらしいチュートリアルから始めてください。 – NIPS 2016-Generative Adversarial Networks-Ian Goodfellow 、必要に応じてゆっくりとフォローし、一時停止してグーグルします。ここでは、最初の数週間の数学のスキルが非常に役立ちます。次に、元のGAN ペーパーと、 DCGANs などのフォローアップを読むことをお勧めします。 SeqGAN、および最新で最もクールな WGAN

Seq2Seqについては、GoogleBrainの科学者によるこのすばらしい講義をご覧ください-シーケンスからシーケンスへのディープラーニング(Quoc Le、Google) OriolVinyalsによるICML2017チュートリアル- seq2seqicmlチュートリアル

終わり。

時間がかかり、 努力。 これで58週目の終わりになり、ディープラーニングについての幅広い理解と、確かな数学と工学のスキルが身に付きます。 ディープラーニングの研究にさらに深く踏み込む(しゃれを得る?)か、クールなアプリを構築する時が来ました。 その決定はあなたに任せます、あなたはDLエンジニアをスタッドします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です