(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023182931
(43)【公開日】2023-12-27
(54)【発明の名称】学習装置、学習方法、画像処理装置、画像処理方法およびプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20231220BHJP
G06V 10/82 20220101ALI20231220BHJP
G06N 3/08 20230101ALI20231220BHJP
【FI】
G06T7/00 350C
G06V10/82
G06N3/08
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022096195
(22)【出願日】2022-06-15
(71)【出願人】
【識別番号】502324066
【氏名又は名称】株式会社デンソーアイティーラボラトリ
(74)【代理人】
【識別番号】100113549
【弁理士】
【氏名又は名称】鈴木 守
(74)【代理人】
【識別番号】100115808
【弁理士】
【氏名又は名称】加藤 真司
(72)【発明者】
【氏名】関川 雄介
(72)【発明者】
【氏名】権業 慎也
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096CA04
5L096EA39
5L096GA08
5L096HA11
5L096KA04
(57)【要約】 (修正有)
【課題】重みと量子化スケールの同時最適化を実現し、接続が疎なΣΔネットワークのMACと精度のトレードオフを大幅に改善する学習装置、方法及びプログラム並びに画像処理装置を提供する。
【解決手段】複数の特徴マップのレイヤからなるニューラルネットワークモデルの学習装置は、教師データとして時系列画像データと正解データの入力を受け付ける入力部及びニューラルネットワークモデルの重みパラメータと量子化スケールを学習する演算部を備える。演算部は、2つの時刻の画像データから得られた特徴マップの対応する各画素について、2つの時刻の画素値が同じ値に量子化される量子化スケールの範囲を求め、量子化スケールの範囲の中心の値を量子化スケールの最適値とし、ニューラルネットワークモデルの出力と正解データとの誤差及び量子化スケールと各画素の最適値との差分の総和を含む損失関数を用いて、重みパラメータと量子化スケールの学習を行う。
【選択図】
図4
【特許請求の範囲】
【請求項1】
複数の特徴マップのレイヤからなるニューラルネットワークモデルの学習装置であって、
教師データとして時系列画像データと正解データの入力を受け付ける入力部と、
前記ニューラルネットワークモデルの重みパラメータと量子化スケールを学習する演算部と、
前記演算部での学習により得られた重みパラメータと量子化スケールを記憶する記憶部と、
を備え、
前記演算部は、
2つの時刻の画像データから得られた特徴マップの対応する各画素について、2つの時刻の画素値が同じ値に量子化される量子化スケールの範囲を求め、
前記量子化スケールの範囲の中心の値を量子化スケールの最適値soptとし、
前記ニューラルネットワークモデルの出力と前記正解データとの誤差、および、量子化スケールと各画素の前記最適値soptとの差分の総和を含む損失関数を用いて、重みパラメータと量子化スケールの学習を行う、学習装置。
【請求項2】
前記演算部は、複数の範囲の中から、最も小さい量子化スケールの範囲を選択し、その範囲の中心の値を量子化スケールの最適値soptとする請求項1に記載の学習装置。
【請求項3】
前記演算部は、前記損失関数における量子化スケールと最適値soptとの差分をl0ノルムによって計算する、請求項1の学習装置。
【請求項4】
前記量子化スケールは、レイヤごと、または、チャネルごとに共通である請求項1に記載の学習装置。
【請求項5】
前記演算部は、量子化スケールと最適値soptとの差分に結合マスクを掛けた損失関数を用いて、重みパラメータと量子化スケールの学習を行う請求項1に記載の学習装置。
【請求項6】
請求項1~4のいずれか1項に記載の学習装置により学習されたニューラルネットワークモデルの重みパラメータと量子化スケールを記憶した記憶部と、
時系列画像データの入力を受け付ける入力部と、
データが入力されたときに演算を行うイベントベースの複数のプロセッサを含む演算部と、
を備え、
前記演算部は、前記時系列画像データについて前時刻のフレームとの差分を算出し、前記記憶部から読み出した量子化スケールを用いて前記差分を量子化し、
量子化された前記差分に前記記憶部から読み出した重みパラメータを掛けた値と前時刻の特徴マップとに基づいて、現在時刻の特徴マップを計算する、画像処理装置。
【請求項7】
請求項5に記載の学習装置により学習されたニューラルネットワークモデルの重みパラメータと量子化スケールと結合マップとを記憶した記憶部と、
時系列画像データの入力を受け付ける入力部と、
データが入力されたときに演算を行うイベントベースの複数のプロセッサを含む演算部と、
を備え、
前記演算部は、前記記憶部から読み出した結合マスクと重みパラメータを掛け、枝刈りをしたニューラルネットワークモデルを生成し、
前記時系列画像データについて前時刻との差分を算出し、前記記憶部から読み出した量子化スケールを用いて前記差分を量子化し、
量子化された前記差分に前記重みパラメータを掛けた値と前時刻の特徴マップとに基づいて現在時刻の特徴マップを計算する、画像処理装置。
【請求項8】
複数の特徴マップのレイヤからなるニューラルネットワークモデルの学習方法であって、
教師データとして時系列画像データと正解データの入力を受け付けるステップと、
前記時系列画像データを学習対象のニューラルネットワークモデルに適用して推論を行って出力データを得るステップと、
前記推論の過程において、2つの時刻の画像データから得られた特徴マップの対応する各画素について、2つの時刻の画素値が同じ値に量子化される量子化スケールの範囲を求め、前記量子化スケールの範囲の中心の値を量子化スケールの最適値soptとして決定するステップと、
前記ニューラルネットワークモデルの出力データと前記正解データとの誤差、および、量子化スケールと各画素の前記最適値soptとの差分の総和を含む損失関数を用いて、重みパラメータと量子化スケールの学習を行うステップと、
を備える学習方法。
【請求項9】
複数の特徴マップのレイヤからなるニューラルネットワークモデルを学習するためのプログラムであって、コンピュータに、
教師データとして時系列画像データと正解データの入力を受け付けるステップと、
前記時系列画像データを学習対象のニューラルネットワークモデルに適用して推論を行って出力データを得るステップと、
前記推論の過程において、2つの時刻の画像データから得られた特徴マップの対応する各画素について、2つの時刻の画素値が同じ値に量子化される量子化スケールの範囲を求め、前記量子化スケールの範囲の中心の値を量子化スケールの最適値soptとして決定するステップと、
前記ニューラルネットワークモデルの出力データと前記正解データとの誤差、および、量子化スケールと各画素の前記最適値soptとの差分の総和を含む損失関数を用いて、重みパラメータと量子化スケールの学習を行うステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置で用いられるニューラルネットワークモデルを学習する技術に関する。
【背景技術】
【0002】
画像認識等で用いられる畳み込みニューラルネットワークは、入力された画像データと学習した重みベクトルの畳み込み演算を繰り返すことにより処理を行う。畳み込みニューラルネットワークでは、入力されたデータの全体に対して畳み込み演算を行う。例えば、ビデオデータの処理では、入力された画像間で一部に変化がない場合や、変化が少ない場合でも、画像全体に対して畳み込み演算を行う。しかし、変化がないにもかかわらず演算処理を行うことは無駄な処理であるといえる。特に、フレームレートが高いデータで無駄な処理が多くなり、結果として高速な出力レートを実現できない。
【0003】
これに対し、時系列データについて前データとの差分のみを処理することで、変化が少ない場合に効率的に演算を行うニューラルネットワークが提案されている(非特許文献1)。このニューラルネットワークは、畳込み演算w*xtを、前回計算した値w*xt-1と差分情報の畳込み演算w*(xt‐xt-1)で書き換えたΣΔニューロンモデルである。
【0004】
従来のDenseなニューラルネットワークでは、入力がくるたびに毎回畳み込み演算を行う必要があるが、ΣΔニューロンモデルでは、新たな入力に対する計算がw*Δxとなるため、Δxに0が含まれている場合には、それに対する演算をスキップすることができる。
【0005】
自律走行車や携帯電話などのエッジデバイスには、映像等の時空間データを処理するニューラルネットワークがよく用いられる。ニューラルネットワークにおいて、データをフレームごとに独立して処理することは膨大な計算が必要になる。ところで、時間的に近接したデータは相関性が高く、連続するフレームの各ピクセル間の差異は非常にスパースであることが知られている。時空間データを効率的に処理するためのアプローチが、アルゴリズムとプロセッサの両方の観点から検討されている。
【0006】
非特許文献2は、効率的な映像処理のために、ΣΔネットワークを提案している。これは、量子化ニューラルネットワークを等価な量子化リカレントニューラルネットワークに再定式化したものである。このネットワークは、疎な時間差を用いて状態と出力を再帰的に更新する。疎な更新メカニズムにより、積和演算(MAC:multiply-accumulate operation)の低減を実現している。このモデルは、分類、物体検出、姿勢推定などのさまざまなタスクに有効であることが証明されている。また、非同期のイベントデータにも適用できることが示されている。ΣΔネットワークは、特に、動的なスパース性を利用できるプロセッサにマッピングされた場合、非常に効率的な推論を行うことができる。これらのデバイスは、その効率性とCMOS技術の進歩により、一般的になりつつある。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Amirhossein Habibian他「Skip-Convolutions for Efficient Video Processing」CVPR2021
【非特許文献2】Peter O’Connor,Max Welling「Sigma delta quantized networks」arXiv preprint arXiv:1611.02024, 2016
【発明の概要】
【発明が解決しようとする課題】
【0008】
ここで、ΣΔネットワークをいかに学習させるかが課題である。既存の方法では、まず、ΣΔネットワークを量子化せずに学習し、量子化後のテストのために量子化スケールを最適化していた。量子化スケールの最適化には、次に、グリーディ法、または層ごとの確率的勾配降下法を用いていた。
【0009】
量子化スケールを大きくすることで、MACを減らすことができるが、これは精度とのトレードオフである。エンドツーエンド(E2E)学習による重みと量子化スケールの同時最適化は有望と思われるが、LSQ(Least Square Quantization)のような量子化されたニューラルネットワークの量子化スケールを学習する既存の方法ではΣΔネットワークの量子化スケールを学習してMACを削減することはできない。
【0010】
上記背景に鑑み、本発明は、重みと量子化スケールの同時最適化を実現することで、接続が疎なΣΔネットワークのMACと精度のトレードオフを大幅に改善することを目的とする。
【課題を解決するための手段】
【0011】
本発明の学習装置は、複数の特徴マップのレイヤからなるニューラルネットワークモデルの学習装置であって、教師データとして時系列画像データと正解データの入力を受け付ける入力部と、前記ニューラルネットワークモデルの重みパラメータと量子化スケールを学習する演算部と、前記演算部での計算により得られた重みパラメータと量子化スケールを記憶する記憶部とを備え、前記演算部は、2つの時刻の画像データから得られた特徴マップの対応する各画素について、2つの時刻の画素値が同じ値に量子化される量子化スケールの範囲を求め、前記量子化スケールの範囲の中心の値を量子化スケールの最適値soptとし、前記ニューラルネットワークモデルの出力と前記正解データとの誤差、および、量子化スケールと各画素の前記最適値soptとの差分の総和を含む損失関数を用いて、重みパラメータと量子化スケールの学習を行う構成を有する。
【0012】
本発明の学習装置において、前記演算部は、複数の範囲の中から、最も小さい量子化スケールの範囲を選択し、その範囲の中心の値を量子化スケールの最適値soptとしてもよい。
【0013】
本発明の学習装置において、前記演算部は、前記損失関数における量子化スケールと最適値soptとの差分をl0ノルムによって計算してもよい。
【0014】
本発明の学習装置において、前記量子化スケールは、レイヤごと、または、チャネルごとに共通であってもよい。
【0015】
本発明の学習装置において、前記演算部は、量子化スケールと最適値soptとの差分に結合マスクを掛けた損失関数を用いて、重みパラメータと量子化スケールの学習を行ってもよい。
【0016】
本発明の画像処理装置は、上記に記載の学習装置により学習されたニューラルネットワークモデルの重みパラメータと量子化スケールを記憶した記憶部と、時系列画像データの入力を受け付ける入力部と、データが入力されたときに演算を行うイベントベースの複数のプロセッサを含む演算部とを備え、前記演算部は、前記時系列画像データについて前時刻のフレームとの差分を算出し、前記記憶部から読み出した量子化スケールを用いて前記差分を量子化し、量子化された前記差分に前記記憶部から読み出した重みパラメータを掛けた値と前時刻の特徴マップとに基づいて、現在時刻の特徴マップを計算する構成を有する。
【0017】
また、本発明の画像処理装置は、上記に記載の学習装置により学習されたニューラルネットワークモデルの重みパラメータと量子化スケールと結合マップとを記憶した記憶部と、時系列画像データの入力を受け付ける入力部と、データが入力されたときに演算を行うイベントベースの複数のプロセッサを含む演算部とを備え、前記演算部は、前記記憶部から読み出した結合マスクと重みパラメータを掛け、枝刈りをしたニューラルネットワークモデルを生成し、前記時系列画像データについて前時刻との差分を算出し、前記記憶部から読み出した量子化スケールを用いて前記差分を量子化し、量子化された前記差分に前記重みパラメータを掛けた値と前時刻の特徴マップとに基づいて現在時刻の特徴マップを計算する構成を有する。
【0018】
本発明の学習方法は、複数の特徴マップのレイヤからなるニューラルネットワークモデルの学習方法であって、教師データとして時系列画像データと正解データの入力を受け付けるステップと、前記時系列画像データを学習対象のニューラルネットワークモデルに適用して推論を行って出力データを得るステップと、前記推論の過程において、2つの時刻の画像データから得られた特徴マップの対応する各画素について、2つの時刻の画素値が同じ値に量子化される量子化スケールの範囲を求めるステップと、前記量子化スケールの範囲の中心の値を量子化スケールの最適値soptとして決定するステップと、前記ニューラルネットワークモデルの出力データと前記正解データとの誤差、および、量子化スケールと各画素の前記最適値soptとの差分の総和を含む損失関数を用いて、重みパラメータと量子化スケールの学習を行うステップとを備える。
【0019】
本発明のプログラムは、複数の特徴マップのレイヤからなるニューラルネットワークモデルを学習するためのプログラムであって、コンピュータに、教師データとして時系列画像データと正解データの入力を受け付けるステップと、前記時系列画像データを学習対象のニューラルネットワークモデルに適用して推論を行って出力データを得るステップと、前記推論の過程において、2つの時刻の画像データから得られた特徴マップの対応する各画素について、2つの時刻の画素値が同じ値に量子化される量子化スケールの範囲を求めるステップと、前記量子化スケールの範囲の中心の値を量子化スケールの最適値soptとして決定するステップと、前記ニューラルネットワークモデルの出力データと前記正解データとの誤差、および、量子化スケールと各画素の前記最適値soptとの差分の総和を含む損失関数を用いて、重みパラメータと量子化スケールの学習を行うステップとを実行させる。
【図面の簡単な説明】
【0020】
【
図1】(a)Denseなニューロンの状態と、前時刻との差分を用いたニューロンの状態の対応を示す図である。(b)
図1(a)で示した式を量子化した式を示す図である。
【
図2】量子化スケールを大きくしたときに、時刻tの特徴量x
tと時刻t+1の特徴量x
t+1が量子化される値の変化を示す図である。
【
図3】量子化スケールsをs=s
LBから大きくしていったときに、特徴量x
tと特徴量x
t+1が同じステップに乗る範囲を示した図である。
【
図4】実施の形態に係る学習装置の構成を示す図である。
【
図5】実施の形態に係る学習装置の処理を示すフローチャートである。
【
図6】実施の形態に係る画像処理装置の構成を示す図である。
【
図7】本実施の形態のニューラルネットワークが実装されるSoC(System-on-a-chip)の構成を示す図である。
【
図8】(a)ニューロンコアの詳細な構成を示す図である。(b)ニューロンコアが実行する処理を概念的に記載した図である。
【発明を実施するための形態】
【0021】
以下、本発明の実施の形態に係る画像処理装置及び画像処理装置で用いられるニューラルネットワークモデルの生成装置について図面を参照しながら説明する。
(第1の実施の形態)
[概要]
図1(a)は、Denseなニューロンの状態と、前時刻との差分を用いたニューロンの状態の対応を示す図である。
図1(a)の左側に示すDenseなニューロンとは、入力Iに対して畳み込み演算w*を行って内部状態X
t(Internal State)を計算するニューロンである。ニューロンに対する入力Iは、前層のニューロンの出力であり、これは前層のニューロンのアクティベーションである。σは活性化関数を示す。
【0022】
図1(a)の右側に示す時間的差分のニューロンは、時刻tにおける内部状態X
tを前時刻t-1の内部状態X
t-1に差分w*ΔI
tを加えることで表した式である。より具体的には、時刻t-1の入力と時刻tの入力との差分ΔI
tに対し畳み込み演算を行った値を時刻t-1の内部状態X
t-1に加算することで時刻tの内部状態X
tを求めている。なお、
図1ではΔI
t等の右肩にレイヤを示す「(l)」の添字を付しているが、明細書では省略している。
【0023】
時間的差分のニューロンでは、時刻t-1と時刻tにおける入力Iの差分がなければ(すなわちΔIt=0)ならば、時刻tにおける内部状態Xtは時刻t-1の内部状態Xt-1と同じである。イベントベースのプロセッサを用いた場合には、差分の入力がなければ計算を行わないで済む。したがって、差分ΔItをなるべくスパースにしたいという要求がある。
【0024】
図1(b)は、
図1(a)で示した式を量子化した式である。内部状態Xを求める式は、
図1(a)の場合と同じであるが、差分ΔI
tを求める式が量子化されている。
図1(b)のように量子化を行う場合には、時刻t-1の入力I
t-1と時刻tの入力I
t(=σ(X
t))はそれぞれ離散値に量子化されるので、差分が0になる場合が多くなる。量子化スケールsが大きくなればなるほど、差分が0になる割合は高くなり演算量を減らすことができる。量子化スケールsだけを考えれば、量子化スケールsが大きくなるようにすればよいが、量子化スケールsが大きくなるということは、量子化により失われるデータが多くなる。以上の背景に鑑み、量子化スケールをいかに学習するかということが本発明の課題である。
【0025】
時刻t-1における特徴量と、時刻tにおける特徴量が同じ値に量子化されれば、その差分ΔItは0になる。本発明では、同じ値に量子化される画素が多くなるように学習する。
【0026】
図2は、量子化スケールを大きくしたときに、時刻tの特徴量x
tと時刻t+1の特徴量x
t+1が量子化される値の変化を示す図である。時刻tの特徴量x
tと時刻t+1の特徴量x
t+1が同じ値に量子化されるためには、量子化スケールsが|x
t+1-x
t|であることが必要である。|x
t+1-x
t|=s
LBとおく。
図2では、量子化スケールs=s
LBからスタートし、量子化スケールを徐々に大きくする様子を示している。
【0027】
図2に示す例では、s=s
LBのときには、特徴量x
tと特徴量x
t+1は量子化により異なる値になるので、その差分は0にはならない。量子化スケールsを大きくしていくと、特徴量x
tと特徴量x
t+1は量子化により同じ値になる(同じステップの上に乗る)。さらに量子化スケールsを大きくしていくと、特徴量x
tと特徴量x
t+1を量子化した値は異なるステップに乗り、同じステップに乗り、・・・ということを繰り返し、最終的には、特徴量x
tと特徴量x
t+1を量子化した値はいずれも0となって同じステップに乗る。ただし、量子化後のデータが0では、特徴量がないということになってしまい意味がない。
【0028】
図3は、量子化スケールsをs=s
LBから大きくしていったときに、特徴量x
tと特徴量x
t+1が同じステップに乗る範囲を示した図である。同じステップに乗るというのは、特徴量x
tと特徴量x
t+1が同じ値に量子化されるということを意味する。
図3に示すように、特徴量x
tと特徴量x
t+1が同じ値に量子化される範囲として、複数の範囲が見つかる。
【0029】
特徴量x
tと特徴量x
t+1が同じ値に量子化される範囲において、量子化スケールがその下限値であるときには、特徴量x
tと特徴量x
t+1は同じステップに乗るものの小さい方の特徴量がそのステップの端に位置する。逆に、量子化スケールが範囲の上限値であるときには、特徴量x
tと特徴量x
t+1は同じステップに乗るものの大きい方の特徴量がそのステップの端に位置する。このように量子化スケールが、同じステップに乗る範囲の上限値または下限値であるときには、微小な変化によって量子化後のデータが異なるステップに移ってしまう不安定な状態である。量子化スケールが、量子化後のデータが同じステップに乗る範囲のうちの中心の値であるときに、量子化後のデータが安定して同じステップに乗る。量子化スケールは小さい方が量子化前の特徴量を保持する割合が高いので、本実施の形態では、特徴量x
tと特徴量x
t+1の量子化後のデータが同じステップに乗る範囲のうち、最も小さい範囲(
図3でいうとs
LBに最も近い範囲)を用いる。この範囲の中心の値をs
optとし、量子化スケールsをs
optに近づけるように学習を行う。
【0030】
ところで、特徴量xtと特徴量xt+1の値によっては、量子化後のデータを同じステップに載せるためには量子化後のデータを0にする範囲しか存在しない場合がある。例えば、特徴量xt=0.8、特徴量xt+1=2.2などのように、2つの特徴量の差分(2.2-0.8=1.4)が小さい方の特徴量(0.8)よりも大きい場合である。この場合には、量子化後のデータを0にする範囲には下限が存在するが上限は存在しないため、範囲の中心を定めることができない。この場合には、下限値を基準としてsoptを決定する。下限値は、特徴量xt、特徴量xt+1のうちの大きい方の値であるが、この2倍をsoptとしてもよい。
【0031】
なお、特徴量x
tと特徴量x
t+1は特徴マップの画素ごとの値なので、s
optは画素ごとに求まる。これに対し、量子化スケールsはレイヤごと、または、チャネルごとに共通のパラメータである。量子化スケールsは、特徴マップの画素全体としてs
optとの差分が小さくなるように求める。量子化スケールsの正則項L
sを次に示す。次の式では、s
optが画素ごとに求まることを示すために、右肩にインデックスiをつけている。
【数1】
【0032】
本実施の形態では、損失関数に用いる正則項Lsとして、量子化スケールsと最適値soptの差分のL2ノルムを用いることとするが、差分のL0ノルム、L1ノルムを用いることも可能である。
【0033】
(学習装置)
図4は、実施の形態に係る学習装置10の構成を示す図である。学習装置10は、教師データの入力を受け付ける入力部11と、教師データを用いてニューラルネットワークモデルと量子化スケールの学習を行う演算部12と、学習によって得られたニューラルネットワークモデルと量子化スケールを記憶する記憶部13とを有している。
【0034】
学習装置10によって生成されるニューラルネットワークモデルは、時系列画像データから、例えば、車両、歩行者あるいは標識を検出する等の所定のタスクを実行するためのニューラルネットワークモデルである。ニューラルネットワークモデルは、複数のレイヤからなり、各レイヤで特徴マップが生成される。
【0035】
本実施の形態のニューラルネットワークモデルは、時間的差分のニューロンを有している。すなわち、各レイヤの入力が前時刻と現在時刻とで差分がない場合には、状態更新の演算を行わなくてよいニューロンを有している。
【0036】
入力部11は、教師データとして、多数の時系列画像データとタスクの正解データの入力を受け付ける。演算部12は、時系列画像データと正解データとを用いてニューラルネットワークモデルと量子化スケールの学習を行う。演算部12が実施する具体的な処理は、学習装置10の動作説明の中で説明する。
【0037】
図5は、実施の形態に係る学習装置10の動作を示すフローチャートである。学習装置10は、教師データとして、多数の時系列画像データと、タスクの正解データの入力を受け付ける(S10)。車両を検出するタスクであれば正解データは時系列データに映る車両の領域を特定するデータであり、歩行者を検出するタスクであれば正解データは歩行者の領域を特定するデータである。
【0038】
学習装置10は、学習対象のニューラルネットワークのモデルに時系列画像データを適用して推論処理を行い、タスクに対する結果データを出力する(S11)。学習装置10は、時系列画像データを時系列にしたがって1フレームずつ入力し、各フレームから結果データを求める。上述したとおりニューラルネットワークモデルは時間差分ニューラルネットワークモデルであり、前時刻と現在時刻における差分データに対して畳み込みを行い、前時刻の状態に加算することで現在時刻の状態を算出する。ここで用いる量子化スケールsもまた学習対象であり、量子化スケールsは初期値またはその時点までに用いられている値を用いる。
【0039】
学習装置10は、推論過程で得られた特徴マップの各画素の特徴量に基づき、量子化スケールの最適値s
optを求める(S12)。最適値s
optの求め方は、
図3を用いて説明したとおりである。すなわち、学習装置10は、連続する2つの時刻の画像データから得られた特徴マップの対応する各画素について、2つの時刻の画素値が同じ値に量子化される量子化スケールの範囲を求め、求めた量子化スケールの中で最も小さい量子化スケール(s
LBに近い範囲)の範囲の中心の値をs
optと決定する。
【0040】
学習装置10は、具体的には量子化スケールの最適値s
optを次式のように決定する。なお、次式において[ ]は四捨五入することを示す記号である。
【数2】
【0041】
学習装置10は、推論による出力データと正解データとの誤差L
task、および、量子化スケールsと各画素の最適値s
optとの誤差の総和L
sを含む次の損失関数を用いて、ニューラルネットワークモデルの重みパラメータと量子化スケールsの学習を行う(S13)。
【数3】
【0042】
次式は、学習時に用いる量子化スケールsの正則化項の微分を示す式である。ここでは、x
tについて微分した式を示すが、x
t-1についても同じである。
【数4】
なお、ds
opt/dx
tについては、次式のように近似値を用いてもよい。
【数5】
【0043】
学習装置10は、学習を終了するか否かを判定する(S14)。学習を終了するか否かの判定は、全時系列画像について処理を行ったか否か、あるいは、学習パラメータと量子化スケールの更新幅が所定の閾値以下となったか否か等を基準として判定を行う。
【0044】
学習を終了しないと判定した場合には、推論処理(S11)に戻ってさらなる学習を行う。学習装置10は、学習を終了すると判定した場合には、学習により得られたニューラルネットワークモデルと量子化スケールのデータを記憶部13に記憶する(S15)。
【0045】
なお、本実施の形態の学習装置10について説明したが、上記した実施の形態の演算部12の処理を実現するプログラムも本発明の範囲に含まれる。
【0046】
(画像処理装置)
図6は、上記した学習装置10を用いて生成したニューラルネットワークモデルと量子化スケールを用いて、画像処理を行う画像処理装置20の構成を示す図である。学習装置10によって生成されたニューラルネットワークモデルと量子化スケールは、記憶部24に記憶されている。
【0047】
画像処理装置20は、処理対象の時系列画像データを入力する入力部21と、複数のニューロンを含むモデルを用いて時系列画像データの処理を行う演算部22と、演算部22による演算結果を出力する出力部23とを備えている。時系列画像データは、動画データや連射撮影された画像データである。画像処理装置20の具体的な適用例としては、車両で撮影した動画像データの処理が挙げられ、画像処理装置20は、画像処理によって車両、人、標識等を検出する物体検出処理を行う。
【0048】
演算部22は、データが入力されたときに演算処理が行われるデータドリブンの演算装置であり、グラフプロセッサ、データフロープロセッサが用いられる。なお、演算装置はこれらに限られず、FPGAやCPUを用いることも可能であるが、演算装置は、大規模な並列処理が行える装置の方が望ましい。
【0049】
図7は、本実施の形態のニューラルネットワークが実装されるSoC(System-on-a-chip)の構成の一例を示す図である。
図7に示すように、SoCは、ニューラルネットワークの各層を構成するニューロンコアが配列されて構成されている。
【0050】
図8(a)は、各ニューロンコアの詳細な構成を示す図であり、
図8(b)は
図8(a)のニューロンコアが実行する処理を概念的に記載した図である。各ニューロンコアは、前の層からイベントを受信し、受信したイベントにSRAM上に保存された重みをかけて膜電位を更新し、前回発火時の膜電位との差分が閾値を超えたら発火するという動作をする。
【0051】
図8(a)に示すように、重みを記憶したSRAMがニューロンコア内にあるので、外部メモリへのアクセスなしに、プロセッサ内ですべての処理が実行される。このため、消費電力の観点からも有利である。
【0052】
第1の実施の形態の学習装置10は、ニューラルネットワークモデルの重みパラメータと量子化スケールを最小化する損失関数を用いてニューラルネットワークモデルと量子化スケールを最適化するので、最適な量子化スケールにより前時刻との差分をスパースにできるニューラルネットワークモデルを生成できる。したがって、学習装置10で生成されたニューラルネットワークモデルと量子化スケールを用いて画像処理を行うことにより、計算負荷を軽減した画像処理を行える。
【0053】
(第2の実施の形態)
第2の実施の形態の学習装置は、結合マスクを有するニューラルネットワークモデルの重みパラメータと量子化スケールを同時に学習する。最初に結合マスクについて説明する。結合マスクはニューラルネットワークの枝刈りに用いるパラメータを表し、0か1の2値をとる。結合マスクと重みパラメータとのアダマール積をとることで、マスク値0のときは重みパラメータとの積が0になるため、その接続がなくなる(枝刈りされる)。マスク値1のときは、重みパラメータはそのままの値が残る。
【0054】
マスク結合を含むニューラルネットワークモデルの学習には、次の損失関数を用いる。
【数6】
【0055】
マスクmは、重みパラメータwがγより小さいときに0、γ以上のときに1の値を有する。量子化スケールの正則項LSにおいて、量子化スケールsと最適値soptとの誤差とマスクmのアダマール積がとられる。なお、量子化スケールsと最適値soptにかけられている関数Ξは、マスクmとのアダマール積を計算可能なように、量子化スケールsと最適値soptの差分をアンフォールド(Unfold)するための関数である。アンフォールドは、畳み込み演算のためにフォールドされた状態を行列積演算できる行列に戻すという意味である。アンフォールド演算は、「im2col」(image to column)としても知られている。
【0056】
上式に示すように、量子化スケールsと最適値soptとの誤差に対して、マスクmを掛けているのは、マスクmによって重みが0とされる枝に対しては、量子化スケールsがいくつであるかは問題にならないからである。すなわち、量子化スケールsの学習において、重みが0となって接続がなくなる部分の最適値soptの影響を受けないようにするために、結合マスクとの積を取っている。
【0057】
このようにマスク結合を含むニューラルネットワークモデルの場合には、接続がある部分の最適値soptを用いて、重みパラメータwと量子化スケールsを最適化することができる。
【0058】
なお、本実施の形態では、マスク値を決める閾値γを固定し、重みパラメータwと量子化スケールsを最適化する例を挙げたが、マスクの有無を決める独立のパラメータを導入し、重みパラメータwと量子化スケールsとマスクパラメータを同時に最適化することとしてもよい。
【0059】
以上、本発明の学習装置について実施の形態を挙げて詳細に説明したが、本発明は上記した実施の形態に限定されるものではない。本実施の形態では、物体検出処理を行う例を挙げて説明したが、学習装置が生成するニューラルネットワークモデルのタスクは物体検出処理に限定されない。例えば、画像の分類処理や画像中に映る物体の姿勢推定処理にも本発明の学習装置および画像処理装置を適用することができる。
【0060】
本実施の形態では、車載カメラで撮影した映像の画像処理を行う例を挙げたが、イベントカメラで撮影したイベントデータの処理にも用いることができる。イベントカメラは、ある画素に一定の閾値以上の輝度の変化が起こったときのみに、そのときの時間tiと画素の座標xi、極性ρi(-1又は+1)を含むイベントei={ti,xi,ρi}というデータ形式で出力するカメラである。イベントカメラの場合には、過去の所定時間(例えば、過去1秒間)に発生したイベントを蓄積することにより、通常の映像と同様に画像処理を行うことができる。
【符号の説明】
【0061】
10 学習装置
11 入力部
12 演算部
13 記憶部
20 画像処理装置
21 入力部
22 演算部
23 出力部
24 記憶部