この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。 機械学習はデータ集約型アプリケーションでは優れた結果を達成していますが、データセットが非常に小さいシナリオでは、ほとんどの機械学習アルゴリズムの有効性は大幅に制限されます[1]。コンピュータービジョンや自然言語処理などの主要分野において、ディープラーニングが最初に活躍した画像分類やテキスト分類から、さらに画像生成やテキスト関係の予測まで、機械学習アルゴリズムの成果は、主に大量のデータ駆動型トレーニングアルゴリズムに基づいて構築されています。しかし、ほとんどの分野では高品質のラベル付きデータを入手することが困難であり、対応するシナリオでは多くの機械学習アルゴリズムの適用能力が制限されます。 この文脈では、Few Shot Learning (FSL) の導入により、データセットのサイズが厳しく制限されている状況での機械学習アプリケーションの問題が解決されます。少数ショット学習法では、事前知識と少数の教師ありサンプルのみを使用して、モデルの一般化性能を非常に少ない更新で迅速に向上させることができるため、新しい関連タスクに適用することができます[1]。近年、小サンプル学習は、コンピュータービジョン、自然言語処理、人間とコンピューターの相互作用、知識グラフ、さらには生物学的コンピューティングの多くのアプリケーションに適用されています。 小サンプル学習の研究者は、コーディングの実践中にプロトタイプの実装と方法の再現という2つの問題に直面することがよくあります[2]。 PaddlePaddle の開発者と研究者が PaddlePaddle を使いやすくするために、次の操作を実行します。
私たちは、小ショット学習の研究とアプリケーションの設計と時間のコストを削減することを目的とした、Paddle ベースの小ショット学習ツールキットである PaddleFSL (Paddle toolkit for Few Shot Learning) を開発しました。 PaddleFSL は、ユーザーが新しい小規模サンプル学習方法を設計したり、新しい小規模サンプル学習データセットを構築したりするための低レベルのツール機能とインターフェイスを提供します。また、従来の小規模サンプル学習方法と従来の小規模サンプルデータセットの高レベルの実装も提供します。 プロジェクトリンク: https://github.com/tata1661/FSL-Mate/tree/master/PaddleFSL フレームワークの概要 完全な PaddleFSL プロジェクトは次の部分で構成されています。 例: プロジェクトにおける高レベルの小サンプルアルゴリズムインターフェースの使用例 パッケージ本体 (paddlefsl): Pythonパッケージの本体
データファイル (raw_data): 生データファイルを保存するディレクトリ。さまざまな古典的な小規模サンプルデータセットの紹介とダウンロードアドレスが含まれています。 テスト: パッケージ本体の各関数とクラスの単体テスト(サンプルファイルも使用) また、パッケージ本体の各外部インターフェースには、モジュールの機能、パラメータの機能、使用例など詳細なコメントを記載しております。 次の数章では、データセットの読み込みからトレーニングの完了まで、PaddleFSL の機能と使い方を一つずつ紹介していきます。 インストールとテスト このプロジェクトは、PaddlePaddle オープンソース フレームワーク v2.0 以降に依存しているため、事前に PaddlePaddle の公式 Web サイトにアクセスしてインストールする必要があります。 このプロジェクトは GitHub でオープンソース化されています。環境変数を設定した後、GitHub プロジェクトを直接クローンして直接使用することができます。 このプロジェクトは pypi でもリリースされています。パッケージ (paddlefsl) は pip 経由でより便利にインストールできますが、この方法では例、データ ファイル (raw_data)、テスト ファイル (test) は含まれません。 インストールが完了したら、次のコマンドを使用して、インストールが成功したかどうかをすぐにテストできます。 データセット 私たちのプロジェクトでは、コンピュータビジョンデータセット(CVDataset)と関係分類データセット(RCDataset)の2つのテンプレートデータセットインターフェースと、CVDatasetから継承した6つの画像分類データセット(Omniglot[3]、Mini-ImageNet[4]、Tiered-ImageNet[5]、CIFAR-FS[6]、FC100[7]、CU-Birds[8])とRCDatasetから継承した1つの関係分類データセット(FewRel1.0[9])を提供しています。さらに、小規模なサンプルサイズの中国語自然言語処理のためのFewCLUE[15]評価ベンチマークデータセットも提供しています。 Mini-ImageNet を例にとると、このデータセットを使用する場合は、プロジェクトが提供するアドレスから元のデータ ファイル (mini-imagenet.tar.gz) をダウンロードし、raw_data ディレクトリに配置するだけです。パッケージのメイン コードによって、データ ファイルが自動的に解凍され、処理されます。 ユーザーは、権限のある任意のディレクトリに元のデータ ファイルを置き、ルート パラメータを介してそのディレクトリをデータセットに渡すこともできます。 小サンプル学習のフレームワークでは、データセットは N 通り (タスクで分類するサンプルの種類は N 種類)、K ショット (モデル更新用のラベル付きサンプルが K 個)、Q クエリ ポイント (モデル効果評価またはさらなる更新用のラベル付きサンプルが Q 個) に分割されることが多いです。したがって、このプロジェクトでは、データセット クラスでランダムなタスク セット分割をプリセットします。 リレーショナル分類データセット (RCDataset) では、戻り値の型に text (テキスト) と numpy (numpy 配列) の 2 つのオプションがあります。numpy を選択した場合は、データセットの初期化子を渡す必要があります。 さらに、ユーザーは CVDataset と RCDataset を継承することで、独自のデータセットを直接構築できます。ユーザー独自の元のデータ ファイル形式に応じて、要素の取得、データセットの長さ、ランダム タスク セットの分割という 3 つのインターフェイスを新しいデータセット クラスに実装し、新しい小さなサンプル データセットを構築します。ユーザーは、このプロジェクトで指定された元のデータ形式に直接従い、新しいデータのデータ形式を調整し、ルート パラメーターを既存のデータ セットに直接渡して、より便利に新しいデータ セットを構築することもできます。 従来の小サンプル法への高レベルインターフェース 私たちのプロジェクトは、paddlefsl.model_zooで5つの古典的な少数ショット法(MAML、ANIL、ProtoNet、RelationNet、Siamese)の高レベルインターフェースを提供し、さらに3つの少数ショットNLP法(PET[16]、P-Tuning[17]、EFL[18])の直接実装も提供します。 MAML (モデルに依存しないメタ学習) は、勾配降下法を使用してトレーニングされたあらゆるモデルに適用でき、分類、回帰、強化学習などのさまざまなタスクに適用できる、古典的な小サンプル学習方法です。 MAMLは新しいモジュールを導入せず、事前知識のみを使用してターゲットモデルのパラメータを調整するため、優れた一般化性能と、非常に限られた数の勾配降下法のステップの後で新しいタスクを迅速に学習して適応する能力が得られます[10]。 ANIL (Almost No Inner Loop) は、MAML アルゴリズムの分析と改良です。 MAML アルゴリズムは、外側のループと内側のループの両方でターゲット モデルのパラメータを調整しますが、ANIL は内側のループでモデルの主なパラメータを固定し、最後のレイヤーのみを微調整します。この方法は、計算オーバーヘッドが少ないMAMLと同等の良好な結果を達成し、またMAML法によってモデルが特徴再利用の効果を達成できることも証明している[11]。 ProtoNet (Prototypical Networks) は、より古典的でシンプルかつ効果的な小規模サンプル手法です。非常に少数のラベル付きサンプルを使用して、モデルが別のパラメータ空間でプロトタイプ機能を学習できるようにし、分類するサンプルのプロトタイプ機能と既知のカテゴリのプロトタイプ機能間の距離を比較して分類の決定を行います。この方法は概念が単純で計算量が少なく、分類問題に非常に優れたパフォーマンスを発揮します。また、ゼロショット学習にも拡張できます[12]。 RelationNet (リレーションネットワーク) は ProtoNet をベースに改良されたものです。この手法では、ターゲットモデルを使用して別のパラメータ空間でプロトタイプ機能を学習した後、関係ネットワークを追加して、既知のネットワークを再調整することなく、分類するサンプルのプロトタイプ機能と既知のカテゴリのプロトタイプ機能との類似性を比較することを具体的に学習します[13]。 Siamese (Siamese Networks) は、初期の小規模サンプル学習法です。この方法は、入力コンテンツの類似性をより適切に測定する方法を自然に学習する双子構造を設計し、それによって非常に少ないラベル付きサンプルを使用して新しいサンプルを予測する能力を獲得します[14]。 上記の 5 つのアルゴリズムの完全なトレーニングおよびテスト ロジックを paddlefsl.model_zoo に実装しました。 MAML を例にとると、ユーザーはテストするデータセットと関連するアルゴリズムのハイパーパラメータおよびトレーニング構成を渡すだけで、トレーニングまたはテストを直接開始でき、トレーニングを通じて取得したモデルパラメータが自動的に保存されます。 さらに、例としてFewCLUEタスクにおけるPET[16]、P-Tuning[17]、EFL[18]の実装も提供します。 FewCLUE タスクは、さらに paddlenlp パッケージに依存します。実装中は、Baidu の中国語 NLP 事前トレーニング済みモデル ERNIE1.0 が使用され、3 つのアルゴリズムの効果が報告されました。 このプロジェクトで実装された古典的なアルゴリズムの高レベルインターフェースを使用して、すべてのデータセットで結果をテストし、元の論文や他の論文で再現された結果と比較しました。結果は、私たちの実装が他の機械学習フレームワークを使用して元の論文の方法で報告された結果を達成し、ほとんどのタスクで元の結果を改善したことを示しています。具体的な結果データは例に記載されています (https://github.com/tata1661/FSL-Mate/tree/master/PaddleFSL/examples) 低レベルの共通ユーティリティ関数 このプロジェクトは、完全なトレーニングおよびテスト実装インターフェースに加えて、プロトタイプ機能計算、モデル複製、固定ステップシングルステップ勾配降下法など、小規模サンプル学習の一般的な基本操作を実装するための豊富な低レベルツール機能も提供します。 プロトタイプ機能の計算と比較は ProtoNet によって提案されているため (上記参照)、この関数は paddlefsl.model_zoo.protonet にカプセル化され、インターフェイス get_prototype () が提供されます。この関数は、すべてのラベル付きサンプルの特徴とそれに対応するラベルを渡し、ラベル順に並べられた各カテゴリに対応するプロトタイプの特徴を返します。 RelationNet を例に挙げてみましょう。 モデルのクローン作成とシングルステップの勾配降下法は、MAML とその改良版 ANIL が依存する操作です。この方法では他のモジュールは導入されず、勾配を通じてターゲット モデルを調整するだけです。ターゲット モデルのパラメータは、外側のループと内側のループを通じて 2 回調整されます。内側のループでは、モデルの調整は元のターゲット モデルのすべてのパラメータに直接作用することはできませんが、複数のタスクの勾配を累積して最終的に元のモデルを調整する必要があります。これには、モデルの勾配を保持し、最上位層を微調整し、累積後に主要なパラメータを調整する必要があります (上図を参照)。 そのため、モデルクローン機能を導入しました。機械学習フレームワークのテンソルのクローンと同様に、クローンされた新しいモデルは元のモデルとメモリを共有しないため、独立した調整が可能になりますが、同時に、勾配の関連付けと蓄積を実現するために、元のモデルと計算グラフを共有する必要があります。この関数は、インターフェイス clone_model() として paddlefsl.utils にカプセル化されています。 同様に、勾配ベースの MAML および ANIL 方式では、モデルの主要パラメータ勾配累積の調整とトップレベルの微調整の間に矛盾があるため、モデルのオプティマイザーを内部ループの微調整における勾配降下法に直接使用することはできません。代わりに、オプティマイザーに干渉せずに勾配降下法を実行するには、固定ステップ サイズ (inner_loop_learning_rate) を手動で設定する必要があります。この関数は paddlefsl.utils にカプセル化されており、gradient_descent() インターフェースを提供します。 上記の 3 つの低レベル操作インターフェースに加えて、paddlefsl はさらに豊富なツール機能も提供します。ユーザーはソースコードまたはサンプルでそれを閲覧および体験できます (https://github.com/tata1661/FSL-Mate/tree/master/PaddleFSL/paddlefsl/utils) 小規模なサンプル学習リソースライブラリ PaddleFSL コードは、小規模サンプル学習レビューおよび最先端の論文追跡プロジェクト FSL-Mate に統合され、オープンソースとしてリリースされています。 FSL-Mate プロジェクトは、Few-Shot Learning の研究成果と最新の研究進捗を統合することを目的としたリソース リポジトリです。このプロジェクトは、2020 年 6 月に ACM Computing Surveys (CSUR) に掲載された Wang Yaqing 博士の Few-Shot Learning に関するレビュー記事「Generalizing from a few examples: A survey on few-shot learning」に基づいています。 CSUR は、コンピュータサイエンスの分野で権威のあるジャーナルであり、JCR1 ゾーン、Core A* に所属しています。この小規模サンプル学習レビューは、2019 年から 2021 年にかけて CSUR で最も引用された論文であり、ESI 2021 でも高引用論文となっています。私たちはこのリポジトリを継続的に更新・保守し、小サンプル学習に興味のある開発者や研究者と連携して小サンプル学習の分野を共同で前進させていきます。ぜひ注目してダウンロードし、体験してみてください! ソースコードを調べたり、ツールキットを入手したりするには、Github リンクをクリックしてください。 プロジェクトリンク: https://github.com/tata1661/FSL-Mate/tree/master/PaddleFSL (さらに、リンクには高品質のドメイン理解マニュアル[Small Sample Learning Review] ESI 2021 Highly Cited Papers/CSUR 2019-2021 Highest Cited Papersが含まれています) プロジェクト作成者: PaddleFSL の責任者であり、Paddle のシニア開発技術専門家 (シニア PPDE) である Wang Yaqing 氏。 2019年に香港科技大学コンピュータサイエンス工学部で博士号を取得。彼は、Baidu の AIDU プログラムを通じて Baidu 研究所のビジネス インテリジェンス ラボに加わり、現在は上級 R&D エンジニア兼研究者として活躍しています。研究の方向性は機械学習であり、主に小サンプル学習、スパースおよび低ランク学習、生物学的コンピューティングに焦点を当てています。現在、ICML、NeurIPS、WWW、EMNLP、TIP などのトップカンファレンスやジャーナルに第一著者論文が多数掲載されています。 参考文献: [1] Wang Y、Yao Q、Kwok JT、Ni L M. いくつかの例からの一般化:少数ショット学習に関する調査[J]。ACMコンピューティングサーベイ(CSUR)、2020、53(3):1-34。 [2] Arnold SMR、Mahajan P、Datta D、et al。learn2learn:メタ学習研究のためのライブラリ[J]。arXivプレプリントarXiv:2008.12284、2020。 [3] Lake BM、Salakhutdinov R、Tenenbaum JB. 確率的プログラム誘導による人間レベルの概念学習[J]。Science、2015、350(6266):1332-1338。 [4] Vinyals O、Blundell C、Lillicrap T、et al. ワンショット学習のためのマッチングネットワーク[J]。ニューラル情報処理システムの進歩、2016年、29:3630-3638。 [5] Ren M、Triantafillou E、Ravi S、et al.半教師あり少数ショット分類のためのメタ学習[J]。arXivプレプリントarXiv:1803.00676、2018。 [6] Bertinetto L、Henriques JF、Torr PHS、他「微分可能閉形式ソルバーによるメタ学習[J]」arXivプレプリントarXiv:1805.08136、2018年。 [7] Oreshkin BN、Rodriguez P、Lacoste A. Tadam:改良された少数ショット学習のためのタスク依存適応メトリック[J]。arXivプレプリントarXiv:1805.10123、2018。 [8] Wah C, Branson S, Welinder P, et al. Caltech-UCSD Birds-200-2011データセット[J]. 2011. [9] Han X、Zhu H、Yu P、et al。Fewrel:最先端の評価を備えた大規模な教師あり少数ショット関係分類データセット[J]。arXivプレプリントarXiv:1810.10147、2018。 [10] Finn C、Abbeel P、Levine S. ディープネットワークの高速適応のためのモデルに依存しないメタ学習[C]//国際機械学習会議。PMLR、2017:1126-1135。 [11] Raghu A、Raghu M、Bengio S、et al。迅速な学習か特徴の再利用か?mamlの有効性の理解に向けて[J]。arXivプレプリントarXiv:1909.09157、2019。 [12] Snell J、Swersky K、Zemel R S. 少数ショット学習のためのプロトタイプネットワーク[J]。arXivプレプリントarXiv:1703.05175、2017。 [13] Sung F, Yang Y, Zhang L, et al. 比較の学習:少数ショット学習のための関係ネットワーク[C]//Proceedings of the IEEE conference on computer vision and pattern recognize. 2018: 1199-1208. [14] Koch G、Zemel R、Salakhutdinov R. ワンショット画像認識のためのSiameseニューラルネットワーク[C]//ICMLディープラーニングワークショップ。2015、2。 [15] Li Y、Zhao Y、Hu B、et al。GlyphCRM:中国語文字とそのグリフの双方向エンコーダ表現[J]。arXivプレプリントarXiv:2107.00395、2021年。 [16] Liu, Xiao, Yanan Zheng, Zhengxiao Du, Ming Ding, Yujie Qian, Zhilin Yang, Jie Tang. 「GPTも理解している」 ArXiv:2103.10385 [Cs]、2021年3月18日。 [17] Wang、Sinong、Han Fang、Madian Khabsa、Hanzi Mao、Hao Ma。「Entailment as Few-Shot Learner」ArXiv:2104.14690 [Cs]、2021年4月29日。 [18] Wang, S.、 Fang, H.、 Khabsa, M.、 Mao, H.、および Ma, H.、「Entailment as Few-Shot Learner」、 ArXiv:2001.07676 [Cs]、 2021年。 |
大規模言語モデルは、多くの下流タスクで驚くべき能力を発揮してきましたが、使用時にはまだいくつかの問題...
人工知能はあらゆる業界に混乱をもたらしています。医療分野では、AI 技術が病気の診断において人間を上...
強化学習 (RL) とディープラーニングの組み合わせは、一連の印象的な結果をもたらし、(ディープ) ...
この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...
[[323254]]ちょうど今、Facebook と AWS は PyTorch の 2 つのメジ...
メディアがSoraを大々的に宣伝するなか、OpenAIの紹介資料ではSoraを「世界シミュレーター」...
[[266390]] 5月24日、浦江イノベーションフォーラムで「中国の新世代人工知能発展報告書20...
最近、修士号を取得して卒業しようとしているネットユーザーがネットユーザーに助けを求めました。「強化学...
オープンソース: ディープラーニング モデルとポーズ推定コードのオープンソース コードの推奨、人工知...
著者 | Tu Chengyeレビュー | Chonglou前の記事:「人材が足りないのではなく、A...