この記事は公開アカウント「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製品化の課題にどのように対処するか
夏休みがやってきました。旅行が必要です。彼/彼女にサプライズをあげたいですか?通常、私たちの旅行は自...
従来のクライアント監視および分析シナリオでは、特定の URL に基づく統計分析方法が使用されます。た...
生成 AI は、新しい製品、ビジネス、業界、さらには新しい経済に情報を提供することができます。しかし...
SF作家の劉慈欣はかつて、自身の小説の中でこのような天気予報を描写した。小説の主人公は気象大学を卒...
翻訳者 | 崔昊レビュー | Chonglouまとめこの記事では、タスクを自ら作成し、優先順位を付け...
2022年も、疫病やサプライチェーン危機などの悪影響は続くとみられ、AIに対する消費者の信頼獲得や気...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
1. AIフレームワークの重要性AIフレームワークは、人工知能のオペレーティングシステムであり、基本...
近年、グラフ構造の強力な表現力により、機械学習の手法を用いたグラフ解析の研究が注目を集めています。グ...
急速に変化する今日の世界では、誰も待たされることを好みません。私たちはリクエストに迅速に対応してもら...
昨日、私はこのような図を見ました。AI がどのように人間に取って代わるかを示すレベル図です。写真写真...
11月8日、英国アバディーン大学の研究機関がAIがもたらす変化について詳細な調査を実施し、最新の研...
過去数年間で人工知能の利用は爆発的に増加しており、すでに多くのスタートアップ企業や大手企業が独自の ...