機械学習プロジェクトに必須: エンドツーエンドの機械学習プロジェクト開発プロセスのタスクリスト

機械学習プロジェクトに必須: エンドツーエンドの機械学習プロジェクト開発プロセスのタスクリスト

この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)から転載したものです。

重要なプロジェクトを作成するときは、他の人から学んだことや仕事で気づいたことすべてを文書化します。これは私にとって必須です。プロジェクトでは処理すべきことが非常に多く(議論、準備、質問、モックアップ、微調整など)、忘れてしまいやすいからです。

タスク リストは、開発者が次のステップを完了できるようにガイドし、各タスクが正常に実行されたかどうかを確認するように促します。出発点を見つけるのが難しい場合もありますが、タスク リストは開発者が適切なソースから適切な情報 (データ) を取得し、関係を構築して関連する洞察を明らかにするのに役立ちます。

ベストプラクティスは、プロジェクトのあらゆる部分をチェックすることです。アトゥル・ガワンデは『チェックリスト宣言』の中でこう述べています。「私たちが知っていることの量と複雑さは、そのメリットを正確に、安全に、そして確実に伝える私たちの能力を上回っています。」

したがって、この簡潔で明確なプロジェクト タスク リストを確認してください。作業負荷を軽減し、成果を向上させるのに役立ちます。

機械学習プロジェクトのチェックリスト

ほぼすべての機械学習プロジェクトで実行する必要がある 8 ~ 10 のステップがあり、そのうちのいくつかは順番に交互に実行できます。

1. 問題を大まかに定義する

問題のビジネス ロジックを理解して明確にするには、タスク リストで次の情報を提供する必要があります。

  • 問題の性質 (教師あり/教師なし、分類/回帰)。
  • 開発できるソリューションの種類。
  • パフォーマンスを測定するにはどのような指標を使用すればよいでしょうか?
  • この問題に対する適切なアプローチとして機械学習は適切でしょうか?
  • 問題解決への手動アプローチ。
  • 問題に内在する仮定。

2. データソースを特定し、データを取得する

ほとんどの場合、データがあり、受信したデータをより有効に活用するために関連する質問を定義する場合は、最初のステップの前にこのステップを実行できます。

問題の定義に基づいて、データベース、データ リポジトリ、センサーなどのデータのソースを決定する必要があります。アプリケーションを本番環境にデプロイするには、受信データがシステムに流れ続けるようにデータ パイプラインを開発して、この手順を自動化する必要があります。

  • 必要なデータのソースと量をリストします。
  • スペースに問題がないか確認してください。
  • データを使用する権限があることを確認してください。
  • データを取得して、実用的な形式に変換します。
  • データの種類(テキスト、カテゴリ、数値、時系列、画像)を確認します。
  • 最終テストのためにサンプルを採取します。

[[336009]]

画像ソース: unsplash

3. データの初期調査

このステップでは、研究結果、予測、目標に影響を与えるすべてのデータ機能が検出されます。膨大なデータ ブロックがある場合は、この手順でサンプリングして、分析をより管理しやすくします。以下の手順に従ってください。

  • Jupyter Notebooks を使用すると、データを探索するための簡単で直感的なインターフェースが提供されます。
  • ターゲット変数を特定します。
  • 特徴タイプ (カテゴリ、数値、テキストなど) を識別します。
  • 特徴間の相関関係を分析します。
  • 各機能がターゲット変数に与える影響を説明しやすくするために、データの視覚化を追加します。
  • 調査結果を記録します。

4. データを準備するための探索的データ分析

次は、データ変換、クリーニング、機能選択/設計、スケーリングの機能を定義して、前のステップで得られた結果を実装します。

  • データを変換し、大量のデータの処理を自動化する関数を記述します。
  • データをクリーンアップする関数を記述します(欠損値を補完し、外れ値を処理します)。
  • 機能を選択およびエンジニアリングするための関数を記述します。冗長な機能を削除し、機能を別の形式に変換し、その他の数学的変換を実行します。
  • 特徴スケーリング — 特徴を正規化します。

[[336010]]

画像ソース: unsplash

5. ベースラインモデルを開発し、他のモデルを検討して最適なモデルを選択する

他のすべての複雑な機械学習モデルのベースラインとして機能する非常に基本的なモデルを作成します。次の手順に従ってください。

  • デフォルトのパラメータを使用して、Naive Bayes、線形回帰、サポート ベクター マシン (SVM) などの一般的に使用される機械学習モデルをトレーニングします。
  • ベースラインと他のモデルを使用して各モデルのパフォーマンスを測定し、比較します。
  • 各モデルは N 分割交差検証を使用して展開され、N 分割のパフォーマンス指標の平均と標準偏差が計算されます。
  • ターゲットに最も大きな影響を与える特性を研究します。
  • モデルが予測する際に発生するエラーの種類を分析します。
  • さまざまな方法で機能を設計します。
  • 上記の手順を数回繰り返して(試行錯誤して)、正しい機能を正しい形式で使用していることを確認します。
  • パフォーマンス測定に基づいて最適なモデルをリストします。

6. 選ばれたモデルを微調整し、アンサンブル法をチェックする

これは、最終的な解決策に近づくための重要なステップの 1 つです。主な手順は次のとおりです。

  • ハイパーパラメータの調整にはクロス検証を使用します。
  • ランダム検索やグリッド検索などの自動チューニング方法を使用して、最適なモデルに最適な構成を見つけます。
  • 投票分類器などのアンサンブル手法をテストします。
  • できるだけ多くのデータを使用してモデルをテストします。
  • 完了したら、最初のトスのテスト サンプルを使用して、モデルが過剰適合しているか、不足適合しているかを確認します。

7. コードを文書化し、解決策を伝える

コミュニケーション プロセスは多面的であるため、常に既存および潜在的なすべての利害関係者を念頭に置いてください。主な手順は次のとおりです。

  • プロジェクト全体のコードと完了方法およびプロセスを文書化します。
  • ほぼ一目瞭然の視覚化を使用して、簡潔なダッシュボードや洞察に富んだプレゼンテーションを作成します。
  • 機能の分析方法、さまざまな変換のテスト方法などについてブログ/レポートを作成し、学習内容 (失敗と効果的な手法) を文書化します。
  • 主な成果と将来の計画(ある場合)を要約します。

8. モデルとモニターを本番環境にデプロイする

プロジェクトでライブ データでのデプロイメントのテストが必要な場合は、すべてのプラットフォーム (Web、Android、iOS) で使用される Web アプリケーションまたは REST API を作成する必要があります。主な手順(プロジェクトによって異なります)は次のとおりです。

  • 最終的なトレーニング済みモデルを h5 または pickle ファイルに保存します。
  • Web サービスを使用してモデルを提供します。Flask を使用してこれらの Web サービスを開発できます。
  • 入力データ ソースを接続し、ETL パイプラインを設定します。
  • pipenv、docker/Kubernetes を使用して依存関係を管理します (拡張要件に基づく)。
  • このサービスは、AWS、Azure、または Google Cloud Platform を使用して展開できます。
  • ライブ データのパフォーマンスを監視したり、ユーザーが自分のデータでモデルを使用できるようにしたりできます。

[[336011]]

画像ソース: unsplash

単にスクリプトに従うのではなく、プロジェクトの複雑さに合わせてチェックリストをカスタマイズできます。これを基盤として、完璧な機械学習プロジェクトが間もなく完成します。

<<:  Sentinel のコールドスタート電流制限アルゴリズム

>>:  スーパー暗号解読:自動運転はこうして実現される

ブログ    
ブログ    
ブログ    

推薦する

...

販売前ショッピングガイドロボットの未来:推奨と対話システムの統合 + アプリケーションシナリオの深化

[51CTO.com からのオリジナル記事] キーワードマッチングと手動で記述された応答ルールに基づ...

...

統計ソフトウェアStataを回帰分析に使用する方法

[[377047]] [51CTO.com からのオリジナル記事] データマイニングと機械学習は、今...

...

普通のプログラマーはどうやって AI を活用するのでしょうか?

[[199775]]現在、人工知能はますます人気が高まっている分野となっています。普通のプログラマ...

RPAのグローバルリーダーであるUiPathが中国市場への本格参入を発表

UiPath は、世界的なロボティック プロセス オートメーション (RPA) 分野の主要プラットフ...

AI主導のサプライチェーンが業界の変革を加速させる方法

アラブ首長国連邦(UAE)の企業がほぼ全面的にクラウドに移行する前に、政府はすでに大規模なデジタル変...

清華大学のFaceWall Intelligenceは、大規模なモデルを16,000以上の実際のAPIに接続し、オープンソースのToolLLMはChatGPTに近い

人工知能の分野では、大規模なモデルを使用してインテリジェントエージェントを制御することは避けられない...

人工知能は私たちの仕事を奪うわけではないが、雇用方法を変えている

[[255694]]プロフェッショナルソフトウェア開発における人工知能 (AI) の急速な発展により...

...

小度が「画期的な」新製品を百度世界2020で初公開、CCTVと提携してスマートライフの全貌を披露

「小都小都」、「私はここにいます」 - 数百万の家族と小都の間の日常会話のシーンがCCTVニュースス...

時代の流れに乗り、華麗に変革を遂げる UiPath RPA が上海ノキアベルの新たな航海をサポートします。

上海ノキアベル株式会社(以下、「ノキアベル」)は、ノキアグループと中国保利集団の子会社である華新郵電...

...