機械学習が難しいのはなぜでしょうか?

機械学習が難しいのはなぜでしょうか?

[[187791]]

機械学習は広く使用されており、チュートリアル、記事、オープンソース コードが至る所にあります。機械学習アルゴリズムを実際にうまく適用するには、そのアルゴリズムを少し理解するだけで十分な場合もあります。

しかし、機械学習はまだ非常に困難です。

  • 機械学習研究の進歩を推進する科学は本質的に困難であり、革新、実験、粘り強さを必要とします。
  • 既知の機械学習モデルを実際の作業に適用することも困難です。
  • 市場における機械学習エンジニアの費用も、通常のソフトウェアエンジニアよりも高額です。

機械学習の適切な実装には高度な数学的基礎は必要ないため、難しさは数学から生じるものではありません。困難は次のようなことから生じます:

1. どのような機械学習ツールを選択するか

これには、各アルゴリズムとモデルの長所と短所を徹底的に理解することが必要であり、このスキルはこれらのモデルを学習することで習得できます (コース、チュートリアル、論文など)。もちろん、このような知識を構築することの難しさは、機械学習だけでなく、コンピュータサイエンスのあらゆる分野に存在します。

2. 機械学習はデバッグが難しい

この困難は、次の 2 つの側面で現れます。

1) アルゴリズムが機能しない。

2) アルゴリズムは機能しますが、十分ではありません。

機械学習のユニークな特徴は、上記の問題の原因を見つけることが指数関数的に難しいことです。通常、機械学習アルゴリズムのデバッグには長い時間がかかります。多くのバグは少量のデータでは再現が難しく、反復の後の段階でのみ現れることがよくあります。最初の試行で成功するアルゴリズムはほとんどないため、モデルの調整に多くの時間がかかります。

デバッグが指数関数的に困難

標準的なソフトウェア エンジニアリングの用語では、ソリューションが期待どおりに機能しない場合、通常はアルゴリズムと実装の 2 つの点に問題があると考えられます。

次の単純な再帰アルゴリズムを例に挙げます。

  1. def recursion(入力):
  2. 入力endCaseの場合:
  3. 変換を返す(入力)
  4. それ以外
  5. 再帰を返す(変換(入力))

アルゴリズムが期待どおりに動作しない場合は、失敗したケースをすべて列挙できます。この例のグリッド検索を下の図に示します。

横軸はアルゴリズムの設計で問題が発生する可能性があるケースを示し、縦軸はアルゴリズムの実装で問題が発生する可能性があるケースを示します。次のデバッグ プロセスは、コンパイラ エラー、プログラム出力、直感的な理解など、バグに関して収集したシグナルを組み合わせることです。これらのシグナルと事前の知識は、上記のグラフの剪定に役立ちます。

機械学習の分野では、実際に適用可能なモデルとデータという 2 つの追加の次元が存在します。これら 2 つの次元を説明する最も単純な例は、確率的勾配降下法 (SGD) を使用してロジスティック回帰 (LR) をトレーニングすることです。

  1. アルゴリズムの正確さには、勾配降下法の更新方程式が含まれます。
  2. 実装の正確さには、機能とパラメータの更新の正しい計算が含まれます。
  3. データ内のバグには、ノイズの多い注釈、前処理のエラー、適切な機能の選択の不備、データが不十分であることなどがあります。
  4. モデルのバグは、モデルの記述能力が不十分であることに起因している可能性があります。たとえば、非線形の問題に対処するために線形分類器を選択した場合などです。

デバッグ プロセスは、2 次元グリッドから 4 次元ハイパーキューブに拡張されました (わかりやすくするために、上の図では 3 つの次元のうち 3 つだけが表示されています)。4 番目のデータ次元は、次の 3 次元シーケンスとして視覚化できます (注: 正しいソリューションにはキューブが 1 つだけあります)。

指数関数的難易度のステートメントは、2D 空間では、可能性のある間違った方法の数が であるのに対し、4D 空間では であることを意味します。したがって、利用可能な情報に基づいて何が間違っていたかを分析する直感は、機械学習の基本的なスキルです。幸いなことに、トレーニング セットとテスト セットの損失分析、アプリケーション データの実際の出力、アルゴリズムの中間出力の統計分析など、機械学習アルゴリズムに関するさらに多くの情報が利用可能です。

遅延デバッグサイクル

機械学習のデバッグを困難にする 2 番目の要因は、デバッグ サイクルが非常に長いことです。潜在的なバグ修正を実装し、実際の出力を通じてそれが成功したかどうかを判断するには、通常、数十時間、場合によっては数日かかります。機械学習の分野では、特にディープラーニング モデルの場合、トレーニング セットの実行に長い時間がかかることから、自動更新は実用的ではないことがよくあります。デバッグ サイクルが長いため、機械学習では並列モードを採用せざるを得なくなり、ソフトウェア開発者が慣れていない命令の並列処理に触れる必要が生じます。

機械学習の最終的な目標は、多くの場合、直感を構築することです。つまり、既存の情報に基づいて、何が間違っていたのか、どのように改善すればよいのかを迅速に判断できるようになります。これは、機械学習プロジェクトの実践に参加し続けるにつれて蓄積される最も重要なスキルです。つまり、デバッグ領域で疑わしい問題といくつかの情報を関連付け始めます。

オリジナルの研究には、そのような例がたくさんあります。たとえば、ニューラル ネットワークをトレーニングするときに遭遇した初期の問題は、Loss 関数に定期的に反映されていました。Loss は減少するはずでしたが、毎回高い値に戻ってしまいました。実験を繰り返した後、最終的に、これはデータセットが適切にランダム化されていなかったためであることがわかりました。これは、小さなバッチ SGD を使用する場合の問題です。

つまり、高速かつ効果的なデバッグは、現代の機械学習に不可欠なスキルです。

<<:  スマートカーのブラックテクノロジーとは何ですか?

>>:  機械学習がソーシャルメディアのプロフィールから明らかにする5つの秘密

ブログ    
ブログ    
ブログ    

推薦する

180 の大学が人工知能専攻の追加を承認されました。これらの大学への出願をお勧めしますか?

[[317457]]教育部が発表した最新の学部専攻新登録リストでは、理工系や総合大学のほか、語学や...

...

家庭では人工知能がどのように活用されているのでしょうか?

人工知能(AI)は現在、私たちの家族構造にますます統合されています。さらに、快適性、利便性、安全性、...

機械学習における数学的意義

機械学習におけるパフォーマンスを主張するために使用される指標については、ほとんど議論されていません。...

信頼できる GNN を構築するにはどうすればよいでしょうか?最新のレビューはコチラ!信頼できるグラフニューラルネットワーク: 次元、方法、傾向

序文ここ数年、ニューラルネットワークを中心とした人工知能技術は、さまざまな種類のデータを深く掘り下げ...

2019 年の Web 開発のトレンド トップ 10

[[279047]] [51CTO.com クイック翻訳] 今日、さまざまな新しいトレンドの出現に...

Keras 機能 API によるディープラーニング

[[380280]] Keras Python ライブラリを使用すると、ディープラーニング モデルを...

...

Sitechi スマートオペレーションプラットフォームがスマートシティの求心力を生み出す

デジタル トレントは、さまざまな新興テクノロジーが成熟し、新しいビジネスや新しいアプリケーションが出...

Nvidia 3090が180億パラメータの大規模モデルに単独で挑む。今度は国内オープンソースプロジェクトが大暴れ

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

...

...

AIがいかにして将来の採用担当者のスキルを生み出すか

AI が採用業務を自動化し続けるにつれて、採用担当者のスキルが変化するという共通認識が広まりつつあり...