(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-19
(54)【発明の名称】組込みシステム上でシーケンシャルセンサデータの分類を再開するための状態変化検出
(51)【国際特許分類】
G06T 7/00 20170101AFI20240312BHJP
G06V 10/82 20220101ALI20240312BHJP
【FI】
G06T7/00 350C
G06V10/82
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023557776
(86)(22)【出願日】2021-03-23
(85)【翻訳文提出日】2023-09-20
(86)【国際出願番号】 CN2021082356
(87)【国際公開番号】W WO2022198437
(87)【国際公開日】2022-09-29
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】ハイジュン・ジャオ
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA04
5L096CA02
5L096DA02
5L096HA11
5L096JA03
5L096KA04
(57)【要約】
エネルギー効率的な分類のための方法は、第1の回路を介して、1つまたは複数のセンサからの入力データストリームを受信するステップを含む。第1の回路は、第2の回路が休止状態である間に、入力データストリームの第1の入力と入力データストリームの第2の入力との間で状態変化が発生したかどうかを検出する。第2の入力は、入力データストリームの第1の入力の次の後続の入力である。第1の回路は、状態変化を検出したことに応答して、入力データストリームの分類を実行するように第2の回路をトリガする。
【特許請求の範囲】
【請求項1】
人工ニューラルネットワークを動作させるための方法であって、
第1の回路を介して、1つまたは複数のセンサからの入力データストリームを受信するステップと、
前記第1の回路を介して、第2の回路が休止状態である間に、前記入力データストリームの第1の入力と前記入力データストリームの第2の入力との間で状態変化が発生したかどうかを検出するステップであって、前記第2の入力が、前記入力データストリームの前記第1の入力の次の後続の入力である、ステップと、
前記第1の回路を介して、前記状態変化を検出したことに応答して、前記入力データストリームの分類を実行するように前記第2の回路をトリガするステップと
を含む、方法。
【請求項2】
前記分類が、前記第1の回路を介して検出された状態とは異なる、請求項1に記載の方法。
【請求項3】
前記第1の回路を介して、前記入力データストリームの少なくとも前記第2の入力の特徴のセットを抽出するように前記第2の回路をトリガするステップをさらに含む、請求項1に記載の方法。
【請求項4】
前記第1の回路を介して、前記第1の入力と前記第2の入力との間の類似度スコアを計算するステップであって、前記状態変化が前記類似度スコアに基づいて検出される、ステップをさらに含む、請求項1に記載の方法。
【請求項5】
前記第1の回路を介して、前記類似度スコアを事前定義されたしきい値と比較するステップと、前記類似度スコアが前記事前定義されたしきい値を下回ることに応答して、前記状態変化が発生したことを検出するステップとをさらに含む、請求項4に記載の方法。
【請求項6】
前記類似度スコアが、ピーク信号対雑音比、構造的類似度、およびコサイン類似度からなるグループから選択されたメトリックに基づく、請求項4に記載の方法。
【請求項7】
前記第1の回路を介して、前記状態変化が検出されることなしに事前定義された時間期間が経過したことに応答して、前記入力データストリームの前記分類を実行するように前記第2の回路をトリガするステップをさらに含む、請求項1に記載の方法。
【請求項8】
前記第1の回路を介して、前記休止状態に戻るように前記第2の回路をトリガするステップと、前記入力データストリームの少なくとも1つの後続の入力についての後続の分類を前記入力データストリームの先行する入力についての前に計算された分類に等しくなるように設定するステップとをさらに含む、請求項1に記載の方法。
【請求項9】
装置であって、
1つまたは複数のセンサからの入力データストリームを受信するための入力デバイスと、
第2の回路が休止状態である間に、前記入力データストリームの第1の入力と前記入力データストリームの第2の入力との間で状態変化が発生したかどうかを検出するための状態変化検出デバイスであって、前記第2の入力が、前記入力データストリームの前記第1の入力の次の後続の入力である、状態変化検出デバイスと、
前記状態変化を検出したことに応答して、前記入力データストリームの分類を実行するように前記第2の回路をトリガするための制御デバイスと
を備える、装置。
【請求項10】
前記第2の回路が特徴抽出器を含み、前記制御デバイスが、前記入力データストリームの少なくとも前記第2の入力の特徴のセットを抽出するように前記特徴抽出器をトリガする、請求項9に記載の装置。
【請求項11】
前記状態変化検出デバイスが、前記第1の入力と前記第2の入力との間の類似度スコアを計算し、前記状態変化が前記類似度スコアに基づいて検出される、請求項9に記載の装置。
【請求項12】
前記状態変化検出デバイスが、前記類似度スコアを事前定義されたしきい値と比較し、前記類似度スコアが前記事前定義されたしきい値を下回ることに応答して、前記状態変化が発生したことを検出する、請求項11に記載の装置。
【請求項13】
前記制御デバイスが、前記第2の入力および第3の入力について計算された第2の類似度スコアが前記事前定義されたしきい値を超えることに応答して、前記休止状態に戻るように前記第2の回路をトリガする、請求項12に記載の装置。
【請求項14】
前記類似度スコアが、ピーク信号対雑音比、構造的類似度、およびコサイン類似度からなるグループから選択されたメトリックに基づいて計算される、請求項11に記載の装置。
【請求項15】
前記制御デバイスが、前記状態変化が検出されることなしに事前定義された時間期間が経過したことに応答して、前記入力データストリームの前記分類を実行するように前記第2の回路をトリガする、請求項9に記載の装置。
【請求項16】
前記状態変化検出デバイスがバイナリ分類器を備える、請求項9に記載の装置。
【請求項17】
装置であって、
第1の回路を介して、1つまたは複数のセンサからの入力データストリームを受信するための手段と、
前記第1の回路を介して、第2の回路が休止状態である間に、前記入力データストリームの第1の入力と前記入力データストリームの第2の入力との間で状態変化が発生したかどうかを検出するための手段であって、前記第2の入力が、前記入力データストリームの前記第1の入力の次の後続の入力である、手段と、
前記第1の回路を介して、前記状態変化を検出したことに応答して、前記入力データストリームの分類を実行するように前記第2の回路をトリガするための手段と
を備える、装置。
【請求項18】
前記第1の回路を介して、前記入力データストリームの少なくとも前記第2の入力の特徴のセットを抽出するように前記第2の回路をトリガするための手段をさらに備える、請求項17に記載の装置。
【請求項19】
前記第1の回路を介して、前記第1の入力と前記第2の入力との間の類似度スコアを計算するための手段であって、前記状態変化が前記類似度スコアに基づいて検出される、手段をさらに備える、請求項17に記載の装置。
【請求項20】
前記第1の回路を介して、前記類似度スコアを事前定義されたしきい値と比較するための手段と、前記類似度スコアが前記事前定義されたしきい値を下回ることに応答して、前記状態変化が発生したことを検出するための手段とをさらに備える、請求項19に記載の装置。
【請求項21】
前記類似度スコアが、ピーク信号対雑音比、構造的類似度、およびコサイン類似度からなるグループから選択されたメトリックに基づく、請求項20に記載の装置。
【請求項22】
前記第1の回路を介して、前記状態変化が検出されることなしに事前定義された時間期間が経過したことに応答して、前記入力データストリームの前記分類を実行するように前記第2の回路をトリガするための手段をさらに備える、請求項17に記載の装置。
【請求項23】
前記第1の回路を介して、前記休止状態に戻るように前記第2の回路をトリガするための手段をさらに備える、請求項17に記載の装置。
【請求項24】
プログラムコードを符号化した非一時的コンピュータ可読媒体であって、前記プログラムコードが、プロセッサによって実行され、
第1の回路を介して、1つまたは複数のセンサからの入力データストリームを受信するためのプログラムコードと、
前記第1の回路を介して、第2の回路が休止状態である間に、前記入力データストリームの第1の入力と前記入力データストリームの第2の入力との間で状態変化が発生したかどうかを検出するためのプログラムコードであって、前記第2の入力が、前記入力データストリームの前記第1の入力の次の後続の入力である、プログラムコードと、
前記第1の回路を介して、前記状態変化を検出したことに応答して、前記入力データストリームの分類を実行するように前記第2の回路をトリガするためのプログラムコードと
を備える、非一時的コンピュータ可読媒体。
【請求項25】
前記第1の回路を介して、前記入力データストリームの少なくとも前記第2の入力の特徴のセットを抽出するように前記第2の回路をトリガするためのプログラムコードをさらに備える、請求項24に記載の非一時的コンピュータ可読媒体。
【請求項26】
前記第1の回路を介して、前記第1の入力と前記第2の入力との間の類似度スコアを計算するためのプログラムコードであって、前記状態変化が前記類似度スコアに基づいて検出される、プログラムコードをさらに備える、請求項24に記載の非一時的コンピュータ可読媒体。
【請求項27】
前記第1の回路を介して、前記類似度スコアを事前定義されたしきい値と比較するためのプログラムコードと、前記類似度スコアが前記事前定義されたしきい値を下回ることに応答して、前記状態変化が発生したことを検出するためのプログラムコードとをさらに備える、請求項26に記載の非一時的コンピュータ可読媒体。
【請求項28】
前記類似度スコアが、ピーク信号対雑音比、構造的類似度、およびコサイン類似度からなるグループから選択されたメトリックに基づく、請求項26に記載の非一時的コンピュータ可読媒体。
【請求項29】
前記第1の回路を介して、前記状態変化が検出されることなしに事前定義された時間期間が経過したことに応答して、前記入力データストリームの前記分類を実行するように前記第2の回路をトリガするためのプログラムコードをさらに備える、請求項24に記載の非一時的コンピュータ可読媒体。
【請求項30】
前記第1の回路を介して、前記休止状態に戻るように前記第2の回路をトリガするためのプログラムコードをさらに備える、請求項24に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の態様は、一般に、人工ニューラルネットワークに関する。
【背景技術】
【0002】
人工ニューラルネットワークは、人工ニューロン(たとえば、ニューロンモデル)の相互接続されたグループを備えてもよい。人工ニューラルネットワークは、計算デバイスであってもよく、または計算デバイスによって実行されることになる方法として表されてもよい。畳み込みニューラルネットワークは、フィードフォワード人工ニューラルネットワークの1つのタイプである。畳み込みニューラルネットワークは、各々が受容野を有し、入力空間をまとめてタイリングする、ニューロンの集合を含んでもよい。深層畳み込みニューラルネットワーク(DCN)などの畳み込みニューラルネットワーク(CNN)は、多数の適用例を有する。具体的には、これらのニューラルネットワークアーキテクチャは、画像認識、パターン認識、音声認識、自律運転、および他の分類タスクなどの様々な技術において使用される。
【0003】
深層ニューラルネットワークは、ストリーミングデータ(たとえば、画像、ビデオ、慣性測定ユニット(IMU)、レーダー、およびWiFi)分類性能を大幅に改善した。そのようなネットワークをモノのインターネット(IoT)デバイス、スマートフォン、またはデータをストリーミングする他の低電力デバイスとともに組み込むことが望ましい。残念ながら、必要とされる計算量のせいで分類のために大量のリソースが消費されることにより、中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、縮小命令セットコンピュータ(RISC)プロセッサ、マイクロコントローラユニット(MCU)などの低電力システム上のリアルタイムでエネルギーセンシティブなアプリケーション上で深層ニューラルネットワークを利用することが困難になる。
【発明の概要】
【課題を解決するための手段】
【0004】
本発明は、それぞれ、独立請求項に記載される。本発明のいくつかの好ましい実施形態は、従属請求項で説明される。
【0005】
本開示の一態様では、方法が提供される。方法は、第1の回路を介して、1つまたは複数のセンサからの入力データストリームを受信するステップを含む。方法はまた、第1の回路を介して、第2の回路が休止状態である間に、入力データストリームの第1の入力と入力データストリームの第2の入力との間で状態変化が発生したかどうかを検出するステップを含む。第2の入力は、入力データストリームの第1の入力の次の後続の入力である。加えて、方法は、第1の回路を介して、状態変化を検出したことに応答して、入力データストリームの分類を実行するように第2の回路をトリガするステップを含む。
【0006】
本開示の別の態様では、装置が提供される。装置は、1つまたは複数のセンサからの入力データストリームを受信するための入力デバイスを含む。装置はまた、第2の回路が休止状態である間に、入力データストリームの第1の入力と入力データストリームの第2の入力との間で状態変化が発生したかどうかを検出するための状態変化検出デバイスを含む。第2の入力は、入力データストリームの第1の入力の次の後続の入力である。装置は、状態変化を検出したことに応答して、入力データストリームの分類を実行するように第2の回路をトリガするための制御デバイスをさらに含む。
【0007】
本開示の別の態様では、装置が提供される。装置は、第1の回路を介して、1つまたは複数のセンサからの入力データストリームを受信するための手段を含む。装置はまた、第1の回路を介して、第2の回路が休止状態である間に、入力データストリームの第1の入力と入力データストリームの第2の入力との間で状態変化が発生したかどうかを検出するための手段を含む。第2の入力は、入力データストリームの第1の入力の次の後続の入力である。加えて、装置は、第1の回路を介して、状態変化を検出したことに応答して、入力データストリームの分類を実行するように第2の回路をトリガするための手段を含む。
【0008】
本開示の別の態様では、非一時的コンピュータ可読媒体が提供される。コンピュータ可読媒体は、プログラムコードを符号化している。プログラムコードは、プロセッサによって実行され、1つまたは複数のセンサからの入力データストリームを受信するためのコードを含む。プログラムコードはまた、第2の回路が休止状態である間に、入力データストリームの第1の入力と入力データストリームの第2の入力との間で状態変化が発生したかどうかを検出するためのコードを含む。第2の入力は、入力データストリームの第1の入力の次の後続の入力である。加えて、プログラムコードは、状態変化を検出したことに応答して、入力データストリームの分類を実行するように第2の回路をトリガするためのコードを含む。
【0009】
本開示の追加の特徴および利点が以下で説明される。本開示が、本開示の同じ目的を遂行するための他の構造を修正または設計するための基礎として容易に利用されてもよいことを、当業者は諒解されたい。そのような等価な構成が、添付の特許請求の範囲に記載されている本開示の教示から逸脱しないことも、当業者は認識されたい。その編成および動作方法の両方に関して本開示の特性であると考えられる新規の特徴は、さらなる目的および利点とともに、添付の図に関して検討されると以下の説明からより良く理解されよう。しかしながら、図の各々は例示および説明のために提供されるにすぎず、本開示の範囲を定めるものではないことを明確に理解されたい。
【0010】
本開示の特徴、性質、および利点は、同様の参照符号が全体にわたって対応して識別する図面と併せて読まれると、以下に記載される詳細な説明からより明らかになろう。
【図面の簡単な説明】
【0011】
【
図1】本開示のいくつかの態様による、汎用プロセッサを含むシステムオンチップ(SOC)を使用するニューラルネットワークの例示的な実装形態を示す図である。
【
図2A】本開示の態様によるニューラルネットワークを示す図である。
【
図2B】本開示の態様によるニューラルネットワークを示す図である。
【
図2C】本開示の態様によるニューラルネットワークを示す図である。
【
図2D】本開示の態様による、例示的な深層畳み込みネットワーク(DCN)を示す図である。
【
図3】本開示の態様による、例示的な深層畳み込みネットワーク(DCN)を示すブロック図である。
【
図4】本開示の態様による、人工知能(AI)機能をモジュール化し得る例示的なソフトウェアアーキテクチャを示すブロック図である。
【
図5】本開示の態様による、例示的な状態変化検出システムを示すブロック図である。
【
図6A】本開示の態様による、状態変化検出ブロックの例示的な機能を示す図である。
【
図6B】本開示の態様による、状態変化検出ブロックの例示的な機能を示す図である。
【
図7】本開示の態様による、人工ニューラルネットワークを動作させるための方法を示す図である。
【発明を実施するための形態】
【0012】
添付の図面に関して以下に記載される詳細な説明は、様々な構成の説明として意図され、説明される概念が実践される場合がある唯一の構成を表すものではない。詳細な説明は、様々な概念の完全な理解を与えるための具体的な詳細を含む。しかしながら、これらの概念がこれらの具体的な詳細なしに実践される場合があることは当業者には明らかであろう。いくつかの事例では、そのような概念を不明瞭にすることを避けるために、よく知られている構造および構成要素がブロック図の形態で示される。
【0013】
教示に基づいて、本開示の範囲は、本開示の任意の他の態様とは無関係に実装されるにせよ、本開示の任意の他の態様と組み合わせて実装されるにせよ、本開示の任意の態様を包含するものであることを、当業者は諒解されたい。たとえば、記載された任意の数の態様を使用して、装置が実装されてもよく、または方法が実践されてもよい。加えて、本開示の範囲は、記載された本開示の様々な態様に加えて、またはそれらの態様以外の、他の構造、機能、または構造および機能を使用して実践される、そのような装置または方法を包含するものとする。開示される本開示の任意の態様は、請求項の1つまたは複数の要素によって具現化される場合があることを理解されたい。
【0014】
「例示的」という語は、「例、事例、または例示として働くこと」を意味するために使用される。「例示的」として説明されるいかなる態様も、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきではない。
【0015】
特定の態様が説明されるが、これらの態様の多数の変形および置換が本開示の範囲内に入る。好ましい態様のいくつかの利益および利点が述べられるが、本開示の範囲は、特定の利益、用途、または目的に限定されるものではない。むしろ、本開示の態様は、異なる技術、システム構成、ネットワーク、およびプロトコルに広く適用可能であるものとし、そのうちのいくつかが例として図および好ましい態様の以下の説明において示される。詳細な説明および図面は、限定的ではなく、本開示の例示にすぎず、本開示の範囲は、添付の特許請求の範囲およびその等価物によって定義される。
【0016】
深層ニューラルネットワーク(DNN)は、ストリーミングデータ(たとえば、画像、ビデオ、慣性測定ユニット(IMU)、レーダー、およびWi-Fi)分類性能を大幅に改善した。そのようなネットワークをモノのインターネット(IoT)デバイス、スマートフォン、またはデータをストリーミングするための他の低電力デバイスとともに組み込むことが望ましい。残念ながら、必要とされる計算量のせいで分類のために大量のリソースが消費されることにより、中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、縮小命令セットコンピュータ(RISC)プロセッサ、マイクロコントローラユニット(MCU)、および同様のシステムなどの低電力システム上のリアルタイムでエネルギーセンシティブなアプリケーション上でDNNを利用することが困難になる。
【0017】
カメラプレビュー、ビデオファイル、オーディオ録音、IMUデータ、レーダーデータ、およびWiFiデータなどの多くのストリーミングデータ入力ソースは、たとえば、かなりの時間類似度を有するシーケンシャルデータを提供する。すなわち、そのような入力ソースについての多くの、場合によっては大部分の連続するデータポイントが同じ分布の中にあり、少数のデータポイントが分布を変更し、その結果として、新しい分類が示され得る。したがって、分類を繰り返し計算して多くの連続するデータポイントについて同じ結果を生成することによって、相当なリソースが消費され得る。
【0018】
エネルギー効率を改善し、分類精度を維持するために、本開示の態様は、低計算状態変化検出構成要素を対象とする。いくつかの態様では、状態変化検出構成要素は、たとえば、スマートフォン、フィットネストラッカー、IoTデバイス、またはセンサなどのコンピューティングデバイスに統合されてもよい。
【0019】
図1は、エネルギー効率的な特徴抽出および分類(たとえば、ニューラルエンドツーエンドネットワーク)のために構成された中央処理ユニット(CPU)102またはマルチコアCPUを含んでもよい、システムオンチップ(SOC)100の例示的な実装形態を示す。変数(たとえば、ニューラル信号およびシナプス重み)、計算デバイス(たとえば、重みを有するニューラルネットワーク)に関連付けられたシステムパラメータ、遅延、周波数ビン情報、およびタスク情報は、ニューラル処理ユニット(NPU)108に関連付けられたメモリブロックに、CPU102に関連付けられたメモリブロックに、グラフィックス処理ユニット(GPU)104に関連付けられたメモリブロックに、デジタル信号プロセッサ(DSP)106に関連付けられたメモリブロックに、メモリブロック118に記憶されてもよく、または複数のブロックにわたって分散されてもよい。CPU102において実行される命令は、CPU102に関連付けられたプログラムメモリからロードされてもよく、またはメモリブロック118からロードされてもよい。
【0020】
SOC100はまた、GPU104、DSP106、第5世代(5G)接続性、第4世代ロングタームエボリューション(4G LTE)接続性、Wi-Fi接続性、USB接続性、Bluetooth接続性などを含んでもよい接続性ブロック110、ならびに、たとえば、ジェスチャーを検出および認識する場合があるマルチメディアプロセッサ112などの、特定の機能に適合された追加の処理ブロックを含んでもよい。一実装形態では、NPU108は、CPU102、DSP106、および/またはGPU104において実装される。SOC100はまた、センサプロセッサ114、画像信号プロセッサ(ISP)116、および/または全地球測位システムを含んでもよいナビゲーションモジュール120を含んでもよい。
【0021】
SOC100は、ARM命令セットに基づいてもよい。本開示の一態様では、汎用プロセッサ102の中にロードされる命令は、第1の回路を介して、1つまたは複数のセンサからの入力データストリームを受信するためのコードを含んでもよい。汎用プロセッサ102はまた、第1の回路を介して、第2の回路が休止状態である間に、入力データストリームの第1の入力と入力データストリームの第2の入力との間で状態変化が発生したかどうかを検出するためのコードを含んでもよい。第2の入力は、データストリームの第1の入力の次の後続の入力である。汎用プロセッサ102は、第1の回路を介して、状態変化を検出したことに応答して、入力データストリームの分類を実行するように第2の回路をトリガするためのコードをさらに含んでもよい。
【0022】
深層学習アーキテクチャは、各層内の連続的により高い抽象レベルにおいて入力を表現することを学習し、それによって入力データの有用な特徴表現を確立することによって、オブジェクト認識タスクを実行してもよい。このようにして、深層学習は、従来の機械学習の主要なボトルネックに対処する。深層学習の出現より前に、オブジェクト認識問題に対する機械学習手法は、場合によっては、浅い分類器と組み合わせて、人間が設計した特徴に大きく依拠してきた可能性がある。浅い分類器は、たとえば、入力がどのクラスに属するかを予測するために特徴ベクトル成分の加重和がしきい値と比較される場合がある、2クラス線形分類器であってもよい。人間が設計した特徴は、領域専門知識を有する技術者によって特定の問題領域に適合されたテンプレートまたはカーネルであってもよい。対照的に、深層学習アーキテクチャは、人間の技術者が設計し得るものと同様である特徴を表現することを、ただしトレーニングを通して、学習してもよい。さらに、深層ネットワークは、人間が考えていなかった可能性がある新しいタイプの特徴を表現および認識することを学習してもよい。
【0023】
深層学習アーキテクチャは、特徴の階層を学習してもよい。視覚データが提示された場合、たとえば、第1の層は、入力ストリームにおけるエッジなどの比較的単純な特徴を認識することを学習してもよい。別の例では、聴覚データが提示された場合、第1の層は、特定の周波数におけるスペクトルパワーを認識することを学習してもよい。第1の層の出力を入力として取る第2の層は、視覚データの場合は単純な形状などの特徴の組合せ、または聴覚データの場合は音声の組合せを認識することを学習してもよい。たとえば、上位層は、視覚データにおける複雑な形状または聴覚データにおける単語を表現することを学習してもよい。さらに上位の層は、一般的な視覚オブジェクトまたは発話フレーズを認識することを学習してもよい。
【0024】
深層学習アーキテクチャは、自然階層構造を有する問題に適用されたとき、特によく機能する場合がある。たとえば、原動機付き車両の分類は、車輪、フロントガラス、および他の特徴を認識することを最初に学習することから恩恵を受ける場合がある。これらの特徴は、車、トラック、および飛行機を認識するために、異なる方法で上位層において組み合わせられてもよい。
【0025】
ニューラルネットワークは、様々な結合性パターンを用いて設計されてもよい。フィードフォワードネットワークでは、情報は下位層から上位層に渡され、所与の層内の各ニューロンが上位層内のニューロンに伝達する。階層表現は、上記で説明されたように、フィードフォワードネットワークの連続する層において確立されてもよい。ニューラルネットワークはまた、リカレント結合またはフィードバック(トップダウンとも呼ばれる)結合を有してもよい。リカレント結合では、所与の層内のニューロンからの出力は、同じ層内の別のニューロンに伝達されてもよい。リカレントアーキテクチャは、シーケンスにおいてニューラルネットワークに配信される入力データチャンクのうちの2つ以上にわたるパターンを認識する際に有用である場合がある。所与の層内のニューロンから下位層内のニューロンへの結合は、フィードバック(またはトップダウン)結合と呼ばれる。多数のフィードバック結合を有するネットワークは、高レベルの概念の認識が入力の特定の低レベルの特徴を区別するのを助けることがあるときに有用である場合がある。
【0026】
ニューラルネットワークの層の間の結合は、全結合または局所結合であってもよい。
図2Aは、全結合ニューラルネットワーク202の一例を示す。全結合ニューラルネットワーク202では、第1の層内のニューロンは、その出力を第2の層内のあらゆるニューロンに伝達してもよく、その結果、第2の層内の各ニューロンは、第1の層内のあらゆるニューロンから入力を受信することになる。
図2Bは、局所結合ニューラルネットワーク204の一例を示す。局所結合ニューラルネットワーク204では、第1の層内のニューロンは、第2の層内の限られた数のニューロンに結合されてもよい。より一般的には、局所結合ニューラルネットワーク204の局所結合層は、ある層内の各ニューロンが同じまたは同様の結合性パターンを、ただし、異なる値を有してもよい結合強度で有することになるように構成されてもよい(たとえば、210、212、214、および216)。所与の領域内の上位層ニューロンは、ネットワークへの全入力の制限部分の特性に合わせてトレーニングを通して調整された入力を受信することがあるので、局所結合の結合性パターンは、上位層内で空間的に別個の受容野を生じることがある。
【0027】
局所結合ニューラルネットワークの1つの例は、畳み込みニューラルネットワークである。
図2Cは、畳み込みニューラルネットワーク206の一例を示す。畳み込みニューラルネットワーク206は、第2の層内の各ニューロンに対する入力に関連付けられた結合強度が共有されるように構成されてもよい(たとえば、208)。畳み込みニューラルネットワークは、入力の空間ロケーションが有意味である問題に好適である場合がある。
【0028】
畳み込みニューラルネットワークの1つのタイプは、深層畳み込みネットワーク(DCN)である。
図2Dは、車載カメラなどの画像キャプチャデバイス230から入力された画像226から視覚特徴を認識するように設計された、DCN200の詳細な例を示す。本例のDCN200は、交通標識および交通標識上に与えられた数を識別するようにトレーニングされてもよい。もちろん、DCN200は、車線区分線を識別することまたは交通信号を識別することなどの、他のタスクのためにトレーニングされてもよい。
【0029】
DCN200は、教師あり学習を用いてトレーニングされてもよい。トレーニング中に、DCN200は、速度制限標識の画像226などの画像を提示される場合があり、次いで、出力222を生成するために、フォワードパスが計算される場合がある。DCN200は、特徴抽出セクションおよび分類セクションを含んでもよい。画像226を受信すると、畳み込み層232は、特徴マップの第1のセット218を生成するために畳み込みカーネル(図示せず)を画像226に適用してもよい。一例として、畳み込み層232のための畳み込みカーネルは、28×28特徴マップを生成する5×5カーネルであってもよい。本例では、特徴マップの第1のセット218において4つの異なる特徴マップが生成されるので、4つの異なる畳み込みカーネルが、畳み込み層232において画像226に適用された。畳み込みカーネルは、フィルタまたは畳み込みフィルタと呼ばれることもある。
【0030】
特徴マップの第1のセット218は、特徴マップの第2のセット220を生成するために最大プーリング層(図示せず)によってサブサンプリングされてもよい。最大プーリング層は、特徴マップの第1のセット218のサイズを低減する。すなわち、14×14などの特徴マップの第2のセット220のサイズは、28×28などの特徴マップの第1のセット218のサイズよりも小さい。低減されたサイズは、メモリ消費量を低減しながら、同様の情報を後続の層に提供する。特徴マップの第2のセット220は、特徴マップの1つまたは複数の後続のセット(図示せず)を生成するために、1つまたは複数の後続の畳み込み層(図示せず)を介してさらに畳み込まれてもよい。
【0031】
図2Dの例では、第1の特徴ベクトル224を生成するために、特徴マップの第2のセット220が畳み込まれる。さらに、第2の特徴ベクトル228を生成するために、第1の特徴ベクトル224がさらに畳み込まれる。第2の特徴ベクトル228の各特徴は、「標識」、「60」、および「100」などの画像226の可能な特徴に対応する数を含んでもよい。ソフトマックス関数(図示せず)は、第2の特徴ベクトル228における数を確率に変換してもよい。したがって、DCN200の出力222は、画像226が1つまたは複数の特徴を含む確率である。
【0032】
本例では、「標識」および「60」に対する出力222における確率は、「30」、「40」、「50」、「70」、「80」、「90」、および「100」などの出力222のその他のものの確率よりも高い。トレーニング前に、DCN200によって生成された出力222は、不正確である可能性がある。したがって、出力222とターゲット出力との間で誤差が算出される場合がある。ターゲット出力は、画像226のグラウンドトゥルース(たとえば、「標識」および「60」)である。次いで、DCN200の出力222がターゲット出力とより近接して整合されるように、DCN200の重みが調整されてもよい。
【0033】
重みを調整するために、学習アルゴリズムは、重みに対する勾配ベクトルを計算してもよい。勾配は、重みが調整された場合に誤差が増加または減少するであろう量を示してもよい。最上層において、勾配は、最後から2番目の層内の活性化されたニューロンと出力層内のニューロンとを結合する重みの値に直接対応してもよい。下位層では、勾配は、重みの値と、上位層の計算された誤差勾配とに依存してもよい。次いで、重みは、誤差を低減するように調整されてもよい。重みを調整するこの方法は、ニューラルネットワークを通した「バックワードパス」を伴うので、「バックプロパゲーション」と呼ばれることがある。
【0034】
実際には、重みの誤差勾配は、算出された勾配が真の誤差勾配に近似するように、少数の例にわたって算出されてもよい。この近似法は、確率的勾配降下法と呼ばれることがある。確率的勾配降下法は、システム全体の達成可能な誤差レートが下げ止まるまで、または誤差レートがターゲットレベルに達するまで繰り返されてもよい。学習後、DCNは、新しい画像を提示されてもよく、ネットワークを通したフォワードパスが、DCNの推論または予測と見なされる場合がある出力222を生じてもよい。
【0035】
深層信念ネットワーク(DBN)は、隠れノードの複数の層を含む確率モデルである。DBNは、トレーニングデータセットの階層表現を抽出するために使用されてもよい。DBNは、制限付きボルツマンマシン(RBM)の層を積層することによって取得されてもよい。RBMは、入力のセットにわたる確率分布を学習することができる人工ニューラルネットワークの1つのタイプである。RBMは各入力がカテゴリー分類されるべきであるクラスについての情報がない場合に確率分布を学習することができるので、RBMは教師なし学習において使用されることが多い。教師なしと教師ありのハイブリッドパラダイムを使用して、DBNの下部RBMは、教師なしの方法でトレーニングされてもよく、特徴抽出器として働いてもよく、上部RBMは、(前の層およびターゲットクラスからの入力の同時分布上で)教師ありの方法でトレーニングされてもよく、分類器として働いてもよい。
【0036】
深層畳み込みネットワーク(DCN)は、追加のプーリング層および正規化層で構成された、畳み込みネットワークのネットワークである。DCNは、多数のタスクに対して最先端の性能を達成している。DCNは、入力ターゲットと出力ターゲットの両方が、多数の標本について知られており、勾配降下法の使用によってネットワークの重みを修正するために使用される、教師あり学習を使用してトレーニングされ得る。
【0037】
DCNは、フィードフォワードネットワークであってもよい。加えて、上記で説明されたように、DCNの第1の層内のニューロンから次の上位層内のニューロンのグループへの結合は、第1の層内のニューロンにわたって共有される。DCNのフィードフォワードおよび共有される結合は、高速処理のために活用されてもよい。DCNの計算負担は、たとえば、リカレント結合またはフィードバック結合を含む同様のサイズのニューラルネットワークの計算負担よりもはるかに小さい場合がある。
【0038】
畳み込みネットワークの各層の処理は、空間的に不変のテンプレートまたは基底射影と見なされる場合がある。入力が最初に、色画像の赤チャネル、緑チャネル、および青チャネルなどの複数のチャネルに分解される場合、その入力に対してトレーニングされる畳み込みネットワークは、画像の軸に沿った2つの空間次元と、色情報をキャプチャする第3の次元とを有する、3次元と見なされる場合がある。畳み込み結合の出力は、後続の層において特徴マップを形成すると見なされる場合があり、特徴マップ(たとえば、220)の各要素が、前の層(たとえば、特徴マップ218)内のある範囲のニューロンからおよび複数のチャネルの各々から入力を受信する。特徴マップにおける値は、整流、max(0, x)などの非線形性を用いてさらに処理されてもよい。隣接するニューロンからの値は、さらにプール(ダウンサンプリングに対応する)されてもよく、さらなる局所不変性および次元削減を実現してもよい。白色化に対応する正規化が、特徴マップ内のニューロン間の側方抑制を通して適用される場合もある。
【0039】
深層学習アーキテクチャの性能は、より多くのラベル付けされたデータポイントが利用可能になるほど、または計算能力計算が高まるほど、向上し得る。現代の深層ニューラルネットワークは、わずか15年前に一般的な研究者が利用可能であったものよりも数千倍大きい計算リソースを用いて、ルーチン的にトレーニングされる。新しいアーキテクチャおよびトレーニングパラダイムは、深層学習の性能をさらに高め得る。整流線形ユニットは、勾配消失として知られるトレーニング問題を低減する場合がある。新しいトレーニング技法は、過剰適合を低減し、したがって、より大きいモデルがより良い汎化を達成することを可能にする場合がある。カプセル化技法は、所与の受容野内のデータを抽出し、全体的な性能をさらに高める場合がある。
【0040】
図3は、深層畳み込みネットワーク350を示すブロック図である。深層畳み込みネットワーク350は、結合性および重み共有に基づいて、複数の異なるタイプの層を含んでもよい。
図3に示されているように、深層畳み込みネットワーク350は、畳み込みブロック354A、354Bを含む。畳み込みブロック354A、354Bの各々は、畳み込み層(CONV)356、正規化層(LNorm)358、および最大プーリング層(MAX POOL)360で構成されてもよい。
【0041】
畳み込み層356は、特徴マップを生成するために入力データに適用される場合がある1つまたは複数の畳み込みフィルタを含んでもよい。畳み込みブロック354A、354Bのうちの2つのみが示されているが、本開示は、そのように限定しておらず、代わりに、設計選好に従って、任意の数の畳み込みブロック354A、354Bが深層畳み込みネットワーク350に含まれてもよい。正規化層358は、畳み込みフィルタの出力を正規化してもよい。たとえば、正規化層358は、白色化または側方抑制を行ってもよい。最大プーリング層360は、局所不変性および次元削減のために、空間にわたってダウンサンプリングアグリゲーションを行ってもよい。
【0042】
たとえば、深層畳み込みネットワークの並列フィルタバンクは、高性能および低電力消費を達成するために、SOC100のCPU102またはGPU104上にロードされてもよい。代替実施形態では、並列フィルタバンクは、SOC100のDSP106またはISP116上にロードされてもよい。加えて、深層畳み込みネットワーク350は、それぞれ、センサおよびナビゲーション専用のセンサプロセッサ114およびナビゲーションモジュール120などの、SOC100上に存在する場合がある他の処理ブロックにアクセスしてもよい。
【0043】
深層畳み込みネットワーク350はまた、1つまたは複数の全結合層362(FC1およびFC2)を含んでもよい。深層畳み込みネットワーク350は、ロジスティック回帰(LR)層364をさらに含んでもよい。深層畳み込みネットワーク350の各層356、358、360、362、364の間には、更新されることになる重み(図示せず)がある。層(たとえば、356、358、360、362、364)の各々の出力は、畳み込みブロック354Aのうちの第1のものにおいて供給された入力データ352(たとえば、画像、オーディオ、ビデオ、センサデータおよび/または他の入力データ)から階層特徴表現を学習するために、深層畳み込みネットワーク350内の層(たとえば、356、358、360、362、364)のうちの後続の層の入力として働いてもよい。深層畳み込みネットワーク350の出力は、入力データ352に対する分類スコア366である。分類スコア366は確率のセットであってもよく、ここで、各確率は、入力データが特徴のセットからの特徴を含む確率である。
【0044】
図4は、人工知能(AI)機能をモジュール化し得る例示的なソフトウェアアーキテクチャ400を示すブロック図である。このアーキテクチャを使用して、SOC420の様々な処理ブロック(たとえば、CPU422、DSP424、GPU426、および/またはNPU428)に、本開示の態様による、AIアプリケーション402のためのポストトレーニング量子化のための開示されるような適応丸めをサポートさせることができるアプリケーションが設計され得る。
【0045】
AIアプリケーション402は、たとえば、デバイスが現在動作しているロケーションを示すシーンの検出および認識を行い得る、ユーザ空間404において定義された機能を呼び出すように構成されてもよい。AIアプリケーション402は、たとえば、認識されるシーンがオフィスであるか、講堂であるか、レストランであるか、または湖などの屋外設定であるかに応じて、マイクロフォンおよびカメラを異なるように構成してもよい。AIアプリケーション402は、AI機能アプリケーションプログラミングインターフェース(API)406において定義されたライブラリに関連付けられたコンパイル済みプログラムコードに対する要求を行ってもよい。この要求は、最終的には、たとえば、ビデオおよび測位データに基づいて推論応答を提供するように構成された深層ニューラルネットワークの出力に依拠してもよい。
【0046】
ランタイムフレームワークのコンパイル済みコードであってもよいランタイムエンジン408は、AIアプリケーション402がさらにアクセス可能なものであってもよい。AIアプリケーション402は、ランタイムエンジンに、たとえば、特定の時間間隔における、またはアプリケーションのユーザインターフェースによって検出されたイベントによってトリガされる推論を要求させてもよい。次に、ランタイムエンジンは、推論応答を提供させられるとき、SOC420上で動作しているカーネル412などの、オペレーティングシステム(OS)空間410の中のオペレーティングシステムに信号を送ってもよい。いくつかの例では、カーネル412はLINUX(登録商標)カーネルであってもよい。次に、オペレーティングシステムは、CPU422、DSP424、GPU426、NPU428、またはそれらの何らかの組合せ上で量子化の連続的な緩和を実行させてもよい。CPU422は、オペレーティングシステムによって直接アクセスされてもよく、他の処理ブロックは、それぞれ、DSP424、GPU426、またはNPU428用のドライバ414、416、または418などの、ドライバを通じてアクセスされてもよい。例示的な例では、深層ニューラルネットワークは、CPU422、DSP424、およびGPU426などの処理ブロックの組合せ上で動作するように構成されてもよく、またはNPU428上で動作してもよい。
【0047】
アプリケーション402(たとえば、AIアプリケーション)は、たとえば、デバイスが現在動作しているロケーションを示すシーンの検出および認識を行い得る、ユーザ空間404において定義された機能を呼び出すように構成されてもよい。アプリケーション402は、たとえば、認識されるシーンがオフィスであるか、講堂であるか、レストランであるか、または湖などの屋外設定であるかに応じて、マイクロフォンおよびカメラを異なるように構成してもよい。アプリケーション402は、現在のシーンの推定値を提供するために、SceneDetectアプリケーションプログラミングインターフェース(API)406において定義されたライブラリに関連付けられたコンパイル済みプログラムコードに対する要求を行ってもよい。この要求は、最終的には、たとえば、ビデオおよび測位データに基づいてシーン推定値を提供するように構成された差分ニューラルネットワークの出力に依拠してもよい。
【0048】
ランタイムフレームワークのコンパイル済みコードであってもよいランタイムエンジン408は、アプリケーション402がさらにアクセス可能なものであってもよい。アプリケーション402は、ランタイムエンジンに、たとえば、特定の時間間隔における、またはアプリケーションのユーザインターフェースによって検出されたイベントによってトリガされるシーン推定値を要求させてもよい。次に、ランタイムエンジンは、シーンを推定させられるとき、SOC420上で動作しているLinux(登録商標)カーネル412などのオペレーティングシステム410に信号を送ってもよい。次に、オペレーティングシステム410は、CPU422、DSP424、GPU426、NPU428、またはそれらの何らかの組合せ上で計算を実行させてもよい。CPU422は、オペレーティングシステムによって直接アクセスされてもよく、他の処理ブロックは、DSP424用、GPU426用、またはNPU428用のドライバ414~418などの、ドライバを通じてアクセスされてもよい。例示的な例では、差分ニューラルネットワークは、CPU422およびGPU426などの処理ブロックの組合せ上で動作するように構成されてもよく、またはNPU428上で動作してもよい。
【0049】
本開示の態様は、シーケンシャルセンサデータ分類を起動するための状態変化検出デバイスを対象とする。
【0050】
図5は、本開示の態様による、例示的なエネルギー効率的な分類システム500を示すブロック図である。
図5を参照すると、例示的な分類システム500は、ストリーミングデータを入力として受信してもよい。ストリーミングデータは、ソースによって継続的に生成されたデータを含んでもよい。データは、たとえば、オーディオ、ビデオ、またはそれらの組合せの形態であってもよい。
図5の例に示されているように、入力データは、たとえば、スマートグラス502、スマートフォン504、スマートウォッチ506、または靴508の中のセンサなどのモノのインターネット(IoT)ソースを介して供給されてもよい。もちろん、これらのソースは例示的なものにすぎず、限定的なものではない。ストリーミングデータは、たとえば、Wi-Fi、GPS、Bluetoothなどの通信媒体を介して、またはスピーカを介して受信されてもよい。
【0051】
システム500は、畳み込みニューラルネットワーク(CNN)510を含んでもよい。CNN510は、入力データから特徴を抽出してもよい。抽出された特徴は、分類器を介して処理されてもよい。分類器は、たとえば、深層信念ネットワーク(DBN)512、リカレントニューラルネットワーク(RNN)514、または深層ニューラルネットワーク(DNN)516であってもよい。分類器は、推論検出用に構成されてもよく、入力の分類を提供してもよい。一例では、分類器(たとえば、512、514、または516)は、スマートフォン504を介して提供された画像データの中のアクティビティを分類してもよい。アクティビティ分類520は、たとえば、人が階段を上っていること、上階にいること、走っていること、自転車に乗っていること、コーヒーを飲んでいること、またはテレビを見ていることを示してもよい。
【0052】
データストリームの中のあらゆるデータポイントについて分類を計算するように分類器(たとえば、512、514、または516)を動作させるのではなく、システム500は、入力デバイス(たとえば、スマートフォン504またはスマートウォッチ506)のうちの1つまたは複数によって供給された連続するデータポイントにおける変化を検出するための状態変化検出ブロック530で構成される。状態変化検出ブロック530は、別個の回路として構成されてもよく、またはたとえば入力デバイス(たとえば、靴508の中のセンサ)とともに組み込まれてもよい。いくつかの態様では、連続するデータポイントにおける差が計算されてもよい。
【0053】
状態変化検出ブロック530が入力デバイス(たとえば、スマートフォン504またはスマートウォッチ506)からのデータストリームにおける変化を検出するとき、状態変化検出ブロック530は、入力データの処理を起動および再開して分類を生成するようにCNN510をトリガするかまたは他の方法でCNN510にそうすることを行わせるための信号または他の指示を提供してもよい。逆に、状態変化検出ブロック530が入力デバイスからのデータストリームにおける変化を検出しないとき、状態変化検出ブロック530は、CNN510に低電力状態もしくはスリープ状態に入るかまたはその状態にとどまることを行わせるための指示を提供してもよい。
【0054】
状態変化検出ブロック530は、たとえば、事前定義されたしきい値との差の比較に基づいて状態変化を検出してもよい。いくつかの態様では、状態変化検出ブロック530は、連続するデータポイント間の類似度スコアメトリックを計算することおよび類似度スコアメトリックをしきい値と比較することによって、状態変化を検出してもよい。類似度スコアメトリックは、たとえば、ピーク信号対雑音比(PSNR)、構造的類似度(SSIM)、コサイン類似度などに基づいて決定されてもよい。
【0055】
いくつかの態様では、状態変化検出ブロック530は、センサからの入力データの特徴を検出するための特徴抽出器を含んでもよく、特徴抽出器は、入力の状態が変化したかどうかを決定するために使用されてもよい。いくつかの態様では、状態変化検出ブロック530はまた、状態変化が発生したかどうかについての推論を生成するための分類器を含んでもよい。たとえば、一実装形態では、状態変化検出ブロック530はバイナリ分類器を含んでもよく、バイナリ分類器は、入力データストリーム(たとえば、オーディオまたはビデオストリームを表すデータ)を受信してもよく、データストリームの状態が変化したかどうかの予測を決定してもよい。
【0056】
いくつかの態様では、状態変化検出ブロック530は、データストリームの中のデータのセグメント長に基づいて状態変化を検出してもよい。たとえば、カメラからの各入力は単一のデータポイントであってもよいが、慣性測定ユニット(IMU)からの入力はデータのセグメントであってもよい。したがって、状態変化検出ブロック530は、データが事前定義されたタイプの入力デバイスから受信されたときの状態変化と、定義された量のデータが連続して受信されたこととを検出してもよい。
【0057】
加えて、異なるアプリケーションについて状態変化が発生したかどうかを決定するためのパラメータ構成を決定するために、オフライン統計分析が実行されてもよい。たとえば、いくつかの態様では、状態変化パラメータ構成(たとえば、類似度スコアメトリック)は、アプリケーションに基づいて学習されてもよい。別の例では、状態変化パラメータは、バッファ実装に基づいて、あるいはCNN510のアーキテクチャ(たとえば、CNN、CNN+長短期記憶(CNN+LSTM))、アテンションモデル、または他のニューラルネットワークアーキテクチャもしくはトレーニングデータセットに基づいて決定されてもよい。
【0058】
差がしきい値(たとえば、状態変化しきい値)未満である場合、状態変化が検出されてもよい。同様に、類似度メトリックが使用される場合には、類似度メトリックがしきい値よりも大きい(連続するデータポイントがより高い類似度を有することを示す)場合、状態変化が検出されなくてもよい。状態変化が検出されない場合、CNN510または分類器(たとえば、512、514、または516)はスリープ状態または低電力状態に維持されてもよい。
【0059】
一方、差がしきい値よりも大きい場合、状態変化が検出されてもよい。同様に、類似度メトリックが使用される場合には、類似度メトリックがしきい値未満である(連続するデータポイントがより低い類似度を有することを示す)場合、状態変化が検出されてもよい。状態変化が検出される場合、CNN510または分類器(たとえば、512、514、または516)は、スリープ状態から起動し、それぞれ、入力の特徴を抽出するか、または入力データ(たとえば、後で受信された、連続するデータポイントのデータ)についての分類を計算してもよい。
【0060】
いくつかの態様では、システム500は、分類器(たとえば、512、514、または516)に対して周期的な起動をさらに実装してもよい。すなわち、システム500は、状態変化がないN番目のデータ入力ごとに1回、分類器を起動するようにさらに構成されてもよい。
【0061】
1つの動作例では、システム500は、低電力バードウオッチングデバイスとして構成されてもよい。バードウオッチングデバイスは、カメラセンサ(たとえば、スマートフォン504のカメラ)からのデータを受信してもよい。バードウオッチングデバイスは、特徴抽出器(たとえば、CNN510)と、カメラセンサからのストリーミングデータのフレーム内で観察された鳥のタイプを分類するように構成されてもよい分類器(たとえば、512、514、または516)とで構成されてもよい。この例では、バードウオッチングデバイスは、カメラセンサによって供給されたシーケンシャルフレームが動いているオブジェクトを含むかどうかを検出してもよい状態変化検出ブロック530で構成されてもよい。動き(たとえば、空中で動いているオブジェクト)がある場合、状態変化検出ブロック530は、特徴抽出器および分類器を起動して動いているオブジェクトを分類するための信号または他の指示を生成してもよい。別の例では、鳥に似た音が観測されるとき、状態変化検出ブロック530は、対応するビデオのフレームの中に鳥が存在するかどうかを決定するために特徴抽出器(たとえば、CNN510)および分類器(たとえば、512、514、または516)を起動してもよい。そうでない場合、状態変化検出ブロック530は、特徴抽出器(たとえば、CNN510)および分類器(たとえば、512、514、または516)をスリープ状態にとどまるように制御してもよい。
【0062】
図6Aおよび
図6Bは、本開示の態様による、状態変化検出ブロック530の例示的な実装形態の機能を示す図である。
図6Aを参照すると、状態変化検出ブロック530は、IoTデバイスまたは他のセンサなどの1つまたは複数のソースからのストリーミングシーケンシャル入力データを受信してもよく、これらのソースは、たとえば、自動車602a、眼鏡602b、マイクロフォン602c、セルラーデバイス602d、カメラ602e、またはスマートウォッチ602fに組み込まれてもよい。いくつかの態様では、状態変化検出ブロック530は、センサ(たとえば、カメラ602e)とともに組み込まれてもよい。
【0063】
状態変化検出ブロック530は、入力データストリームにおける変化(たとえば、オーディオストリームのスピーカにおける変化、ビデオにおいて観測された鳥のタイプにおける変化、または入力デバイスにおける変化)があったかどうかを決定してもよい。状態変化検出ブロック530は、連続するデータポイントについての類似度スコアメトリックを計算してもよい。類似度スコアメトリックは、たとえば、ピーク信号対雑音比(PSNR)、構造的類似度(SSIM)、コサイン類似度などに基づいて決定されてもよい。類似度スコアメトリックは、事前定義されたしきい値と比較されてもよい。類似度スコアメトリックが事前定義されたしきい値よりも大きい場合、状態変化検出ブロック530は、状態(たとえば、クラス)が変化しなかったと決定してもよい。すなわち、状態変化検出ブロック530は、第1の入力の状態と次の後続の入力の状態が同じであると決定してもよい。したがって、状態変化検出ブロック530は、状態変化が検出されなかったと決定してもよい。
【0064】
逆に、類似度スコアメトリックが事前定義されたしきい値未満である場合、状態変化検出ブロック530は、状態が変化したと決定してもよい。すなわち、状態変化検出ブロック530は、第1の入力の状態と次の後続の入力の状態が異なると決定してもよい。したがって、状態変化検出ブロック530は、状態変化が検出されたと決定してもよい。状態変化検出ブロック530は、状態検出(または非検出)の指示を特徴抽出器(たとえば、
図5のCNN510)または分類器(たとえば、
図5の512、514、または516)に供給してもよい。この指示は、分類器がスリープ状態にとどまるべきか(たとえば、状態変化が検出されないとき)、または受信された入力に基づいて分類結果の計算を起動および再開すべきか(たとえば、状態変化が検出されるとき)を示すための制御信号として働いてもよい。
【0065】
いくつかの態様では、状態変化検出ブロック530は、バイナリ分類器(図示せず)を含んでもよい。バイナリ分類器は、類似度スコアメトリックに基づいて状態またはクラスの変化を検出または予測するようにトレーニングされてもよい。いくつかの態様では、バイナリ分類器は、最適な状態変化しきい値を決定するようにオフラインでトレーニングされてもよい。
【0066】
いくつかの態様では、状態変化検出ブロック530はまた、間欠的な(たとえば、周期的な)起動指示を提供してもよい。たとえば、事前定義された時間期間の間に状態変化が検出されなかった場合、状態変化検出ブロック530は、受信された入力を分類するために分類器を起動するための信号、またはフィードバックを状態変化検出器に提供しかつ/もしくは特徴抽出器および/もしくは分類器を微調整するための時間期間を供給してもよい。
【0067】
図6Bを参照すると、状態変化検出ブロック530(
図6Aに図示せず)によって検出された状態変化は、分類器610に供給される。状態変化が発生したことを状態変化検出ブロック530が示す場合、分類器610(たとえば、
図5のDNN516)は、連続するデータポイントについての分類を計算するために起動してもよい。いくつかの態様では、事前定義された期間Nが状態変化なしで経過した場合、分類器610が起動し、直近に受信された入力データポイントについての分類を計算してもよい。
【0068】
一方、状態変化が検出されなかったことを状態変化検出ブロック530が示す場合、分類器610(たとえば、DNN516)はスリープ状態にとどまってもよい。直近に受信されたデータポイント(たとえば、後続のデータポイント)についての分類結果を計算するのではなく、そのようなデータについての分類結果は、先行するデータポイントについての分類結果に等しくなるように設定されてもよい。したがって、分類結果の冗長な計算(たとえば、同じ分類結果を生成する可能性が高い計算)が低減され得る。
【0069】
図7は、本開示の態様による、エネルギー効率的な分類のための方法700を示す。
図7に示されているように、ブロック702において、第1の回路を介して、1つまたは複数のセンサからの入力データストリームが受信される。
図6Aを参照しながら説明されたように、状態変化検出ブロック530は、IoTデバイスまたは他のセンサなどの1つまたは複数のソースからのストリーミングシーケンシャル入力データを受信してもよく、これらのソースは、たとえば、自動車602a、眼鏡602b、マイクロフォン602c、セルラーデバイス602d、カメラ602e、またはウォッチ602fに組み込まれてもよい。
【0070】
ブロック704において、第1の回路を介して、第2の回路が休止している間に、データストリームの第1の入力とデータストリームの第2の入力との間の状態変化が検出される。第2の入力は、第1の入力の次の後続の入力である。
図6Aを参照しながら説明されたように、状態変化検出ブロック530は、連続するデータポイントについての類似度スコアメトリックを計算してもよい。類似度スコアは、類似度スコアに基づいて状態変化が検出されるか否かを検出するようにトレーニングされたバイナリ分類器に供給されてもよい。いくつかの態様では、類似度メトリックは、ピーク信号対雑音比、構造的類似度、またはコサイン類似度であってもよい。類似度スコアは、状態変化が発生したかどうかを決定するために、事前定義されたしきい値と比較されてもよい。
【0071】
ブロック706において、第1の回路を介して、状態変化を検出したことに応答して、入力データストリームの分類を実行するように第2の回路がトリガされる。
図6Bを参照しながら説明されたように、類似度スコアメトリックが事前定義されたしきい値未満である場合、状態変化検出ブロック530は、状態が変化したと決定してもよい。すなわち、状態変化検出ブロック530は、第1の入力の状態と次の後続の入力の状態が異なると決定してもよい。したがって、状態変化検出ブロック530は、状態変化が検出されなかったと決定してもよい。状態変化検出ブロック530は、状態検出(または非検出)の指示を特徴抽出器(たとえば、
図5のCNN510)または分類器(たとえば、
図5の512、514、または516)に供給してもよい。この指示は、分類器がスリープ状態にとどまるべきか(たとえば、状態変化が検出されないとき)、または受信された入力に基づいて分類結果の計算を起動および再開すべきか(たとえば、状態変化が検出されるとき)を示すための制御信号として働いてもよい。
【0072】
以下の番号付き条項において実装例が説明される。
【0073】
1.方法であって、
第1の回路を介して、1つまたは複数のセンサからの入力データストリームを受信するステップと、
第1の回路を介して、第2の回路が休止状態である間に、入力データストリームの第1の入力と入力データストリームの第2の入力との間で状態変化が発生したかどうかを検出するステップであって、第2の入力が、入力データストリームの第1の入力の次の後続の入力である、ステップと、
第1の回路を介して、状態変化を検出したことに応答して、入力データストリームの分類を実行するように第2の回路をトリガするステップと
を含む、方法。
【0074】
2.分類が、第1の回路を介して検出された状態とは異なる、条項1の方法。
【0075】
3.第1の回路を介して、入力データストリームの少なくとも第2の入力の特徴のセットを抽出するように第2の回路をトリガするステップをさらに含む、条項1または2の方法。
【0076】
4.第1の回路を介して、第1の入力と第2の入力との間の類似度スコアを計算するステップであって、状態変化が類似度スコアに基づいて検出される、ステップをさらに含む、条項1~3のいずれかの方法。
【0077】
5.第1の回路を介して、類似度スコアを事前定義されたしきい値と比較するステップと、類似度スコアが事前定義されたしきい値を下回ることに応答して、状態変化が発生したことを検出するステップとをさらに含む、条項1~4のいずれかの方法。
【0078】
6.類似度スコアが、ピーク信号対雑音比、構造的類似度、およびコサイン類似度からなるグループから選択されたメトリックに基づく、条項1~5のいずれかの方法。
【0079】
7.第1の回路を介して、状態変化が検出されることなしに事前定義された時間期間が経過したことに応答して、入力データストリームの分類を実行するように第2の回路をトリガするステップをさらに含む、条項1~6のいずれかの方法。
【0080】
8.第1の回路を介して、休止状態に戻るように第2の回路をトリガするステップと、入力データストリームの少なくとも1つの後続の入力についての後続の分類を入力データストリームの先行する入力についての前に計算された分類に等しくなるように設定するステップとをさらに含む、条項1~7のいずれかの方法。
【0081】
9.装置であって、
1つまたは複数のセンサからの入力データストリームを受信するための入力デバイスと、
第2の回路が休止状態である間に、入力データストリームの第1の入力と入力データストリームの第2の入力との間で状態変化が発生したかどうかを検出するための状態変化検出デバイスであって、第2の入力が、入力データストリームの第1の入力の次の後続の入力である、状態変化検出デバイスと、
状態変化を検出したことに応答して、入力データストリームの分類を実行するように第2の回路をトリガするための制御デバイスと
を備える、装置。
【0082】
10.第2の回路が特徴抽出器を含み、制御デバイスが、入力データストリームの少なくとも第2の入力の特徴のセットを抽出するように特徴抽出器をトリガする、条項9の装置。
【0083】
11.状態変化検出デバイスが、第1の入力と第2の入力との間の類似度スコアを計算し、状態変化が類似度スコアに基づいて検出される、条項9~10のいずれかの装置。
【0084】
12.状態変化検出デバイスが、類似度スコアを事前定義されたしきい値と比較し、類似度スコアが事前定義されたしきい値を下回ることに応答して、状態変化が発生したことを検出する、条項9~11のいずれかの装置。
【0085】
13.制御デバイスが、第2の入力および第3の入力について計算された第2の類似度スコアが事前定義されたしきい値を超えることに応答して、休止状態に戻るように第2の回路をトリガする、条項9~12のいずれかの装置。
【0086】
14.類似度スコアが、ピーク信号対雑音比、構造的類似度、およびコサイン類似度からなるグループから選択されたメトリックに基づいて計算される、条項9~13のいずれかの装置。
【0087】
15.制御デバイスが、状態変化が検出されることなしに事前定義された時間期間が経過したことに応答して、入力データストリームの分類を実行するように第2の回路をトリガする、条項9~14のいずれかの装置。
【0088】
16.状態変化検出デバイスがバイナリ分類器を備える、条項9~15のいずれかの装置。
【0089】
17.装置であって、
第1の回路を介して、1つまたは複数のセンサからの入力データストリームを受信するための手段と、
第1の回路を介して、第2の回路が休止状態である間に、入力データストリームの第1の入力と入力データストリームの第2の入力との間で状態変化が発生したかどうかを検出するための手段であって、第2の入力が、入力データストリームの第1の入力の次の後続の入力である、手段と、
第1の回路を介して、状態変化を検出したことに応答して、入力データストリームの分類を実行するように第2の回路をトリガするための手段と
を備える、装置。
【0090】
18.第1の回路を介して、入力データストリームの少なくとも第2の入力の特徴のセットを抽出するように第2の回路をトリガするための手段をさらに備える、条項17の装置。
【0091】
19.第1の回路を介して、第1の入力と第2の入力との間の類似度スコアを計算するための手段であって、状態変化が類似度スコアに基づいて検出される、手段をさらに備える、条項17~18のいずれかの装置。
【0092】
20.第1の回路を介して、類似度スコアを事前定義されたしきい値と比較するための手段と、類似度スコアが事前定義されたしきい値を下回ることに応答して、状態変化が発生したことを検出するための手段とをさらに備える、条項17~19のいずれかの装置。
【0093】
21.類似度スコアが、ピーク信号対雑音比、構造的類似度、およびコサイン類似度からなるグループから選択されたメトリックに基づく、条項17~20のいずれかの装置。
【0094】
22.第1の回路を介して、状態変化が検出されることなしに事前定義された時間期間が経過したことに応答して、入力データストリームの分類を実行するように第2の回路をトリガするための手段をさらに備える、条項17~21のいずれかの装置。
【0095】
23.第1の回路を介して、休止状態に戻るように第2の回路をトリガするための手段をさらに備える、条項17~22のいずれかの装置。
【0096】
24.プログラムコードを符号化した非一時的コンピュータ可読媒体であって、プログラムコードが、プロセッサによって実行され、
第1の回路を介して、1つまたは複数のセンサからの入力データストリームを受信するためのプログラムコードと、
第1の回路を介して、第2の回路が休止状態である間に、入力データストリームの第1の入力と入力データストリームの第2の入力との間で状態変化が発生したかどうかを検出するためのプログラムコードであって、第2の入力が、入力データストリームの第1の入力の次の後続の入力である、プログラムコードと、
第1の回路を介して、状態変化を検出したことに応答して、入力データストリームの分類を実行するように第2の回路をトリガするためのプログラムコードと
を備える、非一時的コンピュータ可読媒体。
【0097】
25.第1の回路を介して、入力データストリームの少なくとも第2の入力の特徴のセットを抽出するように第2の回路をトリガするためのプログラムコードをさらに備える、条項24の非一時的コンピュータ可読媒体。
【0098】
26.第1の回路を介して、第1の入力と第2の入力との間の類似度スコアを計算するためのプログラムコードであって、状態変化が類似度スコアに基づいて検出される、プログラムコードをさらに備える、条項24~25のいずれかの非一時的コンピュータ可読媒体。
【0099】
27.第1の回路を介して、類似度スコアを事前定義されたしきい値と比較するためのプログラムコードと、類似度スコアが事前定義されたしきい値を下回ることに応答して、状態変化が発生したことを検出するためのプログラムコードとをさらに備える、条項24~26のいずれかの非一時的コンピュータ可読媒体。
【0100】
28.類似度スコアが、ピーク信号対雑音比、構造的類似度、およびコサイン類似度からなるグループから選択されたメトリックに基づく、条項24~27のいずれかの非一時的コンピュータ可読媒体。
【0101】
29.第1の回路を介して、状態変化が検出されることなしに事前定義された時間期間が経過したことに応答して、入力データストリームの分類を実行するように第2の回路をトリガするためのプログラムコードをさらに備える、条項24~28のいずれかの非一時的コンピュータ可読媒体。
【0102】
30.第1の回路を介して、休止状態に戻るように第2の回路をトリガするためのプログラムコードをさらに備える、条項24~29のいずれかの非一時的コンピュータ可読媒体。
【0103】
一態様では、受信手段、検出手段、トリガ手段、計算手段、比較手段、および/または戻す手段は、列挙された機能を実行するように構成された、CPU102、CPU102に関連付けられたプログラムメモリ、専用メモリブロック118、全結合層362、NPU428、および/またはルーティング接続処理ユニット216であってもよい。別の構成では、上述の手段は、上述の手段によって列挙された機能を実行するように構成された任意のモジュールまたは任意の装置であってもよい。
【0104】
上記で説明された方法の様々な動作は、対応する機能を実行することが可能な任意の好適な手段によって実行されてもよい。手段は、限定はしないが、回路、特定用途向け集積回路(ASIC)、またはプロセッサを含む、様々なハードウェア構成要素および/またはソフトウェア構成要素および/またはモジュールを含んでもよい。一般に、図に示される動作がある場合、それらの動作は、同様の番号を付された対応する相対物のミーンズプラスファンクション構成要素を有してもよい。
【0105】
本明細書で使用される「決定すること」という用語は、多種多様なアクションを包含する。たとえば、「決定すること」は、算出すること、計算すること、処理すること、導出すること、調査すること、ルックアップすること(たとえば、テーブル、データベースまたは別のデータ構造においてルックアップすること)、確認することなどを含んでもよい。加えて、「決定すること」は、受信すること(たとえば、情報を受信すること)、アクセスすること(たとえば、メモリ内のデータにアクセスすること)などを含んでもよい。さらに、「決定すること」は、解決すること、選択すること、選ぶこと、確立することなどを含んでもよい。
【0106】
本明細書で使用される、項目のリスト「のうちの少なくとも1つ」を指す句は、単一のメンバーを含むそれらの項目の任意の組合せを指す。一例として、「a、b、またはcのうちの少なくとも1つ」は、a、b、c、a-b、a-c、b-c、およびa-b-cを包含するものとする。
【0107】
本開示に関して説明される様々な例示的な論理ブロック、モジュールおよび回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス(PLD)、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または説明された機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行されてもよい。汎用プロセッサはマイクロプロセッサであってもよいが、代替として、プロセッサは、任意の市販のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装されてもよい。
【0108】
本開示に関して説明される方法またはアルゴリズムのステップは、直接ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、またはこれら2つの組合せにおいて具現化されてもよい。ソフトウェアモジュールは、当技術分野で知られている任意の形態の記憶媒体内に存在してもよい。使用され得る記憶媒体のいくつかの例は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、フラッシュメモリ、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROMなどを含む。ソフトウェアモジュールは、単一の命令または多数の命令を備えてもよく、いくつかの異なるコードセグメントにわたって、異なるプログラム間で、複数の記憶媒体にわたって分散されてもよい。記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合されてもよい。代替として、記憶媒体はプロセッサと一体であってもよい。
【0109】
本明細書で開示される方法は、説明された方法を実現するための1つまたは複数のステップまたはアクションを含む。方法ステップおよび/またはアクションは、特許請求の範囲から逸脱することなく互いに入れ替えられてもよい。言い換えれば、ステップまたはアクションの特定の順序が指定されない限り、特定のステップおよび/またはアクションの順序および/または使用は、特許請求の範囲から逸脱することなく修正されてもよい。
【0110】
説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装されてもよい。ハードウェアにおいて実装される場合、例示的なハードウェア構成は、デバイス内の処理システムを備えてもよい。処理システムは、バスアーキテクチャを用いて実装されてもよい。バスは、処理システムの特定の適用例および全体的な設計制約に応じて、任意の数の相互接続バスおよびブリッジを含んでもよい。バスは、プロセッサ、機械可読媒体、およびバスインターフェースを含む様々な回路を互いにリンクさせてもよい。バスインターフェースは、とりわけ、バスを介してネットワークアダプタを処理システムに接続するために使用されてもよい。ネットワークアダプタは、信号処理機能を実装するために使用されてもよい。いくつかの態様では、ユーザインターフェース(たとえば、キーパッド、ディスプレイ、マウス、ジョイスティックなど)もバスに接続される場合がある。バスは、タイミングソース、周辺装置、電圧調整器、電力管理回路などの様々な他の回路をリンクさせる場合もあるが、これらの回路は当技術分野でよく知られており、したがって、これ以上は説明されない。
【0111】
プロセッサは、バスを管理することと、機械可読媒体上に記憶されたソフトウェアの実行を含む一般的な処理とを担う場合がある。プロセッサは、1つまたは複数の汎用プロセッサおよび/または専用プロセッサを用いて実装されてもよい。例は、マイクロプロセッサ、マイクロコントローラ、DSPプロセッサ、およびソフトウェアを実行することができる他の回路を含む。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、または他の名称で呼ばれるかにかかわらず、命令、データ、またはそれらの任意の組合せを意味するものと広く解釈されるものとする。機械可読媒体は、例として、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、磁気ディスク、光ディスク、ハードドライブ、もしくは任意の他の好適な記憶媒体、またはそれらの任意の組合せを含んでもよい。機械可読媒体は、コンピュータプログラム製品において具現化されてもよい。コンピュータプログラム製品は、パッケージング材料を備えてもよい。
【0112】
ハードウェア実装形態では、機械可読媒体は、プロセッサとは別個の処理システムの一部であってもよい。しかしながら、当業者が容易に諒解するように、機械可読媒体またはその任意の部分は処理システムの外部にあってもよい。例として、機械可読媒体は、伝送線路、データによって変調された搬送波、および/またはデバイスとは別個のコンピュータ製品を含んでもよく、それらのすべては、バスインターフェースを通じてプロセッサによってアクセスされてもよい。代替または追加として、機械可読媒体またはその任意の部分は、キャッシュおよび/または汎用レジスタファイルがそうであり得るように、プロセッサに統合されてもよい。論じられた様々な構成要素は、ローカル構成要素など、特定のロケーションを有するものとして説明されることがあるが、これらの構成要素は、分散コンピューティングシステムの一部として構成されるいくつかの構成要素など、様々な方法で構成されることもある。
【0113】
処理システムは、すべてが外部バスアーキテクチャを通じて他のサポート回路と互いにリンクされる、プロセッサ機能を提供する1つまたは複数のマイクロプロセッサと、機械可読媒体の少なくとも一部分を提供する外部メモリとを有する汎用処理システムとして構成されてもよい。代替として、処理システムは、説明されたニューロンモデルおよびニューラルシステムのモデルを実装するための1つまたは複数のニューロモーフィックプロセッサを備えてもよい。別の代替として、処理システムは、プロセッサを有する特定用途向け集積回路(ASIC)、バスインターフェース、ユーザインターフェース、サポート回路、および単一のチップに統合された機械可読媒体の少なくとも一部分を用いて、あるいは1つまたは複数のフィードプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、コントローラ、ステートマシン、ゲート論理、個別ハードウェア構成要素、もしくは任意の他の好適な回路、または本開示全体にわたって説明された様々な機能を実行することができる回路の任意の組合せを用いて実装されてもよい。当業者は、特定の適用例およびシステム全体に課される全体的な設計制約に応じて、処理システムについて説明された機能を最良に実装する方法を認識されよう。
【0114】
機械可読媒体は、いくつかのソフトウェアモジュールを備えてもよい。ソフトウェアモジュールは、プロセッサによって実行されると、処理システムに様々な機能を実行させる命令を含む。ソフトウェアモジュールは、送信モジュールおよび受信モジュールを含んでもよい。各ソフトウェアモジュールは、単一の記憶デバイス内に存在してもよく、または複数の記憶デバイスにわたって分散されてもよい。例として、ソフトウェアモジュールは、トリガイベントが発生したときにハードドライブからRAMの中にロードされてもよい。ソフトウェアモジュールの実行中、プロセッサは、アクセス速度を高めるために、命令のうちのいくつかをキャッシュの中にロードしてもよい。次いで、1つまたは複数のキャッシュラインは、プロセッサによる実行のために汎用レジスタファイルの中にロードされてもよい。以下でソフトウェアモジュールの機能に言及するとき、そのような機能は、そのソフトウェアモジュールからの命令を実行するときにプロセッサによって実装されることが理解されよう。さらに、本開示の態様は、プロセッサ、コンピュータ、機械、またはそのような態様を実装する他のシステムの機能の改善をもたらすことを諒解されたい。
【0115】
ソフトウェアにおいて実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信されてもよい。コンピュータ可読媒体は、コンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形態の所望のプログラムコードを搬送もしくは記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。加えて、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線(IR)、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。したがって、いくつかの態様では、コンピュータ可読媒体は、非一時的コンピュータ可読媒体(たとえば、有形媒体)を備えてもよい。加えて、他の態様では、コンピュータ可読媒体は、一時的コンピュータ可読媒体(たとえば、信号)を備えてもよい。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0116】
したがって、いくつかの態様は、本明細書で提示された動作を実行するためのコンピュータプログラム製品を備えてもよい。たとえば、そのようなコンピュータプログラム製品は、命令を記憶した(および/または符号化した)コンピュータ可読媒体を備えてもよく、命令は、説明された動作を実行するように1つまたは複数のプロセッサによって実行可能である。いくつかの態様では、コンピュータプログラム製品は、パッケージング材料を含んでもよい。
【0117】
さらに、説明された方法および技法を実行するためのモジュールおよび/または他の適切な手段は、適用可能な場合、ユーザ端末および/または基地局によってダウンロードおよび/または別の方法で取得され得ることを諒解されたい。たとえば、そのようなデバイスは、説明された方法を実行するための手段の転送を容易にするためにサーバに結合され得る。代替として、説明された様々な方法は、ユーザ端末および/または基地局が記憶手段(たとえば、RAM、ROM、コンパクトディスク(CD)またはフロッピーディスクなどの物理記憶媒体など)をデバイスに結合または提供すると様々な方法を取得することができるように、記憶手段を介して提供され得る。さらに、説明された方法および技法をデバイスに提供するための任意の他の好適な技法が利用され得る。
【0118】
特許請求の範囲は上記で示された厳密な構成および構成要素に限定されないことを理解されたい。特許請求の範囲から逸脱することなく、上記で説明された方法および装置の構成、動作、および詳細において、様々な修正、変更、および変形が加えられてもよい。
【符号の説明】
【0119】
100 システムオンチップ(SOC)、SOC
102 中央処理ユニット(CPU)、CPU、汎用プロセッサ
104 グラフィックス処理ユニット(GPU)、GPU
106 デジタル信号プロセッサ(DSP)、DSP
108 ニューラル処理ユニット(NPU)、NPU
110 接続性ブロック
112 マルチメディアプロセッサ
114 センサプロセッサ
116 画像信号プロセッサ(ISP)、ISP
118 メモリブロック、専用メモリブロック
120 ナビゲーションモジュール
200 DCN
202 全結合ニューラルネットワーク
204 局所結合ニューラルネットワーク
206 畳み込みニューラルネットワーク
208、210、212、214、216 結合強度
218 特徴マップの第1のセット、特徴マップ
220 特徴マップの第2のセット、特徴マップ
222 出力
224 第1の特徴ベクトル
226 画像
228 第2の特徴ベクトル
230 画像キャプチャデバイス
232 畳み込み層
350 深層畳み込みネットワーク、畳み込みニューラルネットワーク、ニューラルネットワーク
352 入力データ
354A、354B 畳み込みブロック
356 畳み込み層(CONV)、畳み込み層、層
358 正規化層(LNorm)、正規化層、層
360 最大プーリング層(MAX POOL)、最大プーリング層、層
362 全結合層、層
364 ロジスティック回帰(LR)層、層
366 分類スコア
400 ソフトウェアアーキテクチャ
402 AIアプリケーション、アプリケーション
404 ユーザ空間
406 AI機能アプリケーションプログラミングインターフェース(API)、SceneDetectアプリケーションプログラミングインターフェース(API)
408 ランタイムエンジン
410 オペレーティングシステム(OS)空間、オペレーティングシステム
412 カーネル、Linuxカーネル
414 ドライバ
416 ドライバ
418 ドライバ
420 SOC
422 CPU
424 DSP
426 GPU
428 NPU
500 分類システム、システム
502 スマートグラス
504 スマートフォン
506 スマートウォッチ
508 靴
510 畳み込みニューラルネットワーク(CNN)、CNN
512 深層信念ネットワーク(DBN)
514 リカレントニューラルネットワーク(RNN)
516 深層ニューラルネットワーク(DNN)、DNN
520 アクティビティ分類
530 状態変化検出ブロック
602a 自動車
602b 眼鏡
602c マイクロフォン
602d セルラーデバイス
602e カメラ
602f スマートウォッチ、ウォッチ
610 分類器
700 方法
【国際調査報告】