機械学習の問題に取り組む方法

公開: 2022-03-11

コンピューターの主なタスクの1つは、人間のタスクを自動化することです。 これらのタスクの一部は、「XをAからBに移動する」など、単純で反復的なものです。 コンピュータが形式化するのがはるかに難しい問題について決定を下さなければならないとき、それははるかに興味深いものになります。 ここから、基本的な機械学習の問題に直面し始めます。

機械学習の問題はイラストをカバーしています

歴史的に、そのようなアルゴリズムは、その分野についての深い知識を持ち、主にルールに基づいていた科学者または専門家によって構築されました。 計算能力の爆発的増加と大規模で多様なデータセットの可用性により、焦点はより計算的なアプローチにシフトしました。

最近最も普及している機械学習の概念はニューラルネットワークに関係しており、私の経験では、ニューラルネットワークはすべての推論問題に対するある種の奇跡の武器であるという印象を多くの人にもたらしました。 実際、これは真実からはほど遠いです。 統計家の目には、それらは関連する長所と短所を備えた1つのクラスの推論アプローチを形成し、ニューラルネットワークが最良の解決策になるかどうかは問題に完全に依存します。

多くの場合、より良いアプローチがあります。

この記事では、機械学習の問題を攻撃するための構造の概要を説明します。 特定の機械学習モデルについて詳しく説明する余地はありませんが、この記事に関心が集まった場合は、後続の記事でいくつかの興味深い機械学習の問題に対する詳細な解決策を提供できます。

ただし、最初に、機械学習の問題に直面したときに「ニューラルネットワーク」を自動的に考えるよりも慎重にすべき理由を示すために少し努力しましょう。

ニューラルネットワークの長所と短所

ニューラルネットワークでは、推論は加重された「ネットワーク」を介して行われます。 重みは、いわゆる「学習」プロセス中に調整され、その後、入力に結果を割り当てるために適用されます。

これは単純に聞こえるかもしれませんが、すべての重みはキャリブレーションされたネットワークのパラメーターであり、通常、人間が理解するにはパラメーターが多すぎることを意味します。

ニューラルネットワーク理論の入出力図

したがって、ニューラルネットワークを、特定のモデルを間に挟まずに、入力を出力に接続するある種の推論ブラックボックスと見なすのもよいでしょう。

このアプローチの長所と短所を詳しく見てみましょう。

ニューラルネットワークの利点

  • 入力はデータそのものです。 特徴エンジニアリングがほとんどまたはまったくない場合でも、使用可能な結果。
  • 訓練可能なスキル。 特徴エンジニアリングがないため、直感やドメインの専門知識などの開発が難しいスキルは必要ありません。 一般的な推論には、標準のツールを使用できます。
  • データの量が増えると、精度が向上します。 表示される入力が多いほど、ニューラルネットワークのパフォーマンスは向上します。
  • モデルに関する完全な情報がない場合、従来のモデルよりもパフォーマンスが優れている可能性があります。 世論を考えてみてください。
  • オープンエンドの推論は、未知のパターンを発見する可能性があります。 モデルを使用して考慮を外すと、対応する現象は検出されません。 ニューラルネットワークはそうかもしれません。

成功したニューラルネットワークの例: GoogleのAIは、蓄積された望遠鏡データを分析することにより、NASAが発見しなかった遠方の星を周回する惑星を発見しました。

ニューラルネットワークのデメリット

  • それらは多くの(注釈付き!)データを必要とします。 まず、この量のデータが常に利用できるとは限りません。 収束が遅い。 ソリッドモデル(たとえば、物理学)は、いくつかの観察の後に較正できます。ニューラルネットワークを使用すると、これは問題外です。 注釈は、それ自体が絶対確実ではないことは言うまでもなく、多くの作業です。
  • データの内部構造に関する情報はありません。 推論が何に基づいているかに興味がありますか? ここでは運がない。 データを手動で調整すると、飛躍的に推論が改善される場合がありますが、ニューラルネットワークはそれを支援できません。
  • 過剰適合の問題。 ネットワークには、データが正当化するよりも多くのパラメーターがあることがよくあります。これは、最適ではない推論につながります。
  • パフォーマンスは情報に依存します。 問題に関する完全な情報がある場合、ソリッドモデルはニューラルネットワークよりもパフォーマンスが優れている傾向があります。
  • サンプリングの問題があります。 サンプリングは常に微妙な問題ですが、モデルを使用すると、問題のあるサンプリングの概念をすばやく開発できます。 ニューラルネットワークはデータからのみ学習するため、偏ったデータを取得すると、偏った結論になります。

失敗の例:個人的な関係から、航空写真で軍用車両の検出に取り組んでいる大企業(名前は付けられません)について教えてもらいました。 彼らはそのような車とそうでない他の車があったところのイメージを持っていました。 前者の画像のほとんどは雨の日に撮影されたもので、後者は晴天時に撮影されたものです。 その結果、システムは光と影を区別することを学びました。

要約すると、ニューラルネットワークは長所と短所を持つ推論方法の1つのクラスを形成します。

それらの人気が一般の人々の目には他のすべての統計手法よりも優れているという事実は、他の何よりもコーポレートガバナンスに関係している可能性があります。

標準ツールと標準化されたニューラルネットワーク手法を使用するように人々をトレーニングすることは、さまざまな分野のドメインの専門家やアーティストを探すよりもはるかに予測可能なプロセスです。 ただし、これは、単純で明確な問題にニューラルネットワークを使用することが、実際には大砲でスズメを撃つだけであるという事実を変えるものではありません。大量のデータが必要であり、多くの注釈作業が必要であり、その見返りとしてソリッドモデルと比較すると、パフォーマンスがわずかに低下します。 最高のパッケージではありません。

それでも、彼らが統計的知識を「民主化」するという事実には大きな力があります。 ニューラルネットワークベースの推論ソリューションが単なるプログラミングツールと見なされると、複雑なアルゴリズムに慣れていない人でも役立つ可能性があります。 したがって、必然的に、洗練されたモデルでしか操作できなかった場合には存在しなかった多くのものが構築されます。

機械学習の問題への取り組み

機械学習の問題に取り組む場合、次の手順を実行する必要があります。

  • 合格基準の設定
  • データをクリーンアップし、情報コンテンツを最大化する
  • 最適な推論アプローチの選択
  • トレーニング、テスト、繰り返し

これらの項目を詳しく見てみましょう。

機械学習問題のさまざまなステップ

合格基準の設定

可能な限り、できるだけ早く目標の精度を把握する必要があります。 これがあなたが目指す目標になります。

データのクレンジングとその情報コンテンツの最大化

これは最も重要なステップです。 まず第一に、データにエラーがない(またはほとんどない)必要があります。 これらを浄化することは、重要な最初のステップです。 欠落している値を置き換え、明らかに偽のパターンを特定し、重複やその他の気付く可能性のある異常を排除します。

情報に関しては、データが(線形の意味で)非常に有益である場合、実質的にどの推論方法でも良い結果が得られます。 必要な情報がそこにない場合、結果はノイズになります。 情報を最大化するということは、主にデータ内の有用な非線形関係を見つけて線形化することを意味します。 それが入力を大幅に改善するなら、素晴らしい。 そうでない場合は、さらに変数を追加する必要があります。 これらすべてが成果を上げない場合、ターゲットの精度が低下する可能性があります。

運が良ければ、便利な単一の変数があります。 たとえば、学習対象の変数に対してそれらをプロットし、プロットが関数のようであることがわかった場合(つまり、入力の狭い範囲が出力の狭い範囲に対応する)、有用な変数を特定できます。 次に、この変数を線形化できます。たとえば、放物線としてプロットする場合は、いくつかの値を減算して平方根を取ります。

ノイズの多い変数(入力の狭い範囲は出力の広い範囲に対応します)の場合、他の変数と組み合わせてみることができます。

精度を把握するには、変数ごとに条件付きクラスの確率を測定するか(分類問題の場合)、線形回帰などの非常に単純な形式の回帰を適用する(予測問題の場合)ことができます。 入力の情報内容が改善されると、推論も改善されます。データの準備ができていないときにモデルを調整するこの段階で、あまり多くの時間を無駄にしたくないだけです。 したがって、テストは可能な限り単純にしてください。

最適な推論アプローチの選択

データが適切な形になったら、推論方法を使用できます(必要に応じて、データは後で洗練される可能性があります)。

モデルを使用する必要がありますか? さて、あなたがそのタスクのための良いモデルを構築できると信じる十分な理由があるなら、あなたはおそらくそうすべきです。 そうは思わないが、適切な注釈が付いた十分なデータがある場合は、ニューラルネットワークを使用してハンズフリーにすることができます。 ただし、実際の機械学習アプリケーションでは、そのための十分なデータがないことがよくあります。

プレーの正確さ対カバーはしばしば途方もなく報われる。 ハイブリッドアプローチは通常、完全に問題ありません。 単純なモデルを使用して、データの80%でほぼ100%の精度を得ることができるようなデータであると仮定しますか? これは、実証可能な結果を​​すばやく示すことができることを意味し、システムが80%の友好的な領域で動作していることを識別できれば、基本的に問題のほとんどをカバーしています。 あなたのクライアントはまだ完全に満足していないかもしれませんが、これはあなたに彼らの信頼をすぐに得るでしょう。 そして、残りのデータに対して同様のことを行うことを妨げるものは何もありません。妥当な努力で、たとえば、データの92%を97%の精度でカバーできるようになりました。 確かに、残りのデータでは、それはコイントスですが、あなたはすでに何か有用なものを生み出しています。

ほとんどの実用的なアプリケーションでは、これは非常に便利です。 たとえば、あなたは融資ビジネスに携わっており、誰に融資を行うかを決定したいと考えています。知っているのは、クライアントの70%でアルゴリズムが非常に正確であるということだけです。 すばらしい—確かに、他の30%の応募者はより多くの処理を必要としますが、70%は完全に自動化できます。 または:コールセンターのオペレーターの作業を自動化しようとしている場合、最も単純なタスクでのみ優れた(迅速で汚い)仕事をすることができますが、これらのタスクは通話の50%をカバーしますか? 素晴らしい、コールセンターは、通話の50%を確実に自動化できれば、コストを節約できます。

要約すると、データが十分に有益でない場合、または問題が複雑すぎて全体を処理できない場合は、枠にとらわれずに考えてください。 より良いアイデアが得られるまで、有用で解決しやすいサブ問題を特定します。

システムの準備ができたら、満足のいく結果が得られるまで、システムを学習、テスト、ループします。

トレーニング、テスト、繰り返し

前の手順の後、関心はほとんど残っていません。 データがあり、機械学習方法があるので、学習によってパラメーターを抽出し、テストセットで推論をテストします。 文献によると、記録の70%はトレーニングに使用し、30%はテストに使用する必要があります。

結果に満足している場合は、タスクは終了です。 しかし、おそらく、あなたは手順の間にいくつかの新しいアイデアを開発しました、そしてこれらはあなたが正確さを向上させるのを助けるかもしれません。 おそらく、より多くのデータが必要ですか? それとも、より多くのデータクレンジングですか? または別のモデル? いずれにせよ、あなたはかなり長い間忙しいでしょう。

だから、頑張って、先の仕事を楽しんでください!

関連している:
  • 機械と信頼:AIバイアスを軽減する方法
  • Stars Realigned:IMDbレーティングシステムの改善