アルゴリズム開発をスケールアップするには?


18

探索的データ分析に取り組み、アルゴリズムを開発していると、視覚化、コードの記述、小さなデータセットの実行、繰り返しのサイクルにほとんどの時間が費やされていることがわかります。私が持っているデータは、コンピュータビジョン/センサーフュージョンタイプのものである傾向があり、アルゴリズムは視覚に負荷がかかり(オブジェクトの検出や追跡など)、既製のアルゴリズムはこのコンテキストでは機能しません。これには多くの反復が必要であることがわかります(たとえば、アルゴリズムのタイプをダイヤルしたり、アルゴリズムのパラメーターを調整したり、視覚化を正しくしたりする)ため、小さなデータセットでも実行時間が非常に長くなるため、すべて一緒に時間がかかります。

アルゴリズム開発自体をどのように高速化し、スケーラブルにすることができますか?

特定の課題:

反復回数を減らすにはどうすればよいですか?(特に、アルゴリズムの種類はもちろん、その詳細は別として、異なるバージョンを試してその動作を調べることなく簡単に予測できるとは思えない場合)

開発中に大きなデータセットで実行する方法は?(多くの場合、小さなデータセットから大きなデータセットへの移行は、多くの新しい動作と新しい問題が発生した場合です)

アルゴリズムパラメータをより速く調整するにはどうすればよいですか?

機械学習型ツールをアルゴリズム開発自体に適用する方法は?(たとえば、アルゴリズムを手で書く代わりに、いくつかの簡単な構成要素を書き、問題から学んだ方法でそれらを組み合わせてください、など)

回答:


7

まず、データに対応するための単一の戦略を適用することを困難にするほど多くのバリエーション(時間、コンテキスト、およびその他の機能)がある場合、前の時間/コンテキスト/を実行することに興味があるかもしれません。 。データセットの特徴付け。データの特性化、つまり、コンテンツのボリュームまたは詳細がいくつかの基準に従ってどのように変化するかについての情報を抽出すると、通常、ブルートフォース方式でアルゴリズムを推測するよりも、よりよく(簡潔で正確に)理解できます。

だから、各質問に答える:

  1. 特徴付けは間違いなく反復回数を減らす手段です、特定のデータに適切なアルゴリズムを選択する際にをです。
  2. データが変化する個別の基準セットがある場合、単純な/特定のソリューションが適用された場合にどの情報を取得/失うかがわかるように、ソリューションのスケールアップがはるかに容易になります。
  3. キャラクタライズ後は、どの種類の特定のデータを扱うかを知っているため、パラメータを選択するのも簡単になります。
  4. 最後に、データマイニング/機械学習アルゴリズムを使用して、この特性をサポートできます。これには以下の使用が含まれます:
    • データの次元を減らすためのクラスタリングアルゴリズム。
    • 時間/コンテキスト/ ...の関数のデータが示す可能性がある特定のプロパティの決定に役立つ分類アルゴリズム。
    • 関連ルール。データセットから特定の知識を予測すると同時に、後の分析に使用されるデータを改善/細粒化します。
    • および他の可能な戦略と分析。

そして、ここにデータを分析するためのいくつかの基準のリストがあります。これは役に立つと思うかもしれません。


5

役立つと思われる2つのこと:

  1. 適切なモデルと最適なパラメーターの検索を高速化するメタ学習。メタ学習は、手元の問題に適した機械学習ツール/パラメーターを見つける問題に機械学習ツールを適用することで構成されています。これは、たとえば、実用的な例のためのこのペーパーです。

  2. 大きなデータセットでアルゴリズムを高速化するgpucomputing。たとえば、OpenCVはGPUを使用できます。GPUは、画像/ビデオの処理に非常に効果的であり、CPUに関して10〜100の高速化を実現できます。お使いのコンピューターにはおそらくgpucomputing対応のGPUが搭載されているため、それを使用して多くの時間を稼ぐことができます。


4

このYouTubeデモと、これらの論文に関連する関連するGoogle Tech Talkを見たことがあると思います。

そして、OpenTLDの GitHubにあるこのコードセット。ここでGitHubの「read me」をチェックすると、著者のメール(Zdenek Kalal)がリストされていることに気付くでしょう。そのため、あなたの質問に関するメールを彼に送信するか、この質問に返信するように招待する価値があるかもしれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.