ディープラーニングは錬金術のようなものです。どんな迷信的な習慣がありますか?ユーザー: ランダムシード=42 は良い結果をもたらします

ディープラーニングは錬金術のようなものです。どんな迷信的な習慣がありますか?ユーザー: ランダムシード=42 は良い結果をもたらします

[[441423]]

機械学習分野の研究者は皆、パラメータ調整という課題に直面していますが、言うほど簡単ではありません。パラメータ調整には、徹夜の論文研究や GitHub 検索が必要になることが多く、多数の実験が必要になります。これは時間がかかり、多くの計算能力を消費するだけでなく、多くのエンジニアの頭を悩ませます。

[[441424]]

次のような疑問を抱かずにはいられない人もいるでしょう。「パラメータ調整は形而上学なのでしょうか?モデルは明らかに適切に調整されているのに、なぜ効果はいつも私の想像とは多少異なるのでしょうか?」

最近、reddit の投稿がネットユーザーの間で「機械学習のパラメータ調整の分野には、どのような迷信的な見解や慣習があるのか​​」という白熱した議論を巻き起こしました。

元の投稿アドレス:

https://www.reddit.com/r/MachineLearning/comments/rkewa3/d_what_are_your_machine_learning_superstitions/?sort=confidence

パラメータ調整の「秘密」について

機械学習では、ハイパーパラメータの調整は必須のスキルです。トレーニングプロセス中に損失や精度などの監視指標を観察することで、モデルの現在のトレーニング状態を判断できます。ハイパーパラメータをタイムリーに調整してモデルをより科学的にトレーニングすると、リソースの使用率が向上します。

誰もが自分の実際の経験に基づいてモデルのパラメータを調整するでしょう。最終的に、ほとんどの研究者が到達する経験は次のようになります。

  • ランダムシード = 0 では悪い結果になる
  • ランダムシード = 42 で良い結果が得られます
  • k-Meansにおける偶数値k = 洞察力のあるセグメンテーション

この経験の要約を、ML のいわゆる「迷信的な実践」と見なす人もいますが、実際にはそうではなく、ほとんどすべての学者がこれを行っています。

しかし、一部のネットユーザーはこの経験の要約に懐疑的です。ネットユーザーの@SlashSeroは、このような状況が非常に有名な科学出版物でさえ発生していること、特にクロスバリデーションが実行不可能であるか、他のパラメータ選択の影響を受けやすいためハイパーパラメータ最適化(HPO)が実行不可能な機械学習アプリケーションで発生していることを残念に思っています。 NeurIPS の論文のどれだけが、非常に透明なコード ベースと、簡単に再現可能なクロス検証研究を備えており、その研究によって昨年より 0.5 ~ 1% パフォーマンスが向上したことを証明しているかを見てください。

さらに、多くの場合、研究者への信頼が原因で、新しいディープラーニング モデルは実際には従来のモデルよりも大幅に優れたパフォーマンスを発揮しません。コミュニティの現状として、モデルが実際に示すパフォーマンスを実現し、再現性と透明性を確保するために多くの時間を費やす必要があるが、これは報われない仕事であるということを認識する必要があります。コンピューティング リソースが消費されるだけでなく、急速に発展している分野で論文を発表したり認知されたりする機会を失うことにもなりかねません。

モデルの最高のパフォーマンスを実現するために、ネットユーザーは錬金術における自身の経験を共有しました。一部のネットユーザーは、ランダムシードは10の倍数、できれば1000でなければならないと考えています(ただし、この答えは他の人によって反論されました)。

ランダムシード設定に加えて、一部の研究者は独自の科学的研究のヒントをいくつか共有しました。

モデルのトレーニング プロセスはほぼブラック ボックスです。プロセス中にプログラム エラーが発生した場合、検出が困難です。一部のネットユーザーは、いつでもどこでも「印刷」することを良い習慣だと提案しています。プログラムを初めて実行するときは、可能な限りすべてを印刷してください。「印刷」により、プログラムがどのステップにあるか、無限ループに陥っているかどうかがわかります... 実際、ほとんどのプログラマーはこれを行います。

「印刷」に加えて、ログ記録も非常に必要だと言う人もいます。実験室で科学研究を行う場合、プログラムを実行するのに数日かかることもありますが、長時間電源を入れたままにしていた実験室で突然停電したり、サーバーがクラッシュしたりするなど、常に問題が発生することがあります。そのため、いつでもどこでもログを保存することも、すべてのプログラマーにとって必須です。ログ記録を確認することで、プログラムがどこで実行されているかを確認し、モデルのパフォーマンスを大まかに推定し、エラーをチェックすることができます。

一部のネットユーザーも自身の脱落体験を共有し、脱落率が20%を超えるとモデルの回復は困難になると考えている。しかし、これはあくまでもこのネットユーザーの経験です。90%ドロップアウトを使用したところ、モデルのパフォーマンスが最高だったという人もいます。

さらに、一部のネットユーザーは、バッチサイズは 2 の累乗であるべきだと結論付けました。

上記はネットユーザーによってまとめられた ML 錬金術のヒントです。

形而上学の論文は再現が難しい

パラメータ調整は有用だが、ネットユーザーの@ostrich-scalpは「ほとんどの論文の結果はナンセンスだ。キャリアをかけてこれらの研究を実装し、実稼働で使用できる適切なモデルを作成できると期待するのは大きな間違いだ」と厳しく反論した。

上記の @SlashSero は続けて、「ACM、IEEE、IAAA、NeurIPS で、著者への信頼だけで出版されている論文がどれだけあるかは驚くべきことです。今では、すべての有名なジャーナルやカンファレンスが著者にオープンソース化とコードの再現を求めていると思われるかもしれませんが、これは例外です。」

明らかに、機械学習はテクノロジーです。ニューラル ネットワークのブラック ボックスの性質により解釈可能性は制限されますが、私たちが直面している問題には高いレベルで経験的に対処できます。データの読み込み、フレームワークの構築、システムの稼働、メトリックの設定、パラメータの調整とエラーの分析、特徴エンジニアリングの実行、結果の視覚化などを行う必要があります。最終的に、数回の反復の後、推論の精度は向上しなくなります。

では、なぜさまざまな形而上学的現象が現れ続け、私たちの魂を苦しめるのでしょうか? 私たちはこの主題について十分に理解していないようです。

しかし、NIPS 2017 カンファレンスのチューリング賞受賞者である Judea Pearl 氏の基調講演の最後のページを思い出してください。

データ サイエンスは、データの合理的な解釈を促進する場合にのみ科学と呼ぶことができます。

しかし、心配しないでください。ディープラーニングのパラメータ調整には常にいくつかのヒントがあり、大まかに次のようにまとめることができます。これらは迷信的な慣習ではなく、参考のみを目的としています。

  • 適切な学習率を見つける。非常に重要なパラメータとして、学習率の最も適切な値は、さまざまなスケール、さまざまなバッチ サイズ、さまざまな最適化方法、さまざまなデータ セットに対して不確実です。私たちにできる唯一のことは、トレーニング中に現在の状態に最も適した学習率を探し続けることです。
  • 重みの初期化。他のトリックに比べると、あまり頻繁には使用されません。事前トレーニング済みモデルのないフィールドのみが重み自体を初期化するか、モデル内のニューラル ネットワークの最後のいくつかの完全接続層の重みを初期化します。一般的な重み初期化アルゴリズムは「kaiming_normal」または「xavier_normal」です。
  • データセット処理、主にデータのスクリーニングとデータの強化。
  • マルチモデル融合は、論文の結果を改善するための究極の武器です。ディープラーニングでは、異なる初期化方法で同じパラメータを使用する、クロス検証を通じてさまざまなパラメータの最適なグループを選択する、RNN や従来のモデルなどの異なるモデルを線形融合するなど、一般的にこれを実現する方法はいくつかあります。
  • コサインアニーリングとウォームリスタートによる確率的勾配降下法。コサインアニーリングとは、学習率がコサイン関数のようにゆっくり減少することを意味し、ホットリスタートとは、学習プロセス中に学習率がゆっくり減少し、その後突然回復(再起動)し、その後ゆっくりと減少し続けることを意味します。
  • 小さなデータセットをオーバーフィットしてみます。正規化/ドロップアウト/データ拡張をオフにし、トレーニング セットのごく一部を使用して、ニューラル ネットワークを数エポックトレーニングします。損失ゼロを達成できることを確認してください。そうでない場合は、何か問題がある可能性があります。

パラメータを調整する方法は人それぞれですので、自分に合ったものを選択してください。

最後にお聞きしたいのですが、錬金術におけるあなた独自の秘密は何ですか?

参考リンク:

  • https://www.jiqizhixin.com/articles/2020-10-21-3
  • https://picture.iczhiku.com/weixin/message1609136710592.html

[この記事は51CTOコラム「Machine Heart」、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です]

この著者の他の記事を読むにはここをクリックしてください

<<:  インドのチームが人間のように考えることができる自動運転アルゴリズムを開発

>>:  人工知能は「絶滅危惧」言語の保護に大きな役割を果たすかもしれません!

ブログ    
ブログ    
ブログ    

推薦する

...

人工知能の急速な発展により、小売業界は第5の変革期を迎えている。

[[252330]]人工知能の急速な発展は、新しい小売業者に力を与え、小売業界の「人、商品、場所」...

交通分野における人工知能、ビッグデータ、その他の技術の応用に関する簡単な議論

人工知能、ビッグデータ、モノのインターネット、クラウドコンピューティングなどの技術の台頭と発展に伴い...

Recast.AIでチャットボットを作成する

[[355279]] 2018 年 2 月の Gartner レポートによると、「2020 年までに...

初心者向けのオープンソース機械学習フレームワーク、Scikit-learnについて

Python 言語に精通している研究者は、オープンソースの Python ベースの科学計算ツールキッ...

大規模なマルチモーダルモデルは、学習しすぎると能力が低下しますか?新しい研究:教育省+の一般専門家が紛争を解決

微調整により、一般的な大規模モデルを特定の業界のアプリケーションにより適したものにすることができます...

...

人工知能は産業の発展を促進し、産業構造のアップグレードを加速する

トップレベルの設計を継続的に改善し、コンピュータービジョン、音声認識、機械学習、ナレッジグラフなどの...

アルトマン:解雇されて戻ってくるのは辛かったが、OpenAIにとっては良いことだ

1月8日、OpenAIのCEOサム・アルトマン氏は、タイム誌編集長とのインタビューで、昨年末に同社と...

...

この段階で注力すべき人工知能の6つの分野

現段階では、人工知能の一般的に受け入れられている定義については多くの議論があります。人工知能を「認知...

産業用IoTにおける機械学習の応用

産業用IoTにおける機械学習の応用産業用 IoT (IIoT) に機械学習を適用すると、企業の予測分...

AIは人間に取って代わるでしょうか?シリコンバレーの大物が人工知能の将来の発展の傾向を解説

[[378409]]人工知能は間違いなく将来のトレンドであり、AIは将来の経済の発展を推進するでしょ...

C言語の非数値計算でよく使われる5つの古典的なソートアルゴリズム

概要: ソートとは、一連の「順序付けられていない」レコードシーケンスを「順序付けられた」レコードシー...

ディープラーニング(CNN RNN Attention)を使用して大規模なテキスト分類問題を解決する - 概要と実践

[[188373]]著者は最近、深層学習を応用してタオバオ商品のカテゴリー予測問題を解決するプロジェ...