IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7584998物体認識モデルを学習するための方法および装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-08
(45)【発行日】2024-11-18
(54)【発明の名称】物体認識モデルを学習するための方法および装置
(51)【国際特許分類】
   G06T 7/00 20170101AFI20241111BHJP
   G06N 3/084 20230101ALI20241111BHJP
【FI】
G06T7/00 350C
G06N3/084
【請求項の数】 24
【外国語出願】
(21)【出願番号】P 2020186750
(22)【出願日】2020-11-09
(65)【公開番号】P2021077377
(43)【公開日】2021-05-20
【審査請求日】2023-11-07
(31)【優先権主張番号】201911082558.8
(32)【優先日】2019-11-07
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】ドンユェ ヂャオ
(72)【発明者】
【氏名】ドンチヤオ ウェン
(72)【発明者】
【氏名】シーアン リー
(72)【発明者】
【氏名】ウェイホン デング
(72)【発明者】
【氏名】ジャーニー フー
【審査官】山田 辰美
(56)【参考文献】
【文献】国際公開第2019/003474(WO,A1)
【文献】特開2019-159835(JP,A)
【文献】中国特許出願公開第111651558(CN,A)
【文献】中国特許出願公開第111368644(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06N 3/084
(57)【特許請求の範囲】
【請求項1】
物体認識のためのニューラルネットワークモデルを最適化する装置であって、
前記ニューラルネットワークモデルおよび重み関数を有する損失関数を用いて、学習画像セットから抽出された特徴の損失データを決定する損失決定手段と、
前記損失データと更新関数とに基づいて前記ニューラルネットワークモデルのパラメータの更新動作を実行する更新手段と
を備え、
前記更新関数は、前記ニューラルネットワークモデルの前記重み関数を有する前記損失関数に基づいて導出され、
前記重み関数および前記損失関数は、それぞれ角度の関数であり、前記角度は、前記ニューラルネットワークモデルの全結合層における特定の重みベクトルと、超球面多様体上にマッピングされた抽出された特徴と、の間の交差角度であり、
前記重み関数および前記損失関数は、同じ方向に特定値間隔で単調に変化し、
前記特定値間隔は、特定の角度値間隔である
ことを特徴とする装置。
【請求項2】
前記特定の角度値間隔が[0、π/2]であり、前記重み関数および前記損失関数が、同じ方向に前記特定の角度値間隔で単調かつ滑らかに変更することを特徴とする請求項に記載の装置。
【請求項3】
前記損失関数は、前記交差角度のコサイン関数であることを特徴とする請求項に記載の装置。
【請求項4】
前記損失関数は、クラス内角度損失関数を含み、クラス内角度は、超球面多様体上にマッピングされた抽出された特徴と、真理値物体(truth object)を表す前記ニューラルネットワークモデルの全結合層内の重みベクトルと、の間の交差角度であり、
前記更新関数は、前記クラス内角度損失関数およびクラス内角度重み関数に基づいて決定されることを特徴とする請求項1に記載の装置。
【請求項5】
前記クラス内角度損失関数は、負をとるクラス内角度コサイン関数であり、前記クラス内角度重み関数は、負ではない関数であり、前記クラス内角度が特定値間隔で増加することにつれて滑らかに単調に増加することを特徴とする請求項に記載の装置。
【請求項6】
前記特定値間隔が[0、π/2]であり、前記クラス内角度重み関数が0近傍に水平カットオフ点を有することを特徴とする請求項に記載の装置。
【請求項7】
前記損失関数はクラス間角度損失関数をさらに含み、クラス間角度は超球面多様体上にマッピングされた抽出された特徴と、前記ニューラルネットワークモデルの全結合層内の別の重みベクトルと、の間の交差角度であり、
前記更新関数は、前記クラス間角度損失関数およびクラス間角度重み関数に基づいて決定されることを特徴とする請求項1に記載の装置。
【請求項8】
前記クラス間角度損失関数は、クラス間角度コサイン関数の和であり、前記クラス間角度重み関数は負ではない関数であり、前記クラス間角度が特定値間隔で増加することにつれて滑らかに単調に減少する関数であることを特徴とする請求項に記載の装置。
【請求項9】
前記特定値間隔は[0、π/2]であり、前記クラス間角度重み関数はπ/2付近に水平カットオフ点を有することを特徴とする請求項に記載の装置。
【請求項10】
前記更新関数は、前記重み関数と前記損失関数の偏導関数とに基づくことを特徴とする請求項1に記載の装置。
【請求項11】
前記更新手段はさらに、前記損失関数の偏導関数と前記重み関数とを乗算して、前記ニューラルネットワークモデルを更新するための更新勾配を決定することを特徴とする請求項1に記載の装置。
【請求項12】
前記更新手段はさらに、バックプロパゲーション方法および前記決定された更新勾配を用いて、前記ニューラルネットワークモデルの前記パラメータを更新することを特徴とする請求項11に記載の装置。
【請求項13】
前記ニューラルネットワークモデルが更新された後、前記損失決定手段および前記更新手段は、前記更新されたニューラルネットワークモデルを用いて動作することを特徴とする請求項1に記載の装置。
【請求項14】
前記更新手段は、前記決定された損失データが閾値よりも大きく、前記損失決定手段および前記更新手段によって実行される反復動作の回数が所定の反復回数に達しない場合に、前記決定された更新勾配を用いて更新を実行することを特徴とする請求項1に記載の装置。
【請求項15】
前記損失決定手段は更に、前記ニューラルネットワークモデルの前記重み関数と前記損失関数との組合せを用いて、前記損失データを決定することを特徴とする請求項1に記載の装置。
【請求項16】
前記ニューラルネットワークモデルの前記重み関数と前記損失関数との組合せは、前記ニューラルネットワークモデルの前記重み関数と前記損失関数との積であることを特徴とする請求項1に記載の装置。
【請求項17】
前記ニューラルネットワークモデルを用いて学習画像セットから画像特徴を取得する画像特徴取得手段をさらに備えることを特徴とする請求項1に記載の装置。
【請求項18】
前記ニューラルネットワークモデルは、ディープニューラルネットワークモデルであり、取得された前記画像特徴は、前記学習画像セット中の画像のデプス埋め込み特徴であることを特徴とする請求項17に記載の装置。
【請求項19】
前記重み関数の前記パラメータは、学習セットまたは検証セットについて決定された損失データに基づいて調整され得ることを特徴とする請求項1に記載の装置。
【請求項20】
前記重み関数の第1のパラメータおよび第2のパラメータが、反復である損失データ決定動作および更新動作を実行するために個別に設定された後、前記損失データをより良くさせる前記第1および第2のパラメータのうちの一方の周りの2つのパラメータが、次の反復動作における前記重み関数のための前記第1のパラメータおよび前記第2のパラメータとして選択されることを特徴とする請求項19に記載の装置。
【請求項21】
前記重み関数は、シグモイド関数またはシグモイド関数と類似の特性を有するシグモイド関数の変形関数であり、前記パラメータは、勾配パラメータおよび水平切片パラメータを含むことを特徴とする請求項19に記載の装置。
【請求項22】
物体認識のためのニューラルネットワークモデルを学習する方法であって、
前記ニューラルネットワークモデルおよび重み関数を有する損失関数を用いて、学習画像セットから抽出された特徴の損失データを決定する損失決定工程と、
前記損失データと更新関数とに基づいて前記ニューラルネットワークモデルのパラメータの更新動作を実行する更新工程と
を備え、
前記更新関数は、前記ニューラルネットワークモデルの前記重み関数を有する前記損失関数に基づいて導出され、
前記重み関数および前記損失関数は、それぞれ角度の関数であり、前記角度は、前記ニューラルネットワークモデルの全結合層における特定の重みベクトルと、超球面多様体上にマッピングされた抽出された特徴と、の間の交差角度であり、
前記重み関数および前記損失関数は、同じ方向に特定値間隔で単調に変化し、
前記特定値間隔は、特定の角度値間隔である
ことを特徴とする方法。
【請求項23】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、物体認識のためのニューラルネットワークモデルを学習する方法であって、
前記ニューラルネットワークモデルおよび重み関数を有する損失関数を用いて、学習画像セットから抽出された特徴の損失データを決定することと、
前記損失データと更新関数とに基づいて前記ニューラルネットワークモデルのパラメータの更新動作を実行することと
を備え、
前記更新関数は、前記ニューラルネットワークモデルの前記重み関数を有する前記損失関数に基づいて導出され、
前記重み関数および前記損失関数は、それぞれ角度の関数であり、前記角度は、前記ニューラルネットワークモデルの全結合層における特定の重みベクトルと、超球面多様体上にマッピングされた抽出された特徴と、の間の交差角度であり、
前記重み関数および前記損失関数は、同じ方向に特定値間隔で単調に変化し、
前記特定値間隔は、特定の角度値間隔である
前記方法を実行させる命令が格納されている少なくとも1つの記憶装置と
を備えることを特徴とする装置。
【請求項24】
プロセッサによって実行されると、請求項22に記載の方法を実行させる命令を格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は物体認識に関し、より詳細には、物体認識のためのニューラルネットワークモデルに関する。
【0002】
関連出願の相互参照
本出願は、参照によりその全体が本明細書に組み込まれる、2019年11月7日に出願された中国特許出願第201911082558.8号の利点を主張する。
【背景技術】
【0003】
近年、画像処理、コンピュータビジョン、パターン認識の分野において、静止画像や一連の動画像(ビデオなど)に対する物体検出・認識・比較・追跡が広く、重要な役割を果たしている。物体は、顔、手、身体等、他の生物または植物、または検出されることが望まれる任意の他の物体のような、人の身体部分であってもよい。顔/物体認識は最も重要なコンピュータビジョンタスクのうちの1つであり、その目的は、入力画像/ビデオに基づいて特定の人/物体を認識または検証することである。
【0004】
近年、顔認識のためのニューラルネットワークモデル、特にディープ畳み込みニューラルネットワーク(CNN)モデルは、性能を著しく改善する画期的な進歩に達している。学習データセットが与えられると、CNN学習処理は学習画像から特徴を抽出するための特徴抽出器として一般的なCNNアーキテクチャを使用し、次いで、様々な設計された損失関数を使用することによって、CNNモデルの教師付き学習のための損失データを計算する。したがって、CNNアーキテクチャが選択されると、顔認識モデルの性能は、損失関数および学習データセットによって駆動される。現在、Softmax損失関数およびその変形(境界ベースのSoftmax損失関数)は、顔/物体認識における監視機能として一般に使用されている。
【0005】
しかしながら、学習データセットは一方では実際の世界を完全には反映しておらず、他方では既存の学習データセットがデータクリーニングの後でさえ、依然としてノイズサンプルを含んでいることがしばしば理想的ではないことを指摘しておくべきである。このような学習データセットの場合、既存のSoftmax損失関数およびその変形は、理想的な結果を達成することができず、学習モデルの性能を効果的に改善することができない。
【0006】
したがって、物体認識モデルの学習を改善するための改善された技法が必要とされている。
【0007】
特に断りのない限り、このセクションに記載される方法のいずれも、単にこれらがこのセクションに含まれるので、従来技術であると仮定されるべきではない。また、特に断らない限り、1つまたは複数の方法に関して認識される問題が、このセクションに基づいて任意の従来技術において認識されていると仮定すべきではない。
【発明の概要】
【0008】
本開示の目的は、物体認識のための認識モデルの学習最適化を改善することである。本開示の別の目的は、画像/ビデオ物体認識を改善することである。
【0009】
本開示は物体認識のための畳み込みニューラルネットワークモデルのための改善された学習を提案する。ここで、畳み込みニューラルネットワークモデルのための、収束勾配降下速度としても知られる、最適化/更新振幅(optimization/updating amplitude)は学習中に動的に制御され、それにより、学習処理の進行に適応的に整合するように、ノイズの多い学習データセットに対してさえ、高性能の学習モデルを依然として得ることができる。
【0010】
また、本開示は、上記学習処理によって得られたモデルを用いて物体認識を行うことを提案し、それによって、改善された物体認識結果をさらに得る。
【0011】
一態様では、物体認識のためのニューラルネットワークモデルを最適化する装置であって、前記ニューラルネットワークモデルおよび重み関数を有する損失関数を用いて、学習画像セットから抽出された特徴の損失データを決定する損失決定手段と、前記損失データと更新関数とに基づいて前記ニューラルネットワークモデルのパラメータの更新動作を実行する更新手段とを備え、前記更新関数は、前記ニューラルネットワークモデルの前記重み関数を有する前記損失関数に基づいて導出され、前記重み関数および前記損失関数は、同じ方向に特定値間隔で単調に変化することを特徴とする装置を提供する。
【0012】
別の態様では、物体認識のためのニューラルネットワークモデルを学習する方法であって、前記ニューラルネットワークモデルおよび重み関数を有する損失関数を用いて、学習画像セットから抽出された特徴の損失データを決定する損失決定工程と、前記損失データと更新関数とに基づいて前記ニューラルネットワークモデルのパラメータの更新動作を実行する更新工程とを備え、前記更新関数は、前記ニューラルネットワークモデルの前記重み関数を有する前記損失関数に基づいて導出され、前記重み関数および前記損失関数は、同じ方向に特定値間隔で単調に変化することを特徴とする方法を提供する。
【0013】
さらに別の態様では、少なくとも1つのプロセッサと、命令が格納される少なくとも1つの記憶装置と、を備えるデバイスを提供し、命令は、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、本明細書で説明される方法を実行させる。
【0014】
さらに別の態様では、プロセッサによって実行されると、本明細書で説明する方法を実行させる命令を記憶する記憶媒体が提供される。
【0015】
本開示の他の特徴は、添付図面を参照した以下の例示的な実施形態の説明から明らかになるのであろう。
【0016】
本開示のより良い理解は、添付の図面と併せて以下の実施形態の詳細な説明を考慮するときに得られ得る。図面において、同一または類似の構成要素を示すために、同一または類似の参照番号が使用される。
【図面の簡単な説明】
【0017】
図1図1は、従来技術における畳み込みニューラルネットワークモデルを用いた顔認識/認証の概略図を示す。
図2A図2Aは、従来技術における畳み込みニューラルネットワークモデルを学習するフローチャートを示す。
図2B図2Bは、従来技術における畳み込みニューラルネットワークモデルの学習結果を示す概略図である。
図3A図3Aは、超球面多様体(hyperspherical manifold)上の画像特徴ベクトルのマッピングを示す。
図3B図3Bは、画像特徴ベクトルを畳み込みニューラルネットワークモデルで学習した場合の学習結果を示す模式図である。
図3C図3Cは、本開示による畳み込みニューラルネットワークモデルの学習結果の概略図を示す。
図4A図4Aは、本開示による畳み込みニューラルネットワークモデルを学習するための装置のブロック図を示す。
図4B図4Bは、本開示による畳み込みニューラルネットワークモデルを学習するための方法のフローチャートを示す。
図5A図5Aは、クラス内重み関数およびクラス間重み関数のグラフを示す。
図5B図5Bは、クラス内勾配およびクラス間勾配の最終的に調整されたグラフを示す。
図5C図5Cは、接線方向に沿っている、最適化された勾配を示す。
図5D図5Dは、パラメータに関するクラス内勾配再調整関数およびクラス間勾配再調整関数のグラフを示す。
図5E図5Eは、パラメータに関するクラス内勾配およびクラス間勾配の最終的に調整されたグラフを示す。
図5F図5Fは、従来技術におけるクラス内勾配およびクラス間勾配の調整曲線を示す。
図6図6は、本開示による畳み込みニューラルネットワークモデル学習の基本概念フローチャートを示す。
図7図7は、本開示の第1の実施形態による畳み込みニューラルネットワークモデル学習のフローチャートを示す。
図8図8は、本開示の第2の実施形態による畳み込みニューラルネットワークモデル学習のフローチャートを示す。
図9図9は、本開示の第3の実施形態による畳み込みニューラルネットワークモデルにおける重み関数のパラメータを調整するフローチャートを示す。
図10図10は、本開示の第4の実施形態による畳み込みアプリケーションネットワークモデルにおける重み関数のためのパラメータを調整するフローチャートを示す。
図11図11は、本開示の第5の実施形態による畳み込みニューラルネットワークモデルのオンライン学習のフローチャートを示す。
図12図12は、入力画像が学習データセットにおいて物体用の適切な学習サンプルとして使用され得ることを示す概略図である。
図13図13は、入力画像が学習データセットにおいて新しい物体用の適切な学習サンプルとして使用され得ることを示す概略図を示す。
図14図14は、本開示の実施形態を実現可能なコンピュータシステムのハードウェア構成の一例のブロック図を示す。
【発明を実施するための形態】
【0018】
ここで説明されるのは、物体認識のためのモデル学習最適化に関する例示的な可能な実施形態である。以下の説明では、説明の目的で、本開示の完全な理解を提供するために、多数の特定の詳細が記載される。しかしながら、本開示は、これらの特定の詳細なしに実施できることは明らかである。他の例では、本開示を不必要にブロックし、カバーし、または不明瞭にすることを回避するために、周知の構造およびデバイスは詳細に説明されない。
【0019】
本開示の文脈では、画像がカラー画像、グレースケール画像などの様々な画像のうちの任意の1つを指すことができる。本明細書の文脈において、画像が物体を含むか否かを検出することができるように、そのような画像を処理することができる限り、画像の種類は特に限定されないことに留意されたい。さらに、画像は、オリジナル画像、または本出願の操作が画像に対して実行される前に前フィルタリングまたは前処理を受けた画像のバージョンなど、画像の処理されたバージョンとすることができる。
【0020】
この明細書の文脈では、物体を含む画像とは、画像が物体の物体画像を含むことを意味する。物体画像は、画像内の物体領域とも呼ばれる場合がある。物体認識とは、画像内の物体領域の画像を認識することも指す。
【0021】
この文脈では、物体が顔、手、身体等、他の生物または植物、または検出されることが意図される任意の他の物体のような、人の身体部分であり得る。一例として、物体の特徴、特にその代表的な特徴は、物体の「特徴ベクトル」と呼ぶことができるベクトル形式で表すことができる。例えば、顔を検出する場合には、人間の顔の代表部分の画素テクスチャ情報、位置座標等が画像の特徴ベクトルを構成する特徴として選択される。これにより、得られた特徴ベクトルに基づいて物体認識/検出/追尾を行うことができる。特徴ベクトルは、物体認識に用いるモデルによって異なっていてもよく、特に限定されるものではないことに留意されたい。
【0022】
以下、本開示の実施形態について、図面を参照して詳細に説明する。図中の同様の参照番号および文字は同様の項目を示しており、したがって、1つの図において1つの項目が定義されると、後続の図について説明する必要はないことに留意されたい。
【0023】
本開示では用語「第1の」、「第2の」などは時系列順、好み、または重要性を示すことを意図するのではなく、要素またはステップを区別するためにのみ使用される。
【0024】
図1は従来のディープフェイスモデルを用いた顔認識/認証の基本的な概念操作を示しており、主にディープフェイスモデルの学習段階と適用段階とを含み、ディープフェイスモデルは例えば、ディープ畳み込みニューラルネットワークモデルであってもよい。
【0025】
学習段階では、まずディープフェイスモデルに顔画像学習セットを入力して、顔画像の特徴ベクトルを取得し、次にSoftmax損失関数やその変形などの既存の損失関数を用いて、特徴ベクトルから分類確率P1、P2、P3、...、Pc(cはcカテゴリに対応する顔IDなどの学習セット内のカテゴリ数を示す)を取得し、画像がcカテゴリそれぞれに属する確率を示す分類確率と、取得した分類確率と、を実態値0、1、0、・・・、0(1は真の値を示す)と比較して、損失データとしてクロスエントロピーなどの両者の差分を決定し、ディープフェイスモデルを更新するように差分に基づいてフィードバックを行い、特定の条件が満たされるまで、更新されたフェイスモデルを用いて前述の動作を再開し、学習されたディープフェイスモデルを取得する。
【0026】
テスト段階では、識別または認証のための特徴を抽出するために、識別されるべき顔画像または認証されるべき顔画像が学習されたディープフェイスモデルに入力されてもよい。具体的には、実際のアプリケーションシステムでは2つの特定のアプリケーション:顔/物体認識および顔/物体検証があり得る。顔/物体認識への入力は一般に、単一の顔/物体画像である。学習された畳み込みニューラルネットワークは現在の画像内の顔/物体が認識された物体であるかどうかを識別するために使用され、顔/物体検証への入力は一般に、人の顔/物体画像のペアであり、学習された畳み込みニューラルネットワークは画像の入力ペアの特徴ペアを抽出するために使用され、最後に、画像の入力ペアが同じ物体に対応するかどうかが、特徴ペアの類似度に基づいて判定される。
【0027】
顔認証動作の一例を図1に示す。動作中、認証されるべき2つの顔画像は2つの顔画像が同じ人物の顔画像であるかどうかを認証するために、学習されたディープフェイスモデルに入力される。具体的にはディープフェイスモデルが特徴ベクトル対を形成するために、2つの顔画像の特徴ベクトルを個別に取得し、次いで、2つの特徴ベクトル間の類似度を判定することができ、例えば、類似度はコサイン関数によって決定することができる。類似度が特定の閾値以上である場合には2つの顔画像を同一人物の顔画像とみなし、類似度が特定の閾値未満である場合には2つの顔画像を同一人物の顔画像ではないとみなしてもよい。
【0028】
上記の説明から分かるように、ディープフェイスモデルの性能は物体認識の精度に直接影響を及ぼし、従来技術では、ディープ畳み込みニューラルネットワークモデルなどのディープフェイスモデルを学習して、より完全なデプス畳み込みニューラルネットワークモデルを得るために、様々な方法が利用されてきた。図2Aを参照して、従来技術におけるディープ畳み込みニューラルネットワークモデルのための学習処理を以下に説明する。
【0029】
まず、学習データセットが入力され、学習データセットは顔画像などの多数の物体画像、例えば、数万、数十万、数百万の物体画像を含むことができる。
【0030】
次に、入力学習データセット内の画像を前処理することができ、前処理動作は例えば、物体検出、物体位置合わせ、正規化などを含むことができる。特に、物体検出は例えば、人間の顔を含む画像から人間の顔を検出し、識別されるべき人間の顔を主に含む画像を取得することを指すことができ、物体位置合わせは、画像に含まれる異なる姿勢の物体画像を同じまたは適切な姿勢に位置合わせすることを指すことができ、それによって、位置合わせされた物体画像に基づいて物体検出/認識/追跡を実行することができる。顔認識は一般的な物体認識動作であり、顔認識学習画像セットについては、例えば、顔検出、顔位置合わせ等を含む様々な前処理を行うことができる。前処理動作は、当技術分野で知られている任意の他のタイプの前処理動作も含むことができることに留意されたく、ここでは詳細に説明しない。
【0031】
次に、前処理された学習画像セットは、特徴抽出のためにディープ畳み込みニューラルネットワークモデルに入力される。畳み込みニューラルネットワークモデルは当技術分野で公知の様々な構造およびパラメータ等を採用することができ、ここでは詳細に説明しない。
【0032】
次に、損失関数、とりわけ上述のSoftmax損失関数およびその変形を用いて損失が計算される。Softmax損失関数およびその変形(境界ベースのSoftmax損失関数)は、顔/物体認識において一般に使用される教師情報(supervised information)である。これらの損失関数は特徴間の分離を促進し、目標は理想的にはクラス間距離を最大化しながら、クラス内距離を最小化することである。Softmax損失関数の一般的な形態は以下の通りである:
【0033】
【数1】
【0034】
ここで、
【0035】
【数2】
【0036】
は、i番目の学習画像の埋め込み特徴であり、yiはxiのカテゴリラベルであり、Cは学習データセットのカテゴリ数であり、
【0037】
【数3】
【0038】
は、DCNNにおける最後の完全に接続されたレイヤの重みを表し、
【0039】
【数4】
【0040】
は、DCNNにおける最後の完全に接続されたレイヤのj番目の列の重みベクトルであり、
【0041】
【数5】
【0042】
は、バイアス項である。従来技術では、Softmaxに基づく損失関数がそこからバイアス項を除去し、
【0043】
【数6】
【0044】
に変換される。Lは確率を示す。
【0045】
そして、算出された損失データに応じて、畳み込みニューラルネットワークのパラメータをバックプロパゲーションにより更新する。
【0046】
しかしながら、先行技術の方法は全て、理想的な学習データセットが与えられると、クラス間距離が最大化され、クラス内距離が最小化されるという動作が厳密に実行されると仮定しているので、使用される損失関数は厳密にクラス内距離を最小化しクラス間距離を最大化するように設計され、このようにして、モデル学習中の更新/最適化で使用される収束勾配は固定スケールを有する。これにより、ノイズサンプルからの干渉など、現在の学習データセットの欠陥に起因するオーバーフィッティングが発生する可能性がある。
【0047】
具体的には、学習処理において、既存の学習方法はまず、クリーンサンプルの特徴を学習して、モデルがクリーンサンプルの大部分を効果的に識別できるようにし、次に、勾配方向に沿って雑音サンプルを連続的に最適化する。しかし、学習サンプル間の現在の距離にかかわらず、最適化のための収束勾配は固定スケールを持つ。このようにして、ノイズを含むサンプルも一定の速度で間違った方向に移動する可能性があり、学習の後期段階では、ノイズサンプルが他の物体の特徴空間領域に誤ってマッピングされ、モデルがオーバーフィットする。図2Bに示すように、ノイズサンプルは、学習セットが処理されるにつれてID2に対応するW2タイプサンプルに含まれ、クリーンサンプルから効果的に分離することができない。その結果、学習効果は常に最適であるとは限らず、学習されたモデルに悪影響を及ぼし、ID2の顔画像の誤認識さえももたらす可能性がある。
【0048】
さらに、従来技術のモデル学習処理で使用される損失関数は抽出された特徴に対して比較的複雑な変換、例えば、特徴ベクトルの領域から確率領域への変換を実行する。このような変換は、必然的に特定の変換誤差を導入する。これは、精度の低下および計算オーバヘッドの増加につながる可能性がある。
【0049】
更に、Softmax損失関数及びその変形例のような従来技術のモデル学習処理で使用される損失関数は全てクラス内距離及びクラス間距離を混合して確率を計算するので、クラス内距離及びクラス間距離が一緒に混合され、これは目標とする分析及び最適化を提供するのには都合が悪く、モデル学習の収束が不正確になり、更なる最適化されたモデルを得るのに失敗する可能性がある。
【0050】
本開示は、従来技術における上記の問題に鑑みて提案される。本開示におけるモデル最適化方法では、モデル学習処理中のモデル更新/最適化振幅(model updating/optimization amplitude)、特に収束勾配下降速度を動的に制御することが可能である。特に、収束勾配降下速度は学習処理の進行に適応的に一致することができ、特に、学習処理が進行することにつれて動的に変化し、特に、最良の学習結果に近づくと、よりゆっくりと収束するか、または停止さえすることができる。
【0051】
これは、ノイズサンプルのオーバーフィッティングを防ぐことができ、モデル学習が学習データセットに効果的に適応できることを保証し、ノイズを含む学習データセットに対しても高性能学習モデルを得ることができる。すなわち、ノイズの多い画像を含む可能性のある学習データセットに対しても、ノイズのある画像をクリーンな画像から効果的に分離することができ、オーバーフィッティングを可能な限り抑圧することができるので、モデル学習がさらに最適化されて改良された認識モデルが得られ、従って、より良い顔認識結果が得られる。
【0052】
以下、特に、画像特徴ベクトル、クラス内損失、クラス外損失等が関与する、本開示に係るディープ畳み込みニューラルネットワークモデルの学習に関与する特定のパラメータについて、添付図面を参照しながら例示的に説明する。
【0053】
本開示の実装において、すべての学習サンプルのデプス埋め込み特徴は超球面多様体上にマッピングされ、ここで
【0054】
【数7】
【0055】
は、i番目の学習画像の埋め込み特徴を表し、yiは、xiのカテゴリラベルであり、
【0056】
【数8】
【0057】
は、カテゴリyiの目標中心特徴であり、θyiは、xiと目標中心特徴Wyiとの間の角度である。Wjは別のカテゴリの目標中心特徴であり、θは別のカテゴリの目標中心特徴Wjとxiとの間の角度である。vintra(θyi)はクラス内勾配のスケールであり、vinter(θi)はクラス間勾配のスケールである。矢印が長いほど、図3Aに示すように、勾配が大きいことを示す。勾配の最適化方向は、常に超球の接線に沿って移動し、クラス内勾配の移動方向はクラス内角度を減少させる意図があることを示し、クラスのクラス間勾配の方向はクラス間角度を増加させる意図があることを示す。このようなマッピング処理に基づいて、クラス内角度およびクラス間角度を、それぞれクラス内距離およびクラス間距離として調整することができる。
【0058】
本開示の実装によれば、学習処理中にモデル更新/最適化振幅を動的に制御するための改良重み関数、すなわち収束勾配下降速度が提案される。
【0059】
最適化振幅を制約するために、本開示の重み関数のデザインアイデアは勾配の大きさを制限するのに有効なメカニズムをデザインすることであり、すなわち、ノイズを伴う学習データセットに適した勾配収束速度を柔軟に制御することができる。すなわち、重み関数の使用を通じて、可変振幅を使用して、畳み込みニューラルネットワークモデルを学習する間に学習収束を制御することができ、収束速度はだんだん遅く、または最適な学習結果に近づいたときに停止することさえあり、したがって、従来技術のように固定収束を強制する代わりに、収束は適切に停止または減速することができ、ノイズの多いサンプルのオーバーフィッティングを回避し、モデルが学習データセットに効果的に適応することができることを保証し、それによって、一般化の観点からモデル学習の性能を改善する。
【0060】
図3Bは本開示による畳み込みニューラルネットワークモデルの学習結果の概略図を示し、ここで、カテゴリ特徴は、オーバーフィッティングを引き起こすことなく効果的に分離される。具体的には、学習処理中、収束は反復の初期段階で強い。反復処理が進むにつれて、勾配収束能力は学習中期にはだんだん小さくなっていき、最終的には勾配収束は学習後期にほぼ停止するため、ノイズ特徴は学習モデルに影響を与えないであろう。
【0061】
図3Cは分類後の基本的な状況を示し、ID1、ID2、およびID3はそれぞれ、3つのカテゴリを示し、同じカテゴリの学習画像の特徴が可能な限り収集され、すなわち、クラス内角度が可能な限り小さく、異なるカテゴリの学習画像の特徴が可能な限り分離され、すなわち、クラス間角度が可能な限り大きい。
【0062】
以下、図面を参照して、本開示の物体認識モデル学習の実施の形態について説明する。
【0063】
図4Aは、本開示による、物体認識のためのニューラルネットワークモデルを最適化するための装置のブロック図を示す。装置400はニューラルネットワークモデルおよび重み関数を有する損失関数を使用して学習画像セットから抽出された特徴の損失データを決定するように構成された損失決定ユニット401と、損失データおよび更新関数に基づいてニューラルネットワークモデルのパラメータの更新動作を実行するように構成された更新ユニット402とを含み、更新関数はニューラルネットワークモデルおよび対応する重み関数の損失関数に基づいて導出され、重み関数および損失関数は同じ方向に特定値間隔で単調に変更する。
【0064】
本開示の一実施形態ではニューラルネットワークモデルがディープニューラルネットワークモデルであってもよく、取得された画像特徴は画像のディープ埋め込み特徴である。
【0065】
以下、図面を参照して、本開示の重み関数について説明する。
【0066】
本開示では図3Aに示されるように、学習サンプルのデプス埋め込み特徴が超球面多様体にマッピングされる場合、重み関数は学習サンプルおよびターゲット中心の最適勾配方向を、超球面の接線に常に追従するように制約することができる。
【0067】
本開示の一実施形態によれば、重み関数および損失関数は両方とも、角度の関数であってもよく、角度は超球面多様体上にマッピングされた抽出された特徴と、ニューラルネットワークモデルの全結合層内の特定の重みベクトルとの間の角度である。具体的には、特定の重みベクトルが学習画像セット内の物体の特定のカテゴリの特徴中心とすることができる。例えば、学習画像から抽出された特徴について、特定の重みベクトルは学習画像が属するカテゴリの目標特徴中心、または他のカテゴリの目標特徴中心を含むことができ、したがって、交差角度は、クラス内角度およびクラス間角度のうちの少なくとも1つを含むことができる。
【0068】
したがって、特徴ベクトルを交差エントロピー(cross entropies)に変換し、交差エントロピーの損失を従来技術のように損失関数として使用する必要なく、特徴ベクトル間の交差角を損失関数の目標として直接最適化することができ、それにより、損失関数の目標が予測処理の目標と一致することを保証する。具体的には損失関数の対象が特定の物体ベクトル間の角度とすることができ、前述の物体検証段階などの予測段階では、抽出された2つの物体特徴ベクトル間の角度に基づいて、それらが同じ物体に対応するかどうかが判定される。この場合、予測処理の目標も角度であるため、損失関数の目標を予測処理の目標と一致させることができる。このようにして、損失データを決定し、それに基づいてフィードバックを行う動作を簡素化し、中間変換処理を削減し、演算オーバヘッドを削減し、演算精度の悪化を防ぐことができる。
【0069】
本開示の一実施形態によれば、重み関数は、損失関数に対応する。本開示の一実施形態によれば、損失関数が少なくとも1つのサブ関数を含む場合、重み関数は、損失関数に含まれる少なくとも1つのサブ関数のうちの少なくとも1つに対応することができる。一例として、重み関数は、損失関数に含まれる少なくとも1つのサブ関数のうちの1つに対応する1つの重み関数であってもよい。別の例として、重み関数は損失関数に含まれる2つ以上のサブ関数に対応する2つ以上のサブ重み関数を含むことができ、2つ以上のサブ重み関数の数は、2つ以上のサブ関数の数と同じである。
【0070】
本開示の実施形態によれば、同じ方向の単調変化とは、重み関数と損失関数が、値の変化と同じ方向に特定値間隔で変化することを意味し、例えば、値が増加するのと同じ方向に増加または減少する。本開示の一実施形態によれば、特定値間隔は、特定角度値間隔、特に、クラス内角度またはクラス間角度に対応する最適化のための角度間隔であってもよい。好ましくは、上記のような超球面多様体マッピングの場合、クラス内角度およびクラス間角度は、[0、π/2]で最適化されてもよく、したがって、特定角度値間隔は、[0、π/2]であり、好ましくは、重み関数および損失関数が特定角度値間隔において同じ方向に単調に変化してもよく、同じ方向に単調かつ滑らかに変化してもよい。
【0071】
本開示の実施形態によれば、重み関数は損失関数と同じ方向に特定角度値間隔で単調に変化できる限り、様々な種類の関数のいずれであってもよく、値間隔の2つの端点近傍にカットオフ点を有する。特に、曲線の勾配は、値間隔の終点で実質的にゼロである。
【0072】
本開示の実施形態によれば、重み関数は、Sigmoid関数または同様の関数であってもよく、以下のように表すことができる。
【0073】
【数9】
【0074】
これらの中で、SはSigmoid曲線の勾配を制御する初期スケールパラメータであり、nおよびmは、それぞれ、Sigmoid曲線の勾配および水平切片を制御するパラメータである。これらのパラメータは、実際には勾配の移動速度を抑制するために柔軟な間隔を制御する。従って、最適化目標、すなわち角度を再調整するために重み関数から角度のスカラー関数を得ることができる。可能な重み関数のグラフが図5Aに示されており、これは0とπ/2との間で単調に増加または単調に減少し、一方、0およびπ/2に近い終点付近で実質的に一定の値を維持し、ここで、左のグラフはクラス内損失についての重み関数を参照することができ、右のグラフはクラス間損失についての重み関数を参照することができる。横軸は約0~1.5などの角度値の範囲を示し、縦軸は例えば、約0~70のスケールの範囲を示し、例えば、図5D~5Eの値と同様であってもよいが、これらの値は例示にすぎず、以下で詳細に説明することに留意されたい。
【0075】
1つの実装によれば、オリジナルの損失の勾配の大きさは角度のサイン関数に関係するので、最終的な勾配の大きさも重み関数とサイン関数の組合せ(例えば積)に比例する。したがって、重み関数がそのようなSigmoid関数などである場合には、図5Bに示すように、更新処理中の収束勾配の大きさを適宜決定することができ、左側のグラフはクラス内損失の収束勾配の大きさを差し、右側のグラフはクラス間損失の収束勾配の大きさを指すことができる。横軸は角度値の範囲、縦軸はスケールの範囲を示す。これらの値は単に例示的なものであり、例えば、図5D図5Eの値と同様であってもよい。
【0076】
本開示の一実施形態によれば、重み関数のパラメータは、学習データおよび検証データの平均性能に従って設定/選択されてもよい。本開示の一実施形態によれば、勾配パラメータおよび切片パラメータを含む重み関数のパラメータ、例えば、上述のSigmoid関数などにおけるパラメータn、mなどのうちの少なくとも1つを調整することができる。
【0077】
本開示の一実施形態によれば、(特定の反復回数を経過した可能性がある)学習のラウンドの後、特定の条件に基づいて、パラメータをさらに調整すべきかどうかを決定することができる。一例として、特定の条件は、学習結果または調整の数に関連し得る。一例として、パラメータ調整は、所定の数の調整に達したときにはもはや実行されなくてもよい。別の例として、選択は、現在の学習結果と以前の学習結果との間の比較に基づいて行うことができる。学習結果は例えば、現在の学習によって決定されたモデルによって決定された損失データであってもよい。現在の学習結果が以前の学習結果よりも悪い場合、パラメータは調整されず、現在の学習結果が以前の学習結果よりも良好である場合、パラメータは、所定数の調整に達するか、または学習結果がより良くならなくなるまで、以前のパラメータ調整モードに従って調整され続けることができる。
【0078】
本開示の一実施形態によれば、重み関数の1つのパラメータに対して2つの初期値を設定することが可能であり、次いで、各パラメータ値を使用して、反復損失データ決定および更新動作を実行し、各パラメータに対する1ラウンドの学習が完了した後、より良好な学習結果(例えば、学習されたモデルによって引き起こされる損失データ)につながるパラメータ値が選択され、選択されたパラメータ値の周りの2つのパラメータ値が、学習動作の次のラウンドで使用される重み関数のパラメータとして設定される。このような処理は、所定数の調整に達するか、または学習結果がもはや良好でなくなるまで繰り返される。一例として、重み関数のパラメータnについて、その初期値を1および1.2に設定することができ、反復のラウンドの後、n=1のパラメータがより良好な結果を達成することができることが分かり、次いで、nの値を0.9および1.1にさらに設定することができ、その後の反復および調整が、所定の数の調整に達するか、または学習結果がもはやより良好でなくなるまで繰り返される。
【0079】
本実施形態によれば、重み関数における複数のパラメータを様々な方法で調整することができる。一例として、調整はパラメータごとに実行することができ、すなわち、1つのパラメータに対する調整が完了した後、別のパラメータが調整され、各パラメータが上述のように調整され、その調整中に、他のパラメータを固定したままにすることができる。特に、上記のSigmoid関数などについては、最初に傾きパラメータを調整し、次に切片パラメータを調整することができる。別の例として、複数のパラメータを同時に調整することができ、例えば、各パラメータは以前の調整と同じ方法で調整することができ、その結果、新しいパラメータ値のセットを取得し、後続の学習に使用することができる。
【0080】
例えば、2つの初期値セット、すなわち、第1の値セットおよび第2の値セットをハイパーパラメータに設定することができ、各初期値セットを利用して、モデル学習を実行して、対応する検証データセットのパフォーマンスを得ることができる。得られた検証データセットのパフォーマンスを比較することによって、より良いパフォーマンスが選択され、改善されたパラメータ値の2つのセットがより良いパフォーマンスに対応する初期パラメータ値の近くに設定され、このような改善されたパラメータ値の2つのセットがモデル学習を実行するために再び利用され、最も適切なハイパーパラメータ位置が決定されるまで、反復が継続する。
【0081】
以下、本開示に係る損失関数について説明する。
【0082】
本開示の一実施形態によれば、損失データを算出するための損失関数は、特に限定されない。一例として、一般的な損失関数を使用して損失データを計算することができ、損失関数は例えば、ニューラルネットワークモデルのオリジナルの損失関数とすることができ、交差角度に関連付けることができる。
【0083】
本開示の一実施形態によれば、損失関数は、特定値間隔内で実質的に単調に変化する関数である。一例として、特定値間隔が特定角度値間隔[0、π/2]である場合、損失関数は交差角度のコサイン関数とすることができ、したがって、重み関数は、損失関数と同じ方向に特定値間隔内で単調に変化することもできる。
【0084】
本開示の別の実装によれば、本開示による重み関数に基づいて決定される新しい損失関数が提案され、それによって、損失関数は物体認識モデルの学習中に損失データを得るために使用することができ、モデルは損失データおよび重み関数に基づいて更新/最適化されることができるので、モデルに対する更新/最適化振幅をさらに適応的に制御することができ、モデルの更新/最適化を改善することができる。一実施形態によれば、損失データを計算するために使用される損失関数は、ニューラルネットワークモデルの損失関数と重み関数との組合せであってもよい。一実施形態によれば、損失データを計算するために使用される損失関数は、ニューラルネットワークモデルの損失関数と重み関数との積であってもよい。特に、ここで、ニューラルネットワークモデルの損失関数とは、重み関数によって重み付けされていないオリジナルの損失関数を指し、損失データを計算するために使用される損失関数とはオリジナルの損失関数を重み関数によって重み付けすることによって得られる重み関数を指すことができる。
【0085】
本開示の一実施形態によれば、考慮されるべき損失データは、クラス内損失およびクラス間損失の両方を含むことができる。したがって、モデル学習に使用される損失関数は、2つのサブ関数:クラス内損失関数およびクラス間損失関数を含むことができる。前述の超球面多様体マッピングの場合、そのような2つのサブ関数は、それぞれクラス内角度損失関数およびクラス間角度損失関数である角度に関連することができる。したがって、クラス内損失およびクラス間損失について個別に解析および最適化を実行することができ、その結果、クラス内勾配項およびクラス間勾配項を分離することができ、これは、クラス内損失項およびクラス間損失項を個別に解析および最適化するのに役立つ。
【0086】
本開示の実装によれば、本開示の損失関数はクラス内損失関数およびクラス間損失関数を含むことができ、クラス内損失関数およびクラス間損失関数のうちの少なくとも1つはそれに対応する重み関数を有することができ、したがって、物体認識モデル学習では重み関数を使用して、モデルを更新/最適化することができる。例えば、クラス内損失やクラス間損失については、重み関数に基づいて決定されたクラス内更新関数やクラス間更新関数をモデル更新/最適化に利用することができ、モデル更新/最適化の制御をある程度向上させることができる。
【0087】
本開示の実装によれば、本開示の損失関数はクラス内損失関数およびクラス間損失関数を含むことができ、クラス内損失関数およびクラス間損失関数のうちの少なくとも1つは、それに対応する重み関数に基づいて決定される。したがって、クラス内損失関数およびクラス間損失関数のうちの少なくとも1つは、対応する重み関数によって重み付けされた重み関数とすることができる。好ましくは、損失関数に含まれるクラス内損失関数およびクラス間損失関数の両方が対応する重み関数によって重み付けされる重み付け関数であってもよい。
【0088】
本開示の一実施形態によれば、損失関数はクラス内角度損失関数を含み、クラス内角度は超球面多様体上にマッピングされた抽出された特徴と、真理値物体(truth object)を表すニューラルネットワークモデルの全結合層内の特定の重みベクトルと、の間の交差角度であり、更新関数は、クラス内角度損失関数およびクラス内角度の重み関数に基づいて決定される。
【0089】
本開示の実施形態によれば、クラス内角度損失関数は主に、クラス内角度を最適化すること、特にクラス内角度を適度に低減することを目的とし、したがって、クラス内角度損失関数は、クラス内角度が低減することにつれて低減する。すなわち、クラス内角度損失関数は、特定値間隔にわたって単調に増加する関数でなければならない。これに対応して、クラス内角度に対する重み関数は、特定値間隔にわたって、非負で単調に増加し、好ましくは滑らかで単調に増加する関数である。
【0090】
一例として、クラス内角度の範囲は[0、π/2]である。クラス内角度損失関数はクラス内角度のコサイン関数、特に負の値をとるクラス内角度のコサイン関数とすることができ、クラス内角度の重み関数は、0に近い水平カットオフ点を有する。
【0091】
一例として、クラス内角度損失関数は
【0092】
【数10】
【0093】
とすることができ、θyiは、
【0094】
【数11】
【0095】
【0096】
【数12】
【0097】
との間のクラス内角度距離である。
【0098】
別の例として、クラス内角度損失関数は、重み関数に基づいて決定される
【0099】
【数13】
【0100】
であってもよく、ここで、
【0101】
【数14】
【0102】
は、クラス内角度に対する勾配再調整関数であり、これは本開示の重み関数に対応しており、
【0103】
【数15】
【0104】
は、学習処理中にクラス内角度距離損失を重み付けするために使用されるブロック勾配演算子であり、各学習反復中に、その定数値が重み付けのために計算され、勾配が後の段階で計算されるときに、その寄与が考慮されない。
【0105】
本開示の一実施形態によれば、損失関数はクラス間角度損失関数をさらに含み、クラス間角度は超球面多様体上にマッピングされた抽出された特徴とニューラルネットワークモデルの全結合層内の別の重みベクトルとの間の交差角度であり、更新関数は、クラス間角度損失関数およびクラス間角度の重み関数に基づいて決定される。
【0106】
本開示の実施形態によれば、クラス間角度損失関数は主に、クラス間角度を最適化すること、特にクラス間角度を適切に増加させることを目的とし、したがって、クラス間角度損失関数は、クラス間角度が増加することにつれて減少する。すなわち、クラス間角度損失関数は、特定値間隔にわたって単調に減少する関数でなければならない。これに対応して、クラス間角度に対する重み関数は非負であり、特定値間隔にわたって単調に減少し、好ましくは滑らかに単調に減少する関数である。
【0107】
一例として、クラス間角度値の範囲は[0、π/2]である。クラス間角度損失関数はクラス間角度のコサイン関数であってもよく、クラス間角度の重み関数はπ/2付近に水平カットオフ点を有する。
【0108】
一例として、クラス間角度損失関数は
【0109】
【数16】
【0110】
であってもよく、ここで、
【0111】
【数17】
【0112】
は、
【0113】
【数18】
【0114】
【0115】
【数19】
【0116】
との間のクラス間角度距離である。ここで、Cは、学習画像セット内のカテゴリの数である。
【0117】
別の例として、クラス間角度損失関数は、重み関数に基づいて決定される
【0118】
【数20】
【0119】
であってもよく、ここで、rinterj)は、本開示の重み関数に対応するクラス間角度の勾配再調整関数であり、
【0120】
【数21】
【0121】
は、クラス間コサイン角距離損失を重み付けするために使用されるブロック勾配演算子であり、各学習反復中に、その定数値が重み付けのために計算され、勾配が後の段階で計算されるときにその寄与が考慮されない。
【0122】
以下、本開示に係る更新関数及び更新ユニットの動作について説明する。
【0123】
本開示の一実施形態によれば、更新関数は、損失関数および重み関数に基づいて決定されてもよい。一実施形態によれば、更新関数は、重み関数および損失関数の偏導関数に基づくことができる。好ましくは、更新ユニットが、ニューラルネットワークモデルを更新するための更新勾配を決定するために、損失関数の偏導関数に重み関数を乗算するようにさらに構成される。一例として、本明細書で説明される損失関数は、重み関数によって重み付けされない損失関数など、ニューラルネットワークモデルにおける初期損失関数を指すことができることに留意されたい。
【0124】
本開示の一実施形態によれば、損失関数が少なくとも1つのサブ損失関数を含む場合に、更新関数は、その偏導関数のような少なくとも1つのサブ損失関数、及びそれに対応する重み関数のうちの少なくとも1つに基づいて決定され得る。一例として、更新関数は、その偏導関数のような少なくとも1つのサブ損失関数、及び1つのサブ損失関数に対応する重み関数のうちの1つに基づいて決定され得る。別の例として、更新関数は、それらの偏導関数のような2つ以上のサブ損失関数と、2つ以上のサブ損失関数にそれぞれ対応する重み関数と、に基づいて決定されてもよい。
【0125】
本開示の一実施形態によれば、更新ユニットは、バックプロパゲーション方法および決定された更新勾配を用いてニューラルネットワークモデルのパラメータを更新するようにさらに構成される。ニューラルネットワークモデルが更新された後、更新ユニットは、更新されたニューラルネットワークモデルを用いることによって動作する。
【0126】
本開示の一実施形態によれば、ニューラルネットワークモデルを更新した後に決定された損失データが閾値よりも大きく、損失決定ユニットおよび更新ユニットによって実行される反復動作の数が所定の反復回数に達しない場合、更新ユニットは、決定された損失関数が閾値以下になるか、または反復動作の数が所定の反復回数に達するまで、次の反復更新動作に進む。一例として、更新ユニットは損失データが閾値よりも大きいか否かを判定し、かつ/または、繰り返し回数が所定回数に達したか否かを判定する判定ユニットと、判定結果に応じて更新動作を実行する処理ユニットとを含んでもよい。
【0127】
クラス内損失関数およびクラス間損失関数の両方と、それらの対応する重み関数とを含む、本開示による損失関数の例示的な実装について、以下で説明する。
【0128】
最適化の程度を制約するために、本開示の損失関数の概念は勾配の大きさを制限するのに有効なメカニズムを提供することであり、これは、学習処理中のクラス内角度の減少およびクラス間角度の増加を適切に制約/制御することができる。したがって、本発明による超球面多様体上のxiに関するシグモイド制約のための新しい損失関数(SFace)は、クラス内損失とクラス間損失の両方から構成され、すなわち、
【0129】
【数22】
【0130】
【0131】
特に、クラス内損失Lintrayi)およびクラス間損失Linterj)は、以下のように定義される。
【0132】
【数23】
【0133】
中でも、θyiは、
【0134】
【数24】
【0135】
【0136】
【数25】
【0137】
との間のクラス内角度距離であり、θj(j≠yi)は、
【0138】
【数26】
【0139】
【0140】
【数27】
【0141】
との間のクラス間角度距離である。中でも、
【0142】
【数28】
【0143】
は、重み関数により計算された勾配スカラーを示し、これは学習処理中のクラス内コサイン角距離損失とクラス間コサイン角距離損失を重み付けし、その定数値は各反復における重み付けに対して計算される。
【0144】
順方向伝搬処理では、現在の損失が新しい損失関数SFaceに従って計算され、その式は以下の通りである。
【0145】
【数29】
【0146】
更新のためのバックプロパゲーション処理では、バックプロパゲーションアルゴリズムの原理に従って、パラメータ更新に使用される偏導関数も、以下のようにブロック勾配演算子によって重み付けされる。
【0147】
【数30】
【0148】
中でも、
【0149】
【数31】
【0150】
ここで、上記式(5)~(7)は、本開示に係る更新関数に相当する。
【0151】
上記式(8)~(11)は、数学的導出操作により直接求めることができる。式(8)の導出については以下に詳細に説明するが、同様の数学的導出によって他の式が計算可能であることを理解されたい。
【0152】
【数32】
【0153】
について、
ここで、
【0154】
【数33】
【0155】
導出は次の通りである。
【0156】
まず第一に、
【0157】
【数34】
【0158】
その偏導関数は
【0159】
【数35】
【0160】
である。
【0161】
したがって、次のように結論付けることができる。
【0162】
【数36】
【0163】
なぜなら、図5Cに示すように、
【0164】
【数37】
【0165】
であるから、最適勾配方向は常に超球の接線方向に従う。勾配は半径方向に成分を有していないので、
【0166】
【数38】
【0167】
【数39】
【0168】
および
【0169】
【数40】
【0170】
は、学習処理の間、ほとんど変化しないままであり、
【0171】
【数41】
【0172】
および
【0173】
【数42】
【0174】
は、最適化ターゲットを再調整するために、それぞれ、θyiおよびθjのスカラー関数としてさらに設計される。
【0175】
図3Aに示すように、勾配を再調整することができる、すなわち、ターゲット中心および学習サンプルの移動速度を制御することができる2つの要因が実際に存在する。従って、
【0176】
【数43】
【0177】
および
【0178】
【数44】
【0179】
は、重み関数に基づいて決定される勾配再調整関数として設定することができる。クラス内損失およびクラス間損失の初期勾配の大きさはそれぞれsinθyiおよびsinθjに比例するので、最終勾配の大きさはそれぞれ
【0180】
【数45】
【0181】
および
【0182】
【数46】
【0183】
に比例する。
【0184】
よく知られているように、学習を開始するとき、初期のクラス内角度距離θyiおよびクラス間角度距離θjのそれぞれは、約π/2である。学習が進行することにつれて、クラス内損失関数は、クラス内角度θyiを徐々に減少させ、クラス間損失関数は、クラス間角度θjが減少するのを防止する。したがって、本開示による勾配強度制御のための関数νintrayi)およびνinter(θj)は、以下の特性を満たすことができる。
(1) 関数νintrayi)は、非負であり、間隔[0,π/2]内で単調に増加する関数であるべきであり、その結果、xiとWyiとが互いに接近することにつれて、それらの移動速度が徐々に減少することを保証することができる。
(2) 関数νinterj)は、非負であり、間隔[0,π/2]内で単調に減少する関数であるべきであり、その結果、xiとWjとが互いに接近した場合に、重みが迅速に拡大することを保証することができる。
(3) 学習データにおけるノイズの存在を考慮して、クラス内損失の収束速度を制限するために、0のクラス内角度付近で柔軟なカットオフ点で関数νintrayi)を設計すべきである。クラス間損失の収束速度を制御するために、π/2のクラス間角度付近で柔軟なカットオフ点で関数νinterj)を設計すべきである。このようにして、クラス内およびクラス間最適化ターゲットは、厳密に最大化または最小化されるのではなく、適度に調整することができる。
【0185】
勾配の移動速度をノイズを含む学習データに適合するように柔軟に制御するために、Sigmoidに基づく重み関数rintrayi)およびrinterj)を提案し、それらの具体的な式は以下の通りである。
【0186】
【数47】
【0187】
このうち、Sは2つのシグモイドタイプの曲線の勾配を制御する初期スケールパラメータであり、aおよびbはシグモイドタイプの曲線
【0188】
【数48】
【0189】
の勾配および水平切片を制御するパラメータであり、cおよびdはシグモイドタイプの曲線
【0190】
【数49】
【0191】
の勾配および水平切片を制御するパラメータであり、これらのパラメータは、実際には勾配の移動速度を抑制するために柔軟な間隔を制御する。
【0192】
さらに、上記式(15)、(16)は、以下の式に置き換えてもよいことに留意されたい。
【0193】
【数50】
【0194】
ここで、kは、そのような重み関数のシグモイドタイプの曲線の勾配を制御するパラメータを意味しており、aおよびbは、それぞれの重み関数のシグモイドタイプの曲線の水平切片を制御するパラメータを意味する。式(15)や式(16)に比べて、上記式に含まれるパラメータの数が少なく、これは、これらの式では扱いやすさを保証することができることを意味する。
【0195】
シグモイドタイプの曲線についての重み関数rintrayi)およびrinterj)は、図5Dに示されるように、そのパラメータによって変化する。さらに、クラス内勾配再調整関数およびクラス間勾配再調整関数の理論的な大きさは、
【0196】
【数51】
【0197】
および
【0198】
【数52】
【0199】
であり、そのような関数を用いて、本開示の方法によりクラス内勾配およびクラス間勾配について最終調整曲線を示す図5Eに示すように、クラス内勾配およびクラス間勾配について適切な調整曲線を得ることができる。
【0200】
本開示による重み関数は、クラス内損失およびクラス外損失を制御するために使用され、異なる学習セットに適するように勾配収束速度を制御する。好ましくはクラス内角度に対する重み関数がクラス内角度が減少することにつれて滑らかに単調に減少するべきであり、重み関数のハイパーパラメータは勾配の大きさを学習データセットにより適したものにするように調整することができる。クラス間角度に対する重み関数は、クラス間角度が大きくなるにつれて滑らかに単調に減少するべきであり、重み関数のハイパーパラメータは、勾配の大きさを学習データセットにより適したものにするように調整することができる。
【0201】
本開示によるモデル学習方法と、既存のSoftmaxベースの学習方法と、の間の差を以下に説明する。
【0202】
上述のオリジナルのSoftmax関数に加えて、精度をさらに改善するために、大きな境界の考え方が現在、
【0203】
【数53】
【0204】
に導入されている。このようにして、Softmaxベースの損失関数は、以下のように定義することができる。
【0205】
【数54】
【0206】
その中でも、NSoftmax方法では
【0207】
【数55】
【0208】
、CosFace方法では、
【0209】
【数56】
【0210】
、ArcFace方法では、
【0211】
【数57】
【0212】
。θyiが損失関数と共に減少し、θjが損失関数の最適化と共に増加することが理論的に分かる。バックプロパゲーションの処理において、それらの偏導関数式は以下の通りである。
【0213】
【数58】
【0214】
このうち、NSoftmax方法およびCosFace方法では、
【0215】
【数59】
【0216】
、ArcFace方法では、
【0217】
【数60】
【0218】
【0219】
なお、上記の偏導関数式(18)および(19)は、本開示の技術的解決策との比較のためにのみ導出されたものであり、その導出過程は以下の通りである。ただし、本実施形態では、このような式変換を必ずしも行う必要はない。
【0220】
式(18)の導出は以下の通りである。
【0221】
まず、連鎖律に従って、次式を得ることができる。
【0222】
【数61】
【0223】
中でも、
【0224】
【数62】
【0225】
よって、得ることができる。
【0226】
【数63】
【0227】
式(19)の導出は以下の通りである。
【0228】
【数64】
【0229】
また、softmaxベースの損失関数は、以下の式と同等である。
【0230】
【数65】
【0231】
その中で、
【0232】
【数66】
【0233】
なお、上記式(25)は、本開示の技術的解決策との比較のためにのみ導出されるものであるが、本実施形態では、損失関数が必ずしも式(25)として導出されるものではない。
【0234】
さらに、ディープニューラルネットワークのパラメータは、学習処理全体の間のバックプロパゲーション段階においてのみ更新され、式(17)および式(25)のバックプロパゲーション機能は同じであるから、つまり、
【0235】
【数67】
【0236】
したがって、モデル学習段階では、式(17)と式(25)とは互いに同等である。
【0237】
上記に書き換えた損失関数から、Softmaxベースの損失関数は、球に特定の最適化速度制約があるメトリック学習方法と見なすことができることが分かる。既存の方法の実験的解析によれば、θjの大部分は、実際の学習の間、わずかな変化を伴ってπ/2の近傍に維持されているので、
【0238】
【数68】
【0239】
と仮定することができ、次の推論が得られる。
【0240】
【数69】
【0241】
より直観的な比較のために、NSoftmax、CosFace、およびArcFace方法のクラス内勾配調整関数
【0242】
【数70】
【0243】
およびクラス間勾配調整関数
【0244】
【数71】
【0245】
に対応する曲線を図5Fに示し、ここで、(1)はNSoftmax方法のクラス内勾配vintrayi)およびクラス間勾配vinterj)の曲線を示し、(2)はCosFace方法のクラス内勾配vintrayi)およびクラス間勾配vinterj)の曲線を示し、(3)は、ArcFace方法のクラス内勾配vintrayi)およびクラス間勾配vinterj)の曲線を示す。ここで、θyiは、クラス間勾配調整関数の曲線においてπ/4として設定される。しかし、実際には、θjは実際にはπ/2の近傍で変動するがθyiは徐々に減少するので、この仮定は常に真であるとは限らない。
【0246】
図5E図5Fとの比較から、softmaxベースの損失関数は、クラス内およびクラス間最適化処理を正確に制御することができないことは明らかである。特に、従来技術における損失関数に対応する勾配曲線はほぼ同じ形状を有する一組の曲線であり、すなわち、それらの勾配の大きさは類似のルールに従った変更であるため、勾配の大きさの変更は基本的に、モデル学習/最適化処理中に固定されるため、オーバーフィッティングを効果的に回避することはできない。逆に、本開示による損失関数は最適化処理を精密に制御することができる。特に、異なる学習データセットに適応するようにパラメータを使用することによって勾配曲線の勾配の大きさの変化規則を正確に制御することによって、オーバーフィッティングを効果的に低減するか、または回避することさえできる。
【0247】
本開示によれば、装置は、ニューラルネットワークモデルを使用して学習画像セットから画像特徴を取得するように構成された画像特徴取得ユニットをさらに含むことができる。画像特徴の取得は当技術分野で公知の方法で行うことができ、ここでは詳細に説明しない。もちろん、画像特徴取得ユニットは、本開示による装置の外部に配置されてもよい。
【0248】
なお、図4Aは学習装置の構造構成の概略図のみを示しており、学習装置は他の可能なユニット/構成要素(例えば、ストレージ等)をさらに含んでいてもよい。記憶装置は学習装置によって生成された様々な情報(例えば、学習セットの画像特徴、損失データ、関数パラメータ値など)、学習装置の動作に使用されるプログラムおよびデータなどを記憶することができる。例えば、記憶装置はランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、リードオンリーメモリ(ROM)、フラッシュメモリ等を含むが、これらに限定されない。一例として、記憶装置は、学習装置の外部に配置されてもよい。学習装置はデータアクセスのために記憶装置に直接的または間接的に接続されてもよい(例えば、他の構成要素がそれらの間に挿入されてもよい)。記憶装置は、揮発性記憶装置および/または不揮発性記憶装置であってもよい。
【0249】
上記ユニットはそれらが実装する特定の機能に従って分割された論理モジュールであってもよく、特定の実装を制限するために使用されないことに留意されたい。例えば、それらは、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアの組合せで実装可能である。実際の実装では、前述のユニットが独立した物理エンティティとして実装されてもよく、または単一のエンティティ(例えば、プロセッサ(CPUまたはDSPなど)、集積回路など)によって実装されてもよい。また、上述した個々のユニットは実際には存在しない可能性があることを示すために図中の破線で示してあり、それらが実装する動作/機能は、処理回路自体によって実現されてもよい。
【0250】
なお、上述した学習装置は、複数のユニットを備えることに加えて、汎用プロセッサやASIC等の専用処理回路等、他の様々な形態で実現されてもよい。例えば、学習装置は、回路(ハードウェア)や、CPU(central processing unit)等の中央処理装置によって構成することができる。また、学習装置は、回路(ハードウェア)や中央処理装置を動作させるためのプログラム(ソフトウェア)を搭載していてもよい。プログラムは外部から接続された記憶装置(記憶装置に配置されるなど)や外部記憶媒体に格納し、ネットワーク(インターネットなど)を介してダウンロードすることができる。
【0251】
本開示の一実施形態によれば、図4Bに示されるように、物体認識のためのニューラルネットワークモデルを学習するための方法が提案され、方法500はニューラルネットワークモデルおよび重み関数を有する損失関数を使用して学習画像セットから抽出された特徴の損失データを決定する損失決定ステップ502と、損失データおよび更新関数に基づいてニューラルネットワークモデルのパラメータの更新動作を実行する更新ステップ504とを含み、更新関数は重み関数を有するニューラルネットワークモデルの損失関数に基づいて導出され、重み関数および損失関数は同じ方向に特定値間隔で単調に変化する。
【0252】
本開示によれば、本方法は、ニューラルネットワークモデルを使用して学習画像セットから画像特徴を取得する画像特徴取得ステップをさらに含むことができる。画像特徴の取得は当技術分野で公知の方法で行うことができ、ここでは詳細に説明しない。もちろん、画像特徴取得ステップは、本開示による方法に含まれなくてもよい。
【0253】
本開示による方法は、本明細書では詳細に説明しない、上述の様々な動作を含むこともできることに留意されたい。なお、本開示に係る方法の各ステップ/動作は上述したユニットによって行うことができ、様々な形態の処理回路によって行うこともできる。
【0254】
以下、図6を参照して、本開示に係るモデル学習動作について説明する。図6は、本開示によるモデル学習動作の基本フローチャートを示す。
【0255】
まず、学習データセットが入力され、学習データセットは顔画像などの多数の物体画像、例えば、数万、数十万、数百万の物体画像を含むことができる。
【0256】
次に、入力学習データセット内の画像を前処理することができ、前処理動作は例えば、物体検出、物体位置合わせなどを含むことができる。顔認識を例にとると、前処理は顔を含む画像から顔を検出し、認識されるべき顔を主に含む画像を取得するなどの顔検出を含むことができる。顔位置合わせは、顔認識のための一種の正規化動作に属する。顔位置合わせの主な目的は、画像をいくつかの標準化された形状または構造に向けて位置合わせすることによって、望ましくないクラス内変化を排除することである。前処理動作は、当技術分野で知られている他のタイプの前処理動作も含むことができることに留意されたく、ここでは詳細な説明は行わない。
【0257】
次に、学習セット内の前処理された画像は、特徴抽出のために畳み込みニューラルネットワークモデルに入力される。畳み込みニューラルネットワークモデルは当技術分野で公知の様々な構造を採用することができ、ここでは詳細に説明しない。
【0258】
そして、損失関数により損失を算出する。損失関数は当技術分野で知られている関数であってもよいし、本開示に従って提案される重み関数に基づく損失関数であってもよい。
【0259】
そして、算出された損失データに基づいて、畳み込みニューラルネットワークのパラメータを逆伝搬により更新する。本開示に従って定義される更新関数は、畳み込みニューラルネットワークモデルのパラメータを更新するために、バックプロパゲーションにおいて使用され得ることに留意されたい。更新関数は、上記のように定義されており、ここでは詳細に説明しない。
【0260】
既存の無制約学習法はノイズサンプルを厳密に間違ったラベル上に引きずり、それによってノイズサンプルをオーバーフィットさせる。しかしながら、本開示によるモデル学習は、ノイズサンプルを穏やかに最適化するので、この問題をある程度軽減する。
【0261】
本開示の一実施形態によれば、モデル更新/最適化の振幅を動的に制御するための改良された重み関数、すなわち勾配降下速度を学習処理中に使用することによって、畳み込みニューラルネットワークモデルのような物体認識のためのモデルの学習を従来技術と比較して更に最適化することができるので、より最適化された物体認識モデルを得ることができ、今度は物体認識/認証の精度を更に向上させる。
【0262】
加えて、本開示の実施形態では、交差エントロピー損失の代わりに、クラス内角度およびクラス間角度が損失関数のターゲットとして直接最適化され、これは予測処理ターゲットと一致し、それにより、学習処理における中間処理を単純化し、計算オーバヘッドを低減し、最適化精度を改善する。
【0263】
さらに、本開示の実施形態では、損失関数がクラス内勾配項およびクラス間勾配項を分離し、クラス内勾配項およびクラス間勾配項の損失を分析するのに役立ち、クラス内勾配項およびクラス間勾配項の最適化を個別に導く、クラス内損失およびクラス間損失を個別に考慮する。特に、ノイズを含む学習セットに対してさえも、最適化された学習モデルが依然として得られるように、勾配収束速度を制御するために、クラス内損失とクラス間損失に対してそれぞれ適切な重み関数を用いて、ノイズを含む学習サンプルのオーバーフィッティングを防ぐ。
【0264】
以下、本開示に係るモデル学習方法の効果と従来技術の効果を実験により比較する。
【0265】
実験1:小さな学習セットでの検証
学習セット:合計500,000枚の画像、10,000人の身元、を含むCASIA-WebFace
テストセット:YTF、LFW、CFP-FP、AGEDB-30、CPLFW、CALFW
評価基準:1: N TPIR (True Positive Recognition Rate, Rank1 @ 106)、Megafacechallengeと同じ
畳み込みニューラルネットワークアーキテクチャ:RestNet50
比較される従来技術:Softmax,NSoftmax,SphereFace,CosFace,ArcFace,D-Softmax
実験結果を以下の表1に示し、ここで、SFaceは本開示による技術的解決策である。
【0266】
表1:本開示の学習動作の結果と従来技術の結果との比較
【0267】
【表1】
【0268】
実験2:大きな学習セットでの検証
学習セット:合計5,800,000枚の画像、85,000人の身元、を含むMS1MV2
評価セット:LFW,YTF,CPLFW,CALFW,IJB-C
評価基準:1: N TPIR (True Positive Identification Rate, Rank1 @ 106)およびTPR/FPR
畳み込みニューラルネットワークアーキテクチャ:RestNet100
比較すべき従来技術:ArcFace
実験結果を以下の表2および3に示し、ここで、SFaceは本開示による技術的解決策である。
【0269】
表2:本開示の学習動作の結果と従来技術の結果との比較
【0270】
【表2】
【0271】
表3:本開示の学習動作の結果と従来技術の結果との比較
【0272】
【表3】
【0273】
実験結果は、本開示によるモデル学習ソリューションが従来技術よりも良好な性能を有することを示す。
【0274】
以下、添付図面を参照して、本開示の実施形態を詳細に説明する。なお、以下の説明は、本開示に係る学習処理を明確に説明することを主に意図しているが、いくつかのステップまたはその動作は必須ではなく、例えば、前処理ステップおよび特徴抽出ステップは必須ではなく、本開示に係る動作は受信した特徴に基づいて直接実行することができる。
【0275】
図7は、本開示の第1の実施形態による、本開示によって提案されるジョイント損失関数(joint loss function)を使用することによって、畳み込みニューラルネットワークモデルを学習するフローチャートを示す。本開示の第1の実施形態に係るモデル学習処理は、以下のステップを含む。
【0276】
S7100:前処理によるネットワーク学習データの取得
このステップでは、入力が物体または顔の実マークを有するオリジナル画像であり、次いで、入力オリジナル画像は、一連の前処理動作を介して、畳み込みニューラルネットワークの要件(requirements)を満たす学習データに変換される。この一連の前処理動作には、顔または物体の検出、顔または物体の位置合わせ、画像の拡大、画像の正規化などが含まれる。
【0277】
S7200:現在の畳み込みニューラルネットワークを使用して特徴を抽出する
このステップでは、入力が畳み込みニューラルネットワークの要件(requirements)を満たした物体または顔を有する画像データであり、次いで、選択された畳み込みニューラルネットワーク構造および現在の対応するパラメータが画像特徴を抽出するために利用される。畳み込みニューラルネットワーク構造は、VGG16、ResNet、SENetなどのような共通のネットワーク構造とすることができる。
【0278】
S7300:提案した重み付けクラス内損失関数と重み付けクラス間損失関数に基づいて現在のジョイント損失(current joint loss)を算出する
このステップでは、入力は、抽出された画像特徴および畳み込みニューラルネットワークの最後の全結合層であり、次いで、現在のクラス内損失およびクラス間損失がそれぞれ、提案されたジョイント重み付け損失関数(proposed joint weighted loss function)に基づいて計算される。具体的な損失関数の定義は、上述の式(2)~(4)を参照することによって理解することができる。
【0279】
S7400:学習処理を終了するかどうかを判断する
このステップでは、予め設定された何らかの条件に基づいて、学習を終了するか否かを判定することができる。プリセット条件は、損失閾値条件、反復回数条件、勾配降下速度条件などを含むことができる。条件のうちの少なくとも1つが満たされる場合、学習は終了することができ、処理はS7600に進む。全てのプリセット条件が満たされていない場合には、処理はS7500に進む。
【0280】
一例として、閾値を設定することによって判定を行うことができる。この場合、入力は、クラス内損失データとクラス間損失データを含む、前のステップで計算された損失データである。現在の損失が所与の閾値より大きいかどうかなど、損失データを設定された閾値と比較することによって判定を行うことができる。現在の損失が所与の閾値以下である場合、学習は終了する。
【0281】
一実施形態によれば、設定された閾値はクラス内損失データおよびクラス間損失データのそれぞれに対して設定された閾値であってもよく、クラス内損失データおよびクラス間損失データのいずれか1つが対応する閾値以下である限り、学習は終了する。別の実装によれば、設定された閾値は全体損失閾値であってもよく、クラス内損失データおよびクラス間損失データの全体損失値は全体損失閾値と比較され、全体損失値が全体損失閾値未満である場合、学習は終了する。全体損失値はクラス間損失データとクラス間損失データとの様々な組み合わせ、例えば、それらの和、加重和などであってもよい。
【0282】
別の例として、判定は、現在の学習反復回数が所定の学習反復回数に達するかどうかなど、所定の学習反復回数を設定することによって実行することができる。この場合、入力は実行された学習反復のカウントであり、学習反復回数が所定の学習反復回数に達したときに学習は終了する。
【0283】
一方、上記所定の条件が満たされない場合には、次の繰り返しにおける学習処理を開始する。例えば、損失データが所定の閾値よりも大きく、反復回数が所定の学習反復回数よりも少ない場合、次の学習反復における処理が継続する。
【0284】
S7500:畳み込みニューラルネットワークパラメータの更新
このステップでは入力がS7300で計算されたジョイント損失であり、本開示による重み関数は、畳み込みニューラルネットワークモデルのパラメータを更新するために使用される。
【0285】
具体的には、本開示の重み関数に基づく更新関数によれば、例えば、上述したような偏導関数(式(5)~(11))により、畳み込みニューラルネットワークの出力層に対する現在の損失の傾きを算出し、これを用いて逆伝搬アルゴリズムにより畳み込みニューラルネットワークパラメータを更新し、更新後のニューラルネットワークをS7200に返信する。
【0286】
S7600:学習されたCNNモデルを出力する
このステップでは、CNNモデル構造内のすべての層の現在のパラメータが学習されたモデルとして働き、その結果、最適化されたニューラルネットワークモデルを得ることができる。
【0287】
この実施形態では、提案したクラス内損失関数とクラス間損失関数の両方を用いて勾配降下速度を協調的に制御し、その結果、クラス内損失とクラス間損失の寄与の間に良好なバランスを見出すことができ、より一般化されたモデルを学習できる。
【0288】
図8は、本開示の第2の実施形態による、本開示によって提案されるジョイント損失関数を使用する畳み込みニューラルネットワークモデル学習のフローチャートを示す。この実施形態では、畳み込みニューラルネットワークモデルの段階的学習が本開示によって提案されるジョイント損失関数を使用することによって実行される。本開示の第2の実施形態によるモデル学習処理は、以下のステップを含む。
【0289】
S8100:前処理によるネットワーク学習データの取得
このステップの動作はS7100の動作と同一または類似であり、ここでは詳細に説明しない。
【0290】
S8200:現在の畳み込みニューラルネットワークを用いた特徴抽出
このステップの動作はS7200の動作と同一または類似であり、ここでは詳細に説明しない。
【0291】
S8300:提案した重み付きクラス内損失関数に従って、クラス内損失を現在の損失として算出する。
【0292】
入力は抽出された画像特徴と、畳み込みニューラルネットワークの最後の全結合層であり、次いで、現在のクラス内損失は、本開示の重み付けされたクラス内損失関数に従って計算される。重み付きクラス内損失関数は上述した式(2)のように定義することができるが、ここでは詳細に説明しない。
【0293】
S8400:予備的な学習処理であるかどうかを判断する
このステップではあるプリセット条件に基づいて予備学習であるかどうかを判定することができ、プリセット条件は損失閾値条件、反復回数条件、勾配降下速度条件などを含むことができる。上記条件の少なくとも1つが満たされた場合には、予備学習を終了できると判断でき、処理はS8600に進む。いずれのプリセット条件も満たさない場合には、予備学習を継続する必要があると判断し、処理はS8500に進む。
【0294】
一例として、以下のいずれかが満たされた場合:現在の勾配降下速度が所与の閾値以下である、現在のクラス内損失が所与の閾値未満である、または現在の学習反復回数が所与の予備学習反復回数に達した、予備学習を終了することができ、処理は後学習動作のためにS8600に進むことができると判断可能であり、重み付きクラス間損失関数が学習のために使用される。
【0295】
一例として、上記の条件のいずれも満たされない場合、すなわち、勾配降下速度が所与の閾値よりも大きく、現在のクラス内損失が所与の閾値よりも大きく、現在の学習反復回数が所与の予備学習反復回数に達しない場合、予備学習を継続する必要があり、処理はS8500に進む。
【0296】
S8500:計算されたクラス内損失およびクラス内重み関数に基づくバックプロパゲーションアルゴリズムを使用することによって、畳み込みニューラルネットワークのパラメータを更新する
このステップでは、入力がS8300で計算されたクラス内損失である。畳み込みニューラルネットワークの出力層に対する現在のクラス内損失の勾配は最初に、再導出された偏導関数式に基づいて計算される必要があり、次に、畳み込みニューラルネットワークモデルのパラメータはバックプロパゲーションアルゴリズムによって更新することができ、ニューラルネットワークモデルの更新されたパラメータは、S8200に戻される。導出された偏導関数式は以下の通りである。
【0297】
【数72】
【0298】
S8600:学習モデルのパラメータがクラス内損失に対して最適化された後、学習モデルのパラメータはクラス間損失に対して最適化される。
【0299】
一例として、提案した重みづけクラス内損失関数と重みづけクラス間損失関数を用いることにより、現在のジョイント損失を計算できる。具体的には、入力が抽出された画像特徴および畳み込みニューラルネットワークの最後の全結合層であり、次いで、現在のクラス内損失およびクラス間損失がジョイント損失を得るために、提案されたジョイント加重損失関数に従ってそれぞれ計算される。具体的な損失関数の定義は、上記式(2)~(4)の導入から分かる。
【0300】
あるいは、一例として、上述したように、本開示で提案する重み付きクラス間損失関数を用いてクラス間損失を算出することができ、算出したクラス間損失と予備学習終了時のクラス内損失との和を現在のジョイント損失として用いる。
【0301】
S8700:学習処理を終了するかどうかを決定する
このステップでは、何らかのプリセット条件に基づいて、学習を終了するか否かを判定することができる。プリセット条件は、損失閾値条件、反復回数条件、勾配降下速度条件などを含むことができる。条件の少なくとも1つが満たされる場合、学習は終了することができ、処理はS8900に進む。いずれのプリセット条件も満たされない場合、処理はS8800に進む。
【0302】
このステップの具体的な動作は前述のステップS7400の動作と同一または類似であり、ここでは詳細に説明しない。
【0303】
S8800:畳み込みニューラルネットワークのパラメータを更新する
このステップでは、入力がS8600で計算されたジョイント損失である。先に導出された偏導関数(式(5)~式(11))によれば、まず、畳み込みニューラルネットワークの出力層に対する現在のクラス間損失の勾配が計算され、次に、畳み込みニューラルネットワークモデルのパラメータが逆伝搬アルゴリズムを使用して更新され、畳み込みニューラルネットワークモデルパラメータの更新されたパラメータが次の反復学習のためにS8200に戻される。
【0304】
一例として、好ましくは、この場合、次の反復処理におけるステップS8300~S8500は直接省略することができ、処理はステップS8200からステップS8600に直接進むことができ、それによって、学習処理を単純化する。例えば、インジケータは、予備学習の終了後にデータ送信に追加されて、予備学習の終了を示してもよく、その後、そのようなインジケータが反復学習処理中に識別される場合、予備学習処理はスキップされてもよい。
【0305】
一例として、ステップS8200は、予備学習の終了を示すインジケータがあるかどうかを検出するために使用されるインジケータ検出ステップをさらに含むことができる。一例として、ステップS8400で予備学習が終了したと判断された後、予備学習の終了を示すインジケータがステップS8200にフィードバックされ、ポスト学習のフィードバック更新動作において、インジケータが検出された場合、予備学習処理はスキップされる。別の例として、ステップS8400で予備学習が終了したと判定された後、処理がポスト学習に進むときに予備学習の終了を示すインジケータをデータストリームに追加し、ポスト学習のフィードバック更新動作でインジケータをステップS8200にフィードバックし、そのようなインジケータがステップS8200で検出された場合に、予備学習処理をスキップすることができる。
【0306】
S8900:学習されたCNNモデルを出力する。
【0307】
このステップは、ステップS7600の動作と同じまたは同様であり、ここでは詳細に説明しない。
【0308】
実施形態1と比較して、実施形態2は、重み関数のためのパラメータ調整処理を単純化し、モデルの学習を加速する。好ましくは、現在のデータセットに最適なクラス内損失重み関数が最初に検出され、モデルトレーニング処理はクラス内損失によって制約されるため、ジョイント損失は迅速な反復によってある程度低下する可能性があり、次に、現在のデータセットとジョイント損失に最適なクラス間重み関数を見つけることができ、モデル学習処理は、最終学習モデルを迅速に得るために、クラス内損失とクラス間損失によって同時に細かく制約される。
【0309】
なお、上記フローチャートに示すフローは主に、クラス内重み関数およびクラス間重み関数のパラメータを変化させない場合に対応しており、上述したように、クラス内重み関数およびクラス間重み関数のパラメータをさらに調整することにより、重み関数の設計をさらに最適化することができる。
【0310】
以下、図面を参照して、本開示の第3の実施形態について説明する。図9は、本開示の第3の実施形態による重み関数パラメータの調整処理を示す。
【0311】
S9100:前処理によるネットワーク学習データの取得
このステップの動作はS7100の動作と同一または類似であり、ここでは詳細に説明しない。
【0312】
S9200:畳み込みニューラルネットワークモデル学習
このステップは、畳み込みニューラルネットワークモデル学習を実行するために第1および第2の実施形態のうちのいずれか1つによる動作を使用して、本開示による最適化された畳み込みニューラルネットワークモデルを得ることができる。
【0313】
S9300:重み関数パラメータを調整するかどうかを判断する
このステップでは、あるプリセット条件に基づいてパラメータ調整を行うか否かを判定することができ、プリセット条件には、調整時間条件、畳み込みニューラルネットワーク性能条件等が含まれてもよい。上記条件の少なくとも1つが満たされていれば、調整動作は終了可能であると判断でき、処理はS9500に進む。プリセット条件のいずれも満たされていない場合には、調整動作を継続する必要があると判断し、処理はS9400に進む。
【0314】
一例として、実行されたパラメータ調整の時間が所定の調整時間に達した場合、または現在の畳み込みニューラルネットワークモデルの性能が以前の畳み込みニューラルネットワークモデルの性能より劣っている場合、さらなるパラメータ調整動作は必要とされない、すなわち調整動作は終了することができると考えられる。そうでない場合、パラメータ調整の時間が所定の調整時間に達しておらず、現在の畳み込みニューラルネットワークモデルの性能が以前の畳み込みニューラルネットワークモデルの性能より良好である場合、調整を継続する必要があると判断される。
【0315】
S9400:新しい重み関数パラメータを設定する
このステップでは、所定の調整時間に達するまで、または学習結果もはや良好でなくなるまで、特定のパラメータ調整方法に従ってパラメータを調整し続けることができる。
【0316】
一例として、特定のパラメータ調整方法は、パラメータ調整が特定のルールに従って実行されることであってもよく、例えば、パラメータは特定のステップサイズで、または特定の関数に従って、増加または減少することができる。別の例として、パラメータ調整は、以前の調整方法に従って実行されてもよい。一例として、重み関数のパラメータの調整は、上述のように実行されてもよい。
【0317】
S9500:重み関数の調整されたパラメータの出力
このステップでは、重み関数の調整されたパラメータが出力され、その結果、より最適化された重み関数を得ることができ、それによって、後続の畳み込みニューラルネットワークモデル学習の性能を改善することができる。
【0318】
以下、添付図面を参照して本開示の第4の実施形態について説明し、図10は、本開示の第4の実施形態に係る重み関数パラメータの調整処理を示す。
【0319】
S10100:前処理によるネットワーク学習データの取得
このステップの動作はS7100の動作と同じまたは同様であり、ここでは詳細に説明しない。
【0320】
S10200:畳み込みニューラルネットワークモデル学習
このステップは、畳み込みニューラルネットワークモデル学習を実行するために、第1および第2の実施形態のうちのいずれか1つによる動作を使用して、本開示による最適化された畳み込みニューラルネットワークモデルを得ることができる。
【0321】
なお、重み関数のパラメータは、2つの初期値で設定されるので、このステップでは、決定された畳み込みニューラルネットワークモデルが2つのパラメータ値に1対1に対応する2つの畳み込みニューラルネットワークモデルであってもよい。
【0322】
S10300:2つの畳み込みニューラルネットワークモデルの性能を比較して、より良い性能を有する畳み込みニューラルネットワークモデルを選択する。
【0323】
S10400:重み関数パラメータを調整するかどうかを判断する
このステップでは、S10300で選択された性能がより良い畳み込みニューラルネットワークモデルについて、あるプリセット条件に基づいてパラメータ調整を行うか否かを判定することができる。プリセット条件は、調整時間条件、畳み込みニューラルネットワーク性能条件などを含むことができる。上記条件の少なくとも1つが満たされていれば、調整動作は終了可能であると判断でき、処理はS10600に進む。いずれのプリセット条件も満たされない場合には、調整動作を継続する必要があると判断し、処理はS10500に進む。このステップにおける動作は、前のステップS9300と同じまたは同様であり、ここでは詳細に説明しない。
【0324】
S10500:新しい重み関数パラメータを設定する
このステップでは、パラメータ調整が、予め設定された調整時間に達するまで、または学習結果もはや良好でなくなるまで、特定のパラメータ調整モードに従って継続する。このステップの動作は、前のステップS9400と同じまたは同様であり、ここでは詳細に説明しない。
【0325】
S10600:調整された重み関数のパラメータを出力する
このステップでは、調整された重み関数のパラメータが出力され、その結果、より最適化された重み関数を得ることができ、それによって、後続の畳み込みニューラルネットワークモデル学習の性能が改善される。
【0326】
なお、上記実施形態では、主に1つのパラメータの調整を導入したが、重み関数における2つ以上の可能なパラメータの調整については例えば、上述した種々の方法等、種々の方法を採用することができる。
【0327】
本開示の実装によれば、損失関数がクラス内損失関数とクラス間損失関数の両方を含む場合、クラス内損失の重み関数とクラス間損失の重み関数とに対してパラメータ調整が必要となる。一実施形態として、クラス内損失のための重み関数のパラメータを最初に調整し、次にクラス間損失のための重み関数のパラメータを調整することができる。別の実施形態として、クラス内損失のための重み関数のパラメータとクラス間損失のための重み関数のパラメータとを同時に調整することができる。各関数のパラメータに対する特定の調整処理は、様々な方法で実施することができる。
【0328】
一例として、クラス内およびクラス間重み関数の初期パラメータを設定した後、前述の畳み込みニューラルネットワークモデル学習を実施する。所定数の反復が実行された後、または損失が閾値要件を満たした後、畳み込みニューラルネットワークモデルによって決定された損失データをさらに最適化することができないパラメータが見つかるまで、クラス内重み関数のパラメータがさらに調整される。この場合、クラス間重み関数は、その初期パラメータを維持することができることに留意されたい。次に、最適化されたクラス内重み関数に基づいて、畳み込みニューラルネットワークモデルによって決定された損失データをさらに最適化することができないパラメータが見つかるまで、クラス間重み関数のパラメータが、予備学習におけるものと実質的に同様の動作で調整される。したがって、最終的に、最適なクラス内重み関数およびクラス間重み関数を決定することができ、最適な畳み込みニューラルネットワークモデルも決定することができる。
【0329】
別の例として、反復学習のラウンドが終了した後にパラメータ調整が必要であるかどうかを判断することができ、調整が必要な場合、クラス内重み関数およびクラス間重み関数の両方の値など、調整されるパラメータの値が設定される。これに基づいて、パラメータ調整が完了するまで、新しいラウンドの反復学習が実行される。
【0330】
なお、上記実施形態で説明したような畳み込みアプリケーションネットワークモデルの学習は、オフライン学習に属し、すなわち、選択された学習データセット/画像セットはモデル学習に使用され、学習されたモデルは、顔/物体認識または検証に直接使用することができる。本開示によれば、畳み込みニューラルネットワークモデルは、オンラインで学習することもできる。オンライン学習処理は、顔認識/確認のために学習されたモデルを使用する処理において、認識された画像の少なくともいくつかを学習画像セットに補足することができ、その結果、モデル学習および更新最適化を認識処理中に実行することができ、得られたモデルがさらに改善され、これは認識される画像セットにより適しており、それによって良好な認識効果を達成することができる、ことを意味する。
【0331】
以下、畳み込みニューラルネットワークモデルのオンライン学習に関する、本開示による第5の実施形態について詳細に説明する。図11は、本開示の第5の実施形態に係る提案された損失関数を使用することによって、オンライン学習およびアプリケーションシステムにおける学習された畳み込みニューラルネットワークモデルの更新のフローを示す。 S11100:認識/検証対象の出力顔/物体画像の前処理
このステップでは、入力が、物体または顔の実マークを有するオリジナル画像であり、次いで、入力オリジナル画像は、畳み込みニューラルネットワークモデルの要件を満たすように、顔または物体の検知、顔または物体の位置合わせ、画像拡張(image augmentation)、画像正規化などを含むことができる既存の一連の前処理動作を用いて、畳み込みニューラルネットワークの要件を満たす学習データに変換することができる。
【0332】
S11200:現在の畳み込みニューラルネットワークを使用して特徴を抽出する
このステップは、基本的には上記実施形態における特徴抽出動作と同様であり、ここでは詳細に説明しない。
【0333】
S11300:抽出された特徴に基づく顔/物体の認識又は検証
このステップでは、抽出された画像特徴に基づいて顔/物体が識別または検証される。ここでの動作は、当技術分野で公知の様々な方法で行うことができ、ここでは詳細に説明しない。
【0334】
S11400:畳み込みニューラルネットワークモデルの全結合層と抽出された特徴との間の角度を算出する
このステップでは、入力は、畳込みニューラルネットワークの最後の全結合層のための重み行列と抽出された画像特徴とであり、次いで、定義された角度計算式に従って、現在抽出された画像特徴と重み行列の各次元(each dimension)との間の角度が計算される。角度算出式は、具体的には以下のように定義される。
【0335】
【数73】
【0336】
これらの中で、xは抽出された画像特徴であり、
【0337】
【数74】
【0338】
は、現在の全結合層に対する重み行列であり、Wjは、j番目の重みベクトルであり、現在学習されているCNNモデルのj番目の物体の目標特徴中心を示す。
【0339】
S11500:適切な学習サンプルであるかどうかを判断する
このステップでは、入力が、前のステップで計算された角度情報である。入力画像が適切な学習サンプルであるか否かは、何らかのプリセット判定条件に基づいて判定することができる。適切な学習サンプルとは、計算された角度に基づいて、入力画像がオリジナル学習セット内のいずれの物体にも属していないか、またはオリジナル学習セット内の物体に属しているが、入力画像の特徴が物体の特徴中心から離れていることを判断することができることを意味しており、これは、画像が物体に対して認識するのが比較的困難なサンプル、すなわち適切な学習サンプルであることを示す。
【0340】
プリセット条件とは、入力画像の特徴と、特定の物体の特徴中心と、の間の角度距離が特定の閾値以上であるか否かを意味する。距離が特定の閾値以上である場合、学習サンプルは、適切な学習サンプルと見なされてもよい。
【0341】
一例として、入力画像サンプルが畳み込みニューラルネットワークモデル内のいずれのカテゴリにも属さないと識別された場合、画像サンプルは、新しい物体カテゴリに属することができ、必然的に学習サンプルに適している。一例として、入力画像サンプルが、畳み込みニューラルネットワークモデルのあるカテゴリに属すると識別されるが、画像サンプルの特徴と、カテゴリの特徴中心と、の間の角度距離(角度値)が所定の閾値よりも大きい場合、入力画像サンプルは学習サンプルに適していると判断することができる。
【0342】
なお、上記ステップS11300とS11400とを組み合わせてもよい。具体的には、顔/物体認識を行う際に、オリジナル学習セット内のいずれの物体にも属さないと識別された場合には、角度距離算出を行わず、オリジナル学習セット内の物体に属すると識別された場合には、物体の特徴中心との間の角度距離のみを算出する。これにより、演算処理を適切に簡略化することができ、演算オーバヘッドを低減することができる。
【0343】
図12は、入力画像が学習データセット内の特定の物体に対する適切な学習サンプルに属する場合の概略図を示す。図12に示すように、xiは、抽出された画像特徴であり、Wjは、現在のCNNモデルのj番目の物体の目標特徴中心である。条件が満たされた場合、入力画像はある物体に対する適切な学習サンプルであり、例えば、図12において、x1は物体1に対する学習サンプルであり、そうでないと、適当な学習サンプルではなく、例えば、図12において、x2は、物体1に対する学習サンプルではないと判断される。
【0344】
図13は、入力画像が新たな物体に対する適切な学習サンプルである場合の概略図を示す。
【0345】
このステップにおいて、画像サンプルが適切な学習サンプルであると判定された場合、ステップS11600に進み、そうでない場合、直接終了する。
【0346】
S11600:新たに決定された適切な学習サンプルを使用して物体認識モデルを学習する。
【0347】
特に、新たに決定された適切な学習サンプルは、新たな学習セットとして使用することができ、次いで、本開示によるモデル学習動作は、モデル学習のために使用される。一例として、本開示の第1および第2の実施形態で説明したモデル学習動作を使用して、新しい学習セットに基づいてモデル学習を実行することができ、モデルを学習するための重み関数のパラメータも、本開示の第3および第4の実施形態に従って調整することができる。
【0348】
一実施形態によれば、このステップで実行される学習は、決定された適切な学習サンプルに対してのみ実行されてもよい。別の実施形態によれば、このステップで実行される学習は、決定された適切な学習サンプルと元の学習セットとを含む組み合わされた学習セットに対して実行されてもよい。
【0349】
一実施形態によれば、このステップで実行される学習は、リアルタイムで実行することができ、すなわち、モデル学習は、新しい適切な学習サンプルが決定されるたびに実行される。別の実施形態によれば、このステップで実行される学習は、周期的に実行されてもよく、例えば、特定の数の新しい適切な学習サンプルが蓄積された後に、モデル学習が実行される。
【0350】
一例として、適切な学習サンプルがオリジナルの学習データセットに含まれる物体に対するものである場合、モデル学習は、以下の動作によって実行される。具体的には、学習サンプルの特徴に基づいて、現在のジョイント損失は、本開示の重み付けされたクラス内損失関数および重み付けされたクラス間損失関数に従って計算され、畳み込みニューラルネットワークのパラメータは、計算されたジョイント損失ならびにクラス内およびクラス間重み関数に基づいてバックプロパゲーションアルゴリズムによって更新される。更新されたニューラルネットワークは、次の認識/検証処理のためにS11200に戻される。
【0351】
別の例として、適切な学習サンプルがオリジナルの学習データセットのいずれかの物体にも属さない新しい学習サンプルである場合、モデル学習は、以下の動作によって実行され得る。具体的には、まず、抽出された特徴に従って、CNNの最後の全結合層の重み行列が調整される。このステップでは、入力は、判定された新しい物体の特徴と、現在の全結合層に対する重み行列
【0352】
【数75】
【0353】
と、であり、重み行列は、WC+1が新しい物体の目標特徴中心を表すことができるように
【0354】
【数76】
【0355】
に拡張される。最も単純な調整方法は、新しい物体の特徴を新しい物体の目標特徴中心として直接採用することである。より合理的な調整方法は、新しい物体の特徴付近でオリジナルの重み行列に近似的に直交するベクトルWC+1を見つけ、それを新しい物体の特徴中心としてオリジナルの重み行列に追加することである。次に、学習サンプルの特徴に基づいて、現在のジョイント損失は、本開示による重み付けされたクラス内損失関数および重み付けされたクラス間損失関数に基づいて計算され、畳み込みニューラルネットワークのパラメータは、計算されたジョイント損失ならびにクラス内およびクラス間重み関数に基づくバックプロパゲーションアルゴリズムを使用することによって更新される。更新されたニューラルネットワークは、次の認識/検証処理のためにS11200に戻される。
【0356】
第5の実施形態は、実際のアプリケーション処理においてオンライン学習方法を使用することによって、モデルを連続的に最適化することができ、その結果、モデルは、実際のアプリケーションシナリオに対してより良好な適応性を有する。実際のアプリケーション処理では、オンライン学習方法を使用して、モデルの認識能力を向上させることができ、その結果、モデルは、実際のアプリケーションシナリオに対してより良好な柔軟性を有する。
【0357】
図14は、本開示の一実施形態を実現可能なコンピュータシステム1000のハードウェア構成の一例を示すブロック図である。
【0358】
図14に示すように、コンピュータシステムは、コンピュータ1110を構成する。コンピュータ1110は、処理ユニット1120、システム記憶装置1130、取り外し不可能不揮発性メモリインターフェース1140、取り外し可能不揮発性メモリインターフェース1150、ユーザ入力インターフェース1160、ネットワークインターフェース1170、ビデインターフェース1190、および出力周辺インターフェース1195を含み、これらはシステムバス1121を介して接続される。
【0359】
システム記憶装置1130は、ROM(readable only memory)1131とRAM(random accessable memory)1132とを含む。BIOS(basic input and output system)1133は、ROM1131内に常駐する。オペレーティングシステム1134、アプリケーションプログラム1135、他のプログラムモジュール1136、および何らかのプログラムデータ1137は、RAM1132内に常駐する。
【0360】
取り外し不可能不揮発性メモリ1141には、ハードディスク等の取り外し不可能不揮発性メモリインターフェース1140が接続されている。取り外し不可能不揮発性メモリ1141は例えば、オペレーティングシステム1144、アプリケーションプログラム1145、他のプログラムモジュール1146、および何らかのプログラムデータ1147を記憶することができる。
【0361】
取り外し可能不揮発性メモリインターフェース1150には、取り外し可能不揮発性メモリ(フロッピーディスクドライバ1151、CD-ROMドライバ1155等)が接続されている。例えば、フロッピーディスク1152をフロッピーディスクドライバ1151に挿入し、CD(コンパクトディスク)1156をCD-ROMドライバ1155に挿入してもよい。
【0362】
ユーザ入力インターフェース1160には、マウス1161やキーボード1162などの入力デバイスが接続されている。
【0363】
コンピュータ1110は、ネットワークインターフェース1170を介してリモートコンピュータ1180に接続することができる。例えば、ネットワークインターフェース1170は、ローカルエリアネットワーク1171を介してリモートコンピュータ1180に接続されてもよい。あるいは、ネットワークインターフェース1170が、モデム(変復調器)1172に接続されてもよく、モデム1172は、ワイドエリアネットワーク1173を介してリモートコンピュータ1180に接続される。
【0364】
リモートコンピュータ1180は、リモートアプリケーション1185を格納するハードディスク等の記憶装置1181を含んでもよい。
【0365】
ビデオインターフェース1190は、モニタ1191に接続されている。
【0366】
出力周辺インターフェース1195は、プリンタ1196、スピーカ1197に接続されている。
【0367】
図14に示すコンピュータシステムは、単に例示的なものであり、本発明、そのアプリケーション、またはその用途を限定することを意図するものではない。
【0368】
図14に示されるコンピュータシステムは、任意の実施形態のための装置において、分離されたコンピュータとして、または処理システムとして実装されてもよく、1つ以上の不要な構成要素が除去されてもよく、または1つ以上の追加の構成要素が追加されてもよい。
【0369】
本発明は、多くのアプリケーションにおいて使用することができる。例えば、本開示は、カメラによって撮影された静止画像またはモバイルビデオ内の物体を監視、識別、追跡するために使用することができ、カメラ付き携帯装置、(カメラベースの)携帯電話などに特に有利である。
【0370】
本明細書で説明される方法およびデバイスは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せとして実装され得ることに留意されたい。いくつかの構成要素は、例えば、デジタル信号プロセッサまたはマイクロプロセッサ上で実行されるソフトウェアとして実装されてもよい。他の構成要素は、例えば、ハードウェアおよび/または特定用途向け集積回路として実装されてもよい。
【0371】
さらに、本開示の方法およびシステムは、さまざまな方法で実施することができる。例えば、本開示の方法およびシステムは、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。上述の方法のステップの順序は、単に例示的なものであり、特に断りのない限り、本開示の方法のステップは、上記に具体的に記載された順序に限定されない。さらに、いくつかの実施形態では、本開示が、本開示による方法を実施するための機械可読命令を含む、記録媒体に記録されたプログラムとして実施することもできる。したがって、本開示は、本開示による方法を実施するためのプログラムを記憶する記録媒体も包含する。
【0372】
当業者は、上述した動作間の境界が単に例示的なものであることを理解するのであろう。複数の動作を単一の動作に合併させることができ、単一の動作を追加の動作に分散させることができ、動作を少なくとも部分的に時間的にオーバーラップさせて実行することができる。さらに、代替の実施形態は、特定の動作の複数のインスタンスを含むことができ、動作の順序は、他の様々な実施形態で変更することができる。しかし、他の修正、変更、および置換も可能である。したがって、本開示の説明および図面は、限定ではなく例示とみなされるべきである。
【0373】
また、本開示の実施形態は、以下の概略的な例(EE)を含むこともできる。
【0374】
EE1.物体認識のためのニューラルネットワークモデルを最適化する装置であって、
前記ニューラルネットワークモデルおよび重み関数を有する損失関数を用いて、学習画像セットから抽出された特徴の損失データを決定する損失決定手段と、
前記損失データと更新関数とに基づいて前記ニューラルネットワークモデルのパラメータの更新動作を実行する更新手段と
を備え、
前記更新関数は、前記ニューラルネットワークモデルの前記重み関数を有する前記損失関数に基づいて導出され、前記重み関数および前記損失関数は、同じ方向に特定値間隔で単調に変化する
ことを特徴とする装置。
【0375】
EE2.前記重み関数および前記損失関数は、それぞれ角度の関数であり、前記角度は、前記ニューラルネットワークモデルの全結合層における特定の重みベクトルと、超球面多様体上にマッピングされた抽出された特徴と、の間の交差角であり、前記特定値間隔は、特定の角度値間隔であることを特徴とするEE1に記載の装置。
【0376】
EE3.前記特定の角度値間隔が[0、π/2]であり、前記重み関数および前記損失関数が、同じ方向に前記特定の角度値間隔で単調かつ滑らかに変更することを特徴とするEE2に記載の装置。
【0377】
EE4.前記損失関数は、前記交差角度のコサイン関数であることを特徴とするEE2に記載の装置。
【0378】
EE5.前記損失関数は、クラス内角度損失関数を含み、クラス内角度は、超球面多様体上にマッピングされた抽出された特徴と、真理値物体(truth object)を表す前記ニューラルネットワークモデルの全結合層内の重みベクトルと、の間の交差角度であり、
前記更新関数は、前記クラス内角度損失関数およびクラス内角度重み関数に基づいて決定されることを特徴とするEE1に記載の装置。
【0379】
EE6.前記クラス内角度損失関数は、負をとるクラス内角度コサイン関数であり、前記クラス内角度重み関数は、負ではない関数であり、前記角度が特定値間隔で増加することにつれて滑らかに単調に増加することを特徴とするEE1に記載の装置。
【0380】
EE7.前記値間隔が[0、π/2]であり、前記クラス内角度重み関数が0近傍に水平カットオフ点を有することを特徴とするEE1に記載の装置。
【0381】
EE8.前記損失関数はクラス間角度損失関数をさらに含み、クラス間角度は超球面多様体上にマッピングされた抽出された特徴と、前記ニューラルネットワークモデルの全結合層内の別の重みベクトルと、の間の交差角度であり、
前記更新関数は、前記クラス間角度損失関数およびクラス間角度重み関数に基づいて決定されることを特徴とするEE1に記載の装置。
【0382】
EE9.前記クラス間角度損失関数は、クラス間角度コサイン関数の和であり、前記クラス間角度重み関数は負ではない関数であり、前記角度が特定値間隔で増加することにつれて滑らかに単調に減少する関数であることを特徴とするEE1に記載の装置。
【0383】
EE10.前記値間隔は[0、π/2]であり、前記クラス間角度重み関数はπ/2付近に水平カットオフ点を有することを特徴とするEE1に記載の装置。
【0384】
EE11.前記更新関数は、前記重み関数と前記損失関数の偏導関数とに基づくことを特徴とするEE1に記載の装置。
【0385】
EE12.前記更新手段はさらに、前記損失関数の偏導関数と前記重み関数とを乗算して、前記ニューラルネットワークモデルを更新するための更新勾配を決定することを特徴とするEE1に記載の装置。
【0386】
EE13.前記更新手段はさらに、バックプロパゲーション方法および前記決定された更新勾配を用いて、前記ニューラルネットワークモデルの前記パラメータを更新することを特徴とするEE12に記載の装置。
【0387】
EE14.前記ニューラルネットワークモデルが更新された後、前記損失決定手段および前記更新手段は、前記更新されたニューラルネットワークモデルを用いて動作することを特徴とするEE1に記載の装置。
【0388】
EE15.前記更新手段は、前記決定された損失データが閾値よりも大きく、前記損失決定手段および前記更新手段によって実行される反復動作の回数が所定の反復回数に達しない場合に、前記決定された更新勾配を用いて更新を実行することを特徴とするEE1に記載の装置。
【0389】
EE16.前記損失データ決定手段は更に、前記ニューラルネットワークモデルの前記重み関数と前記損失関数との組合せを用いて、前記損失データを決定することを特徴とするEE1に記載の装置。
【0390】
EE17.前記ニューラルネットワークモデルの前記重み関数と前記損失関数との組合せは、前記ニューラルネットワークモデルの前記重み関数と前記損失関数との積であることを特徴とするEE1に記載の装置。
【0391】
EE18.前記ニューラルネットワークモデルを用いて学習画像セットから画像特徴を取得する画像特徴取得手段をさらに備えることを特徴とするEE1に記載の装置。
【0392】
EE19.前記ニューラルネットワークモデルは、ディープニューラルネットワークモデルであり、前記取得された画像特徴は、前記画像のデプス埋め込み特徴であることを特徴とするEE1に記載の装置。
【0393】
EE20.前記重み関数の前記パラメータは、学習セットまたは検証セットについて決定された損失データに基づいて調整され得ることを特徴とするEE1に記載の装置。
【0394】
EE21.前記重み関数の第1のパラメータおよび第2のパラメータが、反復である損失データ決定動作および更新動作を実行するために個別に設定された後、前記損失データをより良くさせる前記第1および第2のパラメータのうちの一方の周りの2つのパラメータが、次の反復動作における前記重み関数のための前記第1のパラメータおよび前記第2のパラメータとして選択されることを特徴とするEE20に記載の装置。
【0395】
EE22.前記重み関数は、シグモイド関数または類似の特性を有するその変形関数であり、前記パラメータは、勾配パラメータおよび水平切片パラメータを含むことを特徴とするEE20に記載の装置。
【0396】
EE23.物体認識のためのニューラルネットワークモデルを学習する方法であって、
前記ニューラルネットワークモデルおよび重み関数を有する損失関数を用いて、学習画像セットから抽出された特徴の損失データを決定する損失決定工程と、
前記損失データと更新関数とに基づいて前記ニューラルネットワークモデルのパラメータの更新動作を実行する更新工程と
を備え、
前記更新関数は、前記ニューラルネットワークモデルの前記重み関数を有する前記損失関数に基づいて導出され、前記重み関数および前記損失関数は、同じ方向に特定値間隔で単調に変化する
ことを特徴とする方法。
【0397】
EE24.少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサにEE23の方法を実行させる命令が格納されている少なくとも1つの記憶装置と
を備えることを特徴とする装置。
【0398】
EE25.プロセッサによって実行されると、EE23に記載の方法を実行させる命令を格納した記憶媒体。
【0399】
本発明は、例示的な実施形態を参照して説明されてきたが、本発明は開示された例示的な実施形態に限定されないことを理解されたい。以下の特許請求の範囲は、そのようなすべての修正および同等の構造および機能を包含するように、最も広い解釈が与えられるべきである。
【0400】
本開示のいくつかの特定の実施形態を例を通して詳細に説明したが、当業者は上記の例が例示の目的のためだけであり、本開示の範囲を限定することを意図しないことを理解すべきである。本明細書に開示される実施形態は、本開示の精神および範囲から逸脱することなく、任意に組み合わせることができる。当業者はまた、本開示の範囲および精神から逸脱することなく、種々の変形が実施形態になされ得ることを理解すべきである。
図1
図2A
図2B
図3A
図3B
図3C
図4A
図4B
図5A
図5B
図5C
図5D
図5E
図5F
図6
図7
図8
図9
図10
図11
図12
図13
図14