この記事は公開アカウント「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製品化の課題にどのように対処するか
[[417154]] [51CTO.com クイック翻訳]あらゆる AI アプリケーションの成功は...
ビッグデータや人工知能などのテクノロジーがもたらす機会と脅威、そしてその将来に対する懸念については、...
一気に15言語で22の1位を獲得!いや、もっとすごいのは、彼は40以上の言語を読んで理解できるという...
[[275013]]額にお守りを貼るとAIがあなたを認識できなくなるって知っていましたか?たとえば、...
ヒューマンホライゾンズテクノロジーズ株式会社は、新エネルギー車、インテリジェントネットワーク、共同交...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
セキュリティ企業であり脆弱性報奨金プラットフォームでもあるHackerOneは10月30日、先週20...
米国計算機協会(ACM)は、2017年のチューリング賞を、チップ業界の巨匠2名、スタンフォード大学元...
AI、特に GenAI の急速な発展により、分析および IT リーダーには、データ戦略とデータ管理...
オープンソースの AI ディープラーニングを適用して、顔の表情の特徴に基づいて画像のキャプションを生...
[[408175]]ここ数年の流行語といえば、エッジ コンピューティングは 5G や AI と密接に...