機械学習に効果的なデータを取得する方法 小さなデータを扱うための 7 つのヒント (一読の価値あり)

機械学習に効果的なデータを取得する方法 小さなデータを扱うための 7 つのヒント (一読の価値あり)

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式サイトにアクセスして許可を申請してください。

ビッグデータが機械学習プロジェクトを成功させる鍵であるとよく耳にします。

大きな問題の一つは、多くの組織が必要なデータを持っていないことです。

基本的な、必要な、未処理のデータがなければ、機械学習の概念のプロトタイプを作成して検証するにはどうすればよいでしょうか?リソースが不足している状況で、データを活用して価値を効果的に獲得し、創造するにはどうすればよいでしょうか?

私が働いているところでは、クライアント向けに多くの機能のプロトタイプを作成しています。このため、私にとっては小さなデータでも大いに役立ちます。この記事では、小規模なデータセットを使用してプロトタイプを作成するときに結果を改善するのに役立つ 7 つのヒントを紹介します。

[[270819]]

1. モデルが完璧ではないことを認識する

これが最も重要なことです。大規模なセットのごく一部だけに基づいた知識を持つモデルを構築しているので、モデルが期待どおりに機能するのは、この 1 つの場所またはこの 1 つの状況のみです。

数枚の屋内写真を選択してコンピューター ビジョン モデルを構築する場合、屋外の写真ではうまく機能するとは期待しないでください。チャットルームでの会話に基づいて言語モデルを構築したい場合、それが素晴らしい小説を書くことを期待しないでください。

上司やクライアントにもこれを理解してもらうようにしてください。こうすることで、モデルが実現できる結果について、全員が共通かつ現実的な期待を持つことができます。また、プロトタイプの内外でモデルのパフォーマンスを定量化するための新しい KPI を作成することにも役立ちます。

2. 優れたデータインフラストラクチャを構築する

多くの場合、顧客は必要なデータを持っていないため、公開データでは十分な代替にはなりません。プロトタイプの一部で新しいデータの収集とラベル付けが必要な場合は、インフラストラクチャが可能な限り少ない摩擦でそれを処理できることを確認してください。

データのラベル付けは、技術者以外の人でも簡単に理解できるほどシンプルにする必要があります。私たちは Prodigy を使用します。これは、アクセスしやすく拡張可能な優れたツールだと思います。プロジェクトの規模に応じて、新しいデータを吸収してタグ付けシステムに自動的に転送できる自動データ取り込みツールを設定することもできます。

システムが新しいデータをより速く簡単に取得できるほど、より多くのデータを取得できます。

3. データを追加する

既存のデータを追加することでデータベースを拡張できます。たとえば、モデルの出力に大きな影響を与えずに、データをわずかに調整することができます。たとえば、猫の写真を 40 度回転しても、猫の写真であることに変わりはありません。

ほとんどの場合、スキルを高めると、モデルをトレーニングするための「準最適な」データ ポイントをさらに作成できるようになります。まず、データに少量のガウスノイズを追加します。

コンピューター ビジョンの場合、画像を拡張する簡単な方法が多数あり、私は Albumentations データベースで良い経験をしました。このデータベースでは、注釈を失うことなく多くの便利な画像変換が可能です。

初期、水平反転、垂直反転、スケールと回転角度の調整

ほとんどの人が効果的だと考えるもう一つの増加テクニックは、ミキシングです。この技術は、文字通り 2 つの入力画像を取得し、それらを組み合わせてブレンドし、ラベルを結合します。

初期画像、ブレンド、ノイズブレンド、垂直連結

他の種類の入力データを追加する場合は、形式の変換によってマークアップが変更するかどうかを考慮する必要があります。

4. 合成データを生成する

実際のデータを拡張するためのオプションがわからない場合は、偽のデータを作成することを検討してください。合成データを生成することは、実際のデータベースでは処理できないエッジケースを処理するのに適した方法です。

たとえば、ロボット工学における多くの強化学習システム (OpenAI の Dactyl など) は、実際のロボットを構成する前に、シミュレートされた 3D 環境でトレーニングされます。画像認識システムの場合も、同様に、何千もの新しいデータ ポイントを提供できる 3D シーンを構築できます。

15 の Dactyl トレーニングのシミュレーション例

合成データを作成する方法は数多くありますが、Kandaでは、物体検出用のデータを作成するためのターンテーブルベースのソリューションを開発しました。大量のデータが必要な場合は、Generative Adverserial Networks を使用して合成データを作成することを検討できます。 GAN はトレーニングが非常に難しいことで知られているため、まずこのアプローチを試す価値があるかどうかを確認することが重要でした。

NVIDIA の GauGAN の実演

場合によっては、複数のアプローチを組み合わせることもできます。Apple は、GAN を使用して 3D モデル化された顔を処理して、よりフォトリアリスティックに見せるという非常に巧妙なアプローチを採用しています。時間があれば、これはデータベースを拡張するのに最適な方法です。

5. 幸運な分割には注意する

機械学習モデルをトレーニングする場合、通常、データセットは一定の比率に従ってトレーニング データセットとテスト データセットにランダムに分割されます。通常、これは何の問題もありませんが、小さなデータセットを扱う場合、トレーニング データの例の量が少ないために、高レベルのノイズが生成されるリスクがあります。

この場合、偶然にデータがうまく分割された可能性があります。モデルは特定のデータセット分割で適切に機能し、テスト データセットに適切に一般化されます。しかし実際には、これは単にテスト データセットに (偶然にも) 明確な例が含まれていないからです。

このシナリオでは、k 分割交差検証がより適切な選択です。基本的には、データセットを K グループに分割し、各グループに対して新しいモデルをトレーニングし、テスト用にグループの 1 つを選択し、残りのすべてのグループをトレーニングに使用します。これにより、表示されるテスト結果が単に幸運な(または不運な)分割の結果ではないことが保証されます。

6. 転移学習を使用する

テキスト、画像、ビデオ、サウンドなどの標準的なデータ形式を扱う場合は、巨人の肩の上に立つかのように、他の人がこれらの分野で達成した転移学習の結果を活用して上記の作業を支援し、効率を向上させることができます。

転移学習を行う場合は、他の人がすでに構築したモデルを活用します。 (通常、他の誰かとは、Google、Facebook、または主要な大学です)、特定のニーズに合わせてモデルを微調整する必要があります。言語、画像、または音声を扱うほとんどのタスクは多くの共通の特徴を共有しているため、転移学習は有用です。コンピュータービジョンを例にとると、転移学習は特定の種類の形状、色、またはパターンを検出できます。

最近、私はクライアント向けに、精度に対する要求が高いオブジェクト検出プロトタイプを構築していました。 Google のデータセット (ラベル付き画像 900 万枚を含む) でトレーニングされた転移学習モデルである MobileNet Single Shot Detector を微調整して適用することで、効率が大幅に向上しました。 1 日間のトレーニングの後、1500 枚のラベル付き画像のテスト セットで mAP 0.85 を示す、かなり堅牢なオブジェクト検出モデルを提供できるようになりました。

7. 弱い学習者の組み合わせを試す

時には、何か特別なことをするにはデータが足りないという現実に直面しなければならないこともあります。幸いなことに、データセットのサイズに左右されない(そしてデータ量が少ないためにテストに大きな偏りが生じることの無い)従来の機械学習 AI が数多くあります。

データセットが小さく、データポイントの次元が高い場合は、サポートベクターマシンなどの AI が適切な選択肢です。

残念ながら、これらの AI は必ずしも高度な応用方法ほど正確ではありません。そのため、少なくとも高度にパラメータ化されたニューラル ネットワークと比較すると、これらは弱い学習者と呼ばれます。

この状況を改善する方法は、複数の弱い学習者の結果を組み合わせることです。 (これはサポート ベクター マシンと決定木の配列であり、これらが連携して予測を構築できます)。これが連合学習の本質です。

<<:  13歳の天才少年がAIスピーカーを開発。2010年代以降の世代は単純ではない

>>:  SaaS の将来は人工知能とどのような関係があるのでしょうか?

ブログ    
ブログ    

推薦する

機械学習で避けるべき3つのよくある間違い

企業は、お金の無駄遣い、アプリケーションのパフォーマンスの低下、成果の得られないという 3 つの間違...

AI対応データセンターは急速に成長すると予想

企業の人工知能に対する飽くなき需要により、計算集約型の AI アプリケーションを処理するために設計さ...

Python での機械学習アルゴリズムの実装: ニューラル ネットワーク

今日は引き続き、パーセプトロンをベースにしたニューラルネットワークモデルを紹介します。パーセプトロン...

ショック!自動運転車が人をはねたが、救助活動は失敗し、死亡が確認された。

太平洋標準時3月18日午後10時、米国アリゾナ州で、ウーバーが路上試験中に自転車に乗った女性と衝突し...

2021年の機械学習ライフサイクル

機械学習プロジェクトを実際に完了するにはどうすればよいでしょうか? 各ステップを支援するツールにはど...

...

2022年の企業向け人工知能技術の開発動向

調査によると、企業が人工知能を導入する方法が増え、開発者がユーザーに AI サービスを提供する新しい...

機械学習の収益は2023年までに803億ドルに達すると予想されている

機械学習を活用したソリューションとプロセスは、医療、情報技術 (IT)、農業、教育、エレクトロニクス...

...

27回の機械学習インタビューの後、重要な概念を強調しましょう

機械学習面接のためのハンドブック。これだけあれば十分です。 [[348502]]機械学習やデータサイ...

...

2020年の人工知能開発動向予測

調査によると、機械学習のアプリケーション、ツール、テクニック、プラットフォーム、標準に大きな変化が起...

AIと5Gが次のイノベーションの波をどう推進するか

[[427625]]今後10年間で、人工知能はあらゆる産業を変えると予想されており、その変化のきっか...