機械学習プロジェクトの完全な構築プロセスとタスクリストが公開されており、収集する価値があります。

機械学習プロジェクトの完全な構築プロセスとタスクリストが公開されており、収集する価値があります。

機械学習プロジェクトの作成というと、データ、モデリング、テストなどを思い浮かべる人がほとんどですが、99% の人は具体的な事項や手順を知らないのではないでしょうか。今日は、機械学習プロジェクトで必ず実行しなければならないいくつかのことについてお話しします。

作業計画、作業進捗、タスクリストなどは、仕事をよりスムーズに進めるための補助ツールです。これらがなければ、仕事を進めることは難しくなります。機械学習でも同じことが言えます。機械学習プロジェクトはどれも、何をすべきか、いつ完了すべきかを全員に知らせるためのタスクリストから切り離すことはできません。プロジェクトでは、準備、起こりうる問題、モデルの作成、モデルの微調整など、多くのことに対処する必要があります。

[[332738]]

この記事では、機械学習プロジェクトを完了し、各タスクが正常に実行されたかどうかを確認するのに役立ついくつかの手順をリストしました。

アトゥル・ガワンデは著書『チェックリスト宣言』の中でこう述べている。

私たちが知っている知識の量と複雑さは、その恩恵を正確、安全、確実に提供するための私たち個人の能力を上回っています。

次の簡潔で明確なプロジェクト アクション リストを使用すると、作業負荷が軽減され、成果が向上します。

すべての ML プロジェクトで 8 ~ 10 のステップを実行します。これらの手順の一部は、別の順序で実行できます。

1. 問題を高レベルの観点から定義する

これは、問題のビジネス ロジックを理解し、明確にするためです。次のことがわかるはずです:

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

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

このステップでは、まずこのステップを使用して問題を定義します。

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

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

3. データの予備調査

これは、結果/予測/目標に影響を与えるすべての機能を調査するステップです。大規模なデータベースがある場合は、この手順でサンプリングして、分析をより管理しやすくします。

実行する手順:

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

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

次に、データ変換、クリーニング、機能選択/エンジニアリング、スケーリング関数を定義して、前のステップの調査結果を実装します。

  • データを変換し、受信したデータのバッチ処理プロセスを自動化する関数を記述します。
  • データをクリーンアップする関数を書く(欠損値を補完し、外れ値を処理する)
  • 関数を選択して設計するための関数を記述します。冗長な関数の削除、関数の形式変換、その他の数学的変換を行います。
  • 特徴スケーリング - 特徴を正規化します。

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

他の複雑な機械学習モデルのベースラインとして使用できる非常に基本的なモデルを作成します。主な手順は次のとおりです。

  • デフォルトのパラメータを使用して、ナイーブベイズ、線形回帰、SVM などの一般的な機械学習モデルをトレーニングします。
  • 各モデルのパフォーマンスをベースラインおよび他のすべてのモデルと比較して測定します。
  • 各モデルに対して N フォールド交差検証を実行し、N フォールドにわたるパフォーマンス メトリックの平均と標準偏差を計算しました。
  • ターゲットに最も大きな影響を与える特性を研究します。
  • エラーを予測しながらモデルのタイプを分析します。
  • 機能性を異なる方法で設計します。
  • 上記の手順を数回繰り返して(試行錯誤して)、正しい関数を正しい形式で使用していることを確認します。
  • モデルのパフォーマンスに応じて、最適なモデルを選択します。

6. 選択したモデルを微調整し、全体的なアプローチを確認する

これは最終的な解決に向けた道のりにおける重要なステップの一つとなるでしょう。 主な手順は次のとおりです。

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

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

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

  • プロジェクト全体のコードと方法およびプロセスを文書化します。
  • ダッシュボードを作成したり、わかりやすい視覚化によるプレゼンテーションを作成したりできます。
  • 機能性の分析方法、さまざまな変換のテスト方法などを文書化したブログ/レポートを作成します。学習の成功(失敗したアプローチと効果的なテクニック)を記録します
  • 主な結果と将来の応用分野(ある場合)を要約する

8. 開発環境にモニターモデルをデプロイする - モニター!

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

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

注: チェックリストはプロジェクトの複雑さに応じて調整できます。

[[332740]]

<<:  「遅れた接客」と批判されたインテリジェント接客の現状とは?

>>:  IIoTとAIは大きな課題に直面している

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

連合転移学習の最新の進歩: 計算と転送はモデルのパフォーマンスをどのように「制限」するのでしょうか?

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

AIと遊ぶ4つの簡単な方法

適切なプロンプトを作成する技術を習得することが、ChatGPT のような AI ベースのプロンプト ...

NLP タスクに最適な 6 つの Python ライブラリ

この記事では、自然言語処理タスクに最適な 6 つの Python ライブラリを紹介します。初心者でも...

...

国家人工知能実験区の数は 8 つに増えました。なぜこの 5 つの都市が選ばれたのでしょうか?

丑年の最初の仕事週に、国家人工知能イノベーションおよび応用パイロットゾーンの数が増加しました。工業情...

無人トラックで商品を配達しますか?アマゾンが自動運転車の特許を申請

[51CTO.com からのオリジナル記事] 現在、ドローンは間違いなくアマゾンの物流ネットワークで...

サイバーセキュリティにおけるAI、機械学習、自動化

サイバーセキュリティのスキル不足は、政府を含むさまざまな地域、市場、セクターの組織に引き続き影響を及...

C# でのジョセフ リング アルゴリズムの簡単な分析

C# アルゴリズムを勉強しているときに、C# ジョセフ リング アルゴリズムに出会いました。ジョセフ...

...

...

今日の生活における人工知能(AI)の実際的な意義

人工知能について言えば、ほとんどの人がまだ混乱していると思います。それは何なのか?何に使われるのか?...

...

人工知能の65年の簡単な歴史:マッカーシーからヒントンまで、人類はどのようなAIを追求しているのでしょうか?

人工知能の発展は65年の歴史があり、厳しい冬も栄光も経験してきました。シンボリックエキスパートシステ...

AIの4つのタイプについてお話しましょう

人工知能が流行するにつれ、人々はそれがどのように機能し、何ができるのかについて多くの疑問を抱いていま...