JP2023547010A - 知識の蒸留に基づくモデルトレーニング方法、装置、電子機器 - Google Patents

知識の蒸留に基づくモデルトレーニング方法、装置、電子機器 Download PDF

Info

Publication number
JP2023547010A
JP2023547010A JP2023510414A JP2023510414A JP2023547010A JP 2023547010 A JP2023547010 A JP 2023547010A JP 2023510414 A JP2023510414 A JP 2023510414A JP 2023510414 A JP2023510414 A JP 2023510414A JP 2023547010 A JP2023547010 A JP 2023547010A
Authority
JP
Japan
Prior art keywords
model
coding layer
feature vector
distillation
classification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023510414A
Other languages
English (en)
Inventor
ジャンウェイ リー,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2023547010A publication Critical patent/JP2023547010A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • G06F18/2113Selection of the most significant subset of features by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2431Multiple classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/72Data preparation, e.g. statistical preprocessing of image or video features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/771Feature selection, e.g. selecting representative features from a multi-dimensional feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Molecular Biology (AREA)
  • Image Analysis (AREA)

Abstract

本開示は、知識の蒸留に基づくモデルトレーニング方法、装置、電子機器及び記憶媒体を提供し、コンピュータの分野に関し、特に、コンピュータビジョン、NLPなどの人工知能技術の分野に関する。具体的な技術案として、トレーニングサンプルに基づいて取得された特徴ベクトルを、それぞれ第1のコーディング層と第2のコーディング層に入力し、該第1のコーディング層が第1のモデルに属し、該第2のコーディング層が第2のモデルに属し、該第1のコーディング層から出力された結果を収束して、第1の特徴ベクトルを取得し、該第2のコーディング層の出力に基づいて、第2の特徴ベクトルを決定し、該第1の特徴ベクトルと該第2の特徴ベクトルとに対して蒸留処理を行って、更新された第1の特徴ベクトルを取得する。この技術案は、モデル圧縮蒸留トレーニングに使用され、モデルの任意の層で柔軟に使用することができ、圧縮効果が良い。圧縮されたモデルは画像認識に使用することができ、計算力が限られているさまざまなデバイスに展開することができる。【選択図】 図1

Description

関連出願の相互参照
本願は、2021年09月29日付け中国国家知識産権局に提出した、中国出願番号が「2021111551101」であり、発明の名称が「知識の蒸留に基づくモデルトレーニング方法、装置、電子機器」である中国特許出願の優先権を主張する。その内容全体が参照により本願に組み込まれる。
本開示は、コンピュータ技術の分野に関し、特にコンピュータビジョン、NLP(Natural Language Processing、自然言語処理)などの人工知能技術の分野に関し、具体的には、知識の蒸留に基づくモデルトレーニング方法、装置、電子機器及び記憶媒体に関する。
情報技術の発展に伴い、ニューラルネットワークモデルは、コンピュータビジョン、情報検索、情報認識などの機械学習タスクに組み込むために広く使用されている。しかしながら、より良い学習効果を得るために、ニューラルネットワークモデルは多くの場合、多くのパラメーターを有し、推論と展開のために膨大な計算例が必要であり、つまり、トレーニングと推論の段階で多くのコンピューティングリソースを消費するため、このような大規模なニューラルネットワークモデルは、リソースに制約のある一部のデバイスに適切に展開することはできない。つまり、優れたパフォーマンスを保証する一方で、モデルが大規模で大量のデータがあるため、大規模なニューラルネットワークモデルは多くの場合、デプロイ環境に高い要件があり、そのようなモデルの使用が大幅に制限される。
本開示は、知識の蒸留に基づくモデルトレーニング方法、装置、電子機器及び記憶媒体を提供する。
本開示の一態様によれば、知識の蒸留に基づくモデルトレーニング方法を提供し、
トレーニングされた画像サンプルに基づいて取得された特徴ベクトルを、それぞれ第1のコーディング層と第2のコーディング層に入力するステップであって、該第1のコーディング層が第1のモデルに属し、該第2のコーディング層が第2のモデルに属するステップと、該第1のコーディング層から出力された結果を収束して、第1の特徴ベクトルを取得するステップと、該第2のコーディング層の出力に基づいて、第2の特徴ベクトルを決定するステップと、該第1の特徴ベクトルと該第2の特徴ベクトルとに対して蒸留処理を行って、前記第1の特徴ベクトルを更新するステップと、更新された該第1の特徴ベクトルに基づいて分類を行って、前記第1のモデルのトレーニングを完了するステップと、を含む。
本開示の別の態様によれば、画像認識方法を提供し、認識対象の画像をトレーニングされた認識モデルに入力するステップであって、このトレーニングされた認識モデルが、知識の蒸留に基づくモデルトレーニング方法によってトレーニングされて得られるステップと、このトレーニングされた認識モデルによって、この認識対象の画像を認識するステップと、を含む。
本開示の別の態様によれば、知識の蒸留に基づくモデルトレーニング装置を提供し、トレーニングされた画像サンプルに基づいて取得された特徴ベクトルを、それぞれ第1のコーディング層と第2のコーディング層に入力するための入力モジュールであって、該第1のコーディング層が第1のモデルに属し、該第2のコーディング層が第2のモデルに属する入力モジュールと、該第1のコーディング層から出力された結果を収束して、第1の特徴ベクトルを取得するための収束モジュールと、該第2のコーディング層の出力に基づいて、第2の特徴ベクトルを決定するための決定モジュールと、該第1の特徴ベクトルと該第2の特徴ベクトルとに対して蒸留処理を行って、該第1の特徴ベクトルを更新するための蒸留モジュールと、更新された該第1の特徴ベクトルに基づいて分類を行って、該第1のモデルのトレーニングを完了するための分類モジュールと、を備える、
本開示の別の態様によれば、画像認識装置を提供し、認識対象の画像をトレーニングされた認識モデルに入力するためのモデル入力モジュールであって、このトレーニングされた認識モデルは、知識の蒸留に基づくモデルトレーニング装置によって得られるモデル入力モジュールと、このトレーニングされた認識モデルによって、この認識対象の画像に対して認識処理を行うための認識モジュールと、を備える。
本開示の別の態様によれば、電子機器を提供し、少なくとも1つのプロセッサと、この少なくとも1つのプロセッサと通信可能に接続されるメモリと、を備え、このメモリには、この少なくとも1つのプロセッサによって実行可能な命令が記憶されており、この命令は、本開示のいずれかの実施例に記載の方法を実行できるように、この少なくとも1つのプロセッサによって実行される。
本開示の別の態様によれば、コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体を提供し、このコンピュータ命令は、コンピュータに本開示のいずれかの実施例に記載の方法を実行させる。
本開示の別の態様によれば、コンピュータプログラム/命令が含まれるコンピュータプログラム製品を提供し、このコンピュータプログラム/命令がプロセッサによって実行される場合、本開示のいずれかの実施例に記載の方法が実現される。
本開示の技術は、モデル圧縮蒸留トレーニングに使用でき、収束後に蒸留し、モデルの任意の層で柔軟に使用することができ、トレーニングされたモデルの計算量が大幅に削減され、圧縮効果が良いため、トレーニングされたモデルを、計算力が限られているさまざまなデバイスに展開することができる。
なお、この部分に記載の内容は、本開示の実施例の肝心または重要な特徴を特定することを意図しておらず、本開示の範囲を限定することも意図していない。本願の他の特徴は下記の明細書の記載を通して理解しやすくなる。
図面において、別段の記載がない限り、同じ符号は、いくつかの図を通して同じまたは類似の部品または要素を指す。これらの図面は必ずしも縮尺どおりではない。なお、これらの図面は、本願に開示されたいくつかの実施形態のみを示しており、本願の範囲を限定するものと見なされるべきではない。
本開示の一実施例による知識の蒸留に基づくモデルトレーニング方法の概略フローチャートである。 本開示の別の実施例のによる知識の蒸留に基づくモデルトレーニング方法の概略フローチャートである。 本開示の一実施例によるコンピュータビジョンの分野でのTransformerモデルの概略構成図である。 本開示の一実施例によるモデル蒸留の模式図である。 本開示の別の実施例によるモデル蒸留の模式図である。 本開示の一実施例による画像認識方法の概略フローチャートである。 本開示の一実施例による知識の蒸留に基づくモデルトレーニング装置の概略構成図である。 本開示の一実施例による分類モジュールの概略構成図である。 本開示の一実施例による画像認識装置の概略構成図である。 本開示の実施例の知識蒸留のトレーニング方法又は画像認識方法を実現するための電子機器のブロック図である。
以下、図面と組み合わせて本開示の例示的な実施例を説明する。理解を容易にするために、その中には本発明の実施例の様々な詳細が含まれ、それらは単なる例示と見なされるべきである。したがって、当業者は、本発明の範囲及び精神から逸脱することなく、本明細書に記載の実施例に対して様々な変更及び補正を行うことができる。また、わかりやすくかつ簡潔にするために、以下の説明では、周知の機能及び構造の説明を省略する。
従来技術では、Transformerモデルは、有名なインターネット企業によって開発された新しいタイプの人工知能モデルであり、最近、このモデルはコンピュータビジョンの分野(CVフィールド)で頻繁に使用され、優れた結果を達成することが示されている。ただし、他のモデル(畳み込みニューラルネットワークモデルなど)と比較して、Transformerには多数のパラメータがあり、一般に推論と展開に膨大な計算例が必要であり、つまり、トレーニングと推論の段階で多くのコンピューティングリソースを消費するため、Transformerはリソースに制約のある一部のデバイスには適切に展開することができない。
本開示の実施例によれば、知識の蒸留に基づくモデルトレーニング方法を提供し、図1は本開示の一実施例による知識の蒸留に基づくモデルトレーニング方法の概略フローチャートであり、具体的にはステップS101~S105を含む。
S101では、トレーニングされた画像サンプルに基づいて取得された特徴ベクトルを、それぞれ第1のコーディング層と第2のコーディング層に入力し、該第1のコーディング層は第1のモデルに属し、該第2のコーディング層は第2のモデルに属する。
一例では、第2のコーディング層が属する第2のモデルは、元のモデル又はトレーニングされたモデルであり、第1のコーディング層が属する第1のモデルは、新しいモデル又はトレーニングされたモデルに基づいて生成される新しいモデルである。具体的には、第1のモデルは、学生モデルであり得、第2のモデルは教師モデルであり得る。
一例では、第1のコーディング層と第2のコーディング層は、異なるモデルにおける互いに対応する層であり、例えば、第1のコーディング層は、それが属するモデルの第3の層であり、第2のコーディング層は、それが属するモデルにおける第1のコーディング層に対応する層であり、例えば、第3の層であってもよい。
一例では、理論的には、第1のモデルの任意の層を第1のコーディング層として選択することができるが、モデルの最後の層を蒸留した場合、計算量は削減されないため、最後の層を第1のコーディング層として使用することはお勧めしない。一般に、モデルにおける最後の層ではないいずれかのコーディング層を、第1のコーディング層として選択する。
一例では、この画像サンプルはグラフィック画像であってもよい。具体的には、同じサイズの複数枚のピクチャを変換して、同じ次元の複数の特徴ベクトルを生成し、ここで、ピクチャの数は、生成された特徴ベクトルの数に等しく、例えば、モデルに入力するある画像を複数の等しいパッチ(patch)に分割し、各パッチ画像のサイズは等しくする必要があり、画像の内容はオーバーラップすることができ、画像の前処理と特徴ベクトル変換の後、同じ次元の複数の特徴ベクトルを生成し、各パッチが1つの特徴ベクトルに対応する。画像パッチから生成された複数の特徴ベクトルを該第1のコーディング層と該第2のコーディング層に並行して入力する。前述のように、上記の蒸留方法を使用して、視覚分野のTransformerモデルを圧縮して蒸留することができる。認識対象の画像を複数のパッチに分割することにより、各パッチの画像の内容を詳細に分類することができ、画像パッチを並行して入力することにより、並行処理によって全体的な効率を向上させることができ、画像パッチがオーバーラップすることができるため、分割による特徴の欠落の可能性を低減する。
S102では、該第1のコーディング層から出力された結果を収束して、第1の特徴ベクトルを取得する。
一例では、第1のコーディング層から入力される特徴ベクトルの数は、それによって出力される特徴ベクトルの数に等しく、収束処理とは、該第1のコーディング層から出力された特徴ベクトルから特徴を抽出し、特徴ベクトルの数を削減する処理であり、枝刈りとも呼ばれる。例えば、第1のコーディング層は9つの特徴ベクトルを出力し、収束後、5つの特徴ベクトルが得られる。具体的には、この収束操作は畳み込み操作であってもよい。畳み込みは、特徴ベクトル内の有用な特徴を効率的に抽出することができ、効率的な集中の効果がある。
S103では、該第2のコーディング層の出力に基づいて、第2の特徴ベクトルを決定する。
一例では、第2の特徴ベクトルは、第2のコーディング層から出力された特徴ベクトルを、重要度に従って並べ替えることによって取得することができ、または何らかの特徴強調処理を行った後、処理された特徴ベクトルを、重要度に従って並べ替えることによって取得することができる。
S104では、該第1の特徴ベクトルと該第2の特徴ベクトルとに対して蒸留処理を行って、前記第1の特徴ベクトルを更新する。
一例では、第1の特徴ベクトルは、少なくとも1回の収束処理を経ているため、第1の特徴ベクトルの特徴ベクトルの数は、第2の特徴ベクトルの特徴ベクトルの数よりも小さく、言い換えれば、第1の特徴ベクトルのサイズは、第2の特徴ベクトルのサイズよりも小さい。この場合、後の蒸留のために、第2の特徴ベクトルから、第1の特徴ベクトルと同じサイズの特徴ベクトルを抽出する必要があり、即ち、並べ替えられた第2の特徴ベクトルから、順位が上位の特徴ベクトル、又は順位が下位の特徴ベクトルを抽出することができ、ここに限定されないが、抽出された特徴ベクトルのサイズは、第1の特徴ベクトルのサイズと等しくなければならず、蒸留の後に、更新された第1の特徴ベクトルが得られ、更新された該第1の特徴ベクトルは、第2のモデルにおける対応する特徴ベクトルのいくつかの特徴を学習した。この蒸留プロセスは、収束蒸留又は枝刈り蒸留と呼ばれることがある。順位が上位の特徴ベクトルを抽出することで、第1のモデルは、第2のモデルのいくつかの特徴を優先的に学習することができ、これらの特徴はランキング規則によって柔軟に指定することができる。例えば、重要度に従って並べ替えた後、順位が上位の特徴ベクトルを抽出し、即ちトレーニングされるモデルの学習のために、トレーニングされたモデル内の重要な特徴ベクトルを抽出することで、モデル蒸留学習の効率を大幅に向上させることができる。
一例では、同じモデルでは、異なる複数のコーディング層を第1のコーディング層として選択し、即ち、複数の枝刈り蒸留を行うことができる。
S105では、更新された該第1の特徴ベクトルに基づいて分類を行って、該第1のモデルのトレーニングを完了する。
更新された第1の特徴ベクトルを、次のコーディング層に入力して、最後のコーディング層から出力を取得した後、この最後のコーディング層の出力に基づいて分類を行って、該第1のモデルのトレーニングを完了する。
上記の実施例を使用すると、枝刈りのために任意の層を選択し、トレーニングの場合、対応する層から出力された特徴ベクトルを並べ替え、次に、枝刈りされた特徴ベクトルと並べ替えられた特徴ベクトルを整列させ、接続される知識の蒸留を行うことができる。本開示によって提供される圧縮知識蒸留スキームは、モデル圧縮蒸留トレーニングに使用され、上記の枝刈り蒸留技術スキームは、モデルの任意の層で柔軟に使用することができ、トレーニングされたモデルの計算量が大幅に削減され、圧縮効果が良いため、トレーニングされたモデルを、計算力が限られているさまざまなデバイスに展開することができる。
本開示の実施例によれば、別の知識の蒸留に基づくモデルトレーニング方法を提供し、図2は本開示の別の実施例による知識の蒸留に基づくモデルトレーニング方法の概略フローチャートであり、具体的には、ステップS201~S204を含む。
S201では、更新された該第1の特徴ベクトルを第3のコーディング層に入力し、該第3のコーディング層は該第1のモデルに属する。
一例では、少なくとも1回の蒸留処理の後、更新された第1の特徴ベクトルを第3のコーディング層に入力し、ここで、第3のコーディング層と第1のコーディング層は同じモデルに属する。
S202では、蒸留処理後に得られた更新された第2の特徴ベクトルを第4のコーディング層に入力し、該第4のコーディング層は第2のモデルに属する。
一例では、少なくとも1回の蒸留処理の後、更新された第2の特徴ベクトルを第4のコーディング層に入力し、ここで、第4のコーディング層と第2のコーディング層は同じモデルに属する。
S203では、該第3のコーディング層と該第4のコーディング層の出力結果を再蒸留して、最適化結果を取得する。
一例では、第3のコーディング層と第4のコーディング層から出力された結果を再蒸留し、ここで、第3のコーディング層に入力されるのは収束された特徴ベクトルであるため、第3のコーディング層から出力された特徴ベクトルの数は、第4のコーディング層から出力された特徴ベクトルの数よりも小さく、第4のコーディング層の出力から、予め設定された条件に基づいて第3のコーディング層の出力と同じ数の特徴ベクトルを選択し、両者を蒸留することができる。ここで、予め設定された条件は、重要度の順位が上位の特徴ベクトルを選択することであってもよいし、他の並べ替え方法であってもよいが、ここでは限定されない。再蒸留の後に、最適化結果が取得される。この蒸留方法は、直接蒸留と呼ばれ、一例では、モデル内の特徴ベクトルを複数回直接蒸留することができる。
S204では、この最適化結果に基づいて分類を行って、該第1のモデルのトレーニングを完了する。
一例では、最適化結果に基づいて分類を行って、即ち、最後のコーディング層から出力を取得した後、この最後のコーディング層の出力に基づいて分類を行って、該第1のモデルのトレーニングを完了する。
上記の例を使用すると、枝刈り蒸留を基に、枝刈り蒸留のないコーディング層を選択して直接蒸留することができる。蒸留プロセスは、実際に2つのモデルが互いに学習するプロセスであるため、上記の直接蒸留法と枝刈り蒸留を使用すると、トレーニングされるモデルを初期モデルに限りなく近づけることができ、第1のモデルをより速く、よりよく第2のモデルに近づけることができ、トレーニングプロセスの効率を向上させる。
本開示の実施例によれば、該第1のモデルの最後のコーディング層によって得られた特徴ベクトルに基づいて、分類結果を取得するステップと、この蒸留処理における蒸留損失値が一定の閾値よりも小さい場合、該分類の結果に基づいて分類正解率を取得するステップと、を含む。
一例では、すべてのコーディング層が渡された後、第1のモデルによって最終的に出力された最適化された特徴ベクトルを分類器に入力して、分類結果を取得する。分類結果は、複数層のコーディング層による処理後にトレーニングされた画像サンプル(以下、トレーニングサンプルと呼ぶ)の分類結果であり、例えば、トレーニングサンプルがカテゴリAに属する確率は90%であり、カテゴリBに属する確率は10%である。トレーニングプロセスにおいて、特徴ベクトルは必ず少なくとも1回の蒸留を受け、蒸留操作に基づいて蒸留の損失値(蒸留loss)を取得し、蒸留損失値が一定の閾値よりも小さい場合、トレーニングは十分であると見なし、得られた分類結果に基づいて、実際の結果と合わせて分類の正解率を取得する。
一例では、モデルが十分にトレーニングされたら、テストセットを使用して、モデルのパフォーマンスが優れているか否か、またはトレーニングを継続する必要があるか否かを確認する必要がある。テストセットは、いくつかのテストサンプルからなるセットであり、トレーニングの時にトレーニングセットが使用され、トレーニングセットは、トレーニングサンプルからなるセットである。例えば、画像認識タスクの場合、テストセットには5000個のテストサンプル(5000枚のピクチャと見なされる)を含めることができ、トレーニングセットは10,000個のトレーニングサンプル(10,000枚のピクチャ)で構成される。トレーニングサンプルまたはテストサンプルがどのカテゴリに属するかは、このサンプルの特定のカテゴリに対応する確率に基づいて決定される。通常、最大の確率値に対応するカテゴリがこのサンプルの予測カテゴリとして選択され、あるピクチャの予測カテゴリがサンプル自体のカテゴリと同じである場合、このサンプルは正確に予測される。分類正解率は、正確に予測されたサンプルの数をサンプルの合計数で除算することによって得られ、例えば、テストセットの分類正解率は次のようになり、カテゴリが正確に予測されたピクチャが4500枚で、ピクチャの合計数が5000枚である場合、正解率は、90%(4500/5000*100%)である。
一例では、同じサンプルで複数回トレーニングすることも、異なるサンプルで複数回トレーニングすることもできる。トレーニングのたびに、最終的な出力に基づいて分類結果を取得することができる。複数回のトレーニングの後期において、蒸留損失値がすべて一定の閾値よりも小さい場合、または蒸留損失値が安定する傾向にある場合、トレーニングは十分であると考えられる。この場合、複数回の分類結果をカウントして分類正解率を取得することができる。
上記の分類正解率は、トレーニングされたモデルの最終的な分類正解率を表すことができ、分類正解率が特定の予め設定された目標を満たしている場合、モデルのトレーニングが完了し、それを使用することができることを示す。
本開示の実施例によれば、分類正解率が予め設定された目標を満たさない場合、トレーニングを繰り返すことができる。
一例では、該第1のモデルが複数のコーディング層を有し、この分類正解率が予め設定された目標を満たさない場合、この複数のコーディング層のうち、第1のコーディング層以外の任意のコーディング層の出力を、収束処理の入力として選択し、トレーニングを続行し、具体的には、分類正解率が予め設定された目標を満たさず、トレーニングされるモデルに複数のコーディング層が含まれている場合、このモデルから第1のコーディング層を再選択することができるが、該第1のコーディング層を前の第1のコーディング層と同じにすることはできない。この例の案を採用することにより、トレーニングを繰り返すだけで理想的なトレーニング結果が得られない場合に、収束の関連するコーディング層を変更することができる。例えば、前に第2のコーディング層で次元を削減したところ、枝刈り率が高すぎて、トレーニング分類正解率が予想を達成できなかった場合、枝刈りの位置を調整して、枝刈り率を下げることができる。即ち、第1のコーディング層を置き換えた後、再トレーニングすることによってトレーニング効率を改善することができる。
「適用例」
本願の実施例の処理フローは、以下の内容を含み、トレーニングの前に、トレーニングされたモデルが取得られ、図3に示すように、このトレーニングされたモデルは、コンピュータビジョンの分野で使用されるTransformerモデル(vision transformerモデル又はビジョントランスフォーマーモデルとも呼ばれる)にすることができる。このモデルは、1つの画像ベクトル変換層(Linear projection or flattened patches)と複数のコーディング層(transformer layer)で構成される。画像ベクトル変換層は、主に入力された画像に対して線形変換及び/又はピクセルを平坦化して配置することを実行し、入力された画像をベクトルに再形成し、各コーディング層は、複数のエンコーダで構成され、このエンコーダは、順次に基準モジュール、マルチヘッドアテンションモジュール(Multi-Head Attention)、基準モジュールの多層認識モジュール(MLP、多層パーセプトロンとも呼ばれ、一般的に2つの層がある)で構成される。各層のエンコーダの数は、入力された特徴ベクトルの数によって决定される。各特徴ベクトルは、エンコーダに入力され、エンコーダは処理された特徴ベクトルを出力する。コーディング層は、入力された特徴ベクトルの数を変更しない。
実際の使用シナリオでは、通常、画像を複数のパッチ(patch)に分割し、各パッチのサイズは同じであり、各パッチはモデルの1つの入力位置に対応し、画像ベクトル変換層を通過した後、パッチの数に等しい特徴ベクトルを生成し、この特徴ベクトルが複数のコーディング層に順番に入力され、各コーディング層の1つのエンコーダが、1つの特徴ベクトルを処理する。最後のコーディング層から出力された特徴ベクトルを分類器に入力して、分類結果を取得する。この分類結果は、確率値にすることができ、例えば、入力画像が犬であると認識する確率は90%、猫である確率は10%である。
上記したvision transformerモデルは、複数の入力画像を同時に処理することができるため、計算量が大きく、多くのコンピューティングリソースを占有し、時間がかかる。具体的には、式(1)~(4)は、モデル内の1つのエンコーダの計算量を導出するための式であり、ここで、式(1)~(3)はそれぞれ、エンコーダの計算における主要な3つのステップの計算量を推定し、式(4)はエンコーダ全体の計算量を表す。ここで、Nは、入力されたpatchの数又は入力された特徴ベクトルの数を表し、Dは、埋め込み次元のサイズ(embedding size/embedding dim)であり、トレーニングにおける特徴ベクトルのヘッド(head、自己アテンションヘッド、単一の自己アテンション計算ヘッドとも呼ばれる)の数と各特徴ベクトルの次元(dim、特徴ベクトルの長さとも呼ばれる)の積であり、[N、D]は、次元が(N、D)であるマトリックスを表し、[D、D]は、次元が(D、D)であるマトリックスを表し、[N、D]、[N、N]は類似しているため、ここでは説明を省略する。
4×([N、D]×[D、D])=>4ND2 (1)
[N、D]×[D、N]+[N、N]×[N、D]=>2N2D (2)
[N、D]×[D、4D]+[N、4D]×[4D、D]=>8ND2 (3)
12ND2+2N2D (4)
従来技術では、モデルを圧縮するには、主に次の2種類の方法があり、1つは、新しいモデル(学生モデルとも呼ばれる)の層数を減らすことであり、即ち、トレーニングされたモデル(教師モデルとも呼ばれる)がN層ある場合、新しいモデルがM層になるように設定し、ここで、M<Nであり、これによって、計算量を削減し、圧縮の効果を達成することができる。知識蒸留プロセスにおいて、間隔層による接続など、新しいモデルとトレーニングされたモデルの間の接続方法を選択するだけでよい。
もう1つは、新しいモデルの層数がトレーニングされたモデルの層数と同じままであることである。上記の式を使用すると、このときDを圧縮する必要があることが分かり、具体的には、headを圧縮するか、またはdimを圧縮する。
前の段落の説明に基づいて、モデルを圧縮するための2種類のスキームは、基本的に、モデルの層数とembedding dim(feature dimとも呼ばれる)から始める。本開示は、別のタイプのスキームを提案し、式(1)~(4)から、最終的な計算量を削減するために、上記の2種類のスキームに加えて、ピクチャが分割されているpatchの数(このpatchの数は、トレーニングプロセスにおける特徴ベクトルの数に対応し、sequence又はtoken数で表すこともできる)から始めることもできる。つまり、学生モデルの各層に対して枝刈りを行い、トレーニングの時、教師モデルのアテンション層の値に基づいて、教師モデルの各層の特徴ベクトルをシーケンス次元で並べ替え、そして、接続される知識の蒸留のために、学生モデルの上位N個のpatchを整列させる。
本実施例では、教師モデルと学生モデルは、同じ数のコーディング層と同じコーディング層構造を有し、即ち、各層には同じエンコーダが含まれる。しかし、対応する層のエンコーダの初期パラメーターは必ずしも同じではなく、具体的には、実際の応用に基づいて生成することができる。
具体的な蒸留方法は図4に示すように、左が学生モデル、右がトレーニングされた教師モデルである。トレーニングサンプルはN個のパッチの画像であり、変換後に得られるN個の特徴ベクトルは、学生モデルに属する第1のコーディング層と教師モデルに属する第2のコーディング層にそれぞれ入力され、第1のコーディング層がN個の特徴ベクトルを出力した後、このN個の特徴ベクトルを収束層に入力し、圧縮されたM個の特徴ベクトルを取得し、ここで、M<Nであり、第2のコーディング層がN個の特徴を出力した後、N個の特徴を並べ替え、具体的には、アテンションメカニズム(Attention Mechanism)に基づいて並べ替えることができ、並べ替えの後、上位のM個を選択して、学生モデルのM個の特徴ベクトルと蒸留する。ここで、コンピュータビジョンで言及されているアテンションメカニズムは、モデルが入力されたXの各部分に異なる重みを割り当て、より肝心で重要な情報を抽出し、モデルがより正確な判断を行えるようにすることである。アテンションメカニズムの本質は、関連する特徴マップを使用して重み分布を学習し、学習した重みを元の特徴マップに適用し、最後に重み付き加算を行うことである。Softmax関数(正規化関数)は、一般的に多分類プロセスで使用され、これは、複数のニューロンの出力を(0、1)区間にマッピングし、多分類を実行するために、これを確率として理解することができる。上記の蒸留方法は、収束蒸留または枝刈り蒸留とも呼ばれる。
一例では、アテンションメカニズムのcls tokenのアテンション値に基づいて並べ替えることができる。
一例では、教師モデルは、アテンションメカニズムとsoftmaxを使用して、特徴ベクトルの重要度を並べ替え、具体的には、以下のステップを含み、モデルの各層で各特徴ベクトル間の相互アテンション値の重みを計算し、この重みは、正規化関数(softmax)を使用して計算してもよく、アテンション値を決定する他の関数を使用して計算してもよく、各特徴ベクトル間の相互アテンション確率を取得し、確率が大きいほど、特徴ベクトルが分類に重要であることを示す。上記の確率値で並べ替える。
また、蒸留損失関数には多くの種類があり、平均二乗誤差損失(MSE loss;Mean square error loss)を例にとると、学生モデルを次元削減すると、特定の層のトークン特徴の数はnになり、教師モデルの場合、特定の層のトークン特徴は相互アテンション確率を取得し、上記の確率値に基づいて並べ替えた後、上位のn個のトークン特徴を選択し、学生モデルのn個のトークン特徴と平均二乗誤差損失計算を実行する。
図4を参照し、学生モデルのL(i)層モデルの入力次元は、[B、N、D](Bはbatch size(バッチ内のサンプルの数)であり、Nは特徴ベクトルの数であり、Dはembedding dimであり、畳み込み(conv1d)操作(または他の収束操作)を使用して、[B、M、D](M<N)を取得する。教師モデルのL(i)層モデルについて、入力次元は[B、N、D]であり、トレーニングによって、並べ替えられたアテンション値[B、H、N、N](Hはマルチヘッドアテンションモジュールのヘッドの数であり、ここで、D=H*dであり、dは単一のヘッドのサイズである)を取得し、アテンションの値は、softmax後の結果であり、softmaxの結果は、特徴ベクトルの重要度確率であるため、この確率値に基づいて、教師モデルの特徴ベクトルを並べ替え、蒸留接続のために最も重要な上位のM個の特徴ベクトルを切り取ることによって、モデルトレーニングの剪定および蒸留のプロセスを実現することができる。
上記の実施例では、モデル蒸留法が紹介され、即ち、学生モデルのある層の出力を収束し、教師モデルの対応する層を並べ替えた後、対応する特徴ベクトルを蒸留する。特徴ベクトルを収束する操作は、枝刈りとも呼ばれる。各層のエンコーダの数は入力された特徴ベクトルの数によって決定されるため、各層のエンコーダは、特徴ベクトルが削減された後に対応して削減され、学生モデルを圧縮する効果がある。
さらに、直接蒸留と呼ばれる別の蒸留方法があり、図4に示すように、少なくとも1回の収束処理の後、エンコード層の出力を直接蒸留することもできる。この場合、学生モデルの第3のコーディング層から出力されたのは依然としてM個の特徴ベクトルがあり、教師モデルの第4のコーディング層からM個の特徴ベクトルを選択して学生モデルのM個の特徴ベクトルと蒸留し、選択プロセスは上記した蒸留方法と同じであるが、ここでは説明を省略する。
最後のコーディング層から出力された結果に基づいて、分類結果を取得することができ、この分類結果に基づいて分類正解率(分類指標とも呼ばれる)を取得することができる。分類指標とは、テストセットに1000枚のピクチャがあり、カテゴリが異なる場合、モデルはこれらのピクチャに対して分類判断を行い、800枚のピクチャが正確に判断された場合、分類指標は80%であることを指す。対象のテストセットデータでは、トレーニングが十分に行われている場合、分類指標は安定して上昇しなくなる傾向があり、このとき、一般的な蒸留loss(蒸留損失値)も安定する傾向にある。従って、分類指標が安定する傾向にあるとき、または蒸留損失値が安定する傾向にあるとき、モデルのトレーニングは完了したと見なすことができる。
上記の2つの蒸留は、モデルの任意の層で使用することができ、何度も再利用できることを強調しておく必要がある。学生モデルで蒸留を複数回使用する方法の詳細については、図5を参照することができる。教師モデルと学生モデルの両方に9つのコーディング層があり、第3の層(L3)と第6の層(L6)の後で枝刈り蒸留が使用され、第9の層(L9)で直接蒸留が使用されていることがわかる。
また、枝刈りおよび圧縮されるモデルは通常一定であり、つまり、学生モデルの層数はトレーニング前に決定される。何度もトレーニングを繰り返しても正解率が予め設定された要件を満たさない場合は、通常、次元削減して蒸留する位置が調整され、つまり収束の位置が調整され、例えば、前に第2のコーディング層で次元を削減したところ、枝刈り率が高すぎて、トレーニングの正解率が予想を達成できなかった場合、枝刈りの位置を調整して、枝刈り率を下げることができる。
図6に示すように、本開示の実施例は、画像認識方法を提供し、この方法は、ステップS601とS602とを含み、S601では、認識対象の画像をトレーニングされた認識モデルに入力し、前記トレーニングされた認識モデルは、上記の知識の蒸留に基づくモデルトレーニング方法によってトレーニングされて得られ、S602では、前記トレーニングされた認識モデルによって、前記認識対象の画像に対して認識処理を行う。
一例では、「知識の蒸留に基づくモデルトレーニング方法」は、上記に開示されたトレーニング方法であり、ここでは説明を省略する。認識対象の画像をこの認識モデルに入力し、具体的には、認識対象の画像は入力前にモデルの具体的なニーズに基づいて処理する必要があり、例えば、複数のパッチに分割された後、複数のパッチがモデルに並行して入力される。このトレーニングされた認識モデルは圧縮されたモデルであり、このモデルには計算負荷が小さく、リソースフットプリントが小さいという利点があり、計算能力が限られているさまざまなデバイスに柔軟に展開することができる。
この画像認識方法と上述のトレーニング方法の実行主体は、同一の主体であってもよいし、異なる主体であってもよい。即ち、同じデバイスでモデルをトレーニングし、同じデバイスでこのトレーニングされたモデルを使用してこの認識方法を実施したり、異なるデバイスでモデルのトレーニングと適用を個別に実行したりすることができる。
一例では、上記の画像認識方法は、画像物体検出、画像分割などのシナリオにも拡張することができ、画像物体検出は、画像内の物体の種類を識別した上で、この物体の具体的な位置を取得することであり、画像の分割は、識別された物体の種類と位置を取得した上で、物体のエッジをさらに正確に認識し、エッジに沿ってカットすることである。結論として、上記の画像認識方法は、画像認識に基づくさまざまな適用シナリオでも使用することができるが、ここでは限定されない。
図7に示すように、本開示の実施例は、知識の蒸留に基づくモデルトレーニング装置700を提供し、この装置は、トレーニングサンプルに基づいて取得された特徴ベクトルを、それぞれ第1のコーディング層と第2のコーディング層に入力するための入力モジュール701であって、該第1のコーディング層は第1のモデルに属し、該第2のコーディング層は第2のモデルに属する入力モジュール701と、該第1のコーディング層から出力された結果を収束して、第1の特徴ベクトルを取得するための収束モジュール702と、第2のコーディング層の出力に基づいて、第2の特徴ベクトルを決定するための決定モジュール703と、該第1の特徴ベクトルと該第2の特徴ベクトルとに対して蒸留処理を行って、前記第1の特徴ベクトルを更新するための蒸留モジュール704と、更新された該第1の特徴ベクトルに基づいて分類を行って、前記第1のモデルのトレーニングを完了するための分類モジュール705とを備える。
図8に示すように、本開示の実施例によって提供される分類モジュール705は、更新された該第1の特徴ベクトルを第3のコーディング層に入力するための第1の入力ユニット801であって、該第3のコーディング層は該第1のモデルに属する第1の入力ユニット801と、この蒸留処理後に得られた更新された第2の特徴ベクトルを第4のコーディング層に入力するための第2の入力ユニット802であって、該第4のコーディング層は該第2のモデルに属する第2の入力ユニット802と、該第3のコーディング層と該第4のコーディング層の出力結果を再蒸留して、最適化結果を取得するための蒸留ユニット803と、この最適化結果に基づいて分類を行って、該第1のモデルのトレーニングを完了するための分類ユニット804とを備える。
一例では、上記の蒸留モジュールは、該第1の特徴ベクトルと該第2の特徴ベクトルのうち順位が上位の特徴ベクトルとに対して蒸留処理を行い、ここで、該第1の特徴ベクトルのサイズが該第2の特徴ベクトルのうち順位が上位の特徴ベクトルのサイズと同じである。
一例では、上記の任意の装置は、該第1のモデルの最後のコーディング層から出力された特徴ベクトルに基づいて、分類結果を取得するための分類結果取得モジュールと、この蒸留処理における蒸留損失値が一定の閾値よりも小さい場合、該分類の結果に基づいて分類正解率を取得するための分類正解率取得モジュールとをさらに備える。
一例では、上記の装置は、該第1のモデルが複数のコーディング層を有し、かつ該分類正解率が予め設定された目標を満たさない場合、この複数のコーディング層のうち、第1のコーディング層以外の任意のコーディング層の出力を、収束処理の入力として選択し、該第1のモデルのトレーニングを続行するための再選択モジュールをさらに備える。
一例では、該収束モジュールは、該第1のコーディング層から出力された結果に対して畳み込み処理を行う。
一例では、該入力モジュールは、同じサイズの複数枚のピクチャを変換して、同じ次元の複数の特徴ベクトルを生成し、該ピクチャの数は、生成された特徴ベクトルの数と同じであり、該複数の特徴ベクトルを該第1のコーディング層と該第2のコーディング層に並行して入力する。
図9に示すように、本開示の実施例は、画像認識装置900を提供し、この装置は、認識対象の画像をトレーニングされた認識モデルに入力するためのモデル入力モジュール901であって、前記トレーニングされた認識モデルは、上記の任意の実施例における知識の蒸留に基づくモデルトレーニング装置によって得られるモデル入力モジュール901と、前記トレーニングされた認識モデルによって、前記認識対象の画像に対して認識処理を行うための認識モジュール902とを備える。
本開示の実施例における各装置中の各モジュールの機能は、上記の方法中の対応する説明を参照することができ、ここでは説明を省略する。
本開示の技術案では、関連するユーザの個人情報の取得、保管、利用などは、すべて関連法律法規の規定に符合し、かつ公序良俗に違反しない。
本開示の実施例によれば、本開示は、電子機器、読み取り可能な記憶媒体およびコンピュータプログラム製品をさらに提供する。
図10は、本開示の実施例を実施するための例示的な電子機器1000の概略ブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレームコンピュータ、及び他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことを目的とする。電子機器は、パーソナルデジタルプロセシング、セルラー電話、スマートフォン、ウェアラブルデバイス、及び他の同様のコンピューティングデバイスなど、様々な形態のモバイルデバイスを表してもよい。本明細書に示されるコンポーネント、それらの接続及び関係、並びにそれらの機能は、単なる例であり、本明細書に記載及び/または求められる本開示の実現を限定することを意図しない。
図10に示すように、電子機器1000は、リードオンリーメモリ(ROM)1002に記憶されたコンピュータプログラム、または記憶ユニット1008からランダムアクセスメモリ(RAM)1003にローディングされたコンピュータプログラムに基づいて、様々な適切な動作と処理を実行できる計算ユニット1001を備える。RAM1003には、機器1000の動作に必要な各種のプログラム及びデータをさらに記憶することができる。計算ユニット1001と、ROM1002と、RAM103とは、バス1004を介して互いに接続されている。入力/出力(I/O)インタフェース1005もバス1004に接続されている。
機器100における複数のコンポーネントは、I/Oインタフェース1005に接続されており、その複数のコンポーネントは、キーボードやマウスなどの入力ユニット1006と、種々なディスプレイやスピーカなどの出力ユニット1007と、磁気ディスクや光学ディスクなどの記憶ユニット1008と、ネットワークカード、モデム、無線通信トランシーバーなどの通信ユニット1009と、を備える。通信ユニット1009は、電子機器1000がインターネットのようなコンピュータネット及び/または種々なキャリアネットワークを介して他の機器と情報/データを交換することを可能にする。
計算ユニット1001は、処理及び計算能力を有する様々な汎用及び/または専用の処理コンポーネントであってもよい。計算ユニット1001のいくつかの例としては、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、様々な専用の人工知能(AI)計算チップ、様々な機械学習モデルアルゴリズムを実行する計算ユニット、デジタ信号プロセッサ(DSP)、及び任意の適切なプロセッサ、コントローラ、マイクロコントローラなどを備えるが、これらに限定されない。計算ユニット1001は、上述で説明された各方法及び処理、例えば知識の蒸留に基づくモデルトレーニング方法または画像認識方法を実行する。例えば、いくつかの実施例では、画像認識方法及び知識の蒸留に基づくモデルトレーニング方法を、記憶ユニット1008のような機械読み取り可能な媒体に有形的に含まれるコンピュータソフトウエアプログラムとして実現されてもよい。一部の実施例では、コンピュータプログラムの一部または全ては、ROM1002及び/または通信ユニット1009を介して、電子機器1000にロード及び/またはインストールされてもよい。コンピュータプログラムがRAM1003にロードされて計算ユニット1001によって実行される場合に、前述した知識の蒸留に基づくモデルトレーニング方法の一つまたは複数のステップを実行することができる。選択的に、他の実施例では、計算ユニット1001は、他の任意の適当な方式(例えば、ファームウェア)により知識の蒸留に基づくモデルトレーニング方法又は画像認識方法を実行するように構成されてもよい。
ここで記載されているシステムまたは技術の各種の実施形態は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、専用集積回路(ASIC)、専用標準品(ASSP)、システムオンチップ(SOC)、コンプレックスプログラマブルロジックデバイス(CPLD)、コンピュータのハードウェア、ファームウェア、ソフトウェア、及び/またはこれらの組み合わせによって実現することができる。これらの各実施形態は、少なくとも1つのプログラマブルプロセッサを備えるプログラマブルシステムにて実行及び/または解釈される1つまたは複数のコンピュータプログラムにより実行することを含み得、当該プログラマブルプロセッサは、ストレージシステム、少なくとも1つの入力デバイス、及び少なくとも1つの出力デバイスからデータ及び命令を受け取り、データ及び命令を該ストレージシステム、当該少なくとも1つの入力デバイス、及び当該少なくとも1つの出力デバイスに転送することができる専用または汎用のプログラマブルプロセッサであってもよい。
本開示の方法を実施するためのプログラムコードは、1または複数のプログラミング言語の組み合わせで記述されていてもよい。これらのプログラムコードは、プロセッサ又はコントローラによって実行されるとされた際に、フローチャート及び/またはブロック図で規定された機能・動作が実施されるように、汎用コンピュータや専用コンピュータまたは他のプログラム可能な人間の画像復元装置のプロセッサやコントローラに提供されてもよい。プログラムコードは、機械上で完全に実行されるか、機械上で部分的に実行されるか、独立したソフトウェアパッケージとして機械上で部分的に実行されるとともにリモートマシン上で部分的に実行されるか、またはリモートマシンまたはサーバ上で完全に実行されてもよい。
本開示の文脈において、機械読み取り可能な媒体は、命令実行システム、装置またはデバイスによって使用されるために、または命令実行システム、装置またはデバイスと組み合わせて使用されるためのプログラムを含むか、または記憶することができる有形媒体であってもよい。機械読み取り可能な媒体は、機械読み取り可能な信号媒体であってもよいし、機械読み取り可能な記憶媒体であってもよい。機械読み取り可能な媒体としては、電子的、磁気的、光学的、電磁的、赤外線的、半導体システム、装置、デバイス、またはこれらの任意の適切な組み合わせが挙げられるが、これらに限定されない。機械読み取り可能な記憶媒体のより具体的な例としては、1または複数のラインに基づく電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能なプログラム可能なリードオンリメモリ(EPROMまたはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、光記憶装置、磁気記憶装置、またはこれらの任意の適切な組み合わせが挙げられる。
ユーザとのインタラクションを提供するために、ここで説明されているシステム及び技術をコンピュータで実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(Cathode-Ray Tube、陰極線管)またはLCD(Liquid Crystal Display、液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウスまたはトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置も、ユーザとのインタラクションを提供するために用いられることができ、例えば、ユーザに提供されるフィードバックは、任意の形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であってもよく、任意の形式(音響入力と、音声入力と、触覚入力とを含む)でユーザからの入力を受信することができる。
ここで説明されるシステム及び技術は、バックエンドコンポーネントを備えるコンピューティングシステム(例えば、データサーバとする)、またはミドルウェアコンポーネントを備えるコンピューティングシステム(例えば、アプリケーションサーバー)、またはフロントエンドコンポーネントを備えるコンピューティングシステム(例えば、グラフィカルユーザインタフェースまたはウェブブラウザを有するユーザコンピュータであり、ユーザは、当該グラフィカルユーザインタフェースまたは当該ウェブブラウザによってここで説明されるシステム及び技術の実施形態とインタラクションする)、またはこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントの任意の組み合わせを備えるコンピューティングシステムで実施することができる。任意の形式または媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを互いに接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)と、インターネットと、ブロックチェーンネットワークとを含む。
コンピュータシステムは、クライアントとサーバとを備えることができる。クライアントとサーバは、一般的に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータで実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによってクライアントとサーバとの関係が生成される。サーバはクラウドサーバであってもよく、分散システムのサーバー、またはブロックチェーンを結合したサーバーであってもよい。
なお、上述した様々な形態のフローを用いて、ステップを並び替え、追加または削除を行うことができることを理解されるべきである。例えば、本開示に記載された各ステップは、本開示に開示された技術方案の所望の結果が達成できる限り、並列に実行されてもよいし、順番に実行されてもよいし、異なる順序で実行されてもよく、本明細書は制限されない。
上記具体的な実施形態は、本開示の保護範囲を限定するものではない。当業者であれば、設計要件及び他の要因に応じて、様々な修正、組み合わせ、サブ組合、及び代替を行うことができることは理解される。本開示の精神及び原理内で行われたあらゆる修正、同等の置換及び改善などは、いずれも本開示の保護範囲内に含まれるべきである。

本開示の別の態様によれば、コンピュータプログラムを提供し、このコンピュータプログラムがプロセッサによって実行される場合、本開示のいずれかの実施例に記載の方法が実現される。
本開示の実施例によれば、本開示は、電子機器および読み取り可能な記憶媒体をさらに提供する。
本開示の実施例によれば、本開示は、コンピュータプログラムをさらに提供し、このコンピュータプログラムがプロセッサによって実行される場合、本開示によって提供される知識の蒸留に基づくモデルトレーニング方法または画像認識方法が実現される。

Claims (19)

  1. トレーニングされた画像サンプルに基づいて取得された特徴ベクトルを、それぞれ第1のコーディング層と第2のコーディング層に入力するステップであって、前記第1のコーディング層が第1のモデルに属し、前記第2のコーディング層が第2のモデルに属するステップと、
    前記第1のコーディング層から出力された結果を収束して、第1の特徴ベクトルを取得するステップと、
    前記第2のコーディング層の出力に基づいて、第2の特徴ベクトルを決定するステップと、
    前記第1の特徴ベクトルと前記第2の特徴ベクトルとに対して蒸留処理を行って、前記第1の特徴ベクトルを更新するステップと、
    更新された前記第1の特徴ベクトルに基づいて分類を行って、前記第1のモデルのトレーニングを完了するステップと、
    を含む、知識の蒸留に基づくモデルトレーニング方法。
  2. 前記更新された前記第1の特徴ベクトルに基づいて分類を行って、前記第1のモデルのトレーニングを完了するステップが、
    更新された前記第1の特徴ベクトルを第3のコーディング層に入力するステップであって、前記第3のコーディング層が前記第1のモデルに属するステップと、
    前記蒸留処理後に得られた更新された第2の特徴ベクトルを第4のコーディング層に入力するステップであって、前記第4のコーディング層が前記第2のモデルに属するステップと、
    前記第3のコーディング層と前記第4のコーディング層との出力結果を再蒸留して、最適化結果を取得するステップと、
    前記最適化結果に基づいて分類を行って、前記第1のモデルのトレーニングを完了するステップと、
    を含む請求項1に記載の知識の蒸留に基づくモデルトレーニング方法。
  3. 前記第1の特徴ベクトルと前記第2の特徴ベクトルとに対して蒸留処理を行うことが、
    前記第1の特徴ベクトルと前記第2の特徴ベクトルのうち順位が上位の特徴ベクトルとに対して蒸留処理を行い、前記第1の特徴ベクトルのサイズは、前記第2の特徴ベクトルのうち順位が上位の特徴ベクトルのサイズと同じであることを含む請求項1に記載の知識の蒸留に基づくモデルトレーニング方法。
  4. 前記蒸留処理における蒸留損失値が一定の閾値よりも小さい場合、前記分類の結果に基づいて分類正解率を取得するステップを含む請求項1に記載の知識の蒸留に基づくモデルトレーニング方法。
  5. 前記第1のモデルが複数のコーディング層を有し、かつ前記分類正解率が予め設定された目標を満たさない場合、前記複数のコーディング層のうち、第1のコーディング層以外の任意のコーディング層の出力を、収束処理の入力として選択し、前記第1のモデルのトレーニングを続行するステップを含む請求項4に記載の知識の蒸留に基づくモデルトレーニング方法。
  6. 前記第1のコーディング層から出力された結果を収束することが、
    前記第1のコーディング層から出力された結果に対して畳み込み処理を行うことを含む請求項1に記載の知識の蒸留に基づくモデルトレーニング方法。
  7. 前記トレーニングされた画像サンプルに基づいて取得された特徴ベクトルを、それぞれ第1のコーディング層と第2のコーディング層に入力するステップが、
    同じサイズの複数枚のピクチャを変換して、同じ次元の複数の特徴ベクトルを生成するステップであって、前記ピクチャの数は、生成された特徴ベクトルの数と同じであるステップと、
    前記複数の特徴ベクトルを前記第1のコーディング層と前記第2のコーディング層に並行して入力するステップと、
    を含む請求項1に記載の知識の蒸留に基づくモデルトレーニング方法。
  8. 認識対象の画像をトレーニングされた認識モデルに入力するステップであって、前記トレーニングされた認識モデルが、請求項1から7のいずれか一項に記載の知識の蒸留に基づくモデルトレーニング方法によってトレーニングされて得られるステップと、
    前記トレーニングされた認識モデルによって、前記認識対象の画像に対して認識処理を行うステップと、
    を含む画像認識方法。
  9. トレーニングされた画像サンプルに基づいて取得された特徴ベクトルを、それぞれ第1のコーディング層と第2のコーディング層に入力するための入力モジュールであって、前記第1のコーディング層が第1のモデルに属し、前記第2のコーディング層が第2のモデルに属する入力モジュールと、
    前記第1のコーディング層から出力された結果を収束して、第1の特徴ベクトルを取得するための収束モジュールと、
    前記第2のコーディング層の出力に基づいて、第2の特徴ベクトルを決定するための決定モジュールと、
    前記第1の特徴ベクトルと前記第2の特徴ベクトルとに対して蒸留処理を行って、前記第1の特徴ベクトルを更新するための蒸留モジュールと、
    更新された前記第1の特徴ベクトルに基づいて分類を行って、前記第1のモデルのトレーニングを完了するための分類モジュールと、
    を備える、知識の蒸留に基づくモデルトレーニング装置。
  10. 前記分類モジュールが、
    更新された前記第1の特徴ベクトルを第3のコーディング層に入力するための第1の入力ユニットであって、前記第3のコーディング層が前記第1のモデルに属する第1の入力ユニットと、
    前記蒸留処理後に得られた更新された第2の特徴ベクトルを第4のコーディング層に入力するための第2の入力ユニットであって、前記第4のコーディング層が前記第2のモデルに属する第2の入力ユニットと、
    前記第3のコーディング層と前記第4のコーディング層との出力結果を再蒸留して、最適化結果を取得するための蒸留ユニットと、
    前記最適化結果に基づいて分類を行って、前記第1のモデルのトレーニングを完了するための分類ユニットと、
    を備える請求項9に記載の知識の蒸留に基づくモデルトレーニング装置。
  11. 前記蒸留モジュールが、
    前記第1の特徴ベクトルと前記第2の特徴ベクトルのうち順位が上位の特徴ベクトルとに対して蒸留処理を行い、前記第1の特徴ベクトルのサイズが、前記第2の特徴ベクトルのうち順位が上位の特徴ベクトルのサイズと同じである請求項10に記載の知識の蒸留に基づくモデルトレーニング装置。
  12. 前記第1のモデルの最後のコーディング層から出力された特徴ベクトルに基づいて、分類結果を取得するための分類結果取得モジュールと、
    前記蒸留処理における蒸留損失値が一定の閾値よりも小さい場合、前記分類結果に基づいて分類正解率を取得するための分類正解率取得モジュールと、
    を備える請求項9から11のいずれか一項に記載の知識の蒸留に基づくモデルトレーニング装置。
  13. 前記第1のモデルが複数のコーディング層を有し、かつ前記分類正解率が予め設定された目標を満たさない場合、前記複数のコーディング層のうち、第1のコーディング層以外の任意のコーディング層の出力を、収束処理の入力として選択し、前記第1のモデルのトレーニングを続行するための再選択モジュールを備える請求項12に記載の知識の蒸留に基づくモデルトレーニング装置。
  14. 前記収束モジュールが、
    前記第1のコーディング層から出力された結果に対して畳み込み処理を行う請求項9に記載の知識の蒸留に基づくモデルトレーニング装置。
  15. 前記入力モジュールが、
    同じサイズの複数枚のピクチャを変換して、同じ次元の複数の特徴ベクトルを生成し、前記ピクチャの数は、生成された特徴ベクトルの数と同じであり、
    前記複数の特徴ベクトルを前記第1のコーディング層と前記第2のコーディング層に並行して入力する請求項9に記載の知識の蒸留に基づくモデルトレーニング装置。
  16. 認識対象の画像をトレーニングされた認識モデルに入力するためのモデル入力モジュールであって、前記トレーニングされた認識モデルが、請求項9から15のいずれか一項に記載の知識の蒸留に基づくモデルトレーニング装置によって得られるモデル入力モジュールと、
    前記トレーニングされた認識モデルによって、前記認識対象の画像に対して認識処理を行うための認識モジュールと、
    を備える画像認識装置。
  17. 少なくとも1つのプロセッサと、
    該少なくとも1つのプロセッサと通信可能に接続されるメモリと、
    を備え、
    前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶されており、前記命令は、前記少なくとも1つのプロセッサが請求項1から8のいずれか一項に記載の知識の蒸留に基づくモデルトレーニング方法を実行できるように、前記少なくとも1つのプロセッサによって実行される電子機器。
  18. コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、
    前記コンピュータ命令が、前記コンピュータに請求項1から8のいずれか一項に記載の方法を実行させる非一時的なコンピュータ読み取り可能な記憶媒体。
  19. コンピュータプログラム/命令が含まれるコンピュータプログラム製品であって、
    前記コンピュータプログラム/命令がプロセッサによって実行される場合、請求項1から8のいずれか一項に記載の方法のステップが実現されるコンピュータプログラム製品。
JP2023510414A 2021-09-29 2022-03-25 知識の蒸留に基づくモデルトレーニング方法、装置、電子機器 Pending JP2023547010A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202111155110.1A CN113837308B (zh) 2021-09-29 2021-09-29 基于知识蒸馏的模型训练方法、装置、电子设备
CN202111155110.1 2021-09-29
PCT/CN2022/083065 WO2023050738A1 (zh) 2021-09-29 2022-03-25 基于知识蒸馏的模型训练方法、装置、电子设备

Publications (1)

Publication Number Publication Date
JP2023547010A true JP2023547010A (ja) 2023-11-09

Family

ID=78967643

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023510414A Pending JP2023547010A (ja) 2021-09-29 2022-03-25 知識の蒸留に基づくモデルトレーニング方法、装置、電子機器

Country Status (4)

Country Link
US (1) US20230162477A1 (ja)
JP (1) JP2023547010A (ja)
CN (1) CN113837308B (ja)
WO (1) WO2023050738A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113837308B (zh) * 2021-09-29 2022-08-05 北京百度网讯科技有限公司 基于知识蒸馏的模型训练方法、装置、电子设备
CN114758360B (zh) * 2022-04-24 2023-04-18 北京医准智能科技有限公司 一种多模态图像分类模型训练方法、装置及电子设备
CN117058437B (zh) * 2023-06-16 2024-03-08 江苏大学 一种基于知识蒸馏的花卉分类方法、系统、设备及介质
CN116797611B (zh) * 2023-08-17 2024-04-30 深圳市资福医疗技术有限公司 一种息肉病灶分割方法、设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108334934B (zh) * 2017-06-07 2021-04-13 赛灵思公司 基于剪枝和蒸馏的卷积神经网络压缩方法
US11410029B2 (en) * 2018-01-02 2022-08-09 International Business Machines Corporation Soft label generation for knowledge distillation
CN108830813B (zh) * 2018-06-12 2021-11-09 福建帝视信息科技有限公司 一种基于知识蒸馏的图像超分辨率增强方法
CN110837761B (zh) * 2018-08-17 2023-04-07 北京市商汤科技开发有限公司 多模型知识蒸馏方法及装置、电子设备和存储介质
CN110175628A (zh) * 2019-04-25 2019-08-27 北京大学 一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法
EP3748545A1 (en) * 2019-06-07 2020-12-09 Tata Consultancy Services Limited Sparsity constraints and knowledge distillation based learning of sparser and compressed neural networks
CN110852426B (zh) * 2019-11-19 2023-03-24 成都晓多科技有限公司 基于知识蒸馏的预训练模型集成加速方法及装置
CN112070207A (zh) * 2020-07-31 2020-12-11 华为技术有限公司 一种模型训练方法及装置
CN112116030B (zh) * 2020-10-13 2022-08-30 浙江大学 一种基于向量标准化和知识蒸馏的图像分类方法
CN112699958A (zh) * 2021-01-11 2021-04-23 重庆邮电大学 一种基于剪枝和知识蒸馏的目标检测模型压缩与加速方法
CN113159173B (zh) * 2021-04-20 2024-04-26 北京邮电大学 一种结合剪枝与知识蒸馏的卷积神经网络模型压缩方法
CN113159073B (zh) * 2021-04-23 2022-11-18 上海芯翌智能科技有限公司 知识蒸馏方法及装置、存储介质、终端
CN113837308B (zh) * 2021-09-29 2022-08-05 北京百度网讯科技有限公司 基于知识蒸馏的模型训练方法、装置、电子设备

Also Published As

Publication number Publication date
CN113837308B (zh) 2022-08-05
WO2023050738A1 (zh) 2023-04-06
US20230162477A1 (en) 2023-05-25
CN113837308A (zh) 2021-12-24

Similar Documents

Publication Publication Date Title
CN112966522B (zh) 一种图像分类方法、装置、电子设备及存储介质
JP2023547010A (ja) 知識の蒸留に基づくモデルトレーニング方法、装置、電子機器
CN113657399A (zh) 文字识别模型的训练方法、文字识别方法及装置
JP2022006174A (ja) モデルをトレーニングするための方法、装置、デバイス、媒体、およびプログラム製品
WO2023138188A1 (zh) 特征融合模型训练及样本检索方法、装置和计算机设备
US20220270384A1 (en) Method for training adversarial network model, method for building character library, electronic device, and storage medium
WO2023015939A1 (zh) 用于文本检测的深度学习模型训练方法及文本检测方法
CN113792855A (zh) 一种模型训练及字库建立方法、装置、设备和存储介质
WO2022105121A1 (zh) 一种应用于bert模型的蒸馏方法、装置、设备及存储介质
CN116152833B (zh) 基于图像的表格还原模型的训练方法及表格还原方法
US20220374678A1 (en) Method for determining pre-training model, electronic device and storage medium
CN114495102A (zh) 文本识别方法、文本识别网络的训练方法及装置
CN112949818A (zh) 模型蒸馏方法、装置、设备以及存储介质
CN113688955B (zh) 文本识别方法、装置、设备及介质
CN115565177A (zh) 文字识别模型训练、文字识别方法、装置、设备及介质
CN114022887B (zh) 文本识别模型训练及文本识别方法、装置、电子设备
CN114495101A (zh) 文本检测方法、文本检测网络的训练方法及装置
CN113837965A (zh) 图像清晰度识别方法、装置、电子设备及存储介质
CN115457329B (zh) 图像分类模型的训练方法、图像分类方法和装置
CN116363429A (zh) 图像识别模型的训练方法、图像识别方法、装置及设备
CN114661904B (zh) 文档处理模型的训练方法、装置、设备、存储介质及程序
CN114419327B (zh) 图像检测方法和图像检测模型的训练方法、装置
CN113361522B (zh) 用于确定字符序列的方法、装置和电子设备
CN115631502A (zh) 文字识别方法、装置、模型训练方法、电子设备及介质
CN112784967B (zh) 信息处理方法、装置以及电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230213

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240130