(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022091660
(43)【公開日】2022-06-21
(54)【発明の名称】ニューラルネットワークを用いるデータ処理方法、データ処理装置及びこれを含む電子装置
(51)【国際特許分類】
G06N 3/04 20060101AFI20220614BHJP
G06N 3/08 20060101ALI20220614BHJP
G06N 20/00 20190101ALI20220614BHJP
【FI】
G06N3/04 154
G06N3/08 140
G06N20/00
【審査請求】未請求
【請求項の数】23
【出願形態】OL
(21)【出願番号】P 2021070082
(22)【出願日】2021-04-19
(31)【優先権主張番号】10-2020-0171656
(32)【優先日】2020-12-09
(33)【優先権主張国・地域又は機関】KR
【新規性喪失の例外の表示】新規性喪失の例外適用申請有り
(71)【出願人】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(71)【出願人】
【識別番号】514024262
【氏名又は名称】インダストリー-アカデミック コーペレーション ファウンデーション,ヨンセイ ユニバーシティ
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】李 永植
(72)【発明者】
【氏名】金 泳▲そく▼
(72)【発明者】
【氏名】金 漢俊
(72)【発明者】
【氏名】趙 成濬
(72)【発明者】
【氏名】許 善榮
(57)【要約】
【課題】ニューラルネットワークを用いるデータ処理方法、データ処理装置、及びこれを含む電子装置が開示される。
【解決手段】開示されたプロセッサによって実行される、ニューラルネットワークを用いるデータ処理方法は、ニューラルネットワークに含まれたレイヤを順次実行し、ニューラルネットワークの一部に対する複数の実行経路のいずれか1つを選択する演算子を識別するステップと、ニューラルネットワークの推論に残っている時間に基づいて、複数の実行経路のうち特定の実行経路を選択するステップと、特定の実行経路を介してニューラルネットワークの推論結果を取得するステップとを含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
プロセッサによって実行される、ニューラルネットワークを用いるデータ処理方法であって、
前記ニューラルネットワークに含まれたレイヤを順次実行し、前記ニューラルネットワークの一部に対する複数の実行経路のいずれか1つを選択する演算子を識別するステップと、
前記ニューラルネットワークの推論に残っている時間に基づいて、前記複数の実行経路のうち特定の実行経路を選択するステップと、
前記特定の実行経路を介して前記ニューラルネットワークの推論結果を取得するステップと、
を含む、データ処理方法。
【請求項2】
前記選択するステップは、前記ニューラルネットワークで前記演算子以後に該当する残り部分の最小実行時間と前記残っている時間との間の比較に基づいて、前記特定の実行経路を選択する、請求項1に記載のデータ処理方法。
【請求項3】
前記残っている時間は、
前記ニューラルネットワークの推論が完了しなければならないデッドラインと、前記ニューラルネットワークの推論が開始された後前記演算子が実行されるまでの経過時間に基づいて決定される前記デッドラインまでの残っている時間と、又は、
前記ニューラルネットワークで実行される推論動作のうちの一部に設定された中間基準時間と前記経過時間に基づいて決定される前記中間基準時間まで残っている時間と、
を含む、請求項1又は2に記載のデータ処理方法。
【請求項4】
前記演算子は、1つ以上のレイヤを含むサブネットの実行の有無を決定するスキップ演算子であり、
前記選択するステップは、前記サブネットを実行する経路と前記サブネットをスキップする経路のうち前記特定の実行経路を選択する、請求項1-3のうちの何れか1項に記載のデータ処理方法。
【請求項5】
前記選択するステップは、前記サブネットの実行時間と前記ニューラルネットワークでサブネット以後のニューラルネットワークの最小実行時間の和が前記残っている時間よりも小さいか又は同一である場合に応答して、前記サブネットを実行する経路を選択する、請求項4に記載のデータ処理方法。
【請求項6】
前記ニューラルネットワークは、1つ以上のレイヤを含む繰り返されるブロックを含み、
前記スキップ演算子は、前記ブロックの間に配置される、請求項4に記載のデータ処理方法。
【請求項7】
前記スキップ演算子は、同じ入力の大きさを有する前記ブロックの間に配置される、請求項6に記載のデータ処理方法。
【請求項8】
前記演算子は、1つ以上のレイヤを含む複数のサブネットのうち実行するいずれか1つを選択するスイッチ演算子であり、
前記選択するステップは、前記複数のサブネットそれぞれを実行する経路のうち前記特定の実行経路を選択する、請求項1-7のうちの何れか1項に記載のデータ処理方法。
【請求項9】
前記選択するステップは、前記複数のサブネットそれぞれの実行時間と、前記ニューラルネットワークでサブネット以後の最小実行時間の和が前記残っている時間よりも小さいか又は同一であるサブネットのうち、最も長い実行時間を有する1つを実行する経路を選択する、請求項8に記載のデータ処理方法。
【請求項10】
前記選択するステップは、前記複数のサブネットのうち実行時間が長い順に応じて順次に各サブネットを含む前記ニューラルネットワークの残り部分が前記残っている時間内に実行可能であるかを判断し、前記残っている時間内に実行可能な最も長い実行時間を有するサブネットを実行する経路を選択する、請求項9に記載のデータ処理方法。
【請求項11】
前記ニューラルネットワークは、イメージ内のオブジェクトを検出するネットワークである、請求項1-10のうちの何れか1項に記載のデータ処理方法。
【請求項12】
前記イメージからオブジェクトが検出されるものと予想される1つ以上の領域を領域提案として抽出するステップと、
前記抽出された領域提案のうち、前記残っている時間に基づいて決定されたn個を選択するステップと、
をさらに含み、
前記nは0よりも大きく、前記抽出された領域提案の総個数よりも小さい自然数である、請求項11に記載のデータ処理方法。
【請求項13】
前記nは、各領域提案内でオブジェクトを検出して分類する最小時間、及び前記残っている時間に基づいて決定される、請求項12に記載のデータ処理方法。
【請求項14】
前記ニューラルネットワークの推論に設定されたデッドラインは、前記ニューラルネットワークが実行される環境に基づいて設定される、請求項1-13のうちの何れか1項に記載のデータ処理方法。
【請求項15】
前記ニューラルネットワークは、
前記ニューラルネットワークに含まれたスキップ演算子でスキップ動作なしに対応するサブネットを通じた逆伝播と、前記ニューラルネットワークに含まれたスイッチ演算子のスイッチング動作なしに対応する複数のサブネットを通じた逆伝播に基づいてトレーニングされること、
前記スキップ演算子でスキップ動作がランダムに実行される逆伝播と、前記スイッチ演算子のスイッチング動作なしに対応する複数のサブネットを通じた逆伝播に基づいてトレーニングされること、
前記スキップ演算子でスキップ動作なしに対応するサブネットを通じた逆伝播と、前記スイッチ演算子のスイッチング動作がランダムに実行される逆伝播に基づいてトレーニングされること、又は
前記スキップ演算子でスキップ動作がランダムに実行される逆伝播と、前記スイッチ演算子のスイッチング動作がランダムに実行される逆伝播に基づいてトレーニングされることを特徴とする請求項1に記載のデータ処理方法。
【請求項16】
請求項1-10のうちのいずれか1項に記載の方法をコンピュータに実行させるコンピュータプログラム。
【請求項17】
ニューラルネットワークを用いるデータ処理装置であって、
1つ以上のプロセッサを含み、
前記1つ以上のプロセッサは、
前記ニューラルネットワークに含まれたレイヤを順次実行し、前記ニューラルネットワークの一部に対する複数の実行経路のいずれか1つを選択する演算子を識別し、
前記ニューラルネットワークの推論に残っている時間に基づいて、前記複数の実行経路のうち特定の実行経路を選択し、
前記特定の実行経路を介して前記ニューラルネットワークの推論結果を取得するデータ処理装置。
【請求項18】
前記選択するステップは、記ニューラルネットワークで前記演算子以後に該当する残り部分の最小実行時間と前記残っている時間との間の比較に基づいて、前記複数の実行経路のいずれか1つを選択する、請求項17に記載のデータ処理装置。
【請求項19】
前記残っている時間は、
前記ニューラルネットワークの推論が完了しなければならないデッドラインと、前記ニューラルネットワークの推論が開始された後前記演算子が実行されるまでの経過時間に基づいて決定される前記デッドラインまでの残っている時間と、又は
前記ニューラルネットワークで実行される推論動作のうちの一部に設定された中間基準時間と前記経過時間に基づいて決定される前記中間基準時間まで残っている時間と、
を含む、請求項17に記載のデータ処理装置。
【請求項20】
モデルを加速器で実行しようとする要求が受信されることに応答して、前記モデルに対する命令語を前記加速器に伝達するホストプロセッサと、
前記命令語により前記モデルを実行する加速器と、
を含み、
前記加速器は、
前記モデルに含まれたレイヤを順次実行して前記モデルの一部に対する複数の実行経路のいずれか1つを選択する演算子を識別し、
前記モデルの推論に残っている時間に基づいて、前記複数の実行経路のうち特定の実行経路を選択し、
前記特定の実行経路を介して前記モデルの推論結果を取得する、電子装置。
【請求項21】
プロセッサによって実行される方法であって、
ニューラルネットワークの推論まで残っている時間を決定するステップと、
前記残っている時間に基づいて、特定サブネットの実行を含む前記ニューラルネットワークの第1実行経路と、前記特定サブネットの実行を除いた前記ニューラルネットワークの第2実行経路のうち、前記ニューラルネットワークの特定の実行経路を選択するステップと、
前記特定の実行経路を介して前記ニューラルネットワークの前記推論の結果を取得するステップと、
を含む、方法。
【請求項22】
前記特定サブネットを実行するために求められる時間を決定するステップと、
前記特定サブネットを実行するために求められる時間が、前記残っている時間よりも大きい場合、前記第2実行経路を前記特定の実行経路として選択するステップと、
前記特定サブネットを実行するために求められる時間が、前記残っている時間よりも小さいか又は同一である場合、前記第1実行経路を前記特定経路として選択するステップと、
をさらに含む、請求項21に記載の方法。
【請求項23】
請求項21に記載の方法を実行する1つ以上のプロセッサを含む、装置。
【発明の詳細な説明】
【技術分野】
【0001】
以下の実施形態は、ニューラルネットワークを用いるデータ処理方法、データ処理装置、及びこれを含む電子装置に関する。
【背景技術】
【0002】
ニューラルネットワーク(Neural Network)基盤システムは、ニューラルネットワークが常に同じ実行経路(execution path)に従っており、推論に費やされる時間が常に一定であり得る。ここで、リアルタイムの推論のために規模の小さいニューラルネットワークを利用したり、性能の高いハードウェアでニューラルネットワークを実行したりするなど、様々な研究が行われている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明の目的は、ニューラルネットワークを用いるデータ処理方法、データ処理装置、及びこれを含む電子装置を提供することにある。
【課題を解決するための手段】
【0004】
一実施形態に係るプロセッサによって実行される、ニューラルネットワークを用いるデータ処理方法は、前記ニューラルネットワークに含まれたレイヤを順次実行し、前記ニューラルネットワークの一部に対する複数の実行経路のいずれか1つを選択する演算子を識別するステップと、前記ニューラルネットワークの推論に残っている時間に基づいて、前記複数の実行経路のうち特定の実行経路を選択するステップと、前記特定の実行経路を介して前記ニューラルネットワークの推論結果を取得するステップとを含む。
【0005】
一実施形態に係るデータ処理方法において、前記選択するステップは、前記ニューラルネットワークで前記演算子以後に該当する残り部分の最小実行時間と前記残っている時間との間の比較に基づいて、前記特定の実行経路を選択することができる。
【0006】
一実施形態に係るデータ処理方法において、前記残っている時間は、前記ニューラルネットワークの推論が完了しなければならないデッドラインと、前記ニューラルネットワークの推論が開始された後前記演算子が実行されるまで経過時間に基づいて決定される前記デッドラインまでの残っている時間と、又は、前記ニューラルネットワークで実行される推論動作のうちの一部に設定された中間基準時間と前記経過時間に基づいて決定される前記中間基準時間まで残っている時間とを含むことができる。
【0007】
一実施形態に係るデータ処理方法において、前記演算子は、1つ以上のレイヤを含むサブネットの実行の有無を決定するスキップ演算子であり、前記選択するステップは、前記サブネットを実行する経路と前記サブネットをスキップする経路のうち前記特定の実行経路を選択することができる。
【0008】
一実施形態に係るデータ処理方法において、前記選択するステップは、前記サブネットの実行時間と前記ニューラルネットワークでサブネット以後のニューラルネットワークの最小実行時間の和が前記残っている時間よりも小さいか又は同一である場合に応答して、前記サブネットを実行する経路を選択することができる。
【0009】
一実施形態に係るデータ処理方法において、前記ニューラルネットワークは、1つ以上のレイヤを含む繰り返されるブロックを含み、前記スキップ演算子は、前記ブロックの間に配置されることができる。
【0010】
一実施形態に係るデータ処理方法において、前記スキップ演算子は、同じ入力の大きさを有する前記ブロックの間に配置されることができる。
【0011】
一実施形態に係るデータ処理方法において、前記演算子は、1つ以上のレイヤを含む複数のサブネットのうち実行するいずれか1つを選択するスイッチ演算子であり、前記選択するステップは、前記複数のサブネットそれぞれを実行する経路のうち前記特定の実行経路を選択することができる。
【0012】
一実施形態に係るデータ処理方法において、前記選択するステップは、前記複数のサブネットそれぞれの実行時間と、前記ニューラルネットワークでサブネット以後の最小実行時間の和が前記残っている時間よりも小さいか又は同一であるサブネットのうち、最も長い実行時間を有する1つを実行する経路を選択することができる。
【0013】
一実施形態に係るデータ処理方法において、前記選択するステップは、前記複数のサブネットのうち実行時間が長い順に応じて順次に各サブネットを含む前記ニューラルネットワークの残り部分が前記残っている時間内に実行可能であるかを判断し、前記残っている時間内に実行可能な最も長い実行時間を有するサブネットを実行する経路を選択することができる。
【0014】
一実施形態に係るデータ処理方法において、前記ニューラルネットワークは、イメージ内のオブジェクトを検出するネットワークであり得る。
【0015】
一実施形態に係るデータ処理方法は、前記イメージからオブジェクトが検出されるものと予想される1つ以上の領域を領域提案として抽出するステップと、前記抽出された領域提案のうち、前記残っている時間に基づいて決定されたn個を選択するステップとをさらに含み、前記nは0よりも大きく、前記抽出された領域提案の総個数よりも小さい自然数であり得る。
【0016】
一実施形態に係るデータ処理方法において、前記nは、各領域提案内でオブジェクトを検出して分類する最小時間、及び前記残っている時間に基づいて決定されることができる。
【0017】
一実施形態に係るデータ処理方法において、前記ニューラルネットワークの推論に設定されたデッドラインは、前記ニューラルネットワークが実行される環境に基づいて設定されることができる。
【0018】
一実施形態に係るデータ処理方法において、前記ニューラルネットワークは、前記ニューラルネットワークに含まれたスキップ演算子でスキップ動作なしに対応するサブネットを通じた逆伝播と、前記ニューラルネットワークに含まれたスイッチ演算子のスイッチング動作なしに対応する複数のサブネットを通じた逆伝播に基づいてトレーニングされること、前記スキップ演算子でスキップ動作がランダムに実行される逆伝播と、前記スイッチ演算子のスイッチング動作なしに対応する複数のサブネットを通じた逆伝播に基づいてトレーニングされること、前記スキップ演算子でスキップ動作なしに対応するサブネットを通じた逆伝播と、前記スイッチ演算子のスイッチング動作がランダムに実行される逆伝播に基づいてトレーニングされること、又は、前記スキップ演算子でスキップ動作がランダムに実行される逆伝播と、前記スイッチ演算子のスイッチング動作がランダムに実行される逆伝播に基づいてトレーニングされることができる。
【0019】
一実施形態に係るニューラルネットワークを用いるデータ処理装置は、1つ以上のプロセッサを含み、前記1つ以上のプロセッサは、前記ニューラルネットワークに含まれたレイヤを順次実行し、前記ニューラルネットワークの一部に対する複数の実行経路のいずれか1つを選択する演算子を識別し、前記ニューラルネットワークの推論に残っている時間に基づいて、前記複数の実行経路のうち特定の実行経路を選択し、前記特定の実行経路を介して前記ニューラルネットワークの推論結果を取得する。
【0020】
一実施形態に係る電子装置は、モデルを加速器で実行しようとする要求が受信されることに応答して、前記モデルに対する命令語を前記加速器に伝達するホストプロセッサと、前記命令語により前記モデルを実行する加速器とを含み、前記加速器は、前記モデルに含まれたレイヤを順次実行して前記モデルの一部に対する複数の実行経路のいずれか1つを選択する演算子を識別し、前記モデルの推論に残っている時間に基づいて、前記複数の実行経路のうち特定の実行経路を選択し、前記特定の実行経路を介して前記モデルの推論結果を取得する。
【0021】
一実施形態に係るプロセッサによって実行される方法は、ニューラルネットワークの推論まで残っている時間を決定するステップと、前記残っている時間に基づいて、特定サブネットの実行を含む前記ニューラルネットワークの第1実行経路と、前記特定サブネットの実行を除いた前記ニューラルネットワークの第2実行経路のうち、前記ニューラルネットワークの特定の実行経路を選択するステップと、前記特定の実行経路を介して前記ニューラルネットワークの前記推論の結果を取得するステップとを含む。
【0022】
一実施形態に方法は、前記特定サブネットを実行するために求められる時間を決定するステップと、前記特定サブネットを実行するために求められる時間が、前記残っている時間よりも大きい場合、前記第2実行経路を前記特定の実行経路として選択するステップと、前記特定サブネットを実行するために求められる時間が、前記残っている時間よりも小さいか又は同一である場合、前記第1実行経路を前記特定経路として選択するステップとをさらに含むことができる。
【発明の効果】
【0023】
本発明によると、ニューラルネットワークを用いるデータ処理方法、データ処理装置、及びこれを含む電子装置を提供することができる。
【図面の簡単な説明】
【0024】
【
図1】一実施形態に係るマルチ経路演算子(multi-path operator)が適用されたニューラルネットワークを説明するための図である。
【
図2】一実施形態に係るマルチ経路演算子が適用されたニューラルネットワークを説明するための図である。
【
図3】一実施形態に係るマルチ経路演算子が適用されたニューラルネットワークを説明するための図である。
【
図4】一実施形態に係るスキップ演算子を説明するための図である。
【
図5】一実施形態に係るスキップ演算子を説明するための図である。
【
図6】一実施形態に係るスキップ演算子を説明するための図である。
【
図7】一実施形態に係るスイッチ演算子を説明するための図である。
【
図8】一実施形態に係るスイッチ演算子を説明するための図である。
【
図9】一実施形態に係る動的生成提案演算子を説明するための図である。
【
図10】一実施形態に係るネットワークに追加された演算子を設定する動作を説明するための図である。
【
図11】一実施形態に係るマルチ経路演算子が適用されたニューラルネットワークの学習動作を説明するための図である。
【
図12】一実施形態に係るマルチ経路演算子が適用されたニューラルネットワークの学習動作を説明するための図である。
【
図13】一実施形態に係るマルチ経路演算子が適用されたニューラルネットワークの学習動作を説明するための図である。
【
図14】一実施形態に係るデータ処理方法を示す図である。
【
図15】一実施形態に係るデータ処理装置を示す図である。
【発明を実施するための形態】
【0025】
実施形態に対する特定な構造的又は機能的な説明は単なる例示のための目的として開示されたものとして、様々な形態に変更される。したがって、実施形態は特定な開示形態に限定されるものではなく、本明細書の範囲は技術的な思想に含まれる変更、均等物ないし代替物を含む。
【0026】
第1又は第2などの用語を複数の構成要素を説明するために用いることがあるが、このような用語は1つの構成要素を他の構成要素から区別する目的としてのみ解釈されなければならない。例えば、第1構成要素は第2構成要素と命名することができ、同様に第2構成要素は第1構成要素にも命名することができる。
【0027】
単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
【0028】
異なるように定義さがれない限り、技術的であるか又は科学的な用語を含むここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈すべきであって、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
【0029】
以下、実施形態を添付の図面を参照しながら詳説する。実施形態の説明において関連する公知技術に対する具体的な説明が本発明の要旨を不要に曖昧にすると判断される場合、その詳細な説明は省略する。
【0030】
図1~
図3は、一実施形態に係るマルチ経路演算子が適用されたニューラルネットワークを説明するための図である。
【0031】
ニューラルネットワークは、複数のレイヤを含む。ニューラルネットワークは、入力層、複数の隠れレイヤ、及び出力層を含む。それぞれのレイヤは、人工ニューロンとも呼ばれる複数のノードを含んでもよい。各ノードは、1つ以上の入力及び出力を有する算出単位を示し、ノードは相互接続されている。ノード間の接続には加重値が設定され、このような加重値は調整又は変更される。加重値は関連するデータ値を増幅、減少又は保持させることで、該当のデータ値が最終結果に及ぼす影響度を決定することができる。出力層に含まれているそれぞれのノードには、以前のレイヤに含まれているノードの加重された入力が入力される。加重されたデータが任意のレイヤから次のレイヤに入力される過程を伝播(propagation)と称することができる。様々な隠れレイヤが含まれたニューラルネットワークをDNN(deep neural network)と称することができる。
【0032】
ニューラルネットワークを介してデータ推論(data inference)が実行される。データ推論は、例えば、パターン認識(例えば、オブジェクト認識、顔識別など)、シーケンス認識(例えば、音声、ジェスチャー、筆記テキスト認識、機械翻訳、機械通訳など)、制御(例えば、車両制御、プロセス制御など)、推薦サービス、意思決定、医療診断、金融アプリケーション、データマイニングなどを含んでもよい。以下では説明の便宜のために、ニューラルネットワークを介してオブジェクト検出(object detection)が実行される場合を例にして説明する。
【0033】
図1を参照すると、オブジェクト検出のためのニューラルネットワークは、イメージ(画像、映像、ピクチャ等と言及されてもよい)で有効なオブジェクトを含んでもよく、領域を提案する領域提案ステップ(region proposal step)及び領域提案で有効なオブジェクトを分類する分類ステップ(classification step)を分離する2つのステージ(two-stage)ネットワークであってもよい。例えば、オブジェクト検出のためのニューラルネットワークは、一例としてFaster R-CNN(fast region-based convolutional neural networks)では、PRE、CONV、RPN、HEADの4つの過程を含む。
【0034】
PREは、スケーリング及びクロッピング(cropping)のような基本ルーチンを与えられたイメージに適用して、イメージの大きさが残りのDNNが予想するものと一致するようにした前処理過程である。CONVは、RPN及びHEADで活用される潜在的オブジェクトのハイ-レベル特徴(high-level features)を抽出するためのディープ畳み込みネットワーク(例:ResNet(residual neural network))を含む。RPNは、畳み込みネットワークからのハイ-レベル特徴に基づいて、与えられたイメージでオブジェクトの存在が予想される特定領域を示す領域提案(region proposal)を決定する領域提案ネットワーク(region proposal network)を含む。HEADは、畳み込みネットワークからのハイ-レベル特徴に基づいて、RPNで決定された1つ以上の領域提案内にオブジェクトを最終的に分類する後処理過程である。
【0035】
図2を参照すると、自律走行車を制御するニューラルネットワークは、前方を撮影したイメージを介して走行のための様々な情報(例えば、車線、信号機、周辺車両、歩行者に対する認識など)を取得し、それに基づいて車両動作を制御することができる。実際の走行環境は、予測できない状況が発生し得るため、突発状況においても迅速な意思決定に基づき、状況に適切な車両制御を実行しなければならない。もし、ニューラルネットワークが毎回同じ実行経路(execution path)を有する場合は、推論に費やされる時間も常に一定になり、リアルタイムに変化する環境に効率よく対応し難い場合もある。例えば、自律走行車が速い速度で走行すれば、前方のオブジェクトとの衝突可能性の判断と車両動作制御のための意思決定も迅速に実行されなければならないなど、自律走行車の走行速度によりオブジェクト検出に求められる時間制約(time constraint)が変わり得る。より安定的に推論結果を取得し、それにともなう動作を制御するためには、実行環境に応じて変わり得る時間制約に基づいて、推論時間が最適に制御可能なモデルを活用することができる。
【0036】
vkm/hの速度で走行中である車両が前方に位置するオブジェクトに達するまで所要される時間に該当するデッドラインDが迫っているか否かに基づいて、ニューラルネットワークの実行経路が適応的に決定されることができる。例えば、車両速度が速くてデッドラインDが迫っている場合、前方のオブジェクトと衝突を避けるために、ニューラルネットワークの推論結果を早く取得することができる。ニューラルネットワークの一部レイヤを実行することなくスキップしたり、一部レイヤをより単純なレイヤにスイッチして実行したり、又は、オブジェクトを検出する領域提案を少なくすることで、ニューラルネットワークの推論時間を効率よく減少させることで、時間制約内に推論を完了することができる。逆に、車両速度が遅くてデッドラインDが厳しくない(loose)場合、ニューラルネットワークの一部レイヤをスキップしないか、単純レイヤにスイッチしないか、又は、オブジェクトを検出する領域提案を多くすることで、十分な推論時間を介して高い正確度の推論結果を取得しながらも、衝突を効率よく防止することができる。車両速度などの実行環境に応じて決定された様々な時間制約によりネットワークの実行経路を動的に変更することで、時間制約内に最善の推論結果を取得することができる。
【0037】
図3を参照すると、ニューラルネットワークに演算子を適用して単一経路(single-path)をマルチ経路(multi-path)に切り替える例示が示されている。時間制約により実行経路を動的に変更することのできるネットワークをマルチ経路ニューラルネットワークと称する。マルチ経路ニューラルネットワークは、実行環境に応じて変化する時間制約内に推論結果を取得することで、リアルタイムに推論を達成することができる。マルチ経路ニューラルネットワークに含まれているマルチ経路演算子は、与えられた時間制約により様々な実行経路のいずれか1つを選択できる演算子である。マルチ経路演算子は、実行環境に応じて決定されたデッドラインとニューラルネットワークの推論が開始された後、該当する演算子に達するまでの経過時間(elapsed time)を介して、これから残っている時間を算出し、その結果に基づいて実行経路を適応的に選択することができる。
【0038】
図3において、マルチ経路演算子が適用されていないニューラルネットワークに含まれた残差ブロック(residual block)310は、以前のレイヤからの入力に基づいてデータ処理を行って次のレイヤに力を伝達する。言い換えれば、残差ブロック310は、どのような実行環境でも常に実行される。一方、マルチ経路演算子が適用されたニューラルネットワークに含まれている残差ブロック320は、実行環境に応じる制約によって実行されたり、又は、スキップされる。残差ブロック320を実行しても実行環境に応じる制約を満足する場合、マルチ経路演算子は、残差ブロック320を実行する経路を選択することができる。反対に、残差ブロック320を実行すれば、制約を満足できなければ、マルチ経路演算子は、残差ブロック320を実行しない経路を選択することができる。マルチ経路演算子の選択に応じて実行されたり、実行されないネットワークの一部をサブネットと称する。まとめると、マルチ経路演算子の条件が満足されるか否かに応じて、残差ブロック320の実行の有無が決定され、この条件は、実行環境に応じる制約を満足するものである。
【0039】
マルチ経路ニューラルネットワークは、次の2種類の制約を満足するように設計される。最初は、デッドライン制約(deadline constraint)として、マルチ経路ニューラルネットワークの最大実行時間tT
maxは、最大相対的なデッドラインDmaxよりも小さいか又は同一であってもよく、これはtT
max≦Dmaxに表現される。2番目は、メモリ制約(memory constraint)として、マルチ経路ニューラルネットワークに必要な総メモリは、マルチ経路ニューラルネットワークを実行する装置の総メモリMmaxよりも小さいか又は同一であってもよく、これは
【0040】
【数1】
により表現される。ここで、nはネットワークに含まれたレイヤの数であり、M
iは各レイヤに必要なメモリ容量である。
【0041】
単一経路を有するニューラルネットワークにマルチ経路演算子を加えてマルチ経路を有するよう拡張させることで、単一経路を有するニューラルネットワークの構造を活用しながらも、少ない費用でリアルタイムに推論を達成することができる。マルチ経路演算子は、スキップ演算子(skip operator)、スイッチ演算子(switch operator)及び動的生成提案演算子(dynamic generate proposal operator)を含んでもよく、以下では図面を参照して詳細に説明する。
【0042】
図4~
図6は、一実施形態に係るスキップ演算子を説明するための図である。
【0043】
図4を参照すると、スキップ演算子410は、与えられたデッドラインまでの残っている時間(remaining time)に応じてサブネットの実行の有無を決定することができる。スキップ演算子410は、ニューラルネットワークで該当演算子以後の部分を実行するために残っている時間が十分である場合、サブネットを実行する経路を選択し、そうではなければ、サブネットを実行せずにスキップする経路を選択する。
【0044】
スキップ演算子410は、ディープニューラルネットワークの構造特性上、一部レイヤの繰り返されるパターンが存在する部分に追加される。例えば、オブジェクト検出ネットワーク(object detection network)内のCONV過程には複数の残差ブロックが含まれてもよく、複数の残差ブロックの入力データの大きさが同一であってもよい。入力データの大きさが同一であれば、スキップ演算子410を介して1つ以上の残差ブロックをスキップさせても、次の残差ブロックにデータを伝達するために追加的なレイヤが求められないため、スキップ演算子410を介してマルチ経路ニューラルネットワークへの拡張が容易になる。
【0045】
スキップ演算子410において経路が選択される動作について説明するため、まず、マルチ経路ニューラルネットワークの総実行時間を次のように表現する。
【0046】
【数2】
上記の数式(1)において、t
T
PRE,t
T
CONV,t
T
PRN,t
T
HEADはオブジェクト検出ネットワークで各過程の実行時間を示す。t
T
PRE,t
T
RPNは他のネットワーク構成(network configurations)でほとんど変更されないため、t
T
PRE,t
T
RPNは一定であると仮定する。t
T
CONV,t
T
HEADは次のように表現される。
【0047】
【数3】
上記の数式(2)において、n
RSはCONV過程内の残差ステージ(residual stage)の数を示し、n
RS
iはi番目の残差ステージ内の残差ブロックの数を示し、t
RB
iはi番目の残差ステージ内の残差ブロックの実行時間を示す。t
SN
j(n)は、RPN過程で決定された領域提案の数がnであるとき、HEADの過程でj番目のサブネットの実行時間を示し、n
P
maxは、領域提案の最大数(maximum number)を示し、n
SNは、HEADの過程内のサブネットの数を示す。
【0048】
まず、CONVの過程内に含まれている各スキップ演算子410が残差ブロックをスキップするか否かを判断する動作について説明する。もし、ニューラルネットワークで該当スキップ演算子410の後に該当する残り部分の最小実行時間が、デッドラインまでの残っている時間を超過する場合、スキップ演算子410は、残差ブロックをスキップするものと決定する。残り部分の最小実行時間は、残り部分に含まれたスキップ演算子ではスキップ動作が行われ、スイッチング演算子では最も短い実行時間を有するサブネットが行われることを仮定して決定される。k番目の残差ステージでスキップ演算子410の閾値τは後のように表現される。
【0049】
【数4】
上記の数式(3)において、n
RB
kは、k番目の残差ステージに含まれた残差ブロックの数を示し、t
RB
kは、k番目の残差ステージに含まれた残差ブロックの実行時間を示し、n
P
minは、RPN過程の領域提案の最小数(minimum number)を示す。Dは、推論が完了しなければならない時間制約であるデッドラインを示し、t
eはニューラルネットワークの推論が開始された後、該当の演算子に到達するまでの経過時間を示し、D-t
eはデッドラインまでの残っている時間を示す。まとめると、数式(3)の閾値τは、RPN過程の実行時間t
T
RPNとHEADの過程の最小実行時間
【0050】
【数5】
をk番目の残差ステージの実行時間n
RS
k・t
RS
kを加えることで、決定された閾値τが残っている時間よりも小さいか又は同一であれば、スキップ演算子410は、k番目の残差ステージに含まれている残差ブロックを実行するものと決定する。反対に、上記で決定された閾値τが残っている時間よりも大きければ、スキップ演算子410は、k番目の残差ステージに含まれている残差ブロックを実行せずスキップするものと決定することができる。
【0051】
図5を参照すると、スキップ演算子510は、CONVの過程内の残差ブロック間に追加されてもよい。例えば、イメージ分類に使用されるResNetは、様々な残差ステージを含み、各残差ステージでは同じ残差ブロックが含まれてもよい。同じ残差ステージで同じ入力の大きさの残差ブロックが繰り返されているため、該当の残差ブロック間にスキップ演算子510が追加的なオーバーヘッドなしに挿入されることができる。スキップ演算子510は、繰り返される1つ以上の残差ブロック520を実行するか否かを決定する。もし、CONV過程でこれから説明されるスイッチ演算子を追加すれば、各サブネットに対する個別の加重値行列を保持しなければならないため、メモリ利容量の側面において、CONV過程ではスイッチ演算子よりもスキップ演算子510がさらに適する。また、入力の大きさと出力の大きさとが異なる畳み込みニューラルネットワーク(例えば、VGGNet)にスキップ演算子を追加するためには、入力の大きさと出力の大きさを一致させるための追加レイヤが求められる。
【0052】
図6を参照すると、CONV過程に含まれた様々な残差ステージと各残差ステージに含まれた1つ以上の残差ブロック間にスキップ演算子が追加された実施形態を示している。
【0053】
図7及び
図8は、一実施形態に係るスイッチ演算子を説明するための図である。
【0054】
図7を参照すると、スイッチ演算子は、与えられたデッドラインまでの残っている時間に応じて複数のサブネット711,721,731のいずれかのサブネットを実行するかを決定する。スイッチ演算子は、残っている時間内に実行できる実行時間が最も長いサブネットを選択してもよい。複数のサブネット711,721,731は実行時間が長い順に配置され、スイッチ演算子の条件710,720が満足するかが順次確認されることにより、残っている時間を超過しないながらも最も長い実行時間を有するサブネットが選択され得る。例えば、第1サブネット711は、複数のサブネットのうち最も長い実行時間を有するサブネットであって、残っている時間が第1閾値よりも大きいか又は同一であるスイッチ演算子の第1条件710を満足すれば、第1サブネット711が実行される。そうでなければ、残っている時間が第2閾値よりも大きいか又は同一であるスイッチ演算子の第2条件720を満足すれば、第2サブネット721が実行される。そうでなければ、第3サブネット731が実行されてもよい。ここで、第1閾値は第1サブネット711の実行時間を示し、第2閾値は第2サブネット721の実行時間を示す。
図7において説明の便宜のために3つのサブネットを示しているが、その他にも複数のサブネットであれば、制限されることなく含まれてもよい。
【0055】
例えば、スイッチ演算子は、オブジェクト検出ネットワーク内のHEADの過程で実行する単一サブネットを選択してもよい。スイッチ演算子は、デッドラインまでの残っている時間よりも小さいか又は同一である実行時間を有するサブネットのうち、最も大きいサブネットを選択し、以下の数式(4)のように表現される。
【0056】
【数6】
図8を参照すると、スイッチ演算子810が追加されたオブジェクト検出ネットワークは、HEADの過程に対してマルチ畳み込みサブネット820,830,840を含む。HEADの過程は、一般にCONVの過程よりも浅い畳み込みネットワークを含んできるため、様々なサブネット820,830,840を含んでもよい。また、HEADステップには、オブジェクト検出ネットワークの最終の予測結果を決定する1つ以上の完全接続されたレイヤ(fully connected layers)が含まれてもよい。もし、互いに異なるサブネット820,830,840が完全接続されたレイヤを共有する場合、互いに異なる実行経路の出力予測結果が汚染されることがあり、サブネット820,830,840に対する学習が成功し難いため、互いに異なる数の畳み込みブロックと隠れレイヤの次元で構成されたサブネット820,830,840が分離されてもよい。
【0057】
図9は、一実施形態に係る動的生成提案演算子を説明するための図である。
【0058】
図9を参照すると、動的生成提案演算子910は、与えられたデッドラインまでの残っている時間に応じて予測する領域提案の個数を決定することができる。オブジェクト検出ネットワークの場合、イメージからオブジェクトが検出されると予想される領域を予測する領域提案ネットワーク(RPN)を含んでおり、領域提案ネットワークに時間制約により、領域提案の個数を動的に調整するマルチ経路演算子が適用されることで、リアルタイムにオブジェクト検出を達成することができる。
【0059】
ステップS911において、動的生成提案演算子910は、イメージでオブジェクトが検出されると予想される全領域を領域提案に抽出する。
【0060】
ステップS913において、動的生成提案演算子910は、残っている時間に応じて抽出された領域提案のうちN個を選択する。動的生成提案演算子910は、HEADの過程で入力の配置の大きさを決定する領域提案の数を動的に変更することができる。動的生成提案演算子910が領域提案の適切な数を決定するために閾値τが使用されてもよい。閾値τは、HEADの過程において最小経路として1つの領域でオブジェクトを検出して分類するために費やされる時間である。領域提案の数は、オブジェクトの検出正確度に影響を及ぼす重要な要素の1つであるため、HEADの過程で最も小さいサブネットが実行されると仮定することで、動的生成提案演算子910を介して領域提案の数を最大化することができる。閾値τは、次のように表現される。
【0061】
【数7】
動的生成提案演算子910は、ステップS911で抽出された全領域提案のうちn
p個の領域提案をHEADの過程で伝達することができる。
【0062】
動的生成提案演算子910で選択される領域提案の数npは、次のように表現されてもよい。
【0063】
【数8】
図10は、一実施形態に係るネットワークに追加された演算子を設定する動作を説明するための図である。
【0064】
図10を参照すると、経路決定モジュール(path decision module)がニューラルネットワーク内に挿入されたそれぞれのマルチ経路演算子を設定する過程が示されている。ニューラルネットワーク初期ステップのレイヤにおいてイメージから抽出された特徴が、以後レイヤで実行される推論動作に基盤となるため、初期ステップのレイヤが重要であるだという基本原則に基づき、経路決定モジュールは、ニューラルネットワーク内のマルチ経路演算子を順次設定することができる。以下で説明する過程により、ニューラルネットワーク内の1番目の演算子から始め、各演算子がマルチ経路演算子であるかを確認した後、マルチ経路演算子の種類に応じて経路決定に必要な閾値を設定する。本明細書における経路決定モジュールは、説明の便宜のために経路決定モデル(path decision model)にも称してもよい。
【0065】
ステップS1010において、経路決定モジュールは、ニューラルネットワーク内の1番目の演算子を指示する。
【0066】
ステップS1020において、経路決定モジュールは、現在の指示する演算子がニューラルネットワークの最後部分であるかを確認する。もし、該当演算子が最後部分でなければ、ステップS1030が行われる。反対に、該当演算子が最後部分であれば、経路決定モジュールの動作が終了する。
【0067】
ステップS1030において、経路決定モジュールは、該当演算子がスキップ又はスイッチ演算子に該当するかを確認する。もし、該当演算子がスキップ又はスイッチ演算子に該当すれば、ステップS1040が行われる。反対に、該当演算子がスキップ又はスイッチ演算子に該当しなければ、ステップS1070が行われる。
【0068】
ステップS1040において、経路決定モジュールは、該当演算子がスキップ演算子に該当するかを確認する。もし、該当演算子がスキップ演算子に該当すれば、ステップS1050が行われる。反対に、該当演算子がスキップ演算子に該当しなければ、ステップS1060が行われる。
【0069】
ステップS1050において、経路決定モジュールは、スキップ演算子の閾値をTsub+Tmin
restに設定する。ここで、Tsubは、スキップ演算子がスキップ経路を選択せず、サブネットを実行する経路を選択したとき該当サブネットの実行時間を示し、Tmin
restは、ニューラルネットワークでサブネット以後の残り部分で最短経路が選択されたとき総実行時間を示す。そのため、スキップ演算子は、残り部分で最短経路が選択されても、時間制約を満足させることができるかに応じて、サブネットの実行の有無を決定することができる。
【0070】
ステップS1060において、経路決定モジュールは、スイッチ演算子の閾値をTsubi+Tmin
restに設定する。ここで、Tsubiは、スイッチ演算子でi番目のサブネットが選択された時該当サブネットの実行時間を示す。スイッチ演算子がn個のサブネットのうち実行する1つのサブネットを選択できれば、スイッチ演算子はn-1個の閾値を有してもよい。そのため、スイッチ演算子は、残り部分で最短経路が選択されたとき、実行可能な最大規模のサブネットを実行することができる。
【0071】
閾値設定に用いられるニューラルネットワークの実行時間の予測は、様々な方案に基づいて実行されることができ、例えば、GPUを対象に実行時間を予測するWCET(Worst-case Execution Time)予測モデルを用いてもよい。
【0072】
ステップS1070において、経路決定モジュールは、ニューラルネットワークに含まれている次の演算子に移動する。そして、上記で説明したステップS1020が再び行われる。このような方式で経路決定モジュールは、ニューラルネットワークに含まれているマルチ経路演算子の閾値を設定することができる。
【0073】
図11~
図13は、一実施形態に係るマルチ経路演算子が適用されたニューラルネットワークの学習動作を説明するための図である。
【0074】
図11を参照すると、マルチ経路ニューラルネットワークの設計のために、まず、ターゲットプラットフォームでサンプルニューラルネットワークをプロファイリングする。例えば、サンプルネットワークは、オブジェクト検出ネットワークであってもよい。ターゲットGPUにおいて、サンプルニューラルネットワークを数回実行してレイヤの大きさ、実行サイクルのような関連性能メトリック(relevant performance metrics)がプロファイリングされる。
【0075】
プロファイリング結果に基づいて、上記で説明したマルチ経路演算子がサンプルネットワークに挿入され、マルチ経路ニューラルネットワークが取得される。マルチ経路ニューラルネットワークをトレーニングすることで、マルチ経路演算子による潜在的な正確度の損失を最小化することができる。トレーニング過程が完了すれば、トレーニングされたマルチ経路ニューラルネットワークが推論デバイスに送信されてリアルタイムに推論を行うことができる。
【0076】
グラジエント(gradient)が常に全ての経路に逆伝播(back-propagation)される静的ニューラルネットワーク(static neural network)とは異なり、マルチ経路ニューラルネットワークには、グラジエントが逆伝播され得る様々な経路が存在する。ネットワーク構造(例えば、スキップ及びスイッチ演算子の数)に応じて可能な経路数が相当である。従って、効率的なトレーニング戦略を探すことは、マルチ経路ニューラルネットワークを用いることにおいて重要なイシューの1つである。
【0077】
図12を参照してスキップ演算子の逆伝播経路について説明すると、スキップ演算子と関連するサブネットのスキップの有無をランダムに決定し、グラジエントが逆伝播されるランダムスキッピング(random skipping)と、サブネットを絶対スキップせずにサブネットを介してグラジエントが逆伝播されるノースキッピング(no skipping)とをスキップ演算子のトレーニング戦略として活用することができる。
【0078】
図13を参照してスイッチ演算子の逆伝播経路について説明すると、スイッチ演算子と関連する複数のサブネットのいずれか1つをランダムに決定し、グラジエントが逆伝播されるランダムスイッチング(random switching)と、全ての複数のサブネットを介してグラジエントが逆伝播されるノースイッチング(no switching)とをスイッチ演算子のトレーニング戦略として活用することができる。
【0079】
図11に戻り、マルチ経路演算子のトレーニング戦略には次の4種類が活用されることができる。
【0080】
ノースキッピング-ノースイッチング:スキップなしに各スキップ演算子のサブネットを実行し、各スイッチ演算子の全てのサブネットの結果を集計(aggregate)することで、マルチ経路ニューラルネットワークがトレーニングされる。
【0081】
ランダムスキッピング-ノースイッチング:各スキップ演算子のサブネットをランダムに実行し、各スイッチ演算子の全てのサブネットの結果を集計することで、マルチ経路ニューラルネットワークがトレーニングされる。
【0082】
ノースキッピング-ランダムスイッチング:スキップなしに各スキップ演算子のサブネットを実行し、各スイッチ演算子で複数のサブネットの1つをランダムに実行することで、マルチ経路ニューラルネットワークがトレーニングされる。
【0083】
ランダムスキッピング-ランダムスイッチング:各スキップ演算子のサブネットをランダムに実行し、各スイッチ演算子で複数のサブネットの1つをランダムに実行することで、マルチ経路ニューラルネットワークがトレーニングされる。
【0084】
実行経路をランダムに選択するとき、マルチ経路ニューラルネットワークは、反復(iteration)ごとに経路をランダムに変更することができる(正方向及び逆方向経路のペア(pair))。言い換えれば、同じ反復内でマルチ経路ニューラルネットワークは、グラジエントが誤った経路を介して伝播されことを防止するために実行経路が固定され得る。
【0085】
図14は、一実施形態に係るデータ処理方法を示す図である。
【0086】
図14を参照すると、データ処理装置に備えられたプロセッサによって実行されるニューラルネットワークを用いるデータ処理方法が示されている。
【0087】
ステップS1410において、データ処理装置は、ニューラルネットワークに含まれたレイヤを順次実行し、ニューラルネットワークの一部に対する複数の実行経路のいずれか1つを選択する演算子を識別する。演算子は、1つ以上のレイヤが含まれたサブネット実行の有無を決定するスキップ演算子及び/又は1つ以上のレイヤが含まれた複数のサブネットのうちで実行するいずれか1つを選択するスイッチ演算子を含む。
【0088】
ステップS1420において、データ処理装置は、ニューラルネットワークの推論に残っている時間に基づいて、複数の実行経路のいずれか1つを選択する。データ処理装置は、ニューラルネットワークで演算子以後に該当する残り部分の最小実行時間と残っている時間との間の比較に基づいて、複数の実行経路のいずれか1つを選択することができる。
【0089】
上記の説明において、残っている時間は、ニューラルネットワークの推論が完了しなければならないデッドラインと、ニューラルネットワークの推論が開始された後演算子が実行されるまで経過時間に基づいて決定されるデッドラインまでの残っている時間を意味するが、実施形態がこれに限定されることはない。実施形態によれば、残っている時間は、ニューラルネットワークで実行される推論動作の一部に設定された中間基準時間と、経過時間に基づいて決定される中間基準時間までに残っている時間を含む。中間基準時間は、ニューラルネットワークで実行される複数の推論動作の一部が実行完了しなければならない期限である。ニューラルネットワークの推論に設定されたデッドラインは、ニューラルネットワークが実行される環境(例えば、車両速度など)に基づいて設定されてもよい。
【0090】
演算子がスキップ演算子である場合、データ処理装置は、サブネットを実行する経路とサブネットをスキップする経路のいずれか1つを選択する。データ処理装置は、サブネットの実行時間とニューラルネットワークでサブネット以後の最小実行時間の和が残っている時間よりも小さいか又は同一である場合に応答して、サブネットを実行する経路を選択することができる。ニューラルネットワークは、1つ以上のレイヤを含む繰り返されるブロックを含む場合、スキップ演算子は、ブロックの間に配置されてもよい。例えば、スキップ演算子は、同一の入力大きさを有するブロックの間に配置されてもよい。
【0091】
演算子がスイッチ演算子である場合、データ処理装置は、複数のサブネットそれぞれを実行する経路のいずれか1つの経路を選択する。例えば、データ処理装置は、複数のサブネットそれぞれの実行時間とニューラルネットワークでサブネット以後の最小実行時間の和が、残っている時間よりも小さいか又は同一であるサブネットのうち、最も長い実行時間を有する1つを実行する経路を選択することができる。
【0092】
ステップS1430において、データ処理装置は、選択された実行経路を介してニューラルネットワークの推論結果を取得する。
【0093】
ニューラルネットワークは、イメージ内のオブジェクトを検出するネットワークであってもよい。データ処理装置は、イメージでオブジェクトが検出されるものと予想される1つ以上の領域を領域提案として抽出し、抽出された領域提案のうち、残っている時間に基づいて決定されたn個を選択する。ここで、nは0より大きく、抽出された領域提案の総個数よりも小さい自然数である。
【0094】
ニューラルネットワークは、i)ニューラルネットワークに含まれたスキップ演算子でスキップ動作なしに対応するサブネットを通じた逆伝播と、ニューラルネットワークに含まれたスイッチ演算子のスイッチング動作なしに対応する複数のサブネットを通じた逆伝播に基づいてトレーニングされたり、ii)スキップ演算子でスキップ動作がランダムに実行される逆伝播と、スイッチ演算子のスイッチング動作なしに対応する複数のサブネットを通じた逆伝播に基づいてトレーニングされたり、iii)スキップ演算子でスキップ動作なしに対応するサブネットを通じた逆伝播と、スイッチ演算子のスイッチング動作がランダムに実行される逆伝播に基づいてトレーニングされたり、又は、iv)スキップ演算子でスキップ動作がランダムに実行される逆伝播と、スイッチ演算子のスイッチング動作がランダムに実行される逆伝播に基づいてトレーニングされる。
【0095】
図14に示された各ステップには、
図1~
図13を参照して前述した事項がそのまま適用されているため、より詳細な説明は省略する。
【0096】
図15は、一実施形態に係るデータ処理装置を示す図である。
【0097】
図15を参照すると、一実施形態に係るデータ処理装置1500は、メモリ1510及びプロセッサ1520を含む。メモリ1510及びプロセッサ1520は、バス(bus)、PCIe(Peripheral Component Interconnect Express)、NoC(Network on a Chip)などを介して通信することができる。
【0098】
データ処理装置1500は、ニューラルネットワークを実行して入力されるデータを推論するAI加速器(artificial intelligence accelerator)として、後説するホストプロセッサ(図示せず)と区別される別途のプロセッサであってもよい。例えば、データ処理装置1500は、NPU(neural processing unit)、GPU(graphics processing unit)、TPU(tensor processing unit)、DSP(digital signal processor)などであってもよい。データ処理装置1500は、ニューラルネットワークによる演算の特性上、汎用のホストプロセッサで処理されるよりも、別途の専用プロセッサ(言い換えれば、データ処理装置1500)で処理されることが効率に作業処理を行うことができる。本明細書において、ニューラルネットワークは、説明の便宜のためにモデルとも称してもよい。
【0099】
メモリ1510は、コンピュータで読み出し可能な命令語を含む。プロセッサ1520は、メモリ1510に格納された命令語がプロセッサ1520で実行されることにより、上記で言及し動作を行うことができる。メモリ1510は、揮発性メモリ又は不揮発性メモリであってもよい。
【0100】
プロセッサ1520は、命令語、あるいはプログラムを実行し、データ処理装置1500を制御することができる。プロセッサ1520は、ニューラルネットワークに含まれたレイヤを順次実行し、ニューラルネットワークの一部に対する複数の実行経路のいずれか1つを選択する演算子を識別し、ニューラルネットワークの推論に設定されたデッドラインまでの残っている時間に基づいて、複数の実行経路のいずれか1つを選択し、選択された実行経路を介してニューラルネットワークの推論結果を取得することができる。
【0101】
ホストプロセッサは、電子装置(図示せず)に含まれた構成要素(例えば、加速器、ホストメモリなど)の動作を制御する装置であって、例えば、中央処理装置(CPU;Central Processing Unit)などを含んでもよい。ホストプロセッサは、ニューラルネットワークを加速器で処理するための1つ以上の要求を受信し、前記要求に応答して加速器で実行可能な命令語集合を生成する。要求は、ニューラルネットワークに基づくデータ推論のためのものであって、例えば、オブジェクト認識、パターン認識、コンピュータビジョン、音声認識、機械翻訳、機械通訳、推薦サービス、個人オーダーメードサービス、映像処理、自律走行などのために、加速器を用いてニューラルネットワークを実行させることで、データ推論結果を取得するためのものである。ホストプロセッサで命令語集合が生成される過程は、加速器で推論が行われる以前に予め一回実行され、実際のユーザから推論が求められれば、すでに生成された命令語集合が加速器において実行される。
【0102】
電子装置は、スマートフォン、タブレット、ラップトップ、パーソナルコンピュータ、サーバなどの様々なコンピューティング装置、スマート時計、スマートメガネ、スマート服などの様々なウェアラブル機器、スマートスピーカ、スマートTV、スマート冷蔵庫などの様々な家電装置、スマート自動車、スマートキオスク、IoT(Internet of Things)機器、WAD(Walking Assist Device)、ドローン、ロボットなどを含んでもよい。
【0103】
実施形態は、加速器の設計ステップで与えられたニューラルネットワークに対して、加速器が動的に実行経路を変更するようISA(Instruction Set Architecture)を拡張することで、リアルタイムに推論をサポートする加速器の開発に用いられることができる。また、上記の説明は、リアルタイムにオブジェクト検出を必要とする自律走行車に適用でき、その他にも、リアルタイムに推論が求められる様々なニューラルネットワーク基盤のシステムに制限されることなく適用できる。
【0104】
その他に、データ処理装置1500については上述した動作を処理することができる。
【0105】
以上述した実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組み合せで具現される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサー、又は命令(instruction)を実行して応答する異なる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現される。
【0106】
ソフトウェアは、コンピュータプログラム、コード、命令、又はそのうちの一つ以上の組合せを含み、希望の通りに動作するよう処理装置を構成したり、独立的又は結合的に処理装置を命令することができる。ソフトウェア及び/又はデータは、処理装置によって解釈され、処理装置に命令又はデータを提供するために、いずれかの類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、又は送信される信号波に永久的又は一時的に具体化することができる。ソフトウェアはネットワークに連結されたコンピュータシステム上に分散され、分散した方法で格納され、実行され得る。ソフトウェア及びデータは一つ以上のコンピュータで読出し可能な記録媒体に格納され得る。
【0107】
本実施形態による方法は、様々なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組み合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例として、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。ハードウェア装置は、本発明に示す動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
【0108】
上述したように実施形態をたとえ限定された図面によって説明したが、当技術分野で通常の知識を有する者であれば、上記の説明に基づいて様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順で実行されるし、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合又は組み合わせられてもよいし、他の構成要素又は均等物によって置き換え又は置換されたとしても適切な結果を達成することができる。