[Deeplearning.ai]ディープラーニング:構造化されたマシン学習プロジェクト

[Deeplearning.ai]ディープラーニング:構造化されたマシン学習プロジェクト

吴恩达老师DeepLearning.ai课程笔记
【吴恩达Deeplearning.ai笔记一】直观解释逻辑回归
【吴恩达deeplearning.ai笔记二】通俗讲解神经网络上
【吴恩达deeplearning.ai笔记二】通俗讲解神经网络下
深度网络不好使?吴恩达老师带你优化神经网络(1)
【deeplearning.ai】深度学习:优化神经网络(2)

機械学習システムが構築され、いくつかの予備的な結果が得られた場合、最も満足のいく結果を得るために多くの改善が必要になることがよくあります。ニューラルネットワークの以前の最適化で述べたように、改善する方法はたくさんあります。たとえば、より多くのデータを収集するか、正規化を実行するか、さまざまな最適化アルゴリズムを使用することです。

改善の方向性を見つけ、機械学習システムをより速く、より効率的に機能させるには、機械学習システムを構築するときに一般的に使用されるいくつかの戦略を学ぶ必要があります。

1直交化


機械学習システムを構築する際の課題の1つは、試して変更できることがたくさんあることです。たとえば、トレーニングが必要なハイパーパラメータはたくさんあります。実験と変化の方向性を把握し、それぞれの調整の影響を認識することが非常に重要です。

直交化は、システム内のアルゴリズム命令またはコンポーネントが変更されたときに、副作用が生成されたり、システムの他のコンポーネントに伝播されたりしないことを保証するシステム設計属性です。

あるアルゴリズムが別のアルゴリズムから独立していることを確認しやすくなり、設計と開発の時間も短縮されます。

たとえば、車の運転を学ぶときは、主にステアリング、加速、ブレーキの3つの基本的な制御方法を学習しますが、これら3つの制御方法は互いに干渉することはなく、継続的なトレーニングを通じて習熟する必要があります。

また、ジョイスティックを1つだけ使用して車を運転する方法を学びたい場合、ジョイスティックは操作するたびに特定のコーナーと特定の速度を制御するように設計されているため、学習コストははるかに高くなります。いわゆる直交化が真実です。

監視付き学習システムを設計するときは、次の4つの仮定が満たされている必要があり、それらは直交しています。

  1. 確立されたモデルは、トレーニングセットでうまく機能します。
  2. 確立されたモデルは、開発セット(検証セット)でうまく機能します。
  3. 確立されたモデルは、テストセットで良好に機能しました。
  4. 確立されたモデルは、実際のアプリケーションでうまく機能します。

直交化後、次の場合:

  1. トレーニングセットのパフォーマンスは十分ではありません。より深いニューラルネットワークを使用するか、より優れた最適化アルゴリズムに変更してみてください。
  2. 開発セットのパフォーマンスは十分ではありません。トレーニングデータを正規化または追加してみてください。
  3. テストセットのパフォーマンスは十分ではありません。テスト検証にさらに多くの開発セットを使用してみてください。
  4. 実際のアプリケーションでは、パフォーマンスが十分ではありません。テストセットが正しく設定されていないか、コスト関数の評価が間違っている可能性があります。

さまざまな問題が発生した場合、直交化は問題をより正確に特定して解決するのに役立ちます。

2つの単一番号の評価


機械学習システムを構築する場合、単一の数値評価メトリックを設定することにより、いくつかの調整後に得られたさまざまな結果のどれがより良い効果をもたらすかをより迅速に判断できます。

分類器の場合、分類器の性能を評価するための指標は、一般に分類の精度(精度)、つまり、サンプルの総数に対する正しく分類されたサンプルの数の比率であり、単一の数の推定指標としても使用できます。たとえば、以前の猫分類器のいくつかのアルゴリズムはすべて、パフォーマンスの標準として精度を使用しています。

バイナリ分類問題で一般的に使用される評価指標は、PrecisionとRecallです。関連するクラスは正のクラスと見なされ、他のクラスは負のクラス(負)と見なされ、分類子はデータセットを予測します。正誤を問わず、4つのケースの種の数は次のように記録されます。

  • TP(True Positive)-ポジティブクラスをポジティブクラス番号として予測します
  • FN(False Negative)-正のクラスを負のクラス番号として予測する
  • FP(False Positive)-負のクラスを正のクラス番号として予測する
  • TN(True Negative)-ネガティブクラスをネガティブクラス番号として予測し
    [Deeplearning.ai]ディープラーニング:構造化されたマシン学習プロジェクト
    ます。次の状況を区別するのが難しい場合は、F1メトリック(F1スコア)を使用して2つの分類子の品質を判断する必要があります。
    [Deeplearning.ai]ディープラーニング:構造化されたマシン学習プロジェクト
    F1メトリックは次のように定義されます。

F1メトリックは、実際には精度率とリコール率の調和平均であり、単に平均値をとるよりも、平均値の改善に基づく手法です。

このように、上図のA分類器のF1メトリック値は92.4%、B分類器は91.0%と計算されます。A分類器が優れていることはこれまで知られていません。ここでは、F1測定値が単一の数値評価指標として使用されています。

3指標に会って最適化する


[Deeplearning.ai]ディープラーニング:構造化されたマシン学習プロジェクト

ただし、判断基準が単一の数値評価指標に限定されない場合もあります。たとえば、上の図の複数の猫分類子は、それぞれの認識精度と実行時間を同時に気にしたいのですが、これら2つの指標を1つの数値評価指標に組み合わせるだけでは不十分です。

このとき、1つの指標を最適化指標(Optimizing Metric)として設定し、他の指標を満足度指標(Satisficing Metric)として設定する必要があります。

上記の例のように、精度は最適化インデックスです。これは、分類子をできるだけ正確に分類する必要があり、実行時間が満足のいくインデックスであるためです。分類子の実行時間を特定の値以下にする場合、次に、選択する必要のある分類子は、トレードオフを行うために、この値の精度が最も高いものでなければなりません。

これらの基準を使用してモデルを評価することに加えて、必要に応じていくつかの評価指標を調整し、トレーニングデータを変更することも学ぶ必要があります。

たとえば、2つの猫分類子AとBの認識エラーはそれぞれ3%と5%ですが、何らかの理由で、A認識機能はポルノ画像を猫と誤認し、ユーザーに不快感を与えますが、Bにはこれがありませんこの場合、認識エラーが大きいBの方が分類に適しています。次の式を使用して、誤認識率を計算できます。
[Deeplearning.ai]ディープラーニング:構造化されたマシン学習プロジェクト

x(i)がポルノ写真の場合はω(i)を設定することもできます。ω(i)は10、それ以外の場合は1で、ポルノ写真と他の誤認識された写真を区別し
[Deeplearning.ai]ディープラーニング:構造化されたマシン学習プロジェクト
ます。したがって、実際の状況に応じて正しくする必要があります。評価指標が最適であることを確認するために、評価指標を決定します。

4データ処理


機械学習システムを構築する場合、データセットの処理方法は、構築プロセス全体の進行に影響します。ご存知のように、収集された既存のデータは、一般的にトレーニングセット、開発セット、テストセットに分けられ、開発セットは相互検証セットとも呼ばれます。

機械学習システムを構築する場合、さまざまな方法を使用してトレーニングセットでさまざまなモデルをトレーニングし、開発セットを使用してモデルの品質を評価し、テストセットを使用して特定のモデルが十分に優れていることを確認します。

最初に注意することは、開発セットとテストセットのソースは同じであり、すべてのデータからランダムに選択する必要があることです。選択した開発セットとテストセットは、機械学習システムが将来直面する実際のデータと可能な限り一致している必要があります。この方法でのみ、私たちは可能な限り目標から逸脱することはできません。

次に、各データセットのサイズの分割に注意を払う必要があります。初期の機械学習の時代では、所有しているすべてのデータセットについて、通常、それらの70%をトレーニングセットとして使用し、残りの30%をテストセットとして使用します。または、開発セットに参加する場合は、60%をトレーニングセットとして使用します。開発セットとテストセットは20%。

得られたデータが比較的小さい場合、この分割は合理的です。しかし、現在の機械学習の時代では、取得されるデータの量は一般に数万にのぼります。現時点では、従来のデータ分割方法では分割できません。

100万のデータサンプルが取得された場合、データの98%がトレーニングセットとして使用され、1%または10,000のデータが開発セットとして使用され、データの1%がテストセットとして十分です。

したがって、データは、伝統に厳密に従うのではなく、実際の状況に応じて分割する必要があります。

テストセットのサイズは、システム全体のパフォーマンスの信頼性を向上させるために十分に設定する必要があり、開発セットのサイズは、いくつかの異なるモデルを評価するために十分に大きく設定する必要があります。

5人間のパフォーマンスを比較する


今日、機械学習システムの設計と構築は以前よりも簡単で効率的です。一部の機械学習アルゴリズムは、Google DeepMindによって開発されたAlphaGoなど、多くの分野で人間と競合できます。

ただし、多くのタスクは私たち人間にとってほぼ完全に完了することができ、機械学習システムも人間のパフォーマンスに到達するか、それを超えようとしています。
[Deeplearning.ai]ディープラーニング:構造化されたマシン学習プロジェクト

上の図は、時間の経過に伴う機械学習と人間のパフォーマンスレベルの変化を示しています。一般に、機械学習が人間のパフォーマンスレベルを超えると、進行が遅くなります。重要な理由の1つは、人間のいくつかの自然な知覚の問題のパフォーマンスレベルは、ベイズエラー(ベイズエラー)に近いです。

ベイジアンエラーは、可能な限り最良のエラーとして定義されます。つまり、xから精度yへのマッピング関数はこの値を超えることはできません。

確立された機械学習モデルのパフォーマンスが人間のパフォーマンスのレベルに達していない場合、さまざまな方法で改善できます。たとえば、手動でラベル付けされたデータをトレーニングに使用したり、手動のエラー分析を通じて人を正しく識別できる理由を理解したり、分散分析やバイアス分析を実行したりします。

バイアスと分散の概念は、ニューラルネットワークの最適化に関係しています。何かに対する人間のパフォーマンスレベルと比較することで、機械学習モデルがこれに対してどれだけうまく機能しているかを明確に示し、判断を下すことができます。偏差を減らすか、分散を後で減らす必要があります。

[Deeplearning.ai]ディープラーニング:構造化されたマシン学習プロジェクト

トレーニングセットのエラーと人間のパフォーマンスレベルのエラーの違いは、回避可能なバイアス(回避可能なバイアス)と呼ばれます。

たとえば、上の図の2つのシナリオで、人的エラー率を機械学習モデルのエラー率と比較して、Aシナリオでは、学習アルゴリズムのエラー率と人間のエラー率が比較的大きいことを確認します。この場合のフォローアップ作業は、偏差を減らすために、前に紹介した方法でトレーニングセットのエラー率を減らすことです。Bシナリオでは、学習アルゴリズムと人間のパフォーマンスは同等であり、回避可能な偏差はわずか0.5%です。フォローアップ作業は、開発セットとトレーニングセットの間の2%の差異を可能な限り減らすようにシフトする必要があります。

ヒューマンパフォーマンスレベルは、ベイジアンエラーの推定方法を提供します。特定の種類のモノの機械学習システムをトレーニングする場合、モノのヒューマンパフォーマンスレベルがベイジアンエラーとして使用され、トレーニングプロセス中のトレーニングのエラー率が回避されます。 0%を目標として直接最適化します。

したがって、特定のタスクのヒューマンエラーデータが取得されると、これらのデータをベイジアンエラーのエージェントとして使用して、学習アルゴリズムの偏差と分散を分析できます。

トレーニングセットと人間のパフォーマンスレベルの誤差の差がトレーニングセットと開発セットの差よりも大きい場合は、バイアスの低減に焦点を当てる必要があります。そうでない場合は、差異の低減に焦点を当てる必要があります。
[Deeplearning.ai]ディープラーニング:構造化されたマシン学習プロジェクト

上の図は、偏差と分散に対処するためのさまざまな方法をまとめたものです。つまり、回避可能な偏差が小さいということは、モデルのトレーニングプロセスが優れていることを意味します。許容範囲内の差異は、開発セットとテストセットでの構築モデルのパフォーマンスがトレーニングセットと同じくらい良いことを意味します。

さらに、回避可能なエラーが負の場合、つまり、機械学習モデルのパフォーマンスが人間のパフォーマンスのレベル(ベイジアンエラーの代理)を超えている場合、モデルのパフォーマンスが極端に達したという意味ではありません。そのパフォーマンスを向上させるには、最適化のための他のいくつかの従来の方法を見つける必要があります。

現在、機械学習は、オンライン広告ビジネス、製品プロモーション、ロジスティクスと輸送時間の予測、信用評価など、多​​くの分野でこれを行っています。

注:この記事に含まれる写真と資料は、AndrewNgのDeepLearningシリーズから編集および翻訳されており、著作権は彼に帰属します。翻訳と照合のレベルは限られており、不適切な点を指摘することを歓迎します。
[Deeplearning.ai]ディープラーニング:構造化されたマシン学習プロジェクト

推奨読書:

マルコフ決定過程のマルコフ過程
[深層学習実際の戦闘]ピトーチでのRNN入力可変長シーケンスパディングの扱い方
[機械学習の基礎理論]最大事後確率推定(MAP)の理解を詳しく説明する

      欢迎关注公众号学习交流~         

[Deeplearning.ai]ディープラーニング:構造化されたマシン学習プロジェクト

おすすめ

転載: blog.51cto.com/15009309/2554226