教科書では学べない機械学習に関する12の「民間伝承」

教科書では学べない機械学習に関する12の「民間伝承」

[[264978]]

ビッグデータダイジェスト制作

出典: towardml

編纂者:劉嘉偉、王元元、ウォーカー

機械学習アルゴリズムは、データから学習することで重要なタスクを実行する方法を理解できると考えられています。

つまり、データの量が増えるほど、これらのアルゴリズムで解決できる問題はより複雑になります。しかし、成功する機械学習アプリケーションを開発するには、教科書や入門レベルの機械学習コースでは見つけるのが難しい特定の「民間スキル」が必要です。

機械学習の研究者と実践者から学んだ教訓をまとめた、ペドロ・ドミンゴス教授による素晴らしい研究論文です。

https://homes.cs.washington.edu/~pedrod/

避けるべき落とし穴、注目すべき重要な問題、よくある質問への回答。調べる準備はできましたか?

1. 学習 = 表現 + 評価 + 最適化

機械学習が適していると思われるアプリケーションがあります。現在、機械学習の分野では、毎年選択できる機械学習アルゴリズムが多数存在し、数百の機械学習アルゴリズムがリリースされています。どれを使えばいいでしょうか?

[[264979]]

この広大な空間で迷子にならないための鍵は、すべての機械学習アルゴリズムが 3 つのコア要素で構成されていることを理解することです。

  • 表現: 入力データ、つまり学習器と分類器が使用する特徴は、コンピュータが理解できる言語で表現する必要があります。学習者が学習できる分類器のセットは、学習者の仮説空間と呼ばれます。分類器が仮説空間内にない場合、学習は行われません。

説明: 分類器と学習器とはどういう意味ですか? トレーニング データがあり、決定木などの別のプログラム (モデル) を構築するプログラムを使用してこのデータを処理するとします。学習器は入力データから決定木モデルを構築するプログラムであり、決定木モデルは分類器(入力データの各インスタンスに対して予測出力を提供できるもの)です。

  • 評価: 良い分類と悪い分類を区別するには評価関数が必要です。アルゴリズムが内部的に使用する評価関数は、分類器が最適化したい外部評価指標とは異なる場合があります(最適化の利便性のため、および後述する問題に関連しています)。
  • 最適化: まず、最適な分類器を選択できるように、分類器を検索する方法が必要です。学習者の効率性の鍵は最適化手法の選択です。通常は、市販のオプティマイザーを使用することから始めます。必要に応じて、後で独自のデザインに置き換えることができます。

次の表は、これら 3 つのコンポーネントのそれぞれの一般的な例を示しています。

2. 一般化は有用である

機械学習の基本的な目標は、トレーニング セット内の例を超えて一般化することです。なぜなら、どれだけ多くのデータを持っていても、テスト時にこれらの正確な例が再び現れる可能性は低いからです。トレーニング セットでうまくやるのは簡単です。初心者に最もよくある間違いは、トレーニング データでテストして成功したと誤解することです。選択された分類器がその後新しいデータでテストされた場合、通常はランダムな推測よりも優れたパフォーマンスは得られません。したがって、最初からいくつかのデータを設定し、それを最終的に選択した分類器をテストするためにのみ使用し、その後、データ全体に対して最終的な分類器を学習します。

もちろん、データを保持すると、トレーニングに使用できるサンプルの数は減少します。これは、クロス検証によって軽減できます。たとえば、トレーニング データをランダムに 10 個のサブセットに分割し、各サブセットを保持しながら残りのサブセットをトレーニングし、学習した各分類器を未使用の例でテストし、結果を平均して、特定のパラメーター設定がどの程度適切に機能するかを確認します。

3. データだけでは不十分

一般化が目標である場合、別の大きな結果に遭遇します。それは、データがどれだけあっても、データだけでは十分ではないということです。 100 万例にわたる 100 個の変数のブール関数 (0/1 分類) を学習するとします。つまり、クラスがわからない例が 2^100-10^6 個あることになります。手元にもっと多くの情報がなければ、ランダムに推測するよりもこれがどのように優れているのでしょうか?

どうやら困った状況のようです。幸いなことに、現実世界で学習したい特徴は、数学的に可能なすべての関数の集合から均一に抽出されるわけではありません。実際、類似の例には類似のクラスがあるといった非常に一般的な仮定が、機械学習がこれほど成功している大きな理由です。

つまり、正しい仮定を行うには、専門知識とデータに対する理解が重要です。知識を学ぶ必要性は驚くべきことではありません。機械学習は魔法ではありません。何もないところから何かを生み出すことはできません。それは、より少ないリソースでより多くの成果を得ることです。すべてのエンジニアリングと同様に、プログラミングには多くの作業が必要です。すべてをゼロから構築する必要があります。学習は農業に似ており、ほとんどの作業を自然に任せます。農家は種子と栄養素を組み合わせて作物を育てます。学習者は知識とデータを組み合わせてプログラムを最適化します。

4. 過剰適合のさまざまな側面

過剰適合の問題は機械学習における問題です。学習器がトレーニング データに対して 100% の精度を持つ分類器を出力したが、テスト データに対しては 50% の精度しか持たない場合、実際には両方に対して 75% の精度を持つ分類器を出力できたはずなのに、過剰適合していることになります。

機械学習に携わる人なら誰でも過剰適合について知っていますが、過剰適合にはさまざまな形があり、すぐにはわからないこともあります。過剰適合を理解する 1 つの方法は、一般化誤差をバイアスと分散に分解することです。

バイアスとは、学習者が同じ間違いを繰り返し学習する傾向のことです。分散とは、真の信号とは関係なく、ランダムな事柄を学習する傾向のことです。これは、以下に示すダーツ図でよりよく理解できます。

たとえば、線形学習者は、2 つのクラス間の分割が明確な超平面ではない場合に関係を正しく区別できないため、バイアスが高くなります。決定木では学習方法が柔軟なので、この問題は発生しません。しかしその一方で、それらは非常に異質になる可能性があります。同じタスクの異なるトレーニング データセットで学習された決定木は、実際には同一であるはずなのに、非常に異なることがよくあります。

さて、過剰適合にはどのように対処すればよいのでしょうか?

ここでは、クロス検証を使用できます。たとえば、クロス検証を使用して、学習する決定木の最適なサイズを選択できます。しかし、ここで別の問題があることに注意してください。これを使用してパラメータを多すぎる数選択すると、それ自体が過剰適合し始め、同じ罠に陥ってしまいます。

クロス検証に加えて、過剰適合に対処する方法は数多くあります。最善の方法は、評価関数に正規化項を追加することです。もう 1 つのオプションは、カイ 2 乗などの統計的有意性検定を実行して、複雑さをさらに追加するとクラス分布に何らかの影響があるかどうかを分析することです。ここで重要な点は、過剰適合問題を「解決」するための特定の手法が存在しないということです。たとえば、過学習(分散)を回避するには、過学習(バイアス)という逆のエラーに陥る必要があります。両方を同時に回避するには、完璧な分類器を学習する必要がありますが、常に最善の結果をもたらす手法は存在しません (ただで得られるものはありません)。

5. 高次元では直感は通用しない

過剰適合の次に、機械学習における最大の問題は次元の呪いです。この表現は、低次元では正常に動作する多くのアルゴリズムが、入力が高次元になると処理不能になることを意味します。

固定サイズのトレーニング セットは入力空間のごく一部をカバーするため (可能な組み合わせは膨大になります)、例の次元 (つまり、特徴の数) が大きくなるにつれて、正しく一般化することが指数関数的に難しくなります。しかし、これが機械学習が必要な理由であると同時に難しい理由でもあります。下の図からわかるように、1D から 3D に移行しても、異なる例を区別する作業はますます難しくなり始めているようです。高次元では、すべての例が似通って見え始めます。

ここでの一般的な問題は、三次元世界から来る私たちの直感が、高次元の世界では役に立たないということです。例えば、高次元オレンジの体積のほとんどは、内側ではなく外側にあります。

信じられないことですが、高次元の超立方体に一定数の例が均一に分布していて、その超立方体に超球を内接させることで超球を近似すると、高次元では超立方体の体積のほぼすべてが超球の外側に現れます。これは悪い知らせだ。機械学習では、ある種類の形状が別の形状で近似されることがよくあるからです。

説明メモ: すべての「誇張」に混乱している場合は、ハイパーキューブ内のハイパー球は 2D と 3D で次のようになります。

つまり、2 次元または 3 次元で分類器を構築するのは簡単ですが、高次元では何が起こっているのか理解するのが難しいことがわかります。これにより、適切な分類器を設計することが難しくなります。実際、最悪の場合、クラスに関する新しい情報が提供されないため、より多くの特徴を取得しても悪影響はないと考えるという罠に陥りがちです。しかし、現実には、次元の呪いが利点を上回る可能性があります。

要点: 次に機能の追加を検討するときは、次元が大きくなりすぎたときに発生する可能性のある問題について考えてください。

6. 特徴エンジニアリングが鍵

結局のところ、すべての機械学習プロジェクトには成功と失敗があります。それらの違いは何でしょうか? 最も重要な要素は使用される機能であることは想像に難くありません。独立した特徴が多数あり、各特徴がクラスとよく相関している場合、機械学習は簡単です。逆に、クラスが機能を使用する前に複雑な方法で機能を処理する必要がある場合、状況は難しくなります。これが機能エンジニアリングです。つまり、現在の入力機能に基づいて新しい機能を作成します。

多くの場合、生データ形式はモデリングにはほとんど使用できません。しかし、それらから学習に使用できる機能を構築することができます。実際、これは機械学習プロジェクトの中で最も労働集約的な部分です。しかし、これは最も楽しい部分の一つでもあり、直感、創造性、そして「ちょっとしたコツ」がテクノロジーと同じくらい重要になります。

初心者は、機械学習プロジェクトでのトレーニングに費やされる時間がいかに少ないかに驚くことがよくあります。ただし、データの収集、統合、クリーンアップ、前処理にかかる時間や、特徴選択の試行錯誤の量を考慮すると、この時間は比較的妥当です。

さらに、機械学習は、データセットの構築と学習例の実行という点で 1 回限りのプロセスではなく、学習例の実行、結果の分析、データまたは学習例の変更、および上記のプロセスの繰り返しを必要とする反復的なプロセスです。トレーニングは多くの場合、最も速い部分ですが、それは私たちがトレーニングに非常に長けているからです。特徴エンジニアリングはドメイン固有であるため困難ですが、学習者は主に汎用的です。もちろん、機械学習コミュニティの大きな夢の 1 つは、特徴エンジニアリングの自動化を強化することです。

7. 豊富なデータは巧妙なアルゴリズムに勝る

優れた特徴セットを構築したが、得られた分類器の精度がまだ十分ではないとします。今他に何ができるでしょうか? 主なアプローチは 2 つあります。

より優れた機械学習アルゴリズムを設計するか、より多くのデータ(より多くの例と、場合によってはより多くの生の特徴)を収集します。機械学習の研究者はアルゴリズムの改善に取り組んでいますが、実際には、成功への最速の道は、より多くのデータを取得することであることが多いです。

経験則として、大量のデータを扱う単純なアルゴリズムは、中程度の量のデータを扱うスマートなアルゴリズムよりもパフォーマンスが優れています。

コンピュータ サイエンスでは、通常、2 つの主なリソース制約は時間とメモリです。しかし、機械学習には、トレーニング データという 3 番目の制約があります。これら 3 つのうち、現在主なボトルネックとなっているのは時間です。利用可能なデータは大量にあるものの、それを処理するための時間が足りないため、データは使用されないままになっています。つまり、実際には、複雑な分類器の学習には長い時間がかかるため、より単純な分類器が優先されます。

よりスマートなアルゴリズムを使用しても、より良い結果は得られません。その理由の 1 つは、結局のところ、それらはすべて同じことを実行し、すべての学習例は基本的に、隣接する例を同じクラスにグループ化することによって機能するからです。主な違いは「隣接」の定義にあります。

データが均一に分布していない場合、複雑な学習例であっても結果を分類するための境界が大きく異なる可能性がありますが、重要な領域(トレーニング例の数が多い領域、つまりテキスト例が最も多く表示される領域)では、同じ予測が行われることになります。下の図からわかるように、複雑な曲線、直線、段階的な境界のいずれを使用しても同じ予測が得られます。

通常、最も単純な学習者が最初に試されます (例: ロジスティック回帰の前に Naive Bayes、SVM の前に Nearest Neighbors)。複雑な学習器は魅力的ですが、良い結果を得るためにより多くのノブを制御する必要があり、内部がブラックボックスのようなものであるため、使いにくいことがよくあります。

8. 1つのモデルだけでなく複数のモデルを組み合わせる

機械学習の初期段階では、複数の学習者のさまざまなバリエーションを試し、最もパフォーマンスの高い学習者を選択する努力がなされます。しかし研究者たちは、最良の単一モデルを選択するのではなく、さまざまな変形を組み合わせることでより良い結果が得られること、そしてモデラーはほんの少しの労力で大幅に改善された結果を達成できることを発見しました。現在では、次のようなモデル融合を構築することが非常に一般的になっています。

最も単純な手法はバギングと呼ばれ、同じアルゴリズムを使用しますが、元のデータの異なるサブセットでトレーニングします。 ***、平均を取るか、何らかの投票メカニズムを介してそれらを組み合わせます。

ブースティング アルゴリズムでは、学習者は順番に 1 つずつトレーニングされます。後続の各予測では、前の予測で誤って予測されたデータ ポイントにほとんどの注意が集中されます。結果に満足するまでトレーニングを続けます。

スタッキング アルゴリズムでは、異なる独立した分類器の出力が新しい分類器の入力となり、最終的な予測が行われます。

Netflix アルゴリズム コンペティションでは、世界中のチームが最高のビデオ推奨システムの構築を競います。競争が進むにつれて、学習者を他のチームと組み合わせることで最高の結果が得られ、より大きなチームに統合できることが分かりました。優勝者と次点者はどちらも 100 人以上の学習者からなるアンサンブルであり、2 つのアンサンブルを組み合わせることで結果がさらに向上します。アルゴリズムの組み合わせがさらに良くなります!

9. 理論上の保証と実際の結果は異なる

機械学習の論文には理論的な保証が満載です。これらの保証をどう扱うべきでしょうか? 帰納法は伝統的に演繹法と対比されます。演繹法では結論が真であるという保証がありますが、帰納法ではそれを言うのは困難です。ここ数十年における重要な進歩は、確率的保証を受け入れる限り、帰納的結果の正確性について保証できるという認識である。

たとえば、十分に大きなトレーニング セットが与えられれば、学習者が高い確率で一般化に成功した仮説を返すか、正しいままの仮説を見つけられないかのいずれかになることを保証できます。

もう 1 つの一般的な理論的保証は、無限のデータが与えられた場合、学習器が正しい分類子を出力することが保証されるということです。実際には、前述したバイアスと分散のトレードオフにより、無限データでは学習者 A が学習者 B よりも優れている場合、有限データでは B が A よりも優れているのが通常です。

機械学習における理論的な保証の主な役割は、実際の意思決定の基準としてではなく、アルゴリズム設計を理解するための出発点としての役割です。

10. シンプルだからといって正確とは限らない

機械学習では、オッカムの剃刀は次のようによく言われます。同じトレーニング エラーを持つ 2 つの分類器がある場合、2 つのうちより単純な方がテスト エラーが低くなる可能性が高くなります。

しかし、そうではありません。先ほど反例を見ました。ブーストされたアンサンブルの一般化エラーは、トレーニング エラーがゼロに達した後でも、分類器を追加することで改善し続けます。直感に反しますが、モデル内のパラメータの数と過剰適合の間には必ずしも関連性はありません。つまり、機械学習では、単純さ自体が利点であり、正確さを意味するわけではないため、より単純な仮説が依然として優先されるべきです。

11. 表現可能であることは学習可能であることを意味しない

関数を表現できるからといって、それが学習できるというわけではありません。たとえば、標準的な決定木学習器は、トレーニング例よりも多くの葉を持つ木を学習することはできません。

データ、時間、メモリが限られているため、標準的な学習者はすべての可能な機能の小さなサブセットしか学習できず、これらのサブセットは表現の異なる学習者ごとに異なります。したがって、ここで重要な点は、さまざまな学習者を試してみる(場合によってはそれらを組み合わせる)価値があるということです。

12. 相関関係は因果関係を意味しない

相関関係は因果関係を意味するわけではないと聞いたことがあるはずですが、相関関係は因果関係を意味すると信じる傾向が依然としてあります。

通常、予測モデルを学習する目的は、それを行動のガイドとして使用することです。スーパーマーケットでビールを買った後におむつを買うことが多いとわかったら、おむつ売り場の隣にビールを置くと売上が上がるかもしれません。しかし、実際に実験を行わない限り、これが真実かどうかはわかりません。相関関係は潜在的な因果関係を示しており、最終的な結論としてではなく、さらなる研究の方向性として使用することができます。

結論は

他の分野と同様に、機械学習には、見つけるのが難しいが成功には不可欠な「民間伝承」がたくさんあります。今日は私たちに知恵を授けてくださったドミンゴス教授に感謝します。このガイドがお役に立てば幸いです。下のコメント欄にメッセージを残して、あなたの考えを教えてください〜

関連レポート:

https://towardsml.com/2019/04/09/12-key-lessons-from-ml-researchers-and-practitioners/

[この記事は51CTOコラムBig Data Digest、WeChatパブリックアカウント「Big Data Digest(id: BigDataDigest)」からのオリジナル記事です]

この著者の他の記事を読むにはここをクリックしてください

<<:  現代の分散ストレージシステムをサポートするアルゴリズム

>>:  生成的敵対ネットワーク (GAN) の未解決の 7 つの謎

ブログ    
ブログ    

推薦する

AmapとDAMO Academyが共同で車載ARナビゲーションを導入し、従来の運転体験を覆す

Amapは本日、車載ARナビゲーションを共同で立ち上げるためにDAMOアカデミーと協力関係を結んだと...

IoT、分析、AI – デジタル化の勝利のトリオ

デジタル化が進む世界では、すべてがスピードと個々の顧客ニーズの特定と対応を中心に展開されます。サービ...

2021年第1四半期のロボット産業の新製品在庫

2021 年の最初の 3 か月間にロボット業界ではどのような新製品が登場しましたか? [[38857...

世界中の人工知能企業の数:米国 2,028 社、インド 800 社、中国はどうでしょうか?

テクノロジーは生活を変えるだけでなく、世界も変えることができます。 1760年代初頭、イギリスを中心...

人工知能は徐々に成熟しつつあります。まずルールを見つけてから法律を作るのが良いでしょう。

[[258657]]近年、人工知能(AI)は急速に発展しています。今後、AIはどうなるのでしょうか...

この記事を読んで、人工知能に携わる私は、もう

機械学習とは何ですか?答えるのに 10 秒かかります。 …分からない?あなたはまだ人工知能業界で働き...

遠隔医療市場は2020年に65%近く成長すると予測

フロスト・アンド・サリバンの新しい遠隔医療市場予測によると、COVID-19パンデミックの影響で、遠...

...

...

マイクロソフトCEOナデラ氏がグーグルを批判、AIに対する大きな懸念を表明

マイクロソフトはAIを理論から現実のものにしてきたリーダーであり、2019年のブログ投稿で多かれ少な...

Meta AIは、ImageNetの事前トレーニングを超えて、小規模データセット向けの自己教師付き事前トレーニングであるSplitMaskを提案しています。

現在、コンピューター ビジョン ニューラル ネットワークは高度にパラメータ化されています。通常、数千...

1 つの記事で TensorFlow ディープラーニングをマスターする

[[200803]] EnsorFlow ディープラーニングフレームワークGoogle はビッグデー...

...