(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-12
(45)【発行日】2024-07-23
(54)【発明の名称】学習装置、方法およびプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240716BHJP
G06N 3/0499 20230101ALI20240716BHJP
G06N 3/082 20230101ALI20240716BHJP
【FI】
G06T7/00 350C
G06N3/0499
G06N3/082
(21)【出願番号】P 2021035666
(22)【出願日】2021-03-05
【審査請求日】2023-02-17
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】新田 修平
(72)【発明者】
【氏名】谷沢 昭行
【審査官】藤原 敬利
(56)【参考文献】
【文献】特開2020-201823(JP,A)
【文献】特開2019-069145(JP,A)
【文献】特開2019-096285(JP,A)
【文献】国際公開第2017/126482(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06T 1/00- 7/90
G06V 10/00-20/90
H04N 23/00-23/956
(57)【特許請求の範囲】
【請求項1】
対象デバイスで取得する対象データに関する単位当たりの情報量を示すデータ解像度を基準として、前記
データ解像度と、前記データ解像度よりも高い解像度を含む、異なる複数のデータ解像度を決定する決定部と、
前記
異なる複数のデータ解像度にそれぞれ対応する学習サンプルを
入力し、前記対象データを基準とした入力データのデータ解像度
のバリエーションに対応可能なニューラルネットワークであるスケーラブルネットワークを学習させる学習部と、
を具備する学習装置。
【請求項2】
前記決定部は、前記対象データのデータ解像度に対応する前記スケーラブルネットワークの構造を基本構造として決定し、前記基本構造における層数を基準として、データ解像度に比例して前記スケーラブルネットワークの層数を決定する、請求項1に記載の学習装置。
【請求項3】
前記決定部は、前記対象デバイスのスペックに基づいて前記基本構造を決定し、前記層数を変更した場合の畳み込み処理における受容野の変化に応じて、前記複数のデータ解像度を決定する、請求項2に記載の学習装置。
【請求項4】
前記スペックは、前記対象デバイスに搭載されるメモリのメモリ容量、前記対象デバイスに搭載される処理回路の処理能力、および前記対象デバイスの消費電力の少なくともいずれか1つである、請求項3に記載の学習装置。
【請求項5】
学習済みのスケーラブルネットワークであって、前記対象データのデータ解像度に対応する前記スケーラブルネットワークの構造である基本構造に関する学習済みモデルを前記対象デバイスに提供する提供部をさらに具備する、請求項1から請求項4のいずれか1項に記載の学習装置。
【請求項6】
前記学習部は、データ解像度に比例して、層数、チャネル数および畳み込み処理におけるカーネルサイズの少なくとも1つをさらに変更して前記スケーラブルネットワークを学習させる、請求項1から請求項5のいずれか1項に記載の学習装置。
【請求項7】
前記対象データは、画像データであり、
前記異なる複数のデータ解像度は、それぞれ異なる複数の画像サイズであり、
前記決定部は、前記画像データに含まれる対象物のサイズから、前記異なる複数の画像サイズを決定する、請求項1から請求項6のいずれかに記載の学習装置。
【請求項8】
前記決定部は、教示データに含まれるラベルまたは物体検出に関するバウンディングボックスに関する情報から前記対象物の画像サイズを決定する、請求項7に記載の学習装置。
【請求項9】
前記決定部は、前記対象物と前記対象デバイスとの空間的位置関係から前記対象物の画像サイズを決定する、請求項7に記載の学習装置。
【請求項10】
前記決定部は、他の学習済みモデルに対し前記画像データを入力して得られた分類結果と顕著性マップとを用いて、前記対象物の画像サイズを決定する、請求項7に記載の学習装置。
【請求項11】
前記学習部は、前記異なる複数のデータ解像度に対応する複数の学習サンプルを1つのバッチに割り当て、前記スケーラブルネットワークをミニバッチ学習する、請求項1から請求項10のいずれか1項に記載の学習装置。
【請求項12】
前記学習部は、前記複数のデータ解像度のそれぞれに対するネットワーク構造において個別の正規化層を用いる、請求項1から請求項11のいずれか1項に記載の学習装置。
【請求項13】
前記決定部は、複数の対象デバイスが存在する場合、前記複数の対象デバイスそれぞれで取得される対象データのデータ解像度が含まれるように前記異なる複数のデータ解像度を決定する、請求項1から請求項12のいずれか1項に記載の学習装置。
【請求項14】
対象デバイスで取得する対象データに関する単位当たりの情報量を示すデータ解像度を基準として、前記
データ解像度と、前記データ解像度よりも高い解像度を含む、異なる複数のデータ解像度を決定し、
前記
異なる複数のデータ解像度にそれぞれ対応する学習サンプルを
入力し、前記対象データを基準とした入力データのデータ解像度
のバリエーションに対応可能なニューラルネットワークであるスケーラブルネットワークを学習させる、学習方法。
【請求項15】
コンピュータを、
対象デバイスで取得する対象データに関する単位当たりの情報量を示すデータ解像度を基準として、前記
データ解像度と、前記データ解像度よりも高い解像度を含む、異なる複数のデータ解像度を決定する決定手段と、
前記
異なる複数のデータ解像度にそれぞれ対応する学習サンプルを
入力し、前記対象データを基準とした入力データのデータ解像度
のバリエーションに対応可能なニューラルネットワークであるスケーラブルネットワークを学習させる学習手段として機能させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、学習装置、方法およびプログラムに関する。
【背景技術】
【0002】
ニューラルネットワークのアーキテクチャ設計を最適化する技術(NAS:Neural Architecture Search)が注目される。例えば、入力画像サイズ、層数およびチャネル数に関する複数の条件を混ぜてスケーラブルなニューラルネットワークを学習する技術がある。
しかし、上述の技術では、どのようなバリエーションで学習すべきかについての指針がなく、当該バリエーションの選定が難しい。また、搭載するデバイスの使用に特化して学習しているわけではないため、推論精度が十分でない場合がある。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【文献】Jiahui Yu et al., “BigNAS:Scaling up Neural Architecture Search with Big Single-Stage Models", [online]、令和2年7月17日、[令和3年1月12日検索]、インターネット<URL : http://arxiv.org/abs/2003.11142>
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示は、上述の課題を解決するためになされたものであり、効率的かつ効果的な学習条件を設定できる学習装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本実施形態に係る学習装置は、決定部と、学習部とを含む。決定部は、対象デバイスで取得する対象データに関する単位当たりの情報量を示すデータ解像度を基準として、前記対象データのデータ解像度を含む範囲で、それぞれ異なる複数のデータ解像度を決定する。学習部は、前記複数のデータ解像度にそれぞれ対応する学習サンプルを用いて、入力データのデータ解像度を変更可能なニューラルネットワークであるスケーラブルネットワークを学習させる。
【図面の簡単な説明】
【0007】
【
図1】本実施形態に係る学習装置を示すブロック図。
【
図2A】本実施形態に係る画像データの場合のデータ解像度を示す概念図。
【
図2B】本実施形態に係る時系列データの場合のデータ解像度を示す概念図。
【
図3】本実施形態に係る学習装置の動作例を示すフローチャート。
【
図5】基本構造におけるスケーラブルネットワークの層構造を示す概念図。
【
図6】基本構造よりも画像サイズが小さい場合のスケーラブルネットワークの層構造を示す概念図。
【
図7】本実施形態に係る学習装置のシミュレーション結果を示す概念図。
【
図8】本実施形態に係る学習装置のハードウェア構成を示す図。
【発明を実施するための形態】
【0008】
以下、図面を参照しながら本実施形態に係る学習装置、方法およびプログラムについて詳細に説明する。なお、以下の実施形態では、同一の参照符号を付した部分は同様の動作をおこなうものとして、重複する説明を適宜省略する。
【0009】
本実施形態に係る学習装置を含むモデル提供システムについて
図1のブロック図を参照して説明する。
本実施形態に係るモデル提供システム1は、学習装置10と1以上の対象デバイス21とを含む。
学習装置10は、ネットワーク50を介して対象デバイス21-1および対象デバイス21-2と接続される。対象デバイス21は、例えば路上または工場などに配備される監視カメラまたはユーザが利用するIoT機器といった、学習済みモデルを搭載して処理を実行可能なエッジデバイスを想定する。
なお、
図1では2つの対象デバイス21を図示するが、1つの対象デバイス21であってもよいし、3以上の対象デバイス21が存在してもよい。以下では、特に断らない限り、対象デバイス21が1つであるか、複数の対象デバイス21が存在する場合でも、複数の対象デバイス21が同一の仕様を有する場合について説明する。
【0010】
本実施形態に係る学習装置10は、取得部101と、決定部102と、学習部103と、提供部104とを含む。
取得部101は、学習済みモデルの提供先である対象デバイス21に関するデバイス情報を取得する。
【0011】
デバイス情報は、例えば、対象デバイス21で取得する対象データのデータ解像度(対象データ解像度ともいう)、対象デバイス21の処理回路(例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field Programmable gate array)およびASIC(Application Specific Integrated Circuit))の処理能力、デバイスの最大メモリといった情報である。対象データは、カメラにより撮像した画像データ、マイクにより収集した音声などの時系列データなどが挙げられる。データ解像度は、単位当たりの情報量を示す。処理回路の処理能力に関する情報としては、FLOPS(Floating-point Operations Per Second)、TOPS(Trillion Operations Per Second)などが挙げられる。
【0012】
また、取得部101は、機械学習モデルを学習させるための学習サンプルおよび教示データを取得する。なお、学習サンプルおよび教示データをあわせて学習用データセットとも呼ぶ。
【0013】
決定部102は、取得部101からデバイス情報を受け取り、デバイス情報に含まれる対象データ解像度を基準として、対象データ解像度を含む範囲で、それぞれ異なる複数のデータ解像度を決定する。
学習部103は、取得部101から学習用データセットを、決定部102からそれぞれ異なる複数のデータ解像度に関する情報をそれぞれ受け取る。学習部103は、異なるデータ解像度にそれぞれ対応する学習サンプルを含む学習用データセットを用いて、スケーラブルネットワークを学習させ、学習済みモデルを生成する。スケーラブルネットワークは、少なくとも入力データのデータ解像度(サイズ)を変更可能なニューラルネットワークである。
【0014】
提供部104は、学習部103から学習済みモデルを受け取り、ネットワーク50を介して学習済みモデルを対象デバイス21に提供する。なお、ネットワーク50を介さず、学習装置10が対象デバイス21に有線または無線により直接接続し、学習装置10から学習済みモデルが対象デバイス21に直接提供されてもよい。
【0015】
次に、本実施形態に係るデータ解像度の概念について
図2Aおよび
図2Bを参照して説明する。
図2Aは、対象データが画像データである場合の複数のデータ解像度の概念を示す。対象データが画像データであれば、画像サイズがデータ解像度となる「1枚の画像」という単位当たりの縦横の画像サイズ(ピクセル数)を異ならせることで、画像データの解像度を変更できる。
図2Aでは、104×104[pixel]、128×128[pixel]および152×152[pixel]と3つの異なる画像サイズが示される。一般にピクセル数が多いほど画像の解像度は高くなり、ピクセル数が少ないほど画像の解像度は低いといえる。
【0016】
次に、
図2Bは、対象データが時系列データである場合の複数のデータ解像度の概念を示す。対象データが音声やセンサ値などの時系列データであれば、データのサンプリングレートがデータ解像度となる。
図2Bに示すように、単位時間当たりの時系列データのサンプリング間隔を異ならせることで、時系列データの解像度を変更できる。
図2Bでは、ある単位時間において、1kHzのサンプリングレートでは4つのサンプリング点(S
1~S
4)、2kHzのサンプリングレートでは8つのサンプリング点(S
1~S
8)、および3kHzのサンプリングレートでは12つのサンプリング点(S
1~S
12)を有する、3つの異なるサンプリングレートの時系列データが示される。サンプリングレートが高いほど、単位時間に取得するデータ数が多くなるためデータの解像度が高く、サンプリングレートが低いほど、単位時間に取得するデータ数が少なくなるため、データの解像度が低いといえる。
【0017】
決定部102は、
図2Aおよび
図2Bのように、それぞれ異なる複数のデータ解像度を決定すればよい。以下の実施形態では、対象データが画像データであり、データ解像度が画像サイズである場合を例に説明する。
なお、本実施形態では、対象データが画像データおよび時系列データに限らず、データ解像度が定義可能な等間隔にサンプリングされたデータであれば、対象データとして採用できる。
【0018】
次に、本実施形態に係る学習装置10の動作例について
図3のフローチャートを参照して説明する。なお
図3の例では、車が写っているか否かを判定する画像の分類タスクを実行する学習済みモデルを、対象デバイス21である路上に配置される監視カメラに搭載する例を用いて説明する。また、以下では、入力データのサイズとネットワークの層数とを変更可能なスケーラブルネットワークを学習し、学習済みモデルを生成する例について説明する。
【0019】
ステップS301では、取得部101が、対象デバイス21のデバイス情報を取得し、対象デバイス21の対象データ解像度を取得する。すなわち、取得部101は、画像データの画像サイズを取得する。ここでは一例として、対象デバイス21で取得される画像サイズを128×128[pixel]であるとする。
【0020】
ステップS302では、決定部102が、ステップS301で取得した対象データ解像度に基づいて、それぞれ異なる複数のデータ解像度と、スケーラブルネットワークに関する、それぞれ異なる複数のネットワーク構造とを決定する。すなわち、決定部102は、対象デバイス21で取得される画像サイズを含む範囲で、それぞれ異なる複数の画像サイズと、対応する複数のネットワーク構造を決定する。ここでは、ネットワーク構造の一例として、ResNet(Residual Network)を想定する。本実施形態で想定するResNetは、(6n+1)層(nは1以上の整数)の畳み込み層と、1層の全結合層とにより構成される畳み込みニューラルネットワークである。nの数を変更することにより、計算コストに相当する合計の層数と推論精度(認識率)とを調整できる。例えば、n=6であれば、(6×6+1)+1=38層のネットワーク構造となる。本実施形態では、最終的に対象デバイス21に提供する、対象データ解像度に対応するスケーラブルネットワークのネットワーク構造を基本構造とも呼ぶ。
【0021】
なお、ResNetに限らず、DenseNetやU-netなど、ショートカット構造を有する他のニューラルネットワークでもよいし、一般的なDCNN(Deep Convolutional Neural Network)であってもよく、異なるデータ解像度に対応した複数のネットワーク構造を設計できれば、どのようなニューラルネットワークでもよい。
【0022】
決定部102は、基本構造となるnの値を中心としてnの値を増減させることでバリエーションを持たせ、複数のnの値にそれぞれ対応するネットワーク構造を決定する。ここでは、デバイス情報に含まれる対象デバイスの最大メモリの容量を超えない範囲で最大のnを選択することとし、n=6の場合を基本構造とする。続いて、対応するResNetの構造を基本構造とし、基本構造となるnの値を中心としてn±1、n±2となる5つのnの値を選択する。決定部102は、n={4,5,6,7,8}にそれぞれ対応するネットワーク構造を決定する。
【0023】
決定部102は、決定されたネットワーク構造のそれぞれの層数に対応する、複数の画像サイズを決定する。画像サイズの決定方法としては、例えば、本実施形態で想定するスケーラブルネットワークでは、nが1つ増えると、ネットワーク全体で6層分、層が増える。畳み込み処理におけるカーネルのストライドを1とすると、1層増えるごとに2[pixel]増加することから、スケーラブルネットワーク全体での畳み込み層の受容野(レセプティブフィールド)はプーリングを考慮しない単純な換算で12[pixel]増加する。よって、決定部102は、層数を変更した場合に受容野が変化しないように画像サイズを決定すればよい。具体的には、基本構造に対する対象デバイス21の画像サイズが128×128[pixel]である場合を基本構造とすると、n={4,5,6,7,8}で規定される層数に対応する画像サイズはそれぞれ、S={104,116,128,140,152}として決定される。なお、Sは、画像の一辺のピクセル数を示す。よって、例えばS=128であれば、128×128[pixel]の画像サイズであることを示す。
【0024】
ステップS303では、取得部101が、それぞれ異なる複数の画像サイズを学習サンプルとする、スケーラブルネットワークを学習させるための学習用データセットを取得する。ここでは、学習用データセットに含まれる学習サンプル(画像データ)は、x→
ijで表される。上付き矢印は、ベクトル集合であることを示す。iは、学習サンプルの通し番号であり、i={1,2,…,B}で表される。Bは、取得した学習サンプルの数である。jは、入力される画像サイズとニューラルネットワークの層数との組み合わせの通し番号であり、j={1,2,…,M}で表される。Mは、組み合わせの数である。つまり、学習サンプルx→
ijは、i番目のサンプルと、j番目の画像サイズおよび層数の組み合わせとにおける画素集合のベクトルで表される。
【0025】
図2の例では、5つの異なる層数を想定するため、M=5である。すなわち、j=1の場合は(n=4,S=104)、j=2の場合は(n=5,S=116)、j=3の場合は(n=6,S=128)、j=4の場合は(n=7,S=140)、j=5の場合は(n=8,S=152)といった組み合わせを表す。
【0026】
本実施形態では、X→
ijの学習サンプルは、一般的な画像変換処理(いわゆる、Resize, RandomCrop, CenterCrop, RandomResizedCrop)により生成されればよい。ただし、j=1~Mの間で解像度情報の関係が保たれるように注意する必要があり、例えば解像度最大のjについてのみ画像変換処理を行い、その画像をResizeすることで残りのjについての画像を生成することで、解像度情報の関係が保たれた学習サンプルを生成できる。なお、学習サンプルとして様々な画像サイズの学習用データセットが用意されていれば、決定部102は、切り出し処理またはスケール変換を行わずに、そのままX→
ijのデータを選択してもよい。
【0027】
学習用データセットに含まれる教示データtiは、対象ラベルに該当するスカラー値であり、例えば、i番目の画像内に車が写っていれば「1」、車が写っていない場合は「0」である。
【0028】
ステップS304では、学習部103が、学習サンプルを入力データとし、教示データを正解データとした学習用データセットを用いて、スケーラブルネットワークを学習させる。言い換えれば、画像サイズに応じて変更したネットワーク構造のニューラルネットワークを、学習用データセットを用いて学習させる。学習部103における学習方法の一例は、以下の(1)式から(3)式で表せる。
yij=f(w→
j,x→
ij)・・・(1)
Lij=-tiln(yij+e)-(1-ti)ln(1-yij+e)・・・(2)
L=Σj{ajΣLij}・・・(3)
【0029】
x→
ijは、ニューラルネットワークへの入力となる、学習サンプル(画像データ)であり、yijはニューラルネットワークの出力、つまりここでは車が写っているか否かの確率を表す。
fは、パラメータ集合w→
jを保持するニューラルネットワークの関数である。ニューラルネットワークでは、畳み込み層、全結合層、正規化層、プーリング層などの処理を繰り返す。スケーラブルネットワークは、入力される画像サイズに応じて層数が変化するため、層数に応じてパラメータ数なども変化する。よって、パラメータ集合w→
jには、入力される画像サイズとニューラルネットワークの層数との組み合わせであるjが添え字として与えられる。
【0030】
なお、w→
1およびw→
2では、nが1つ増えることで増加する層に関するパラメータ以外のパラメータ集合については、全結合層などの重みパラメータおよびバイアスなどを共有する。
【0031】
正規化層については、平均、分散などの統計パラメータは、jの値ごとに用意する、つまりそれぞれ異なる画像サイズごとに設定してもよいし、または学習後に再計算してもよい。なお、正規化層のパラメータは全体から比べるとわずかであるため、正規化層に関する重みパラメータおよびバイアスのパラメータを、jの値ごとに用意する、つまりそれぞれ異なる画像サイズごとに個別に設定してもよい。
関数fの最後には、出力層に相当するシグモイド関数が含まれ、出力yijの値域を0から1までに制限する。
【0032】
(2)式は、学習サンプルxijの学習誤差Lijの計算式を示す。tiは、教示データであり、例えば、i番目の画像内に車などの対象物が写っている場合は「1」、写っていない場合は「0(ゼロ)」を示すスカラー値で示されるラベルである。本実施形態では、学習誤差Lijは、教示データtiと出力yijとのバイナリークロスエントロピーを用いて計算される。ここで、lnは自然対数であり、eはln(0)を防ぐための固定値である。
【0033】
(3)式は、学習誤差Lijをi,jについてまとめた最終的な誤差関数Lである。ajは、jの値に応じた調整パラメータである。本実施形態では、B×Mのサンプル集合の学習誤差の加重平均で算出される誤差に基づく誤差関数Lが最小化されるように、誤差逆伝播法と確率的勾配降下法とによりニューラルネットワークのパラメータをミニバッチ学習で反復学習する。この際、同一の画像データの異なる画像サイズのサンプルを含むようにミニバッチに係るバッチサイズを設計し、ミニバッチ学習が行われてもよい。
なお、教示データtiとの学習誤差Lijに関するミニバッチ学習に限らず、例えば、異なるネットワーク構造を有する2つのスケーラブルネットワーク間の誤差を学習する、いわゆる蒸留を行なってもよい。例えば、出力yijと出力yij’(j<j’)とのバイナリークロスエントロピーを誤差として反復学習すればよい。
【0034】
ステップS305では、学習部103が、反復学習の終了条件を満たすか否かを判定する。終了条件の判定は、例えば、学習誤差Lijや、誤差関数Lの出力の絶対値または減少値といった判定指標が閾値以下であるか否かを判定し、判定指標が閾値以下であれば、反復学習の終了条件を満たすと判定すればよい。または、反復回数が所定回数に到達したか否かを判定し、反復回数が所定回数に到達していれば、反復学習の終了条件を満たすと判定してもよい。
反復学習の終了条件を満たすと判定される場合は学習を終了し、反復学習の終了条件を満たさない場合はステップS304に戻り、同様の処理を繰り返す。
【0035】
ステップS306では、提供部104が、学習が終了することで生成された学習済みモデルを対象デバイス21に提供する。具体的には、基本構造に対応するニューラルネットワークのパラメータが対象デバイス21に提供されることで、対象デバイス21において基本構造に対応する学習済みモデルが構築される。
【0036】
なお、
図3の例では、決定部102において、対象デバイス21のメモリ容量からスケーラブルネットワークの基本構造を決定したが、この方法に限らない。
例えば、スケーラブルネットワークの基本構造の決定方法として、対象デバイス21に搭載される処理回路のFLOPSをデバイス情報として取得し、決定部102が、対象デバイス21の処理時間またはフレームレートの仕様にあわせて基本構造を決定してもよい。具体的には、1秒間に10枚の画像を撮影し、撮影した画像ごとに学習済みモデルによる推論を実行するような状況を想定すると、例えば、撮影のフレームレート(単位時間当たり0.1秒)にあわせ目一杯の推論時間で実行可能な学習済みモデルであれば、対象デバイス21の仕様にあわせて推論精度を最大限確保した学習済みモデルを提供できる。
【0037】
または、決定部102は、対象デバイス21の消費電力の仕様にあわせて基本構造を決定してもよい。例えば、対象デバイス21に学習済みモデルを搭載し、当該学習済みモデルで推論を実行する場合の消費電力量が対象デバイスの駆動時の消費電力量の数十パーセント以下とする要求があれば、当該要求を満たすように所定の消費電力に応じたスケーラブルネットワークの基本構造を決定してもよい。このように対象デバイス21のスペック(メモリ容量、処理時間、フレームレート、消費電力量など)に基づいて、スケーラブルネットワークの基本構造を決定できる。
【0038】
また、上述のような、対象デバイス21のスペックに基づいて、スケーラブルネットワークの基本構造を決定し、層数が異なる複数のネットワーク構造を決定し、その後、畳み込み層の受容野に基づいて複数の異なる画像サイズを決定したが、当該順序に限らない。例えば、異なる複数の画像サイズを先に決定し、当該複数の画像サイズから受容野がいくつになれば同等の範囲に対応するかを逆算することでネットワークの基本構造を決定してもよい。受容野は入力画像のどの領域を参照したかを示すため、層が深くなるほど入力画像において広い範囲を参照することになる。
【0039】
画像サイズの決定方法としては、対象デバイスで取得する画像全体の画像サイズに限らず、対象物のスケールを算出できれば、当該対象物の画像サイズを基準に複数の異なる画像サイズを決定してもよい。
例えば、対象物の対象デバイス21に含まれるカメラとの距離または空間的位置関係、対象物の実際のサイズ、カメラの画角などから把握できる情報に基づいて、対象デバイス21全体で取得する画像から対象物の領域に対応する画像サイズが決定されてもよい。
【0040】
さらに、セグメンテーションタスクまたは回帰タスクを実行する他の学習済みモデルで利用される教示データから対象物のスケールが算出できる場合は、当該スケールから対象物の画像サイズが決定されてもよい。また、物体検出に関する他の学習済みモデルにおける物体検出の領域であるバウンディングボックスのサイズから、対象物の画像サイズが決定されてもよい。また、弱いアノテーションを利用する弱教師あり学習の結果を用いてもよい。例えば、分類タスクにおける分類結果と、顕著性マップ(Saliency map)またはCAM(Class Activation Mapping)とを用いて画像全体に対する対象物の領域の大きさを算出し、当該領域の大きさを画素サイズに変換するなどして画像サイズを決定してもよい。
【0041】
なお、上述の例では対象デバイス21で取得する画像サイズを中心に、当該画像サイズよりも小さいサイズおよび当該画像サイズよりも大きいサイズといったように、画像サイズを振ることにより異なる複数の画像サイズを決定するが、これに限らない。
【0042】
例えば、対象デバイスで取得する画像サイズよりも小さいサイズだけのバリエーションでもよいし、大きいサイズだけのバリエーションでもよい。また、対象デバイス21で取得する画像サイズと同一の画像サイズでなくともよい。例えば、複数の画像サイズのバリエーションを予め用意しておき、対象デバイスで取得する画像サイズと最も近い画像サイズを含むバリエーションを選択してもよい。また、画像サイズのうちの最大サイズまたは最小サイズのみを決定し、学習中に画像サイズをランダムに振ることで、複数の異なる画像サイズを決定してもよい。例えば、ネットワーク構造の層数を変更する際に最も相性のよいサイズのバリエーションを決定すればよい。
【0043】
また、
図2の例では、受容野はスケーラブルネットワーク全体での換算を想定しているが、各処理段(第1段から第3段)の範囲で算出した受容野でもよい。さらに、受容野に相当する領域を線形変換または比例関係にある変換をすることで、画像サイズに換算してもよい。
【0044】
次に、本実施形態に係るスケーラブルネットワークの学習方法の概念について
図4から
図6を参照して説明する。
図4は、本実施形態に係るスケーラブルネットワークとして採用するResNetの残差ブロックに関する概念図である。本実施形態では、残差ブロック41は、第1処理ブロック411と第2処理ブロック412との2つの処理ブロックの組である。第1処理ブロック411および第2処理ブロック412はそれぞれ、バッチ正規化(Batch Normalization)層、ReLU(Rectified Linear Unit)層、3×3のカーネルサイズによる畳み込み層を含む。残差ブロック41では、入力データに対して、第1処理ブロック411の各層で処理が実行され、第1処理ブロック411からの出力を入力として、第2処理ブロック412で畳み込み処理が行われる。第2処理ブロック412からの出力と、ショートカット接続による入力データとを加算したデータが残差ブロック41からの出力となる。
【0045】
なお、
図4に示す残差ブロック41の構造に限らず、さらに畳み込み層などを追加してもよい。また、バッチ正規化層、ReLU層の順序および層数を適宜変更してもよい。さらに、バッチ正規化に限らず、ドロップアウトなどの他の正則化手法を用いてもよい。ReLUに限らず、シグモイド関数などの他の種類の活性化関数を用いてもよい。
【0046】
次に、基本構造(n=6)におけるスケーラブルネットワークの層構造の概念図を
図5に示す。
図5に示すスケーラブルネットワークでは、第1段53、第2段54および第3段55の残差ブロックの処理段を含み、各処理段は、同一の画像サイズについて処理する1以上の残差ブロック41が含まれる。ここで、nの数は、第1段53、第2段54および第3段55の処理段それぞれにおける、残差ブロック41の数を表す。つまり、ここでは第1段53から第3段55のそれぞれの処理段に、6つの残差ブロック41が含まれる。
図5では、入力画像51が128×128[pixel]の3チャネルとする。
畳み込み層52は、3×3のカーネルサイズによる畳み込み処理を行う層である。入力画像51が畳み込み層52に入力され、畳み込み処理されることで、チャネル数が3[ch]から16[ch]に増やされる。
【0047】
第1段53では、128×128[pixel]、64[ch]の画像が各残差ブロック41で生成され、後段への入力となる。なお、第1段53の先頭の残差ブロック41では、畳み込み層52からの出力を入力として、バッチ正規化層、ReLU層および1×1のカーネルサイズの畳み込み層により、チャネル数が16[ch]から64[ch]に増やされた中間データが、ショートカット接続により先頭の残差ブロック41の第2処理ブロック412からの出力に加算される。
【0048】
第2段54では、第1段53からの出力を入力とし、先頭の残差ブロック41において、バッチ正規化層、ReLU層および1×1のカーネルサイズで、かつストライドを「2」として畳み込み処理する。これにより、画像サイズが128×128[pixel]を64×64[pixel]と変更され、チャネル数も64[ch]から128[ch]に変更される。第2段54の後段の残差ブロック41では、画像サイズ64×64[pixel]、チャネル数128[ch]の中間データに対して処理を実行する。
【0049】
第3段55では、第2段54からの出力を入力とし、先頭の残差ブロック41において、バッチ正規化層、ReLU層および1×1のカーネルサイズで、かつストライドを「2」として畳み込み処理する。これにより、画像サイズを64×64[pixel]を32×32[pixel]と変更し、チャネル数も128[ch]から256[ch]に変更する。第3段55の後段の残差ブロック41では、画像サイズ32×32[pixel]、チャネル数256[ch]の中間データに対して処理を実行する。
【0050】
プーリング層56では、第3段55からの出力に対してバッチ正規化およびReLUを適用した後に、global average poolingを実行する。
【0051】
全結合層57では、プーリング層46からの出力される中間データに対して全結合を行い、256[ch]から10[ch]に変更する。全結合層57からの出力yは、スケーラブルネットワークからの出力となる。なお、
図5の例では、10クラスの多クラス分類問題を想定するため、出力yは、10次元のベクトルをソフトマックス関数により、各要素が非負で合計が1になるように正規化され、各要素の値が確率値で表される。このような3クラス以上に分類する多クラス分類問題の場合、上述の(2)式のようなシグモイド関数とバイナリークロスエントロピーとを用いる代わりに、ソフトマックス関数とクロスエントロピーとを用いればよい。
【0052】
次に、n=4におけるスケーラブルネットワークの層構造の概念図を
図6に示す。
図6では、入力画像61の画像サイズが104×104[pixel]を想定する。すなわち、
図5の場合よりも画像サイズが小さい場合、スケーラブルネットワークにおける第1段63、第2段64および第3段65における各残差ブロック41の数も減少させる。具体的には、第1段63から第3段65はそれぞれ、4つの残差ブロック41を含む。このように、決定部102が、決定されたネットワーク構造の層数と入力画像の画像サイズとに応じて、ニューラルネットワークの深さ方向に該当する層数を調整する。
【0053】
画像サイズが異なる以外は、
図5と同様の方法で処理すればよい。具体的には、入力画像61を畳み込み層62において16[ch]に増やし、第1段63の4つの残差ブロック41では、104×104[pixel]、64[ch]の中間データについて処理する。同様に、第2段64の4つの残差ブロック41では、52×52[pixel]、128[ch]の中間データについて処理され、第3段65の4つの残差ブロック41では、26×26[pixel]、256[ch]の中間データについて処理されればよい。
【0054】
図6の例では、基本構造(n=6)よりもnの値が小さい場合を示すが、基本構造よりもnの値が大きい場合も同様である。つまり、図示しないが、例えばn=8であれば、第1段から第3段にはそれぞれ、8つの残差ブロック41が含まれ、第1段では、152×152[pixel]、64[ch]の中間データ、第2段では、76×76[pixel]、128[ch]の中間データ、第3段では、38×38[pixel]、256[ch]の中間データについて処理されればよい。
【0055】
なお、
図5および
図6に示すスケーラブルネットワークの構造は、画像サイズに応じて層数を変更可能な構造、すなわち、画像サイズが大きい場合にネットワークの層数が多く構造(深い層構造)、画像サイズが小さい場合にネットワークの層数が少なくなる構造(浅い層構造)であれば、どのようなネットワーク構造でもよい。また、
図5および
図6の例では、隠れ層のチャネル数とカーネルサイズとは固定である場合を想定するが、決定部102は、ネットワークの層数を変更することに加えて、画像サイズに比例してチャネル数またはカーネルサイズを変更してもよい。例えば、画像サイズが大きい場合カーネルサイズも大きく設定され、画像サイズが小さい場合カーネルサイズも小さく設定されればよい。
【0056】
さらに、学習部103は、ネットワーク構造および層数を変更させずに固定したまま、それぞれ異なる複数の画像サイズを有する複数の画像データを入力画像として、入力データ(画像)のサイズを変更可能なスケーラブルネットワークを反復学習させ、学習済みモデルを生成してもよい。
【0057】
また、上述の例では、分類タスクについてのスケーラブルネットワークの構造を示したが、これに限らず、セグメンテーションタスクでもよいし、回帰を行う回帰タスクでもよい。回帰タスクでは、上述の(2)式において、シグモイド関数の代わりに、例えば二乗誤差平均(MSE)または絶対値誤差平均(MAE)を用いればよい。
【0058】
次に、本実施形態に係る学習装置10により学習したスケーラブルネットワークの学習済みモデルと、画像サイズと層数を固定した従来のニューラルネットワークの学習済みモデルとのシミュレーション結果を
図7に示す。
横軸は、1つの画像を推論(処理)するのにかかる乗算数であり、計算コストと同義である。乗算数が少ないほど、つまり値が小さいほど推論能力が優れることを示す。縦軸は、テスト用サンプルの正解率を示し、推論精度と同義である。
【0059】
グラフ71は、本実施形態に係るスケーラブルネットワークの推論結果であり、プロット72は、従来のニューラルネットワークの推論結果である。グラフ71は、同一の計算コストで比較するとプロット72よりも正解率が高い。よって、
図7に示すように、単一のモデルを複数のデータ解像度(解像度)と層数とを混ぜて学習するスケーラブルなニューラルネットワークは、1つのデータ解像度および層数で学習する従来のニューラルネットワークに比べて、同一計算コストで高精度に推論することができる。
【0060】
なお、対象デバイス21が複数存在し、それぞれの対象デバイスの対象データが異なるデータ解像度である場合、決定部102は、各デバイス情報に基づいてデータ解像度および層数のバリエーションを決定すればよい。
例えば、決定部102は、各対象デバイスの基本構造を上述の方法で決定し、複数の対象デバイスのうちの最小の基本構造および最大の基本構造を決定し、最小の基本構造および最大の基本構造がカバーされる範囲で、画像サイズと層数との組み合わせをM個選択すればよい。
【0061】
具体的には、第1の対象デバイスの画像サイズが128[pixel]、基本構造n=5であり、第2の対象デバイスの画像サイズが64[pixel]、基本構造n=3であり、第1の対象デバイスの画像サイズが160[pixel]、基本構造n=6であるとする。よって、基本構造n=3が最小であり、基本構造n=6が最大となるので、データ解像度を振ったバリエーションとすべく、最小よりもさらに小さい画像サイズおよび最大よりもさらに大きい画像サイズを設定すればよい。例えば、画像サイズS={32,64,96,128,160,192}、層数n={2,3,4,5,6,7}とすることにより、最小および最大の基本構造をカバーしたバリエーションで、スケーラブルネットワークを学習させることができる。当該画像サイズおよび層数の条件で学習した学習済みモデルは、各画像サイズおよび層数に対して高精度なニューラルネットワークとなるため、各デバイスに対応した基本構造のパラメータを提供できる。
【0062】
次に、上述の実施形態に係る学習装置10のハードウェア構成の一例を
図8に示す。
学習装置10は、CPU(Central Processing Unit)81と、RAM(Random Access Memory)82と、ROM(Read Only Memory)83と、ストレージ84と、表示装置85と、入力装置86と、通信装置87とを含み、それぞれバスにより接続される。
【0063】
CPU81は、プログラムに従って演算処理および制御処理などを実行するプロセッサである。CPU81は、RAM82の所定領域を作業領域として、ROM83およびストレージ84などに記憶されたプログラムとの協働により、上述した学習装置10の各部の処理を実行する。
【0064】
RAM82は、SDRAM(Synchronous Dynamic Random Access Memory)などのメモリである。RAM82は、CPU81の作業領域として機能する。ROM83は、プログラムおよび各種情報を書き換え不可能に記憶するメモリである。
【0065】
ストレージ84は、HDD等の磁気記録媒体、フラッシュメモリなどの半導体による記憶媒体、または、HDD(Hard Disc Drive)などの磁気的に記録可能な記憶媒体、または光学的に記録可能な記憶媒体などにデータを書き込みおよび読み出しをする装置である。ストレージ84は、CPU81からの制御に応じて、記憶媒体にデータの書き込みおよび読み出しをする。
【0066】
表示装置85は、LCD(Liquid Crystal Display)などの表示デバイスである。表示装置85は、CPU81からの表示信号に基づいて、各種情報を表示する。
入力装置86は、マウスおよびキーボード等の入力デバイスである。入力装置86は、ユーザから操作入力された情報を指示信号として受け付け、指示信号をCPU81に出力する。
通信装置87は、CPU81からの制御に応じて外部機器とネットワークを介して通信する。
【0067】
以上に示した本実施形態によれば、学習済みモデルの提供先である対象デバイスで取得する対象データに基づいて、少なくとも入力データのデータ解像度を変更可能なスケーラブルネットワークを学習するための学習サンプルとなる、それぞれ異なる複数のデータ解像度を決定する。スケーラブルネットワークを、当該複数の異なるデータ解像度に対応する学習サンプルで反復学習することで、対象デバイスに提供するための学習済みモデルを生成する。このように、対象デバイスのスペックなどの仕様に基づいて対象データ解像度の周辺で解像度をばらつかせ、ネットワークの学習のための学習サンプルのバリエーションを決定することで、効率的かつ効果的な学習条件を設定でき、対象デバイスに高精度な学習済みモデルを提供できる。
【0068】
上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した学習装置の制御動作による効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD-ROM、CD-R、CD-RW、DVD-ROM、DVD±R、DVD±RW、Blu-ray(登録商標)Discなど)、半導体メモリ、又はこれに類する記録媒体に記録される。コンピュータまたは組み込みシステムが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をCPUで実行させれば、上述した実施形態の学習装置の制御と同様な動作を実現することができる。もちろん、コンピュータがプログラムを取得する場合又は読み込む場合はネットワークを通じて取得又は読み込んでもよい。
また、記録媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワーク等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行してもよい。
さらに、本実施形態における記録媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、LANやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。
また、記録媒体は1つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本実施形態における記録媒体に含まれ、媒体の構成は何れの構成であってもよい。
【0069】
なお、本実施形態におけるコンピュータまたは組み込みシステムは、記録媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。
また、本実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本実施形態における機能を実現することが可能な機器、装置を総称している。
【0070】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行なうことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0071】
1…モデル提供システム、10…学習装置、21(21-1,21-2)…対象デバイス、41…残差ブロック、51,61…入力画像、52,62…畳み込み層、53,63…第1段、54,64…第2段、55,65…第3段、56…プーリング層、57…全結合層、50…ネットワーク、71…グラフ、72…プロット、81…CPU、82…RAM、83…ROM、84…ストレージ、85…表示装置、86…入力装置、87…通信装置、101…取得部、102…決定部、103…学習部、104…提供部、411…第1処理ブロック、412…第2処理ブロック。