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

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

機械学習プロジェクトの作成というと、データ、モデリング、テストなどを思い浮かべる人がほとんどですが、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は大きな課題に直面している

ブログ    
ブログ    

推薦する

...

目に見えないAI技術は、知的な世界の秘密を理解するのに役立ちます

今日のインターネット技術の急速な発展により、目に見えないAI技術は生活のあらゆる側面に浸透しています...

VB.NET 暗号化アルゴリズムの基本概念の分析

プログラミング言語の場合、その機能性を評価する上で最も重要な要素の 1 つはセキュリティ評価です。 ...

1ペニーに30,000円入るんですか?コーネル大学、人体に埋め込める「ゾウリムシ」センサーを開発

[[323586]]神学者たちは長い間、非常に退屈な問題について議論してきました。それは、「ピンの先...

VRとAI: 融合しようとしている2つの技術

テクノロジーは私たちの生活に常に影響を与えています。社会として私たちはテクノロジーに大きく依存するよ...

人工知能に対して、人間がかけがえのない存在となるような利点は何でしょうか?

人工知能に関して言えば、かつて映画「マトリックス」で描かれたSFシーンが世界に衝撃を与え、トレンドを...

AIリップリーディング、騒音環境でも最大75%の音声認識精度

人は話者の唇の動きを聞いて観察することで会話を認識します。では、AI も同じことができるのでしょうか...

人工知能と機械学習の時代に新たなサイバー脅威にどう対抗するか

侵入テスト サービスの必要性は、システムへの攻撃が頻繁に行われるようになった 1 世紀以上にわたって...

2018 年の AI にとって重要なマイルストーンは何でしたか? 2019年に何が起こるでしょうか?

世界中で普及している人工知能は人類に利益をもたらすのでしょうか?それとも世界を破壊するのでしょうか?...

...

機械学習: TensorFlow 2.0 の 10 のヒント

この記事では、TensorFlow 2.0 の 10 の機能について説明します。 [[326673]...

決済の未来は生体認証にかかっている

現在、生体認証技術は比較的成熟しており、さまざまな応用シナリオがあります。国内の生体認証市場全体は、...

...

人工知能技術を開発すべきでしょうか?

まず、技術発展の観点から見ると、人工知能技術の発展は避けられません。現在、クラウドコンピューティング...