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

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

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

<>
  • 特許-情報処理装置、情報処理方法 図1
  • 特許-情報処理装置、情報処理方法 図2
  • 特許-情報処理装置、情報処理方法 図3
  • 特許-情報処理装置、情報処理方法 図4
  • 特許-情報処理装置、情報処理方法 図5
  • 特許-情報処理装置、情報処理方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-14
(45)【発行日】2024-08-22
(54)【発明の名称】情報処理装置、情報処理方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240815BHJP
   G06V 10/82 20220101ALI20240815BHJP
   G06N 3/04 20230101ALI20240815BHJP
   G06N 3/08 20230101ALI20240815BHJP
   G06N 20/00 20190101ALI20240815BHJP
【FI】
G06T7/00 350C
G06V10/82
G06N3/04
G06N3/08
G06N20/00
【請求項の数】 14
(21)【出願番号】P 2022020797
(22)【出願日】2022-02-14
(65)【公開番号】P2023117959
(43)【公開日】2023-08-24
【審査請求日】2023-10-02
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】平戸 康晴
【審査官】秦野 孝一郎
(56)【参考文献】
【文献】特開2019-152977(JP,A)
【文献】特開2022-2023(JP,A)
【文献】Tao Wang, Li Yuan, Xiaopeng Zhang, Jiashi Feng,Distilling Object Detectors With Fine-Grained Feature Imitation,2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR),米国,IEEE,2019年06月15日,pp.4928-4937,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8953432
【文献】Ivan Lazarevich et al.,Post-training deep neural network pruning via layer-wise calibration,2021 IEEE/CVF International Conference on Computer Vision Workshop (ICCVW),米国,IEEE,2021年10月11日,pp.798-805,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9607584
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
G06V 10/00-20/90
G06N 3/04
G06N 3/08
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
第1演算部が入力データに基づいて抽出した第1特徴ベクトルと、第2演算部が該第1演算部よりも少ない演算量で該入力データに基づいて抽出した第2特徴ベクトルと、の第1差分ベクトルを求める取得手段と、
前記第1差分ベクトルにおける要素の値を変更した第1変更差分ベクトルを生成し、該第1変更差分ベクトルに基づいて前記第2演算部のパラメータを更新する更新手段と
を備え、
前記第1特徴ベクトルにおいて閾値を超える第1要素に対応する前記第1差分ベクトルの要素の値から、前記第1要素に対応する前記第1変更差分ベクトルの要素の値への変化量は、前記第1特徴ベクトルにおいて閾値を超えない第2要素に対応する前記第1差分ベクトルの要素の値から、前記第2要素に対応する前記第1変更差分ベクトルの要素の値への値の変化量よりも大きい
ことを特徴とする情報処理装置。
【請求項2】
前記更新手段は、
前記第1特徴ベクトルにおいて閾値を超える第1要素に対応する前記第1差分ベクトルの要素の値を増加させた前記第1変更差分ベクトルを生成することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記更新手段は、
前記第1特徴ベクトルにおいて閾値を超えない第2要素に対応する前記第1差分ベクトルの要素の値を減少させた前記第1変更差分ベクトルを生成することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記更新手段は、
前記第1変更差分ベクトルにおける要素の値に基づく値がより小さくなるような前記第2演算部のパラメータを求め、前記第2演算部のパラメータを該求めたパラメータに更新することを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
【請求項5】
さらに、
前記第1要素に対応する前記第1差分ベクトルの要素の値を増加させる量を増加させる増加手段を備えることを特徴とする請求項2に記載の情報処理装置。
【請求項6】
前記増加手段は、前記第1要素に対応する前記第1差分ベクトルの要素の数が減少しなくなったタイミングで、前記第1要素に対応する前記第1差分ベクトルの要素の値を増加させる量を増加させることを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記第1演算部は、入力データを階層型ニューラルネットワークに入力し、該階層型ニューラルネットワークの中間層にて該入力データから抽出した特徴ベクトルを前記第1特徴ベクトルとして取得することを特徴とする請求項1乃至6の何れか1項に記載の情報処理装置。
【請求項8】
前記第1演算部が用いる階層型ニューラルネットワークの活性化関数はReLU(Rectified Linear Unit)であることを特徴とする請求項7に記載の情報処理装置。
【請求項9】
前記第2演算部は、前記第1演算部が用いる階層型ニューラルネットワークよりもパラメータ数が少ない階層型ニューラルネットワークに入力データを入力し、該階層型ニューラルネットワークの中間層にて該入力データから抽出した特徴ベクトルを前記第2特徴ベクトルとして取得することを特徴とする請求項1乃至8の何れか1項に記載の情報処理装置。
【請求項10】
前記第2演算部が用いる階層型ニューラルネットワークの活性化関数はReLU(Rectified Linear Unit)であることを特徴とする請求項9に記載の情報処理装置。
【請求項11】
前記取得手段はさらに、前記第1演算部が入力データに基づいて抽出した第1中間特徴ベクトルと、前記第2演算部が該第1演算部よりも少ない演算量で該入力データに基づいて抽出した第2中間特徴ベクトルと、の第2差分ベクトルを求め、
前記更新手段は、前記第2差分ベクトルにおける要素の値を変更した第2変更差分ベクトルを生成し、該第2変更差分ベクトルと、前記第1変更差分ベクトルと、に基づいて前記第2演算部のパラメータを更新し、
前記第1中間特徴ベクトルにおいて閾値を超える第3要素に対応する前記第2差分ベクトルの要素の値から、前記第3要素に対応する前記第2変更差分ベクトルの要素の値への変化量は、前記第1中間特徴ベクトルにおいて閾値を超えない第4要素に対応する前記第2差分ベクトルの要素の値から、前記第4要素に対応する前記第2変更差分ベクトルの要素の値への値の変化量よりも大きい
ことを特徴とする請求項1乃至6の何れか1項に記載の情報処理装置。
【請求項12】
前記更新手段は、
前記第1変更差分ベクトルにおける要素の値と、前記第2変更差分ベクトルにおける要素の値と、に基づく値がより小さくなるような前記第2演算部のパラメータを求め、前記第2演算部のパラメータを該求めたパラメータに更新することを特徴とする請求項11に記載の情報処理装置。
【請求項13】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の取得手段が、第1演算部が入力データに基づいて抽出した第1特徴ベクトルと、第2演算部が該第1演算部よりも少ない演算量で該入力データに基づいて抽出した第2特徴ベクトルと、の第1差分ベクトルを求める取得工程と、
前記情報処理装置の更新手段が、前記第1差分ベクトルにおける要素の値を変更した第1変更差分ベクトルを生成し、該第1変更差分ベクトルに基づいて前記第2演算部のパラメータを更新する更新工程と
を備え、
前記第1特徴ベクトルにおいて閾値を超える第1要素に対応する前記第1差分ベクトルの要素の値から、前記第1要素に対応する前記第1変更差分ベクトルの要素の値への変化量は、前記第1特徴ベクトルにおいて閾値を超えない第2要素に対応する前記第1差分ベクトルの要素の値から、前記第2要素に対応する前記第1変更差分ベクトルの要素の値への値の変化量よりも大きい
ことを特徴とする情報処理方法。
【請求項14】
コンピュータを、請求項1乃至12の何れか1項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習技術に関するものである。
【背景技術】
【0002】
近年、撮影された画像内に写っているオブジェクトの画像を高度に処理して有用な情報を抽出する特徴抽出技術が多く提案されている。特にその中でも、ディープネット(或いはディープニューラルネット、ディープラーニング、深層学習とも称される)と呼ばれる多階層のニューラルネットワークを用いて、画像中の物体の特徴ベクトルを抽出する特徴抽出技術に関し、盛んに研究が行われている。
【0003】
ディープネットを用いた特徴抽出技術の隆盛に関しては周知の通りであるが、さらに近年では、特許文献1のような蒸留と呼ばれるディープネット学習手法が注目されている。蒸留とは、学習済のディープネットモデル(教師モデルと呼ばれる)を用いて、別のネットワークアーキテクチャを持つディープネット(生徒モデルと呼ばれる)の学習を行う手法である。一般的に蒸留による学習は、教師モデルの軽量化を目的として行われることが多く、そのため生徒モデルには教師モデルより軽量のネットワークアーキテクチャを用意することが多い。蒸留では、教師モデルが出力する特徴ベクトルを正解ラベルの代わりに用いて生徒モデルを学習させる。従って蒸留による学習では、通常の学習に必要な大量のラベル付きの学習画像というものが必要ない。このような蒸留技術により、教師モデルの知識を生徒モデルに伝搬させることができることが知られている。
【0004】
蒸留技術で学習された生徒モデルは、教師モデルと略同一の特徴ベクトルを出力することが可能となる。したがって、生徒モデルと教師モデルとでは、ネットワークアーキテクチャやそれに付随するパラメータ等は違うが、両モデルに同じ画像を入力した場合、両モデルからは略同一の特徴ベクトルが出力される。
【0005】
また、非特許文献1には、教師モデルが特徴ベクトルを算出する過程で生成する中間特徴ベクトルと生徒モデルが特徴ベクトルを算出する過程で生成する中間特徴ベクトルとが略同一になるように学習することで、より蒸留による学習のしやすさを向上させる技術なども開示されており、研究開発が活発に行われている
【先行技術文献】
【特許文献】
【0006】
【文献】US10289962
【非特許文献】
【0007】
【文献】FITNETS: HINTS FOR THIN DEEP NETS Adriana Romero, Nicolas Ballas, Samira Ebrahimi Kahou, Antoine Chassang, Carlo Gatta & Yoshua Bengio
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、例えばニューラルネットワークのパラメータ数(階層数やニューロン数など)を教師モデルから大幅に減少させた生徒モデルでの蒸留など、蒸留の難易度が上がると、従来の手法では生徒モデルの特徴ベクトルと教師モデルの特徴ベクトルとが略同一にならない場合がある。
【0009】
本発明では、難易度の高い蒸留でも、生徒モデルとして動作する演算部から出力される特徴ベクトルと、教師モデルとして動作する演算部から出力される特徴ベクトルと、を略同一に近づけるための学習技術を提供する。
【課題を解決するための手段】
【0010】
本発明の一様態は、第1演算部が入力データに基づいて抽出した第1特徴ベクトルと、第2演算部が該第1演算部よりも少ない演算量で該入力データに基づいて抽出した第2特徴ベクトルと、の第1差分ベクトルを求める取得手段と、前記第1差分ベクトルにおける要素の値を変更した第1変更差分ベクトルを生成し、該第1変更差分ベクトルに基づいて前記第2演算部のパラメータを更新する更新手段とを備え、前記第1特徴ベクトルにおいて閾値を超える第1要素に対応する前記第1差分ベクトルの要素の値から、前記第1要素に対応する前記第1変更差分ベクトルの要素の値への変化量は、前記第1特徴ベクトルにおいて閾値を超えない第2要素に対応する前記第1差分ベクトルの要素の値から、前記第2要素に対応する前記第1変更差分ベクトルの要素の値への値の変化量よりも大きいことを特徴とする。
【発明の効果】
【0011】
本発明によれば、難易度の高い蒸留でも、生徒モデルとして動作する演算部から出力される特徴ベクトルと、教師モデルとして動作する演算部から出力される特徴ベクトルと、を略同一に近づけることができる。
【図面の簡単な説明】
【0012】
図1】情報処理装置100のハードウェア構成例を示すブロック図。
図2】情報処理装置100の機能構成例を示すブロック図。
図3】情報処理装置100の動作を示すフローチャート。
図4】抽出部202および抽出部203の機能構成例を示すブロック図。
図5】中間特徴ベクトルと差分ベクトルの一例を示す図。
図6】情報処理装置100の機能構成例を示すブロック図。
【発明を実施するための形態】
【0013】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0014】
[第1の実施形態]
本実施形態では、第1演算部が入力データに基づいて抽出した第1特徴ベクトルと、第2演算部が該第1演算部よりも少ない演算量で該入力データに基づいて抽出した第2特徴ベクトルと、の第1差分ベクトルを求め、該第1差分ベクトルにおける要素の値を変更した第1変更差分ベクトルを生成し、該第1変更差分ベクトルに基づいて該第2演算部のパラメータを更新する情報処理装置の一例について説明する。ここで、第1特徴ベクトルにおいて閾値を超える第1要素に対応する第1差分ベクトルの要素の値から、第1要素に対応する第1変更差分ベクトルの要素の値への変化量は、第1特徴ベクトルにおいて閾値を超えない第2要素に対応する第1差分ベクトルの要素の値から、第2要素に対応する第1変更差分ベクトルの要素の値への値の変化量よりも大きい。
【0015】
先ず、本実施形態に係る情報処理装置100のハードウェア構成例について、図1のブロック図を用いて説明する。CPU101は、RAM103やROM102に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりCPU101は、情報処理装置100全体の動作制御を行うと共に、情報処理装置100が行うものとして説明する各種の処理を実行もしくは制御する。
【0016】
ROM102には、情報処理装置100の設定データ、情報処理装置100の起動に係るコンピュータプログラムやデータ、情報処理装置100の基本動作に係るコンピュータプログラムやデータ、などが格納されている。
【0017】
RAM103は、ROM102や外部記憶装置104からロードされたコンピュータプログラムやデータを格納するためのエリア、CPU101が各種の処理を実行する際に用いるワークエリア、を有する。このようにRAM103は、各種のエリアを適宜提供することができる。
【0018】
外部記憶装置104は、ハードディスクドライブ装置などの大容量情報記憶装置である。外部記憶装置104には、OS(オペレーティングシステム)、情報処理装置100が行うものとして説明する各種の処理をCPU101に実行もしくは制御させるためのコンピュータプログラムやデータ、などが保存されている。外部記憶装置104に保存されているコンピュータプログラムやデータは、CPU101による制御に従って適宜RAM103にロードされ、CPU101による処理対象となる。
【0019】
なお、外部記憶装置104は、情報処理装置100から着脱可能なフレキシブルディスク(FD)やCompact Disc(CD)等の光ディスク、磁気や光カード、ICカード、メモリカードなどを含んでもよい。
【0020】
CPU101、ROM102、RAM103、外部記憶装置104は何れもシステムバス108に接続されている。また、システムバス108にはさらに、入力I/F105および出力I/F106が接続されている。
【0021】
入力I/F105には入力部109が接続されている。入力部109は、キーボード、マウス、タッチパネル画面などのユーザインターフェースであり、ユーザが操作することで各種の指示をCPU101に対して入力することができる。
【0022】
出力I/F106にはモニタ110が接続されている。モニタ110は、液晶画面やタッチパネル画面を有し、CPU101による処理結果を画像や文字などでもって表示することができる。なお、モニタ110は、画像や文字を投影するプロジェクタなどの投影装置であっても良い。
【0023】
このような情報処理装置100には、PC(パーソナルコンピュータ)、WS(ワークステーション)、スマートフォン、タブレット端末装置、などのコンピュータ装置が適用可能である。なお、情報処理装置100に適用可能なハードウェア構成は図1に示した構成に限らず、適宜変形/変更が可能である。
【0024】
次に、情報処理装置100の機能構成例について、図2のブロック図を用いて説明する。以下では、図2の機能部を処理の主体として説明するが、実際には該機能部の機能をCPU101に実行もしくは制御させるためのコンピュータプログラムを該CPU101が実行することで該機能部の機能が実現される。このようなコンピュータプログラムは外部記憶装置104に保存されており、CPU101による制御に従って適宜RAM103にロードされ、CPU101により実行される。なお、図2の機能部の1以上をハードウェアで実装しても良い。
【0025】
データ取得部201は外部記憶装置104に保存されている画像301をRAM103にロード(取得)する。なお、画像301は入力データの一例であり、テキストデータ、音声データなどを入力データとしても良い。
【0026】
抽出部202は、画像301を、教師モデルであるCNN(Convolutional Neutral Network)等のディープネットに入力し、該ディープネットの中間層にて該画像301から抽出した第一の特徴ベクトル302を取得する。本実施形態では、第一の特徴ベクトル302は512次元のベクトルであるものとする。512次元の第一の特徴ベクトル302は、例えば、画像分類システムや顔認証システムでの利用を想定している。
【0027】
抽出部202が用いるディープネットのパラメータ(重み係数など)は既に学習にて取得されたパラメータであり、このパラメータは、以下に説明する本実施形態の学習の過程で変更はされない。
【0028】
なお、ディープネットは階層型ニューラルネットワークの一例であり、本実施形態に係る抽出部202は、他の種類の階層型ニューラルネットワークを用いて画像301から第一の特徴ベクトル302を取得するようにしても良い。
【0029】
抽出部203は、抽出部202が用いたディープネット(ディープネットAと称する)よりも演算量が少ないディープネット(ディープネットBと称する)に画像301を入力し、該ディープネットBにおける中間層にて該画像301から抽出した第二の特徴ベクトル303(512次元)を取得する。
【0030】
ディープネットBは生徒モデルであり、例えば、ディープネットAよりもパラメータ数が少ないディープネット(例えば、ディープネットAよりも中間層の数が少ないディープネット、ディープネットAよりもニューロン数が少ないディープネット)、である。
【0031】
本実施形態では、抽出部202が用いるディープネットや抽出部203が用いるディープネットにおける活性化関数はReLU(Rectified Linear Unit)であるものとするが、以降の説明はこれに限らない。また、抽出部202が用いるディープネットや抽出部203が用いるディープネットの出力層からは、画像301に対応する1024次元のベクトルが出力されるものとする。
【0032】
差分取得部204は、抽出部202が取得した第一の特徴ベクトル302と、抽出部203が取得した第二の特徴ベクトル303と、の差分ベクトルに基づいて差分値306を求める。
【0033】
取得部204aは、抽出部202が取得した第一の特徴ベクトル302と、抽出部203が取得した第二の特徴ベクトル303と、の差分ベクトル304を生成する。例えば取得部204aは、第一の特徴ベクトル302におけるi(1≦i≦512)番目の要素をAi、第二の特徴ベクトル303におけるi番目の要素をBiとすると、差分ベクトル304のi番目の要素Ciの値として(Ai-Bi)を求める。本実施形態では、要素Zの値もZと称する場合がある。なお、差分ベクトル304のi番目の要素CiとしてAiとBiとの非負の差分を求めるのであれば、他の方法を用いて差分ベクトル304のi番目の要素Ciを求めても良い。
【0034】
関数適用部204bは、第一の特徴ベクトル302が有する要素のうち閾値TH1を超える値を有する要素Aj(1≦j≦512)を特定し、該要素Ajに対応する差分ベクトル304の要素Cjの値を増加させた差分ベクトル305を生成する。以下では、差分ベクトル304における要素Cjの集合を「関数適用領域」と称する。また本実施形態では閾値TH1を0とする。
【0035】
例えば関数適用部204bは、差分ベクトル305におけるj番目の要素をDjとすると、差分ベクトル304の要素Cjに以下の(式1)に示す如く関数fを適用することでDjを求める。
【0036】
Dj=f(Cj)=αxCj … (式1)
ここで、αは1以上の実数値を有する重み値であり、関数fは要素Cjの値を重み値αに応じて増加させたDjを求めるための関数である。なお、要素Cjの値を増加させたDjを求めるための関数であれば、関数適用部204bが要素Cjに適用する関数は(式1)に示した関数fに限らず、他の線形関数を用いても良いし、非線形関数を用いても良い。また、同様の目的を達成できるのであれば、関数を使用することに限らない。
【0037】
つまり、差分ベクトル305の生成方法については、「第一の特徴ベクトル302において閾値TH1を超える第1要素に対応する差分ベクトル304の要素の値から、該第1要素に対応する差分ベクトル305の要素の値への変化量は、第一の特徴ベクトル302において閾値TH1を超えない第2要素に対応する差分ベクトル304の要素の値から、該第2要素に対応する差分ベクトル305の要素の値への値の変化量よりも大きい」という条件が満たされるのであれば、どのような生成方法を適用しても良い。
【0038】
例えば、関数適用部204bは、第一の特徴ベクトル302が有する要素のうち閾値TH1を超えない値を有する要素A’k(1≦k≦512)を特定し、該要素A’kに対応する差分ベクトル304の要素C’kの値を減少させた差分ベクトル305を生成するようにしても良い。例えば関数適用部204bは、差分ベクトル304の要素C’kに以下の(式1-1)に示す如く関数f’を適用することで、差分ベクトル305におけるk番目の要素Dkを求める。
【0039】
Dk=f’(C’k)=βxC’k … (式1-1)
ここで、βは0<β<1を満たす実数値を有する重み値である。この場合、関数適用部204bはさらに(式1)を適用しても良いし、適用しなくても良い。以下の表は、第一の特徴ベクトル302、第二の特徴ベクトル303、差分ベクトル304、差分ベクトル305の事例を示している。
【0040】
【表1】
【0041】
ここでは重み値α=64としている。例えば表中に明記されている第一の特徴ベクトル302の要素(1番目の要素(1次元目の要素)~512番目の要素(512次元目の要素))のうち要素の値が閾値TH1=0を越える要素は2次元目の要素、3次元目の要素、510次元目の要素である。よって、関数適用領域に属する要素は差分ベクトル304の要素のうち2次元目の要素、3次元目の要素、510次元目の要素となり、これらの要素の値に重み値α=64を掛けたベクトルが差分ベクトル305となる。
【0042】
算出部204cは、差分ベクトル305の全ての要素の値の合計値を、上記のディープネットの出力層から出力される特徴ベクトルの次元数である1024で割った値を差分値306として求める。なお、差分ベクトル305における要素の値から差分値306を求めるための方法は特定の方法に限らない。例えば算出部204cは、差分ベクトル305の全ての要素の値の合計値を差分値306として求めても良いし、差分ベクトル305において閾値以上の要素の値の合計値や該合計値を1024で割った値を差分値306として求めても良い。
【0043】
更新部205は、差分値306がより小さくなるような「抽出部203が用いるディープネットのパラメータ307」を誤差逆伝搬法により算出し、現在設定されている「抽出部203が用いるディープネットのパラメータ」をパラメータ307に更新する。これにより抽出部203は、次に入力された画像を、パラメータ307に従って再構成されたディープネットBに入力し、該ディープネットBにおける中間層にて該画像から抽出した第二の特徴ベクトル303(512次元)を取得する。パラメータ307に従って再構成されたディープネットBは、再構成前のディープネットBにおける重み係数などが変わったものとなっている。
【0044】
増加部206は、第一の特徴ベクトル302が有する要素のうち閾値TH1を超える値を有する要素Ajに対応する差分ベクトル304の要素Cjの値を増加させる量(増加量)をより増加させる。上記の例では、重み値αをより大きくしたり、重み値βをより小さくする。一般には、増加部206は、関数適用領域における、差分ベクトル304から差分ベクトル305への要素の値の増加量が増加するように設定を更新する。または増加部206は、非関数適用領域における、差分ベクトル304から差分ベクトル305への要素の値の減少量がより減少するように設定を更新する。
【0045】
増加部206による重み値αの増加は、関数適用領域に属する要素の数が学習回数が増加しても減少しなくなったタイミングで実施する。ディープネットの活性化関数にReLUを用いる場合、値が0以下の入力に対応する出力は全て0であるため、誤差逆伝搬によるパラメータ更新時の学習率が小さいと出力は0のままになり、局所解に陥りやすい。一方、学習率を大きくしてしまうと第二の特徴ベクトル303の値が0でない要素に寄与するパラメータの変動も同時に大きくなるため、適切な学習ができない。そのため、学習開始時における重み値αの値(初期値)は1に設定し、比較的容易に再現できる第一の特徴ベクトル302の要素を出力する抽出部203のパラメータを最初に取得する。
【0046】
前述のタイミングで重み値αを増加させることで、関数適用領域に対応する差分値を増加させる。重み値αによって差分値が増加されると、学習は関数適用領域に寄与するパラメータの学習を促進させる。この手順で順次重み値αを増加させることで、最終的に適切な抽出部203のパラメータを取得することが可能となる。
【0047】
なお、増加部206による増加量が増加するように設定を更新するタイミングは、上記のタイミングに限らず、例えば、差分値306の増減変動で決定しても良い(増加部206による減少量が減少するように設定を更新するタイミングについても同様)。つまり、今回求めた差分値306の前回からの変化量が閾値未満であれば更新するタイミング、としても良い。また、学習の繰返し回数(試行回数)や学習開始からの経過時間に応じて定期的若しくは不定期的に更新する、としても良い。
【0048】
このような上記の処理(データ取得部201、抽出部202、抽出部203、取得部204a、関数適用部204b、算出部204c、更新部205、増加部206の処理)を繰り返すことで、「抽出部203が用いるディープネット」の学習を行う。
【0049】
判定部207は、学習の終了条件が満たされたか否かを判定する。学習の終了条件は特定の条件に限らない。例えば、判定部207は、ユーザが入力部109を操作して学習の終了指示を入力した場合には、学習の終了条件が満たされたと判定する。また例えば、判定部207は、学習の繰返し回数が規定回数を超えた場合や、学習の開始からの経過時間が規定時間を超えた場合には、学習の終了条件が満たされたと判定する。
【0050】
次に、上記の情報処理装置100の動作について、図3のフローチャートに従って説明する。各ステップにおける処理の詳細については上記の通りであるから、ここでは簡単に説明する。
【0051】
ステップS401では、データ取得部201は外部記憶装置104に保存されている画像301をRAM103にロード(取得)する。ステップS402では、抽出部202は、ステップS401で取得した画像301をディープネットAに入力し、該ディープネットAにおける中間層にて該画像301から抽出した第一の特徴ベクトル302を取得する。
【0052】
ステップS403では、抽出部203は、ステップS401で取得した画像301をディープネットBに入力し、該ディープネットBにおける中間層にて該画像301から抽出した第二の特徴ベクトル303を取得する。
【0053】
ステップS404では、取得部204aは、ステップS402で取得した第一の特徴ベクトル302と、ステップS403で取得した第二の特徴ベクトル303と、の差分ベクトル304を生成する。
【0054】
ステップS405では、関数適用部204bは、第一の特徴ベクトル302が有する要素のうち閾値TH1を超える値を有する要素Ajを特定し、該要素Ajに対応する差分ベクトル304の要素Cjの値を増加させた差分ベクトル305を生成する。
【0055】
ステップS406では、算出部204cは、ステップS405で生成した差分ベクトル305の全ての要素の値の合計値を1024で割った値を差分値306として求める。
【0056】
ステップS407では、更新部205は、ステップS406で求めた差分値306がより小さくなるような「抽出部203が用いるディープネットのパラメータ307」を誤差逆伝搬法により算出する。そして更新部205は、現在設定されている「抽出部203が用いるディープネットのパラメータ」をパラメータ307に更新する。
【0057】
ステップS408では、増加部206は、重み値αを更新するタイミングか否かを判断する。この判断の結果、重み値αを更新するタイミングである場合には、処理はステップS409に進み、重み値αを更新するタイミングではない場合には、処理はステップS410に進む。
【0058】
例えば、関数適用領域に属する要素の数が100回の学習を通して連続で変化しないという条件が満たされた場合、重み値αを更新するタイミングであると判断し、該条件が満たされていない場合には、重み値αを更新するタイミングではないと判断する。
【0059】
ステップS409では、増加部206は、重み値αをより大きくする。ここでは、重み値αの初期値は1とし、1回で増加させる重み値αの増分を64とする。ステップS410では、判定部207は、学習の終了条件が満たされたか否かを判定する。この判定の結果、学習の終了条件が満たされた場合には、図3のフローチャートに従った処理は終了し、学習の終了条件が満たされていない場合には、処理はステップS401に進む。
【0060】
なお、CPU101は、図3のフローチャートに従った学習処理によって得られる「抽出部203が用いるディープネットのパラメータ307」を外部記憶装置104に保存するようにしても良いし、ネットワークを介して外部の装置に対して送信しても良い。また、CPU101は、「抽出部203が用いるディープネットのパラメータ307」を画像や文字などでもってモニタ110に表示させても良い。このように、「抽出部203が用いるディープネットのパラメータ307」の出力先や出力形態については特定の出力先、特定の出力形態に限らない。
【0061】
このように、本実施形態によれば、蒸留の際に関数適用領域の差分に重み値を付与し、学習の進捗に応じて重み値を増加させる。これにより、従来の手法では実現が困難であった難易度の高い蒸留であっても、生徒モデルの特徴ベクトルと教師モデルの特徴ベクトルとを略同一にすることが可能となる。
【0062】
[第2の実施形態]
以下では第1の実施形態との差分について説明し、以下で特に触れない限りは第1の実施形態と同様であるものとする。本実施形態に係る抽出部202および抽出部203の機能構成例について、図4のブロック図を用いて説明する。
【0063】
本実施形態に係る抽出部202は、第一の前半抽出部501と第一の後半抽出部502とを有する。第一の前半抽出部501は、入力された画像301をディープネットAに入力し、該ディープネットAにおける中間層Aにて該画像301から抽出した第一の中間特徴ベクトル505を取得する。中間層Aとは、ディープネットAにおける入力層と「第一の特徴ベクトル302を出力する中間層」との間における中間層である。第一の後半抽出部502は、該第一の中間特徴ベクトル505を入力として中間層A以降の各層の演算を行うことで第一の特徴ベクトル302を生成する。
【0064】
本実施形態に係る抽出部203は、第二の前半抽出部503と第二の後半抽出部504とを有する。第二の前半抽出部503は、入力された画像301をディープネットBに入力し、該ディープネットBにおける中間層Bにて該画像301から抽出した第二の中間特徴ベクトル506を取得する。中間層Bとは、ディープネットBにおける入力層と「第二の特徴ベクトル303を出力する中間層」との間における中間層である。第二の後半抽出部504は、該第二の中間特徴ベクトル506を入力として中間層B以降の各層の演算を行うことで第二の特徴ベクトル303を生成する。
【0065】
第一の特徴ベクトル302は、学習済みのディープネットから取得されるため、正解ラベルと近しい値になっている。そのため、正解ラベルのベクトルの要素の値がほとんど0で占められている場合は第一の特徴ベクトル302も同様に多くの要素の値が0になり、本実施形態のように閾値TH1を0とする場合、関数適用領域に属する要素がほとんど存在しない場合がある。
【0066】
一方、第一の中間特徴ベクトル505は、正解ラベルと近しい値になるように第一の特徴ベクトル302を取得するために画像301からさまざまな特徴を取得したベクトルになっており、ベクトルの要素の値の多くが非ゼロになる。そのため、第一の中間特徴ベクトル505については関数適用領域に属する要素が多く、中間特徴ベクトルを用いて蒸留を行えば上記の学習をより効果的に実行することができる。
【0067】
図5を用いて中間特徴ベクトルと差分ベクトルについて説明する。図5は、2次元データが9つ存在する3次元の中間特徴ベクトルの事例を示している。黒く塗りつぶされた領域は値が0であることを示し、白く塗りつぶされた領域は値が非ゼロであることを示している。
【0068】
図5(a)は、第一の中間特徴ベクトル505の事例を示しており、学習済みのディープネット(抽出部202)からの中間特徴ベクトルは画像301のさまざまな特徴を取得しているため、多くが非ゼロになっている。
【0069】
図5(b)は、学習途中のディープネット(抽出部203)からの第二の中間特徴ベクトル506の事例を示しており、3つの2次元データで全てゼロの値となっており、その他の2次元データが第一の中間特徴ベクトル505と同等の値になっている。
【0070】
図5(c)は、第一の中間特徴ベクトル505と第二の中間特徴ベクトル506の差分ベクトルの事例を示しており、3つの2次元データで差分が発生している。差分が発生している領域は全て関数適用領域であるため、重み値αの値を増加させることで3つの2次元データに寄与するパラメータの学習を促進することができる。
【0071】
本実施形態に係る情報処理装置100の機能構成例について、図6のブロック図を用いて説明する。抽出部202は、画像301から第一の特徴ベクトル302と第一の中間特徴ベクトル505を取得する。抽出部203は、画像301から第二の特徴ベクトル303と第二の中間特徴ベクトル506を取得する。
【0072】
差分取得部204は、第一の特徴ベクトル302と第二の特徴ベクトル303から第1の実施形態と同様にして差分値701を取得し、第一の中間特徴ベクトル505と第二の中間特徴ベクトル506から第1の実施形態と同様にして差分値702を取得する。2つのベクトルから差分値を求める為の処理については第1の実施形態で説明したように様々な処理がある。よって、差分値701を求める為の処理と、差分値702を求める為の処理と、は同じ処理であっても良いし、異なる処理であっても良いし、同じ処理であっても閾値や重み値αを変えても良い。
【0073】
統合部703は、差分値701と差分値702の合計値を差分値306として求める。以降は第1の実施形態と同様の処理を行ってパラメータ307を求め、抽出部203のパラメータを該求めたパラメータ307で更新する。
【0074】
また、差分値701を求める為に用いた閾値や重み値αの更新タイミング、差分値702を求める為に用いた閾値や重み値αの更新タイミング、は同じであっても良いし、異なっていても良い。また、差分値701を求める為に用いた重み値αの増加量、差分値702を求める為に用いた重み値αの増加量、は同じであっても良いし、異なっていても良い。
【0075】
本実施形態では、図3のフローチャートにおいて、ステップS402にて抽出部202は、画像301から第一の特徴ベクトル302と第一の中間特徴ベクトル505を取得する。そしてステップS403にて、抽出部203は、画像301から第二の特徴ベクトル303と第二の中間特徴ベクトル506を取得する。
【0076】
そして差分取得部204は、ステップS404~ステップS406の処理で第1の実施形態と同様に第一の特徴ベクトル302と第二の特徴ベクトル303から差分値701を取得する。また差分取得部204は、ステップS404~ステップS406の処理と同様の処理により、第一の中間特徴ベクトル505と第二の中間特徴ベクトル506から差分値702を取得する。そしてステップS406では、統合部703は、差分値701と差分値702の合計値を差分値306として求める。その他のステップにおける処理は第1の実施形態と同様である。
【0077】
このように、本実施形態によれば、従来の手法では実現が困難であった難易度の高い蒸留であっても、中間特徴ベクトルを利用する蒸留の場合はより高い精度で、生徒モデルの特徴ベクトルと教師モデルの特徴ベクトルとを略同一にすることが可能となる。
【0078】
また、上記の各実施形態で使用した数値、処理タイミング、処理順、処理の主体、データ(情報)の送信先/送信元/格納場所などは、具体的な説明を行うために一例として挙げたもので、このような一例に限定することを意図したものではない。
【0079】
また、以上説明した各実施形態の一部若しくは全部を適宜組み合わせて使用しても構わない。また、以上説明した各実施形態の一部若しくは全部を選択的に使用しても構わない。
【0080】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0081】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0082】
201:データ取得部 202:抽出部 203:抽出部 204:差分取得部 204a:取得部 204b:関数適用部 204c:算出部 205:更新部 206:増加部 207:判定部
図1
図2
図3
図4
図5
図6