この記事は公開アカウント「Reading Core Technique」(ID: AI_Discovery)から転載したものです。
以下のモデルは、画像認識コンテストで数日間にわたってトレーニングされました。これは比較的単純なモデルであり、その AUC は当初 0.9 でした。これは、AUC を 0 から 1 の間に保つというコンペティションの要件を満たしていました。それ以外は、コンペティションに対してあまり期待していませんでした。そのため、重みを評価して通常どおりモデルをトレーニングしたところ、次のような結果に驚きました。 当時の大会のリアルタイムランキングでは、1位のチームのAUC値は0.965で、私の実効AUC値は0.9968に達していました。私は受賞まであと一歩のところまで来ていました。100チーム以上を大きく引き離していたので、私にとっては信じられないことでした。この日、ディープラーニングの神様が私を啓蒙してくれたようで、重みの初期化において、最適化の超能力を持つのと同じくらい強力な、このような素晴らしい結果を達成することができました。 結果は信じられないほど良好です。モデルによって示されたデータを信じたいと思っていましたが、まだ少し疑問が残っていました。最初はデータのサブセットで、次にデータ全体で、モデルの予測を何度も評価しました。結果は良好で、検証スコアはほぼ完璧でした。 そこで私は、勝利への近道を見つけたと確信し、1位を獲得する準備ができました。興奮しながら、テストデータに対するモデルの予測をすぐに提出しました。ボーナスはあなたの指先にあります。 そしてその試合のスコアは衝撃的だった。 0.5ポイント。ランダムな予想を提出したり、コンテストで提供されたサンプルファイルを提出するだけでも、0.5 ポイントを獲得できます。私が得た魔法のようなひらめきは、単なる推測に過ぎませんでした。 結果が出た後、何が悪かったのかを突き止めようと30時間以上かけてデータを確認し、すっかり疲れ果ててしまいました。予測に問題があるはずです。ファイルが正しく転送されなかった可能性があります。 しかし、この30時間は無駄になってしまいました。結果を修正するために一生懸命努力しましたが、予測値は依然として低いままでした。 何が悪かったのでしょうか?答えは「データ侵害」です。データ侵害は単純な概念ですが、私はまさにそれに陥ってしまいました。モデルのトレーニング中、プログラミングに問題はなく、モデルはテストデータに従って正しくトレーニングされていました。問題は簡単には見つからない場所で発生しました。 簡単に言えば、データ漏洩はモデルが予期しない状況に遭遇したときに発生します。コンテストでは、複数のセッションでモデルをトレーニングしました。つまり、前回のセッションからモデルの重みをロードし、モデルをトレーニングして、パフォーマンスが最も優れた重みを保存します。計算時間の制約により、トレーニングは複数のセッションで実行されました。 ただし、各セッションでは、データをトレーニング セットと検証セットにランダムに分割するコードを含め、コード全体を再実行するため、トレーニング セットは各トレーニングで同じではありません。これを回避するには、トレーニング/検証セットを分割するシードを設定することができますが、これは私が事前に(まったく)行わなかったことです。 トレーニングデータは毎回異なりますが、モデルの重み(学習した内容)は渡されます。したがって、十分なトレーニングの後、モデルはデータセット全体に公開されます。 このようなことは何度も起こっています。機械学習モデルは本質的に不活性であり、学習をあきらめてデータを記憶するだけであり、感情のないネットワークでは非常に簡単なことです。したがって、モデルは、これまで見たことのないデータに直面すると無力になります。 モデルは以前のトレーニングですでに検証データを見ていたので、ほぼ完璧なスコア 0.9968 を取得できました。そのため、私はこれがモデル自体の能力であると誤って信じてしまいました。モデルの初期のパフォーマンスを振り返り、検証スコアがトレーニング スコアよりも高かった理由を考えてみると、これは実はかなり奇妙でまれな現象であることがわかります。 したがって、誰もがその後の練習のたびにこの重要な教訓を心に留めておく必要があります。結果が信じられないほど完璧である場合、結果に何か問題がある可能性が高いです。 (このアプローチは、データ侵害を特定する上で特に重要です。) これはデータ侵害であり、他の種類の侵害には次のようなものがあります。
物事が完璧になりすぎる前によく考えるのは良い習慣ですが、微妙な詳細にも注意を払うことも大切です。たとえば、スコアの増加は大きいかもしれませんが、必ずしも異常ではありません。その一方で、テスト データで予測を行うときにモデルのパフォーマンスが低下する可能性があります。 実際のところ、最善の方法は、データを任意の方法で分割する目的を意識して、トレーニング/検証/テスト セットに分割し、早い段階で実行することです。さらに、シードを設定することは強力な安全策となります。 よりオープンなレベルでは、データ漏洩は有益な場合があります。データ漏洩は、モデルが本来見るべきではないデータを見た場合には良いことですが、モデルが見たデータは一般化能力の向上と学習に役立ちます。 たとえば、Kaggle のランキング システム。このシステムは、パブリック リーダーボードとプライベート リーダーボードで構成されています。コンテストが終了するまで、ユーザーはすべてのトレーニング コンテンツとテスト コンテンツの一部にアクセスできます (このシステムではコンテンツの 25% にアクセスでき、公開リーダーボードでの順位を決定するために使用されます)。ただし、競技終了後は、テスト コンテンツの残りの 75% を使用してモデルを評価し、最終的なプライベート リーダーボード ランキングを決定します。 ただし、この 25% のテスト コンテンツを使用してプライベート リーダーボードのスコアを向上させることができた場合、これはデータ漏洩とみなされます。 Kaggle のコンペティションでは、残りの 25% の知識に基づいて、テスト データの 75% に対して何らかの前処理を実行することが比較的一般的です。たとえば、PCA を使用してサイズを縮小できます。一般的に、データが多いほど良くなるため、これによりモデルのパフォーマンスが向上します。 データ接続性を向上させる方法の探求を決してやめるべきではありません。原則として、複雑なイベントを純粋に悪い (または良い) と分類すべきではありません。 要約すると、データ サイエンティストはモデルにさらに多くのデータを提供するよう努める必要がありますが、用途の異なるデータを区別する必要があります。さらに、希望が打ち砕かれないように、ネガティブにプログラミングする必要があります。結局のところ、最悪の結果を予想することによってのみ、問題に冷静に対処し、成功に直面したときに歓喜することができるのです。 |
<<: アダプティブコンピューティングがAI製品化の課題にどのように対処するか
救急医療においては、「ゴールデンタイム」を捉えることが非常に重要です。たとえば、外傷患者(特に重度の...
Adobe が 2020 年 12 月 31 日をもって有名な Flash ソフトウェアのサポートを...
[51CTO.com からのオリジナル記事]活動の説明: Aiti Tribe は、コア開発者に詳...
2017年に第1回世界情報会議が開催されて以来、天津では257件のプロジェクトが実施され、1000億...
毎日地下鉄に乗るとき、トンネルを高速で走る列車の前方風景を見たことがありますか?11月13日、成都初...
人工知能(AI)の概念は何千年も前から存在しています。 AI の物語は歴史を通じて世界中に広がってい...
[[344779]] 2020年は紆余曲折と困難の年でした。このような背景から、人類にさらに貢献し、...
生成型 AI が人間と機械のコミュニケーション方法を変えるため、今年は人工知能にとって極めて重要な年...
屋内ドローンは、新しい未知の市場でどのようにその有用性を証明できるでしょうか?ドローンは無人自律航空...
この世界では、AI チャットボットを扱ったことがある人は、いつかは自分の言葉によって大人としての尊厳...
脳にAIチップを埋め込むことで、てんかん発作をいつでも予測し、制御できるようになります。これは、我が...
ロボットの知能化に向けた開発において、マルチロボット協働システムは包括的な技術統合プラットフォームで...
[[205882]]北京時間10月10日朝のニュースによると、中国の検索大手、百度はシアトル地域にオ...
1年間の開発を経て、人工知能の技術とアプリケーションは、特に通信業界で徐々に爆発的に増加しました。 ...