DAMOアカデミーのオープンソース低コスト大規模分類フレームワークFFC
#論文リンク: https://arxiv.org/pdf/2105.10375.pdf
##アプリケーションとコード:
- https://www.php.cn/link/c42af2fa7356818e0389593714f59b52
- # https://www.php.cn/link/60a6c4002cc7b29142def8871531281a 背景
画像分類は、現在最も成功しているAIの実用化技術の1つであり、人々の日常生活に組み込まれています。画像分類、画像検索、OCR、コンテンツレビュー、認識認証、その他の分野など、ほとんどのコンピュータビジョンタスクで広く使用されています。一般的なコンセンサスは次のとおりです。「データ セットが大きくなり、ID の数が増えると、データ セットが適切にトレーニングされている限り、対応する分類タスクの効果は向上します。」しかし、数千万、さらには数億のIDを前にした場合、現在普及しているDLフレームワークでは、このような超大規模な分類訓練を直接低コストで行うことは困難です。
この問題を解決する最も直観的な方法は、クラスタリングを通じてより多くのグラフィックス カード リソースを消費することですが、それでも、大規模な ID での分類問題には次の問題が依然として残ります。
1) コストの問題: 分散トレーニング フレームワークに大量のデータがある場合、メモリのオーバーヘッド、マルチマシン通信、データの保存と読み込みにより多くのリソースが消費されます。
2) ロングテール問題: 実際のシナリオでは、データセットが数億の ID に達すると、ほとんどの ID の画像サンプルの数が非常に少なくなることがよくあります。データはロングテールで分散されるため、直接トレーニングではより良い結果を得るのが難しいことは明らかです。
この記事の残りの章では、超大規模分類フレームワークの既存のソリューションと、それに対応する低コスト分類フレームワーク FFC の原理とコツに焦点を当てます。
方法
この方法を紹介する前に、この記事ではまず現在の超大規模分類の主な課題を確認します。課題 1: コストは依然として高い
次に示すように、ID の数が増えるほど、分類器のメモリ要件も大きくなります。図:
ビデオ メモリが大きければ大きいほど、より多くのマシン カードが必要になり、コストも高くなります。マルチマシンに対応するハードウェア インフラストラクチャのコストは、コラボレーションも高くなります。同時に、分類 ID の数が非常に大きな規模に達すると、主要な計算量は分類器の最後の層で無駄になり、スケルトン ネットワークにかかる時間は無視できます。
課題 2: ロングテール学習の難しさ
実際のシナリオでは、数百人のうちの絶対多数がほとんどの ID の画像サンプルの数は非常に少なく、ロングテール データの分布が非常に明白であるため、直接トレーニングを収束させることが困難になります。同じ重みでトレーニングすると、ロングテール サンプルが圧倒され、学習が不十分になります。現時点では、不均衡なサンプルが使用されるのが一般的ですが、この研究テーマでは参考になる手法がたくさんありますが、シンプルな超大規模分類フレームワークに組み込むのに適した手法は何でしょうか?
上記の 2 つの課題について、まず、既存の実現可能なソリューションにはどのようなものがあるのか、そしてそれらが上記 2 つの課題をうまく解決できるかどうかを見てみましょう。
#実現可能な方法 1: 指標の学習
#実現可能な方法2: PFC フレームワーク
実現可能な方法 3: VFC フレームワーク
# #この論文の方法: FFC フレームワーク
#大規模分類のために FC を使用してトレーニングした場合の損失関数は次のとおりです:
次に、トレーニングを開始する前に、サンプルの一部を ID グループに送信します (ここでは、ID サンプルの 10% がグループに入れられると仮定します)。このとき、ギャラリーはランダムなパラメータを使用します。
その後、トレーニングが開始されると、バッチ サンプルが 1 つずつプローブ ネットに入ります。各バッチのサンプルには 2 つの状況があります: 1.) グループ内にこのサンプルと同じ ID を持つフィーチャがある、2.) グループ内に類似サンプルのフィーチャがない。これら 2 つのケースについては、それぞれ既存の ID と新しい ID と呼びます。既存のサンプルの場合、特徴とグループ内の特徴を使用して内積を実行し、ラベルを使用してクロスエントロピー損失関数を計算して、それを返します。新鮮なサンプルの場合、グループ内のサンプルとのコサイン類似性を最小限に抑えます。
最後に、既存のクラス センターに重み付けする原則に基づいて、グループ内のフィーチャを更新し、新しいクラス センターに置き換えます。ギャラリー ネットの場合、移動平均戦略を使用してプローブ内のパラメーターを徐々に更新します。
本稿の手法:裏技紹介 ##1.) 導入するIDグループのサイズは調整可能です パラメータ、通常、デフォルトは 30,000 です。
#2.) 安定した学習を実現するために、moco クラスのメソッドを参照し、移動平均を導入します。対応する収束条件は次のとおりです。
#実験結果
1. ダブルローダーアブレーション実験
## 2. SOTA 手法の効果比較
3. ビデオ メモリとサンプル スループットの比較
以上がDAMOアカデミーのオープンソース低コスト大規模分類フレームワークFFCの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java フレームワークの商用サポートのコスト/パフォーマンスを評価するには、次の手順が必要です。 必要な保証レベルとサービス レベル アグリーメント (SLA) 保証を決定します。研究サポートチームの経験と専門知識。アップグレード、トラブルシューティング、パフォーマンスの最適化などの追加サービスを検討してください。ビジネス サポートのコストと、リスクの軽減と効率の向上を比較検討します。

PHP フレームワークの学習曲線は、言語熟練度、フレームワークの複雑さ、ドキュメントの品質、コミュニティのサポートによって異なります。 PHP フレームワークの学習曲線は、Python フレームワークと比較すると高く、Ruby フレームワークと比較すると低くなります。 Java フレームワークと比較すると、PHP フレームワークの学習曲線は中程度ですが、開始までの時間は短くなります。

軽量の PHP フレームワークは、サイズが小さくリソース消費が少ないため、アプリケーションのパフォーマンスが向上します。その特徴には、小型、高速起動、低メモリ使用量、改善された応答速度とスループット、および削減されたリソース消費が含まれます。 実際のケース: SlimFramework は、わずか 500 KB、高い応答性と高スループットの REST API を作成します。

明確で包括的なドキュメントを作成することは、Golang フレームワークにとって非常に重要です。ベスト プラクティスには、Google の Go コーディング スタイル ガイドなど、確立されたドキュメント スタイルに従うことが含まれます。見出し、小見出し、リストなどの明確な組織構造を使用し、ナビゲーションを提供します。スタート ガイド、API リファレンス、概念など、包括的で正確な情報を提供します。コード例を使用して、概念と使用法を説明します。ドキュメントを常に最新の状態に保ち、変更を追跡し、新機能を文書化します。 GitHub の問題やフォーラムなどのサポートとコミュニティ リソースを提供します。 API ドキュメントなどの実践的なサンプルを作成します。

アプリケーションのシナリオに基づいて最適な Go フレームワークを選択します。アプリケーションの種類、言語機能、パフォーマンス要件、エコシステムを考慮します。一般的な Go フレームワーク: Jin (Web アプリケーション)、Echo (Web サービス)、Fiber (高スループット)、gorm (ORM)、fasthttp (速度)。実際のケース: REST API (Fiber) の構築とデータベース (gorm) との対話。フレームワークを選択します。主要なパフォーマンスには fasthttp、柔軟な Web アプリケーションには Jin/Echo、データベース インタラクションには gorm を選択してください。

Go フレームワーク開発における一般的な課題とその解決策は次のとおりです。 エラー処理: 管理にはエラー パッケージを使用し、エラーを一元的に処理するにはミドルウェアを使用します。認証と認可: サードパーティのライブラリを統合し、資格情報を確認するためのカスタム ミドルウェアを作成します。同時処理: ゴルーチン、ミューテックス、チャネルを使用してリソース アクセスを制御します。単体テスト: 分離のために getest パッケージ、モック、スタブを使用し、十分性を確保するためにコード カバレッジ ツールを使用します。デプロイメントとモニタリング: Docker コンテナを使用してデプロイメントをパッケージ化し、データのバックアップをセットアップし、ログ記録およびモニタリング ツールでパフォーマンスとエラーを追跡します。

Go フレームワークの学習には、フレームワークへの過度の依存と柔軟性の制限という 5 つの誤解があります。フレームワークの規則に従わない場合、コードの保守が困難になります。古いライブラリを使用すると、セキュリティと互換性の問題が発生する可能性があります。パッケージを過度に使用すると、コード構造が難読化されます。エラー処理を無視すると、予期しない動作やクラッシュが発生します。

Go フレームワークを選択する場合、主要業績評価指標 (KPI) には、応答時間、スループット、同時実行性、リソース使用量が含まれます。フレームワークの KPI をベンチマークして比較することで、開発者は、予想される負荷、パフォーマンスが重要なセクション、リソースの制約を考慮しながら、アプリケーションのニーズに基づいて情報に基づいた選択を行うことができます。
