(57)【要約】  本発明は、ディープニューラルネットワーク（１０）を作成するための方法に関する。ディープニューラルネットワーク（１０）は、複数の層（１２）と、重みを有するコネクション（１３）とを有し、作成されたディープニューラルネットワークにおける重みは、複数の離散値を含む所定のリスト中の所定の離散値だけを取り得る。当該方法は、少なくとも１つのトレーニング入力量をディープニューラルネットワーク（１０）に供給するステップと、供給されたトレーニング入力量に依存して求められた、ディープニューラルネットワークの出力量の、所定の目標出力量に対する偏差を特徴付ける第１の量を含み、さらには、少なくとも２つの所定の離散値のうちの少なくとも１つからの、複数の重みのうちの１つの重みの値の偏差を特徴付ける少なくとも１つのペナルティ量を含み、コスト関数を特徴付ける量を求めるステップと、ディープニューラルネットワーク（１０）を訓練するステップと、を備えている。本発明は、さらに、本発明に係る方法（３０）を実施するためのコンピュータプログラム及び装置と、コンピュータプログラムが記憶されている機械可読メモリ素子とに関する。
2021500670.tif 000002
【特許請求の範囲】
【請求項１】
ディープニューラルネットワーク（１０）を作成するための方法（３０）であって、
前記ディープニューラルネットワーク（１０）は、複数の層（１２）と、重みを有するコネクション（１３）とを有し、作成されたディープニューラルネットワークにおける前記重みは、複数の離散値を含む所定のリスト中の所定の離散値だけを取り得る、方法（３０）において、
−少なくとも１つのトレーニング入力量を前記ディープニューラルネットワーク（１０）に供給するステップと、
−供給された前記トレーニング入力量に依存して求められた、前記ディープニューラルネットワークの出力量の、所定の目標出力量に対する偏差を特徴付ける第１の量を含み、かつ、少なくとも２つの前記所定の離散値のうちの少なくとも１つからの、複数の前記重みのうちの１つの重みの値の偏差を特徴付ける少なくとも１つのペナルティ量を含む、コスト関数を特徴付ける量を求めるステップと、
−前記ディープニューラルネットワーク（１０）の前記トレーニング入力量に依存して、前記ディープニューラルネットワーク（１０）がオブジェクトを検出するように前記ディープニューラルネットワーク（１０）を訓練し、当該ディープニューラルネットワーク（１０）の訓練において、複数の前記重みのうちの１つの重みの少なくとも１つの値を、前記コスト関数を特徴付ける量に依存して適合させるステップと、
−前記所定のリストに含まれている離散値それぞれに前記重みの値をマッピングするステップと、
を備えている方法。
【請求項２】
前記ペナルティ量は、複数の前記重みのうちの１つの重みの事後分布関数（２４）の、当該重みの前記所定の離散値の事前分布関数（２０）からの偏差を特徴付ける、請求項１に記載の方法。
【請求項３】
前記ニューラルネットワーク（１０）の前記重みの所定のサブセットに関する前記事前分布関数（２４）を、当該所定のサブセットと関連する、前記ディープニューラルネットワーク（１０）の部分のトポロジに依存して選択する、請求項２に記載の方法。
【請求項４】
ペナルティ関数が、求められた偏差の加重合計を特徴付け、前記所定の複数の離散値の各離散値に１つずつ対応付けられているそれぞれ１つの位置についての前記事前分布関数（２０）に対する、複数の前記重みのうちの１つの重みの事後分布関数（２４）のそれぞれ１つの偏差を求め、求められた当該偏差を、それぞれの所定の離散値に対応付けられている重み付け関数に基づいて重み付けする、請求項２又は３に記載の方法。
【請求項５】
求められた前記偏差は、それぞれ対数一様分布関数に対する前記事後分布関数の求められた偏差であり、当該求められた偏差を、前記少なくとも２つの所定の離散値のうちの１つの離散値の複数の位置のうちのそれぞれ１つに移動させ、それぞれの前記所定の離散値に対応付けられている前記重み付け関数に基づいて重み付けする、請求項４に記載の方法。
【請求項６】
求められた前記偏差のうちの１つを、所定の値に基づいて、それぞれの前記重み付け関数の合計を減算して重み付けする、請求項４又は５に記載の方法。
【請求項７】
前記事前分布関数からの前記事後分布関数の偏差を、前記事後分布関数と前記事前分布関数との間のＫＬ情報量の近似に基づいて求める、請求項２乃至６のいずれか一項に記載の方法。
【請求項８】
前記ディープニューラルネットワークの訓練の際に、前記コスト関数に依存して、複数の前記事後分布関数のうちの１つを適合させ、適合された前記事後分布関数によって特徴付けられる重みを、適合された前記事後分布関数に依存して適合させる、請求項２乃至７のいずれか一項に記載の方法。
【請求項９】
少なくとも２つの前記所定の離散値のうちの１つの離散値は、値「０」である、請求項１乃至８のいずれか一項に記載の方法。
【請求項１０】
前記ディープニューラルネットワーク（１０）の訓練後に、前記ディープニューラルネットワーク（１０）の入力量を求め、訓練された前記ディープニューラルネットワーク（１０）を用いて、求められた前記入力量に依存して、オブジェクトを検出する、請求項１乃至９のいずれか一項に記載の方法。
【請求項１１】
少なくとも半自律的な機械を、検出された前記オブジェクトに依存して制御する、請求項１０に記載の方法。
【請求項１２】
コンピュータにおける実行時に、請求項１乃至１１のいずれか一項に記載の方法の各ステップを実施させるための命令を含むコンピュータプログラム。
【請求項１３】
請求項１２に記載のコンピュータプログラムを含む機械可読メモリ素子（１７）。
【請求項１４】
請求項１乃至１１のいずれか一項に記載の方法を実施するように構成されている装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディープニューラルネットワークを作成するための方法、それぞれが当該方法を実施するために構成されているコンピュータプログラム及び装置に関する。
【背景技術】
【０００２】
米国特許第５１１９４６９号明細書（ＵＳ５１１９４６９）には、複数のシナプスと、各シナプスの重みを調整するための適応型の重み回路と、を有するニューラルネットワークシステムが開示されている。ニューラルネットワークシステムは、一連のトレーニングデータを用いて、パターン認識のための重みを体系的に調整することによって逐次的に訓練される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第５１１９４６９号明細書（ＵＳ５１１９４６９）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
発明の利点
これに対して、独立請求項１の特徴を備えた方法は、ディープニューラルネットワークのコネクションの重みが、複数の離散値を含むリスト中の所定の離散値を取るように、ディープニューラルネットワークのコネクションの重みが求められるという利点を有している。作成されたディープニューラルネットワークの重みの離散値によって、ディープニューラルネットワークを記憶するために必要とされるメモリ容量を低減することができる。何故ならば、重みを、例えば、リスト中の離散値のインデクスに基づいて記憶することができるからである。これによって、もはや各重みの各値を個別に高い精度で記憶する必要はなくなり、重みの値のインデクスと離散値及びそれらのインデクスを含む所定のリストとだけがそれぞれ記憶されれば十分である。これによって、作成されるディープニューラルネットワークに対するメモリ容量の要求が低減されることになる。さらに、この方法によって、ディープニューラルネットワークの表現の圧縮が達成される。何故ならば、作成されるディープニューラルネットワークの重みの値は、もはや連続的ではなく、重みは、ある程度の数の所定の離散値だけを取ることができるからである。これによって、ディープニューラルネットワークが、より少数の異なる重みによって特徴付けられ、かつ、圧縮された表現を達成することができる。本方法の他の利点は、重みの離散値によって、ディープニューラルネットワークの出力量を求めるために実施しなければならない算術演算、特に乗算の回数を、分配法則を利用することにより低減することができるということである。重みの値は、所定の異なる離散値だけを取ることができるので、同一の離散値を有する重みは、分配法則を用いて除外することができ、これによって、結果を求めるための乗算の回数及び計算の手間を大幅に低減することができる。
【課題を解決するための手段】
【０００５】
発明の開示
第１の態様においては、本発明は、ディープニューラルネットワークを作成するための方法に関する。ディープニューラルネットワークは、複数の層と、重みを有するコネクションとを有している。作成されたディープニューラルネットワークにおける重みは、複数の離散値を含む所定のリスト中の所定の離散値だけを取ることができる。本方法は、以下のステップを備えている。
−少なくとも１つのトレーニング入力量をディープニューラルネットワークに供給するステップ。
−コスト関数を特徴付ける量を求めるステップ。この場合、コスト関数を特徴付ける量は、供給されたトレーニング入力量に依存して求められた、ディープニューラルネットワークの出力量の、所定の目標出力量に対する偏差を特徴付ける第１の量を含む。さらに、コスト関数を特徴付ける量は、少なくとも２つの所定の離散値のうちの少なくとも１つからの、複数の重みのうちの１つの重みの値の偏差を特徴付ける少なくとも１つのペナルティ量を含む。
−ディープニューラルネットワークのトレーニング入力量に依存して、ディープニューラルネットワークがオブジェクトを検出するようにディープニューラルネットワークを訓練するステップ。ディープニューラルネットワークを訓練する際に、複数の重みのうちの１つの重みの少なくとも１つの値が、コスト関数を特徴付ける量に依存して適合される。
−所定のリストに含まれている離散値それぞれに重みの値をマッピングするステップ。この方法の利点は、重みの離散値に基づいて、生成されたディープニューラルネットワークを圧縮して記憶することができること、及び、ディープニューラルネットワークの出力量を求めるための算術演算を効率的に実施することができることである。
【０００６】
離散値の所定のリストは、各エントリに１つのインデクスが対応付けられている、複数の所定の離散値を含むリストであってよい。それぞれ１つの離散値への値のマッピングとは、各重みに、その値と、離散値の所定のリストの所定の離散値とに依存して、離散値の所定のリスト中の１つの値が対応付けられることと解される。例えば、所定の許容範囲内の複数の重みのうちの１つの重みの値が、少なくとも２つの所定の離散値のうちの１つの離散値の付近にある場合には、この重みの値として、その許容範囲内にある重みの値を有している所定の離散値が対応付けられ、特にこの重みに属する値として記憶される。少なくとも２つの所定の離散値それぞれの許容範囲は、特に重複しない。重複する場合には、任意的選択肢として、選択メカニズムを設けることができ、この選択メカニズムは、許容範囲に基づいて、重みに対応付けることができる許容離散値を選択する。
【０００７】
ここで、オブジェクトとは、トレーニング入力量に符号化されている特徴と解され、この特徴は、ディープニューラルネットワークによって復号されて、オブジェクトをトレーニング入力量において検出するために利用することができる。
【０００８】
ペナルティ量が、複数の重みのうちの１つの重みの事後分布関数の、この重みの所定の離散値の事前分布関数からの偏差を特徴付ける場合には特に有利である。この場合、事前分布関数は、トレーニング量が確認される前の、１つの重み又は全ての重みの所定の離散値の仮定の分布関数と考えられる。分布関数は、例えば、複数の重みのうちの１つの重みのそれぞれ考えられる値の出現確率分布を特徴付けることができる。この場合、事後分布関数は、複数の重みのうちの１つの重みの値の分布を表し、また、事後分布関数は、ディープニューラルネットワークの訓練中に適合されるので、特に最初に任意に選択することができる。事後分布関数の正確な形式は、トレーニング量を使用した訓練後に明らかになる。
【０００９】
同様に、ニューラルネットワークの重みの所定のサブセットに関する事前分布関数が、この所定のサブセットと関連する、ディープニューラルネットワークの部分のトポロジに依存して選択される場合には、特に有利である。ディープニューラルネットワークの関連付けられた部分は、サブセットの重みに対応付けられている層及びコネクションである。これは、複数の重みを１つのフィルタに統合することができる場合には、それらの重みに同一の事前分布関数を対応付けることができるという利点を有している。既に作成されている公知のディープニューラルネットワークから、重み値の分布に関する情報を再利用することができる。それらの情報から、フィルタに対応付けられる事前分布関数を導出することができ、これによって、例えば、フィルタをより簡単かつ迅速に訓練することができ、また、この訓練を所期のように実施することができる。さらなる利点は、サブセットに対して同一の事前分布関数を使用することによって、より効果的に、冗長的なフィルタないし重みを除外することができることである。何故ならば、それらの冗長的なフィルタないし重みを同一の事前分布関数に基づいて、訓練後は類似の離散値を有することができるからである。
【００１０】
さらに、ペナルティ関数が、求められた偏差の加重合計を特徴付ける場合には、特に有利である。所定の複数の離散値の各離散値に１つずつ対応付けられているそれぞれ１つの位置についての事前分布関数に対する、複数の重みのうちの１つの重みの事後分布関数のそれぞれ１つの偏差が求められ、この偏差が、このそれぞれの所定の離散値に対応付けられている重み付け関数に基づいて重み付けされる。「対応付けられる」とは、特に、重み付け関数がそのそれぞれの所定の離散値を中心にして設定されていることを意味していると考えられる。例えば、重み付け関数、特にガウス曲線は、それぞれ所定の離散値を中心にして対称的に設定されていると考えられる。これによって、事後分布関数に対する事前分布関数の偏差を区分ごとに求めることができ、また、それに続いて、求められた偏差を適当に重み付けして重畳させることができ、その結果、２つの分布関数の偏差が確実に近似される。
【００１１】
求められた偏差が、それぞれ対数一様分布関数に対する事後分布関数の求められた偏差であり、その求められた偏差が、少なくとも２つの所定の離散値のうちの１つの離散値の複数の位置のうちのそれぞれ１つに移動され、そのそれぞれ所定の離散値に対応付けられている重み付け関数に基づいて重み付けされる場合には有利である。
【００１２】
同様に、求められた偏差のうちの１つが、所定の値、特に値「１」に基づいて、それぞれの重み付け関数の合計が減算されて重み付けされる場合には有利である。このことは、求められた偏差が、他の所定の離散値の求められた偏差までの距離が大きくても、確実な近似を実施することができるという利点を有している。
【００１３】
さらに、事前分布関数からの事後分布関数の偏差が、事後分布関数と事前分布関数との間のＫＬ情報量の近似に基づいて求められる場合には有利である。
【００１４】
本方法の１つの他の実施形態においては、ディープニューラルネットワークの訓練の際に、コスト関数に依存して、複数の事後分布関数のうちの１つを適合させることができ、その際、適合された事後分布関数によって特徴付けられる重みが、適合された事後分布関数に依存して適合される。
【００１５】
同様に、本方法の１つの他の実施形態においては、少なくとも２つの所定の離散値のうちの少なくとも１つの離散値が値「０」であってよい。ディープニューラルネットワークの訓練後に離散値「０」にマッピングされた重みが除外される場合には有利である。このことは、ディープニューラルネットワークの訓練後に、ディープニューラルネットワークの性能が損なわれることなく、この重みを除外することができ、また、それによって、ディープニューラルネットワークの付加的な圧縮、しかしながらまた、計算の手間及びメモリ容量の要求の付加的な低減も達成することができるという利点を有している。
【００１６】
事後分布関数がそれぞれ１つの正規分布に基づいて特徴付けられている場合には有利である。
【００１７】
さらに、中断判定基準が満たされるまで、コスト関数を特徴付ける量を求めて、ディープニューラルネットワークを訓練する一連のステップが何度も繰り返される場合には有利である。中断判定基準として、例えば、一連のステップの所定回数の繰り返しが挙げられる。任意的選択肢においては、中断判定基準として、コスト関数を特徴付ける量が所定の量より小さくなければならないこと、及び／又は、重みが、少なくとも２つの所定の離散値のうちのそれぞれ１つの値を取っていること、若しくは、少なくとも２つの所定の離散値のうちの１つの離散値付近の所定の範囲内にあることを定義することができる。
【００１８】
また、各層がそれぞれ１つの閾値を有している場合には有利であり、この際、ペナルティ量が付加的に、少なくとも他の少なくとも２つの所定の離散値からの閾値の偏差を特徴付け、ディープニューラルネットワークの訓練の際に、複数の閾値のうちの１つの閾値が、コスト関数を特徴付ける量に依存して適合される。閾値とは、この層のニューロンの伝達関数を特徴付ける値であると解される。伝達関数は、入力量及び所定の関数に依存して、出力量を求める。この際、本方法の上述の異なる実施形態は、ディープニューラルネットワークを作成する際の離散的な閾値への、層の閾値の適合にも使用することができる。このためには、上述の全ての方法ステップの「重み」という単語を、「閾値」という単語に置き換えさえすればよい。
【００１９】
本方法の１つの有利な発展形態においては、ニューラルネットワークの訓練後に、ディープニューラルネットワークの入力量が求められる。続いて、オブジェクトが、訓練されたディープニューラルネットワークを用いて、求められた入力量に依存して検出され、有利には、続いて、少なくとも半自律的な機械が、検出されたオブジェクトに依存して制御される。少なくとも半自律的な機械として、例えば、ロボット、特に車両が考えられる。また、モバイル計算ユニットにおいて動作することができるディープニューラルネットワークを作成するために、本方法を使用することも考えられる。モバイル計算ユニット、特に携帯電話又はカメラは、メモリ容量、計算能力及びエネルギ供給が制限されていることを特徴としている。ディープニューラルネットワークは、オブジェクト検出の他にも、代替的に、例えば、分類、セマンティックセグメンテーション又は回帰のために作成、訓練及び／又は使用することができる。
【００２０】
１つの他の態様においては、本発明は、コンピュータにおいて実行されると、上述の方法のうちの１つを実施させるための命令を含むコンピュータプログラムに関し、さらには、コンピュータプログラムが記憶されている機械可読メモリ素子に関する。
【００２１】
１つの他の態様においては、本発明は、本方法の各ステップを実施するように構成されている装置に関する。
【００２２】
本発明の実施例は、添付の図面に示されており、また、それらの実施例を下記において詳細に説明する。
【図面の簡単な説明】
【００２３】
【図１】オブジェクトを検出するためのディープニューラルネットワークを備えたシステムの概略図を示す。
【図２Ａ】複数の所定の離散値を特徴付ける事前分布関数の概略図を示す。
【図２Ｂ】重みの事後分布関数の概略図を示す。
【図３】本発明に係る方法の実施形態の概略図を示す。
【図４】２つの完全結合層及び２つの畳み込み層を含む、例示的に使用されるディープニューラルネットワークを訓練する際における重みの値の分布及び時間的な展開の概略図を示す。
【発明を実施するための形態】
【００２４】
図１は、オブジェクトを検出し、検出されたオブジェクトに依存して、少なくとも半自律的な機械を制御するためのシステム（０１）の実施形態の概略図を示している。システム（０１）は、直列に相互に接続されている、複数のコンポーネント（１４，１０，１５）を含む。コンポーネント（１４）は、ディープニューラルネットワーク（１０）に関する入力量を検出し、その入力量をディープニューラルネットワーク（１０）に供給する検出ユニットである。ディープニューラルネットワーク（１０）の出力は、制御ユニット（１５）に接続されている。制御ユニット（１５）は、ディープニューラルネットワーク（１０）の出力量に依存して、制御量を求め、その制御量によって、例えばロボット、特に車両を制御するように構成されている。さらに、システム（０１）は、メモリ素子（１７）を有している計算ユニット（１６）を含む。計算ユニット（１６）は、ディープニューラルネットワーク（１０）に接続することができる。
【００２５】
ディープニューラルネットワーク（１０）は、それぞれが複数のニューロン（１１）を含む複数の層（１２）から構成されている。ニューロン（１１）は、それぞれ、少なくとも１つの入力及び少なくとも１つの出力を有している。ニューロンは、伝達関数（活性化関数）、特にパラメータ化可能なＲｅＬｕ関数又はシグモイド関数と、ニューロン（１１）の入力量とに依存して、出力量を求める。所定の層（１２）のニューロンは、コネクション（１３）によって、後続の層のニューロンに接続されている。例えば、所定の層（１２）の各ニューロンの出力を、直接的に続いている層のニューロン（１１）の全ての入力に接続することができ、このような層は、図１においてディープニューラルネットワーク（１０）の右側の部分に概略的に示されており、また、以下においては、完全結合（英語：ｆｕｌｌｙ  ｃｏｎｎｅｃｔｅｄ）層と記す。しかしながら、また、ある層のニューロンの各出力が、後続の層のニューロンの各入力に接続されていないことも考えられ、このことは、ディープニューラルネットワーク（１０）の左側の部分に示されている。同様に、あるニューロンの出力が、直接的に続いていない後続の層のニューロンの入力に接続されていること（例えば、「ショートカットコネクション／スキップコネクション」）、又は、先行の層に接続されていることも考えられる。これは、図１に図示されていないことを言及しておく。
【００２６】
各コネクション（１３）には、重みが割り当てられている。この重みを用いることによって、ニューロンの出力量は、重み付けされて、入力量として後続のニューロンに供給される。好適には、各重みは、−１以上かつ１以下の値を有しており、また、ニューロンの出力量は、この値と乗算されることによって重み付けされ、コネクション（１３）によって接続されているニューロンの入力量として使用することができる。
【００２７】
図２Ａは、所定の離散値ｗ（２１）の出現確率ｐ（ｗ）を表す、１つの考えられる事前分布関数（２０）の概略図を示している。事前分布関数（２０）は、重み値の分布について行われた仮定を表す分布関数である。仮定として、例えば、重みの値ｗが単に離散的で均一に分布しているということが挙げられる。図２Ａに示されているように、ここでは、重みが３つの異なる離散値（２１）だけを取ることができ、また、それらの離散値（２１）にそれぞれ１つの出現確率（２２）が対応付けられていることが仮定される。代替的な実施形態においては、２つ又は４つ以上の異なる離散値（２１）も事前分布関数（２０）によって表すことができる。所定の離散値（２１）が「０」であり、これによって冗長的な重みを簡単に除外することができる場合には有利である。入力量の情報が「０」との乗算によって失われるので、ここでは、値「０」を取る重みが冗長的なものである。ステップ幅（２３）、即ち、２つの所定の離散値間の距離は、任意の大きさに選択することができる。しかしながら、ステップ幅（２３）は、好適には、計算ユニット（１６）において所定の離散値を表すために使用されるビットの数に比例する。
【００２８】
事前分布関数（２０）は、以下においては、ディープニューラルネットワーク（１０）を訓練して、それによって重みの値が所定の離散値を取り、特にそのような所定の離散値だけを取るようにするために使用することができる。
【００２９】
この実施例においては、事前分布関数（２０）が、例示的に以下のように選択される。
【数１】
2021500670.tif 000003
ここで、ｎは、所定の離散値の個数に対応し、ｗは、重みの値であり、また、ｃｋは、それぞれｋ番目の所定の離散値である。
【００３０】
図２Ｂは、事後分布関数（２４）の概略図を示している。事後分布関数（２４）は、特に正規分布であり、本方法の開始時に、特に、ランダムに初期化することができる。事後分布関数（２４）は、重みの値ｗの出現確率ｑ（ｗ）を表す。ディープニューラルネットワーク（１０）の訓練中に、事後分布関数（２４）を適合させることによって、事後分布関数（２４）を、使用されるトレーニング量について、重みの適当な値ｗに近似させることができる。重みの適当な値ｗは、ディープニューラルネットワーク（１０）が、その重みの適当な値ｗに基づいて、所定のタスク、特にオブジェクトの検出をディープニューラルネットワーク（１０）の入力量において確実にこなすことによって特徴付けられている。図２Ｂには、例示的に初期化された事後分布関数（２５ａ）が示されており、この事後分布関数（２５ａ）が、ディープニューラルネットワーク（１０）の訓練中に適合される。この適合された事後分布関数（２５ｂ）は、ディープニューラルネットワーク（１０）を訓練するためのトレーニング量が使用された後の、重みの値ｗの出現確率ｑ（ｗ）を表す。
【００３１】
図３は、ディープニューラルネットワークの作成後には、重みが所定の離散値を含む所定のリスト中の値を有するようになるディープニューラルネットワークを作成するための方法（３０）の実施形態のフローチャートを概略的に示している。
【００３２】
方法（３０）は、ステップ３１で開始される。ステップ３１においては、ディープニューラルネットワーク（１０）にトレーニング入力量が供給される。トレーニング量が供給された後に、任意的選択肢として、重みの事後分布関数（２４）を、特にランダムに初期化することができる。同様に、ステップ３１においては、事前分布関数（２０）を確立することができる。好適には、ディープニューラルネットワーク（１０）の各重みには、事前分布関数（２０）及び事後分布関数（２４）がそれぞれ１つずつ対応付けられる。一例として、事前分布関数（２０）の確立は、一例として類似の適用分野に関する既に訓練されたディープニューラルネットワークから、重みの値の分布が検出され、そこから事前分布関数（２０）が導出されることによって実施することができる。事前分布関数（２０）の導出は、例えば重み値のクラスタ分析を用いて、また、種々の重み値の出現の頻度を考察することによって実施することができる。クラスタ分析に従い求められたクラスタ中心を所定の離散値として利用することができ、また、それらの離散値に、各値の出現の頻度の考察に基づいて、それぞれ１つの出現確率を対応付けることができ、このことは、例えば、事前分布関数によって特徴付けることができる。代替的に、所定の離散値（２１）を含むリストと、それら所定の離散値（２１）の特に仮定又は推定される出現確率ｐ（ｗ）とに基づいて、事前分布関数（２０）を確立することができる。代替的に、事前分布関数（２０）を、例えば上記の（式１）に示したように選択することができ、又は、対数一様分布関数として選択することができる。１つの事前分布関数（２０）を、ディープニューラルネットワーク（１０）の各重みに対して使用することができ、又は、複数の異なる事前分布関数（２０）を、ディープニューラルネットワーク（１０）の重みのそれぞれ１つの選択されたサブセットに対して使用することができる。
【００３３】
ステップ３１が終了すると、続いてステップ３２が行われる。ステップ３２においては、重みと、ディープニューラルネットワーク（１０）の求められた出力量と、ディープニューラルネットワーク（１０）の所定の目標出力量とに依存して、コスト関数の第１の量が求められる。
【００３４】
重みは、本方法のこの実施例においては、分布関数に基づいて表されているので、例えば、第１の量を、交差エントロピー誤差関数ＬＤ，１を用いて求めることができる。
【数２】
2021500670.tif 000004
ただし、Ｄは、トレーニング量を含み、
【数３】
2021500670.tif 000005
は、ｑ（ｗ）と、重みの値ｗを用いて、トレーニング量Ｄの入力データｘが適当な目標出力量ｙを求めた条件付き確率ｐ（ｙ｜ｘ，ｗ）と、に適用される期待値演算子を表す。
【００３５】
付加的に、ステップ３２においては、コスト関数の第１の量について、ペナルティ量が求められる。ここで、ペナルティ量は、所定の離散値のうちの少なくとも１つからの、重みのうちの１つの値の偏差を特徴付ける。この実施例においては、重みが分布関数に基づいて表されるので、ペナルティ量を、特にＫｕｌｌｂａｃｋ−Ｌｅｉｂｌｅｒ（ＫＬ）情報量を用いて求めることができる。これは、例えば、次式で表すことができる。
（式３）  ＬＤ，ＫＬ＝−ＤＬ（ｑ（ｗ）｜｜ｐ（ｗ））
ただし、ＤＬ（ｑ（ｗ）｜｜ｐ（ｗ））は、事後分布関数ｑ（ｗ）と事前分布関数ｐ（ｗ）との間のＫＬ情報量である。
【００３６】
１つのペナルティ量が、例えば算術距離尺度（特にユークリッド距離）などの他の算術演算、所定の離散値に対する重みの値の偏差によって決定される、及び／又は、複数の、特に異なるペナルティ量が求められることも考えられる。
【００３７】
事前分布関数（２０）の選択によっては、ペナルティ量は、分析によって推定される解を有さないが、しかしながら、その解を近似させることはできる。
【００３８】
事前分布関数（２０）が、（式１）による構造を有しており、また、２つの分布関数間の偏差が求められるべき場合には、例えば、ＫＬ情報量を適当に近似させ、偏差を求めることができる。（式１）による事後分布関数ｐ（ｗ）を用いる、（式３）によるＫＬ情報量の近似を、以下のステップによって実施することができる。
【００３９】
まず、対数一様分布関数に対する、事後分布関数（２４）の偏差を、例えば、これら２つの分布関数間のＫＬ情報量を用いて求めることができる。事後分布関数（２４）に対する対数一様分布関数の偏差については、文献から例えばモンテカルロサンプリングなどの各方法が公知であるので、対数一様分布関数を使用することができる。続いて、求められた偏差を、各離散値の位置に移動させることができる。この場合、これらの移動された偏差はそれぞれ、事後分布関数（２４）に対する事前分布関数（２０）の全体の偏差のうちの区分ごとに求められた偏差を表す。その後、移動された各偏差が、重み付け関数、特に所定の離散値の位置についてセンタリングされているガウス分布関数を用いて重み付けされる。個々の偏差が各重み付け関数によって重み付けされた後に、それらの偏差は、所定の重み付けに従い加重合計される。好適には、所定の重み付けに関して、事後分布関数（２４）の期待値が選択される。個々の偏差のこの加重合計は、（式３）による事前分布関数（２０）及び事後分布関数（２４）の近似されたＫＬ情報量に相当する。
【００４０】
ＫＬ情報量の近似をより高い精度で実施するために、例えば、求められたＫＬ情報量の重み付け関数のうちの１つを他の方法により選択することができる。好適には、この重み付け関数は、所定の値、特に「１」から、使用される重み付け関数の合計が減算される構造を有している。
【００４１】
ＫＬ情報量が求められた後に、（式２）による第１の量と（式３）によるペナルティ量との合計が求められる。この合計は、コスト関数を特徴付ける量を表す。しかしながら、（式２）による第１の量及び（式３）によるペナルティ量を、他の算術演算によって相互に結合し得ることも考えられる。複数のペナルティ量が求められた場合には、それらのペナルティ量も同様に、コスト関数を特徴付ける量において考慮することができる。
【００４２】
ステップ３２が、コスト関数を特徴付ける量を求めたことによって終了すると、続いてステップ３３が行われる。ステップ３３においては、ディープニューラルネットワーク（１０）が訓練される。ディープニューラルネットワーク（１０）の訓練においては、重みの値が求められ、それによって、ディープニューラルネットワーク（１０）は、例示的に、そのディープニューラルネットワーク（１０）の入力量においてオブジェクトを検出することができる。この際、コスト関数を特徴付ける量に依存して、重みの値が適合され、その結果、ディープニューラルネットワーク（１０）は、オブジェクトを検出することができる。好適には、最適化法によって、特に最急降下法によって、重みの変化量が求められ、それによって、変化量を考慮した後は、複数の重みのうちの少なくとも１つにおいては、コスト関数を特徴付ける量が最小化される。事後分布関数が、コスト関数を特徴付ける量に依存して適合され、また、重みの値が、適合された事後分布関数（２４）に依存して適合され、特に重みの適合された値として、事後分布関数（２４）の期待値が使用されることによって適合されることも考えられる。事後分布関数（２４）が正規分布である場合には、求められた変化量に依存して、期待値及び正規分布の標準偏差を適合させることができる。期待値及び正規分布の標準偏差の適合によって、事後分布関数（２４）は、ディープニューラルネットワーク（１０）を訓練するためのトレーニング量の使用後に、その重みの適当な値の出現確率を表すことができる。
【００４３】
ステップ３３に続いて、ステップ３４が開始される。ステップ３４においては、重みの値が記憶される。重みのうちの１つの値が、リスト中の所定の離散値に類似する値を有する場合には、離散値のリスト中のその離散値がこの重みの値として記憶される。「類似する」とは、複数の重みのうちの１つの重みの値が、２つの所定の離散値のうちの一方に近い場合には、その重みの値が、より近い離散値に類似していることと解される。複数の重みのうちの１つの重みの値が、一番近い値としてただ１つの所定の離散値だけを有する場合には、その値が、その所定の離散値に類似していると考えられる。
【００４４】
好適には、重みの離散値は、離散値のインデクスの形態で記憶され、その際、離散値のリスト中の各所定の離散値には１つのインデクスが対応付けられている。これによって、この重みの値の記憶を、インデクスの記憶によって実施することができる。従って、高い精度を有する複数の離散値を含むリストだけが記憶されればよく、他方では、複数の重みの値をインデクスの形態で、わずかな必要メモリにより記憶することができる。
【００４５】
方法（３０）の他の実施例においては、ステップ３４の終了後に後続のステップが開始されることも考えられる。この後続のステップにおいては、検出ユニット（１４）を用いて、入力量をディープニューラルネットワーク（１０）に供給することができる。続いて、このステップにおいては、ディープニューラルネットワーク（１０）を用いて、供給された入力量及び重みに依存して、出力量が求められる。制御ユニット（１５）は、この出力量を使用して、制御量を求めることができる。この制御量を用いて、例えばロボット、特に車両を制御することができる。
【００４６】
他の実施例においては、方法（３０）がステップ３４で終了した後に、方法（３０）を周期的に、ステップ３１，３２のうちの一方又はステップ３３において、再び開始することができる。代替的に、所定の中断判定基準が満たされるまで、一連のステップ３１，３２，３３を周期的に実施することもできる。続いて、ステップ３４を実施することができる。
【００４７】
方法（３０）の他の代替的な実施形態においては、代替的に、既に作成されているディープニューラルネットワークに基づいて事後分布関数（２４）の初期化を実施することができる。例えば、既に作成されているディープニューラルネットワークの重みの値の分布を使用して、そこから、それらの重みのうちの１つの重みの値の少なくとも１つの適当な事後分布関数を導出することができる。このことは、方法（３０）の上述のステップの実施後に、この事後分布関数を用いて、特に既に作成されているディープニューラルネットワークを、特に改めて訓練する際に、圧縮されたディープニューラルネットワークを存在させることができるという有利な効果を有している。
【００４８】
図４は、４つの層を有するディープニューラルネットワークを作成するための実施例の方法を使用した際における、全ての重みの値の分布及び時間的な展開の概略図を示している。層のうちの２つは、完全結合層（ｄｅｎｓｅ＿１，ｄｅｎｓｅ＿２）であり、残余の層は、畳み込み層（ｃｏｎｖ＿１，ｃｏｎｖ＿２）である。ここで、上側の４つのグラフ（４０）において、ｘ軸には、各層の重みの値ｗが、また、ｙ軸には、図４において「ｌｏｓｓ」と記したペナルティ量が、それぞれプロットされている。ここで、「ｌｏｓｓ」とは、重みの値ｗに依存する、ペナルティ量の値を表す。３つの所定の離散値（−０．２，０，０．２）それぞれに関して、ステップ３２に従い区分ごとに求められて、重み付け関数を用いて重み付けされたＫＬ情報量（４１）の経過がグレーでそれぞれ表されている。重みの値が所定の離散値（−０．２，０，０．２）から離れるほど、ペナルティ量の値はより大きくなる。同様に、各グラフ（４０，４３）においては、ずらされたＫＬ情報量（４１）の重み付けされた重畳によって、重みの値ｗに沿ったペナルティ量の考えられる経過がグレーで示されている。重みの個々の値は、それぞれ点（４２）によって、上側の４つのグラフ（４０）にプロットされている。これらのグラフは、ディープニューラルネットワーク（１０）の初期化後に記録されたものであって、また、ディープニューラルネットワーク（１０）は、ランダムに初期化されたものであるので、重みの値は、ランダムに分布している。方法が実施された後においては、下側の４つのグラフ（４３）が記録された。図４に表されているように、下側の４つのグラフ（４３）は、重みの値が所定の離散値（−０．２，０，０．２）を取ることを示している。
【図１】
2021500670.tif 000006
【図２Ａ】
2021500670.tif 000007
【図２Ｂ】
2021500670.tif 000008
【図３】
2021500670.tif 000009
【図４】
2021500670.tif 000010
【手続補正書】
【提出日】令和2年4月21日(2020.4.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ディープニューラルネットワーク（１０）を作成するための方法（３０）であって、
前記ディープニューラルネットワーク（１０）は、複数の層（１２）と、重みを有するコネクション（１３）とを有し、作成されたディープニューラルネットワークにおける前記重みは、複数の離散値を含む所定のリスト中の所定の離散値だけを取り得る、方法（３０）において、
−少なくとも１つのトレーニング入力量を前記ディープニューラルネットワーク（１０）に供給するステップと、
−供給された前記トレーニング入力量に依存して求められた、前記ディープニューラルネットワークの出力量の、所定の目標出力量に対する偏差を特徴付ける第１の量を含み、かつ、少なくとも２つの前記所定の離散値のうちの少なくとも１つからの、複数の前記重みのうちの１つの重みの値の偏差を特徴付ける少なくとも１つのペナルティ量を含む、コスト関数を特徴付ける量を求めるステップと、
−前記ディープニューラルネットワーク（１０）の前記トレーニング入力量に依存して、前記ディープニューラルネットワーク（１０）がオブジェクトを検出するように前記ディープニューラルネットワーク（１０）を訓練し、当該ディープニューラルネットワーク（１０）の訓練において、複数の前記重みのうちの１つの重みの少なくとも１つの値を、前記コスト関数を特徴付ける量に依存して適合させるステップと、
−前記所定のリストに含まれている離散値それぞれに前記重みの値をマッピングするステップと、
を備えている方法。
【請求項２】
前記ペナルティ量は、複数の前記重みのうちの１つの重みの事後分布関数（２４）の、当該重みの前記所定の離散値の事前分布関数（２０）からの偏差を特徴付ける、請求項１に記載の方法。
【請求項３】
前記ディープニューラルネットワーク（１０）の前記重みの所定のサブセットに関する前記事前分布関数（２０）を、当該所定のサブセットと関連する、前記ディープニューラルネットワーク（１０）の部分のトポロジに依存して選択する、請求項２に記載の方法。
【請求項４】
ペナルティ関数が、求められた偏差の加重合計を特徴付け、前記所定の複数の離散値の各離散値に１つずつ対応付けられているそれぞれ１つの位置についての前記事前分布関数（２０）に対する、複数の前記重みのうちの１つの重みの事後分布関数（２４）のそれぞれ１つの偏差を求め、求められた当該偏差を、それぞれの所定の離散値に対応付けられている重み付け関数に基づいて重み付けする、請求項２又は３に記載の方法。
【請求項５】
求められた前記偏差は、それぞれ対数一様分布関数に対する前記事後分布関数の求められた偏差であり、当該求められた偏差を、前記少なくとも２つの所定の離散値のうちの１つの離散値の複数の位置のうちのそれぞれ１つに移動させ、それぞれの前記所定の離散値に対応付けられている前記重み付け関数に基づいて重み付けする、請求項４に記載の方法。
【請求項６】
求められた前記偏差のうちの１つを、所定の値に基づいて、それぞれの前記重み付け関数の合計を減算して重み付けする、請求項４又は５に記載の方法。
【請求項７】
前記事前分布関数からの前記事後分布関数の偏差を、前記事後分布関数と前記事前分布関数との間のＫＬ情報量の近似に基づいて求める、請求項２乃至６のいずれか一項に記載の方法。
【請求項８】
前記ディープニューラルネットワークの訓練の際に、前記コスト関数に依存して、複数の前記事後分布関数のうちの１つを適合させ、適合された前記事後分布関数によって特徴付けられる重みを、適合された前記事後分布関数に依存して適合させる、請求項２乃至７のいずれか一項に記載の方法。
【請求項９】
少なくとも２つの前記所定の離散値のうちの１つの離散値は、値「０」である、請求項１乃至８のいずれか一項に記載の方法。
【請求項１０】
前記ディープニューラルネットワーク（１０）の訓練後に、前記ディープニューラルネットワーク（１０）の入力量を求め、訓練された前記ディープニューラルネットワーク（１０）を用いて、求められた前記入力量に依存して、オブジェクトを検出する、請求項１乃至９のいずれか一項に記載の方法。
【請求項１１】
少なくとも半自律的な機械を、検出された前記オブジェクトに依存して制御する、請求項１０に記載の方法。
【請求項１２】
コンピュータにおける実行時に、請求項１乃至１１のいずれか一項に記載の方法の各ステップを実施させるための命令を含むコンピュータプログラム。
【請求項１３】
請求項１２に記載のコンピュータプログラムを含む機械可読メモリ素子（１７）。
【請求項１４】
請求項１３に記載の機械可読メモリ素子（１７）を備えている装置。
【国際調査報告】
2021500670.tif 000011
2021500670.tif 000012
2021500670.tif 000013
2021500670.tif 000014