この記事は、WeChat パブリック アカウントで最初に公開されました: HyperAI Super Neural
内容の概要:機械学習の初心者で、将来この分野で学術研究を行いたいと考えている場合は、この「落とし穴ガイド」をぜひ読んでください。
キーワード:機械学習科学研究標準学術研究
スコットランドのヘリオットワット大学数学・コンピューターサイエンス学部のマイケル・A・ローンズ准教授は、特に2021年に論文を発表した。 「機械学習の落とし穴を避ける方法: 学術研究者のためのガイド」、これについては詳しく説明します。
論文全文を読む (V2):
この論文では、著者は学術研究の観点から開始し、彼自身の科学研究の経験と教育の経験を組み合わせ、機械学習テクノロジーの使用に関する完全なリンクを含んでいます。頻繁に出現し、特に注意が必要な 5 つ 大きな問題とそれに対応する解決策の提案。
対象者:
ML 分野の初心者であり、基本的な ML 知識しか持っていない学生または学者
親切なヒント:この記事では、論文を正常に出版できるようにモデルを厳密に評価および比較する方法など、学術コミュニティで共通の懸念事項に焦点を当てています。
次に、ML モデルのトレーニングの完全なプロセスに従い、段階的に説明します。
多くの学生は、開始するとすぐにモデルのトレーニングと評価を急いでしまい、より重要な「宿題をする」ことを無視することがよくあります。これらの「宿題」には次のようなものがあります。
* プロジェクトの目標は何ですか?
* この目標を達成するにはどのようなデータが必要ですか?
* データに制限がある場合、それを解決するにはどうすればよいですか?
* この分野の研究開発はどのように進んでおり、何が行われていますか?
これらの準備作業が十分に行われておらず、急いでモデルを実行すると、モデルが期待した結論を証明できず、科学研究成果を発表できないなど、恥ずかしい状況に陥る可能性があります。
1.1 データの理解と分析
信頼できるデータソース、科学的な収集方法、高いデータ品質は、論文の出版に大きな利益をもたらします。ここで注意が必要なのですが、広く使用されているデータセットが常に高品質であるとは限りませんが、それは簡単に入手できるためである可能性もあります。データを選択する前に、探索的なデータ分析を実行してデータの制限を排除します。
1.2 すべてのデータを見るのではなく、開始する前にテストデータを分離します
テスト セットからの情報がトレーニング プロセスに漏洩します。これが、機械学習モデルを一般化できない一般的な理由です。このため、データの探索的分析の段階では、テスト データをあまり詳細に調べず、意図的または意図せずにテスト不可能な仮定を立てないようにして、モデルの汎用性を制限してください。
親切なヒント:仮定をすることは問題ありませんが、これらの仮定はテストではなくモデルのトレーニングにのみ組み込む必要があります。
1.3 十分なデータを準備する
データが不十分であると、モデルの一般化と一般化可能性が低下する可能性があります。これは、データ セットの信号対雑音比 (SNR) に依存します。機械学習の研究分野では、一般的な問題は、データ量が不十分であることです。この場合、相互検証やデータ拡張などの手法を使用して、既存のデータの可用性を向上させることができます。
1.4 当該分野の専門家からのアドバイスを積極的に求める
この分野の専門家は豊富な科学研究の経験を持っています。これは、解決する必要がある問題、最も適切な機能セットと機械学習モデルを明確にし、研究結果のリリースを導くのに役立ちます。半分の労力で 2 倍の結果が得られます。
1.5 文献調査を実施する
学問の進歩は反復的なプロセスであり、各研究が次の研究を導く情報を提供します。過去の研究を無視すると、貴重な情報を見逃す危険があります。論文を書くときに、なぜ同じテーマを研究したのか、なぜ既存の結果に基づいて研究を始めなかったのかを説明するのに頭を悩ませるよりも、作業を始める前に文献レビューを行ったほうがよいでしょう。
1.6 モデルのデプロイメントの問題について事前に検討する
学術研究の最終目標が、現実世界に展開できる機械学習モデルを作成することである場合、導入の問題をできるだけ早く検討する必要があります。モデルの複雑さに対する環境制限の影響、時間制限の有無、ソフトウェア システムとの統合方法など。
データを正しく使用し、モデルの選択を十分に検討できるように、組織的な方法でモデルを作成することが重要です。
2.1 テスト データはモデルのトレーニング プロセスに参加できません
テスト データがモデルの構成、トレーニング、または選択に関与すると、データの信頼性と汎用性に大きな影響を及ぼします。これは、公開された機械学習モデルが現実世界のデータに適用できないことが多い一般的な理由でもあります。
❎ エラーの例 (回避に注意してください):
* データの準備中に、変数スケーリングにデータセット変数全体の平均と範囲情報を使用します (正しいアプローチは、トレーニング データ内でのみ行うことです)
* データを分割する前に特徴選択を実行します
* 同じテストデータを使用して複数のモデルの一般化可能性を評価します
* テストデータを分割する前にデータ拡張を適用します
上記の問題を回避するために、最善の方法は、プロジェクトを開始する前にデータのサブセットを分割することです。また、この独立したテスト セットは、プロジェクトの最後に単一モデルの一般性をテストする場合にのみ使用してください。
親切なヒント:データがランダムに分割されると漏洩や過剰適合が容易に発生する可能性があるため、時系列データは特別な注意を払って取り扱う必要があります。
2.2 複数の異なるモデルを試す
普遍的に適用できる機械学習モデルは存在しません。私たちの研究活動は、特定の問題に適した機械学習モデルを見つけることです。 Python、R、Julia などの最新の機械学習ライブラリコードを少し変更するだけで、複数のモデルを試して、最も効果的なモデルを見つけることができます。
親切なヒント:
* 不適切なモデルを使用しないでください。モデルを評価するには、テスト セットではなく検証セットを使用してください。
* モデルを比較する場合、モデルのハイパーパラメータを最適化して複数の評価を実行し、結果を公開するときに複数の比較を修正します。
2.3 不適切なモデルを使用しないでください
最新の機械学習ライブラリは、機械学習の実装閾値を下げるだけでなく、数値特徴を含むデータセットにカテゴリ特徴に適したモデルを適用したり、必要に応じて回帰モデルを使用したりするなど、不適切なモデルを選択することを容易にします。それを使用するには、分類モデルを使用します。モデルを選択するときは、ユースケースに適したモデルを選択するようにしてください。
2.4 ディープラーニングは最適なソリューションではない場合がある
ディープ ニューラル ネットワーク (DNN) は一部のタスクではうまく機能しますが、ただし、DNN がすべての問題に適しているというわけではありません。特に、データが限られている場合、基礎となるパターンが非常に単純である場合、またはモデルが解釈可能である必要がある場合、DNN はランダム フォレストや SVM などの一部の旧式の機械学習モデルほどパフォーマンスを発揮しない可能性があります。
2.5 モデルのハイパーパラメータの最適化
ハイパーパラメータはモデルのパフォーマンスに大きな影響を与えるため、多くの場合、特定のデータセットと一致させる必要があります。目的のないテストは、適切なハイパーパラメータを見つけるための最良の方法ではない可能性があります。ランダム検索やグリッド検索などのハイパーパラメータ最適化戦略を使用することをお勧めします。
親切なヒント:多数のハイパーパラメーターや高いトレーニング コストを持つモデルの場合、AutoML やデータ マイニング パイプラインなどのテクノロジーを使用してモデルとそのハイパーパラメーターの選択を最適化することはできません。
2.6 ハイパーパラメータの最適化と機能の選択には特別な注意が必要です
ハイパーパラメーターの最適化と特徴の選択はモデルのトレーニングの一部です。モデルのトレーニングを開始する前にデータ セット全体に対して特徴の選択を実行しないでください。これにより、テスト セットからトレーニング プロセスに情報が漏洩します。モデルのハイパーパラメータまたは機能を最適化します。モデルがトレーニングされたときとまったく同じデータを使用することが最善であり、一般的な手法はネストされた相互検証 (二重相互検証とも呼ばれます) です。
不適切なモデル評価は非常に一般的であり、学術研究の進歩を妨げます。したがって、実験でデータを使用し、モデルの真のパフォーマンスを測定し、それをレポートする方法については、慎重に考える必要があります。
3.1 適切なテスト セットを使用する
テスト セットを使用して、機械学習モデルの一般化可能性を測定し、テスト セットのデータが適切であることを確認します。テスト セットはトレーニング セットと重複すべきではなく、オブジェクトの写真データ セットなど、より広範囲の条件をカバーする必要があります。トレーニング セットとテスト セットの両方が晴れた日に屋外で収集された場合、テスト セットはより広範囲の条件をカバーする必要があります。より広範な気象条件を捉えることができないため、独立したものではありません。
3.2 データを分割する前にデータ拡張を実行しないでください
データ拡張は、データセットのバランスをとり、機械学習モデルの汎用性と堅牢性を向上させるのに役立ちます。過学習を防ぐために、データ拡張はトレーニング セットにのみ適用され、テスト セットには適用されないことに注意してください。
3.3 検証セットの使用
モデルのパフォーマンスは、別の検証セットを使用して測定されます。この検証セットには、トレーニングには直接使用されないが、トレーニングのガイドとして使用されるサンプルのセットが含まれています。検証セットのもう 1 つの利点は、早期停止が可能であることです。
3.4 モデルを複数回評価する
モデルの 1 つの評価は信頼できません。モデルの実際のパフォーマンスを過小評価または過大評価する可能性があります。これを行うには、モデルを複数回評価する必要があります。これには、ほとんどの場合、トレーニング データの異なるサブセットを使用してモデルを複数回トレーニングすることが含まれます。相互検証は、10 分割相互検証など、特に人気があり多様な方法です。
親切なヒント:複数の評価の平均と標準偏差をレポートする際、後で統計検定を使用してモデルを比較できるように、個々のスコアの記録を保持することをお勧めします。
3.5 最終的なモデル インスタンスを評価するためにいくつかのデータを保存する
モデル インスタンスの一般化可能性を信頼性の高い評価を行うための最良の方法別のテスト セットを使用するだけかもしれません。したがって、データの量が十分に大きい場合は、一部を保持し、それを使用して最終的に選択されたモデル インスタンスを公平に評価することが最善です。
3.6 不均衡なデータセットには精度を使用しない
機械学習モデルを評価するための指標は慎重に選択してください。たとえば、分類モデルで最も一般的に使用される指標は、バランスのとれたデータ セット (各カテゴリがデータ セット内の同様のサンプル数で表される) の場合です。不均衡なデータセットの場合、精度は非常に誤解を招く指標となる可能性があります。
この場合、F1 スコア、コーエンのカッパ係数 (κ)、またはマシューズの相関係数 (MCC) など、クラス サイズの不均衡の影響を受けない指標を使用するのが最善です。
モデルの比較は学術研究の基礎ですが、不公平な方法で比較が行われ、発表されると、他の研究者に偏見を与える可能性があります。それで、同じ条件下で異なるモデルを評価し、統計検定を正しく使用するようにする必要があります。
4.1 モデルの場合、数値が大きいほどパフォーマンスが高くなります。
「以前の研究では94%の精度だったが、今回のモデルは95%と精度が高いので、より良い」という記述が論文などでよく出てきます。さまざまな理由がそれを示しています数値が大きいほど優れたモデルとは限りません。モデルが同じデータセットの異なるパーティションでトレーニングまたは評価される場合、パフォーマンスの差は小さい可能性がありますが、完全に異なるデータセットが使用される場合、パフォーマンスの差は大きくなる可能性があります。同じ量のハイパーパラメータ最適化を行わないことも、モデルのパフォーマンスの違いに影響します。
したがって、2 つのモデルのパフォーマンスを科学的に比較するには、モデルは同じ程度に最適化され、複数回評価されてから、統計的にテストされて、パフォーマンスの違いが有意かどうかを判断する必要があります。
4.2 統計検定を使用したモデルの比較
2 つのモデルのパフォーマンスの違いを比較するには、統計的テストを使用することをお勧めします。大まかに言うと、機械学習モデルを比較するためのテストは次の 2 つのカテゴリに分類されます。最初のカテゴリは、類似したモデル インスタンスを比較するために使用されます。たとえば、トレーニングされた 2 つのデシジョン ツリーを比較する場合、マクネマー テストを使用できます。2 番目のカテゴリは、より一般的なモデルの比較に適しています。たとえば、決定木とニューラルネットワークのどちらが適しているかを比較する場合、マンホイットニーの U 検定が使用されます。
4.3 多重比較の修正
統計検定で 3 つ以上のモデルを比較するのはやや複雑です。複数のペアごとの検定は、テスト セットを複数回使用することに似ており、有意性が過度に楽観的に解釈される可能性があります。
この問題を解決するには、ボンフェローニ補正などの複数のテスト補正を使用することをお勧めします。
4.4 コミュニティベンチマークの結果を過信しないでください
特定の分野の問題については、多くの人が新しい機械学習モデルのパフォーマンスを評価するためにベンチマーク データ セットを選択します。これは、誰もが同じデータを使用してモデルをトレーニングおよびテストするため、比較がより直感的に行われるためです。このアプローチにはいくつかの大きな欠点があります。
まず、テスト セットへのアクセスが制限されていない場合、他のユーザーがテスト セットをトレーニング プロセスの一部として使用していないという保証はなく、結果について過度に楽観的な見方をする可能性があります。さらに、データを使用する各人がテスト セットを 1 回しか使用しない場合でも、全体としてテスト セットはコミュニティによって何度も使用されるため、モデルの過剰適合につながる可能性があります。このため、ベンチマーク データ セットの結果は慎重に解釈し、パフォーマンスの向上を合理的に評価する必要があります。
学術研究は知識に貢献する必要があります。これには、どの取り組みが成功し、どの取り組みが失敗したかを含む、研究取り組みの全体像を報告する必要があります。機械学習にはトレードオフが伴うことが多く、あるモデルがあらゆる面で別のモデルよりも優れていることはまれです。したがって、結果を報告する際にはこれを反映する必要があります。
5.1 報告は透明性が必要です
すべての研究成果を透過的に共有し、これにより、他の人が実験を繰り返すことができ、モデルを比較できるようになります。実験を明確に文書化し、クリーンなコードを記述することは、あなたと他の人にとって有益です。機械学習コミュニティは実験の再現性にますます注目しているため、ワークフローの文書化が不十分だとその後の出版物に影響を与える可能性があります。
5.2 パフォーマンスをレポートする複数の方法
モデルのパフォーマンスを評価する場合、より厳密なアプローチは、複数のデータセットを使用することです。これは、単一のデータセットに関連する欠点を克服し、モデルのパフォーマンスの包括的な全体像を把握するのに役立ちます。異なるメトリクスは異なる結果を示し、作業の透明性を高めることができるため、データ セットごとに複数のメトリクスをレポートすることをお勧めします。
5.3 データのみに基づいて一般化する
他の研究者を誤らせる可能性があるため、無効な結論を示唆しないでください。よくある間違いは、モデルのトレーニングと評価に使用されたデータによってサポートされていない一般化を公開することです。モデルが 1 つのデータ セットで良好なパフォーマンスを発揮するからといって、他のデータ セットでも良好なパフォーマンスを発揮するとは限りません。信頼できる洞察は複数のデータセットを使用することで得られますが、実験から調査および推測できる内容には常に限界があります。調査結果を誇張せず、限界を認識してください。
5.4 重大な差異を慎重に報告する
上で説明した統計テストは、モデル間の差異をテストするのに役立ちます。ただし、統計的検定は完璧ではなく、モデルの有意性を過小評価または過大評価して、偽陽性または偽陰性が発生する可能性があります。さらに、信頼しきい値の使用を放棄し、p 値を直接報告してモデルの有意性を決定することを主張する統計学者が増えています。
統計的有意性に加えて、考慮すべきもう 1 つの問題は、2 つのモデル間の違いが本当に重要かどうかです。サンプルが十分である限り、実際のパフォーマンスの違いが最小限であっても、常に大きな違いが見つかる可能性があるためです。したがって、重要性を判断する際には、コーエンの d 統計量 (より一般的)、コルモゴロフ スミルノフ (より良い効果、推奨) などを含む効果の大きさ (効果量) を測定できます。
5.5 モデルの動作原理に注意する
トレーニングされたモデルには多くの有効な情報が含まれており、ただし、多くの著者は、モデルの原理を説明せずに、モデルのパフォーマンス指標のみを報告しています。研究の目的は、他のものよりわずかに高い精度を得ることではなく、知識を要約して研究コミュニティと共有することにより、作業結果を公開する可能性を高めることです。たとえば、デシジョン ツリーなどの単純なモデルについては、モデルの視覚化を提供します。 ; ディープ ニューラル用 ネットワークなどの複雑なモデルの場合は、XAI (説明可能な人工知能) テクノロジーを使用して関連情報を抽出することを検討してください。
以上が「落とし穴回避ガイド」の完全な内容です。機械学習を初めて学ぶすべての学生をお待ちしています。誰でもこのガイドを保管し、頻繁に読み、研究の方向性を見つけ、トピックを選択し、できるだけ早く論文を出版することができます。
皆様からの朗報を楽しみにしております〜
参考リンク:[機械学習の落とし穴を避ける方法: 学術研究者向けガイド]
- 以上 -