(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-22
(45)【発行日】2022-03-30
(54)【発明の名称】ディープニューラルネットワークを作成するための方法、装置及びコンピュータプログラム
(51)【国際特許分類】
G06N 3/08 20060101AFI20220323BHJP
G06N 20/00 20190101ALI20220323BHJP
【FI】
G06N3/08
G06N20/00
(21)【出願番号】P 2020522718
(86)(22)【出願日】2018-10-15
(86)【国際出願番号】 EP2018077995
(87)【国際公開番号】W WO2019081241
(87)【国際公開日】2019-05-02
【審査請求日】2020-04-21
(31)【優先権主張番号】102017218851.0
(32)【優先日】2017-10-23
(33)【優先権主張国・地域又は機関】DE
(73)【特許権者】
【識別番号】390023711
【氏名又は名称】ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
【住所又は居所原語表記】Stuttgart, Germany
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100135633
【氏名又は名称】二宮 浩康
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】ヤン マティアス ケーラー
(72)【発明者】
【氏名】ティム ゲーネヴァイン
(72)【発明者】
【氏名】ヤン アハターホルト
【審査官】吉倉 大智
(56)【参考文献】
【文献】米国特許出願公開第2016/0086078(US,A1)
【文献】国際公開第2017/170799(WO,A1)
【文献】特開平10-191091(JP,A)
【文献】廣瀬一俊 ほか,量子化誤差を考慮したニューラルネットワークの学習手法,第104回人工知能基本問題研究会資料,日本,一般社団法人人工知能学会,2017年08月01日,pp.1-4(SIG-FPAI-B507-01)
【文献】Alex Graves,Practical variational inference for neural networks,Advances in neural information processing systems 24 (NIPS 2011) [online],2011年,pp.1-9,http://papers.nips.cc/paper/4329-practical-variational-inference-for-neural-networks.pdf
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
ディープニューラルネットワーク(10)を作成するための方法(30)であって、
前記ディープニューラルネットワーク(10)は、複数の層(12)と、重みを有するコネクション(13)とを有し、作成されたディープニューラルネットワークにおける前記重みは、複数の離散値を含む所定のリスト中の所定の離散値だけを取り得る、方法(30)において、
-少なくとも1つのトレーニング入力量を前記ディープニューラルネットワーク(10)に供給するステップと、
-供給された前記トレーニング入力量に依存して求められた、前記ディープニューラルネットワークの出力量の、所定の目標出力量に対する偏差を特徴付ける第1の量を含み、かつ、少なくとも2つの前記所定の離散値のうちの少なくとも1つからの、複数の前記重みのうちの1つの重みの値の偏差を特徴付ける少なくとも1つのペナルティ量を含む、コスト関数を特徴付ける量を求めるステップと、
-前記ディープニューラルネットワーク(10)の前記トレーニング入力量に依存して、前記ディープニューラルネットワーク(10)がオブジェクトを検出するように前記ディープニューラルネットワーク(10)を訓練し、当該ディープニューラルネットワーク(10)の訓練において、複数の前記重みのうちの1つの重みの少なくとも1つの値を、前記コスト関数を特徴付ける量に依存して適合させるステップと、
-前記所定のリストに含まれている離散値それぞれに前記重みの値をマッピングするステップと、
を備えている方法。
【請求項2】
前記ペナルティ量は、複数の前記重みのうちの1つの重みの事後分布関数(24)の、当該重みの前記所定の離散値の事前分布関数(20)からの偏差を特徴付ける、請求項1に記載の方法。
【請求項3】
前記
ディープニューラルネットワーク(10)の前記重みの所定のサブセットに関する前記事前分布関数(
20)を、当該所定のサブセットと関連する、前記ディープニューラルネットワーク(10)の部分のトポロジに依存して選択する、請求項2に記載の方法。
【請求項4】
ペナルティ関数が、求められた偏差の加重合計を特徴付け、前記所定の複数の離散値の各離散値に1つずつ対応付けられているそれぞれ1つの位置についての前記事前分布関数(20)に対する、複数の前記重みのうちの1つの重みの事後分布関数(24)のそれぞれ1つの偏差を求め、求められた当該偏差を、それぞれの所定の離散値に対応付けられている重み付け関数に基づいて重み付けする、請求項2又は3に記載の方法。
【請求項5】
求められた前記偏差は、それぞれ対数一様分布関数に対する前記事後分布関数の求められた偏差であり、当該求められた偏差を、前記少なくとも2つの所定の離散値のうちの1つの離散値の複数の位置のうちのそれぞれ1つに移動させ、それぞれの前記所定の離散値に対応付けられている前記重み付け関数に基づいて重み付けする、請求項4に記載の方法。
【請求項6】
求められた前記偏差のうちの1つを、所定の値に基づいて、それぞれの前記重み付け関数の合計を減算して重み付けする、請求項4又は5に記載の方法。
【請求項7】
前記事前分布関数からの前記事後分布関数の偏差を、前記事後分布関数と前記事前分布関数との間のKL情報量の近似に基づいて求める、請求項2乃至6のいずれか一項に記載の方法。
【請求項8】
前記ディープニューラルネットワークの訓練の際に、前記コスト関数に依存して、複数の前記事後分布関数のうちの1つを適合させ、適合された前記事後分布関数によって特徴付けられる重みを、適合された前記事後分布関数に依存して適合させる、請求項2乃至7のいずれか一項に記載の方法。
【請求項9】
少なくとも2つの前記所定の離散値のうちの1つの離散値は、値「0」である、請求項1乃至8のいずれか一項に記載の方法。
【請求項10】
前記ディープニューラルネットワーク(10)の訓練後に、前記ディープニューラルネットワーク(10)の入力量を求め、訓練された前記ディープニューラルネットワーク(10)を用いて、求められた前記入力量に依存して、オブジェクトを検出する、請求項1乃至9のいずれか一項に記載の方法。
【請求項11】
少なくとも半自律的な機械を、検出された前記オブジェクトに依存して制御する、請求項10に記載の方法。
【請求項12】
コンピュータにおける実行時に、請求項1乃至11のいずれか一項に記載の方法の各ステップを実施させるための命令を含むコンピュータプログラム。
【請求項13】
請求項12に記載のコンピュータプログラムを含む機械可読メモリ素子(17)。
【請求項14】
請求項
13に記載の
機械可読メモリ素子(17)を
備えている装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディープニューラルネットワークを作成するための方法、それぞれが当該方法を実施するために構成されているコンピュータプログラム及び装置に関する。
【背景技術】
【0002】
米国特許第5119469号明細書(US5119469)には、複数のシナプスと、各シナプスの重みを調整するための適応型の重み回路と、を有するニューラルネットワークシステムが開示されている。ニューラルネットワークシステムは、一連のトレーニングデータを用いて、パターン認識のための重みを体系的に調整することによって逐次的に訓練される。
【先行技術文献】
【特許文献】
【0003】
【文献】米国特許第5119469号明細書(US5119469)
【発明の概要】
【発明が解決しようとする課題】
【0004】
発明の利点
これに対して、独立請求項1の特徴を備えた方法は、ディープニューラルネットワークのコネクションの重みが、複数の離散値を含むリスト中の所定の離散値を取るように、ディープニューラルネットワークのコネクションの重みが求められるという利点を有している。作成されたディープニューラルネットワークの重みの離散値によって、ディープニューラルネットワークを記憶するために必要とされるメモリ容量を低減することができる。何故ならば、重みを、例えば、リスト中の離散値のインデクスに基づいて記憶することができるからである。これによって、もはや各重みの各値を個別に高い精度で記憶する必要はなくなり、重みの値のインデクスと離散値及びそれらのインデクスを含む所定のリストとだけがそれぞれ記憶されれば十分である。これによって、作成されるディープニューラルネットワークに対するメモリ容量の要求が低減されることになる。さらに、この方法によって、ディープニューラルネットワークの表現の圧縮が達成される。何故ならば、作成されるディープニューラルネットワークの重みの値は、もはや連続的ではなく、重みは、ある程度の数の所定の離散値だけを取ることができるからである。これによって、ディープニューラルネットワークが、より少数の異なる重みによって特徴付けられ、かつ、圧縮された表現を達成することができる。本方法の他の利点は、重みの離散値によって、ディープニューラルネットワークの出力量を求めるために実施しなければならない算術演算、特に乗算の回数を、分配法則を利用することにより低減することができるということである。重みの値は、所定の異なる離散値だけを取ることができるので、同一の離散値を有する重みは、分配法則を用いて除外することができ、これによって、結果を求めるための乗算の回数及び計算の手間を大幅に低減することができる。
【課題を解決するための手段】
【0005】
発明の開示
第1の態様においては、本発明は、ディープニューラルネットワークを作成するための方法に関する。ディープニューラルネットワークは、複数の層と、重みを有するコネクションとを有している。作成されたディープニューラルネットワークにおける重みは、複数の離散値を含む所定のリスト中の所定の離散値だけを取ることができる。本方法は、以下のステップを備えている。
-少なくとも1つのトレーニング入力量をディープニューラルネットワークに供給するステップ。
-コスト関数を特徴付ける量を求めるステップ。この場合、コスト関数を特徴付ける量は、供給されたトレーニング入力量に依存して求められた、ディープニューラルネットワークの出力量の、所定の目標出力量に対する偏差を特徴付ける第1の量を含む。さらに、コスト関数を特徴付ける量は、少なくとも2つの所定の離散値のうちの少なくとも1つからの、複数の重みのうちの1つの重みの値の偏差を特徴付ける少なくとも1つのペナルティ量を含む。
-ディープニューラルネットワークのトレーニング入力量に依存して、ディープニューラルネットワークがオブジェクトを検出するようにディープニューラルネットワークを訓練するステップ。ディープニューラルネットワークを訓練する際に、複数の重みのうちの1つの重みの少なくとも1つの値が、コスト関数を特徴付ける量に依存して適合される。
-所定のリストに含まれている離散値それぞれに重みの値をマッピングするステップ。この方法の利点は、重みの離散値に基づいて、生成されたディープニューラルネットワークを圧縮して記憶することができること、及び、ディープニューラルネットワークの出力量を求めるための算術演算を効率的に実施することができることである。
【0006】
離散値の所定のリストは、各エントリに1つのインデクスが対応付けられている、複数の所定の離散値を含むリストであってよい。それぞれ1つの離散値への値のマッピングとは、各重みに、その値と、離散値の所定のリストの所定の離散値とに依存して、離散値の所定のリスト中の1つの値が対応付けられることと解される。例えば、所定の許容範囲内の複数の重みのうちの1つの重みの値が、少なくとも2つの所定の離散値のうちの1つの離散値の付近にある場合には、この重みの値として、その許容範囲内にある重みの値を有している所定の離散値が対応付けられ、特にこの重みに属する値として記憶される。少なくとも2つの所定の離散値それぞれの許容範囲は、特に重複しない。重複する場合には、任意的選択肢として、選択メカニズムを設けることができ、この選択メカニズムは、許容範囲に基づいて、重みに対応付けることができる許容離散値を選択する。
【0007】
ここで、オブジェクトとは、トレーニング入力量に符号化されている特徴と解され、この特徴は、ディープニューラルネットワークによって復号されて、オブジェクトをトレーニング入力量において検出するために利用することができる。
【0008】
ペナルティ量が、複数の重みのうちの1つの重みの事後分布関数の、この重みの所定の離散値の事前分布関数からの偏差を特徴付ける場合には特に有利である。この場合、事前分布関数は、トレーニング量が確認される前の、1つの重み又は全ての重みの所定の離散値の仮定の分布関数と考えられる。分布関数は、例えば、複数の重みのうちの1つの重みのそれぞれ考えられる値の出現確率分布を特徴付けることができる。この場合、事後分布関数は、複数の重みのうちの1つの重みの値の分布を表し、また、事後分布関数は、ディープニューラルネットワークの訓練中に適合されるので、特に最初に任意に選択することができる。事後分布関数の正確な形式は、トレーニング量を使用した訓練後に明らかになる。
【0009】
同様に、ニューラルネットワークの重みの所定のサブセットに関する事前分布関数が、この所定のサブセットと関連する、ディープニューラルネットワークの部分のトポロジに依存して選択される場合には、特に有利である。ディープニューラルネットワークの関連付けられた部分は、サブセットの重みに対応付けられている層及びコネクションである。これは、複数の重みを1つのフィルタに統合することができる場合には、それらの重みに同一の事前分布関数を対応付けることができるという利点を有している。既に作成されている公知のディープニューラルネットワークから、重み値の分布に関する情報を再利用することができる。それらの情報から、フィルタに対応付けられる事前分布関数を導出することができ、これによって、例えば、フィルタをより簡単かつ迅速に訓練することができ、また、この訓練を所期のように実施することができる。さらなる利点は、サブセットに対して同一の事前分布関数を使用することによって、より効果的に、冗長的なフィルタないし重みを除外することができることである。何故ならば、それらの冗長的なフィルタないし重みを同一の事前分布関数に基づいて、訓練後は類似の離散値を有することができるからである。
【0010】
さらに、ペナルティ関数が、求められた偏差の加重合計を特徴付ける場合には、特に有利である。所定の複数の離散値の各離散値に1つずつ対応付けられているそれぞれ1つの位置についての事前分布関数に対する、複数の重みのうちの1つの重みの事後分布関数のそれぞれ1つの偏差が求められ、この偏差が、このそれぞれの所定の離散値に対応付けられている重み付け関数に基づいて重み付けされる。「対応付けられる」とは、特に、重み付け関数がそのそれぞれの所定の離散値を中心にして設定されていることを意味していると考えられる。例えば、重み付け関数、特にガウス曲線は、それぞれ所定の離散値を中心にして対称的に設定されていると考えられる。これによって、事後分布関数に対する事前分布関数の偏差を区分ごとに求めることができ、また、それに続いて、求められた偏差を適当に重み付けして重畳させることができ、その結果、2つの分布関数の偏差が確実に近似される。
【0011】
求められた偏差が、それぞれ対数一様分布関数に対する事後分布関数の求められた偏差であり、その求められた偏差が、少なくとも2つの所定の離散値のうちの1つの離散値の複数の位置のうちのそれぞれ1つに移動され、そのそれぞれ所定の離散値に対応付けられている重み付け関数に基づいて重み付けされる場合には有利である。
【0012】
同様に、求められた偏差のうちの1つが、所定の値、特に値「1」に基づいて、それぞれの重み付け関数の合計が減算されて重み付けされる場合には有利である。このことは、求められた偏差が、他の所定の離散値の求められた偏差までの距離が大きくても、確実な近似を実施することができるという利点を有している。
【0013】
さらに、事前分布関数からの事後分布関数の偏差が、事後分布関数と事前分布関数との間のKL情報量の近似に基づいて求められる場合には有利である。
【0014】
本方法の1つの他の実施形態においては、ディープニューラルネットワークの訓練の際に、コスト関数に依存して、複数の事後分布関数のうちの1つを適合させることができ、その際、適合された事後分布関数によって特徴付けられる重みが、適合された事後分布関数に依存して適合される。
【0015】
同様に、本方法の1つの他の実施形態においては、少なくとも2つの所定の離散値のうちの少なくとも1つの離散値が値「0」であってよい。ディープニューラルネットワークの訓練後に離散値「0」にマッピングされた重みが除外される場合には有利である。このことは、ディープニューラルネットワークの訓練後に、ディープニューラルネットワークの性能が損なわれることなく、この重みを除外することができ、また、それによって、ディープニューラルネットワークの付加的な圧縮、しかしながらまた、計算の手間及びメモリ容量の要求の付加的な低減も達成することができるという利点を有している。
【0016】
事後分布関数がそれぞれ1つの正規分布に基づいて特徴付けられている場合には有利である。
【0017】
さらに、中断判定基準が満たされるまで、コスト関数を特徴付ける量を求めて、ディープニューラルネットワークを訓練する一連のステップが何度も繰り返される場合には有利である。中断判定基準として、例えば、一連のステップの所定回数の繰り返しが挙げられる。任意的選択肢においては、中断判定基準として、コスト関数を特徴付ける量が所定の量より小さくなければならないこと、及び/又は、重みが、少なくとも2つの所定の離散値のうちのそれぞれ1つの値を取っていること、若しくは、少なくとも2つの所定の離散値のうちの1つの離散値付近の所定の範囲内にあることを定義することができる。
【0018】
また、各層がそれぞれ1つの閾値を有している場合には有利であり、この際、ペナルティ量が付加的に、少なくとも他の少なくとも2つの所定の離散値からの閾値の偏差を特徴付け、ディープニューラルネットワークの訓練の際に、複数の閾値のうちの1つの閾値が、コスト関数を特徴付ける量に依存して適合される。閾値とは、この層のニューロンの伝達関数を特徴付ける値であると解される。伝達関数は、入力量及び所定の関数に依存して、出力量を求める。この際、本方法の上述の異なる実施形態は、ディープニューラルネットワークを作成する際の離散的な閾値への、層の閾値の適合にも使用することができる。このためには、上述の全ての方法ステップの「重み」という単語を、「閾値」という単語に置き換えさえすればよい。
【0019】
本方法の1つの有利な発展形態においては、ニューラルネットワークの訓練後に、ディープニューラルネットワークの入力量が求められる。続いて、オブジェクトが、訓練されたディープニューラルネットワークを用いて、求められた入力量に依存して検出され、有利には、続いて、少なくとも半自律的な機械が、検出されたオブジェクトに依存して制御される。少なくとも半自律的な機械として、例えば、ロボット、特に車両が考えられる。また、モバイル計算ユニットにおいて動作することができるディープニューラルネットワークを作成するために、本方法を使用することも考えられる。モバイル計算ユニット、特に携帯電話又はカメラは、メモリ容量、計算能力及びエネルギ供給が制限されていることを特徴としている。ディープニューラルネットワークは、オブジェクト検出の他にも、代替的に、例えば、分類、セマンティックセグメンテーション又は回帰のために作成、訓練及び/又は使用することができる。
【0020】
1つの他の態様においては、本発明は、コンピュータにおいて実行されると、上述の方法のうちの1つを実施させるための命令を含むコンピュータプログラムに関し、さらには、コンピュータプログラムが記憶されている機械可読メモリ素子に関する。
【0021】
1つの他の態様においては、本発明は、本方法の各ステップを実施するように構成されている装置に関する。
【0022】
本発明の実施例は、添付の図面に示されており、また、それらの実施例を下記において詳細に説明する。
【図面の簡単な説明】
【0023】
【
図1】オブジェクトを検出するためのディープニューラルネットワークを備えたシステムの概略図を示す。
【
図2A】複数の所定の離散値を特徴付ける事前分布関数の概略図を示す。
【
図3】本発明に係る方法の実施形態の概略図を示す。
【
図4】2つの完全結合層及び2つの畳み込み層を含む、例示的に使用されるディープニューラルネットワークを訓練する際における重みの値の分布及び時間的な展開の概略図を示す。
【発明を実施するための形態】
【0024】
図1は、オブジェクトを検出し、検出されたオブジェクトに依存して、少なくとも半自律的な機械を制御するためのシステム(01)の実施形態の概略図を示している。システム(01)は、直列に相互に接続されている、複数のコンポーネント(14,10,15)を含む。コンポーネント(14)は、ディープニューラルネットワーク(10)に関する入力量を検出し、その入力量をディープニューラルネットワーク(10)に供給する検出ユニットである。ディープニューラルネットワーク(10)の出力は、制御ユニット(15)に接続されている。制御ユニット(15)は、ディープニューラルネットワーク(10)の出力量に依存して、制御量を求め、その制御量によって、例えばロボット、特に車両を制御するように構成されている。さらに、システム(01)は、メモリ素子(17)を有している計算ユニット(16)を含む。計算ユニット(16)は、ディープニューラルネットワーク(10)に接続することができる。
【0025】
ディープニューラルネットワーク(10)は、それぞれが複数のニューロン(11)を含む複数の層(12)から構成されている。ニューロン(11)は、それぞれ、少なくとも1つの入力及び少なくとも1つの出力を有している。ニューロンは、伝達関数(活性化関数)、特にパラメータ化可能なReLu関数又はシグモイド関数と、ニューロン(11)の入力量とに依存して、出力量を求める。所定の層(12)のニューロンは、コネクション(13)によって、後続の層のニューロンに接続されている。例えば、所定の層(12)の各ニューロンの出力を、直接的に続いている層のニューロン(11)の全ての入力に接続することができ、このような層は、
図1においてディープニューラルネットワーク(10)の右側の部分に概略的に示されており、また、以下においては、完全結合(英語:fully connected)層と記す。しかしながら、また、ある層のニューロンの各出力が、後続の層のニューロンの各入力に接続されていないことも考えられ、このことは、ディープニューラルネットワーク(10)の左側の部分に示されている。同様に、あるニューロンの出力が、直接的に続いていない後続の層のニューロンの入力に接続されていること(例えば、「ショートカットコネクション/スキップコネクション」)、又は、先行の層に接続されていることも考えられる。これは、
図1に図示されていないことを言及しておく。
【0026】
各コネクション(13)には、重みが割り当てられている。この重みを用いることによって、ニューロンの出力量は、重み付けされて、入力量として後続のニューロンに供給される。好適には、各重みは、-1以上かつ1以下の値を有しており、また、ニューロンの出力量は、この値と乗算されることによって重み付けされ、コネクション(13)によって接続されているニューロンの入力量として使用することができる。
【0027】
図2Aは、所定の離散値w(21)の出現確率p(w)を表す、1つの考えられる事前分布関数(20)の概略図を示している。事前分布関数(20)は、重み値の分布について行われた仮定を表す分布関数である。仮定として、例えば、重みの値wが単に離散的で均一に分布しているということが挙げられる。
図2Aに示されているように、ここでは、重みが3つの異なる離散値(21)だけを取ることができ、また、それらの離散値(21)にそれぞれ1つの出現確率(22)が対応付けられていることが仮定される。代替的な実施形態においては、2つ又は4つ以上の異なる離散値(21)も事前分布関数(20)によって表すことができる。所定の離散値(21)が「0」であり、これによって冗長的な重みを簡単に除外することができる場合には有利である。入力量の情報が「0」との乗算によって失われるので、ここでは、値「0」を取る重みが冗長的なものである。ステップ幅(23)、即ち、2つの所定の離散値間の距離は、任意の大きさに選択することができる。しかしながら、ステップ幅(23)は、好適には、計算ユニット(16)において所定の離散値を表すために使用されるビットの数に比例する。
【0028】
事前分布関数(20)は、以下においては、ディープニューラルネットワーク(10)を訓練して、それによって重みの値が所定の離散値を取り、特にそのような所定の離散値だけを取るようにするために使用することができる。
【0029】
この実施例においては、事前分布関数(20)が、例示的に以下のように選択される。
【数1】
ここで、nは、所定の離散値の個数に対応し、wは、重みの値であり、また、c
kは、それぞれk番目の所定の離散値である。
【0030】
図2Bは、事後分布関数(24)の概略図を示している。事後分布関数(24)は、特に正規分布であり、本方法の開始時に、特に、ランダムに初期化することができる。事後分布関数(24)は、重みの値wの出現確率q(w)を表す。ディープニューラルネットワーク(10)の訓練中に、事後分布関数(24)を適合させることによって、事後分布関数(24)を、使用されるトレーニング量について、重みの適当な値wに近似させることができる。重みの適当な値wは、ディープニューラルネットワーク(10)が、その重みの適当な値wに基づいて、所定のタスク、特にオブジェクトの検出をディープニューラルネットワーク(10)の入力量において確実にこなすことによって特徴付けられている。
図2Bには、例示的に初期化された事後分布関数(25a)が示されており、この事後分布関数(25a)が、ディープニューラルネットワーク(10)の訓練中に適合される。この適合された事後分布関数(25b)は、ディープニューラルネットワーク(10)を訓練するためのトレーニング量が使用された後の、重みの値wの出現確率q(w)を表す。
【0031】
図3は、ディープニューラルネットワークの作成後には、重みが所定の離散値を含む所定のリスト中の値を有するようになるディープニューラルネットワークを作成するための方法(30)の実施形態のフローチャートを概略的に示している。
【0032】
方法(30)は、ステップ31で開始される。ステップ31においては、ディープニューラルネットワーク(10)にトレーニング入力量が供給される。トレーニング量が供給された後に、任意的選択肢として、重みの事後分布関数(24)を、特にランダムに初期化することができる。同様に、ステップ31においては、事前分布関数(20)を確立することができる。好適には、ディープニューラルネットワーク(10)の各重みには、事前分布関数(20)及び事後分布関数(24)がそれぞれ1つずつ対応付けられる。一例として、事前分布関数(20)の確立は、一例として類似の適用分野に関する既に訓練されたディープニューラルネットワークから、重みの値の分布が検出され、そこから事前分布関数(20)が導出されることによって実施することができる。事前分布関数(20)の導出は、例えば重み値のクラスタ分析を用いて、また、種々の重み値の出現の頻度を考察することによって実施することができる。クラスタ分析に従い求められたクラスタ中心を所定の離散値として利用することができ、また、それらの離散値に、各値の出現の頻度の考察に基づいて、それぞれ1つの出現確率を対応付けることができ、このことは、例えば、事前分布関数によって特徴付けることができる。代替的に、所定の離散値(21)を含むリストと、それら所定の離散値(21)の特に仮定又は推定される出現確率p(w)とに基づいて、事前分布関数(20)を確立することができる。代替的に、事前分布関数(20)を、例えば上記の(式1)に示したように選択することができ、又は、対数一様分布関数として選択することができる。1つの事前分布関数(20)を、ディープニューラルネットワーク(10)の各重みに対して使用することができ、又は、複数の異なる事前分布関数(20)を、ディープニューラルネットワーク(10)の重みのそれぞれ1つの選択されたサブセットに対して使用することができる。
【0033】
ステップ31が終了すると、続いてステップ32が行われる。ステップ32においては、重みと、ディープニューラルネットワーク(10)の求められた出力量と、ディープニューラルネットワーク(10)の所定の目標出力量とに依存して、コスト関数の第1の量が求められる。
【0034】
重みは、本方法のこの実施例においては、分布関数に基づいて表されているので、例えば、第1の量を、交差エントロピー誤差関数L
D,1を用いて求めることができる。
【数2】
ただし、Dは、トレーニング量を含み、
【数3】
は、q(w)と、重みの値wを用いて、トレーニング量Dの入力データxが適当な目標出力量yを求めた条件付き確率p(y|x,w)と、に適用される期待値演算子を表す。
【0035】
付加的に、ステップ32においては、コスト関数の第1の量について、ペナルティ量が求められる。ここで、ペナルティ量は、所定の離散値のうちの少なくとも1つからの、重みのうちの1つの値の偏差を特徴付ける。この実施例においては、重みが分布関数に基づいて表されるので、ペナルティ量を、特にKullback-Leibler(KL)情報量を用いて求めることができる。これは、例えば、次式で表すことができる。
(式3) LD,KL=-DL(q(w)||p(w))
ただし、DL(q(w)||p(w))は、事後分布関数q(w)と事前分布関数p(w)との間のKL情報量である。
【0036】
1つのペナルティ量が、例えば算術距離尺度(特にユークリッド距離)などの他の算術演算、所定の離散値に対する重みの値の偏差によって決定される、及び/又は、複数の、特に異なるペナルティ量が求められることも考えられる。
【0037】
事前分布関数(20)の選択によっては、ペナルティ量は、分析によって推定される解を有さないが、しかしながら、その解を近似させることはできる。
【0038】
事前分布関数(20)が、(式1)による構造を有しており、また、2つの分布関数間の偏差が求められるべき場合には、例えば、KL情報量を適当に近似させ、偏差を求めることができる。(式1)による事後分布関数p(w)を用いる、(式3)によるKL情報量の近似を、以下のステップによって実施することができる。
【0039】
まず、対数一様分布関数に対する、事後分布関数(24)の偏差を、例えば、これら2つの分布関数間のKL情報量を用いて求めることができる。事後分布関数(24)に対する対数一様分布関数の偏差については、文献から例えばモンテカルロサンプリングなどの各方法が公知であるので、対数一様分布関数を使用することができる。続いて、求められた偏差を、各離散値の位置に移動させることができる。この場合、これらの移動された偏差はそれぞれ、事後分布関数(24)に対する事前分布関数(20)の全体の偏差のうちの区分ごとに求められた偏差を表す。その後、移動された各偏差が、重み付け関数、特に所定の離散値の位置についてセンタリングされているガウス分布関数を用いて重み付けされる。個々の偏差が各重み付け関数によって重み付けされた後に、それらの偏差は、所定の重み付けに従い加重合計される。好適には、所定の重み付けに関して、事後分布関数(24)の期待値が選択される。個々の偏差のこの加重合計は、(式3)による事前分布関数(20)及び事後分布関数(24)の近似されたKL情報量に相当する。
【0040】
KL情報量の近似をより高い精度で実施するために、例えば、求められたKL情報量の重み付け関数のうちの1つを他の方法により選択することができる。好適には、この重み付け関数は、所定の値、特に「1」から、使用される重み付け関数の合計が減算される構造を有している。
【0041】
KL情報量が求められた後に、(式2)による第1の量と(式3)によるペナルティ量との合計が求められる。この合計は、コスト関数を特徴付ける量を表す。しかしながら、(式2)による第1の量及び(式3)によるペナルティ量を、他の算術演算によって相互に結合し得ることも考えられる。複数のペナルティ量が求められた場合には、それらのペナルティ量も同様に、コスト関数を特徴付ける量において考慮することができる。
【0042】
ステップ32が、コスト関数を特徴付ける量を求めたことによって終了すると、続いてステップ33が行われる。ステップ33においては、ディープニューラルネットワーク(10)が訓練される。ディープニューラルネットワーク(10)の訓練においては、重みの値が求められ、それによって、ディープニューラルネットワーク(10)は、例示的に、そのディープニューラルネットワーク(10)の入力量においてオブジェクトを検出することができる。この際、コスト関数を特徴付ける量に依存して、重みの値が適合され、その結果、ディープニューラルネットワーク(10)は、オブジェクトを検出することができる。好適には、最適化法によって、特に最急降下法によって、重みの変化量が求められ、それによって、変化量を考慮した後は、複数の重みのうちの少なくとも1つにおいては、コスト関数を特徴付ける量が最小化される。事後分布関数が、コスト関数を特徴付ける量に依存して適合され、また、重みの値が、適合された事後分布関数(24)に依存して適合され、特に重みの適合された値として、事後分布関数(24)の期待値が使用されることによって適合されることも考えられる。事後分布関数(24)が正規分布である場合には、求められた変化量に依存して、期待値及び正規分布の標準偏差を適合させることができる。期待値及び正規分布の標準偏差の適合によって、事後分布関数(24)は、ディープニューラルネットワーク(10)を訓練するためのトレーニング量の使用後に、その重みの適当な値の出現確率を表すことができる。
【0043】
ステップ33に続いて、ステップ34が開始される。ステップ34においては、重みの値が記憶される。重みのうちの1つの値が、リスト中の所定の離散値に類似する値を有する場合には、離散値のリスト中のその離散値がこの重みの値として記憶される。「類似する」とは、複数の重みのうちの1つの重みの値が、2つの所定の離散値のうちの一方に近い場合には、その重みの値が、より近い離散値に類似していることと解される。複数の重みのうちの1つの重みの値が、一番近い値としてただ1つの所定の離散値だけを有する場合には、その値が、その所定の離散値に類似していると考えられる。
【0044】
好適には、重みの離散値は、離散値のインデクスの形態で記憶され、その際、離散値のリスト中の各所定の離散値には1つのインデクスが対応付けられている。これによって、この重みの値の記憶を、インデクスの記憶によって実施することができる。従って、高い精度を有する複数の離散値を含むリストだけが記憶されればよく、他方では、複数の重みの値をインデクスの形態で、わずかな必要メモリにより記憶することができる。
【0045】
方法(30)の他の実施例においては、ステップ34の終了後に後続のステップが開始されることも考えられる。この後続のステップにおいては、検出ユニット(14)を用いて、入力量をディープニューラルネットワーク(10)に供給することができる。続いて、このステップにおいては、ディープニューラルネットワーク(10)を用いて、供給された入力量及び重みに依存して、出力量が求められる。制御ユニット(15)は、この出力量を使用して、制御量を求めることができる。この制御量を用いて、例えばロボット、特に車両を制御することができる。
【0046】
他の実施例においては、方法(30)がステップ34で終了した後に、方法(30)を周期的に、ステップ31,32のうちの一方又はステップ33において、再び開始することができる。代替的に、所定の中断判定基準が満たされるまで、一連のステップ31,32,33を周期的に実施することもできる。続いて、ステップ34を実施することができる。
【0047】
方法(30)の他の代替的な実施形態においては、代替的に、既に作成されているディープニューラルネットワークに基づいて事後分布関数(24)の初期化を実施することができる。例えば、既に作成されているディープニューラルネットワークの重みの値の分布を使用して、そこから、それらの重みのうちの1つの重みの値の少なくとも1つの適当な事後分布関数を導出することができる。このことは、方法(30)の上述のステップの実施後に、この事後分布関数を用いて、特に既に作成されているディープニューラルネットワークを、特に改めて訓練する際に、圧縮されたディープニューラルネットワークを存在させることができるという有利な効果を有している。
【0048】
図4は、4つの層を有するディープニューラルネットワークを作成するための実施例の方法を使用した際における、全ての重みの値の分布及び時間的な展開の概略図を示している。層のうちの2つは、完全結合層(dense_1,dense_2)であり、残余の層は、畳み込み層(conv_1,conv_2)である。ここで、上側の4つのグラフ(40)において、x軸には、各層の重みの値wが、また、y軸には、
図4において「loss」と記したペナルティ量が、それぞれプロットされている。ここで、「loss」とは、重みの値wに依存する、ペナルティ量の値を表す。3つの所定の離散値(-0.2,0,0.2)それぞれに関して、ステップ32に従い区分ごとに求められて、重み付け関数を用いて重み付けされたKL情報量(41)の経過がグレーでそれぞれ表されている。重みの値が所定の離散値(-0.2,0,0.2)から離れるほど、ペナルティ量の値はより大きくなる。同様に、各グラフ(40,43)においては、ずらされたKL情報量(41)の重み付けされた重畳によって、重みの値wに沿ったペナルティ量の考えられる経過がグレーで示されている。重みの個々の値は、それぞれ点(42)によって、上側の4つのグラフ(40)にプロットされている。これらのグラフは、ディープニューラルネットワーク(10)の初期化後に記録されたものであって、また、ディープニューラルネットワーク(10)は、ランダムに初期化されたものであるので、重みの値は、ランダムに分布している。方法が実施された後においては、下側の4つのグラフ(43)が記録された。
図4に表されているように、下側の4つのグラフ(43)は、重みの値が所定の離散値(-0.2,0,0.2)を取ることを示している。