(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-01-18
(54)【発明の名称】入力データの処理方法
(51)【国際特許分類】
G06F 9/48 20060101AFI20230111BHJP
G06N 3/04 20230101ALI20230111BHJP
G06T 1/40 20060101ALI20230111BHJP
G06F 9/50 20060101ALI20230111BHJP
【FI】
G06F9/48 370
G06N3/04
G06T1/40
G06F9/50 150E
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022525543
(86)(22)【出願日】2020-11-05
(85)【翻訳文提出日】2022-04-27
(86)【国際出願番号】 EP2020081156
(87)【国際公開番号】W WO2021089710
(87)【国際公開日】2021-05-14
(31)【優先権主張番号】102019129760.5
(32)【優先日】2019-11-05
(33)【優先権主張国・地域又は機関】DE
(81)【指定国・地域】
(71)【出願人】
【識別番号】522171420
【氏名又は名称】アイス ゲーエムベーハー
【氏名又は名称原語表記】EYYES GMBH
(74)【代理人】
【識別番号】100133503
【氏名又は名称】関口 一哉
(72)【発明者】
【氏名】トラクスラー, ヨハネス
(72)【発明者】
【氏名】ヴンデルリッチ, イルケイ
(72)【発明者】
【氏名】シェーンフェルド, スヴェン
【テーマコード(参考)】
5B057
【Fターム(参考)】
5B057CA08
5B057CA12
5B057CA16
5B057CB08
5B057CB12
5B057CB16
5B057CC02
5B057CD05
5B057CH09
5B057DA17
5B057DC40
(57)【要約】
データを処理するためのコンピュータ実装方法であって、
入力データが、フィルタ基準を定義し、複数の直列または並列フィルタリング法ステップにおいて結果データを生成する、直列に配置された複数のフィルタを使用して分析され、
それによって、フィルタ基準に対応し、結果値を含む結果データが生成され、
各フィルタには重み係数が対応付けられており、フィルタリング法ステップにおけるフィルタの数が一定である、コンピュータ実装方法。
【選択図】
図3
【特許請求の範囲】
【請求項1】
データを処理するためのコンピュータ実装方法であって、
入力データが、フィルタ基準を定義し、複数の直列フィルタリング法ステップにおいて結果データを生成する、直列に配置された複数のフィルタを使用して分析され、
それによって、前記フィルタ基準に対応し、結果値を含む前記結果データが生成され、
各フィルタには重み係数が対応付けられており、
前記フィルタリング法ステップにおける前記フィルタの数が一定である、
ことを特徴とするコンピュータ実装方法。
【請求項2】
ニューラルネットワークにおいてデータを処理するためのコンピュータ実装方法であって、
入力データが、フィルタ基準を定義し、並列に配置された複数の少なくとも1つのフィルタを使用して分析され、並列フィルタリング法ステップにおいて結果データを生成し、
それによって、前記フィルタ基準に対応し、結果値を含む前記結果データが生成され、
各フィルタには重み係数が対応付けられており、
前記フィルタリング法ステップにおける前記フィルタの数が一定である、
ことを特徴とするコンピュータ実装方法。
【請求項3】
前記結果データが結果行列に結合される、
ことを特徴とする請求項1または2に記載の方法。
【請求項4】
重み係数が0である、
ことを特徴とする請求項1から3のいずれか一項に記載の方法。
【請求項5】
重み係数が非ゼロである、
ことを特徴とする請求項1から4のいずれか一項に記載の方法。
【請求項6】
重み係数が1である、
ことを特徴とする請求項1から5のいずれか一項に記載の方法。
【請求項7】
選択されたフィルタの前記フィルタ基準が定義されることができる、
ことを特徴とする請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記フィルタ基準が、フィルタパラメータが変更されることができるフィルタパラメータを含む、
ことを特徴とする請求項7に記載の方法。
【請求項9】
前記入力データから複数の入力データが作成され、
入力データが同じデータを含む、
ことを特徴とする請求項2に記載の方法。
【請求項10】
前記結果データが、縮小法を使用して結果データ行列に結合される、
ことを特徴とする請求項1から9のいずれか一項に記載の方法。
【請求項11】
請求項1から10のいずれか一項に記載のニューラルネットワークにおけるデータ分析方法。
【請求項12】
前記結果値が、以下のさらなる結果値/OD/の生成を伴ってさらなる方法ステップのうちの少なくとも1つにおいて処理される、
ことを特徴とする請求項11に記載の方法:
- 合計、
- 等化、
- 調整、
- プーリング。
【請求項13】
請求項1から12のいずれか一項に記載の方法を実行するための手段を備える、データ処理のための装置。
【請求項14】
ASCIコンポーネントおよび/またはFPGAコンポーネントを有するプロセッサを備える、請求項13に記載のデータ処理のための装置。
【請求項15】
ニューラルネットワーク(100)によってデータを処理するためのコンピュータ実装方法であって、
前記ニューラルネットワーク(100)が、入力層(103)と出力層(104)との間に複数の第1層(101)を含み、フィルタ(105)が、前記複数の第1層(101)の各第1層(101)に関連付けられ、
- 前記複数の第1層(101)のうちの各第1層(101)において、結果データが、線形演算によって前記複数の第1層(101)の前記それぞれの第1層(101)に関連するフィルタ(105)を使用して入力データから1つ以上のチャネルで生成され、前記入力データがチャネルごとの入力データサイズを有し、
- 前記複数の第1層(101)のうちの各第1層(101)について、前記第1層(101)に関連付けられた前記フィルタ(105)の受容野のサイズが、前記フィルタ(105)がそれぞれ関連付けられ、前記フィルタ(105)が前記入力データの異なる点においてそれぞれ前記線形演算を実行する前記複数の第1層(101)のうちの前記第1層(101)のチャネル当たりの入力データサイズよりも小さく、
- 複数の第1層(101)のうちの少なくとも1つの第1層(101)において、非線形活性化関数が、活性化結果データの形態の結果データを生成するために前記結果データに適用され、
前記入力層(103)と前記出力層(104)との間に存在する前記複数の第1層(101)に関して、
- 前記複数の第1層(101)のうちの第1層(101)に関連付けられたフィルタ(105)の数が、前記複数の第1層(101)のうちの前記第1層(101)のそれぞれについて同じであり、前記第1層(101)のそれぞれにおいて、それぞれの第1層(101)に関連付けられた前記フィルタ(105)のそれぞれが線形演算に使用される、ことを特徴とする、特に請求項1から12のいずれか一項に記載の方法。
【請求項16】
各フィルタ(105)が、前記結果データを生成するときに、前記入力データの異なる点において前記それぞれのフィルタ(105)によって実行された前記演算の結果が考慮される程度を判定する重み係数に関連付けられる、請求項15に記載の方法。
【請求項17】
複数の第1層(101)または全ての第1層(101)において、非線形活性化関数が、活性化結果データの形態の結果データを生成するために前記結果データに適用される、請求項15または16に記載の方法。
【請求項18】
前記複数の第1層(101)のうちの少なくとも1つの第1層(101)、好ましくは複数の第1層(101)または全ての第1層(101)における前記結果データの数に対して、縮小法および/またはプーリング法および/またはダウンサンプリング法が適用される、請求項15から17のいずれか一項に記載の方法。
【請求項19】
前記複数の第1層(101)のうちの少なくとも1つの第1層(101)、好ましくは複数の第1層(101)または全ての第1層(101)において、前記入力データの異なる点において実行される前記線形演算が内積であり、前記結果データが畳み込みの結果である、請求項15から18のいずれか一項に記載の方法。
【請求項20】
前記ニューラルネットワークが、計算的に見て前記複数の第1層(101)の背後に、互いに密接に接続された少なくとも2つの第2層(102)を有し、前記出力層(104)が、計算的に見て前記少なくとも2つの第2層(102)の背後に順次配置されるか、または計算的に見て最後の層として順次配置された前記第2層(102)が、前記出力層(104)として形成される、請求項16から19のいずれか一項に記載の方法。
【請求項21】
前記複数の第1層(101)のうちの少なくとも2つの第1層(101)が、計算的に見て前記入力層(103)と前記出力層(104)との間に順次配置される、請求項15から20のいずれか一項に記載の方法。
【請求項22】
前記複数の第1層(101)のうちの少なくとも2つの第1層(101)が、計算的に見て前記入力層(103)と前記出力層(104)との間に並列に配置される、請求項15から21のいずれか一項に記載の方法。
【請求項23】
ニューラルネットワーク(100)によってデータを処理するためのコンピュータ実装方法であって、前記ニューラルネットワーク(100)が、入力層(103)と出力層(104)との間に複数の第1層(101)を含み、好ましくは、フィルタ(105)が前記複数の第1層(101)の各第1層(101)に関連付けられることが提供され、
- 前記複数の第1層(101)の各第1層(101)において、好ましくは線形演算によって前記複数の第1層(101)の前記それぞれの第1層(101)に関連付けられたフィルタ(105)を使用して、入力データから1つ以上のチャネルで結果データが生成され、前記入力データがチャネルごとに入力データサイズを有し、
- 複数の第1層(101)のうちの各第1層(101)について、前記第1層(101)に関連付けられた前記フィルタ(105)の受容野のサイズが、前記フィルタ(105)がそれぞれ関連付けられ、前記フィルタ(105)が前記入力データの異なる点においてそれぞれ前記線形演算を実行する複数の第1層(101)のうちの前記第1層(101)のチャネル当たりの入力データサイズよりも小さいことが好ましく、
- 複数の第1層(101)のうちの少なくとも1つの第1層(101)において、非線形活性化関数が、活性化結果データの形態の結果データを生成するために前記結果データに適用され、
- 前記複数の第1層(101)のうちの前記少なくとも1つの第1層(101)、好ましくは前記複数の第1層(101)のうちの全ての第1層(101)における前記ニューラルネットワーク(100)の訓練中に、第1の画像領域(B1)を有する非線形活性化関数が前記活性化結果データを生成するために使用され、
- 論理モジュール(200)を使用して実行されることが好ましい前記ニューラルネットワーク(100)の推論演算中に、前記複数の第1層(101)のうちの前記少なくとも1つの第1層(101)において、好ましくは前記複数の第1層(101)のうちの全ての第1層(101)において、第2の画像領域(B2)を有する非線形活性化関数が、前記活性化結果データを生成するために使用され、前記第2の画像領域(B2)が、前記第1の画像領域(B1)の真のサブセットを形成する、ことを特徴とする、特に請求項15から22のいずれか一項に記載の方法。
【請求項24】
非線形活性化関数、好ましくはLReLUが、前記異なる画像領域(B1、B2)以外は同一である、前記ニューラルネットワーク(100)の前記訓練中および前記推論演算中に使用される、請求項23に記載の方法。
【請求項25】
前記ニューラルネットワーク(100)の前記訓練中に、前記ニューラルネットワーク(100)の前記推論演算のための整数演算に量子化される浮動数演算が使用される、請求項23または24に記載の方法。
【請求項26】
マッピング演算が、前記第2の画像領域(B2)に位置する前記結果活性化データに適用され、前記結果活性化データを所定の整数データ型、好ましくはunit8にマッピングする、請求項25に記載の方法。
【請求項27】
前記複数の第1層(101)のうちの後続の第1層(101)において線形演算によって結果データが生成される前に、前記所定のデータ型にマッピングされた前記結果活性化データにデマッピング演算が適用される、請求項26に記載の方法。
【請求項28】
請求項15から27のいずれか一項に記載の方法を実行するための電子回路構成が恒久的に指定されている、論理モジュール(200)、特にASIC。
【請求項29】
請求項15から27のいずれか一項に記載の方法を実行するための電子回路構成が上書き可能に記憶される、論理モジュール、特にFPGA。
【請求項30】
複数の第1層(101)を有するニューラルネットワーク(100)のニューラルネットワーク計算を実行するための、特に請求項1から27のいずれか一項に記載の方法を実行するための電子回路構成が恒久的に指定される論理モジュール(200)、特にASICであって、
- 前記ニューラルネットワーク(100)に入力を供給するための少なくとも1つの信号入力(203)と、
- 前記ニューラルネットワーク(100)の出力をもたらすための少なくとも1つの信号出力(204)と、を有し、
前記論理モジュール(200)が、
- それぞれが前記ニューラルネットワーク(100)の第1層(101)を表す複数の第1層回路構成(201)であって、各第1層回路構成(201)が、入力データを受信するための少なくとも1つの信号入力と、結果データを出力するための少なくとも1つの信号出力とを有し、各第1層回路構成(201)が、それぞれが1つ以上のチャネルにおいて、線形演算によって前記少なくとも1つの第1層(101)に関連付けられたいくつかのフィルタ(105)を使用して、チャネル当たりの入力データサイズを有する入力データからいくつかの結果データが生成されることができる少なくとも1つの第1層(101)を有し、前記少なくとも1つの第1層(101)に関連付けられた前記フィルタ(105)の受容野のサイズが、前記少なくとも1つの第1層(101)のチャネル当たりの前記入力データサイズよりも小さく、前記フィルタ(105)が、前記入力データの異なる点において前記チャネル当たりの前記線形演算をそれぞれ実行し、前記第1層回路構成(201)の全てが、前記少なくとも1つの第1層(101)に関連する同じ数のフィルタ(105)を有し、各第1層回路構成(201)の前記少なくとも1つの第1層(101)のそれぞれにおいて、それぞれの第1層(101)に関連する前記フィルタ(105)のそれぞれが線形演算に使用される、第1層回路構成と、
- 前記信号出力(204)に接続される出力回路構成と、
- 変更可能な仕様にしたがって、データフローが前記論理モジュール(200)の前記信号入力(203)から個々の第1層回路構成(201)へと、個々の第1層回路構成(201)の間で、および個々の第1層回路構成(201)から前記出力回路構成へと伝導される順序を指定するために、複数の第1層回路構成(201)とデータ通信可能であり、前記ニューラルネットワーク(100)のネットワークアーキテクチャを定義するように設計されている少なくとも1つのスケジューラ回路構成(205)と、をさらに備える、ことを特徴とする論理モジュール。
【請求項31】
各フィルタ(105)が、前記結果データを生成するときに、前記入力データの異なる点において前記それぞれのフィルタ(105)によって実行された前記演算の結果が考慮される程度を判定する重み係数に関連付けられる、請求項30に記載の論理モジュール。
【請求項32】
前記フィルタ(105)および/または前記フィルタ(105)に関連する前記重み係数が、前記論理モジュール(200)のRAM回路構成(206)に変更可能に記憶される、請求項30または31に記載の論理モジュール。
【請求項33】
少なくとも1つの第1層回路構成(201)、好ましくは複数の第1層回路構成(201)または全ての第1層回路構成(201)において、以下のリストから選択される少なくとも1つ、好ましくはいくつかまたは全ての機能モジュールが形成される、請求項30から32のいずれか一項に記載の論理モジュール:
- キャッシュメモリシステム(207)
- 存在することができるバイアスを除去するためのバイアスモジュール(208)、
- 調整プロセスを実行するための調整モジュール(209)、プーリングおよび/またはダウンサンプリング法を実行するためのプーリングモジュール(210)
- パディング法を実行するためのパディングモジュール(211)。
【請求項34】
ネットワークアーキテクチャが、データフローが第1層回路構成(201)の少なくとも1つの機能モジュールから別の第1層回路構成(201)の少なくとも1つの機能モジュールへと直接伝送されるように、前記スケジューラ回路構成(205)によって定義される、請求項30から請求項33のいずれか一項に記載の論理モジュール。
【請求項35】
ネットワークアーキテクチャが、前記スケジューラ回路構成(205)によって、
- 少なくとも2つの第1層回路構成(201)が、計算的に見て前記入力層と前記出力層との間に順次配置され、および/または、
- 少なくとも2つの第1層回路構成(201)が、計算的に見て前記入力層と前記出力層との間に並列に配置される、ように定義される、請求項30から請求項34のいずれか一項に記載の論理モジュール。
【請求項36】
前記複数の第1層回路構成(201)のうちの少なくとも1つの第1層回路構成(201)、好ましくは複数の第1層回路構成(201)または全ての第1層回路構成(201)において、前記入力データの異なる点において実行される前記線形演算が内積であり、前記結果データが畳み込みの結果である、請求項30から35のいずれか一項に記載の論理モジュール。
【請求項37】
密接に相互接続された第2層(102)を表す少なくとも2つの第2層回路構成(202)が、前記論理モジュール内に固定的に予め定められ、前記出力層が、計算的に見て前記少なくとも2つの第2層(102)の背後に連続して配置されるか、または計算的に見て最後に連続して配置された前記第2層(102)が、前記出力層として形成される、請求項30から36のいずれか一項に記載の論理モジュール。
【請求項38】
前記装置(6)上または装置内に配置された少なくとも1つの信号発生装置(9)による少なくとも1つの信号入力(203)を介した前記ニューラルネットワーク計算のための入力として、信号が前記少なくとも1つの論理モジュール(200)に供給されることができ、前記少なくとも1つの論理モジュール(200)が、前記装置(6)の制御もしくは調整装置(8)と通信するための、または前記装置(6)の少なくとも1つのアクチュエータ(10)への制御コマンドの直接出力のための少なくとも1つの信号出力(204)を有する、請求項37に記載の少なくとも1つの論理モジュール(200)を有する装置(6)。
【請求項39】
コンピュータプログラムがコンピュータによって実行されると、請求項1から27のいずれか一項に記載の方法を前記コンピュータに実行させる命令を含むコンピュータプログラム製品。
【請求項40】
コンピュータによって実行されると、請求項1から27のいずれか一項に記載の方法を前記コンピュータに実行させる命令を含むコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
第1の変形例では、以下に開示される本発明は、入力データを処理するためのコンピュータ実装方法であって、特に深層学習CNNにおいて、
入力データが、フィルタ基準を定義し、1つのフィルタリング法ステップまたは複数のフィルタリング法ステップにおいて結果データを生成するいくつかのフィルタを使用して分析され、
それによって、フィルタ基準に対応し、結果値を含む結果データが生成され、
少なくとも1つのフィルタに重み係数が関連付けられている、コンピュータ実装方法に関する。
【0002】
第1の変形例とは独立した第2および第3の変形例では、本発明は、請求項16および/または23のプリアンブルの特徴を有する方法、そのような方法を実行するための論理モジュール、請求項26のプリアンブルの特徴を有する論理モジュール、そのような論理モジュールを有する装置、方法を実行するためのコンピュータプログラム、および記憶媒体に関する。
【0003】
入力データは、例えば、所定のデータまたはデータベースに記憶されたデータとすることができる。入力データはまた、センサによって判定されたデータとすることができる。第1または第2の変形例にかかる本発明にかかる方法の以下の説明は、所定のデータまたはセンサによって判定されることができるデータとしての画像データの分析に焦点を合わせている。しかしながら、第1、第2または第3の変形例にかかる本発明にかかる方法の適用は、決して画像データの分析に限定されない。
【0004】
同様に、本発明にかかる方法は、第1、第2または第3の変形例にかかる他のデータにも適用されることができる。データは、動的、したがって時変データ、ならびに静的データとすることができる。動的データは、例えば、これに限定されないが、特定のパターンにしたがって内容が変化することができる、または自由に変化することができるデータとすることができる。測定されたまたは所定のデータはまた、機械の機能を記述する機械データまたは人間の行動を記述する個人データとすることができる。
【0005】
現在の教示によれば、結果データは、直列に配置されたフィルタによって、または並列に配置されたフィルタによって入力データから生成されることができる。
【0006】
本発明の第1の実施形態によれば、フィルタリング法ステップは、必ずしもニューラルネットワークを必要としない方法で使用されることができる。既知の例は、プレウィットフィルタリング法、ウェーブレットフィルタリング法またはフレーム理論分析法である。ニューラルネットワークが使用されない場合、これらのフィルタリング法で使用されるフィルタのパラメータは、既存の事前知識を用いて作成されなければならない。ニューラルネットワークを使用する場合、使用されるフィルタのパラメータが教示(訓練データを使用したニューラルネットワークの訓練)されることができる。
【0007】
畳み込みニューラルネットワーク(CNN)では、それぞれの分析タスクに応じて変化するいくつかのフィルタを使用して入力データが分析され、各フィルタは、少なくとも1つのフィルタ基準(フィルタパラメータとも呼ばれる)を有することが当該技術分野の背景技術によって知られている。背景技術によれば、デジタルフィルタ、数学フィルタおよびアナログフィルタ、ならびにそれらの動作モードが知られている。入力データは、隠れ層(国際公開第2018112795号パンフレットを参照)とも呼ばれる入力層と出力層との間に配置された層に可変数のフィルタを適用し、結果データを生成することによって修正される。結果データは、フィルタ基準に対応する結果値を含む。入力データへのフィルタの適用および結果データの生成は、フィルタに関連する重み係数によって現在の教示にしたがって重み付けされる。CNNの性質および機能は、例えばオンライン百科事典Wikipediaおよびさらに本開示に記載されている。
【0008】
当該技術分野の背景技術にかかる方法では、ニューラルネットワークが使用される場合であっても、関連性のないフィルタ基準を有する、および/または最終結果に関連性のある影響を及ぼさないフィルタを検出し、当該技術分野の背景技術にしたがって適用される方法からそれらを削除するために、さらなる計算プログラムが必要とされる。これらの関連性のないフィルタは、CNNを教示するプロセスの間に認識され、行われた削除は、そのように取り消すことはできないが、CNNは、以前に削除されたフィルタを再導入するように再教示されなければならない。当業者は、不要なフィルタを識別し、それらのフィルタを関連性のないフィルタとして分類するには計算能力が必要であることを認識するであろう。当業者は、例示的な手法として「プルーニング」または「スパイク」を知っている。
【0009】
関連性がないと分類されたフィルタが適用される方法から削除されるという事実は、方法を剛性にし、技術の背景に応じてさらに適合させることができないようにする。CNNは、CNNの動作中にさらなるフィルタ特性を有するさらなるフィルタを使用してさらなる学習を実行する可能な好ましい特性を奪われ(いわゆる推論演算)、さらなるフィルタ特性を有するさらなるフィルタは、CNNを教示する以前に実行されたプロセス中に現在の教示の適用下で関連性がないと分類され、削除されている。
【0010】
欧州特許第3480746号明細書は、フィルタの検出と重み係数の関連付けとの間の関連付けに基づいている。欧州特許第3480746号明細書では、連続して配置された一定数のフィルタまたは互いに並列に実行されるフィルタリング法ステップについて言及されていない。
【0011】
国際公開第2019074804号パンフレットは、定義された数のフィルタの表示を提供していない。
【0012】
米国特許出願公開第201900887725号明細書では、多次元色空間の軸に応じてフィルタの数が選択される。米国特許出願公開第201900887725号明細書は、結果データに対するフィルタの影響を重み付けするための重み付け係数の使用を開示していない。
【0013】
米国特許出願公開第20190080507号明細書は、[0013]において、多次元色空間の軸の関数としてのフィルタの数の定義について述べている。しかしながら、米国特許出願公開第20190080507号明細書は、特性を評価するための重み係数の使用に関するいかなる言及も含まない。多次元色空間内の軸の数が一定であり、結果的にフィルタの数が一定である、米国特許出願公開第20190080507号明細書に開示されている方法を繰り返す場合であっても、米国特許出願公開第20190080507号明細書に開示されている方法は、重み付け係数の特徴によって異なり、重み付け係数によって、結果データに対するフィルタの影響が各方法ステップにおいて制御されることができる。米国特許出願公開第20190080507号明細書に開示されている方法が繰り返される場合、この方法は、各方法ステップにおいて同じ結果データをもたらす。
【0014】
国際公開第2018106805号パンフレットは、方法ステップ間の一定数のフィルタの表示を提供していない。
【0015】
国際公開第2017152990号パンフレットは、層の削減による乗算演算の削減を目的とすることにより、静的な数のフィルタを備える、以下に開示される本発明にかかる方法の基本的な概念と矛盾する(6~7ページ)。
【0016】
米国特許第6389408号明細書は、生物学的および化学的物質を検出するためのミュラー行列について述べている。これは、連続して配置された一定数のフィルタ、または互いに並列に実行されるフィルタリング法ステップを示すものではない。
【0017】
欧州特許出願公開第0566015号明細書の解決手法は、互いに並列に実行される、順次配置された静的な数のフィルタまたはフィルタリング法ステップを含まない。
【0018】
欧州特許第1039415号明細書では、順次配置された静的な数のフィルタまたは互いに並列に実行される静的な数のフィルタリング法ステップが参照される。
【0019】
米国特許出願公開第20180137414号明細書、米国特許出願公開第20180137417号明細書は、当該技術分野の背景技術にかかる刊行物として知られている。米国特許出願公開第20180137414号明細書の[0044]は、深層学習CNNが入力データを処理するための少なくとも3つの層またはフィルタを含むことを定義している。米国特許出願公開第20180137414号明細書、米国特許出願公開第20180137417号明細書は、フィルタの順次切り替えのみを記載している。米国特許出願公開第20180137414号明細書は、この方法が繰り返されるとき、一定数のフィルタの表示を提供しない。さらに、本出願は、層全体の入力データの並列化処理ではなく、LKAMによって入力データに依存するフィルタ演算を回避することによる最適化に焦点を当てている。
【0020】
現在の教示にかかる分析方法は、コンピュータ実装方法として実行される。背景技術にかかる方法を使用するニューラルネットワークにおける入力データの分析では、入力データは、いくつかのフィルタリング法ステップにおいて結果データ(出力データとも呼ばれる)を生成するいくつかのフィルタによって分析される。結果データは、結果値および応答値を含む。
【0021】
当該技術分野の背景によれば、そのような分析方法は、フィルタリング法ステップ間の変動する数のフィルタによって特徴付けられる。これは、フィルタの数が方法ステップの過程で変更可能な変数であるため、コンピュータのコンピュータプロセッサをディメンジョニングするときに特に不利である。このタイプのコンピュータプロセッサは、ASICモジュールとして実装されることはできず、十分にディメンジョニングされた数の入力および出力を有する動作の順次処理を有する汎用プロセッサユニットによってのみ実装される。
【先行技術文献】
【特許文献】
【0022】
【特許文献1】国際公開第2018112795号パンフレット
【特許文献2】欧州特許第3480746号明細書
【特許文献3】国際公開第2019074804号パンフレット
【特許文献4】米国特許出願公開第201900887725号明細書
【特許文献5】米国特許出願公開第20190080507号明細書
【特許文献6】国際公開第2018106805号パンフレット
【特許文献7】国際公開第2017152990号パンフレット
【特許文献8】米国特許第6389408号明細書
【特許文献9】欧州特許出願公開第0566015号明細書
【特許文献10】欧州特許第1039415号明細書
【特許文献11】米国特許出願公開第20180137414号明細書
【特許文献12】米国特許出願公開第20180137417号明細書
【非特許文献】
【0023】
【非特許文献1】Charu C. Aggarwal, Neural Networks and Deep Learning, Springer International Publishing AG 2018, Chapter 8.3.3, page 335ff.sekushon
【非特許文献2】An Overview of Arithmetic Adaptations for Inference of Convolutional Neural Networks on Re-configurable Hardware
【0024】
第1、第2、および第3の変形例にかかる本発明にかかる方法は、ニューラルネットワークを使用してデータを分析する方法を、これらの構成要素の有利な特性を利用しながらASIC構成要素(ASICは特定用途向け集積回路を表す)を備えるコンピュータプロセッサによって処理されることができるように設計するという特定の目的を有する。
【0025】
第1、第2、および第3の変形例にかかる本発明にかかる方法はまた、効率的な方法でリアルタイムで動的データを処理する特定の目的を有する。
【0026】
ASICモジュールの形態の論理モジュールは、それが製造された後にASICの機能をもはや変更することができないという事実によって区別され、これが、ASICモジュールの製造コストが一般に低く、開発のための1回限りのコストが高い理由である。ASICモジュールは、定義された固定相互接続を有する顧客の要求にしたがって作成され、通常、それらの特定の顧客にのみ供給される。
【0027】
代替的な論理モジュールは、フリープログラマブルゲートアレイ、または略してFPGAと呼ばれるが、FPGAは、はるかに高価であり、したがって大量の構成要素には適していない。FPGAコンポーネントは、自由にプログラム可能である。
【0028】
本発明によれば、これは、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法によって達成される。
【0029】
本発明にかかる方法の第1の変形例は、方法ステップにおけるフィルタの数が一定であることを特徴とする。
【0030】
第1の変形例にかかる本発明にかかる方法は、各方法ステップにおける静的な数のフィルタを特徴とする。フィルタリング法ステップを実行するとき、フィルタの数は、前のフィルタリング法ステップで使用されたフィルタの数に等しい。
【0031】
したがって、第1の変形例にかかる本発明にかかる方法は、関連性のないフィルタを認識および分類するプロセスが省略されているため、現在の教示にかかる前述の方法と比較して単純化を表す。固定数のフィルタはまた、固定数のフィルタが一定の変数を表すという利点を提供する。計算プロセスの継続時間は、可変数のフィルタに依存せず、一定数のフィルタに依存し、したがって計画されることができる。
【0032】
第1、第2、および第3の変形例にかかる本発明にかかる方法は、コンピュータプロセッサを使用して実行されることができる。第1、第2、および第3の変形例にかかる本発明にかかる方法は、特にASICモジュールを備えるコンピュータプロセッサによって実行されることができる。
【0033】
固定数のフィルタは、第1および/または第2の変形例にかかる本発明にかかる方法が、全てのフィルタの利用可能性のためにCNNの教示中に関連性がないと分類されるさらなるフィルタによって拡張されることができるというさらなる利点を提供し、これについては、第1および/または第2の変形例にかかる本発明にかかる方法の特定の実施形態を参照して以下で説明する。したがって、第1および/または第2の変形例にかかる本発明にかかる方法は、当該技術分野の背景技術にかかる方法と比較して、変化する状況によりよく適合させることができる。
【0034】
第1の変形例にかかる本明細書で説明する方法は、順次に配置されたフィルタを使用して実行されることができ、個々のフィルタリング法ステップは、順次行われる。フィルタの数が一定であるため、第1の変形例にかかる本発明にかかる方法は、フィルタリング法ステップを実行するときのフィルタの数が、前のフィルタリング法ステップにおいて使用されたフィルタの数に等しいことを特徴とする。
【0035】
個々のフィルタリング法ステップは、個々のフィルタリング法ステップの結果を記憶しながら、コンピュータプロセッサを用いて実行されることができる。個々のフィルタリング法ステップはまた、それぞれ単一のプロセッサで実行されることもできる。
【0036】
本明細書に開示される方法は、並列に配置されたフィルタによって実行されることができ、個々のフィルタリング法ステップは並列に行われる。個々のフィルタリング法ステップは、コンピュータプロセッサを使用して実行されることができる。個々のフィルタリング法ステップは、個々のプロセッサによって実行されることもできる。
【0037】
上記で使用される「順次」および「並列」という用語は、時間的配置および空間的配置を指すことができる。
【0038】
フィルタの順次配置と並列配置との組み合わせが可能である。
【0039】
第1および/または第2の変形例にかかる本発明にかかる方法は、フィルタの数が方法ステップの数にわたって一定であるため、CPU利用率またはメモリ要件などの、第1および/または第2の変形例にかかる本発明にかかる方法を実行するために必要な計算労力が、個々の方法ステップにおいて正規化されることができることを特徴とする。個々の方法ステップに必要な計算労力は、数学関数によって記述されることができる。計算労力は、特に、個々の方法ステップにわたって一定とすることができる。方法ステップのこの正規化および/または数学関数を使用して計算努力を記述する可能性はまた、本発明にかかる方法を実行するための装置の故障が第1および/または第2の変形例にしたがって容易に認識可能であるという効果を有する。
【0040】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、重み係数が0であり、重み係数が当該技術分野の背景技術から知られている形態で存在することができることを特徴とすることができる。第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、重み係数の新たな定義に基づいていない。
【0041】
重み係数は、重み係数が0に等しい場合、それぞれのフィルタを使用して判定された結果も0に等しくなるように、それぞれのフィルタにリンクされる。したがって、0に等しい重み係数が対応付けられたフィルタは、複数のフィルタを用いて生成される結果データに影響を与えない。
【0042】
フィルタに関連する重み係数は、数学的演算または論理によってフィルタにリンクされることができる。数学的演算は、例えば、フィルタ基準と重み係数との乗算とすることができ、したがって、フィルタ基準と重み係数とが0で乗算される場合、このフィルタを使用して得ることができる結果は0に等しい。
【0043】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、せいぜい、全てのフィルタが回路構成に関して常に存在するという事実を特徴とする。フィルタの影響のみが重み係数を介して制御される。
【0044】
現在の教示にかかる方法とは対照的に、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、剛性構造に基づいており、したがって反復可能である。第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、剛性であり、したがって不変の特性を有するマイクロチップ上で実行されることができる。
【0045】
重み係数は、現在の教示に関して非ゼロとすることができる。非ゼロの重み係数は、後述する精度の規定を参照して結果に影響を及ぼす。
【0046】
重み係数は、現在の教示に関して1に等しくすることができる。
【0047】
非ゼロの重み係数を指定することにより、結果データに対するそれぞれのフィルタの影響が、現在の教示と同様に定義されることができる。
【0048】
1または1に近い値に等しい重み係数を指定することにより、単独で、または他の重み係数と比較して、結果データに対するそれぞれのフィルタの影響は、スケーリングされず、またはほとんどスケーリングされないままとすることができる。
【0049】
本発明はまた、0に近い値を有する重み係数、したがって結果データにほとんど影響を及ぼさないそのフィルタを含むことができる。当業者は、誤差を許容しながら、結果データに影響を与えることを意図していないフィルタに関連する重み係数を0に近く、したがって非ゼロに設定することができる。結果として生じる誤差は、当該技術分野の背景技術にかかる方法を使用して判定および低減されることができる。必要に応じて、冒頭で述べた当該技術分野の背景技術にかかる方法が同様に適用されて、結果に対するフィルタの影響を評価すべきである。
【0050】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、データの分析におけるフィルタの使用を提供することができる。現在の教示によれば、データの分析は、これらのフィルタおよび/またはフィルタに関連する重み係数の判定を含むCNNを教示する前のプロセスを必要とする。
【0051】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、フィルタ特性を有するこれらのフィルタが、CNNを教示するプロセス中に結果データに関連のない影響を及ぼし、0または0に近い重み係数を受け取ることを特徴とすることができる。本発明にかかる方法の1つの可能な実施形態では、第1および/または第2の変形例によれば、これらのフィルタは、教示プロセス中に削除されることができない。
【0052】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法を使用するとき、最終結果に対するフィルタの影響がさらにレビューされることを特徴とすることができる。
【0053】
そのようなレビューは、教示中に結果データに関連しないと分類され、0に等しい重み係数が与えられたフィルタに、前述のレビュー後に0に等しい重み係数が与えられるという結果をもたらすことができる。そのようなレビューはまた、教示中に関連性があると分類され、非ゼロの重み係数が与えられるフィルタに、前述のレビュー後に0に等しい重み係数が与えられるという結果を有することができる。これらの適応プロセスは、フィルタの削除のみを可能にする従来技術の方法とは対照的に、可逆的である。必要に応じて、これらの適応プロセスは、当業者によってレビューされた後にのみ実行される。
【0054】
述べた入力データの分析に加えて、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法の可能な適用は、フィルタの影響または複数のフィルタの影響を非常に効率的な方法で判定することである。このレビューは、複数のフィルタから選択された重み係数が0に等しいかまたは0に近くなるように実行されることができる。ASCIプロセッサが、第1および/または第2の変形例にかかる本発明にかかる方法を有利に実行するための計算ユニットとして、例えば、フィルタに関連付けられた2n個の重み係数を有する2n(n=1、2、3...;例えば、n=3による8)個のフィルタを含む場合、最終結果に対するこれらのフィルタの影響は、0に等しい2n個の重み係数を設定することによって判定されることができる。反復プロセスでは、多数のフィルタ、ここでは例えば8つのフィルタからのフィルタの影響が非常に効率的にレビューされることができる。第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、複数のフィルタから2n個のフィルタが判定され、2n個のフィルタは、結果値に大きな影響を及ぼさないことを特徴とすることができる。第1および/または第2および/または第3の変形例にかかる本発明にかかる方法とは対照的に、(「プルーニング」または「スパイク」として当業者に知られている)フィルタの最適な数を判定するための上述した方法は、結果値に有意な影響を及ぼさないフィルタに基づく。したがって、第1の変形例にかかる本発明にかかる方法は、既知の方法のさらなる発展形(例えば、「プルーニング」または「スパイク」)である。
【0055】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法を使用して入力データを分析することと、フィルタの定数2nのために最終結果に対するフィルタの影響をレビューすることとが、互いに独立して実行されることができる同様の方法であることを特徴とする。
【0056】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、複数のフィルタから2n個のフィルタを削除するステップを含むことができる。2n個のフィルタの全てが削除された場合、この数のフィルタは、本発明にかかる方法では無効にされる。削除されるフィルタの数は、複数のフィルタの数以下とすることができる。これは、所定のコンピューティングユニットアーキテクチャを有するASICコンポーネントを備えるコンピューティングユニットの使用を可能にする。
【0057】
重み係数は、例えば1など、ほぼ同じ値を有することができる。現在の教示を参照すると、フィルタの重み付けは、結果データが異なる重み付け係数の影響を受けるような異なる値を有するという点で達成される。
【0058】
基本的に、0に近い値を有する重み係数、したがって0とは距離値だけ異なる値を有する重み値が、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法に課される精度の要件を満たすかどうかは、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法の精度に対する要件である。距離値は、精度の定義された要件に応じて定義されることができる。距離値は、数値限界を参照するだけでなく、必要な精度に関しても指定されることができる。これは、ある値に近い重み値または別の値に近い重み値にも当てはまる。
【0059】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、せいぜい、全てのフィルタが回路構成に関して常に存在するという事実を特徴とする。現在の教示にかかる方法とは対照的に、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、剛性構造に基づく。第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、剛性であり、したがって不変の特性を有するマイクロチップ上で実行されることができる。
【0060】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、全てのフィルタが回路構成に関して存在するという上記の基本的な考え方に基づいている。現在の教示を参照すると、フィルタは、結果データとの関連性を低くすることができる。当該技術分野の背景技術にかかる方法では、結果データとの関連性が低いこれらのフィルタは削除されるが、本発明にかかる方法では、これらのフィルタはアクティブのままであり、任意に0または0に近い重み係数に関連付けられる。
【0061】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、選択されたフィルタのフィルタ基準が可変であることを特徴とすることができる。第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、ルーチン(「プルーニング」)を含むことができ、このルーチンによって、フィルタの低関連性が判定され、フィルタ基準は、このフィルタが結果データと関連性のあるフィルタ基準を含むように、反復的な方法ステップで修正される。結果データに対するフィルタの関連性は、現在の教示にかかる数学的方法を使用して判定されることができる。
【0062】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、フィルタ基準がフィルタパラメータを含み、フィルタパラメータが可変であることを特徴とすることができる。フィルタパラメータは、フィルタ基準の値であり、その値は、フィルタが結果データと関連性を有するように修正されることができる。
【0063】
例えば、色を分析する場合、フィルタパラメータは、RGB値または色を記述する値とすることができる。フィルタが結果データと関連性のないRGB値を有する場合、フィルタパラメータには、異なる値が割り当てられることができる。
【0064】
上述したフィルタパラメータの変化は、当該技術分野の背景から知られている、結果値に大きな影響を及ぼさないフィルタの削除の代替手段を表す。当該技術分野の背景として冒頭で既に述べたように、そのような方法は、技術用語「プルーニング」によって知られている。第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、現在の教示にかかる「プルーニング」方法によって補完されることができ、この方法にしたがって、結果値に大きな影響を与えないフィルタが削除される。個々のフィルタリング法ステップの定義されたリンクに応じて、いくつかのフィルタが削除されることができる。
【0065】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、ニューラルネットワークにおけるデータを分析するための方法として特に適している。
【0066】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、ニューラルネットワークを使用してデータを処理する範囲内のさらなる方法ステップによって補完されることができる。結果値は、さらなる結果値を生成するさらなる方法ステップのグループからの少なくとも1つのさらなる方法ステップにおいて処理されることができる。
- 合計、
- 等化、
- 調整、
- プーリング。
【0067】
さらなる方法ステップは、現在の教示にしたがって既知である。
【0068】
本明細書に開示される本発明はまた、説明の上記の一般的な部分および図面の説明の以下に記載される方法を実行するための手段を備えるデータ処理のための装置に関する。
【0069】
本明細書に開示される本発明は、データの処理が、ASCIコンポーネントおよび/またはFPGAコンポーネントを有するコンピュータプロセッサによって実行されることを可能にする。
【0070】
本明細書で開示される本発明はまた、コンピュータプログラムがコンピュータによって実行されると、コンピュータまたはコンピュータに、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法を実行させる命令を含むコンピュータ製品に関する。
【0071】
本明細書で開示される本発明はまた、コンピュータによって実行されると、このコンピュータまたはコンピュータに、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法を実行させる命令を含むコンピュータ可読記憶媒体に関する。
【0072】
説明の一般的な部分および実施形態によって以下に記載される方法において上述された方法に加えて、本明細書に開示される本発明はまた、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法を実行するための装置、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法を実行するための命令を含むコンピュータプログラム、ならびに第1および/または第2の変形例にかかる本発明にかかる方法を実行するためのコンピュータプログラムが記憶されているデータ媒体に関する。
【0073】
第1の変形例とは独立した第2の変形例では、本発明は、請求項16のプリアンブルの特徴を有する方法、そのような方法を実行するための論理モジュール、請求項30のプリアンブルの特徴を有する論理モジュール、そのような論理モジュールを有する装置、方法を実行するためのコンピュータプログラム、および記憶媒体に関する。
【0074】
以下の記述は、本発明にも適用され、したがって、本発明の第1および/または第2および/または第3の変形例の例示的な実施形態を表すことができる。
【0075】
ニューラルネットワークは、適切な構成(これは、学習とも呼ばれる訓練プロセスを介して行われる)の後に、例えば分類を実行するために、計算的に見て順次および/または並列に配置された複数の層によってデータの入力から出力を生成する機械学習のモデルである。構成された(すなわち、訓練されている)ニューラルネットワークを使用したデータ処理の処理は推論と呼ばれる。
【0076】
いわゆるディープニューラルネットワークは、入力層と出力層との間にいくつかの層(少なくとも2つの層、通常は3つ以上の層)を有し、そのそれぞれにおいて、いくつかの結果データが、入力データ(通常は層ごとに異なる入力データサイズを有する)から、線形演算によって層にそれぞれ関連付けられたいくつかのフィルタによって生成される。計算的に見て順次配置された層の場合、1つの層関数の結果データは、直後の層(少なくとも選択された層に関して、好ましくは全ての層に関して)の入力データとして、非線形活性化関数、例えばReLUもしくは別の適切な非線形活性化関数の適用、および/またはプーリングおよび/またはダウンサンプリング法などのさらなる演算が結果データに適用されることができ、その後に結果データが入力データとして次の層に供給される。非線形活性化関数の適用は、調整プロセスとも呼ばれる。
【0077】
複数の層によって、それぞれの場合に層に関連付けられたいくつかのフィルタを用いて、入力データから線形演算によってそれぞれの場合にいくつかの結果データが生成されるディープニューラルネットワークであって、第1層に関連付けられたフィルタのフィルタサイズが入力データサイズよりも小さく、フィルタがそれぞれ入力データの異なる点において線形演算を実行する(以下、そのような層が本開示では第1層と呼ばれる)ディープニューラルネットワークは、線形演算として内積が使用される場合、畳み込みニューラルネットワーク(CNN)と呼ばれ、フィルタの繰り返し適用後に畳み込みが行われる。
【0078】
ニューラルネットワークの出力層の前に、少なくとも2つの層が密接に接続されていることが多く、すなわち、前の層の全ての要素(ニューロン)が直後の層の全ての要素(ニューロン)に接続されている(いわゆる完全接続層)。これらの層を最初に説明した第1層と区別するために、互いにしっかりと接続された任意の層は、本開示では第2層と呼ばれる。少なくとも2つの第2層のうちの1つが出力層を形成することも提供されることができる。
【0079】
ニューラルネットワークの入力層に供給される入力データは、以下の例が示すように、グリッドに配置されることができ、グリッドは、異なる寸法および異なる数のチャネル(データチャネルまたはチャネル)を有することができる:
- 1チャネルの1Dグリッド:オーディオ信号の形式の入力データであり、振幅は、離散的な時間ステップに沿って表されることができる
- 1チャネルの2Dグリッド:モノクロ画像信号の形態の入力データであり、画像信号を表すグレースケール画素は、高さおよび幅に沿って表されることができる
- 3チャネルの2Dグリッド:カラー画像信号の形態の入力データであり、赤、緑、および青の色のうちの1つの強度は、高さおよび幅に沿って配置されることができる、チャネルごとにピクセルで表されることができる
- 1チャネルの3Dグリッド:例えば医療イメージングなどの体積データの形態の入力データ
- 3チャネルの3Dグリッド:カラービデオデータの形式の入力データであり、赤、緑、および青の色のうちの1つの強度は、高さおよび幅に沿って配置されることができる、チャネルごとにピクセルで表されることができ、追加の軸は時間を表す
【0080】
入力データサイズは、存在するグリッド寸法およびチャネルに関連して存在する入力データの量に依存し、例えば、p・qエントリおよびkチャネルを有する2Dに存在する入力データの場合、p・q・kである。チャネル毎に、入力データサイズはp・qである。フィルタを使用することによって、異なる入力データサイズを有する入力データが1つの同じニューラルネットワークに使用されることができることに留意されたい。チャネル数は、深さ(順次配置される層の数であるニューラルネットワークの深さと混同しないようにする)と呼ばれることがあるため、入力データは、縦・横・奥行きの形式で存在すると言える。
【0081】
単一のフィルタ(カーネルと呼ばれることが多い)は、それが適用される入力データと常に同じ数のチャネルを有し、通常は同じ数の次元も有するため、2D入力データの場合、通常は2Dフィルタが使用される(ただし、次元数の対応は必ずしも必要ではない;例えば、2D入力データの場合、1Dフィルタが代わりに使用されることができる)。チャネルごとのフィルタサイズ(フィルタが関連付けられている第1層に関連して、受容野サイズとも呼ばれる)は、チャネルごとの入力データサイズよりも小さく、通常ははるかに小さい(1桁以上小さい)。受容野のサイズは、フィルタが適用される入力データのどのセクションにフィルタがチャネルごとおよび適用ごとに取り込むかを示す。l・m個のエントリおよびk個のチャネルを有する2Dのフィルタの場合、受容野のサイズはl・mであり、フィルタサイズはl・m・kである。フィルタに関しては、高さ・幅・深さの形式で存在すると言うこともできる。
【0082】
受容野のサイズは、チャネル当たりの入力データサイズよりも小さいため、線形演算(フローティングウィンドウ演算)を実行するために、入力データの異なる点に全く同じフィルタが適用されることができる。密接に接続された層の間とは異なり、計算的に見てすぐ次の層の全ての要素が、計算的に見てすぐ前の層の全ての要素に接続されているわけではない。
【0083】
いわゆるストライドは、1つの同じフィルタが適用される入力データの異なる点が互いにどれだけずれているかを示す。
【0084】
フィルタは、少なくとも1つのフィルタパラメータ(例えば、フィルタおよび/またはバイアスパラメータのグリッド内の行列エントリ)によって特徴付けられることができ、その結果、入力データの異なる位置での1つの同じフィルタの複数の適用は、いわゆるパラメータ共有をもたらす。各実装における各チャネルについて得られた線形演算の計算結果は、結果データを形成するために全てのチャネルにわたって合計され、結果データは、計算的に見て次の層の入力データとして機能する。これは、各異なる位置で直ちにまたは後に行うことができる。
【0085】
1つの同じフィルタを入力データに複数適用すること(フローティングウィンドウ演算)に関して、このフローティングウィンドウ演算は、入力データの縦および横の各深さ寸法に利用可能な部分データを列ベクトルに変換し(いわゆる平坦化)、フィルタを行列に変換することによって、単一の行列乗算として単一の作業ステップで数学的に等価に実行されることができることに留意されたい。ベクトルに行列を乗算すると、フローティングウィンドウ演算と同じ結果データが得られる。このプロセスは、当該技術分野の背景技術(例えば、「Charu C.Aggarwal,Neural Networks and Deep Learning,Springer International Publishing AG 2018,Chapter 8.3.3,page 335ff.section)に対応するため、ここでは詳細に説明しない。本開示に関連して、そのような行列乗算の可能性は、フローティングウィンドウ演算が言及または説明されるときに常に含まれる。
【0086】
既に説明したように、特定の次元および特定の数のチャネルを有する入力データは、入力層を介してニューラルネットワークに供給される。第1層の結果データのチャネルの数が、この第1層に関連付けられ、この第1層によって使用されるフィルタの数によって与えられることから、第1層による処理の後、結果データは、同じ次元性を有するが、通常は異なる数のチャネル(したがって、異なるデータサイズ)を有するこれらの入力データから生成される。例えば、入力層を介して供給される入力データの入力データサイズが3チャネルで32・32であり、10個のフィルタが使用される場合(受容野のサイズが5・5であり、当然ながら3チャネルである場合)、この第1層の結果データは、10チャネルで28・28となる。この結果データは、入力データとして計算的に見て(通常は非線形活性化関数を適用した後)、直後のさらなる第1層に利用可能にすることができる。
【0087】
第1層で実行される線形演算ならびに実行される任意のプーリングおよび/またはダウンサンプリング法は、チャネル当たりのデータサイズの縮小につながる。
【0088】
パディング法は、結果データのデータサイズの縮小を防止または低減するために使用されることが多い。
【0089】
数学的には、n個のグリッド次元およびm個のチャネルに存在する入力データおよび/またはフィルタは、n・m個のテンソルとして表されることができる。そのようなテンソルは、入力データの個々の要素の空間的関係を維持しながらベクトルとして表されることもできることに留意されたい。
【0090】
通常、第1層ごとにいくつかの異なるフィルタ(例えば異なる寸法および/またはフィルタパラメータによって互いに異なる)が使用され、各フィルタのチャネルの数は、当然ながら、それぞれの第1層によって処理される入力データのチャネルの数に対応しなければならない。背景技術では、フィルタの数は、異なる第1層に対して異なる。
【0091】
内積は、線形演算として使用されることが多く、第1層に関連するフィルタのフィルタサイズは、入力データサイズよりも小さく、フィルタは、それぞれ入力データ内の異なる点において線形演算を実行し、数学的に畳み込みと言うことができる。
【0092】
上記の記述は、当然ながら、本発明の第1および/または第2および/または第3の変形例の範囲内でも適用可能であり、本発明の第1および/または第2および/または第3の変形例の例示的な実施形態において使用されることができる。
【0093】
本発明の第2の変形例の目的は、特に、入力層と出力層との間に複数の第1層を有するニューラルネットワークによってデータを処理するためのコンピュータ実装方法であって、フィルタが、各第1層に関連付けられ、この方法が、そのようなネットワークが実装される論理モジュール、そのような論理モジュールを有する装置、方法を実行するためのコンピュータプログラム製品、およびコンピュータ可読記憶媒体を提供するために、より低いエネルギー消費および/またはより低いコストでハードウェアに実装されることができる、コンピュータ実装方法を提供することである。
【0094】
この目的は、請求項16の特徴を有するコンピュータ実装方法、そのような方法を実行するように構成された論理モジュール、請求項30の特徴を有する論理モジュール、そのような論理モジュールを有する装置、そのような方法を実行するためのコンピュータプログラム製品、およびそのようなコンピュータプログラム製品を有するコンピュータ可読記憶媒体によって達成される。
【0095】
ニューラルネットワークによってデータを処理するための本発明の第2の変形例にかかるコンピュータ実装方法は、入力層と出力層との間に複数の第1層を有するニューラルネットワークを提供し、フィルタは、複数の第1層の各第1層に関連付けられ、
- 複数の第1層の各第1層において、複数の第1層のそれぞれの第1層に関連付けられたフィルタを使用して、線形演算によって入力データから1つ以上のチャネルで結果データが生成され、入力データがチャネルごとに入力データサイズを有し、
- 複数の第1層の各第1層について、第1層に関連するフィルタの受容野のサイズは、フィルタがそれぞれ関連付けられ、フィルタが入力データの異なる点においてそれぞれ線形演算を実行する複数の第1層のその第1層のチャネル当たりの入力データサイズよりも小さく、
- 複数の第1層のうちの少なくとも1つの第1層において、非線形活性化関数が、活性化結果データの形態の結果データを生成するために結果データに適用される。
【0096】
入力層と出力層との間に存在する複数の第1層に関して、本発明の第2の変形例によれば、
- 複数の第1層のうちの第1層に関連付けられたフィルタの数が、複数の第1層のうちの第1層のそれぞれについて同じであり、第1層のそれぞれにおいて、それぞれの第1層に関連付けられたフィルタのそれぞれが線形演算に使用され、
- 各フィルタが、好ましくは、結果データを生成するときに、入力データの異なる点においてそれぞれのフィルタによって実行された演算の結果が考慮される程度を判定する重み係数に関連付けられる、ことが提供される。
【0097】
データフローが、計算的に見て連続的に配置された一連の第1層に沿って続く場合、個々の第1層に関連付けられたフィルタの数は、したがって一定のままである。
【0098】
第1層に関連付けられたフィルタの数は、入力層と出力層との間に配置された全ての第1層について同じであるため、各第1層の結果データは、同じ数のチャネルを有する。様々なフィルタの受容野も同じになるように選択される場合、フィルタサイズは一致する。
【0099】
重み係数は、異なる数値を有することができる;これらは、当該技術分野の背景技術(例えば、逆伝播)に対応する方法で訓練されることができる。ニューラルネットワークの訓練が、結果データを判定するときに選択されたフィルタの計算結果が関連性を有しないことを示す場合、このフィルタには、例えば、0の数値または0に近い数値を有する重み係数が与えられる。適切な数値を選択することにより、例えばフィルタの計算結果にその重み係数を乗算することによって、選択されたフィルタの効果が固定されることができる(例えば、他のフィルタに関連してスケーリングされる)。
【0100】
ニューラルネットワークが再び訓練されると、重み係数が変化する可能性がある。
【0101】
本発明の有利な実施形態は、従属請求項に定義されている。
【0102】
複数の第1層のうちの少なくとも第1層において、好ましくは複数の第1層において、または全ての第1層において、非線形活性化関数(例えば、ReLU)が、活性化結果データの形態の結果データを生成するために結果データに適用されることが実現されることができる。
【0103】
複数の第1層のうちの少なくとも1つの第1層、好ましくは複数の第1層または全ての第1層において、縮小法および/またはプーリング法(例えば、最大プーリングまたは平均プーリング)および/またはダウンサンプリング法が結果データの数に適用されることが提供されることができる。
【0104】
複数の第1層のうちの少なくとも1つの第1層、好ましくは複数の第1層または全ての第1層において、入力データの異なる点において実行される線形演算は内積であり、結果データは、畳み込みの結果であることが提供されることができる。この場合、少なくとも1つの第1層は、畳み込み層と呼ばれることができ、ニューラルネットワークは、畳み込みニューラルネットワーク(CNN)と呼ばれることができる。
【0105】
ニューラルネットワークは、計算的に見て複数の第1層の背後に、互いに密接に接続された少なくとも2つの第2層を有し、出力層は、計算的に見て少なくとも2つの第2層の背後に順次配置されるか、または計算的に見て最後に順次配置された第2層が出力層として形成されるかのいずれかであることが提供されることができる。
【0106】
それは、複数の第1層のうちの少なくとも2つの第1層が、計算的に見て入力層と出力層との間に順次配置されるように設けられることができる。
【0107】
それは、複数の第1層のうちの少なくとも2つの第1層が、計算的に見て入力層と出力層との間に並列に配置されるように設けられることができる。したがって、少なくとも2つのデータフローが並列に行われることができる。
【0108】
当該技術分野の背景技術と同様に、フィルタのパラメータは、ニューラルネットワークの訓練中に教示されることができる。
【0109】
第1層の入力データに対してパディング法が実行されることができる。
【0110】
本発明の第2の変形例にかかる論理モジュール、特にASICにおいて、複数の第1層を有するニューラルネットワークのニューラルネットワーク計算を実行するための、特に本発明の第2の変形例にかかる方法を実行するための電子回路構成は、論理モジュールが製造された後にもはや変更されることができないという意味で固定されている。
【0111】
そのような論理モジュールは、ニューラルネットワークに入力を供給するための少なくとも1つの信号入力と、出力を供給するための少なくとも1つの信号出力とを有する。例えば、信号入力は、適切な信号発生装置(例えば、2Dまたは3Dカメラ、マイクロフォン、非視覚または非可聴測定用のセンサなど)と直接通信することができ、あるいはメモリまたはプロセッサからデータを受信することができる。信号出力は、撮像装置、メモリ、プロセッサ、またはアクチュエータ、例えば車両と通信することができる。
【0112】
そのような論理モジュールはまた、以下を有する:
- それぞれがニューラルネットワークの第1層を表す複数の第1層回路構成であって、各第1層回路構成が、入力データを受信するための少なくとも1つの信号入力と、結果データを出力するための少なくとも1つの信号出力とを有し、各第1層回路構成が、少なくとも1つの第1層を有し、各場合において、1つ以上のチャネルにおいて、線形演算によって、少なくとも1つの第1層に関連付けられたいくつかのフィルタを使用して、チャネル当たりの入力データサイズを有する入力データからいくつかの結果データが生成されることができ、少なくとも1つの第1層に関連付けられたフィルタの受容野のサイズが、少なくとも1つの第1層のチャネル当たりの入力データサイズよりも小さく、フィルタのそれぞれが、入力データの異なる点においてチャネル当たりの線形演算を実行し、第1層回路構成の全てが、少なくとも1つの第1層に関連付けられた同じ数のフィルタを有し、各第1層回路構成の少なくとも1つの第1層のそれぞれにおいて、それぞれの第1層に関連付けられたフィルタのそれぞれが、線形演算に使用され、好ましくは、各フィルタが、入力データの異なる点においてそれぞれのフィルタによって実行された演算の結果が結果データの生成において考慮される程度を判定する重み係数に関連付けられることが提供される、複数の第1層回路構成、
- 信号出力に接続された出力回路構成、
- 複数の層回路構成とデータ通信し、変更可能な仕様にしたがって、データフローが論理モジュールの信号入力から個々の層回路構成へと、個々の層回路構成間で、および個々の層回路構成から出力回路構成へと伝導される順序を指定するために、ニューラルネットワークのネットワークアーキテクチャを定義するように設計された少なくとも1つのスケジューラ回路構成。
【0113】
そのような論理モジュールでは、論理モジュールが製造された後にはもはや変更されることができないという意味で、個々の層回路構成が固定されているニューラルネットワークが構成されるが、そのために、スケジューラ回路構成に対応する仕様によって1つの同じ論理モジュールに対して異なるネットワークアーキテクチャが実現されることができる。
【0114】
信号入力からデータフローを計算的に直接受信すると考えられる第1層回路構成は、ニューラルネットワークの入力層を表す。出力回路構成は、ニューラルネットワークの出力層を表す。第1層回路構成間のデータフローは、変更可能な仕様にしたがってスケジューラ回路構成によって指定されたネットワークアーキテクチャに対応するように行われる。
【0115】
本発明の第2の変形例にかかる論理モジュールの有利な実施形態は、従属請求項に定義されている。
【0116】
本発明の第2の変形例にかかる論理モジュールは、好ましくは、フィルタの数(当然ながら、全ての第1層回路構成が常に同じ数のフィルタを有するように)および/またはフィルタパラメータおよび/または受容野および/または重み係数のその後の変更が必要とされないように、ニューラルネットワークの推論演算のために提供される。このため、それらは、好ましくは論理モジュール内で固定された方法で、すなわち変更不能に構成されることができる。しかしながら、これらの変数が変更されることができるように論理モジュールのRAM回路構成に記憶されることが代替的に提供されることができる。
【0117】
複数の第1層回路構成のうちの少なくとも1つの第1層回路構成、好ましくは複数の第1層回路構成、または全ての第1層回路構成において、入力データの異なる点に対して実行される線形演算は、内積であり、結果データは、畳み込みの結果であることが提供されることができる。この場合、少なくとも1つの第1層回路構成は、畳み込み層回路構成と呼ばれることができ、論理モジュール内に構成されたニューラルネットワークは、畳み込みニューラルネットワーク(CNN)と呼ばれることができる。
【0118】
少なくとも1つの第1層回路構成、好ましくは複数の第1層回路構成、または全ての第1層回路構成において、以下のリストから選択される少なくとも1つ、好ましくはいくつか、または全ての機能モジュールが形成されることが提供されることができる:
- キャッシュメモリシステム、
- 存在することができる任意のバイアスを除去するためのバイアスモジュール、
- 調整処理を行う調整モジュール、
- プーリング法、例えば最大プーリングまたは平均プーリングを実行するためのプーリングモジュール、
- 非線形活性化関数を実行して、活性化結果データの形態の結果データを生成するための活性化モジュール、
- パディング法を実行するためのパディングモジュール。
【0119】
複数の第1層回路構成のうちの少なくとも1つの第1層回路構成、好ましくは複数の第1層回路構成において、または全ての第1層回路構成において、いくつかの(例えば、上記のリストで指定された機能モジュールの全て)が固定され、複数の第1層回路構成のうちの少なくとも1つの第1層回路構成において、好ましくは複数の第1層回路構成において、または全ての第1層回路構成において、機能モジュールのうちのどれがアクティブであるべきか、およびアクティブでないべきかが(例えばスケジューラを介して)指定されることができることが提供されることができる。したがって、第1層回路構成のいくつかまたは全てが同じ固定機能モジュールで構成されるが、同じ機能モジュールが全ての層の回路構成でアクティブになるように切り替えられない場合、それらの機能は、依然として互いに異なることが可能である。
【0120】
以下、各機能モジュールの機能について説明する。
【0121】
このキャッシュメモリシステムでは、第1層回路構成の各フィルタについて、チャネル毎にフィルタが行う線形演算の合計が、全チャネルにわたって実行されることができる。追加的または代替的に、他の第1層回路構成から到来する項など、他の項が線形演算の結果に加算されてもよい。異なる合計は、異なる第1層回路構成のキャッシュメモリ構成において提供されることができる。
【0122】
バイアスモジュールでは、線形演算の結果の望ましくない数値成長を回避するために、存在する可能性があるバイアスが除去されることができる。
【0123】
非線形活性化関数(例えば、ReLU)が調整モジュールにおいて実行されて、活性化結果データの形態の結果データを生成することができる。様々な非線形活性化関数が、異なる第1層回路構成の活性化モジュールに設けられることができる。
【0124】
当該技術分野の背景技術にしたがって設計されたプーリングおよび/またはダウンサンプリング法は、プーリングモジュールで実行されることができる。異なる第1層回路構成のプーリングモジュールには、異なるプーリングおよび/またはダウンサンプリング法が設けられることができる。
【0125】
ネットワークアーキテクチャは、スケジューラ回路構成によって、
- 少なくとも2つの第1層回路構成が、計算的に見て入力層と出力層との間に順次配置され、および/または
- 少なくとも2つの第1層回路構成が、計算的に見て入力層と出力層との間に並列に配置されるように定義されることが提供されることができる。
【0126】
データフローが、第1層回路構成の少なくとも1つの機能モジュールから別の第1層回路構成の少なくとも1つの機能モジュールへと直接、すなわち、一方の第1層回路構成の信号出力を介して他方の回路構成の信号入力へ進むことなく伝導されるように、スケジューラ回路構成によってネットワークアーキテクチャが定義されることが提供されることができる。例えば、場合によっては他の第1層回路構成の線形演算の結果データとともに、第1層回路構成の線形演算の結果データが、活性化結果データの形態の結果データを生成するための非線形活性化関数を実行するための他の層回路構成内の活性化モジュールに供給されることが提供されることができる。
【0127】
ネットワークアーキテクチャは、少なくとも1つの第1層回路構成がデータフローに対して2回以上トラバースされるように、すなわち、データフローが、この少なくとも1つの第1層回路構成の信号出力からこの少なくとも1つの第1層回路構成の信号出力までの計算の過程で少なくとも1回実行されるように、スケジューラ回路構成によって定義されることが提供されることができる。
【0128】
密接に相互接続された第2の層を表し、出力層が、計算的に見て(すなわち、データフローに関連して)少なくとも2つの第2層の背後に順次に配置されるか、または計算的に見て最後の層が出力層として形成されるように順次に配置される、少なくとも2つの第2層回路構成が論理モジュール内に固定的に予め定められることが提供されることができる。
【0129】
本発明の第2の変形例にかかる論理モジュールを有する装置では、装置上または装置内に配置された少なくとも1つの信号発生装置によって入力される少なくとも1つの信号を介して、ニューラルネットワーク計算のための入力として少なくとも1つの論理モジュールに信号が供給されることができ、少なくとも1つの論理モジュールは、装置の制御もしくは調整装置と通信するため、または装置の少なくとも1つのアクチュエータへの制御コマンドの出力のための少なくとも1つの信号出力を有することが提供される。これは、支援動作または装置の自律動作に使用されることができる。装置は、例えば、車両またはロボットとして設計されることができる。
【0130】
第1および第2の変形例とは独立した第3の変形例では、本発明は、請求項23のプリアンブルの特徴を有する方法、そのような方法を実行するための論理モジュール、そのような論理モジュールを有する装置、方法を実行するためのコンピュータプログラム、および記憶媒体に関する。
【0131】
FPGAおよびASICなどの論理モジュール上のニューラルネットワークの構成は、必要とされる高い計算能力および大規模なメモリ要件のために困難であることが多い。
【0132】
Ilkay Wunderlich、Benjamin KochおよびSven Schonfeldによる刊行物「An Overview of Arithmetic Adaptations for Inference of Convolutional Neural Networks on Re-configurable Hardware」(https://www.iaria.org/conferences2020/ProgramALLDATA20.html))は、必要とされる計算能力およびメモリが少なくなるように、この移植をどのようにして達成されることができるかに関する戦略を提示している。主な焦点は、いわゆる量子化であり、ここでは、ニューラルネットワークの訓練中に浮動数演算が基本演算構造として使用され、推論演算中に整数演算が使用され、訓練中に浮動数として判定されたニューラルネットワークのパラメータ値は、スケーリングファクタとの乗算およびそれに続く整数値への丸めによって量子化される。これは、ニューラルネットワークの演算にも当てはまり、例えば、畳み込み演算はint32に基づいて実行されることができ、および/または量子化された非線形活性化関数は非線形活性化関数として使用されることができる。
【0133】
本発明の第1の、第2の、または第3の変形例でも使用されることができる刊行物に記載された手段は、論理モジュールの外部で訓練され、論理モジュールに移植されたニューラルネットワークの推論演算を著しく加速させた。
【0134】
本発明の第3の変形例の目的は、特に、ニューラルネットワークによってデータを処理するためのコンピュータ実装方法であって、論理モジュールに実装された場合に、より高速な推論演算、そのようなニューラルネットワークが実装された論理モジュールの提供、そのような論理モジュールを有する装置、方法を実行するためのコンピュータプログラム製品、およびコンピュータ可読記憶媒体を可能にする、コンピュータ実装方法を提供することである。
【0135】
この目的は、請求項23の特徴を有するコンピュータ実装方法、そのような方法を実行するように設計された論理モジュール、そのような論理モジュールを有する装置、そのような方法を実行するためのコンピュータプログラム製品、およびそのようなコンピュータプログラム製品を有するコンピュータ可読記憶媒体によって達成される。
【0136】
本発明の第3の変形例にかかる方法は、ニューラルネットワークによってデータを処理するためのコンピュータ実装方法を提供し、ニューラルネットワークが、入力層と出力層との間に複数の第1層を含み(フィルタは、複数の第1層の各第1層に関連付けられることができる)、
- 複数の第1層の各第1層において、入力データから(好ましくは、複数の第1層のそれぞれの第1層に関連付けられたフィルタを使用して)線形演算によって1つ以上のチャネルで結果データが生成され、入力データがチャネルごとに入力データサイズを有し、
- (任意に、複数の第1層のうちの第1層ごとに、第1層に関連付けられたフィルタの受容野のサイズは、フィルタがそれぞれ関連付けられた複数の第1層のうちのその第1層のチャネルごとの入力データサイズよりも小さく、フィルタは、入力データの異なる点においてそれぞれ線形演算を実行する)
- 複数の第1層のうちの少なくとも1つの第1層において、非線形活性化関数が、活性化結果データの形態の結果データを生成するために結果データに適用され、
- 複数の第1層のうちの少なくとも1つの第1層、好ましくは複数の第1層のうちの全ての第1層における(好ましくは論理モジュールの外部で行われる)ニューラルネットワークの訓練中に、第1の画像領域を有する非線形活性化関数が活性化結果データを生成するために使用され、
- 論理モジュールを使用して実行されることが好ましいニューラルネットワークの推論演算中に、複数の第1層のうちの少なくとも1つの第1層において、好ましくは複数の第1層のうちの全ての第1層において、第2の画像領域を有する非線形活性化関数が活性化結果データを生成するために使用され、第2の画像領域が第1の画像領域の真のサブセットを形成する。
【0137】
第1の画像領域(すなわち、第1および第2の画像領域は同一ではない)の真のサブセットである第2の画像領域(活性化結果データが存在する)を有する非線形活性化関数の使用は、以下では「活性化クリッピング」と呼ばれる。
【0138】
活性化クリッピングでは、活性化結果データの値の範囲が制限される(より大きい第1の画像領域からより小さい第2の画像領域へ)。この目的のために、例えば、「下限L」および「上限U」と呼ばれる下限および/または上限に対して値が設定される。上限および下限の数値は、例えば、符号を除いて同じであってもよく、または異なる数値を有してもよい。下限および/または上限の定義と同等に、対応する範囲が当然定義されることができる。
【0139】
当業者は、達成されるべき精度を考慮して、本発明にかかる方法を実行する速度を高めるために上限および/または下限を選択する。上限が下限に近く対応するか、または上限が下限に対応するような小さい範囲を選択することは、本発明にかかる方法の精度の低下を伴う可能性がある。
【0140】
例として活性化クリッピングを実行するために使用されることができる関数は、以下では「クリッピングされた」活性化関数または「クリッピング関数」と呼ばれ、ニューラルネットワークの推論演算中に上限/下限を上回る/下回る非線形活性化関数の結果データが上限/下限にマッピングされ、上限と下限との間にあるそのような結果データが変化しないように定義されることができる。この場合、上限と下限との間で、結果データは、訓練において既に選択された非線形活性化関数に対応するコースを有するが、これらの範囲外では、それぞれ選択された上限および下限の形式の定数値が存在し、その結果、クリッピングされた活性化関数の(第2の)画像領域は、訓練において使用される非線形活性化関数の(第1の)画像領域の実際のサブセットである。
【0141】
L=0およびU=6を有するReLU-6関数など、値の範囲の下限および上限を既に含むいくつかの非線形活性化関数があることに留意されたい。しかしながら、そのような活性化関数は、既に訓練で使用されている場合、LReLUなどの非線形活性化関数が訓練で使用され、クリッピングされた活性化関数が推論演算で使用される場合よりも著しく低い精度を提供する。訓練で使用される非線形活性化関数は、制限されない(第1の)画像領域を有することができる。
【0142】
活性化クリッピングは、論理モジュール上に構成されたニューラルネットワークの推論演算の速度を増加させる。例えば、320×320×3の入力サイズを有するTinyYOLOv3 CNNを移植してカメラ画像またはビデオストリーム内のオブジェクトまたは人物を分類する場合、XILINX Artix-7 FPGAに移植されたときに約50%のフレームレートの増加が達成され、これは待ち時間の短縮を意味する。
【0143】
異なる画像領域(例えば、訓練中のLReLUおよびクリッピング関数を有するLReLUの合成から生じる活性化関数クリップ-LReLU)を除いて同一であるニューラルネットワークの訓練中および推論演算中に非線形活性化関数を使用することが特に好ましい。
【0144】
活性化クリッピングを実行するために、以下のいずれかが提供されることができる:
- 第1のステップでは、第1の画像領域を有する非線形活性化関数(好ましくは訓練中に既に使用されていた活性化関数)を使用し、次いで第2のステップでは、第1の画像領域を第2の画像領域に縮小すること(すなわち、活性化後にのみクリッピングする)、または
- 既に第2の画像領域(すなわち、活性化中に既にクリッピングされている活性化関数を使用して、クリッピングが別個のステップとしてもはや必要とされないようにする)を有する非線形活性化関数を直ちに使用すること。
【0145】
非線形活性化関数としては、ReLU関数または漏洩ReLU関数(LReLU)が使用されることが好ましい。これらの関数は、tanhなどの他の非線形活性化関数と比較して複雑度が低いことを特徴とし、これにより、計算コストが低くなり、固定小数点演算を有するハードウェアでの実装が容易になる。
【0146】
ニューラルネットワークの訓練中に浮動数演算が使用され、これがニューラルネットワークの推論演算のための整数演算に量子化されることが提供されることができる。
【0147】
ニューラルネットワークの量子化に関する上記刊行物に既に記載されているように、結果活性化データを所定の整数データ型、好ましくはuint8にマッピングするマッピング演算が、第2の画像領域に位置する結果活性化データに適用されることが提供されることができる。
【0148】
先に引用したニューラルネットワークの量子化に関する刊行物に既に記載されているように、線形演算(好ましくは後続の第1層に関連付けられたフィルタを使用する)によって複数の第1層のうちの後続の第1層において結果データを生成する前に、所定のデータ型にマッピングされた結果活性化データにデマッピング演算が適用されることが提供されることができる。
【0149】
本発明の第1の変形例、本発明の第2の変形例および本発明の第3の変形例は、一緒に使用されることができる。本発明の1つの変形例に関してなされた記述は、本発明の他の変形例に関しても適用可能である。特に、最適な数のフィルタ(例えば、「プルーニング」または「スパイク」方法のさらなる開発)を判定するための本発明の第1の変形例に関して説明した新規な方法は、本発明の第2および/または第3の変形例でも使用されることができる。
【0150】
本発明の第1および/または第2および/または第3の変形例にかかる本発明にかかる方法において使用されることができるフィルタ、例として
図1に示す。本発明の第1の変形例にかかる方法は、添付の
図2から
図6によって説明され、本発明の第2の変形例にかかる方法、本発明にかかる論理装置、本発明の第2の変形例にかかる方法によって計算されることができ、および/または本発明にかかる論理装置に表されるニューラルネットワークの表現、および本発明にかかる論理装置を有する装置が
図7から
図11に示され、本発明の第3の変形例にかかる方法が
図12から
図14に示され、図に含まれる略語は、以下の要素を示す。
【0151】
ID、ID#、ID’’ 入力データ
OD 結果データ(出力データ)
WF 重み係数
1(第1の)フィルタリング法ステップ
2(第2の)フィルタリング法ステップ
3 結果データを入力データとしてフィードバック
4 矩形
5 回路
6 装置
7 論理モジュール
8 装置の制御または調整装置
9 信号発生装置
10 装置のアクチュエータ
100 ニューラルネットワーク
101 第1層
102 第2層
103 入力層
104 出力層
105 フィルタ
200 論理モジュール
201 第1層回路構成
202 第2層回路構成
203 信号入力
204 信号出力
205 スケジューラ回路構成
206 RAM回路構成
207 キャッシュメモリシステム
208 BIASモジュール
209 調整モジュール
210 プーリングモジュール
211 パディングモジュール
【0152】
主題は、特許請求の範囲によって定義される。
図2、
図3、および
図4、ならびに図面の説明は、第1および/または第2および/または第3の変形例にかかる図面に示された本発明にかかる方法の実施形態を示すにすぎない。当業者は、全ての図に対する図の説明を互いに組み合わせること、または1つの図に対する図の説明を上記の説明の一般的な部分と組み合わせることができる。
【図面の簡単な説明】
【0153】
【
図1a】当該技術分野の背景技術(方向θおよび周波数fを有する2Dガボールフィルタ)によるフィルタ基準の一例を示す図。
【
図1b】単一チャネル2D画像内の垂直データを検出するためのフォーマット3・3・1における2Dフィルタ(プレウィットフィルタ)を示す図。
【
図2】ニューラルネットワークにおいてデータを処理するための第1および/または第2および/または第3の変形例にかかる、本発明にかかる方法の実施形態を示す図。
【
図3】ニューラルネットワークにおいてデータを処理するための第1および/または第2および/または第3の変形例にかかる本発明にかかる方法のさらなる実施形態を示す図。
【
図4】第1および/または第2の変形例にかかる本発明にかかる方法の第1の実施形態と第2の実施形態との組み合わせを示す図。
【
図5】フィルタの数によって統一された形式のデータの分析を示す図。
【
図6】第1および/または第2および/または第3の変形例にかかる方法のさらなる実施形態を示す図。
【
図7】本発明にかかる論理モジュール、特にASICを示す図。
【
図8】
図7に示す論理モジュールのための様々な第1層回路構成の構造の例を詳細に示す図。
【
図9】本発明の第2の変形例にかかる方法を実行することができ、本発明にかかる論理モジュールに永続的に記憶されることができる、CNNの形態の推論演算における訓練されたニューラルネットワークの可能なアーキテクチャを示す図。
【
図10】本発明にかかる少なくとも1つの論理モジュールを有する車両の形態の本発明にかかる装置を示す図。
【
図11】本発明にかかる少なくとも1つの論理モジュールを有するロボットの形態の本発明にかかる装置を示す図。
【
図12】畳み込み層CONV、調整層RECT(非線形活性化関数が適用される)、および任意のプーリング層POOLを有するニューラルネットワークの第iの第1層を示す図。
【
図13】L=-2およびU=7のパラメータでクリッピングされたLReLU
0.1(z)の形態の非線形活性化関数の例を示す図。
【
図14a】任意の追加のマッピングおよびデマッピング法が示されている例示的な実施形態において、クリッピングが、活性化とは別個のステップとして提供されている図。
【
図14b】任意の追加のマッピングおよびデマッピング法が示されている例示的な実施形態において、クリッピングされた活性化関数を用いて(単一ステップで)活性化が行われている図。
【0154】
図1aは、当該技術分野の背景技術(方向θおよび周波数fを有する2Dガボールフィルタ)によるフィルタ基準の一例を示しており、このフィルタ基準は、フィルタに適用可能である。このフィルタ基準またはそのようなフィルタ基準を含むフィルタは、本発明にかかる方法の第1および/または第2および/または第3の変形例でも使用されることができる。
図1aに示すフィルタ基準の例では、出力データは、ピクセルの円錐度の関数としてフィルタ基準を含むフィルタとの重ね合わせによって入力データから判定される。
図1aに示すフィルタ基準に加えて、現在の教示にかかる他のフィルタ基準も使用されることができる。例えば、単一チャネル2D画像内の垂直データを検出するためのフォーマット3・3・1における2Dフィルタ(プレウィットフィルタ)を
図1bに示す。
【0155】
図2は、ニューラルネットワークにおいてデータを処理するための第1および/または第2および/または第3の変形例にかかる、本発明にかかる方法の実施形態を示している。
【0156】
入力データがi個のフィルタ(i=1、2、3...)を使用して分析されることは、当該技術分野の背景において周知である。この場合、入力データは、順次配置されたフィルタによって連続的に分析され、各フィルタはフィルタ基準を有する。個々のフィルタのフィルタ基準は、有利な方法で異なることができる。
【0157】
入力データIDは、第1のフィルタF1を使用した分析用の第1の入力データID1として受信され、第1の結果データOD1が判定される。第i-1の結果データODi-1は、第iのフィルタFiを使用した分析用の第iの入力データIdiとして到着し、第iの結果データODiが判定される。したがって、入力データIDは、i個のフィルタのチェーンを使用して分析され、チェーンの最後に判定された結果データODiは、i個のフィルタを使用するフィルタリング法ステップの結果データODに対応する。
【0158】
各フィルタFi(i=1、2、3、...)には、重み係数WFi(i=1、2、3、...)が対応付けられている。例えば、第1のフィルタF1には、第1の重み係数WF1が対応付けられている。第iの重み係数WFi(i=1、2、3、...)は、第iのフィルタFi(i=1、2、3、...)に対応付けられている。重み係数WFiとフィルタFiとの数学的関連付けは、フィルタFi(i=1、2、3、...)によって判定された結果データODi(i=1、2、3、...)にそれぞれの重み係数Wi(i=1、2、3、...)が乗算されるようにすることができる。重み係数とフィルタとの関連付けは、重み係数Wiが0に等しいとき、結果データODiが値0を有するような論理を含むこともできる。
【0159】
図2に示され、参照番号1によって識別される線は、フィルタリング法ステップに対応する。フィルタリング法ステップ1は、フィルタリング法ステップの出力データを後続のフィルタリング法ステップの入力データとしてフィードバックすることによって繰り返されることができる。有利な方法では、結果データODは、フィードバックされる前にメモリに記憶され、この任意のプロセスは
図2には示されていない。後続のフィルタリング法ステップのための入力データとしての出力データのフィードバックは、
図2の矢印2によって表されている。
【0160】
第1および/または第2および/または第3の変形例にかかる
図2に記載された本発明にかかる方法の実施形態は、フィルタリング法ステップの数にわたるフィルタFi(i=1、2、3...)の数が不変であることを特徴とする。したがって、全てのフィルタリング法ステップは、結果データを生成するための静的数のフィルタを有する。
【0161】
背景技術によれば、i=1、2、3...は、それぞれの分析問題に適合した量を有する;iは、特定の分析問題によって変化する。この結果、現在の教示が排他的に適用される場合、参照番号3によって
図2に示されるようなフィルタリング法ステップではなく、1つの方法ステップが繰り返されることができる。現在の教示の実施態様は、フィルタチェーンを形成するためだけにフィルタF1...Fiの順次配置に限定される。
【0162】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、iが静的値を有することを特徴とする。本発明にかかる方法が第1および/または第2の変形例にしたがって使用される場合、静的値は、システムが教示されているときにニューラルネットワークの原理に基づく分析に設定される。必要とされないフィルタの省略に基づく、上記簡単に説明した現在の教示の系統化とは対照的に、第1および/または第2の変形例にかかる本発明にかかる方法では、フィルタF1...Fiの静的数を維持しながら、0または0に近い重み係数が、必要とされないフィルタに関連付けられることが提供される。
【0163】
適用されるフィルタの静的数は、いくつかのフィルタの適用に基づくフィルタリング法ステップが反復可能であるという効果を有する。反復フィルタリング法ステップは、ASCIモジュールを備えるコンピュータプロセッサ上で有利な方法で実行されることができる。
【0164】
上述したように、各フィルタFi(i=1、2、3...)は、重み係数WFi(i=1、2、3...)に関連付けられている。
【0165】
重み係数WFi(n∈i=1、2、3、...)の重み係数WFnは、値0の重み係数値をとることができる。これは、重み係数WFnの値が0であるフィルタFnが関連付けられたフィルタFnが回路構成の点で保存され、それに対応して入力データIDnの分析が行われるが、結果データODnとWFnとの積は値0となるという効果を有する。したがって、フィルタFnは、フィルタリング法ステップの結果データODに影響を及ぼさない。
図2の上記の説明を参照すると、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、静的数のフィルタを維持しながら、フィルタの影響が、値0を有する関連する重み係数を介して0に等しく設定されることを特徴とする。
【0166】
重み係数Wi(n∈i=1、2、3、...)の重み係数WFnは、非ゼロの重み係数値をとることができる。これは、値が0である重み係数WFnが関連付けられたフィルタFnが回路構成に関して保存され、結果データODnとWFnとの積が0以外の値をとる入力データIDnの対応する分析が実行されるという効果を有する。したがって、フィルタFnは、フィルタリング法ステップの結果データODに影響を及ぼす。
【0167】
当業者は、有意な結果を達成するために、フィルタに関連付けられた少なくとも1つの重み係数が、フィルタリング法ステップにおいて異なる値を有することを認識する。フィルタFiに関連する重み係数WFiは、現在の教示の適用下でニューラルネットワークを教示することによって判定されることができる。当該技術分野の背景にかかる方法が精巧な方法で省略されている当該技術分野の背景にかかる方法とは対照的に、第1および/または第2の変形例にかかる本発明にかかる方法では、回路構成の観点から全てのフィルタが存在し、効率的な方法では、重み係数WFiを0または非ゼロに設定することにより、それぞれのフィルタFIは、それぞれのフィルタの結果データに影響を及ぼすまたは影響を及ぼさない。
【0168】
図3は、ニューラルネットワークにおいてデータを処理するための第1および/または第2および/または第3の変形例にかかる本発明にかかる方法のさらなる実施形態を示している。入力データIDは、フィルタ基準を定義し、フィルタリング法ステップ1、2において結果データODを生成するいくつかの少なくとも1つのフィルタFk(k=1、2、3、...)を使用して分析され、それによって、フィルタ基準に対応する、結果値を含む結果データODが生成され、重み係数WFkは、それぞれの場合にフィルタFkと関連付けられることができる。
【0169】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、静的数のk個のフィルタを特徴とする。
図3に示す方法は、結果データODを入力データIDとしてフィードバックすることによって、矢印2で示すように繰り返し実行されることができる。特に、反復フィルタリング法ステップは、ASCIモジュールを備えるコンピュータプロセッサ上で実行されることができる。
【0170】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、入力データIDが並列フィルタリング法ステップ1、2において分析されることを特徴とする。結果データODは、結果行列にまとめることができる。
【0171】
j番目の方法ステップの結果データODをj+1番目の方法ステップの入力データIDとしてフィードバックすることによって、本発明にかかる方法のこの実施形態は、第1および/または第2および/または第3の変形例にしたがって繰り返されることができる。
図3にかかる第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、結果データODがフィードバックされて第j+1の方法ステップを実行する前に、第jの方法ステップの結果データODをメモリ(
図3には示さず)に記憶する任意のステップを含むことができる。
【0172】
図2の図の説明に記載された実施形態と同様に、重み付け係数WFk(k=1、2、3...)はまた、
図3に示された第1および/または第2および/または第3の変形例にかかる本発明にかかる方法の実施形態におけるフィルタFkに関連付けられ、それによって、
図2の図の説明および説明の一般的な部分で述べられた効果および利点が達成されることができる。
【0173】
要約すると、フィルタの静的数を維持しながら、重み係数を介してフィルタをオンおよびオフに切り替えることができることが再び述べられる。
図3に示す方法は、フィルタの数kが一定であることを特徴とする。
【0174】
図4は、第1および/または第2の変形例にかかる本発明にかかる方法の第1の実施形態と第2の実施形態との組み合わせを示している。第1の実施形態および第2の実施形態は、
図2および
図3の図の説明を参照して上述したように、互いに独立した別個の方法として実行されることができる。
【0175】
一般的な用語で説明すると、入力データIDは、フィルタ基準を有するフィルタによって生成され、結果データODは、フィルタ基準に対応する。この方法は、j番目の方法ステップのODをj+1番目の方法ステップの入力データとしてフィードバックすることによって繰り返されることができる。
【0176】
入力データは、並列に実行されるk個のフィルタリング法ステップ1、2で分析され、kは、本発明にかかる方法が第1および/または第2の変形例にしたがって実行されるときの静的値を仮定する。フィルタリング法ステップ1、2は、i個のフィルタを含み、iは静的値を有する。第1および/または第2の変形例にかかる本発明にかかる方法は、フィルタリング法ステップ1、2が、フィルタリング法ステップ1、2の全てのj回の繰り返しにおいて同じ数のi、k個のフィルタ(i、k=1、2、3...)を有することを特徴とする。
【0177】
第1および/または第2の変形例にかかる
図2の図の説明に記載された本発明にかかる方法の実施形態と同様に、各フィルタFik(i、k=1、2、3...)は、関連する重み係数WFik(i、k=1、2、3...)を有し、第jの方法ステップの結果データODjに対するフィルタFik(i、k=1、2、3...)の影響は、重み係数Wik(i、k=1、2、3...)によって定義されることができる。重み係数Wikは、0の値または0に近い値に関連付けることができるため、有意なフィルタFik(i、k=1、2、3...)を維持しながらフィルタFik(i、k=1、2、3...)は、j番目の方法ステップの結果データODjに影響を与えない。
【0178】
重み係数Wikは、現在の教示を用いてニューラルネットワークを教示することによって判定されることができる。当業者は、意味のある結果を得るために、フィルタに関連する少なくとも1つの重み係数がフィルタリング法ステップにおいて異なる値を有することを認識する。
【0179】
フィルタFikに関連する重み係数Wikを、0または非ゼロに等しい上記の説明にしたがって選択することによって、フィルタの数は、
図4に示す個々のフィルタリング法ステップ1、2の第1および/または第2の変形例にかかる本発明にかかる方法の実施形態の全ての反復において同じままとすることができる。同様に、並列に実行されるフィルタリング法ステップ1、2の数は同じままとすることができる。フィルタ数Fik(i、k=1、2、3、...)の有利な剛性のために、ニューラルネットワークを使用してデータを分析するための本明細書に開示される方法は、剛性に構造化されたプロセッサ上で実行されることができる。
【0180】
当業者は、当該技術分野の背景から知られている縮小法を使用して結果行列の次元を縮小することができる。当業者は、例えば、最大プーリング法、平均化を伴う方法などを使用することができる。
【0181】
図4は、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法を使用したデータの分析の非常に簡略化された表現を示している。特に、
図2および
図3を参照すると、フィルタの直列および並列配置が非常に簡略化されて示されている。当業者は、CNNの現在の方法を参照すると、並列または直列に配置された方法ステップ以外の関係が可能であることを知っている。これは、並列方法ステップ1、2の間の破線矢印を使用して
図4に示されている。
図4に簡略化された概略的な方法で示されている方法は、CNNに関する現在の教示を組み込むことによって拡張されることができる。
【0182】
図2、
図3、
図4の図の上記の説明では、フィルタの不特定数i、kが言及されている。入力データを処理するときに適用可能なフィルタの数は、1つ以上のコンピュータプロセッサの特性によって判定される。
【0183】
図5は、フィルタの数によって統一された形式のデータの分析を示している。
【0184】
図5は、第1の入力データID’として文字および数字を有するアイチャートを含む。アイチャートの内容は、アイチャートが例えば文字および数字を含むことを除いて、本明細書に開示される本発明の説明にそれ以上関連しない。
【0185】
図5は、第2の入力値ID2として自動車の画像を含む。自動車の画像は、例えば、他の自動車のカメラによって記録されていることができ、他の自動車は、セルフステアリングシステムを含む。
図2に第2の入力値ID’’として示されている自動車の画像は、監視カメラからの画像とすることができる。
【0186】
図5で説明したように、第1の入力データは、第1のフィルタリング法ステップ1においてn個のフィルタによって分析される。フィルタの数を指定する(数nは、n=1、2、3...で一定である)。重み係数は、各フィルタに関連付けられ、各重み係数は、第1の入力データの分析のための重み係数値を有する。
【0187】
第1のフィルタF2に対応付けられる第1の重み係数W1は、例えば、重み係数の値がW1=0.05である。
【0188】
第2のフィルタF2に対応する第2の重み係数値W2は、重み係数値W2=0.0である。第2の重み係数値W2を0に等しく設定することにより、第1のフィルタリング法ステップ1におけるアイチャートの分析中に、得られた結果に対する第2のフィルタF2の影響が抑制される。
【0189】
第2のフィルタリング法ステップでは、多数のn個のフィルタが再び使用される。第1のフィルタリング法ステップ1で使用されるn個のフィルタの数は、第2のフィルタリング法ステップ2で使用されるn個のフィルタの数に対応する。
【0190】
第2のフィルタリング法ステップ2では、フィルタFnの影響(n=定数、n=1、2、3...)も重み係数によって判定され、重み係数は、フィルタFnに関連付けられる。第2のフィルタF2に関連する重み係数W2は、W2=00001の重み係数値を含み、第2の重み係数値は、アイチャートの分析の文脈ではほぼ0に等しい値を有する。したがって、第2のフィルタリング法ステップの第2のフィルタF2は、第1の入力データID’としてのアイチャートの分析に大きな影響を及ぼさない。
【0191】
第1のフィルタリング法ステップ1および第2のフィルタリング法ステップ2は、ASIC構成要素を備えるコンピュータプロセッサによって、第1および/または第2の変形例にかかる
図5に示す本発明にかかる方法の適用において実行されることができる。これは、この方法が異なるプロセッサでも実行されることができることを排除するものではない。さらに、第1のフィルタリング法ステップ1の分析は、第1のプロセッサで実行されることができ、第2のフィルタリング法ステップ2の分析は、第2のプロセッサで実行されることができる。
【0192】
図5はまた、第2の入力値ID’’としての画像データの分析を示し、どの第2の入力データID’’が別の装置によって取得され、どの第2の入力データID’’が根本的に異なる状況であるかを表している。
【0193】
第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、第1の入力値ID’を分析するための定数nのフィルタが、第2の入力値ID’’を分析するための定数nのフィルタに対応することを特徴とすることができる。これは、結果データに対するフィルタの影響が、本発明にかかる方法が第1および/または第2および/または第3の変形例にしたがって実行されるときにフィルタに関連する重み係数を介して制御されるために可能である。
【0194】
当業者は、
図5に示す方法を、数学的畳み込みのサブ方法および/またはデータ量を減らすためのサブ方法(「サブサンプリング」)および/または不要な情報を破棄するためのサブ方法(「プーリング」)および/またはデータを処理するための当該技術分野の背景から知られている分類のためのサブ方法(「完全接続層」)と組み合わせることができる。
【0195】
図6は、第1および/または第2および/または第3の変形例にかかる方法のさらなる実施形態を示し、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法は、少なくとも1つのさらなる方法ステップによって補足される。少なくとも1つのさらなる方法ステップは、以下に記載され、当該技術分野の背景から知られているさらなる方法ステップの群から選択されることができ、当該技術分野の背景から知られているニューラルネットワークの方法:パディングPAD、バッファメモリCACHE、等化BIAS、調整RECT(非線形活性化関数の適用)およびプーリングPOOLと組み合わせることができる。選択されたさらなる方法ステップの省略は、他のさらなる方法ステップによって達成されることができる効果に影響を及ぼさない。選択されたさらなる方法ステップの省略は、結果データにのみ影響を及ぼす。したがって、言及されたさらなる方法ステップは、任意の方法で組み合わせることができる。後者は
図6には示されていない;
図6は、さらなる方法ステップにかかる、第1および/または第2および/または第3の変形例にかかる、議論中の本発明にかかる方法の可能な補足を示している。
【0196】
さらなる方法ステップと第1および/または第2の変形例にかかる本発明にかかる方法との組み合わせは、第1および/または第2の変形例にかかる本発明にかかる方法と、判定された値の中間記憶なしのさらなる方法ステップとを含む方法の実施形態が実現可能であるという特別な効果を有する。これは、一定数のフィルタによって達成される。使用される計算ユニットに関して、一定数のフィルタは、計算ユニットに実装された論理の明確に定義された相互接続を可能にする。
【0197】
当業者はまた、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法を、本明細書に列挙されていないさらなる方法ステップと組み合わせることができる。
【0198】
図6は、第1および/または第2の変形例にかかる本発明にかかる方法と、矩形4によるさらなる方法ステップとを要約しており、第1および/または第2の変形例にかかる本発明にかかる方法と、全てのさらなる方法ステップが選択されたときに、好ましくは計算ユニット上で実行されるさらなる方法ステップとを含む。
【0199】
入力データIDは、所定のデータおよび/またはセンサによって判定されることができるデータとすることができる。データの起源は、
図6に示す方法の実施に影響を及ぼさない。単に以下の説明の理解を容易にするために、したがって決して限定的ではなく、入力データIDは、本明細書では説明しない白黒画像センサの特性を考慮して、画像センサによって判定され、640×480の行列フォーマットを有すると仮定する。
【0200】
入力データIDは、さらなる方法ステップとしてパディング法ステップPADに供給される。
【0201】
入力データIDは、いわゆる方法ステップCONVに供給され、方法ステップCONVでは、入力データIDは、上記の説明にかかる一定数のフィルタを有するCNNの教示を使用して、したがって第1および/または第2の変形例にかかる上記の本発明にかかる方法を使用して処理される。
【0202】
重み係数は、方法ステップCONVを実行するコンピュータプロセッサに供給されることができる。この目的のために、重み係数は、永続的メモリに記憶される。重み係数を記憶するためのメモリの構成自体は、
図6に示す方法の実装、または第1および/または第2の変形例にかかる本発明にかかる方法の実装に影響を及ぼさない。メモリの構成は、構成要素の設計に関連する問題にすぎない。
【0203】
結果値ODは、例えば、データを処理するために畳み込み層CONVにおいて4つのフィルタが使用される場合、640×480×4(入力データIDはグレー値画像である)の形式を有する。これと同様に、結果値ODは、16個のフィルタが使用される場合、640×480×16(入力データIDはグレー値画像)の形式を有することができる。
【0204】
一例として与えられる結果値の形式は、重み係数とは無関係である。重み係数が値0を有する場合、この重み係数を使用して計算された結果値は0である。このため、結果データODの内容のみが重み係数に依存する。
【0205】
結果データODは、バッファメモリCACHEに供給され、このバッファメモリCACHEは、演算ユニットの論理における従来技術にしたがって設計される。入力結果データODは、当該技術分野の背景技術にかかる方法を使用してバッファメモリ内で合計される。バッファメモリCACHEは、現在の教示を参照して可能であるが、本明細書で説明する方法の観点からはあまり有利ではないRAMメモリではないことが好ましい。技術の背景に応じた技術を使用し、上記の例を参照して、640×480×4の結果データは、640×480×1の行列フォーマットに合計される。
【0206】
合計されたデータは、バッファメモリCACHEから等化ステップBIASに供給され、等化ステップBIASでは、現在の教示を使用してデータが等化され、次に調整方法ステップRECTに供給され、最後にプーリング法ステップPOOLに供給される。方法ステップCACHE、BIAS、RECT、POOLは、当該技術分野の背景から知られている。
【0207】
等化ステップを実行するための等化パラメータは、矩形4によって表されるコンピューティングユニットの外部に記憶されることができる。現在の教示によれば、調整プロセスは、活性化としても知られており、調整プロセスまたはReLU法などの当該技術分野の背景技術にしたがって知られている活性化プロセスが使用される。
【0208】
さらなる結果値/OD/は、一定数のフィルタを用いたCNN教示を使用して、したがって第1および/または第2の変形例にしたがって上述した本発明にかかる方法を使用して、方法ステップCACHE、BIAS、RECT、POOLの群からのさらなる方法ステップを適用して、データの処理からの結果値ODから判定される結果値として定義される。
【0209】
矩形4によって要約されている、第1および/または第2および/または第3の変形およびさらなる方法ステップにかかる本発明にかかる方法は、データのフィードバックを記号化する矢印3によって示されているように、i倍(i=1、2、3...)繰り返されることができる。さらなる結果値/OD/は、第1および/または第2および/または第3の変形例にかかる本発明にかかる方法と、
図6には示されていない少なくとも1つのさらなる方法ステップとを含むさらなる計算ユニットに供給されることも考えられる。
【0210】
図6の方法ステップCONVによって表される第1および/または第2の変形例にかかる本発明にかかる方法、ならびにさらなる方法ステップCACHE、BIAS、RECT、POOLは、好ましくは、コンピューティングユニット上で実行される。第iの方法ステップにおける第1および/または第2の変形例にかかる、少なくとも1つのさらなる方法ステップの選択および他のさらなる方法ステップの非実行または省略、ならびに上述した本発明にかかる方法の実行/非実行について、コンピューティングユニットは、対応する回路5を備える。当業者は、このような回路5を用いてこのような計算ユニットを設計することができることは明らかである。回路5はまた、さらなる方法ステップを省略しながら結果値を読み出すことを可能にする。
【0211】
さらなる方法ステップCACHEによって実行される、第1および/または第2の変形例にかかる本発明にかかる方法から得られた結果値ODの合計は、必要なメモリが低減されることができるという効果を有する。
【0212】
図7は、本発明にかかる論理モジュール200、特にASICを示し、特に本発明にかかる方法を実行するための、複数の第1層101を有するニューラルネットワーク100のニューラルネットワーク計算を実行するための電子回路構成が恒久的に指定されている(すなわち、論理モジュールの製造後に変更不可能である)。
【0213】
論理モジュール200は、ニューラルネットワーク100のための(例えば、外部CPU213からの)入力を供給するための信号入力203と、ニューラルネットワーク100の出力を配信するための信号出力204とを有する。
【0214】
それぞれがニューラルネットワーク100の第1層101を表す複数(ここでは例示的に6つ)の第1層回路構成201が提供され、各第1層回路構成201は、入力データを受信するための少なくとも1つの信号入力と、結果データを出力するための少なくとも1つの信号出力とを有し、各第1層回路構成201は、少なくとも1つの第1層101(
図8を参照)を有し、各場合において、1つ以上のチャネルにおいて、線形演算によって少なくとも1つの第1層101に関連付けられたいくつかのフィルタ105を使用して、チャネル当たりの入力データサイズを有する入力データからいくつかの結果データを生成することができ、少なくとも1つの第1層101に関連付けられたフィルタ105の受容野は、少なくとも1つの第1層101のチャネル当たりの入力データサイズよりも小さく、フィルタ105は、入力データの異なる点においてチャネル当たりの線形演算を実行する。
【0215】
全ての第1層回路構成201は、少なくとも1つの第1層101に関連する同じ数のフィルタ105を有し、各第1層回路構成201の少なくとも1つの第1層101のそれぞれにおいて、それぞれの第1層101に関連するフィルタ105のそれぞれは、線形演算に使用される。
【0216】
各フィルタ105には重み係数が関連付けられており、重み係数は、結果データを生成するときに、入力データの異なる点においてそれぞれのフィルタ105によって実行された演算の結果が考慮される程度を判定する。
【0217】
論理モジュール200は、信号出力204に接続された出力回路構成(図示せず)を有する。
【0218】
複数の第1層回路構成201とデータ通信するスケジューラ回路構成205は、変更可能な仕様にしたがって、データフローが論理モジュール200の信号入力203から個々の第1層回路構成201へと、個々の第1層回路構成201の間で、および個々の第1層回路構成201から出力回路構成へと伝導される順序を指定するために、ニューラルネットワーク100のネットワークアーキテクチャを定義するように設計される。
【0219】
図7には、2つの第2層回路構成202が例として示されており、これらは互いに密接に接続されており、そのうちの一方は出力回路構成に接続されることができ、またはそのように設計されることができる。
【0220】
ネットワーク計算の結果は、外部のCPU213に供給されることができる。
【0221】
図8は、
図7に示す論理モジュール200のための様々な第1層回路構成201の構造の例を詳細に示している。
【0222】
ここで、各第1層回路構成201は同じ構造を有する。特に、当然ながら、各第1層回路構成201(より正確には、それに含まれる第1層101)は、他の全ての第1層回路構成201と同じ数のフィルタ105を有する。
【0223】
各第1層回路構成は、信号入力203および信号出力204を有する。スケジューラ回路構成205(ここでは図示せず)は、個々の第1層回路構成204の信号入力203および信号出力204が互いにどのように接続されるかを判定するために使用されることができる。
【0224】
各第1層回路構成201は、各第1層回路構成201が動作中にその機能を有するという意味で、ニューラルネットワーク100の第1層101を表す。
【0225】
ここに存在する様々な機能モジュールが例として示されている(それらは当該技術分野の背景技術に対応するため、それ自体公知である):
- キャッシュメモリシステム207
- 存在することができるバイアスを除去するためのバイアスモジュール208
- (非線形活性化関数を適用することとしても知られる)調整プロセスを実行するための調整モジュール209
- プーリングおよび/またはダウンサンプリング法を実行するためのプーリングモジュール210
- パディング法を実行するためのパディングモジュール211
【0226】
全ての第1層回路構成201の全ての機能モジュールを使用する必要は必ずしもない;代わりに、どの機能モジュールがその中で使用されるかを第1層回路構成201のそれぞれについて指定されることができる。これは、好ましくはスケジューラ回路構成205によって処理されることができる。
【0227】
スケジューラ回路構成205は、データフローが第1層回路構成201の少なくとも1つの機能モジュールから別の第1層回路構成201の少なくとも1つの機能モジュールへと直接伝送されるようにネットワークアーキテクチャを定義するものとすることができる。
【0228】
図9は、本発明の第2の変形例にかかる方法を実行することができ、本発明にかかる論理モジュール200に永続的に記憶されることができる、CNNの形態の推論演算における訓練されたニューラルネットワーク100の可能なアーキテクチャを示している。
【0229】
ニューラルネットワーク100は、ニューラルネットワーク100に入力(ここでは例として番号2)を供給することができる入力層103を有する。例として、3つの第1層101が設けられ、結果データは、畳み込みを使用してフィルタ105によって計算され、それぞれ次の層101、102に供給される。本発明にとって、各第1層101が同じ数のフィルタ105(ここでは、例えば、5つのフィルタ105)を有し、各第1層101内の全てのフィルタ105も使用されることが重要である。この例では、ニューラルネットワーク100の訓練により、一番左に示されている第1層101では、2つのフィルタ105の演算結果が結果データの生成において考慮されず(重み係数が0に等しい)、一方、中央および右に示されている第1層101では、それぞれの場合に1つのフィルタ105が適用されるが、結果データの生成には何ら影響を与えないことが示された。ニューラルネットワーク100の訓練はまた、重み係数が非ゼロであるそれらのフィルタ105の演算の結果が異なるように重み付けされ、これは例として与えられた重み係数の異なる数値から生じることを示している。
【0230】
各第1層101では、非線形活性化関数が使用されて、活性化データ(調整プロセスとしても知られるこのプロセスは、いずれにせよ当該技術の背景技術に対応するため示されていない)の形式で結果データを生成する。
【0231】
計算的に見て最後の第1層101の結果データ(より正確には、活性化データの形態の結果データ)は、密接に接続された2つの第2層102に供給され、そのうちの右側に示される第2層102は、出力層104として構成される。
【0232】
個々の第1層101における一定数のフィルタ105とは別に、
図9に示されるニューラルネットワーク100は、当該技術分野の背景技術に対応する。
【0233】
図10は、本発明にかかる少なくとも1つの論理モジュール200を有する車両の形態の本発明にかかる装置6を示し、信号は、車両上または車両内に配置された少なくとも1つの信号発生装置9によって、少なくとも1つの信号入力203を介してニューラルネットワーク計算のための入力として少なくとも1つの論理モジュール200に供給されることができ、少なくとも1つの論理モジュール200は、車両の制御もしくは調整装置8と通信するための、または車両の少なくとも1つのアクチュエータ10(図示せず)への制御コマンドの出力のための少なくとも1つの信号出力204を有する。
【0234】
図11は、本発明にかかる少なくとも1つの論理モジュール200を有するロボットの形態の本発明にかかる装置6を示し、信号は、ロボット上またはロボット内に配置された少なくとも1つの信号発生装置9によって、少なくとも1つの信号入力203を介してニューラルネットワーク計算のための入力として少なくとも1つの論理モジュール200に供給されることができ、少なくとも1つの論理モジュール200は、ロボットの制御または調整装置8と通信するための、またはロボット(図示せず)の少なくとも1つのアクチュエータ10(例えば、サーボモータまたは操作装置)への制御コマンドの出力のための少なくとも1つの信号出力204を有する。
【0235】
図12から
図14は、(この場合はニューラルネットワーク100の量子化と組み合わせた)活性化クリッピングが使用される、本発明の第3の変形例にかかる方法を示している。ニューラルネットワーク100は、例えば、画像またはビデオストリーム内のオブジェクトの分類によるコンピュータビジョンの分野で使用される。
【0236】
図12は、畳み込み層CONV、調整層RECT(非線形活性化関数が適用される)、および任意のプーリング層POOLを有するニューラルネットワーク100の第iの第1層101を示している。以下では、発生する行列および演算子について説明する。
【0237】
行列:
A[i-1]またはA[i]は、前(i-1)層101または本(i)層101の活性化結果データ(活性化マップ)の全体を表し、ここではデータフォーマットint16で存在する(A[0]は入力画像のRGB行列に相当する)。これに対応して、E[i-1]またはE[i]は、前の(i-1)層101または現在の(i)層101の結果データ(特徴マップ)全体を表している。
【0238】
パラメータP(自然数)は、式
にしたがって実行される量子化のためのスケーリング指数を示す。P=8の値が好ましい。
【0239】
そのエントリが重み係数を表す畳み込み演算の重み行列は
によって示され、これは式1にしたがって量子化される。
【0240】
畳み込みのバイアスベクトルは
によって示され、量子化は以下の式1にしたがって実行される。
【0241】
演算子:
演算子「Rshift」はビットシフタを表し、これは、以下の式に示すように、量子化された行列の畳み込み(
)の後に、結果がP桁だけ右にシフトされる正規化が必要であるためである。
(式2)。
【0242】
演算「Add」は、バイアスベクトルを加算する。関数
は非線形活性化関数を表し、α=0はReLU関数をもたらし、α≠0はLReLU関数をもたらす。
【0243】
「Linear」は、任意の線形活性化関数を表す。
【0244】
「MaxPooling」は、ここでは例として最大プーリングとして実行されるプーリング演算子を表す。
【0245】
キャスト関数「cast」は、入力を指定されたビット幅、例えば
または
にキャストする。
【0246】
「活性化クリッパ」(クリッピング関数)を用いて、活性化結果データの値の範囲は、第1の画像領域B1から第2の画像領域B2の形態の実サブセットに制限され、使用される「クリッピング関数」は、以下のように定義されることができる(式3):
【0247】
図13は、L=-2およびU=7のパラメータでクリッピングされたLReLU
0.1(z)の形態の非線形活性化関数の例を示している。最適値は、例えば(浮動数演算において)以下のとおりである:データ型unit8の全ビット幅がこのように使用されるため、L
float=-2およびU
float=14-2
-4=13.9375である。整数演算へのスケーリングは、例えば
および
をもたらす。
【0248】
図14aおよび
図14bの例示的な実施形態は、任意の追加のマッピングおよびデマッピング法が示されているという点で、
図12の実施形態とは異なる。
図14aの例示的な実施形態では、クリッピングは、活性化とは別個のステップとして提供される。一方、
図14bの例示的な実施形態では、クリッピングされた活性化関数を用いて(単一ステップで)活性化が行われる。
【0249】
マッピング演算子は、活性化結果データのクリッピング値A
clipをデータ型unit8にマッピングする(値の範囲[0,255])。第1のステップでは、マッピングバイアスM
BからA
clipがカウントされ、これは、クリッピングされた活性化結果データの最小値が0(すなわち、
)にマッピングされるように選択される。第2のステップでは、マッピング電力M
Pに応じた行列A
clip+M
Bが右方向にシフトされ、以下が適用される(式4):
【0250】
L=-512およびU=3568の上記の例では、結果は例えばMP=4である。
【0251】
マッピング部は、以下のように要約されることができる:
【0252】
i-1番目の第1層101を通過した後、unit8活性化マップA
[i-1]
unit8がメモリに書き込まれ、第i層101について読み出される。線形演算(ここでは:畳み込み)を実行するために、A
[i-1]
unit8がデータ型int16にマッピングされて戻される(デマッピング、デコンプレッション)。マッピング演算と同様に、デマッピング法には2つのパラメータ、すなわちデマッピング電力D
PおよびデマッピングバイアスD
Bが必要である。したがって、デマッピングマッピング関数は、以下のように定義されることができる:
【0253】
以前に使用されたマッピング電力は、マッピング電力として選択される:D
P=M
P。デマッピングバイアスD
Bの場合、第1の自然な選択は、マッピングバイアスを使用することである。しかしながら、量子化ノイズQとも呼ばれるマッピング損失およびデマッピング損失をより詳細に見ると、QがD
B=M
Bに対して平均自由ではないことが分かる。これは、誤差伝播における利得効果をもたらし、ニューラルネットワーク100の浮動数モデルと量子化バージョンとの間のより大きな偏差をもたらす。したがって、平均値のない量子化ノイズを得るために、デマッピング電力は以下のように選択される:
。
【国際調査報告】