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

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

この記事は、公開アカウント「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 のコールドスタート電流制限アルゴリズム

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

ブログ    

推薦する

ChatGPT 1 周年、Altman が OpenAI に復帰!帰国の内幕を明かすイリヤの所在はまだ不明

ChatGPT の 1 周年に、OpenAI は公式発表を行いました: Sam Altman が O...

2021年に機械学習を始めるためのガイド

この質問は、機械学習コミュニティのソーシャル メディアでよく聞かれます。機械学習を始めるにはどうすれ...

復旦大学などがAnyGPTをリリース:画像、音楽、テキスト、音声をサポートする任意のモーダル入出力

最近、OpenAIのビデオ生成モデルSoraが人気を集めており、生成AIモデルのマルチモーダル機能が...

2030 年までに人工知能はどのようになるでしょうか?

[[378797]]画像ソース: unsplashマッキンゼー・グローバル・インスティテュートの調...

Baidu Brain の「EasyDL Classic Edition」はあなたを魅了しました。実際の業界アプリケーションを手に入れましたか?

既存のビジネスやソリューションをベースに、企業は AI 機能を導入することで、どのようにすれば効率性...

2021年に理解すべき5つのAIコンセプト

人間の知能は、生物学を模倣することで模倣されるべきでしょうか? それとも、鳥類の生物学が航空宇宙工学...

...

インスピレーションプログラミング: 最大公約数アルゴリズムの分析

2 つの正の整数が与えられたら、その最大公約数を求めます。これは、コードを書く学生なら誰でも遭遇した...

人工知能の未来を見据えて:2020年のAIの8つの主要トレンド

人工知能は、最も急速に成長し、最も予測不可能な産業の 1 つです。ディープラーニング、AI 駆動型機...

ロボット工学アプリケーションは、Metaverse テクノロジーを通じてどのように普及するのでしょうか?

[[436311]]最近、Meta CEO マーク・ザッカーバーグ氏によるメタバースの推進が大きな...

...

...

...

強力な暗号化アルゴリズムによる SQL インジェクション事例

暗号化には、情報の機密性などさまざまな利点があります。ただし、アプリケーションのセキュリティを確保す...