(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-13
(45)【発行日】2023-11-21
(54)【発明の名称】トレーニング可能なモジュールの高速な量子化されたトレーニング
(51)【国際特許分類】
G06N 3/0495 20230101AFI20231114BHJP
G06N 3/084 20230101ALI20231114BHJP
G06N 3/09 20230101ALI20231114BHJP
【FI】
G06N3/0495
G06N3/084
G06N3/09
(21)【出願番号】P 2022517997
(86)(22)【出願日】2020-08-06
(86)【国際出願番号】 EP2020072158
(87)【国際公開番号】W WO2021052677
(87)【国際公開日】2021-03-25
【審査請求日】2022-03-18
(31)【優先権主張番号】102019214308.3
(32)【優先日】2019-09-19
(33)【優先権主張国・地域又は機関】DE
(73)【特許権者】
【識別番号】390023711
【氏名又は名称】ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
【住所又は居所原語表記】Stuttgart, Germany
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】ルーカス エンデリッヒ
(72)【発明者】
【氏名】ファビアン ティム
【審査官】多賀 実
(56)【参考文献】
【文献】特開2019-032833(JP,A)
【文献】M. Wess, S. M. P. Dinakarrao and A. Jantsch,"Weighted Quantization-Regularization in DNNs for Weight Memory Minimization Toward HW Implementation",IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,米国,IEEE,2018年07月18日,vol. 37, no. 11,pp. 2929-2939,doi: 10.1109/TCAD.2018.2857080
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
パラメータ(12a)のセットにより特徴付けられる内部処理チェーン(12)によって1つ又は複数の入力変数(11)を1つ又は複数の出力変数(13)にマッピングするトレーニング可能なモジュール(1)をトレーニングするための方法(100)であって、
・前記入力変数(11)の学習値(11a)と、これに対応する前記出力変数(13)の学習値(13a)とを含む少なくとも1つの学習データセット(2)が提供されるステップ(110)と、
・離散値(3a~3c)のリスト(3)が提供されるステップ(120)であって、当該離散値(3a~3c)から、トレーニング中に、前記内部処理チェーン(12)を特徴付けるパラメータ(12a)が選択されることが企図されており、前記離散値(3a~3c)は、当該離散値(3a~3c)が所定のビット数Nによって品質を損なうことなく固定小数点数として保存可能となるように選択される、ステップ(120)と、
・前記学習データセット(2)に含まれる前記入力変数(11)の前記学習値(11a)が、前記トレーニング可能なモジュール(1)によって前記出力変数の判定値(13b)にマッピングされるステップ(130)と、
・前記学習データセット(2)に含まれる前記出力変数(13)の前記学習値(13a)と、前記出力変数(13)の前記判定値(13b)との間の偏差と、前記リスト(3)内の少なくとも1つの離散値(3a~3c)と、前記内部処理チェーン(12)の少なくとも1つのパラメータ(12a)との間の偏差とを特徴付ける所定のコスト関数(4)が評価されるステップ(140)と、
・前記コスト関数(4)の値を改善する目的で、前記内部処理チェーン(12)の少なくとも1つのパラメータ(12a)が適合させられるステップ(150)であって、前記パラメータ(12a)の少なくとも1回の適合(150)時に、前記パラメータ(12a)の値範囲及び/又は前記コスト関数(4)の勾配(4d)の値範囲が、前記離散値(3a~3c)を使用して制限される、ステップ(150)と、
を含む方法(100)。
【請求項2】
前記パラメータ(12a)の少なくとも1回の適合(150)時に、
・前記リスト(3)の最小離散値(3a~3c)よりも小さい前記パラメータ(12a)の値が、当該最小離散値(3a~3c)に設定され(151)、及び/又は、
・前記リスト(3)の最大離散値(3a~3c)よりも大きい前記パラメータ(12a)の値が、当該最大離散値(3a~3c)に設定される(152)、
請求項1に記載の方法(100)。
【請求項3】
前記パラメータ(12a)の少なくとも1回の適合(150)時に、前記パラメータ(12a)において変数として表される前記コスト関数(4)の勾配(4d)が、当該コスト関数(4)のより良好な値の方向へ決定され(153)、
前記パラメータ(12a)が、前記勾配(4d)と刻み幅との積の分だけ変更され(154)、
前記勾配の決定(153)時に、
・前記リスト(3)の現在の前記最小離散値(3a~3c)を有する前記パラメータ(12a)に関連する前記勾配(4d)の成分が、非負の値に制限され(153a)、及び/又は、
・前記リスト(3)の現在の前記最大離散値(3a~3c)を有する前記パラメータ(12a)に関連する前記勾配(4d)の成分が、非正の値に制限される(153b)、
請求項
2に記載の方法(100)。
【請求項4】
前記コスト関数(4)は、少なくとも、
・前記学習データセット(2)に含まれる前記出力変数(13)の前記学習値(13a)と、前記出力変数(13)の前記判定値(13b)との間の偏差を特徴付ける第1の寄与(4b)と、
・前記リスト(3)内の少なくとも1つの離散値(3a~3c)と、前記内部処理チェーン(12)の少なくとも1つのパラメータ(12a)との間の偏差を特徴付ける第2の寄与(4c)と
の重み付き和を含み、前記トレーニングが進行するにつれて、前記第1の寄与(4b)の重みが低減させられ、前記第2の寄与(4c)の重みが増加させられる(155)、
請求項1乃至3のいずれか一項に記載の方法(100)。
【請求項5】
前記ビット数Nは、2から7までの間
において選択される、
請求項1乃至4のいずれか一項に記載の方法(100)。
【請求項6】
前記離散値(3a~3c)の前記リスト(3)は、前記トレーニング可能なモジュール(1)の事前トレーニングにより得られた、前記内部処理チェーン(12)の前記パラメータ(12a)の値に基づいて決定され(124)、
前記事前トレーニングは、以下のステップ、即ち、
・少なくとも1つの学習データセット(2)に含まれる前記入力変数(11)の前記学習値(11a)が、前記トレーニング可能なモジュール(1)によって前記出力変数(13)の判定値(13b)にマッピングされるステップ(121)と、
・前記学習データセット(2)に含まれる前記出力変数(13)の前記学習値(13a)と、前記出力変数(13)の前記判定値(13b)との間の偏差を特徴付ける所定の事前トレーニング・コスト関数(4a)が評価されるステップ(122)と、
・前記事前トレーニング・コスト関数(4a)の値を改善する目的で、前記内部処理チェーン(12)の少なくとも1つのパラメータ(12a)が適合させられるステップ(123)と、
を含む、
請求項1乃至5のいずれか一項に記載の方法(100)。
【請求項7】
前記パラメータ(12a)が存在する値範囲が決定され、
前記リスト(3)の離散値(3a~3c)は、当該値範囲に依存して決定される、
請求項6に記載の方法(100)。
【請求項8】
前記コスト関数(4)の値を改善する目的で、前記ビット数N及び/又は前記離散値(3a~3c)の前記リスト(3)が適合させられる(160)、
請求項1乃至7のいずれか一項に記載の方法(100)。
【請求項9】
前記リスト(3)内の前記離散値(3a~3c)は、整数であり、
数値的に隣り合う離散値(3a~3c)同士は、非負の整数の2の累乗である刻み幅Δの分だけそれぞれ異なる、
請求項1乃至8のいずれか一項に記載の方法(100)。
【請求項10】
前記リスト(3)内の前記離散値(3a~3c)は、0の周りに均一に分布している、
請求項1乃至9のいずれか一項に記載の方法(100)。
【請求項11】
前記パラメータ(12a)の各々は、前記リスト(3)からの、各々に最も近い離散値(3a~3c)に設定され(170)、
前記トレーニング可能なモジュール(1)は、前記パラメータ(12a)が前記離散値に設定(170)された後に検証(180)され、
前記検証(180)は、以下のステップ、即ち、
・複数の検証データセット(5)が提供されるステップ(181)であって、前記検証データセット(5)は、前記入力変数(11)の検証値(51)と、これに対応する前記出力変数(13)の検証値(53)とをそれぞれ含み、前記検証データセット(5)の集合は、前記学習データセット(2)の集合とは合同ではない、ステップ(181)と、
・それぞれの検証データセット(5)ごとに、前記入力変数(11)のそれぞれの前記検証値(51)が、前記トレーニング可能なモジュール(1)によって前記出力変数(13)のチェック値(13c)にマッピングされるステップ(182)と、
・前記出力変数(13)の前記検証値(53)と前記チェック値(13c)との間の偏差が、所定の基準(55)を満たしているかどうかがチェックされるステップ(183)と、
を含む、
請求項1乃至10のいずれか一項に記載の方法(100)。
【請求項12】
パラメータ(12a)のセットにより特徴付けられる内部処理チェーン(12)によって1つ又は複数の入力変数(11)を1つ又は複数の出力変数(13)にマッピングするトレーニング可能なモジュール(1)を生成するための方法(200)であって、
・請求項9又は10に記載の方法(100)と共に請求項4に記載の方法(100)を用いてトレーニングすることにより、前記内部処理チェーン(12)の前記パラメータ(12a)のための離散値が決定されるステップ(210)と、
・前記トレーニング可能なモジュール(1)の前記内部処理チェーン(12)が、前記内部処理チェーン(12)を特徴付ける前記パラメータ(12a)を固定小数点演算において描写及び/又は処理するように構成された計算ユニット(6)内に実装されるステップ(220)と、
・前記パラメータ(12a)が、前記計算ユニット(6)において、事前に決定(210)された前記離散値に設定されるステップ(230)と、
を含む方法(200)。
【請求項13】
・トレーニング可能なモジュール(1)が、請求項1乃至11のいずれか一項に記載の方法(100)を用いてトレーニングされるステップと、
・前記トレーニング可能なモジュール(1)に1つ又は複数の入力変数(11)が供給されることにより、前記トレーニング可能なモジュール(1)が動作させられるステップと、
・車両、ロボット、品質管理システム、及び/又は、センサデータに基づいて領域を監視するためのシステムが、前記トレーニング可能なモジュール(1)によって供給される前記出力変数(13)に依存して制御されるステップと、
を含む方法。
【請求項14】
パラメータ(12a)のセットにより特徴付けられかつ計算ユニット(6)内に実装された内部処理チェーン(12)によって1つ又は複数の入力変数(11)を1つ又は複数の出力変数(13)にマッピングするためのトレーニング可能なモジュール(1)であって、
前記トレーニング可能なモジュール(1)は、請求項1乃至11のいずれか一項に記載の方法(100)を用いてトレーニングされており、
前記計算ユニット(6)は、前記パラメータ(12a)を固定小数点演算において描写及び/又は処理するように構成されている、
トレーニング可能なモジュール(1)。
【請求項15】
前記トレーニング可能なモジュール(1)は、少なくとも1つのセンサによって記録された物理的な測定データのための分類器及び/又は回帰器として構成されている、
請求項14に記載のトレーニング可能なモジュール(1)。
【請求項16】
1つ又は複数のコンピュータ上において実行されたときに、前記1つ又は複数のコンピュータに請求項1乃至13のいずれか一項に記載の方法(100,200)を実施させるための機械可読命令を含むコンピュータプログラム。
【請求項17】
請求項16に記載のコンピュータプログラムを
記憶した機械可読データ担体。
【請求項18】
請求項16に記載のコンピュータプログラムを
記憶した、及び/又は、
請求項17に記載の機械可読データ担体を有する、コンピュータ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特に、車両用制御装置又は他の組込システムにおいて使用するためのトレーニング可能なモジュールのトレーニングに関する。
【背景技術】
【0002】
背景技術
数学的に困難を伴ってしかモデル化することができない、又は、数学的に完全に一括してモデル化することができない要求の厳しい多数の分類タスク及び制御タスクのために、例えば、ニューラルネットワークを含むトレーニング可能なモジュールが使用される。人工ニューラルネットワークANNは、通常、ニューロンを有する複数の層を含む処理チェーンである。それぞれのニューロンは、活性化のために複数の入力変数を重みと組み合わせる。層において形成された活性化、又は、この活性化からさらなる処理によって決定された結果は、ANNが完全に走破されて1つ又は複数の出力変数が発生するまで、それぞれその次に隣接する層へと供給される。即ち、ANNは、内部処理チェーンに従って入力変数の値を出力変数の値にマッピングする。
【0003】
重み、活性化及びこれらから決定される結果は、通常、浮動小数点数(英語の“float”)である。トレーニング時及び後々のANNの使用時に必要とされる多数の浮動小数点演算を効率的に実行することができるようにするために、多くの場合、グラフィックプロセッサ(GPU)が使用される。この場合、典型的には、デスクトップGPUにおいて標準的に構築されているものよりも多くのGPUメインメモリが必要となる。
【0004】
国際公開第2018/158043号は、ANNにおいて数値を符号化するための方法を開示しており、ここでは、最上位ビットが、ゼロの値を符号化するために特別に確保されている。このようにして、値がゼロであるかどうかを特に迅速にチェックすることが可能となっている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【課題を解決するための手段】
【0006】
発明の開示
本発明の枠内において、トレーニング可能なモジュールをトレーニングするための方法が開発された。トレーニング可能なモジュールは、内部処理チェーンによって1つ又は複数の入力変数を1つ又は複数の出力変数にマッピングする。内部処理チェーンは、パラメータのセットによって特徴付けられている。
【0007】
トレーニング可能なモジュールとは、特に、適合可能なパラメータを用いてパラメータ化された関数を、理想的には大きい一般化能力によって具現化するモジュールであるとみなされる。特に、学習入力変数がモジュールに入力されると、これに対応する学習出力変数の値が可能な限り良好に再現されるように、トレーニング可能なモジュールのトレーニング時に、パラメータを適合させることができる。
【0008】
内部処理チェーンは、特に、例えば、人工ニューラルネットワークANNを含むものとしてもよく、又は、ANNであるものとしてもよい。その場合、パラメータは、重みを含み得るものであり、これらの重みを用いてニューロンは、それぞれ複数の入力変数を活性化のために組み合わせる。
【0009】
当該方法においては、入力変数の学習値と、これに対応する出力変数の学習値とを含む、少なくとも1つの学習データセットが提供される。典型的には、トレーニング可能なモジュールが取り扱うべき、入力側において提示された状況の多数のバリエーションを記録した多数の学習データセットが、トレーニングの過程において提供される。
【0010】
離散値のリストが提供され、当該離散値から、トレーニング中に、内部処理チェーンを特徴付けるパラメータが選択されることが企図されている。これらの離散値は、当該離散値が所定のビット数Nによって品質を損なうことなく固定小数点数として保存可能となるように選択されている。
【0011】
モデルパラメータの離散化は、一般的に、ANNのメモリ要件の削減をもたらす。これらの離散値をさらに損失なく固定小数点数として表現することができると、固定小数点ハードウェア上における効率的な実装を実現することが可能である。このような固定小数点ハードウェアは、浮動小数点計算用のハードウェアよりも格段により安価であり、よりエネルギ効率的であり、かつ、より省スペースである。
【0012】
離散値に対する所期の規定は、トレーニング可能なモジュールのトレーニングに最初から組み込まれる。このことは、即ち、このトレーニングが、入力変数の学習値を出力変数の学習値に可能な限り良好にマッピングすべきであるという要求と、パラメータが離散値のみを取るべきであるという要求とを、同程度に考慮しているということを意味する。
【0013】
この目的のために、学習データセットに含まれる入力変数の学習値が、トレーニング可能なモジュールによって出力変数の判定値にマッピングされる。そして、所定のコスト関数が評価され、このコスト関数は、学習データセットに含まれる出力変数の学習値と、出力変数の判定値との間の偏差と、リスト内の少なくとも1つの離散値と、内部処理チェーンの少なくとも1つのパラメータとの間の偏差とを特徴付ける。コスト関数の値を改善する目的で、内部処理チェーンの少なくとも1つのパラメータが適合させられる。パラメータの少なくとも1回の適合時に、パラメータの値範囲及び/又はコスト関数の勾配の値範囲が、離散値を使用して制限される。
【0014】
コスト関数は、例えば、合計であるものとしてよい。この合計では、第1の被加数は、学習データセットに含まれる出力変数の学習値と、出力変数の判定値との間の偏差を特徴付けることができる。第2の被加数は、リスト内の少なくとも1つの離散値と、内部処理チェーンの少なくとも1つのパラメータとの間の偏差を特徴付ける少なくとも1つのペナルティ変数を含み得る。任意選択的に、合計を重み付けするものとしてもよい。重み付けは、特に、それぞれの層に対して個々に実施可能である。例えば、まさにその層のパラメータの数に反比例するような重み付けを使用することができる。
【0015】
内部処理チェーンの少なくとも1つのパラメータの適合は、特に、コスト関数の値を最適化すること、例えば、最小化することなどを目的とすることができる。その場合、この最適化は、学習データセットに含まれる知識の最適な再現と、パラメータの所期の離散化の遵守との両方に鑑みての同時の改善を表す。
【0016】
最適化のために、例えば、勾配降下法又は任意の他の最適化法を使用することができ、これらの方法は、トレーニングのさらなる過程においてコスト関数の値を改善することが見込まれる1つ又は複数のパラメータの変更を、コスト関数の値に基づいて提案する。この文脈における「見込まれる」とは、必ずしも総てのトレーニングステップにおいてコスト関数の値の改善が生じるとは限らないことを意味する。トレーニングの過程においては、その代わりにコスト関数の値を悪化させてしまう「間違い」も発生する可能性さえある。最適化法は、最初の悪化がそれでもなお最終的には改善に変化するように、これらの「間違い」から学習する。
【0017】
ビット数Nは、可能な離散値の数を最大2Nに規定する。本発明者らの実験においては、2から7までの間、好ましくは2から5までの間、非常に特に好ましくは2から3までの間のNの値が、特に有利であることが判明した。まさに最後に挙げた最も狭い範囲は、直感に反するものである。なぜなら、一見したところ、この離散化が、トレーニング可能なモジュールによって全体として供給される出力変数にも伝播し、これによって、この出力変数が格段に粗くなってしまうという印象が生じるからである。しかしながら、このことは、実際の適用には当てはまらない。というのも、トレーニング可能なモジュールは、手元にある多数のパラメータを用いて、学習データセットの形式により提示された知識を差別化してマッピングすることが、依然として十分に可能であるからである。
【0018】
N=2の場合には、対称な量子化又は離散化を選択すること、即ち、離散値の数を2N-1=3に低減することがさらに有利であり得る。その場合、{-1,0,1}へのスケーリングが可能である。従って、さらに必要なことは、活性化を計算するための加算だけでよくなる。スケーリングは、2の累乗(2-f)であるので、その後、小数点をそれぞれのスケーリング係数fの分だけシフトさせるだけでよい。従って、全体として浮動小数点演算がもはや不要となり、さらに必要なことは、「低コストの」加算と、ビット単位のシフトだけでよくなる。
【0019】
ビット数Nは、トレーニング可能なモジュールのための同一の基本アーキテクチャのトレーニングを複数の異なる用途に適合させるための、調整ねじとして利用可能である。基本アーキテクチャが同一のままである場合、これにより、複数の異なる用途を、共通部品率の高いハードウェア上に実装することが可能となり、これ自体によって、生産がより簡単かつより安価になる。
【0020】
離散値のリストは、任意のソースに由来することが可能である。例えば、トレーニング可能なモジュールが動作させられるべき用途に関する事前知識に基づいて、離散値のリストを規定することが可能である。しかしながら、そのような事前知識が不完全であり又は利用することができない場合には、離散値のリストの全部又は一部を自動的に規定することも可能である。
【0021】
特に有利な実施形態においては、離散値のリストは、トレーニング可能なモジュールの事前トレーニングにより得られた、内部処理チェーンのパラメータの値に基づいて決定される。この事前トレーニングは、特に、パラメータの浮動小数点数を使用して実施可能であり、即ち、パラメータが取ることができる値の量子化又はその他の制限を行うことなく実施可能である。
【0022】
事前トレーニング時には、少なくとも1つの学習データセットに含まれる入力変数の学習値が、トレーニング可能なモジュールによって出力変数の判定値にマッピングされる。所定の事前トレーニング・コスト関数が評価され、この事前トレーニング・コスト関数は、学習データセットに含まれる出力変数の学習値と、出力変数の判定値との間の偏差を特徴付ける。事前トレーニング・コスト関数の値を改善する目的で、特に最適化する目的で、内部処理チェーンの少なくとも1つのパラメータが適合させられる。
【0023】
事前トレーニング・コスト関数は、特に、例えば、上述した所定のコスト関数と同様に、学習データセットに含まれる出力変数の学習値と、出力変数の判定値との間の偏差を特徴付けることができる。即ち、この所定のコスト関数が合計である上記の例においては、学習データセットに含まれる出力変数の学習値と、出力変数の判定値との間の偏差を特徴付ける被加数を、例えば、変更することなく、事前トレーニング・コスト関数として引き継ぐことができる。
【0024】
しかしながら、事前トレーニングの枠内においては、パラメータが存在する値範囲に関して粗い手掛かりだけを取得すればよいので、このことは、必ずしも必要というわけではない。例えば、上記の被加数の修正を使用することもでき、又は、完全に異なる代替的な事前トレーニング・コスト関数を、例えば、そのような代替的な事前トレーニング・コスト関数がより迅速に評価可能であるという理由で使用することもできる。
【0025】
例えば、パラメータが存在する値範囲を決定することができる。リストの離散値は、当該値範囲に依存して決定可能である。これらの離散値は、例えば、この範囲にわたって等距離で分布することが可能であり、及び/又は、この範囲においてパラメータの値の集積点に基づいて規定することが可能である。
【0026】
これに代えて又はこれと組み合わせて、コスト関数の値を改善する目的で、特に最適化する目的で、ビット数N及び/又は離散値のリストを、本来のトレーニング時にも適合させることができる。従って、この適合を、トレーニング可能なモジュールの通常のトレーニングに組み込むことができる。コスト関数が、トレーニング可能なモジュールが入力変数の学習値を処理する際に生成する誤差と、パラメータの離散化誤差との両方に依存している場合には、両方の種類の誤差が、コスト関数の値の悪化の原因となっている可能性がある。トレーニング可能なモジュールが、出力変数の学習値に対する過大な偏差を修正することと同様に、離散化誤差を修正することを自己学習することができると首尾一貫したものとなる。
【0027】
さらなる特に有利な実施形態においては、リスト内の離散値は、0の周りに均一に即ち対称に分布している。このことは、即ち、複数の値が0の周りに一定の間隔(刻み幅)Δで分布していることを意味し、ここで、刻み幅Δは、2の任意の累乗である。
【0028】
このような形式の離散値は、このような値を用いた算術演算が、固定小数点ハードウェア上において特に簡単に実装可能であるという点において、優れている。刻み幅Δにおけるスケーリングは、簡単なビットシフト演算として実装可能である。
【0029】
例えば、リスト内の離散値は、整数であるものとしてよい。その場合、特に、例えば、数値的に隣り合う離散値同士は、非負の整数の2の累乗である刻み幅Δの分だけそれぞれ異なるものとしてもよい。
【0030】
トレーニングの過程において、パラメータは、典型的に、コスト関数の値が最適となるようなパラメータのセットに最終的に到達するために、多数回の更新ステップにより漸次的に適合させられる。特に有利な実施形態においては、パラメータの少なくとも1回の適合時に、
・リストの最小離散値よりも小さいパラメータの値が、当該最小離散値に設定され、及び/又は、
・リストの最大離散値よりも大きいパラメータの値が、当該最大離散値に設定される。
【0031】
これによって、驚くべきことに、トレーニングがさらにより良好な結果へと収束し、さらに、格段により高速に収束することが判明した。
【0032】
その理由は、トレーニング中に、かつ、最終結果においても、リストの最小離散値とリストの最大離散値との間の間隔の外側にあるパラメータの値が、リストの最小値及び最大値を作為的に優遇するようにすることができることにある。例えば、出力変数の判定値は、出力変数の学習値と可能な限り一致しているべきであるという観点から、トレーニングは、間隔の外側に遠く離れたパラメータの値を生成する可能性がある。これにより、パラメータを、リストの最小値又は最大値に「固定」することができる。これにより、非常に大きい輝度値をもはや区別することができず、その代わりに自身の最大飽和値のみを出力することとなるイメージセンサの過負荷時と同様に、トレーニング時に取得した情報の一部が失われる可能性がある。この傾向は、許可された間隔の外側に位置するパラメータに、対応する間隔限界が課されることによって打ち消される。このことは、特に有利には、トレーニングの枠内においてパラメータが適合させられる度に実施可能である。その場合、ANNをトレーニングして、このトレーニングされたANNが、検証データを用いたテストの際に所定の精度を達成するようにするために必要とされるトレーニングエポックが、全体として格段に少なくなる。
【0033】
この効果は、パラメータが、まさにトレーニングの開始時に、典型的にはさらに大幅に変化するという事情によって増幅される。例えば、あるパラメータが、ある1つのトレーニングエポックにおいて負の値を有し、後々のトレーニングエポックにおいて正の値に変化する可能性がある。例えば、パラメータのための許可された離散値が-1,0,+1であり、かつ、最初のトレーニングエポックにおいてパラメータが-10に規定されており、その一方で、後々のトレーニングエポックにおいて+2の方向へ向かう傾向にある場合には、離散化に関連した-10への強力な負の振れにより、トレンド反転が完全に「減衰」される可能性がある。このことは、負の振れを-1で切り捨てることによって回避される。
【0034】
トレーニング中に、パラメータを許可された間隔に制限することは、トレーニングの最終結果として決定されるパラメータに全く反映されない中間結果を計算するために消費される計算時間が少なくなるというさらなる効果を有する。例えば、パラメータのために許可されている離散値が-1,0,+1である場合には、このパラメータを複数回のステップで-3、次に-3.141、最後に-3.14159に最適化することは無駄である。パラメータを早期に制限することにより、検索空間が最初から最終的に必要とされるものに制限される。この効果は、元々非常に大きい検索空間(例えば、使用可能な文字列全体から約15文字)を、ユーザの悪癖に関する事前知識によって、例えば「小文字6文字」に制限することができると、パスワードを格段に高速に解読することが可能となるという事実に、ある程度匹敵する。ここで、解空間は、トレーニング後にパラメータが取ることができる離散値のリストによって与えられている。従って、トレーニング中にこの解空間から遠ざかることは、非効率的である。
【0035】
本発明者らによる実験においては、トレーニングエポックの節約と、それぞれのエポック内における計算労力の節約とを組み合わせることにより、トレーニングのために全体として必要とされる計算時間を最大70%削減することができた。
【0036】
さらなる特に有利な実施形態も、同一の方向へ進む。ここでは、パラメータの少なくとも1回の適合時に、パラメータにおいて変数として表されるコスト関数の勾配が、当該コスト関数のより良好な値の方向へ決定される。パラメータは、勾配と刻み幅との積の分だけ変更される(勾配降下法又は勾配上昇法)。重要な新しいこととして、勾配の決定時に、
・リストの現在の最小離散値を有するパラメータに関連する勾配の成分が、非負の値に制限され、及び/又は、
・リストの現在の最大離散値を有するパラメータに関連する勾配の成分が、非正の値に制限される。
【0037】
特に、勾配の成分を計算するためのアルゴリズムは、これらの成分がそれぞれ望ましくない符号を有することが明らかになった時点で終了することが可能になっている。パラメータのために離散値-1,0,+1のみが許可されている上記の例においては、値-1から開始すると、このパラメータが、正の方向にのみ変化し得ることは最初から明らかである。このパラメータに関して勾配が負の方向を指している場合には、この変化を実施することはできず、その場合には、この変化を複数回のステップで-2.7、次に-2.718、最後に-2.71828に精密化することも無意味である。この状況は、試験規則が最短期間及び最長期間を指定するような口頭試験に、ある程度類似している。最短期間の後にもう“Mangelhaft(不十分)”が明らかである場合には、試験が終了されて“Mangelhaft(不十分)”が宣告される。これに対して、最長時間は、“Sehr gut(非常に良好)”と“Mit Auszeichnung(最高)”との間の微妙な差異を計算するために利用される。
【0038】
さらなる特に有利な実施形態においては、コスト関数は、
・学習データセットに含まれる出力変数の学習値と、出力変数の判定値との間の偏差を特徴付ける第1の寄与と、
・リスト内の少なくとも1つの離散値と、内部処理チェーンの少なくとも1つのパラメータとの間の偏差を特徴付ける第2の寄与と
の重み付き和を含む。トレーニングが進行するにつれて、第1の寄与の重みが低減させられ、第2の寄与の重みが増加させられる。特に、例えば、この重み付けの変更が実施される速度又は比率は、トレーニングが進行するにつれて指数関数的に増加する可能性がある。
【0039】
パラメータの他の正則化と同様に、パラメータの値の離散化により、ANNのいわゆるモデル容量が大幅に縮小されることが判明した。モデル容量は、パラメータの値の可能な組合せの数に依存しており、即ち、パラメータによって形成される空間の次元のための尺度である。
【0040】
モデル容量が大きければ大きいほど、学習出力変数を可能な限り良好に再現することに鑑みてANNをトレーニングする際に、より多くの微妙な差異を処理することができ、トレーニングの完了後に達成される精度がより良好になる。しかしながら、モデル容量が大き過ぎると、トレーニングが「過剰適合」する傾向が生じる可能性があり、これは、実質的に、トレーニングデータによって表現された状況の「暗記」である。この「暗記された」知識を、トレーニング中に発生しなかった新しい状況へと一般化することは困難である。即ち、トレーニング中のモデル容量の制限は、特に、いわばトレーニングが完成される進行した段階においてトレーニングデータへの過度の適合を回避することができ、従って、非常に有意義である。この制限は、過少なモデル容量のために、ANNが、発生した問題の複雑さにもはや対処することができなくなった時点においてのみ、自身の実際的な限界を見出す。
【0041】
ここで、トレーニングがまず始めに大きいモデル容量を用いて開始され、後々、離散化に重点を置く方向に向けられることにより、トレーニングの最終結果は、一方では学習タスクの意味における収束と、他方では離散化とを有意義に組み合わせたものとなることが可能である。まず始めに大きいモデル容量を用いて、ここでは、第1の重要な学習の成功を可能な限り早期に達成するために、ANNの学習タスクに重点が置かれる。このことによって最終結果の精度が改善されることを、人間の学習プロセスとの比較が示している。即ち、学問の開始時に大きいモデル容量を用いて自身の専門分野の基礎における重要な学習の成功を達成した者は、後々、その学習の成功を何度も繰り返し利用することができ、最後には良好な結末を取得する。しかしながら、既にこの段階において少な過ぎるモデル容量に苦労している者は、常に遅れをとることになる。
【0042】
モデル容量を後々に縮小することにより、初めの学習の成功は、いわば「保存」され、トレーニングは、離散化の目標へと向けられる。第1段階では専ら所期の用途のみに焦点が当てられ、第2段階では専ら離散化のみに焦点が当てられる厳密な2段階式のトレーニングとは異なり、それぞれ他方の目標は、完全には見失われない。このようにして、離散化に関するトレーニングが、所期の用途に関して事前に取得した学習の成功を過度に犠牲にするということが、特に回避される。
【0043】
さらなる特に有利な実施形態においては、パラメータの各々は、リストからの、各々に最も近い離散値に設定される。このことは、トレーニング中及び/又はトレーニング終了後の任意の時点において、1回又は複数回実施可能である。特に、トレーニング中に1回又は複数回、離散値に設定することにより、トレーニング可能なモジュールは、離散化に伴って生じる制限に可能な限り最良に対処し、それでもなお最高の精度を提供することを学習することができる。
【0044】
さらなる特に有利な実施形態においては、トレーニング可能なモジュールは、パラメータが離散値に設定された後に検証される。これにより、トレーニング可能なモジュールが、学習データセットに含まれる知識を本当に「理解」して、新しい状況に適用することができるかどうか、又は、トレーニング可能なモジュールが、この知識を、まさに既知の状況への準備が整えられるように「暗記」しただけであるかどうかがチェックされる。
【0045】
検証のために、複数の検証データセットが提供され、これらの検証データセットは、入力変数の検証値と、これに対応する出力変数の検証値とをそれぞれ含む。検証データセットの集合は、学習データセットの集合とは合同ではない。特に、検証データセットの集合は、有利には、学習データセットの集合とは素であるものとしてよい。
【0046】
それぞれの検証データセットごとに、入力変数のそれぞれの検証値が、トレーニング可能なモジュールによって出力変数のチェック値にマッピングされる。出力変数の検証値とチェック値との間の偏差が、所定の基準を満たしているかどうかがチェックされる。そのような基準は、例えば、総ての検証データセットにわたる偏差の平均、例えば絶対平均又は二乗平均が所定の閾値を下回ることであるものとしてよい。これに代えて又はこれと組み合わせて、例えば、検証データセットの集合に対する最大偏差が所定の閾値を下回っているかどうかをチェックするものとしてもよい。それぞれの基準が満たされている場合には、トレーニング可能なモジュールが、現実の使用に適していると判断することができる。
【0047】
パラメータを、検証前にリストからの離散値に設定することは、これによって、トレーニング可能なモジュールを、後々にハードウェア上においても実装されるまさにその状態においてチェックすることができるという利点を有する。例えば、固定小数点演算用に設計されたハードウェア上において実装することにより、そのハードウェアの挙動に関してそれ以上何ら変更が行われなくなる。このことは、即ち、後々にトレーニング可能なモジュールと共に最終製品に構築されるハードウェア上において検証を実施する必要がなくなり、その代わりに、例えばGPUのような、トレーニング可能なモジュールの開発及びトレーニングのために使用されるより高速なハードウェア上において検証を実施することが可能となることを意味する。
【0048】
このことは、安全性が重要となる用途に関連して、例えば、陸上、水上及び空中における車両の制御及び監視に関連して、特に有利である。それぞれの公共交通機関への認可のために、非常に広範囲の検証が条件となることがよくある。この検証は、今や、ハードウェア上における実装によって無効になることもなくなり、又は、その後の製品開発の過程におけるハードウェアプラットフォームの後からの変更によって無効になることもなくなる。
【0049】
トレーニングのために使用されるコスト関数は、例えば、
【数1】
の形式を有することができ、ここで、Lは、学習データセットに含まれる出力変数の学習値と、出力変数の判定値との間の偏差のみを特徴付ける成分であり、L
Rは、リスト内の少なくとも1つの離散値と、内部処理チェーンの少なくとも1つのパラメータとの間の偏差のみを特徴付ける成分である。
【0050】
ここで、トレーニング可能なモジュールの内部処理チェーンが、例えば、L層からなるニューラルネットワークANNを含み、かつ、それぞれの層が、その層の添字lに応じた数M
(l)の重みを含む場合には、離散化されるべきパラメータは、例えば、総ての重み
【数2】
を含み得る。
その場合、コスト関数の成分L
Rは、例えば、
【数3】
の形式を有することができ、ここで、減数の添字qは、対応する重みのそれぞれ最も近い離散値を表す。パラメータλは、成分L
Rが成分Lに対してどのくらい強力に重み付けされるかを決定する。このパラメータλは、特に、上述のように、学習タスクと離散化との間の調整ねじとして使用可能である。上述のように、λは、トレーニング中に変化する可能性があり、特に、例えば、トレーニングが進行するにつれて指数関数的に増加する可能性がある。
【0051】
重みによるこの式の偏微分は、
【数4】
となる。このことは、即ち、重み
【数5】
が強力に最適化されればされるほど、それぞれの量子化誤差が大きくなるということを意味する。Δ
(l)は、層lのための量子化のそれぞれの刻み幅である。重み
【数6】
は、ANNのトレーニングの開始時には、通常、ランダムな浮動小数点値によって初期化されるので、ケース分析における最初のケースは、実質的に無視することができる。そのような値が正確に1つの量子化レベルに該当する確率は、ゼロに近づく。
【0052】
本発明は、トレーニング可能なモジュールを生成するための方法にも関し、トレーニング可能なモジュールは、内部処理チェーンによって1つ又は複数の入力変数を1つ又は複数の出力変数にマッピングする。内部処理チェーンは、パラメータのセットによって特徴付けられる。
【0053】
当該方法においては、まず始めに上記の方法を用いて、トレーニング可能なモジュールの内部処理チェーンのパラメータのための離散値が決定され、任意選択的に、その後、トレーニング可能なモジュールが検証される。その後、トレーニング可能なモジュールの内部処理チェーンは、内部処理チェーンを特徴付けるパラメータを固定小数点演算において描写及び/又は処理するように構成された計算ユニット内に実装される。この場合、実装は、特に、適当なハードウェアを提供することを含み得る。パラメータは、計算ユニットにおいて、事前に決定された離散値に設定される。
【0054】
上述のように、当該方法においては、トレーニング可能なモジュールの本来の開発と、場合によって行われる検証とのために、高速な浮動小数点ハードウェアを利用することができる。その後、トレーニング可能なモジュールを、その挙動に関してこれ以上何ら変更が行われることなく、固定小数点ハードウェア上に実装することができる。トレーニング可能なモジュールの動作時の推論では、固定小数点演算により、同等のコスト及び/又は同等のエネルギ消費を有するハードウェア上における実装と比較して格別な実行時間の利点がもたらされる。
【0055】
従って、本発明は、さらなる方法にも関する。当該方法においては、トレーニング可能なモジュールが、まず始めに、トレーニングのための上記の方法を用いてトレーニングされる。その後、トレーニング可能なモジュールに1つ又は複数の入力変数が供給されることにより、トレーニング可能なモジュールが動作させられる。車両、ロボット、品質管理システム、及び/又は、センサデータに基づいて領域を監視するためのシステムが、トレーニング可能なモジュールによって供給される出力変数に依存して制御される。
【0056】
当該方法を使用したということは、特に、完成されたトレーニング可能なモジュールにおいて、この完成したトレーニング可能なモジュールがパラメータを描写及び/又は処理するための固定小数点ハードウェアを有するという「指紋」を残すことができる。従って、本発明は、内部処理チェーンにより1つ又は複数の入力変数を1つ又は複数の出力変数にマッピングするための、トレーニング可能なモジュールにも関し、内部処理チェーンは、パラメータのセットによって特徴付けられていて、かつ、計算ユニット内に実装されている。計算ユニットは、パラメータを固定小数点演算において描写及び/又は処理するように構成されている。
【0057】
上述のように、そのようなトレーニング可能なモジュールは、特に、車両用制御装置内及び他の組込システム内に構築することが可能である。まさにこのような装置においては、トレーニング可能なモジュールが確実に機能する必要性があるにもかかわらず、使用されるべきハードウェアに関する高いコスト圧力が存在する。例えば、ANNの開発のために使用される一般的なGPUは、数千ユーロの費用がかかる可能性があり、また、例えば、自動車の車載電源網では調達することが困難な電力を必要とする可能性がある。固定小数点ハードウェアは、格段により安価であると同時に、格段によりエネルギ効率的かつより省スペースである。従って、本発明は、上記のトレーニング可能なモジュールを有する、及び/又は、上記の方法のうちの1つを用いてトレーニング及び/又は生成されたその他のトレーニング可能なモジュールを有する、車両用制御装置及び/又は組込システムにも関する。
【0058】
トレーニング可能なモジュールは、特に、少なくとも1つのセンサによって記録された物理的な測定データのための分類器及び/又は回帰器として構成することが可能である。その場合、限られたハードウェア、限られたエネルギ量、又は、限られた設置スペースしか利用することができないような用途であっても、人工知能によって、物理的な測定データの、多数の状況に一般化することができる説得力のある評価が可能となる。センサは、例えば、イメージングセンサ、レーダセンサ、ライダセンサ又は超音波センサであるものとしてよい。
【0059】
上記の方法は、全体的又は部分的にコンピュータ実装可能である。上記の方法は、例えば、トレーニング可能なモジュールのためのコンピュータ実装された開発環境の一部であるものとしてよい。トレーニング可能なモジュールの内部処理チェーンの、その生成の枠内における実装も、例えば、自動生産によってコンピュータ実装可能である。従って、本発明は、1つ又は複数のコンピュータ上において実行されたときに、1つ又は複数のコンピュータに上記の方法のうちの1つを実施させるための機械可読命令を含むコンピュータプログラムにも関する。本発明は、コンピュータプログラムを含む機械可読データ担体及び/又はダウンロード製品にも関する。
【0060】
本発明はさらに、上記のコンピュータプログラムを含む、及び/又は、上記の機械可読データ担体及び/又はダウンロード製品を有する、コンピュータ又はその他の計算ユニットにも関する。コンピュータ又は計算ユニットを、その他の手法により、上記の方法のうちの1つを実施するように特有に構成するものとしてもよい。このような特有の構成は、例えば、1つ又は複数のフィールドプログラマブルゲートアレイ(FPGA)の形態において、及び/又は、1つ又は複数の特定用途向け集積回路(ASIC)の形態において具現化可能である。
【0061】
本発明を改善するさらなる手段は、図面に基づいた本発明の好ましい実施例の説明と共に、以下により詳細に示される。
【図面の簡単な説明】
【0062】
【
図1】トレーニング可能なモジュール1をトレーニングするための方法100の実施例を示す図である。
【
図2】トレーニング可能なモジュール1を生成するための方法200の実施例を示す図である。
【
図3】トレーニング可能なモジュール1の実施例を示す図である。
【
図4】トレーニング可能なモジュール1の内部処理チェーン12のパラメータ12aに対する、方法100の例示的な定性的影響を示す図である。
【
図5】方法100の過程におけるパラメータ12aの例示的な発展を示す図である。
【
図6】それぞれの更新ステップにおいてパラメータ12aの値範囲を制限した場合の、パラメータ12aの発展に関するさらなる例を示す図である。
【
図7】人工ニューラルネットワークの複数の異なる層a~dにおけるパラメータ12aの収束の例示的な推移を示す図である。
【
図8】それぞれの更新ステップにおいてパラメータ12aの値範囲を制限した場合(線図(a))及び制限しない場合(線図(b))の、パラメータ12aの収束に関するさらなる例を示す図である。
【発明を実施するための形態】
【0063】
図1は、トレーニング可能なモジュール1をトレーニングするための方法100の実施例のフローチャートである。ステップ110において、トレーニング可能なモジュール1の入力変数11の学習値11aと、トレーニング可能なモジュール1の出力変数13の学習値13aとを含む少なくとも1つの学習データセット2が提供される。さらに、ステップ120において、離散値3a~3cのリスト3が提供され、当該離散値3a~3cから、トレーニング可能なモジュール1の内部処理チェーン12を特徴付けるパラメータ12aが選択されることが企図されている。これらの離散値3a~3cは、当該離散値3a~3cが所定のビット数Nによって品質を損なうことなく固定小数点数として保存可能となるように選択されている。
【0064】
離散値3a~3cのリスト3は、例えば、トレーニング可能なモジュール1の事前トレーニングによって決定可能である。この事前トレーニングも、ステップ110において提供された学習データセット2を利用することができる。
【0065】
図1のボックス120の内部に示されている事前トレーニングの例において、ブロック121によれば、入力変数11の学習値11aが、トレーニング可能なモジュール1によって出力変数の判定値13bにマッピングされる。ブロック122によれば、事前トレーニング・コスト関数4aが評価され、この事前トレーニング・コスト関数4aは、学習データセット2に含まれる出力変数13の学習値13aと、出力変数の判定値13bとの間の偏差を特徴付ける。ブロック123によれば、このようにして決定された事前トレーニング・コスト関数4aの値に依存して、トレーニング可能なモジュール1の内部処理チェーン12の少なくとも1つのパラメータ12aが適合させられる。
【0066】
ブロック124によれば、このようにして得られたパラメータ12aの値から、最終的に、離散値3a~3cのリスト3を決定することができる。例えば、パラメータ12aが存在する間隔を決定することができ、この間隔にわたって離散値3a~3cを、例えば、等距離に分布させることができる。
【0067】
ステップ130において、トレーニング可能なモジュール1の本来のトレーニングが開始する。ここで再び、学習値11aが、トレーニング可能なモジュール1によって出力変数の判定値13bにマッピングされる。しかしながら、その後のステップ140において評価されるコスト関数4は、任意選択肢の事前トレーニングにおける事前トレーニング・コスト関数4aとは異なり、学習値13aと判定値13bとの間の偏差に依存するだけでなく、さらに、リスト3内の少なくとも1つの離散値3a~3cと、内部処理チェーン12の少なくとも1つのパラメータ12aとの間の偏差も特徴付ける。ステップ150において、このようにして決定されたコスト関数4の値に依存して、内部処理チェーン12の少なくとも1つのパラメータ12aが適合させられる。
【0068】
通常、多数の学習データセット2が使用され、これらの学習データセット2が、多数のエポックで何度も繰り返しトレーニング可能なモジュール1によって処理される。内部処理チェーン12のパラメータ12aのための変更された値が決定される度に、これらのパラメータ12aを、トレーニング可能なモジュール1に反映させることができ、これにより、学習データセット2の後続の処理に対して直接的に影響を与えることができる。トレーニングは、例えば、所定の中止条件に到達すると終了可能である。中止条件は、例えば、コスト関数のための閾値、及び/又は、トレーニングのために利用可能な時間、及び/又は、所定のエポック数の完了を含み得る。
【0069】
ステップ130におけるトレーニングは、例えば、パラメータ12aのためのランダム値を用いて初期化可能である。しかしながら、離散値3a~3cのリスト3を規定するために事前トレーニングが既に実施されている場合には、この事前トレーニングの枠内において決定されたパラメータ12aを開始値として使用することができる。このようにして、この事前トレーニングにおいて費やされた労力が最適に利用し尽くされる。
【0070】
事前トレーニングに代えて又は事前トレーニングと組み合わせて、ステップ160において、ビット数N、及び/又は、離散値3a~3cのリスト3を、コスト関数4の値に依存して適合させることができる。
【0071】
ステップ170において、それぞれのパラメータ12aを、リスト3からの、各々に最も近い離散値3a~3cに設定することができる。任意選択的に、トレーニング可能なモジュール1を、その後のステップ180において検証することができる。トレーニング可能なモジュール1が最終的にハードウェア上に実装されると、このトレーニング可能なモジュール1は、検証180における挙動とまさに同一の挙動を示すこととなる。
【0072】
検証の枠内においては、ブロック181によれば、複数の検証データセット5が提供される。これらの検証データセット5は、入力変数11の検証値51と、これに対応する出力変数13の検証値53とをそれぞれ含む。検証データセット5の集合は、学習データセット2の集合とは合同ではない。特に有利には、これらの2つの集合は、互いに素である。
【0073】
ブロック182によれば、それぞれの検証データセット5ごとに、入力変数11のそれぞれの検証値51が、トレーニング可能なモジュール1によって出力変数13のチェック値13cにマッピングされる。ブロック183によれば、検証値53とチェック値13cとの間の偏差が、所定の基準55を満たしているかどうかがチェックされる。これが当てはまる場合には、トレーニングされたトレーニング可能なモジュール1が、現実の使用に適していると判断される。
【0074】
ボックス150の内部には、精度を改善すると同時にトレーニング時間を節約するために、パラメータ12aの適合150を、トレーニング中にどのように改善することができるかに関するいくつかの可能性が、例として示されている。
【0075】
ブロック151によれば、リスト3の最小離散値3a~3cよりも小さいパラメータ12aの値を、当該最小離散値3a~3cに設定することができる。ブロック152によれば、リスト3の最大離散値3a~3cよりも大きいパラメータ12aの値を、当該最大離散値3a~3cに設定することができる。
【0076】
パラメータ12aの適合150は、ブロック153によれば、パラメータ12aにおいて変数として表されるコスト関数4の勾配4dを、当該コスト関数4のより良好な値の方向へと決定することを含み得るものであり、ブロック154によれば、パラメータ12aを、勾配4dと刻み幅との積の分だけ変化させることを含み得るものである。その場合、ブロック153aによれば、リスト3の現在の最小離散値3a~3cを有するパラメータ12aに関連する勾配4dの成分を、非負の値に制限することができる。ブロック153bによれば、リスト3の現在の最大離散値3a~3cを有するパラメータ12aに関連する勾配4dの成分を、非正の値に制限することができる。
【0077】
コスト関数4は、少なくとも2つの寄与の重み付き和を含み得る。
図1に示されている例においては、2つの寄与4b及び4cが存在する。ここで、第1の寄与4bは、学習データセット2に含まれる出力変数13の学習値13aと、出力変数13の判定値13bとの間の偏差を特徴付ける。第2の寄与4cは、リスト3内の少なくとも1つの離散値3a~3cと、内部処理チェーン12の少なくとも1つのパラメータ12aとの間の偏差を特徴付ける。次いで、ブロック155によれば、トレーニングが進行するにつれて、第1の寄与4bの重みを低減させることができ、第2の寄与4cの重みを増加させることができる。
【0078】
図2は、トレーニング可能なモジュール1を生成するための方法200の実施例のフローチャートである。ステップ210において、トレーニング可能なモジュールが、方法100を用いてトレーニングされ、トレーニング可能なモジュール1の内部処理チェーン12のパラメータ12aのための整数値が決定される。数値的に隣り合う離散値3a~3c同士は、非負の整数の2の累乗である刻み幅Δの分だけそれぞれ異なる。
【0079】
上述のように、その場合、これらのパラメータの描写及び/又は処理を、固定小数点演算において特に良好に実装することができる。ステップ220において、そのような実装は、パラメータ12aを固定小数点演算において描写及び/又は処理するように構成された計算ユニット6上において実施される。ステップ230において、パラメータ12aは、計算ユニットにおいて、ステップ210において決定された整数値に設定される。
【0080】
図3は、トレーニング可能なモジュール1の実施例を示している。トレーニング可能なモジュール1は、パラメータ12aを固定小数点演算において描写及び/又は処理するように構成された計算ユニット6内に実装されている。例として人工ニューラルネットワークANNとして描かれていて、かつ、パラメータ12aによって特徴付けられる内部処理チェーン12によって、トレーニング可能なモジュール1の動作中に1つ又は複数の入力変数11が1つ又は複数の出力変数13にマッピングされる。
【0081】
図4は、パラメータ12aのスペクトルによって示されている構造に対する、方法100の影響を定性的に示している。線図においては、それぞれパラメータ12aの値の頻度ρが、これらの値にわたってプロットされている。
【0082】
線図(a)は、例えば、パラメータ12aがランダム値を用いて初期化された場合に生じるような一様分布を示している。線図(b)は、リスト3からの離散値3a~3cに制限されない従来のトレーニングの場合に生じる正規分布を示している。線図(c)は、例として描かれた3つの離散値3a~3cについて方法100を用いてトレーニングした場合に生じる多峰性分布を示している。これらの3つの量子化レベル3a~3cに関する最適な理論的な分布は、線図(d)に示されている3つのディラックパルスを有するディラック分布になる。
【0083】
図5は、ベンチマークデータセット“CIFAR-10”において内部処理チェーン12としてANNを用いたトレーニング可能なモジュール1の現実のトレーニングを例にして、ANNにおける具体的な層のパラメータ12aの値の頻度ρが、エポック数eに依存してどのように発展するかを示している。トレーニングの開始時(e=0)には、パラメータ12aは、
図4の線図(b)の基本スケッチのようにほぼ正規分布している。エポック数eが増加するにつれて、分布は、
図4の線図(c)に示されている多峰性分布にますます近似する。
【0084】
図6は、さらなる例において、ベンチマークデータセット“CIFAR-100”におけるトレーニングの過程において、VGG11-ANNの、上から見て第1の層(行(a))、第4の層(行(b))及び第7の層(行(c))のパラメータ12aが、エポック数eに依存してどのように発展するかを示している。
図6の4つの列は、左から右に、エポック数e=0、e=20、e=80及びe=100に対応する。
図5と同様に、
図6のそれぞれの線図においては、それぞれの層のパラメータ12aの値の頻度ρが、それぞれのエポック数eにおいてプロットされている。
図6に示されている例においては、パラメータ12aのためにそれぞれ3つの離散値-Δ,0,及びΔだけが許可されている。
【0085】
トレーニングの開始時(e=0)には、事前トレーニングに由来するパラメータ12aの分布は、0にピークを有する単峰性である。この分布は、-Δを下回っている又はΔを上回っているパラメータ12aの値の末端部も依然として含む。
図6に示されている例においては、パラメータ12aのそれぞれの更新ステップにおいて、これらのパラメータ12aの値が、間隔[-Δ,Δ]に制限される。従って、上記の末端部は、既にe=20において完全に消失している。
【0086】
トレーニングが進行するにつれて、即ち、エポック数eが増加するにつれて、コスト関数4において、CIFAR-100データセットにおける分類タスクに関連するANNのトレーニングに関連する第1の寄与4bの重みが低減させられる。これに対して、パラメータ12aの離散化による正則化に関連する第2の寄与4cの重みは、増加させられる。
【0087】
エポック数e=100の場合、分布の3つのピークの中心は、離散値-Δ,0,及びΔに非常に近接しているので、パラメータ12aの離散化は、もはや重大な誤差をもたらさない。
【0088】
図7は、
図5に既に示されている現実のトレーニングに基づいて、それぞれ示されているエポックから10エポック戻っているトレーニング期間におけるANNの複数の異なる層a~dにおいて、パラメータ12aの何パーセントrが「ローテーション」されているか、即ち、多峰性分布の1つのモードから他のモードに変更されているかを示している。層a~cは、畳み込み層であり、ANNの層シーケンスにおいて1番目、3番目、5番目の位置にある。層dは、完全にネットワーク化された層であり、ANNの層シーケンスの7番目の位置にある。複数の異なる層におけるパラメータ12aが、それぞれ異なる速さにより、モードのうちの1つを最終的に「決定」することが示されている。しかしながら、約180のエポック数eを超えると、この決定は、ANNの至るところで固定化される。
【0089】
図8は、
図6に既に示されている現実のトレーニングに基づいて、ANNの層a~kのパラメータ12aの何パーセントrが、それぞれのエポックeにおいて多峰性分布の1つのモードから他のモードに変更されているかを示している。線図(a)は、それぞれの更新ステップの後にパラメータ12aの値範囲を間隔[-Δ,Δ]に制限した場合のrの推移を示している。比較のために、線図(b)は、値範囲のこの制限を行わない場合のrの推移を示している。
【0090】
値範囲を制限することは、トレーニングのまさに開始時に、特に多数のパラメータ12aがモードを変更するという、即ち、リスト3の離散値3a~3cのうちの1つから他の1つに変更するという、比較的顕著に明らかな効果を有する。このことは、即ち、トレーニングのまさに開始時に、値範囲の制限を行わない場合よりも学習の進歩がより大きくなることを意味する。上述のように、これによって、トレーニングの精度が改善されると同時に、トレーニング時間が大幅に節約される。