IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

<>
  • 特開-オンデバイスでの活動認識 図1
  • 特開-オンデバイスでの活動認識 図2
  • 特開-オンデバイスでの活動認識 図3A
  • 特開-オンデバイスでの活動認識 図3B
  • 特開-オンデバイスでの活動認識 図3C
  • 特開-オンデバイスでの活動認識 図3D
  • 特開-オンデバイスでの活動認識 図3E
  • 特開-オンデバイスでの活動認識 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022120775
(43)【公開日】2022-08-18
(54)【発明の名称】オンデバイスでの活動認識
(51)【国際特許分類】
   G06Q 10/06 20120101AFI20220810BHJP
   G06N 3/02 20060101ALI20220810BHJP
【FI】
G06Q10/06
G06N3/02
【審査請求】有
【請求項の数】17
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021164946
(22)【出願日】2021-10-06
(31)【優先権主張番号】17/169,194
(32)【優先日】2021-02-05
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ジャスティン・ポール・フィリップス
(72)【発明者】
【氏名】ロバート・キース・ハール
(72)【発明者】
【氏名】プラナフ・ナーシカー
(72)【発明者】
【氏名】アレックス・ウィルソン
(72)【発明者】
【氏名】サンデル・アレウィンゼ
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA06
(57)【要約】      (修正有)
【課題】センサデータを外部のコンピューティングシステム(たとえば、クラウド)に送信することなく、1つ以上のセンサコンポーネントによって提供されるセンサデータに基づいてユーザの活動を認識する方法、コンピューティングデバイス及び記憶媒体を提供する。
【解決手段】コンピューティングデバイスは、1つ以上のモーションセンサによって感知される動きに対応するとともに1つ以上のモーションセンサによって生成されるモーションデータを受信し、差分プライバシーでトレーニングされた1つ以上のニューラルネットワークを用いて、オンデバイス活動認識を実行して、モーションデータに対応する身体活動を認識し、モーションデータに対応する身体活動を認識することに応答して、身体活動に関連付けられた動作を実行する。
【選択図】図4
【特許請求の範囲】
【請求項1】
方法であって、
1つ以上のモーションセンサによって感知される動きに対応するとともに前記1つ以上のモーションセンサによって生成されるモーションデータをコンピューティングデバイスによって受信するステップと、
差分プライバシーでトレーニングされた1つ以上のニューラルネットワークを用いて、前記コンピューティングデバイスによってオンデバイス活動認識を実行して、前記モーションデータに対応する身体活動を認識するステップと、
前記モーションデータに対応する前記身体活動を認識することに応答して、前記コンピューティングデバイスによって、前記身体活動に関連付けられた動作を実行するステップとを含む、方法。
【請求項2】
前記1つ以上のニューラルネットワークは、差分プライバシーフレームワークを用いて、かつ、前記1つ以上のニューラルネットワークのプライバシー保証が保持していない確率に境界を付けるデルタパラメータを用いてトレーニングされ、前記デルタパラメータは、前記1つ以上のニューラルネットワークのためのトレーニングセットのサイズの逆数に設定される値を有する、請求項1に記載の方法。
【請求項3】
前記1つ以上のニューラルネットワークは、複数の身体活動に対応するモーションデータのトレーニングセットを用いてトレーニングされる、請求項1に記載の方法。
【請求項4】
前記モーションデータのトレーニングセットは、制約なしのランダム回転で複数の方向に変換されている、請求項3に記載の方法。
【請求項5】
前記モーションデータのトレーニングセットは、車両の運転中であるかまたは車両に乗車中であるユーザから生成されたものであり静止状態であると分類される複数のモーションデータを含む、請求項3に記載の方法。
【請求項6】
前記モーションデータのトレーニングセットは、ラベル付けされていない自由生活モーションデータのラベル付けに少なくとも部分的に基づいて、予めトレーニングされた活動認識モデルによって生成される複数のモーションデータを含む、請求項3に記載の方法。
【請求項7】
前記ラベル付けされていない自由生活モーションデータのラベル付けに少なくとも部分的に基づいて前記予めトレーニングされた活動認識モデルによって生成される前記複数のモーションデータはさらに、モーションデータのウィンドウに対するモーションデータの隣接するウィンドウのコンテキストに基づいてサイクリングに対応するモーションデータの1つ以上の短いバーストを除去するために、前記ラベル付けされていない自由生活モーションデータにおいて前記モーションデータのウィンドウのデバウンシングを実行する前記予めトレーニングされた活動認識モデルによって生成されている、請求項6に記載の方法。
【請求項8】
前記モーションデータのトレーニングセットは、ラベル付けされていない自由生活モーションデータにおけるモーションデータのウィンドウに関連付けられた平均加速度計の計測値に少なくとも部分的に基づいて、前記ラベル付けされていない自由生活モーションデータから選択された静止状態として分類された複数のモーションデータを含む、請求項3に記載の方法。
【請求項9】
前記身体活動を認識するために前記オンデバイス活動認識を実行するステップは、前記1つ以上のニューラルネットワークを用いて、複数の身体活動にわたる前記モーションデータの確率分布を判定するステップを含む、請求項1に記載の方法。
【請求項10】
前記1つ以上のモーションセンサによって感知される前記動きに対応するとともに前記1つ以上のモーションセンサによって生成される前記モーションデータを受信するステップはさらに、
前記コンピューティングデバイスによって、前記コンピューティングデバイスに通信可能に結合されたウェアラブルコンピューティングデバイスの前記1つ以上のモーションセンサによって生成される前記モーションデータを受信するステップを含み、前記モーションデータは、前記1つ以上のモーションセンサによって感知される前記ウェアラブルコンピューティングデバイスの動きに対応する、請求項1に記載の方法。
【請求項11】
前記1つ以上のモーションセンサによって感知される前記動きに対応するとともに前記1つ以上のモーションセンサによって生成される前記モーションデータを受信するステップはさらに、
前記コンピューティングデバイスによって、前記コンピューティングデバイスの前記1つ以上のモーションセンサによって生成される前記モーションデータを受信するステップを含み、前記モーションデータは、前記1つ以上のモーションセンサによって感知される前記コンピューティングデバイスの動きに対応している、請求項1に記載の方法。
【請求項12】
コンピューティングデバイスは、
メモリと、
1つ以上のプロセッサとを含み、前記1つ以上のプロセッサは、
1つ以上のモーションセンサによって感知される動きに対応するとともに前記1つ以上のモーションセンサによって生成されるモーションデータを受信し、
差分プライバシーでトレーニングされた1つ以上のニューラルネットワークを用いてオンデバイス活動認識を実行して、前記モーションデータに対応する身体活動を認識し、
前記モーションデータに対応する前記身体活動を認識することに応答して、前記身体活動に関連付けられた動作を実行するように構成される、コンピューティングデバイス。
【請求項13】
前記1つ以上のニューラルネットワークは、差分プライバシーライブラリを用いて、かつ、前記1つ以上のニューラルネットワークのプライバシー保証が保持していない確率に境界を付けるデルタパラメータを用いてトレーニングされ、前記デルタパラメータは、前記1つ以上のニューラルネットワークのためのトレーニングセットのサイズの逆数に設定される値を有する、請求項12に記載のコンピューティングデバイス。
【請求項14】
前記1つ以上のニューラルネットワークは、複数の身体活動に対応するモーションデータのトレーニングセットを用いてトレーニングされる、請求項12に記載のコンピューティングデバイス。
【請求項15】
前記モーションデータのトレーニングセットは、制約なしのランダム回転で複数の方向に変換されている、請求項14に記載のコンピューティングデバイス。
【請求項16】
前記モーションデータのトレーニングセットは、ラベル付けされていない自由生活モーションデータのラベル付けに少なくとも部分的に基づいて、予めトレーニングされた活動認識モデルによって生成される複数のモーションデータを含む、請求項14に記載のコンピューティングデバイス。
【請求項17】
命令を格納するコンピュータ可読記憶媒体であって、前記命令は、実行されると、コンピューティングデバイスの1つ以上のプロセッサに、
1つ以上のモーションセンサによって感知される動きに対応するとともに前記1つ以上のモーションセンサによって生成されるモーションデータを受信させる命令と、
差分プライバシーでトレーニングされた1つ以上のニューラルネットワークを用いてオンデバイス活動認識を実行して、前記モーションデータに対応する身体活動を認識させる命令と、
前記モーションデータに対応する前記身体活動を認識することに応答して、前記身体活動に関連付けられた動作を実行させる命令とを含む、コンピュータ可読記憶媒体。
【請求項18】
前記1つ以上のニューラルネットワークは、差分プライバシーライブラリを用いて、かつ、前記1つ以上のニューラルネットワークのプライバシー保証が保持していない確率に境界を付けるデルタパラメータを用いてトレーニングされ、前記デルタパラメータは、前記1つ以上のニューラルネットワークのためのトレーニングセットのサイズの逆数に設定される値を有する、請求項17に記載のコンピュータ可読記憶媒体。
【請求項19】
前記1つ以上のニューラルネットワークは、複数の身体活動に対応するモーションデータのトレーニングセットを用いてトレーニングされる、請求項17に記載のコンピュータ可読記憶媒体。
【請求項20】
前記モーションデータのトレーニングセットは、制約なしのランダム回転で複数の方向に変換されている、請求項19に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
背景
いくつかのモバイルコンピューティングデバイスおよびウェアラブルコンピューティングデバイスは、ユーザがより健康的でよりアクティブなライフスタイルを維持するのを支援するためにユーザ活動を追跡し得る。たとえば、モバイルコンピューティングデバイスは、身体活動に関わっているユーザを示し得るセンサデータを提供する1つ以上のセンサコンポーネントを含み得る。モバイルコンピューティングデバイスは、センサデータに基づいてユーザによって実行されている身体活動を識別するための処理のために、デバイス外で1つ以上のセンサコンポーネントによって提供されるデータをクラウドコンピューティングシステムなどに送信し得る。
【発明の概要】
【課題を解決するための手段】
【0002】
概要
概して、本開示の技術は、差分プライバシーでトレーニングされる1つ以上のニューラルネットワークを用いて、コンピューティングデバイスのユーザが関わっている活動のオンデバイス認識を実行することに向けられている。コンピューティングデバイスは、センサデータを外部のコンピューティングシステム(たとえば、クラウド)に送信することなく、1つ以上のセンサコンポーネントによって提供されるセンサデータに基づいてユーザの活動を認識し得る。むしろ、コンピューティングデバイスは、活動認識を実行するようにトレーニングされた1つ以上のニューラルネットワークを用いて、1つ以上のセンサコンポーネントによって提供されるセンサデータに基づいてオンデバイスでの活動認識を実行し得る。
【0003】
1つ以上のニューラルネットワークは、サーバ側活動認識を実行するニューラルネットワークと比較して、用いられるコンピューティングリソースがより少なくなる(たとえば、用いられる処理サイクルおよびメモリがより少なくなる)ような方法で活動認識を実行するようにデバイス外でトレーニングされ得るので、コンピューティングデバイスは、1つ以上のニューラルネットワークを用いてオンデバイス活動認識を実行できるようになり得る。1つ以上のニューラルネットワークを用いてオンデバイス活動認識を実行することによって、コンピューティングデバイスは、サーバ側活動認識を実行する外部コンピューティングシステムにデータを送受信する必要なしに、ユーザの活動を正確に認識できるようになり得る。むしろ、1つ以上のセンサコンポーネントによって提供されるセンサデータがコンピューティングデバイス上に保持され得ることにより、ユーザのプライバシーが保護され得る。加えて、オンデバイス活動認識を実行することにより、以下でさらに説明するように、コンピューティングデバイスの性能を向上させ得る。
【0004】
差分プライバシーで1つ以上のニューラルネットワークをトレーニングすることにより、ノイズが付加されて、1つ以上のニューラルネットワークのトレーニングデータセットにおける個々の例が隠されてしまう。差分プライバシーで1つ以上のニューラルネットワークをトレーニングすることにより、1つ以上のニューラルネットワークは強固な数学的保証を提供する。この強固な数学的保証とは、1つ以上のニューラルネットワークをトレーニングするためにデータが用いられたいずれかの特定のユーザに関する詳細を当該1つ以上のニューラルネットワークが学習または記憶しないというものである。たとえば、差分プライバシーは、1つ以上のニューラルネットワークのトレーニング中に特定のデータが用いられたかどうかを悪意ある人が正確に判定することを妨げ得るものであり、これにより、1つ以上のニューラルネットワークをトレーニングするのにデータが用いられたユーザのプライバシーを保護し得る。したがって、差分プライバシーで1つ以上のニューラルネットワークをトレーニングすることで、1つ以上のニューラルネットワークをトレーニングするためにデータが用いられたユーザのプライバシーを保護することによってユーザからの自由生活データに基づいて1つ以上のニューラルネットワークをトレーニングすることが可能になり得る。
【0005】
いくつかの例では、方法は、1つ以上のモーションセンサによって感知される動きに対応するとともに当該1つ以上のモーションセンサによって生成されるモーションデータをコンピューティングデバイスによって受信するステップと、差分プライバシーでトレーニングされた1つ以上のニューラルネットワークを用いて、当該コンピューティングデバイスによってオンデバイス活動認識を実行して、当該モーションデータに対応する身体活動を認識するステップと、当該モーションデータに対応する当該身体活動を認識することに応答して、当該コンピューティングデバイスによって、当該身体活動に関連付けられた動作を実行するステップとを含む。
【0006】
いくつかの例では、コンピューティングデバイスは、メモリと、1つ以上のプロセッサとを含み、当該1つ以上のプロセッサは、1つ以上のモーションセンサによって感知される動きに対応するとともに当該1つ以上のモーションセンサによって生成されるモーションデータを受信し、差分プライバシーでトレーニングされた1つ以上のニューラルネットワークを用いてオンデバイス活動認識を実行して、当該モーションデータに対応する身体活動を認識し、当該モーションデータに対応する当該身体活動を認識することに応答して、当該身体活動に関連付けられた動作を実行するように構成される。
【0007】
いくつかの例では、コンピュータ可読記憶媒体は命令を格納し、当該命令は、実行されると、コンピューティングデバイスの1つ以上のプロセッサに、1つ以上のモーションセンサによって感知される動きに対応するとともに当該1つ以上のモーションセンサによって生成されるモーションデータを受信させる命令と、差分プライバシーでトレーニングされた1つ以上のニューラルネットワークを用いてオンデバイス活動認識を実行して、当該モーションデータに対応する身体活動を認識させる命令と、当該モーションデータに対応する当該身体活動を認識することに応答して、当該身体活動に関連付けられた動作を実行させる命令とを含む。
【0008】
いくつかの例では、装置は、1つ以上のモーションセンサによって感知される動きに対応するとともに当該1つ以上のモーションセンサによって生成されるモーションデータを受信するための手段と、差分プライバシーでトレーニングされた1つ以上のニューラルネットワークを用いてオンデバイス活動認識を実行して、当該モーションデータに対応する身体活動を認識するための手段と、当該モーションデータに対応する当該身体活動を認識することに応答して、当該身体活動に関連付けられた動作を実行するための手段とを含む。
【0009】
1つ以上の例の詳細が添付の図面に例示されるとともに以下の説明において記載される。本開示の他の特徴、目的および利点は、以下の説明および添付の図面、ならびに添付の特許請求の範囲から明らかになるだろう。
【図面の簡単な説明】
【0010】
図1】本開示の1つ以上の局面に従った、差分プライバシーを用いてトレーニングされた1つ以上のニューラルネットワークを用いて身体活動のオンデバイス認識を実行し得るコンピューティングデバイス110を示す概念図である。
図2】本開示の1つ以上の局面に従った、差分プライバシーを用いてトレーニングされた活動認識モデルを用いてオンデバイス活動認識を実行するコンピューティングデバイスのさらなる詳細を示すブロック図である。
図3A】本開示の例示的な実現例に従った、差分プライバシーを用いてトレーニングされた例示的な機械学習モデルの局面を示す概念図である。
図3B】本開示の例示的な実現例に従った、差分プライバシーを用いてトレーニングされた例示的な機械学習モデルの局面を示す概念図である。
図3C】本開示の例示的な実現例に従った、差分プライバシーを用いてトレーニングされた例示的な機械学習モデルの局面を示す概念図である。
図3D】本開示の例示的な実現例に従った、差分プライバシーを用いてトレーニングされた例示的な機械学習モデルの局面を示す概念図である。
図3E】本開示の例示的な実現例に従った、差分プライバシーを用いてトレーニングされた例示的な機械学習モデルの局面を示す概念図である。
図4】本開示の1つ以上の局面に従った、差分プライバシーを用いてトレーニングされた活動認識モデルを用いてオンデバイス活動認識を実行するコンピューティングデバイスの例示的な動作を示すフロー図である。
【発明を実施するための形態】
【0011】
詳細な説明
図1は、本開示の1つ以上の局面に従った、差分プライバシーを用いてトレーニングされた1つ以上のニューラルネットワークを用いて身体活動のオンデバイス認識を実行し得るコンピューティングデバイス110を示す概念図である。図1に示されるように、コンピューティングデバイス110は、携帯電話(スマートフォンを含む)、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブルコンピューティングデバイス、携帯情報端末(personal digital assistant:PDA)、またはユーザの活動を検出するのに適した他の任意のコンピューティングデバイスなどのモバイルコンピューティングデバイスであり得る。いくつかの例では、コンピューティングデバイス110は、コンピュータ化された時計、コンピュータ化されたフィットネスバンド/トラッカー、コンピュータ化されたアイウェア、コンピュータ化されたヘッドウェア、コンピュータ化されたグローブ、または人の身体もしくは衣類への取付けおよび着用が可能である他の任意のタイプのモバイルコンピューティングデバイスなどのウェアラブルコンピューティングデバイスであり得る。
【0012】
いくつかの例では、コンピューティングデバイス110は存在感知ディスプレイ112を含み得る。コンピューティングデバイス110の存在感知ディスプレイ112は、コンピューティングデバイス110のための入力デバイスとして、および出力デバイスとして機能し得る。存在感知ディスプレイ112はさまざまな技術を用いて実現され得る。たとえば、存在感知ディスプレイ112は、抵抗性タッチスクリーン、表面音響波タッチスクリーン、容量性タッチスクリーン、投影型静電容量タッチスクリーン、圧力感知スクリーン、音響パルス認識タッチスクリーン、または別の存在感知ディスプレイ技術などの存在感知入力コンポーネントを用いる入力デバイスとして機能し得る。存在感知ディスプレイ112は、液晶ディスプレイ(liquid crystal display:LCD)、ドットマトリックスディスプレイ、発光ダイオード(light emitting diode:LED)ディスプレイ、マイクロLED、有機発光ダイオード(organic light-emitting diode:OLED)ディスプレイ、電子インク、または、コンピューティングデバイス110のユーザに可視情報を出力することができる同様のモノクロディスプレイもしくはカラーディスプレイなどの、任意の1つ以上のディスプレイコンポーネントを用いる出力(たとえば、ディスプレイ)デバイスとして機能し得る。
【0013】
コンピューティングデバイス110はまた、1つ以上のセンサコンポーネント114を含み得る。いくつかの例では、センサコンポーネントは、コンピューティングデバイス110を含む環境の環境情報を取得する入力コンポーネントであり得る。センサコンポーネントは、コンピューティングデバイス110のユーザの生理学的情報を取得する入力コンポーネントであり得る。いくつかの例では、センサコンポーネントは、コンピューティングデバイス110の物理的位置情報、動き情報、および/またはロケーション情報を取得する入力コンポーネントであり得る。たとえば、センサコンポーネント114は、モーションセンサ(たとえば、加速度計、ジャイロスコープなど)、心拍数センサ、温度センサ、位置センサ、圧力センサ(たとえば、気圧計)、近接センサ(たとえば、赤外線センサ)、周囲光検出器、ロケーションセンサ(たとえば、全地球測位システムセンサ)、または他の任意のタイプの感知コンポーネントを含み得るが、これらに限定されない。本開示でさらに説明するように、活動認識モジュール118は、ウェアラブルコンピューティングデバイス100の1つ以上のセンサコンポーネント114および/または1つ以上のセンサコンポーネント108によって生成されるセンサデータに基づいて、コンピューティングデバイス110のユーザによって実行される1つ以上の身体活動を判定し得る。
【0014】
いくつかの例では、コンピューティングデバイス110は、1つ以上のウェアラブルコンピューティングデバイス100に通信可能に結合され得る。たとえば、コンピューティングデバイス110は、1つ以上の通信プロトコルを用いて、ウェアラブルコンピューティングデバイス100との間でデータを送受信し得る。いくつかの例では、通信プロトコルは、Bluetooth(登録商標)、近距離無線通信、WiFi(登録商標)、または他の任意の適切な通信プロトコルを含み得る。
【0015】
図1の例では、ウェアラブルコンピューティングデバイス100はコンピュータ化された時計である。しかしながら、他の例では、ウェアラブルコンピューティングデバイス100は、コンピュータ化されたフィットネスバンド/トラッカー、コンピュータ化されたアイウェア、コンピュータ化されたヘッドウェア、コンピュータ化されたグローブなどであり得る。他の例では、ウェアラブルコンピューティングデバイス100は、人の身体または衣服への取付けおよび着用が可能である任意のタイプのモバイルコンピューティングデバイスであり得る。
【0016】
図1に示されるように、いくつかの例では、ウェアラブルコンピューティングデバイス100は、アタッチメントコンポーネント102および電気ハウジング104を含み得る。ウェアラブルコンピューティングデバイス100のハウジング104は、ウェアラブルコンピューティングデバイス100のハードウェア、ソフトウェア、ファームウェア、および/または他の電気コンポーネントの組合わせを収容するウェアラブルコンピューティングデバイスの物理的部分を含む。たとえば、図1は、ハウジング104内に、ウェアラブルコンピューティングデバイス100が、センサコンポーネント108と存在感知ディスプレイ106とを含み得ることを示す。
【0017】
存在感知ディスプレイ106は、存在感知ディスプレイ112に関して説明したとおりの存在感知ディスプレイであり得るとともに、センサコンポーネント108は、センサコンポーネント114に関して説明したとおりのセンサコンポーネントであり得る。ハウジング104はまた、1つ以上のプロセッサ、メモリ、オペレーティングシステム、アプリケーションなどの、図1に示されない他のハードウェアコンポーネントおよび/またはソフトウェアモジュールを含み得る。
【0018】
アタッチメントコンポーネント102は、ユーザがウェアラブルコンピューティングデバイス100を着用しているときにユーザの身体(たとえば、組織、筋肉、皮膚、毛髪、衣類など)と接触するウェアラブルコンピューティングデバイスの物理的部分を含み得る(ただし、いくつかの例では、ハウジング104の部分がユーザの身体と接触することもあり得る)。たとえば、ウェアラブルコンピューティングデバイス100が時計である場合、アタッチメントコンポーネント102は、ユーザの手首の周りにフィットしてユーザの皮膚と接触する時計バンドであり得る。ウェアラブルコンピューティングデバイス100がアイウェアまたはヘッドウェアである例では、アタッチメントコンポーネント102は、ユーザの頭の周りにフィットするアイウェアまたはヘッドウェアのフレームの一部分であり得るとともに、ウェアラブルコンピューティングデバイス100がグローブである場合、アタッチメントコンポーネント102は、ユーザの指および手に密着するグローブの材料であり得る。いくつかの例では、ウェアラブルコンピューティングデバイス100は、ハウジング104および/またはアタッチメントコンポーネント102から把持および保持され得る。
【0019】
図1に示されるように、コンピューティングデバイス110は活動認識モジュール118を含み得る。活動認識モジュール118は、センサコンポーネント114のうちの1つ以上によって生成されるセンサデータに基づいて、または、コンピューティングデバイス110がウェアラブルコンピューティングデバイス100に通信可能に結合される場合には、ウェアラブルコンピューティングデバイス100のセンサコンポーネント108のうちの1つ以上によって生成されるセンサデータに基づいて、または、センサコンポーネント114のうちの1つ以上とセンサコンポーネント108のうちの1つ以上との組合わせによって生成されるセンサデータに基づいて、ユーザの1つ以上の活動を判定し得る。活動認識モジュール118によって検出される活動は、サイクリング、ランニング、静止状態(たとえば、座ったままであること、または立ったままであること)、階段昇降、ウォーキング、スイミング、ヨガ、ウェイトリフティングなどを含み得るが、これらに限定されない。
【0020】
活動認識モジュール118は、例示の目的で、コンピューティングデバイス110において実現されるとともに当該コンピューティングデバイス110を動作させるものとして説明されるが、ウェアラブルコンピューティングデバイス100はまた、活動認識モジュール118に関して説明される機能を含む活動認識モジュールを実現してもよく、および/または動作させてもよい。いくつかの例では、コンピューティングデバイス110のユーザがウェアラブルコンピューティングデバイス100を着用している場合、活動認識モジュール118は、ウェアラブルコンピューティングデバイス100の1つ以上のセンサコンポーネント108によって生成されるセンサデータに基づいてユーザの1つ以上の活動を判定し得る。
【0021】
概して、コンピューティングデバイス110の活動認識モジュール118が、ウェアラブルコンピューティングデバイス100の1つ以上のセンサコンポーネント108によって生成されるセンサデータに基づいてユーザの1つ以上の活動を判定する場合、コンピューティングデバイス110およびウェアラブルコンピューティングデバイス100はともに同じユーザの制御下にあり得る。すなわち、ウェアラブルコンピューティングデバイス100を着用するユーザは、コンピューティングデバイス110を使用および/または制御しているのと同じユーザであり得る。たとえば、ウェアラブルコンピューティングデバイス100を着用しているユーザは、コンピューティングデバイス110を携帯もしくは把持することもでき、またはユーザの物理的近傍(たとえば、同じ部屋内)にコンピューティングデバイス110を有することもできる。したがって、コンピューティングデバイス110は、たとえば、ウェアラブルコンピューティングデバイス100の1つ以上のセンサコンポーネント108によって生成されるセンサデータに基づいて活動認識を遠隔で実行するために、たとえばインターネットを介して、ウェアラブルコンピューティングデバイス100と通信するリモートコンピューティングサーバまたはクラウドコンピューティングシステムではない可能性もある。
【0022】
いくつかの例では、ウェアラブルコンピューティングデバイス100において実現されるおよび/または動作させる活動認識モジュールは、有線通信または無線通信を介して活動認識モジュール118との間で情報を送受信し得る。活動認識モジュール118は、本開示の技術にしたがってウェアラブルコンピューティングデバイス100から受信したこのような情報を、あたかも当該情報がコンピューティングデバイス110においてローカルに生成されたかのように用いてもよい。
【0023】
活動認識モジュール118は、センサコンポーネント114のうちの1つ以上および/または1つ以上のセンサコンポーネント108に対応するセンサデータを受信し得るとともに、ユーザが関わっている1つ以上の身体活動を判定し得る。いくつかの例では、活動認識モジュール118は、(たとえば、図2でさらに説明するように)センサ処理モジュールからセンサデータを受信し得る。センサ処理モジュールは、センサコンポーネント114を実現するハードウェアと、センサデータをさらに処理する活動認識モジュール118などのモジュールとの間のインターフェイスを提供し得る。たとえば、センサ処理モジュールは、特定のセンサコンポーネントを実現するハードウェアの出力を表わすかまたは当該出力に対応するセンサデータを生成し得る。一例として、加速度計センサコンポーネント用のセンサ処理モジュールは、座標系のさまざまな軸(たとえば、x軸、y軸、およびz軸)に沿った加速度値を含むセンサデータを生成し得る。
【0024】
活動認識モジュール118は、センサデータに基づいてユーザの身体活動のオンデバイス認識を実行し得る。すなわち、活動認識モジュール118は、センサデータなどの情報をデバイス外でクラウドコンピューティングシステムなどに送信することなく、ユーザの活動を識別し得る。代わりに、活動認識モジュール118は、1つ以上のニューラルネットワークを実現するとともに、当該1つ以上のニューラルネットワークを用いて、センサデータに基づいてユーザの活動を判定し得る。ユーザの身体活動のオンデバイス認識を実行するために活動認識モジュール118が用い得るセンサデータの例は、1つ以上のモーションセンサによって生成されるモーションデータを含み得る。本明細書で説明するように、モーションデータは、1つ以上の多軸加速度計によって生成される座標系のさまざまな軸に沿った加速度値、心拍数センサによって生成される心拍数データ、ロケーションセンサ(たとえば、全地球測位システム(global positioning system:GPS)センサ)によって生成されるロケーションデータ、酸素飽和度センサによって生成される酸素飽和度データ(たとえば、末梢酸素飽和度)などを含み得る。本明細書で説明するように、モーションデータを生成するためのモーションセンサは、このような多軸加速度計、心拍数センサ、ロケーションセンサ、酸素飽和度センサ、ジャイロスコープなどを含み得る。
【0025】
概して、活動認識モジュール118によって実現される1つ以上のニューラルネットワークは、相互接続された複数のノードを含み得る。各ノードは、1つ以上の特徴に対応する入力値のセットに1つ以上の関数を適用し得るとともに、1つ以上の対応する出力値を提供し得る。1つ以上の特徴はセンサデータであってもよく、1つ以上のニューラルネットワークの1つ以上の対応する出力値はセンサデータに対応するユーザの活動の表示であり得る。
【0026】
いくつかの例では、1つ以上の対応する出力値はユーザの活動の確率を含み得る。したがって、活動認識モジュール118は、1つ以上のニューラルネットワークを用いてユーザ入力の特徴に基づいてユーザの活動の確率を判定し得るとともに、当該対応する確率に基づいて、ユーザの活動のうち確率が最も高いユーザの活動の表示を判定して出力し得る。
【0027】
いくつかの例では、1つ以上のニューラルネットワークは、当該特徴に基づいてユーザの身体活動のうち確率が最も高い身体活動をより正確に判定するために、活動認識モジュール118によってオンデバイスでトレーニングされ得る。たとえば、1つ以上のニューラルネットワークは、当該特徴に適用される1つ以上の学習可能なパラメータまたは「重み」を含み得る。活動認識モジュール118は、1つ以上のニューラルネットワークがセンサデータに対応するユーザの身体活動を判定する精度を向上させるために、および/または、他の任意の適切な目的のために、たとえば、活動が実行される方法の副次的特徴を学習するなどのために、トレーニング中にこれらの学習可能なパラメータを調整し得る。たとえば、ユーザが当該ユーザの実際の身体活動を示すためにユーザ入力を提供するかどうかに基づいて、活動認識モジュール118は学習可能なパラメータを調整してもよい。
【0028】
いくつかの例では、1つ以上のニューラルネットワークは、デバイス外でトレーニングされ得るとともに、さらに、コンピューティングデバイス110にダウンロードまたはインストールされ得る。特に、1つ以上のニューラルネットワークは差分プライバシーを用いてトレーニングされ得る。すなわち、1つ以上のニューラルネットワークは、プライバシー保証とも称される強固な数学的保証を提供する個々の例をトレーニングデータに隠すために、1つ以上のニューラルネットワークのトレーニングデータにノイズを追加することなどによる方法でトレーニングされ得る。強固な数学的保証とは、1つ以上のニューラルネットワークをトレーニングするためにデータが用いられた任意の特定のユーザに関する詳細を当該1つ以上のニューラルネットワークが学習または記憶しないというものである。差分プライバシーを用いて1つ以上のニューラルネットワークをトレーニングすることにより、悪意ある人が、1つ以上のニューラルネットワークのトレーニング中に特定のデータが用いられたかどうかを正確に判定すること、または1つ以上のニューラルネットワークがどのようにトレーニングされたかを正確に判定することを防ぎ、これにより、1つ以上のニューラルネットワークをトレーニングするためにデータが用いられたユーザのプライバシーを保護する。
【0029】
1つ以上のニューラルネットワークは、ユーザの集団によって用いられるコンピューティングデバイスのセンサコンポーネントによって提供されるセンサデータを含み得るトレーニングデータを用いてトレーニングされ得る。たとえば、トレーニングデータは、サイクリング、ランニング、静止状態(たとえば、動いていない)、ウォーキングなどのさまざまな身体活動を実行する間にユーザが用いるコンピューティングデバイスのセンサコンポーネントによって提供されるセンサデータを含み得る。トレーニングされた結果得られる1つ以上のニューラルネットワークは、当該1つ以上のニューラルネットワークが活動認識を実行するためにコンピューティングデバイス110などのモバイルコンピューティングデバイスにインストール可能となるように、量子化および圧縮され得る。たとえば、1つ以上のニューラルネットワークにおけるモデル重みは、より効率的なオンデバイス推論のために8ビット整数に圧縮され得る。
【0030】
活動認識モジュール118は、センサデータに基づいて、1つ以上のニューラルネットワークを用いて、1つ以上の身体活動に対応する確率分布などの1つ以上の確率を生成し得る。すなわち、活動認識モジュール118は、特定の期間におけるセンサデータに関して、それぞれの身体活動に関するそれぞれの確率を生成し得る。活動認識モジュール118は、センサコンポーネント114のうちの1つ以上、センサコンポーネント108のうちの1つ以上、および/または、センサコンポーネント114とセンサコンポーネント108とのいずれかの組合わせによって生成されたセンサデータを用い得る。一例として、活動認識モジュール118は、センサデータに関して、ユーザがウォーキングしている確率0.6、ユーザがランニングしている確率0.2、ユーザがサイクリングしている確率0.2、およびユーザが静止状態である(すなわち、動いていない)確率0.0を生成し得る。
【0031】
活動認識モジュール118は、1つ以上の身体活動に対応する1つ以上の確率に少なくとも部分的に基づいて、センサデータに対応する身体活動を判定し得る。たとえば、活動認識モジュール118は、1つ以上の確率のうち最も高い確率を有する活動(たとえば、上述の例においては、0.6の確率を有するウォーキングの身体活動)に関して、対応する確率が閾値を満たしている(たとえば、確率が閾値よりも大きいか、閾値以上であるか、閾値未満であるか、閾値以下であるか、または閾値に等しいか)かどうかを判定してもよい。閾値は、ハードコード化された値でもよく、ユーザによって設定された値でもよく、または、動的に変化する値でもよい。いくつかの例では、活動認識モジュール118は、さまざまな活動についてさまざまな閾値を格納または使用し得る。いずれの場合においても、活動認識モジュール118は、閾値活動に関する確率が閾値を満たすかどうかを判定し得る。いくつかの例では、身体活動についての確率が閾値を満たしていると活動認識モジュール118が判定した場合、活動認識モジュール118は、ユーザが特定の身体活動に関わっている可能性が高いと判定し得るとともに、これにより、特定の身体活動をセンサデータに対応する身体活動として認識し得る。
【0032】
いくつかの例では、活動認識モジュール118は、身体活動を認識することに応答して、コンピューティングデバイス110に、身体活動に関連付けられた1つ以上の動作を実行させ得る。当該1つ以上の動作とは、関連する活動用の特定のセンサから特定のデータを収集する動作などである。いくつかの例では、活動認識モジュール118は、センサのセットからデータを収集し得るとともに、当該データを、認識された身体活動に関連付けられた身体活動情報として(たとえば、図2に示される身体活動情報データストア228に)格納し得る。身体活動情報は、特定の身体活動を記述するデータを含み得る。このようなデータの例として、身体活動情報についてほんの数例を挙げると、身体活動の時間、ユーザが身体活動を実行する地理的位置、心拍数、ユーザが動いた歩数、ユーザの動きの変化の速度またはレート、ユーザの体温またはユーザの環境、ユーザが活動を実行する高度または高さを含むがこれらに限定されない。
【0033】
いくつかの例では、活動認識モジュール118は、グラフィカルユーザインターフェイスにおいて、認識された身体活動に関連付けられた身体活動情報をユーザに出力し得る。いくつかの例では、活動認識モジュール118は、合計値、平均値などを含むさまざまな統計メトリクスを判定するなどの分析を身体活動情報に対して実行し得る。いくつかの例では、活動認識モジュール118は、身体活動情報をユーザのユーザアカウントに関連付ける身体活動情報を遠隔サーバに送信してもよい。さらに他の例では、活動認識モジュール118は、1つ以上のサードパーティアプリケーションに通知し得る。たとえば、サードパーティフィットネスアプリケーションは活動認識モジュール118に登録することができ、サードパーティフィットネスアプリケーションは、ユーザについての身体活動情報を記録することができる。
【0034】
図2は、本開示の1つ以上の局面に従った、オンデバイス活動認識を実行するコンピューティングデバイス210のさらなる詳細を示すブロック図である。図2のコンピューティングデバイス210は、図1に示されるコンピューティングデバイス110の一例として以下に説明される。図2は、コンピューティングデバイス210の1つの特定の例のみを示しており、コンピューティングデバイス210の多くの他の例が他の事例において用いられてもよく、例示的なコンピューティングデバイス210に含まれるコンポーネントのサブセットを含んでもよく、または図2に示されない追加のコンポーネントを含んでもよい。
【0035】
図2の例に示されるように、コンピューティングデバイス210は、存在感知ディスプレイ212、1つ以上のプロセッサ240、1つ以上の入力コンポーネント242、1つ以上の通信ユニット244、1つ以上の出力コンポーネント246、および1つ以上のストレージコンポーネント248を含む。存在感知ディスプレイ(presence-sensitive display:PSD)212は、ディスプレイコンポーネント202および存在感知入力コンポーネント204を含む。入力コンポーネント242はセンサコンポーネント214を含む。コンピューティングデバイス210のストレージコンポーネント248はまた、活動認識モジュール218、活動検出モデル220、アプリケーションモジュール224、センサ処理モジュール226、および身体活動情報データストア228を含む。
【0036】
通信チャネル250は、(物理的な、通信可能な、および/または動作可能な)コンポーネント間通信のためにコンポーネント240、212、202、204、244、246、242、214、248、218、220、224、226、および228の各々を相互接続し得る。いくつかの例では、通信チャネル250は、システムバス、ネットワーク接続、プロセス間通信データ構造、または、データを通信するための他の任意の方法を含み得る。
【0037】
コンピューティングデバイス210の1つ以上の入力コンポーネント242は入力を受信し得る。入力の例として、触覚入力、音声入力、および映像入力がある。コンピューティングデバイス210の入力コンポーネント242は、一例では、存在感知ディスプレイ、タッチ式スクリーン、マウス、キーボード、音声応答システム、ビデオカメラ、マイクロフォン、または人もしくは機械からの入力を検出するための他の任意のタイプのデバイスを含む。
【0038】
1つ以上の入力コンポーネント242は1つ以上のセンサコンポーネント214を含む。センサコンポーネント214の多数の例が存在しており、コンピューティングデバイス210を取り囲む状況に関する環境情報、ならびに/または、コンピューティングデバイス210のユーザの活動状態および/もしくは身体的健康を規定する生理学的情報を取得するように構成された任意の入力コンポーネントを含む。いくつかの例では、センサコンポーネントは、コンピューティングデバイス210の物理的位置、動きおよび/またはロケーションの情報を取得する入力コンポーネントであり得る。たとえば、センサコンポーネント214は、1つ以上のロケーションセンサ214A(GPSコンポーネント、Wi-Fiコンポーネント、セルラーコンポーネント)、1つ以上の温度センサ214B、1つ以上のモーションセンサ214C(たとえば、多軸加速度計、ジャイロ)、1つ以上の圧力センサ214D(たとえば、気圧計)、1つ以上の周囲光センサ214E、および、1つ以上の他のセンサ214F(たとえば、マイクロフォン、カメラ、赤外線近接センサ、湿度計など)を含み得る。他のセンサは、いくつかの他の非限定的な例を挙げると、心拍数センサ、磁力計、グルコースセンサ、湿度計センサ、嗅覚センサ、コンパスセンサ、歩数計センサを含み得る。
【0039】
コンピューティングデバイス210の1つ以上の出力コンポーネント246は出力を生成し得る。出力の例として、触覚出力、音声出力、および映像出力がある。コンピューティングデバイス210の出力コンポーネント246は、一例では、存在感知ディスプレイ、サウンドカード、ビデオグラフィックスアダプタカード、スピーカ、陰極線管(cathode ray tube:CRT)モニタ、液晶ディスプレイ(LCD)、または、人もしくは機械への出力を生成するための他の任意のタイプのデバイスを含む。
【0040】
コンピューティングデバイス210の1つ以上の通信ユニット244は、1つ以上のネットワーク上でネットワーク信号を送信および/または受信することによって、1つ以上の有線ネットワークおよび/または無線ネットワークを介して外部デバイスと通信し得る。通信ユニット244の例は、ネットワークインターフェイスカード(たとえば、イーサネット(登録商標)カードなど)、光トランシーバ、無線周波数トランシーバ、GPS受信機、または情報を送信および/もしくは受信することのできる他の任意のタイプのデバイスを含む。通信ユニット244の他の例は、短波電波、セルラーデータ電波、無線ネットワーク電波、およびユニバーサルシリアルバス(universal serial bus:USB)コントローラを含み得る。
【0041】
コンピューティングデバイス200の存在感知ディスプレイ(PSD)212は、ディスプレイコンポーネント202および存在感知入力コンポーネント204を含む。ディスプレイコンポーネント202は、情報がPSD212によって表示される画面であってもよく、存在感知入力コンポーネント204は、ディスプレイコンポーネント202におけるオブジェクトおよび/またはディスプレイコンポーネント202付近のオブジェクトを検出し得る。1つの例示的な範囲として、存在感知入力コンポーネント204は、ディスプレイコンポーネント202から2インチ以内にある指またはスタイラスなどのオブジェクトを検出し得る。存在感知入力コンポーネント204は、オブジェクトが検出されたディスプレイコンポーネント202のロケーション(たとえば、(x,y)座標)を判定し得る。別の例示的範囲では、存在感知入力コンポーネント204は、ディスプレイコンポーネント202から6インチ以内にあるオブジェクトを検出し得るとともに、他の範囲でも検出可能である。存在感知入力コンポーネント204は、容量的、誘導的および/または光学的な認識技術を用いて、ユーザの指によって選択されたディスプレイコンポーネント202の位置を判定し得る。いくつかの例では、存在感知入力コンポーネント204はまた、ディスプレイコンポーネント202に関して説明したように、触覚刺激、音声刺激、または映像刺激を用いてユーザに出力を提供する。図2の例では、PSD212はユーザインターフェイスを提示する。
【0042】
存在感知ディスプレイ212はまた、コンピューティングデバイス210の内部コンポーネントとして示されているが、入力および出力を送信および/または受信するためにコンピューティングデバイス210とデータ経路を共有する外部コンポーネントを表わし得る。たとえば、一例では、PSD212は、コンピューティングデバイス210の外部パッケージング内に配置されるとともに当該外部パッケージングに物理的に接続されているコンピューティングデバイス210の内蔵コンポーネントを表わしている(たとえば、携帯電話上のスクリーン)。別の例では、PSD212は、コンピューティングデバイス210の外部に配置されるとともにコンピューティングデバイス210のパッケージングから物理的に分離されているコンピューティングデバイス210の外部コンポーネントを表わしている(たとえば、タブレットコンピュータと有線および/または無線のデータ経路を共有するモニタ、プロジェクタなど)。
【0043】
コンピューティングデバイス210のPSD212は、コンピューティングデバイス110のユーザから触覚入力を受信し得る。PSD212は、コンピューティングデバイス210のユーザから1つ以上のジェスチャ(たとえば、ユーザが指またはスタイラスペンでPSD212の1つ以上の場所に触れるかまたは指し示すこと)を検出することによって触覚入力の表示を受信し得る。PSD212は、ユーザに出力を提示し得る。PSD212は、コンピューティングデバイス210によって提供される機能に関連付けられ得るグラフィカルユーザインターフェイスとして出力を提示し得る。たとえば、PSD212は、コンピューティングデバイス210において実行されるかまたはコンピューティングデバイス210によってアクセス可能であるコンピューティングプラットフォーム、オペレーティングシステム、アプリケーション、またはサービスのコンポーネントのさまざまなユーザインターフェイス(たとえば、電子メッセージアプリケーション、ナビゲーションアプリケーション、インターネットブラウザアプリケーション、モバイルオペレーティングシステムなど)を提示し得る。ユーザは、それぞれのユーザインターフェイスと対話して、機能に関連する動作をコンピューティングデバイス210に実行させ得る。
【0044】
コンピューティングデバイス210のPSD212は、コンピューティングデバイス210のユーザからの入力として2次元および/または3次元のジェスチャを検出し得る。たとえば、PSD212のセンサは、PSD212のセンサの閾値距離内のユーザの(たとえば、手、腕、ペン、スタイラスなどを移動させる)動きを検出し得る。PSD212は、動きの2次元または3次元ベクトル表現を判定し得るとともに、ベクトル表現を、多次元を有するジェスチャ入力(たとえば、手振り、ピンチ、クラップ、ペンストロークなど)と相関させ得る。換言すれば、PSD212は、PSD212が表示のために情報を出力する画面または表面においてまたはその近くでユーザがジェスチャを行なう必要なしに、多次元ジェスチャを検出することができる。代わりに、PSD212は、PSD212が表示のために情報を出力する画面または表面の近くに配置されるかもしれないし配置されないかもしれないセンサにおいてまたはその近くで実行される多次元ジェスチャを検出することができる。
【0045】
1つ以上のプロセッサ240は、コンピューティングデバイス210内で機能を実現してもよく、および/または命令を実行してもよい。たとえば、コンピューティングデバイス210上のプロセッサ240は、モジュール218、224、226および/または228ならびにモデル220の機能を実行するストレージコンポーネント248によって格納された命令を受信して実行し得る。プロセッサ240によって実行される命令は、コンピューティングデバイス210に、プログラム実行中にストレージコンポーネント248内に情報を格納させ得る。プロセッサ240の例は、アプリケーションプロセッサ、ディスプレイコントローラ、センサハブ、および、処理ユニットとして機能するように構成された他の任意のハードウェアを含む。プロセッサ240は、モジュール218、224、226および/または228ならびにモデル220の命令を実行して、PSD212に、表示データのコンテンツの部分を、PSD212におけるユーザインターフェイススクリーンショットの1つとしてレンダリングさせ得る。すなわち、モジュール218、224、226および/または228ならびにモデル220は、コンピューティングデバイス210のさまざまなアクションまたは機能を実行するようにプロセッサ240によって動作可能であり得る。
【0046】
コンピューティングデバイス210内の1つ以上のストレージコンポーネント248は、コンピューティングデバイス210の動作中に処理するための情報を格納し得る(たとえば、コンピューティングデバイス210は、コンピューティングデバイス210での実行中にモジュール218、224、226および/または228ならびにモデル220によってアクセスされるデータを格納し得る)。いくつかの例では、ストレージコンポーネント248は一時的なメモリであり、これは、ストレージコンポーネント248の主要な目的が長期的な格納ではないことを意味する。コンピューティングデバイス210上のストレージコンポーネント248は、揮発性メモリとして情報を短期的に格納するために構成されてもよく、したがって、電源がオフにされた場合、格納されたコンテンツを保持し得ない。揮発性メモリの例として、ランダムアクセスメモリ(random access memory:RAM)、ダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)、スタティックランダムアクセスメモリ(static random access memory:SRAM)、および当技術分野で公知の他の形態の揮発性メモリが挙げられる。
【0047】
いくつかの例では、ストレージコンポーネント248は1つ以上のコンピュータ可読記憶媒体も含む。ストレージコンポーネント248は、揮発性メモリよりも大量の情報を格納するように構成され得る。ストレージコンポーネント248はさらに、不揮発性メモリ空間として情報を長期間格納するとともに、電源オン/オフサイクル後に情報を保持するように構成され得る。不揮発性メモリの例として、磁気ハードディスク、光ディスク、フロッピー(登録商標)ディスク、フラッシュメモリ、または電気的プログラム可能メモリ(electrically programmable memory:EPROM)もしくは電気的消去可能およびプログラム可能(electrically erasable and programmable:EEPROM)メモリの形態を含む。ストレージコンポーネント248は、モジュール218、224、226および/または228、モデル220、ならびにデータストア280に関連付けられたプログラム命令および/または情報(たとえば、データ)を格納し得る。
【0048】
アプリケーションモジュール224は、コンピューティングデバイス210において実行されるすべてのさまざまな個々のアプリケーションおよびサービスを表わす。コンピューティングデバイス210のユーザは、1つ以上のアプリケーションモジュール224に関連付けられたインターフェイス(たとえば、グラフィカルユーザインターフェイス)と対話して、コンピューティングデバイス210に機能を実行させ得る。アプリケーションモジュール224は、多数の例が存在し得るとともに、フィットネスアプリケーション、カレンダアプリケーション、パーソナルアシスタントもしくは予測エンジン、検索アプリケーション、地図もしくはナビゲーションアプリケーション、輸送サービスアプリケーション(たとえば、バスもしくは列車追跡アプリケーション)、ソーシャルメディアアプリケーション、ゲームアプリケーション、電子メールアプリケーション、メッセージングアプリケーション、インターネットブラウザアプリケーション、または、コンピューティングデバイス210において実行され得る他の任意のすべてのアプリケーションを含み得る。活動認識モジュール218は、アプリケーションモジュール224とは別個に示されているが、アプリケーションモジュール224のうちの1つ以上の内部に含まれ得る(たとえば、フィットネスアプリケーション内に含まれ得る)。
【0049】
図2に示されるように、コンピューティングデバイス210はセンサ処理モジュール226を含み得る。いくつかの例では、センサ処理モジュール226は、センサコンポーネント214からの出力を受信し得るとともに、その出力を表わすセンサデータを生成し得る。たとえば、センサコンポーネント214の各々は、対応するセンサ処理モジュールを有していてもよい。一例として、ロケーションセンサコンポーネント214Aのためのセンサ処理モジュールは、センサデータ(たとえば、オブジェクト)内にGPS座標値を生成し得る。ここで、GPS座標は、ロケーションセンサコンポーネント214Aのハードウェア出力に基づいている。別の例として、モーションセンサコンポーネント214Cのためのセンサ処理モジュールは、モーションデータにおける座標系のさまざまな軸に沿ったモーションおよび/または加速度値を生成し得る。ここで、モーションおよび/または加速度値は、モーションセンサコンポーネント214Cのハードウェア出力に基づいている。
【0050】
図2では、活動認識モジュール218は、1つ以上のモーションセンサによって生成されるモーションデータを受信し得る。たとえば、活動認識モジュール218は、モーションセンサ214Cによって生成されたモーションデータを受信してもよく、当該モーションデータは、モーションセンサ214Cによって生成されたセンサデータ、またはモーションセンサ214Cによって生成されたセンサデータに基づいてセンサ処理モジュール226によって生成されたモーションデータであり得る。いくつかの例では、活動認識モジュール218は、図1に示されるウェアラブルコンピューティングデバイス100と同様のウェアラブルコンピューティングデバイスなどの、コンピューティングデバイス210に通信可能に結合されたウェアラブルコンピューティングデバイスのうちの1つ以上のモーションセンサによって生成されるモーションデータを受信し得る。
【0051】
ウェアラブルコンピューティングデバイスのモーションセンサ214Cまたは1つ以上のモーションセンサなどの1つ以上のモーションセンサによって生成されるとともに活動認識モジュール218によって受信されるモーションデータは、三軸加速度計データなどの多軸加速度計データの形式であってもよい。たとえば、三軸加速度計データは、x軸、y軸、およびz軸に沿って1つ以上のモーションセンサによって測定される加速度を特定する浮動小数点数の3チャネルの形態であってもよい。
【0052】
1つ以上のモーションセンサによって生成されるとともに活動認識モジュール218によって受信されるモーションデータは、ある期間にわたって1つ以上のモーションセンサによって感知されるモーションデータであり得る。たとえば、モーションデータは、約10秒の期間にわたって1つ以上のセンサによって感知されるモーションデータであり得る。25ヘルツのサンプリングレートであると想定すると、モーションデータは、合計256サンプルの多軸加速度計データを含み得る。
【0053】
活動認識モジュール218は、1つ以上のセンサによって生成されたモーションデータを受信することに応答して、差分プライバシーでトレーニングされた1つ以上のニューラルネットワークを用いて、1つ以上のモーションセンサによって生成されたモーションデータに対応する身体活動を認識し得る。そのために、活動認識モジュール218は、活動認識モデル220を用いて、1つ以上のモーションセンサによって生成されるモーションデータに対応する身体活動を認識し得る。
【0054】
活動認識モジュール218は、1つ以上のモーションセンサによって生成されるモーションデータに対応する身体活動を認識するために、差分プライバシーでデバイス外でトレーニングされた1つ以上のニューラルネットワークを含み得る活動認識モデル220を含み得る。活動認識モデル220の例は、1つ以上の畳み込みニューラルネットワーク、回帰型ニューラルネットワーク、または差分プライバシーでトレーニングされた他の任意の適切な人工ニューラルネットワークを含み得る。活動認識モジュール218は、ある期間にわたって1つ以上のセンサによって感知される多軸加速度計データなどの1つ以上のモーションセンサによって生成されるモーションデータを入力として取込み得るとともに、1つ以上の身体活動に対応する1つ以上の確率を確率分布などの形式で出力し得る。すなわち、活動認識モデル220は、ある期間にわたるモーションデータに関して、複数の身体活動に関するモーションデータの確率分布などのそれぞれの身体活動についてのそれぞれの確率を生成し得る。
【0055】
いくつかの例では、活動認識モジュール218および/または活動認識モデル220は、1つ以上のモーションセンサによって生成されるモーションデータを用いて、1つ以上のモーションセンサによって生成されるモーションデータに対応する身体活動を認識することに加えて、1つ以上のセンサコンポーネント214によって生成される追加のセンサデータを用いて、1つ以上のモーションセンサによって生成されるモーションデータに対応する身体活動を認識し得る。たとえば、活動認識モジュール218は、ユーザの心拍数を測定する心拍数センサによって生成される心拍数データを用いて、1つ以上のモーションセンサによって生成されるモーションデータの使用を補強することで、1つ以上のモーションセンサによって生成されるモーションデータに対応する身体活動を認識し得る。
【0056】
たとえば、活動認識モジュール218は、所与の期間にわたって1つ以上のモーションセンサによって生成されるモーションデータについて、同じ所与の期間中に心拍数センサによって生成される対応する心拍数データも受信し得るとともに、同じ所与の期間中に心拍数センサによって生成される対応する心拍数データに基づいて、活動認識モデル220によって判定される1つ以上の身体活動に対応する1つ以上の確率を調整し得る。たとえば、活動認識モジュール218は、所与の期間中のユーザの心拍数がユーザの安静時の心拍数の特定の範囲内にあると判定した場合、ユーザのウォーキング、サイクリング、またはランニングの確率を下げることなどによって、ユーザが静止状態である確率を高め得るととももにユーザが活動的である確率を下げ得る。別の例では、活動認識モジュール218は、所与の期間中のユーザの心拍数がユーザの安静時の心拍数の特定の範囲外であると判定した場合、たとえば、ユーザがウォーキング、サイクリング、またはランニングしている確率を高めることなどによって、ユーザが活動的である確率を高め得るとともに、ユーザが静止状態である確率を下げ得る。
【0057】
活動認識モジュール218は、1つ以上の身体活動に対応する判定された1つ以上の確率に少なくとも部分的に基づいて、1つ以上のモーションセンサによって生成されるモーションデータに対応する身体活動を認識し得る。いくつかの例では、活動認識モジュール218は、活動認識モデル220によって判定された1つ以上の身体活動に対応する1つ以上の確率のうち最も高い確率に関連付けられた身体活動が、1つ以上のモーションセンサによって生成されるモーションデータに対応する身体活動であると判定し得る。たとえば、身体活動がウォーキングである確率を0.6、身体活動がランニングである確率を0.2、身体活動がサイクリングである確率を0.2、および身体活動が静止状態である(すなわち、動いていない)確率を0.0であると活動認識モデル220が判定する場合、活動認識モジュール218は、モーションデータに対応する身体活動がウォーキングであることを認識し得る。
【0058】
いくつかの例では、活動認識モジュール218は、身体活動の関連する確率がしきい値を満たす場合(たとえば、確率がしきい値よりも大きい場合、閾値以上である場合、閾値未満である場合、閾値以下である場合、または、閾値に等しい場合)、活動認識モデル220によって判定される1つ以上の身体活動に対応する1つ以上の確率のうち最も高い確率に関連付けられた身体活動が1つ以上のモーションセンサによって生成されるモーションデータに対応する身体活動であると判定し得る。身体活動に関する確率が閾値を満たすと活動検出モジュール218が判定した場合、当該活動認識モジュール218は、ユーザが特定の身体活動に関わっている可能性が高いと判定し得るため、これにより、特定の身体活動をモーションデータに対応する身体活動として認識し得る。
【0059】
活動認識モジュール218は、モーションデータに対応する身体活動を認識することに応答して、身体活動に関連付けられた1つ以上の動作を実行し得る。いくつかの例では、活動認識モジュール218は、モーションデータに対応する身体活動を認識することに応答して、身体活動の時間、ユーザが身体活動を実行する地理的位置、心拍数、ユーザが歩いた歩数、ユーザの動きの変化の速度またはレート、ユーザの体温またはユーザの環境、ユーザが活動を実行している高度または高さなどの、身体活動に関連付けられた身体活動情報を追跡することなどによって、ユーザのフィットネス追跡を実行し得る。
【0060】
いくつかの例では、活動認識モジュール218は、身体活動の時間、ユーザが身体活動を実行する地理的位置、心拍数、ユーザが歩いた歩数、ユーザの動きの変化の速度またはレート、ユーザの体温またはユーザの環境、ユーザが活動を行実行している高度または高さなどの身体活動に関連付けられた身体活動情報とともに、身体活動の表示を身体活動情報データストア228などのストレージコンポーネント248に格納し得る。
【0061】
いくつかの例では、活動認識モジュール218は、身体活動に関連付けられた身体活動情報に対して、合計値、平均値などを含むさまざまな統計メトリクスを判定するなどの分析を実行し得る。いくつかの例では、活動認識モジュール218は、身体活動に関連付けられた身体活動情報を、身体活動情報をユーザのユーザアカウントに関連付ける遠隔サーバに送信し得る。さらに他の例では、活動認識モジュール218は、1つ以上のサードパーティアプリケーションに通知し得る。たとえば、サードパーティフィットネスアプリケーションは、活動認識モジュール218に登録することができ、サードパーティフィットネスアプリケーションは、ユーザについての身体活動情報を記録することができる。
【0062】
図3A図3Eは、本開示の例示的な実現例に従った、例示的な機械学習モデルの局面を示す概念図である。図3A図3Eは、図2の活動認識モジュール218の文脈において以下に説明される。たとえば、いくつかの事例においては、機械学習モデル300は、以下で言及されるように、図2の活動認識モデル220の例であり得る。
【0063】
図3Aは、本開示の例示的な実現例に従った、例示的な機械学習モデルの概念図を示す。図3Aに示されるように、いくつかの実現例では、機械学習モデル300は、1つ以上のタイプの入力データを受信し、それに応答して、1つ以上のタイプの出力データを提供するようにトレーニングされる。このため、図3Aは、推論を実行する機械学習モデル300を示す。たとえば、機械学習モデル300が受信する入力データは、多軸加速度計によって生成されるセンサデータなどのモーションデータであってもよく、機械学習モデル300によって提供される出力データは、モーションデータに対応するユーザの活動であってもよい。
【0064】
入力データは、事例または例に関連付けられる1つ以上の特徴を含み得る。いくつかの実現例では、事例または例に関連付けられた1つ以上の特徴は、特徴ベクトルに編成され得る。いくつかの実現例では、出力データは1つ以上の予測を含み得る。予測は推論とも称され得る。このように、特定の事例に関連付けられた特徴である場合、機械学習モデル300は、当該特徴に基づいてそのような事例に関する予測を出力し得る。
【0065】
機械学習モデル300は、さまざまな異なるタイプの機械学習モデルのうちの1つ以上であり得るかまたはそれらを含み得る。特に、いくつかの実現例では、機械学習モデル300は、分類、回帰、クラスタリング、異常検出、推奨生成、および/または他のタスクを実行することができる。
【0066】
いくつかの実現例では、機械学習モデル300は、入力データに基づいてさまざまなタイプの分類を実行することができる。たとえば、機械学習モデル300は、バイナリ分類またはマルチクラス分類を実行することができる。バイナリ分類では、出力データは、入力データを2つの異なるクラスのうちの1つに分類することを含み得る。マルチクラス分類では、出力データは、入力データを3以上のクラスのうち1つ(またはそれ以上)に分類することを含み得る。これらの分類は、単一ラベルまたはマルチラベルであり得る。機械学習モデル300は、入力データが単に1つ以上のクラスまたはカテゴリに分類される離散カテゴリ分類を実行し得る。
【0067】
いくつかの実現例では、機械学習モデル300が実行することのできる分類においては、機械学習モデル300が、1つ以上のクラスごとに、入力データが対応するクラスに分類されるべきであると考えられる度合いを記述する数値を提供する。いくつかの事例においては、機械学習モデル300によって提供される数値は、それぞれのクラスへの入力の分類に関連付けられたそれぞれの信頼を示す「信頼性スコア」と称され得る。いくつかの実現例では、信頼性スコアは、離散的なカテゴリ予測をレンダリングするために1つ以上の閾値と比較され得る。いくつかの実現例では、離散的なカテゴリ予測をレンダリングするために、信頼性スコアが相対的に最大である特定数(たとえば、1つ)のクラスだけが選択され得る。
【0068】
機械学習モデル300は確率的分類を出力し得る。たとえば、機械学習モデル300は、サンプル入力の場合、1セットのクラスにわたる確率分布を予測し得る。このため、機械学習モデル300は、サンプル入力が属するべき可能性が最も高いクラスのみを出力するのではなく、各クラスごとに、サンプル入力がそのようなクラスに属する確率を出力し得る。いくつかの実現例では、起こり得るあらゆるクラスにわたる確率分布を合計して1とすることができる。いくつかの実現例では、Softmax関数、または他のタイプの関数もしくは層を用いて、当該起こり得るクラスにそれぞれ関連付けられた実値のセットを、合計1となる範囲(0,1)内の実値のセットに詰め込み(squash)得る。
【0069】
いくつかの例では、確率分布によって提供される確率は、離散的なカテゴリ予測をレンダリングするために1つ以上の閾値と比較され得る。いくつかの実現例では、離散的なカテゴリ予測をレンダリングするために、予測される確率が相対的に最大となる特定数(たとえば、1つ)のクラスだけが選択され得る。
【0070】
機械学習モデル300が分類を実行する場合、機械学習モデル300は、教師あり学習技術を用いてトレーニングされ得る。たとえば、機械学習モデル300は、1つ以上のクラスに属する(または属していない)とラベル付けされたトレーニング例を含むトレーニングデータセット上でトレーニングされ得る。教師ありトレーニング技術に関するさらなる詳細を以下において図3B図3Eの記載において提供する。
【0071】
いくつかの実現例では、機械学習モデル300は、回帰を実行して、連続的な数値の形式で出力データを提供し得る。連続的な数値は、たとえば通貨値、スコア、または他の数値表現を含む任意の数のさまざまなメトリクスまたは数値表現に対応し得る。例として、機械学習モデル300は、線形回帰、多項式回帰、または非線形回帰を実行することができる。例として、機械学習モデル300は、単純回帰または重回帰を実行することができる。上述したように、いくつかの実現例では、Softmax関数または他の関数もしくは層を用いて、2つ以上の起こり得るクラスにそれぞれ関連付けられた実値のセットを、合計1となる範囲(0,1)内の実値のセットに詰め込み得る。
【0072】
機械学習モデル300は、いくつかの事例においては、環境内でエージェントとして機能し得る。たとえば、機械学習モデル300は、以下でさらに詳細に説明する強化学習を用いてトレーニングすることができる。
【0073】
いくつかの実現例では、機械学習モデル300はパラメトリクスモデルであり得る一方で、他の実現例では、機械学習モデル300は非パラメトリクスモデルであり得る。いくつかの実現例では、機械学習モデル300は線形モデルであり得る一方で、他の実現例では、機械学習モデル300は非線形モデルであり得る。
【0074】
上述したように、機械学習モデル300は、さまざまな異なるタイプの機械学習モデルのうちの1つ以上であり得るか、またはそれらを含み得る。このようなさまざまなタイプの機械学習モデルの例を例示のために以下に提供する。以下において説明されるモデル例のうちの1つ以上を用いて(たとえば、組合わせて)、入力データに応答して出力データを提供し得る。以下で提供される例示的なモデル以外の追加のモデルも同様に用いることができる。
【0075】
いくつかの実現例では、機械学習モデル300は、たとえば線形分類モデル、二次分類モデルなどの1つ以上の分類器モデルであり得るか、またはそれらを含み得る。機械学習モデル300は、たとえば、単純線形回帰モデル、多重線形回帰モデル、ロジスティック回帰モデル、段階的回帰モデル、多変量適応回帰スプライン、局所推定分散平滑化モデルなどの1つ以上の回帰モデルであり得るか、またはそれらを含み得る。
【0076】
いくつかの実現例では、機械学習モデル300は、1つ以上の人工ニューラルネットワーク(単にニューラルネットワークとも称される)であり得るか、またはそれを含み得る。ニューラルネットワークは、ニューロンまたはパーセプトロンとも称され得る接続ノードのグループを含み得る。ニューラルネットワークは1つ以上の層に編成され得る。複数の層を含むニューラルネットワークは「ディープ」ネットワークと称され得る。ディープネットワークは、入力層と、出力層と、入力層と出力層との間に配置される1つ以上の隠れ層とを含み得る。ニューラルネットワークの複数のノードは接続され得るかまたは不完全に接続され得る。
【0077】
機械学習モデル300は、1つ以上のフィードフォワードニューラルネットワークであり得るか、またはそれを含み得る。フィードフォワードネットワークにおいては、ノード間の接続はサイクルを形成しない。たとえば、各接続は、前の層からのノードを後の層からのノードに接続することができる。
【0078】
いくつかの事例においては、機械学習モデル300は、1つ以上の再帰ニューラルネットワークであり得るか、またはそれを含み得る。いくつかの事例においては、再帰ニューラルネットワークの複数ノードのうちの少なくともいくつかがサイクルを形成し得る。再帰ニューラルネットワークは、本質的に連続している入力データを処理するのに特に有用であり得る。特に、いくつかの事例においては、再帰ニューラルネットワークは、再帰型または指向型の周期的ノード接続を用いることにより、入力データシーケンスのうち前部分から入力データシーケンスのうち後部分へと情報を渡すかまたは保持することができる。
【0079】
いくつかの例では、連続的な入力データは、時系列データ(たとえば、時間に対するセンサデータ、またはさまざまな時間に取込まれた画像)を含み得る。たとえば、再帰ニューラルネットワークは、センサデータを時間に対して分析して、スワイプ方向を検出または予測したり、筆跡を認識したりなどすることができる。連続的な入力データは、(たとえば、自然言語処理、音声検出または処理などのための)文中の単語、楽曲における音調、(たとえば、連続的なアプリケーションの使用を検出または予測するために)ユーザが取る連続的なアクション、連続的なオブジェクト状態などを含み得る。
【0080】
再帰ニューラルネットワークの例として、長・短期(long short-term:LSTM)再帰ニューラルネットワーク、ゲート制御された再帰ユニット、双方向再帰ニューラルネットワーク、連続時間再帰ニューラルネットワーク、ニューラル履歴コンプレッサ、エコー状態ネットワーク、エルマン(Elman)ネットワーク、ジョーダン(Jordan)ネットワーク、再帰型ニューラルネットワーク、ホップフィールド(Hopfield)ネットワーク、完全再帰ネットワーク、シーケンス間(sequence-to-sequence)構成などが含まれる。
【0081】
いくつかの実現例では、機械学習モデル300は、1つ以上の畳み込みニューラルネットワークであり得るか、またはそれを含み得る。いくつかの事例においては、畳み込みニューラルネットワークは、学習済みフィルタを用いて入力データにわたって畳み込みを実行する1つ以上の畳み込み層を含み得る。
【0082】
フィルタはカーネルとも称され得る。畳み込みニューラルネットワークは、入力データが静止画像または映像などの画像を含む場合などの視覚に関する問題に特に有用であり得る。しかしながら、畳み込みニューラルネットワークは、自然言語処理にも適用可能である。
【0083】
いくつかの例においては、機械学習モデル300は、たとえば敵対的生成ネットワークなどの1つ以上の生成ネットワークであり得るか、またはそれを含み得る。生成ネットワークを用いて、新しい画像または他のコンテンツなどの新しいデータを生成することができる。
【0084】
機械学習モデル300はオートエンコーダであり得るかまたはオートエンコーダを含み得る。いくつかの事例においては、オートエンコーダの目的は、典型的には次元削減の目的で、1セットのデータに関する表現(たとえば、より低次元の符号化)を学習することである。たとえば、いくつかの事例では、オートエンコーダは、入力データを符号化し、次いで、この符号化から入力データを再構築する出力データを提供しようと試みることができる。近年、オートエンコーダの概念は、データの生成モデルを学習するために、より広く利用されている。いくつかの事例では、オートエンコーダは、入力データの再構築を上回る付加的な損失を含む可能性がある。
【0085】
機械学習モデル300は、たとえば、ディープボルツマン(Boltzmann)マシン、ディープビリーフネットワーク、スタック型オートエンコーダなどの人工ニューラルネットワークの1つ以上の他の形態であり得るか、またはそれを含み得る。本明細書中で説明するニューラルネットワークのいずれかを組合わせる(たとえば、積み重ねる)ことで、より複雑なネットワークを形成することができる。
【0086】
1つ以上のニューラルネットワークを用いて、入力データに基づく埋込みを設けることができる。たとえば、埋込みは、入力データから1つ以上の学習済み次元に抽象化された知識の表現であり得る。いくつかの事例においては、埋込みは、関係するエンティティを識別するための有用なソースであり得る。いくつかの事例では、埋込みは、ネットワークの出力から抽出することができ、他の事例では、埋込みは、ネットワークの任意の隠れノードまたは層(たとえば、ネットワークの最終層に近いが最終層ではない層)から抽出することができる。埋込みは、次の映像のオートサジェスト、プロダクト提案、エンティティまたはオブジェクト認識などを実行するのに有用であり得る。いくつかの事例においては、埋込みは下流モデルのための有用な入力である。たとえば、埋込みは、下流モデルまたは処理システムのための入力データ(たとえば、サーチクエリ)を一般化するために有用であり得る。
【0087】
いくつかの実現例では、機械学習モデル300は、たとえば、主成分分析、カーネル主成分分析、グラフベースのカーネル主成分分析、主成分回帰、部分最小二乗回帰、サモン(Sammon)マッピング、多次元スケーリング、射影追跡、線形判別分析、混合判別分析、二次判別分析、一般化された判別分析、柔軟な判別分析、オートエンコーディングなどの1つ以上の次元縮小技術を実行し得る。
【0088】
いくつかの実現例では、機械学習モデル300は、マルコフ決定プロセス、動的プログラミング、Q関数またはQ学習、値関数アプローチ、ディープQネットワーク、微分可能なニューラルコンピュータ、非同期利点アクタークリティック(asynchronous advantage actor-critics)、決定論的方策勾配などの1つ以上の強化学習技術を実行するかまたは施すことができる。
【0089】
いくつかの実現例では、機械学習モデル300は自己回帰モデルであり得る。いくつかの事例においては、自己回帰モデルは、出力データがそれ自体の前の値および確率項に線形に依存することを規定し得る。いくつかの事例においては、自己回帰モデルは確率差分方程式の形態を取り得る。自己回帰モデルの一例として、生音声のための生成モデルであるWaveNetがある。
【0090】
いくつかの実現例では、機械学習モデル300は、多重モデル集合の一部を含み得るかまたはそれを形成し得る。一例として、「バギング」とも称され得るブートストラップ・アグリゲーティングを実行することができる。ブートストラップ・アグリゲーティングでは、トレーニングデータセットが(たとえば、置換を用いたランダムサンプリングによって)いくつかのサブセットに分割されるとともに、複数のモデルがそれぞれサブセットの数ごとにトレーニングされる。推論時に、複数のモデルのそれぞれの出力を(たとえば、平均化、投票、または他の技術によって)組合わせて、集合の出力として用いることができる。
【0091】
集合の一例は、ランダム決定フォレストとも称され得るランダムフォレストである。ランダムフォレストは、分類、回帰、および他のタスクのための集合学習法である。ランダムフォレストは、トレーニング時に複数のデシジョンツリーを作成することによって生成される。いくつかの事例では、推論時に、個々のツリーのクラスのモード(分類)または平均予測(回帰)であるクラスをフォレストの出力として用いることができる。ランダムなデシジョンフォレストは、それらのトレーニングセットに過剰適合するデシジョンツリーの傾向を訂正することができる。
【0092】
別の例示的な集合技術はスタッキングであり、これは、いくつかの例では、スタック型一般化と称され得る。スタッキングは、コンバイナモデルをトレーニングして、いくつかの他の機械学習モデルの予測をブレンドするかまたは組合わせることを含む。このように、複数の(たとえば、同じタイプまたは異なるタイプの)機械学習モデルをトレーニングデータに基づいてトレーニングすることができる。加えて、コンバイナモデルは、他の機械学習モデルからの予測を入力として取得し、それに応じて最終的な推論または予測を生成するようにトレーニングすることができる。いくつかの事例においては、単層ロジスティック回帰モデルをコンバイナモデルとして用いることができる。
【0093】
別の例示的な集合技術はブースティングである。ブースティングは、弱いモデルを反復的にトレーニングし、次いで、最終的な強いモデルに追加することによって集合を徐々に構築することを含み得る。たとえば、いくつかの事例においては、各々の新しいモデルは、前のモデルが誤解釈(たとえば、誤分類)したトレーニング例を強調するようにトレーニングされ得る。たとえば、そのような誤解釈された例の各々に関連付けられた重みを増やすことができる。ブースティングの1つの一般的な実現例としてAdaBoostがあり、適応ブースティング(Adaptive Boosting)とも称され得る。他のブースティング技術の例として、LPBoost、TotalBoost、BrownBoost、xgboost、MadaBoost、LogitBoost、勾配ブースティングなどがある。さらに、上述のモデルのいずれか(たとえば、回帰モデルおよび人工ニューラルネットワーク)を組合わせて集合を形成することができる。一例として、集合は、当該集合を形成するモデルの出力を組合わせるための、および/または重み付けするためのトップレベルの機械学習モデルまたはヒューリスティック関数を含み得る。
【0094】
いくつかの実現例では、(たとえば、集合を形成する)複数の機械学習モデルは、(たとえば、モデル集合を通じて連続的にエラーを逆伝搬することによって)一緒にリンクされてトレーニングされ得る。しかしながら、いくつかの実現例では、一緒にトレーニングされたモデルのサブセット(たとえば、1つ)のみが推論のために用いられる。
【0095】
いくつかの実現例では、機械学習モデル300は、別のモデルへの後続の入力のための入力データを前処理するために用いることができる。たとえば、機械学習モデル300は、次元縮小技術および埋込み(たとえば、行列因数分解、主成分分析、特異値分解、word2vec/GLOVE、および/または関連するアプローチ)、クラスタリング、さらには、下流での消費のための分類および回帰さえも実行することができる。これらの技術の多くは上記で説明されてきたが、以下でさらに説明する。
【0096】
上述のように、機械学習モデル300は、入力データを受信し、それに応じて出力データを提供するようにトレーニングされ得るかまたは構成され得る。入力データは、さまざまなタイプ、形態、またはバリエーションの入力データを含み得る。例として、さまざまな実現例では、入力データは、ユーザによって最初に選択されたコンテンツ(またはコンテンツの一部)、たとえば、ユーザによって選択された文書または画像のコンテンツ、ユーザ選択を指すリンク、デバイスまたはクラウド上で利用可能な他のファイルに関係するユーザ選択内のリンク、ユーザ選択のメタデータなどを記述する特徴を含み得る。加えて、ユーザ許可がある場合、入力データは、アプリ自体または他のソースから取得されるユーザ使用のコンテキストを含む。使用コンテキストの例は、(公的に共有するか、または大きなグループと共有するか、または個別に共有する、または特定の人と共有する)シェアの幅、シェアのコンテキスト等を含む。追加の入力データは、ユーザによって許可される場合、デバイスの状態、たとえば、デバイスの位置、デバイス上で動作するアプリなどを含み得る。
【0097】
加えて、ユーザ許可がある場合、入力データは、アプリ自体または他のソースから取得されるユーザ使用のコンテキストを含む。使用コンテキストの例は、(公的に共有するか、または大きなグループと共有するか、または個別に共有するか、または特定の人と共有する)シェアの幅、シェアのコンテキストなどを含む。追加の入力データは、ユーザによって許可される場合、デバイスの状態、たとえば、デバイスの位置、デバイス上で動作するアプリなどを含み得る。
【0098】
いくつかの実現例では、機械学習モデル300は、入力データを受信し、当該入力データをその未処理の形態で用いることができる。いくつかの実現例では、未処理の入力データを前処理することができる。このため、未処理の入力データに加えて、またはその代わりに、機械学習モデル300は、前処理された入力データを受信して用いることができる。
【0099】
いくつかの実現例では、入力データを前処理することは、未処理の入力データから1つ以上の追加の特徴を抽出することを含み得る。たとえば、特徴抽出技術を入力データに適用して、1つ以上の新しい追加の特徴を生成することができる。特徴抽出技術の例として、エッジ検出、コーナー検出、ブロブ検出、リッジ検出、スケール不変特徴変換、モーション検出、オプティカルフロー、ハフ(Hough)変換などが含まれる。
【0100】
いくつかの実現例では、抽出された特徴は、他のドメインおよび/または次元への入力データの変換を含み得るかまたは当該変換から導出され得る。一例として、抽出された特徴は、周波数領域への入力データの変換を含むかまたは当該変換から導出され得る。たとえば、ウェーブレット変換および/または高速フーリエ変換を入力データに対して実行して、追加の特徴を生成することができる。
【0101】
いくつかの実現例では、抽出された特徴は、入力データまたは入力データのうち特定の部分もしくは次元から計算された統計を含み得る。例示的な統計は、入力データまたはそのうちのいくつかの部分についてのモード、平均、最大、最小、または他のメトリクスを含む。
【0102】
いくつかの実現例では、上述したように、入力データは本質的に連続的なものであり得る。いくつかの事例では、連続的な入力データは、入力データのストリームをサンプリングするかまたはセグメント化することによって生成され得る。一例として、映像からフレームを抽出することができる。いくつかの実現例では、連続したデータは要約によって非連続にすることができる。
【0103】
別の例示的な前処理技術として、入力データの一部を帰属させることができる。たとえば、追加の合成入力データは補間および/または外挿によって生成することができる。
【0104】
別の例示的な前処理技術として、入力データの一部または全てをスケーリング、標準化、正規化、一般化、および/または正則化することができる。例示的な正則化技術は、リッジ回帰、最小絶対収縮および選択演算子(least absolute shrinkage and selection operator:LASSO)、エラスティックネット、最小角度回帰、交差検証、L1正則化、L2正則化などを含む。一例として、入力データの一部または全ては、個々の特徴値の各々から所与の次元の特徴値にわたる平均を減じ、次いで標準偏差または他のメトリクスで割ることによって正規化され得る。
【0105】
別の例示的な前処理技術として、入力データの一部または全てを量子化または離散化することができる。場合によっては、入力データに含まれる定性的特徴または変数は定量的特徴または変数に変換され得る。たとえば、1回のホットエンコードを実行することができる。
【0106】
いくつかの例では、次元縮小技術は、機械学習モデル300への入力前に入力データに適用することができる。上述した次元縮小技術のいくつかの例には、たとえば、主成分分析、カーネル主成分分析、グラフベースのカーネル主成分分析、主成分回帰、部分最小二乗回帰、サモンマッピング、多次元スケーリング、射影追跡、線形判別分析、混合判別分析、二次判別分析、一般化された判別分析、柔軟な判別分析、オートエンコーディングなどが含まれる。
【0107】
いくつかの実現例では、トレーニング中、入力データは、モデルのロバスト性、一般化、または他の品質を高めるために、いくつもの方法で意図的に変形させることができる。入力データを変形させるための例示的な技術には、ノイズの追加、色、陰影または色相の変更、倍率、セグメント化、増幅などが含まれる。
【0108】
機械学習モデル300は、入力データの受信に応答して出力データを提供し得る。出力データは、さまざまなタイプ、形態、またはバリエーションの出力データを含み得る。例として、さまざまな実現例では、出力データは、初期コンテンツ選択とともに適切に共有可能であるとともにユーザデバイス上またはクラウド内にローカルに格納されたコンテンツを含み得る。
【0109】
上で説明したように、いくつかの実現例では、出力データは、さまざまなタイプの分類データ(たとえば、バイナリ分類、マルチクラス分類、シングルラベル、マルチラベル、離散分類、回帰的分類、確率的分類など)を含み得るか、または、さまざまなタイプの回帰データ(たとえば、線形回帰、多項式回帰、非線形回帰、単純回帰、重回帰など)を含み得る。他の例では、出力データは、クラスタリングデータ、異常検出データ、推奨データ、または上述の出力データの他の形態のいずれかを含み得る。
【0110】
いくつかの実現例では、出力データは、下流のプロセスまたは意思判定に影響を及ぼし得る。一例として、いくつかの実現例では、出力データは、ルールベースのレギュレータによって解釈することおよび/または作用させることができる。
【0111】
本開示は、初期コンテンツ選択の特徴に基づいて初期コンテンツ選択と共に適切に共有可能である、ユーザのデバイス上またはクラウド内にローカルに格納されたコンテンツを提案するために、1つ以上の機械学習モデルを含むかまたは活用するシステムおよび方法を提供する。上述した入力データのさまざまなタイプまたは形態のいずれかを上述した機械学習モデルのさまざまなタイプまたは形態のいずれかと組合わせて、上述した出力データのさまざまなタイプまたは形態のいずれかを提供することができる。
【0112】
本開示のシステムおよび方法は、1つ以上のコンピューティングデバイスによって実現され得るかまたは1つ以上のコンピューティングデバイス上で実行され得る。例示的なコンピューティングデバイスは、ユーザコンピューティングデバイス(たとえば、ラップトップ、デスクトップ、および、モバイルコンピューティングデバイス、たとえば、タブレット、スマートフォン、ウェアラブルコンピューティングデバイスなど)、埋込み型コンピューティングデバイス(たとえば、車両、カメラ、イメージセンサ、工業用機械、衛星、ゲームコンソールもしくはコントローラ、または、家電機器、たとえば、冷蔵庫、サーモスタット、エネルギメータ、ホームエネルギマネージャ、スマートホームアシスタントなどに埋込まれたデバイス)、他のコンピューティングデバイス、またはそれらの組合わせを含む。
【0113】
図3Bは、図1のコンピューティングデバイス110の一例であるコンピューティングデバイス310の概念図を示す。コンピューティングデバイス310は、処理コンポーネント302、メモリコンポーネント304、および機械学習モデル300を含む。コンピューティングデバイス310は、機械学習モデル300をローカルに(すなわち、オンデバイスで)格納して実現し得る。このように、機械学習モデル300は、内蔵デバイスまたはユーザコンピューティングデバイス、たとえばモバイルデバイスなどに格納され得る、および/またはこれらによってローカルに実現され得る。埋込みデバイスまたはユーザコンピューティングデバイスにおいて機械学習モデル300をローカルに実現することによって得られる出力データを用いることで、埋込みデバイスまたはユーザコンピューティングデバイス(たとえば、埋込みデバイスまたはユーザコンピューティングデバイスによって実現されるアプリケーション)の性能を向上させることができる。
【0114】
図3Cは、モデルトレーナを含む例示的なトレーニングコンピューティングシステムと通信する例示的なコンピューティングデバイスの概念図を示す。図3Cは、ネットワーク330を介してトレーニングデバイス320と通信するクライアントデバイス310を含む。クライアントデバイス310は、図1のコンピューティングデバイス110の一例である。本明細書で説明する機械学習モデル300は、トレーニングデバイス320などのトレーニングコンピューティングシステムでトレーニングされて提供されることで、クライアントデバイス310などの1つ以上のコンピューティングデバイスにおいて格納および/または実現され得る。たとえば、モデルトレーナ372は、トレーニングデバイス320においてローカルに実行される。いくつかの例では、モデルトレーナ372を含むトレーニングデバイス320は、クライアントデバイス310、または機械学習モデル300を実現する他の任意のコンピューティングデバイスに含まれ得るか、またはそれとは別個であり得る。
【0115】
機械学習モデル300または本開示の他の局面を実現するコンピューティングデバイス310と、機械学習モデル300をトレーニングするトレーニングデバイス320とは、本明細書で説明する技術の実行を可能にするいくつかのハードウェアコンポーネントを含み得る。たとえば、コンピューティングデバイス310は、機械学習モデル300の一部または全体を格納する1つ以上のメモリデバイスを含み得る。たとえば、機械学習モデル300は、メモリに格納される構造化された数値表現であり得る。1つ以上のメモリデバイスはまた、機械学習モデル300を実現するための命令、または他の動作を実行するための命令を含み得る。メモリデバイスの例として、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合わせが含まれる。
【0116】
コンピューティングデバイス310はまた、機械学習モデル300の一部または全体を実現する、および/または他の関連動作を実行する、1つ以上の処理デバイスを含み得る。例示的な処理デバイスは、中央処理装置(central processing unit:CPU)、ビジュアル処理ユニット(visual processing unit:VPU)、グラフィックス処理ユニット(graphics processing unit:GPU)、テンソル処理ユニット(tensor processing unit:TPU)、ニューラル処理ユニット(neural processing engine:NPU)、ニューラル処理エンジン、CPU、VPU、GPU、TPU、NPUまたは他の処理デバイスのコア、特定用途向け集積回路(application specific integrated circuit:ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)、コプロセッサ、コントローラ、または、上述の処理デバイスの組合わせ、のうちの1つ以上を含む。処理デバイスは、たとえば、画像センサ、加速度計などの他のハードウェアコンポーネント内に埋込むことができる。
【0117】
トレーニングデバイス320は、1つ以上の機械学習プラットフォーム、フレームワーク、および/またはライブラリ、たとえば、TensorFlow、Caffe/Caffe2、Theano、Torch/PyTorch、MXnet、CNTKなどを用いて、グラフ処理技術または他の機械学習技術を実行し得る。いくつかの実現例では、機械学習モデル300は、オフラインで、またはオンラインでトレーニングされ得る。(バッチ学習としても公知である)オフライントレーニングでは、機械学習モデル300は、トレーニングデータの静的セット全体に対してトレーニングされる。オンライン学習では、機械学習モデル300は、(たとえば、モデルが推論を実行するために用いられる間に)新しいトレーニングデータが利用可能になると、継続的にトレーニングされる(または再トレーニングされる)。
【0118】
モデルトレーナ372は、(たとえば、集約的に格納されたデータセットに基づいて)機械学習モデル300の集中トレーニングを実行し得る。他の実現例では、分散型トレーニング、連合型学習などの分散型トレーニング技術を用いて、機械学習モデル300をトレーニング、更新、または個人化することができる。
【0119】
本明細書で説明する機械学習モデル300は、さまざまな異なるトレーニングタイプまたは技術のうちの1つ以上にしたがってトレーニングすることができる。たとえば、いくつかの実現例では、機械学習モデル300は、教師あり学習を用いてモデルトレーナ372によってトレーニングすることができる。ここで、機械学習モデル300は、ラベルを有する事例または例を含むトレーニングデータセットに対してトレーニングされる。これらのラベルは、専門家によって手動で適用され得るか、クラウドソーシングによって作成され得るか、または、他の技術によって(たとえば、物理学ベースの、または複雑な数学的モデルによって)提供され得る。いくつかの実現例では、ユーザが同意した場合、ユーザコンピューティングデバイスによってトレーニング例を提供することができる。いくつかの実現例では、このプロセスはモデルの個人化と称され得る。
【0120】
トレーニングデバイス320が機械学習モデル300のトレーニングを終了すると、機械学習モデル300がクライアントデバイス310にインストールされ得る。たとえば、トレーニングデバイス320は、ネットワーク330を介して機械学習モデル300をクライアントデバイス310に転送し得るか、または、機械学習モデル300は、クライアントデバイス310の製造中にクライアントデバイス310にインストールされ得る。いくつかの例では、機械学習モデル300がトレーニングデバイス320においてトレーニングされると、トレーニングデバイス320は、TensorFlow Liteライブラリを用いることなどによってトレーニング後の重み量子化を実行して、モデル重みを8ビット整数に圧縮することなどによってモデル重みを圧縮することで、クライアントデバイス310が機械学習モデル300を用いてより効率的なオンデバイス推論を実行することを可能にし得る。
【0121】
図3Dは、トレーニングデバイス340がラベル343を有する例示的な入力データ342を含むトレーニングデータ341に対して機械学習モデル300をトレーニングし得る例示的なトレーニングプロセスであるトレーニングプロセス340の概念図を示す。トレーニングプロセス340は、トレーニングプロセスの一例であり、他のトレーニングプロセスが同様に用いられてもよい。
【0122】
トレーニングプロセス340によって用いられるトレーニングデータ341は、トレーニングのためのこのようなデータの使用をユーザが許可する場合、共有フローの匿名化された使用ログ、たとえば、一緒に共有されたコンテンツアイテム、たとえば知識グラフ内のエンティティからの、共に属していると既に識別されたバンドル化コンテンツ部分などを含み得る。いくつかの実現例では、トレーニングデータ341は、出力データ344に対応するラベル343が割当てられた入力データ342の例を含み得る。
【0123】
本開示の局面に従うと、機械学習モデル300は差分プライバシーでトレーニングされる。すなわち、機械学習モデル300は、強固な数学的保証を提供する方法で機械学習モデル300をトレーニングし得る。強固な数学的保証とは、すなわち、機械学習モデル300をトレーニングするために(たとえば、例示的な入力データ342および/またはトレーニングデータ341の一部として)データが用いられた任意の特定のユーザに関する詳細を機械学習モデル300が学習または記憶せず、これにより、機械学習モデル300のトレーニング中に特定のデータが用いられたか否かを悪意ある人が正確に判定することを防止し、これにより、機械学習モデル300をトレーニングするのにデータが用いられたユーザのプライバシーを保護するというものである。
【0124】
差分プライバシーで機械学習モデル300をトレーニングするために、トレーニングデバイス320は、トレーニングデータ341にノイズを加えて、機械学習モデル300のトレーニングデータ341に個々の例を隠し得る。このために、トレーニングデバイス320は、TensorFlowプライバシーなどの差分プライバシーフレームワークを用いて機械学習モデル300をトレーニングし得る。差分プライバシーフレームワークを用いて機械学習モデル300をトレーニングすることにより、トレーニングデバイス320は、強固なプライバシー保証を提供するためにトレーニングデータ341にノイズを追加する。この強固なプライバシー保証とは、機械学習モデル300が、当該機械学習モデル300をトレーニングするために(たとえば、入力データ342および/またはトレーニングデータ341の一部として)データが用いられた任意の特定のユーザに関する詳細を学習または記憶しないというものである。
【0125】
機械学習モデル300をトレーニングするためにデータが用いられた任意の特定のユーザに関する詳細を機械学習モデル300が学習または記憶しないという強固な数学的保証を提供するために、差分プライバシーを用いて機械学習モデル300をトレーニングするのに用いられる差分プライバシーフレームワークは、イプシロン(ε)パラメータおよびデルタ(δ)パラメータを用いて記述され得る。イプシロンパラメータの値は、プライバシー保証の強さの基準であり得るとともに、単一のトレーニング例を含めるかまたはトレーニングデータ341から削除することによって特定の出力の確率をどれだけ増加できるかについての最高限度(すなわち、上限)であり得る。概して、イプシロンパラメータの値は、より厳密なプライバシー保証のために、10未満、または1未満であり得る。デルタパラメータの値は、プライバシー保証が保持していない確率の境界となり得る。いくつかの例では、デルタパラメータは、トレーニングデータ341のサイズの逆数の値に設定されてもよく、または、トレーニングデータ341のサイズの逆数よりも小さい値に設定されてもよい。
【0126】
トレーニングデバイス320は、差分プライバシーを用いて機械学習モデル300をトレーニングするために差分プライバシーフレームワークによって用いられるデルタパラメータについての目標値を指定し得る。トレーニングデバイス320は、機械学習モデル300のために指定されるデルタパラメータの目標値と所与のセットのハイパーパラメータとに基づいて、差分プライバシーを用いて機械学習モデル300をトレーニングするために差分プライバシーフレームワークによって用いられるイプシロンパラメータの値を判定し得る。
【0127】
機械学習モデル300についてのイプシロンパラメータの値を判定するために、トレーニングデバイス320は、いくつかの例では、機械学習モデル300についてのトレーニングデータのRenyi発散(Renyiエントロピーとしても公知である)および当該トレーニングデータの近傍を計算し得る。当該近傍は、トレーニングデータ(たとえば、1のハミング(Hamming)距離または別の類似の値を有する)に極めて類似するトレーニングデータの分布であり得る。データのRenyi発散は、本質的に、アルファ値によってパラメータ化された一般化されたカルバック・ライブラー(Kullback-Leibler:KL)発散であり得る。ここで、KL発散は、アルファ値が1に設定される場合、Renyi発散から正確に導出され得る。
【0128】
トレーニングデータが大きなRenyi発散を有する場合、トレーニングデータの分布は、単一の変数を変更することによって大きくシフトし得る。したがって、1つの余分な例が識別可能になり得ることにより全体的なプライバシーを損なう可能性があるものの、このような態様で情報を検索することはより容易であり得る。トレーニングデータが小規模なRenyi発散を有する場合、余分な例があるとデータの有意な変更がなされない可能性があり、これにより、この余分な例がデータに追加されたかどうかを識別することがより困難になるかもしれない。上述したように、デルタパラメータの値は、トレーニングデータ341のサイズの逆数の値に設定され得るので、機械学習モデル300用のトレーニングデータが比較的小規模なRenyi発散を有することが可能となり得る。
【0129】
上述のように、機械学習モデル300は、活動認識を実行する1つ以上のニューラルネットワークを含み得る。すなわち、機械学習モデル300は、動きに対応するモーションデータを入力として取得し、それに応答して、入力されたモーションデータに一致する身体活動の表示を出力し得る。機械学習モデル300に入力されるモーションデータは、1つ以上の加速度計などの1つ以上のモーションセンサによって生成される多軸加速度計データを含み得る。いくつかの例では、1つ以上の加速度計は三軸加速度計データを生成し得る。当該三軸加速度計データは、x軸、y軸、およびz軸に沿って1つ以上の加速度計によって測定された加速度力を指定する浮動小数点数の3つチャネルの形態であり得る。
【0130】
機械学習モデル300は、1つ以上のモーションセンサによって生成される或る期間にわたるモーションデータに基づいて活動認識を実行するようにトレーニングされ得る。たとえば、機械学習モデル300のモーションデータは、約10秒の三軸加速度計データを含み得る。約10秒にわたる25ヘルツのサンプリングレートであると想定すると、機械学習モデル300は合計256サンプルの三軸加速度計データを受信し得る。この場合、三軸加速度計データの各サンプルは、x軸、y軸、およびz軸に沿って1つ以上の加速度計によって測定される加速度力を指定する浮動小数点数の3チャネルの形態であり得るとともに、三軸加速度計データの256のサンプルに対応する身体活動を判定するようにトレーニングされ得る。
【0131】
したがって、例示的な入力データ342の個々の例示的な入力データは、合計256サンプルの三軸加速度計データを含む三軸加速度計データの10秒などの、指定された期間にわたるモーションデータであり得る。例示的な入力データ342は、数百万の個々の例示的な入力データを含み得る。さらに、上述の機械学習モデル300のデルタ値は、入力データ342中の個々の例示的な入力データの数の逆数であり得る。
【0132】
上述したように、トレーニングデータ341は、ラベル343を有する例示的な入力データ342を含んでおり、このため、例示的な入力データ342の個々の例示的な入力データはラベル343のラベルを有する。活動認識を実行するように機械学習モデル300をトレーニングするために、例示的な入力データ342の各個々の例示的な入力データは、個々の例示的な入力データに対応する活動を示すラベルを有する。たとえば、機械学習モデル300が、サイクリング、ランニング、ウォーキング、または静止状態である(たとえば、座ったままである、立ったままである、および動いていない)ことのうちの1つとしてモーションデータを認識するようにトレーニングされる場合、サイクリングに対応する例示的な入力データの各々は、サイクリングを示すラベルを有し得るとともに、ランニングに対応する例示的な入力データの各々は、ランニングを示すラベルを有し得るとともに、ウォーキングに対応する例示的な入力データの各々はウォーキングを示すラベルを有し得るとともに、静止状態に対応する例示的な入力データの各々は静止状態を示すラベルを有し得る。
【0133】
例示的な入力データ342は、機械学習モデル300が認識するようにトレーニングされるさまざまな身体活動をユーザが実行するのに応じて、ユーザが携帯するかまたは着用するコンピューティングデバイスのモーションセンサによって生成されるモーションデータであり得る。たとえば、サイクリングに対応する例示的な入力データは、ユーザがサイクリング中に着用しているウェアラブルコンピューティングデバイスのモーションセンサによって生成されるモーションデータであり得るとともに、ウォーキングに対応する例示的な入力データは、ユーザがウォーキング中に着用しているウェアラブルコンピューティングデバイスのモーションセンサによって生成されるモーションデータであり得るとともに、ランニングに対応する例示的な入力データは、ユーザがランニング中に着用しているウェアラブルコンピューティングデバイスのモーションセンサによって生成されるモーションデータであり得るとともに、静止状態に対応する例示的な入力データは、ユーザが静止状態である間に着用しているウェアラブルコンピューティングデバイスのモーションセンサによって生成されるモーションデータであり得る。
【0134】
トレーニングデータ341は、機械学習モデル300が認識するようにトレーニングされる複数の身体活動の各々についての、ほぼ等しい数の例示的な入力データを含み得る。たとえば、機械学習モデル300がモーションデータをサイクリング、ランニング、ウォーキング、または静止状態のうちの1つとして認識するようにトレーニングされた場合、例示的な入力データ342の約1/4はサイクリングに対応する例示的な入力データであり得るとともに、例示的な入力データ342の約1/4はランニングに対応する例示的な入力データであり得るとともに、例示的な入力データ342の約1/4はウォーキングに対応する例示的な入力データであり得るとともに、例示的な入力データ342の約1/4は静止状態であることに対応する例示的な入力データであり得る。トレーニングデバイス320は、例示的な入力データ342のいずれかの不均衡に対処するためにトレーニングデータ341を再サンプリングすることで、機械学習モデル300が認識するようにトレーニングされる複数の身体活動の各々についてほぼ等しい数の例示的な入力データをトレーニングデータ341に確実に含めるようにし得る。
【0135】
いくつかの例では、トレーニングデバイス320は、活動認識を実行する際に回転不変性をもたらすように機械学習モデル300をトレーニングするために、例示的な入力データ342を3つのすべての方向(すなわち、x軸、y軸、およびz軸)に、制約なしのランダム回転で変換し得る。すなわち、トレーニングデバイス320は、例示的な入力データ342の各々の例示的な入力データごとに、例示的な入力データによって指定されるx軸、y軸、およびz軸に沿って加速度力にランダムな回転を適用することなどによって、例示的な入力データにランダムな回転を適用し得るとともに、ランダムに回転された例示的な入力データを、機械学習モデル300をトレーニングするために用いられるトレーニングデータ341の一部として含み得る。コンピューティングデバイスのモーションセンサの位置および向きは、このようなコンピューティングデバイスがユーザによってどのように携帯または着用されるかに依存し得るとともに、時間とともに変化し得るので、回転不変性をもたらすようにトレーニングされる機械学習モデル300は、活動認識を実行するために機械学習モデル300によって用いられるモーションデータを生成するモーションセンサの位置および向きに関係なく、活動認識を正確に実行することができるだろう。いくつかの例では、トレーニングデバイス320はまた、例示的な入力データ342の反射変換を実行してもよく、これにより、活動認識を実行するのに当該機械学習モデル300が用いるモーションデータを生成する(たとえば、スマートウォッチ上の)モーションセンサがユーザの左手首に着用されているかまたは右手首に着用されているかに関わらず、機械学習モデル300は活動認識を正確に実行できるようになり得る。
【0136】
いくつかの例では、静止状態に対応する例示的な入力データは、自動車、バス、電車などの運転中または乗車中のユーザなどの、車両の運転中または車両に乗車中であったユーザによって生成されるモーションデータを含み得る。具体的には、例示的な入力データは、静状態であるとラベル付けされた車両の運転中または車両に乗車中であったユーザが携帯または着用しているコンピューティングデバイスのモーションセンサによって生成されるモーションデータを含み得る。このような例示的な入力データを用いて機械学習モデル300をトレーニングすることにより、機械学習モデル300は、車両の運転中または車両に乗車中であったユーザが携帯または着用しているコンピューティングデバイスのモーションセンサによって生成されるこのようなモーションデータをウォーキング、ランニング、または任意の形態の身体運動として認識しないようにトレーニングされ得る。
【0137】
いくつかの例では、ウォーキングに対応する例示的な入力データは、ウォーキング中であったユーザが携帯するスマートフォンのモーションセンサによって生成されるモーションデータと、ウォーキング中であったユーザが着用するウェアラブルコンピューティングデバイスのモーションセンサによって生成されるモーションデータとを含み得る。ウォーキング中であったユーザが携帯しているスマートフォンのモーションセンサによって生成されるモーションデータや、ウェアラブルコンピューティングデバイスのモーションセンサによって生成されるモーションデータを含めることにより、スマートウォッチなどのウェアラブルコンピューティングデバイスのモーションセンサによって生成されるモーションデータのみを用いる場合とは対照的に、ウォーキングに関するトレーニングデータの可利性が高まり得る。
【0138】
いくつかの例では、トレーニングデバイス320は、自由生活モーションデータ346からのモーションデータを、機械学習モデル300をトレーニングするのに用いられるトレーニングデータ341に組込み得る。自由生活モーションデータ346は、ユーザが複数の連続する日数、たとえば3日間以上、にわたって日々の活動に取り組む際に当該ユーザが携帯または着用するコンピューティングデバイスのモーションセンサによって生成されるモーションデータを含み得る。一般に、自由生活モーションデータ346はラベル付けされない可能性がある。このため、トレーニングデバイス320は、自由生活モーションデータ346についてのラベルを判定し得るとともに、機械学習モデル300をトレーニングするのに用いられるトレーニングデータ341内に自由生活モーションデータ346の少なくとも一部およびその関連ラベルを含み得る。
【0139】
いくつかの例では、トレーニングデバイス320は、自由生活モーションデータ346内のモーションデータのウィンドウに関連付けられた加速度計の計測値(すなわち、x軸、y軸、およびz軸に沿った加速度力)ならびに/または平均の加速度計の計測値(すなわち、x軸、y軸、およびz軸を組合わせた総加速度力の平均)に少なくとも部分的に基づいて、自由生活モーションデータ346内のモーションデータに関連付けられたラベルを判定し得る。特に、トレーニングデバイス320は、自由生活モーションデータ346内のモーションデータの加速度計の計測値および/または平均加速度計の計測値に少なくとも部分的に基づいて、自由生活モーションデータ346内のモーションデータをラベル付けすべきかどうかと、自由生活モーションデータ346内のモーションデータを選択するして機械学習モデル300をトレーニングするのに用いられるトレーニングデータ341に含めるべきかどうかとを判定し得る。
【0140】
トレーニングデバイス320は、自由生活モーションデータ346をモーションデータの複数ウィンドウに分割し得る。たとえば、各ウィンドウは、100ヘルツでサンプリングされる場合に三軸加速度計データなどの512サンプルのモーションデータを含む、約5秒のモーションデータであり得る。トレーニングデバイス320は、ウィンドウについての平均(すなわち、中間)加速度計の計測値を判定し得るとともに、モーションデータのサンプルごとに、モーションデータのサンプルからウィンドウについての平均加速度計の計測値を減じることで、重力の影響除去などのために、ウィンドウ内にゼロ平均で平均加速度計の計測値を生成し得る。クリッピングされたウィンドウの平均加速度計の計測値はウィンドウについての全体的なスコアを表わし得る。
【0141】
トレーニングデバイス320がゼロ平均で平均加速度計の計測値を有するウィンドウを生成すると、トレーニングデバイス320は、0から4の間などの2つの値の間のウィンドウ内の加速度計の計測値をクリッピングして、平均未満のモーションを除去し、外れ値となる加速度計の計測値の値の影響を減らし得る。したがって、トレーニングデバイス320は、ウィンドウにおけるクリッピング済みの平均的な加速度計の計測値を、当該ウィンドウに関する全体スコアとして判定し得る。
【0142】
ウィンドウに関する全体スコアは、ウィンドウ内で検出された活動のレベルに一致し得る。この場合、或るウィンドウに関する低い全体スコアは、当該ウィンドウ内で検出された低レベルの活動に一致し得るとともに、或るウィンドウに関する高い全体スコアは、高レベルの活動に一致し得る。たとえば、或るウィンドウは、静止状態、低強度、中強度、および高強度といった4つの活動レベルのうちの1つとして、当該ウィンドウに関する全体スコアに基づいて分類され得る。したがって、トレーニングデバイス320は、機械学習モデル300をトレーニングするのに用いられる静止状態に対応する例示的な入力データ342の例示的な入力データに含めるために、静止状態として分類されるウィンドウ内の自由生活モーションデータ346のモーションデータを選択し得る。
【0143】
いくつかの例では、トレーニングデバイス320はまた、機械学習モデル300をトレーニングするために用いられる静止状態に対応する例示的な入力データ342の例示的な入力データに含めるために、低強度活動として分類されるウィンドウ内の自由生活モーションデータ346のモーションデータを選択し得る。機械学習モデル300をトレーニングするのに用いられる静止状態に対応する例示的な入力データ342の例示的な入力データにおいて低強度活動に対応するこのようなモーションデータを含めることにより、機械学習モデル300が一般的な活動分類器としてより適切に機能することや、機械学習モデル300の静止状態検出を全体的に向上させることが可能となり得る。
【0144】
いくつかの例では、トレーニングデバイス320は、活動認識モデル348などの予めトレーニングされた活動認識モデルを用いて自由生活モーションデータ346の活動認識を実行して、自由生活モーションデータ346をラベル付けし得るとともに、当該ラベル付けされた自由生活モーションデータ346を、機械学習モデル300をトレーニングするために用いられるトレーニングデータ341に含め得る。活動認識モデル348は、活動認識を実行して、ウィンドウ内のモーションデータに関連付けられた起こり得る活動を判定し得るとともに、活動認識モデル348によって判定される当該起こり得る活動の各々に関する活動認識確率を推定し得る。活動認識モデル348は、指定された信頼性閾値を下回る関連する活動認識確率を有する当該起こり得る活動をフィルタリングして除去し得るとともに、信頼性閾値以上である活動認識確率を有する関連する当該起こり得る活動で、自由生活モーションデータ346内のモーションデータの残りのウィンドウの各々にラベル付けし得ることにより、機械学習モデル300をトレーニングするのに用いられるトレーニングデータ341に組込むことができるラベル付けされたモーションデータを生成し得る。
【0145】
信頼性閾値以上である活動認識確率を有する静止状態という起こり得る活動に関連付けられたモーションデータのウィンドウに関して、モーションデータのこのようなウィンドウはまた、上述の(たとえば、静止状態であると分類される)静止状態のヒューリスティックをパスしなければならない可能性があり、この場合、ウィンドウの静止度は、静止状態であるとラベル付けされるために、ウィンドウについての平均加速度計の計測値に少なくとも部分的に基づいて判定されることに留意されたい。たとえば、静止状態という起こり得る活動に関連付けられたモーションデータの或るウィンドウが、信頼性閾値以上であるが、上述の静止度ヒューリスティックをパスしない(たとえば、静止状態であると分類されない)活動認識確率を有する場合、トレーニングデバイス320は、機械学習モデル300をトレーニングするのに用いられるトレーニングデータ341にモーションデータのウィンドウを含めないようにし得る。
【0146】
いくつかの例では、活動認識モデル348は、自由生活モーションデータ346内のモーションデータの或るウィンドウから2つ以上の起こり得る活動を判定し得る。たとえば、活動認識モデル348は、複数の重複するモーションデータのセットの各々に関する起こり得る活動を判定し得る。この場合、モーションデータの各セットは、モーションデータのウィンドウ内にあるモーションデータの少なくともいくつかのサンプルを含む。したがって、活動認識モデル348は、複数の重複するモーションデータのセットの加重平均を実行することによって、モーションデータのウィンドウに関する単一の起こり得る活動を判定し得る。この場合、加重平均を実行するために用いられる重みは、モーションデータのウィンドウ内にあるモーションデータのセット中のモーションデータのサンプルのパーセンテージに対応し得る。
【0147】
いくつかの例では、活動認識モデル348は、トレーニングデータ341にこのようなウィンドウモーションデータを含める前に、自由生活モーションデータ346内のモーションデータのウィンドウのデバウンシングを実行し得る。たとえば、いくつかのモーションデータは、モーションデータが、サイクリング以外の身体活動に対応するように見えるモーションデータによって囲まれる、長さ数秒(たとえば、10秒)のサイクリングの身体活動に対応しているといった高信頼予測のランダムスパイクを含み得る。ユーザが一度に数秒間だけサイクリングすることはほぼあり得ないので、活動認識モデル348は、モーションデータの周囲のウィンドウのコンテキストを考慮に入れることによって、サイクリングの身体活動に対応するモーションデータの短いバーストをフィルタリングして除去するために、このようなウィンドウのモーションデータのデバウンシングを実行し得る。
【0148】
活動認識モデル348は、サイクリングについての関連する起こり得る活動を有する現在のウィンドウに関して、自由生活モーションデータ346における現在のウィンドウの左側の隣接ウィンドウ、自由生活モーションデータ346における現在のウィンドウの右側の隣接ウィンドウ、または、隣接ウィンドウ間の中心にある現在のウィンドウの右側および左側の隣接ウィンドウなどの設定可能な数(たとえば、5個)の隣接ウィンドウに基づいて、現在のウィンドウに関するサイクリングについての関連する当該起こり得る活動が正確である可能性が高いかどうかを判定し得る。サイクリングという起こり得る活動にも関連付けられている隣接ウィンドウの数が指定された閾値以上ではないと活動認識モデル348が判定した場合、活動認識モデル348は、現在のウィンドウが起こり得る活動であるサイクリングに関連付けられていると誤分類される可能性があると判定し得る。
【0149】
或るウィンドウがサイクリングという起こり得る活動に関連付けられていると誤分類される可能性があると活動認識モデル348が判定した場合、活動認識モデル348は、当該ウィンドウがサイクリングとは異なる起こり得る活動に関連付けられる可能性があるかどうかを判定し得る。たとえば、活動認識モデル348は、ウィンドウに関する活動認識確率ベクトルのサイクリング成分をゼロにし(すなわち、すべてゼロに設定し)得るとともに、当該ウィンドウに関する活動認識確率ベクトルを1に再正規化し得ることで、当該ウィンドウに関連付けられる可能性が高い別の起こり得る活動が存在する場合に、活動認識モデル348は、その起こり得る活動を当該ウィンドウと関連付ける機会を有し得る。
【0150】
いくつかの実現例では、機械学習モデル300は、目的関数345などの目的関数を最適化することによってトレーニングすることができる。たとえば、いくつかの実現例では、目的関数345は、トレーニングデータからモデルによって生成される出力データと、トレーニングデータに関連付けられたラベル(たとえば、正解データ(ground-truth)ラベル)とを比較する(たとえば、それらの間の差異を判定する)損失関数であり得るか、または当該損失関数を含み得る。たとえば、損失関数は、出力データとラベルとの間の二乗差の和または平均を評価し得る。いくつかの例では、目的関数345は、或る成果または出力データのコストを記述するコスト関数であり得るかまたは当該コスト関数を含み得る。目的関数345の他の例は、たとえば、三重項損失または最大マージントレーニングなどのマージンベースの技術を含み得る。
【0151】
目的関数345を最適化するために、さまざまな最適化技術のうちの1つ以上を実行することができる。たとえば、最適化技術は、目的関数345を最小化または最大化することができる。例示的な最適化技術として、ヘッセ(Hessian)ベースの技術および勾配ベースの技術、たとえば、座標降下、勾配降下(たとえば、確率的勾配降下)、劣勾配法などが含まれる。他の最適化技術として、ブラックボックス最適化技術およびヒューリスティック技術が含まれる。
【0152】
いくつかの実現例では、(たとえば、機械学習モデルが人工ニューラルネットワークなどの多層モデルである場合に)機械学習モデル300をトレーニングするために、最適化技術(たとえば、勾配ベースの技術)と併せてエラーの逆伝搬を用いることができる。たとえば、機械学習モデル300をトレーニングするために、伝搬およびモデルパラメータ(たとえば、重み)更新の反復サイクルを実行することができる。逆伝搬技術の例として、打ち切り型通時的逆伝搬(truncated backpropagation through time)、レーベンバーグ・マルカート(Levenberg-Marquardt)逆伝搬などが含まれる。
【0153】
いくつかの実現例では、本明細書で説明する機械学習モデル300は、教師なし学習技術を用いてトレーニングすることができる。教師なし学習は、ラベル付けされていないデータから隠し構造を記述するための関数を推論することを含み得る。たとえば、分類またはカテゴリ化はデータに含まれていなくてもよい。教師なし学習技術を用いて、クラスタリング、異常検出、潜在的な変数モデルの学習、または他のタスクを実行することのできる機械学習モデルを生成することができる。
【0154】
機械学習モデル300は、教師あり学習および教師なし学習の局面を組合わせた半教師あり技術を用いてトレーニングすることができる。機械学習モデル300は、進化的技術または遺伝的アルゴリズムによってトレーニングまたは生成することができる。いくつかの実現例では、本明細書で説明する機械学習モデル300は強化学習を用いてトレーニングすることができる。強化学習では、エージェント(たとえば、モデル)は、或る環境においてアクションを取ることができ、そのようなアクションに起因する報酬を最大化すること、および/または、そのようなアクションに起因するペナルティを最小化することを学習し得る。強化学習は、正しい入力/出力の対が提示されず、準最適アクションも明確に修正されないという点で、教師あり学習の問題とは異なり得る。
【0155】
いくつかの実現例では、機械学習モデル300の一般化を向上させるために、トレーニング中に1つ以上の一般化技術を実行することができる。一般化技術は、トレーニングデータに対する機械学習モデル300の過剰適合を低減させるのに役立ち得る。一般化技術の例には、ドロップアウト技術、重み減衰技術、バッチ正規化、早期停止、サブセット選択、段階的選択などが含まれる。
【0156】
いくつかの実現例では、本明細書で説明する機械学習モデル300は、たとえば、学習速度、層の数、各層におけるノードの数、ツリーのリーフの数、クラスタの数などのいくつかのハイパーパラメータを含むかまたは当該いくつかのハイパーパラメータの影響を受ける可能性がある。ハイパーパラメータはモデル性能に影響を及ぼし得る。ハイパーパラメータは、手動で選択することができるか、または、たとえばグリッドサーチ、ブラックボックス最適化技術(たとえば、ベイズ(Bayesian)最適化、ランダムサーチなど)、勾配ベースの最適化などの技術を適用することによって自動的に選択することができる。自動ハイパーパラメータ最適化を実行するための例示的な技術および/またはツールには、Hyperopt、Auto-WEKA、Spearmint、メトリック最適化エンジン(Metric Optimization Engine:MOE)などが含まれる。
【0157】
いくつかの実現例では、さまざまな技術を用いて、モデルのトレーニング時に学習速度を最適化および/または適合させることができる。学習速度最適化または適合化を実行するための例示的な技術および/またはツールは、Adagrad、適応モーメント推定(Adaptive Moment Estimation:ADAM)、Adadelta、RMSpropなどが含まれる。
【0158】
いくつかの実現例では、転移学習技術を用いて、本明細書で説明する機械学習モデル300のトレーニングを開始するための初期モデルを提供することができる。
【0159】
いくつかの実現例では、本明細書で説明する機械学習モデル300は、コンピューティングデバイス上のコンピュータ可読コードのさまざまな部分に含まれ得る。一例では、機械学習モデル300は、特定のアプリケーションまたはプログラムに含まれ得るとともに、このような特定のアプリケーションまたはプログラムによって(たとえば排他的に)用いられ得る。このため、一例では、コンピューティングデバイスは、いくつかのアプリケーションを含み得るとともに、そのようなアプリケーションのうちの1つ以上は、それ自体のそれぞれの機械学習ライブラリおよび機械学習モデルを含み得る。
【0160】
別の例では、本明細書で説明される機械学習モデル300は、コンピューティングデバイスのオペレーティングシステムに(たとえば、オペレーティングシステムの中央インテリジェンス層に)含まれ得るとともに、オペレーティングシステムと対話する1つ以上のアプリケーションによって呼出または使用され得る。いくつかの実現例では、各アプリケーションは、アプリケーションプログラミングインターフェイス(application programming interface:API)(たとえば、すべてのアプリケーションにわたる共通の公衆API)を用いて中央インテリジェンス層(およびそこに格納されたモデル)と通信し得る。
【0161】
いくつかの実現例では、中央インテリジェンス層は中央デバイスデータ層と通信することができる。中央デバイスデータ層は、コンピューティングデバイスのためのデータの集中型レポジトリであってもよい。中央デバイスデータ層は、たとえば、1つ以上のセンサ、コンテキストマネージャ、デバイス状態コンポーネント、および/または追加コンポーネントなどのコンピューティングデバイスのいくつかの他のコンポーネントと通信し得る。いくつかの実現例では、中央デバイスデータ層は、API(たとえば、プライベートAPI)を用いて各デバイスコンポーネントと通信し得る。
【0162】
本明細書で説明される技術は、サーバ、データベース、ソフトウェアアプリケーション、および他のコンピュータベースのシステム、さらには、これらのようなシステムに対して取られるアクションや、これらのようなシステムに対して送受信される情報を参照する。コンピュータベースのシステムの固有の融通性は、コンポーネント間でのタスクおよび機能の多種多様で実現可能な構成、組合わせおよび分割を可能にする。たとえば、本明細書で説明するプロセスは、単一のデバイスもしくはコンポーネント、または、組合わせて機能する複数のデバイスもしくはコンポーネントを用いて実現され得る。データベースおよびアプリケーションは、単一のシステム上で実現され得るかまたは複数のシステムにわたって分散され得る。分散されたコンポーネントは連続的または並列に動作し得る。
【0163】
加えて、本明細書で説明される機械学習技術は、容易に置換え可能であるとともに組合わせ可能である。いくつかの例示的な技術を説明したが、他の多くの技術が存在しており、本開示の局面と併せて用いることができる。
【0164】
上記の説明に付け加えて、ユーザは、本明細書に記載されているシステム、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、社会的行為もしくは社会活動、職業、ユーザの嗜好、またはユーザの現在位置)の収集を可能にし得るか否かおよびいつ可能にし得るか、ならびに、ユーザがサーバからコンテンツまたは通信を送信されるか否かについてユーザが選択を行うことを可能にする制御を提供されてもよい。加えて、特定のデータは、格納または使用される前に1つ以上の方法で処理されてもよく、その結果、個人を特定できる情報は取り除かれる。たとえば、ユーザのアイデンティティは、当該ユーザについて個人を特定できる情報を突き止めることができないように処理されてもよく、または、ユーザの地理的位置は、位置情報(市、郵便番号または州レベルなど)が得られる場合には、ユーザの特定の位置を突き止めることができないように一般化されてもよい。したがって、ユーザは、どのような情報がユーザについて収集されるか、当該情報がどのように使用されるか、およびどのような情報がユーザに提供されるかを制御し得る。
【0165】
図3Eは、例示的な機械学習モデルを示す概念図を示す。図3Eに示されるように、機械学習モデル300は、8個の畳み込みブロック352A~352H(「畳み込みブロック352」)と、それに続くボトルネック層354およびSoftMax層356とを含む畳み込みニューラルネットワークであり得る。
【0166】
畳み込みブロック352の各々は、畳み込みフィルタと、それに続く正規化線形ユニット(rectified linear unit:ReLU)活性化関数および最大プーリング演算とを含み得る。畳み込みブロックの畳み込みフィルタは、最大プーリング演算からの空間分解能の低下を抑制するために、層ごとの容量を指数関数的に増加させ得る。図3Eに示されるように、機械学習モデル300は、過剰適合を減らすためにドロップアウト正則化を実現し得る。
【0167】
入力350は、約10秒にわたって25ヘルツでサンプリングされるような256サンプルの三軸加速度計データであり得る。このため、畳み込みブロック352Aの畳み込みフィルタは、入力350の256のサンプルを受け入れるための256の高さを有し得る。畳み込みブロック352Aの畳み込みフィルタはまた、12の深さを有し得る。畳み込みブロック352Aは、256サンプル入力350から128サンプルの出力を生成し得る。
【0168】
畳み込みブロック352Bの畳み込みフィルタは、畳み込みブロック352Aによって出力される128のサンプルを受け入れるために128の高さを有し得る。畳み込みブロック352Bの畳み込みフィルタはまた、14の深さを有し得る。畳み込みブロック352Bは、畳み込みブロック352Aから出力される128のサンプルから64のサンプルの出力を生成し得る。
【0169】
畳み込みブロック352Cの畳み込みフィルタは、畳み込みブロック352Bによって出力される64のサンプルを受け入れるために64の高さを有し得る。畳み込みブロック352Cの畳み込みフィルタはまた、17の深さを有し得る。畳み込みブロック352Cは、畳み込みブロック352Bから出力される64のサンプルから32のサンプルの出力を生成し得る。
【0170】
畳み込みブロック352Dの畳み込みフィルタは、畳み込みブロック352Cによって出力される32のサンプルを受け入れるために32の高さを有し得る。畳み込みブロック352Dの畳み込みフィルタはまた、20の深さを有し得る。畳み込みブロック352Dは、畳み込みブロック352Cから出力される32のサンプルから16のサンプルの出力を生成し得る。
【0171】
畳み込みブロック352Eの畳み込みフィルタは、畳み込みブロック352Dによって出力される16のサンプルを受け入れるために16の高さを有し得る。畳み込みブロック352Eの畳み込みフィルタはまた、25の深さを有し得る。畳み込みブロック352Eは、畳み込みブロック352Dから出力される16のサンプルから8のサンプルの出力を生成し得る。
【0172】
畳み込みブロック352Fの畳み込みフィルタは、畳み込みブロック352Eによって出力される8のサンプルを受け入れるために8の高さを有し得る。畳み込みブロック352Fの畳み込みフィルタもまた、30の深さを有し得る。畳み込みブロック352Fは、畳み込みブロック352Eから出力される8のサンプルから4のサンプルの出力を生成し得る。
【0173】
畳み込みブロック352Gの畳み込みフィルタは、畳み込みブロック352Fによって出力される4のサンプルを受け入れるために4の高さを有し得る。畳み込みブロック352Gの畳み込みフィルタはまた、35の深さを有し得る。畳み込みブロック352Gは、畳み込みブロック352Fから出力される4のサンプルから2のサンプルの出力を生成し得る。
【0174】
畳み込みブロック352Hの畳み込みフィルタは、畳み込みブロック352Gによって出力される2のサンプルを受け入れるために2の高さを有し得る。畳み込みブロック352Hの畳み込みフィルタはまた、43の深さを有し得る。畳み込みブロック352Hは、畳み込みブロック352Fから出力される2のサンプルから、ボトルネック層354に供給され得る出力を生成し得る。
【0175】
ボトルネック層354は、畳み込みブロック352の出力を平らにする、16ユニットが完全に接続された層であり得る。完全に接続されたSoftMax層356は、ボトルネック層354の出力を受信して、身体活動の複数のクラスの各々に対応する入力350のモーションデータの確率を判定し得る。たとえば、完全に接続されたSoftMax層356は、ウォーキング中、ランニング中、サイクリング中、および静止状態である身体活動に関する確率分布などの身体活動の複数のクラスにわたる、合計して1となる浮動小数点数であり得る確率分布を判定し得る。したがって、完全に接続されたSoftMax層356は、複数の身体活動に関する入力350のモーションデータの確率分布である出力358を生成し得る。
【0176】
図4は、本開示の1つ以上の局面に従った、身体活動のオンデバイス認識を実行し得るコンピューティングデバイスの例示的な動作を示すフロー図である。例示のみを目的として、図1のコンピューティングデバイス110の文脈で動作例を以下に説明する。
【0177】
図4に示されるように、コンピューティングデバイス110は、1つ以上のモーションセンサによって感知される動きに対応するとともに1つ以上のモーションセンサ、たとえば1つ以上のセンサコンポーネント114および/または1つ以上のセンサコンポーネント108によって生成されるモーションデータを受信し得る(400)。コンピューティングデバイス110は、差分プライバシーでトレーニングされた1つ以上のニューラルネットワークを用いてオンデバイス活動認識を実行して、モーションデータに対応する身体活動を認識し得る(402)。コンピューティングデバイス110は、モーションデータに対応する身体活動を認識することに応答して、身体活動に関連付けられた動作を実行し得る(406)。
【0178】
本開示は以下の例を含む。
例1:方法は、1つ以上のモーションセンサによって感知される動きに対応するとともに当該1つ以上のモーションセンサによって生成されるモーションデータをコンピューティングデバイスによって受信するステップと、差分プライバシーでトレーニングされた1つ以上のニューラルネットワークを用いて、当該コンピューティングデバイスによってオンデバイス活動認識を実行して、当該モーションデータに対応する身体活動を認識するステップと、当該モーションデータに対応する当該身体活動を認識することに応答して、当該コンピューティングデバイスによって、当該身体活動に関連付けられた動作を実行するステップとを含む。
【0179】
例2:当該1つ以上のニューラルネットワークは、差分プライバシーフレームワークを用いて、かつ、当該1つ以上のニューラルネットワークのプライバシー保証が保持していない確率に境界を付けるデルタパラメータを用いてトレーニングされ、当該デルタパラメータは、当該1つ以上のニューラルネットワークのためのトレーニングセットのサイズの逆数に設定される値を有する、例1に記載の方法。
【0180】
例3:当該1つ以上のニューラルネットワークは、複数の身体活動に対応するモーションデータのトレーニングセットを用いてトレーニングされる、例1または2に記載の方法。
【0181】
例4:当該モーションデータのトレーニングセットは、制約なしのランダム回転で複数の方向に変換されている、例3に記載の方法。
【0182】
例5:当該モーションデータのトレーニングセットは、車両の運転中であるかまたは車両に乗車中であるユーザから生成されたものであり静止状態であると分類される複数のモーションデータを含む、例3または4に記載の方法。
【0183】
例6:当該モーションデータのトレーニングセットは、ラベル付けされていない自由生活モーションデータのラベル付けに少なくとも部分的に基づいて、予めトレーニングされた活動認識モデルによって生成される複数のモーションデータを含む、例3から5のいずれか1つに記載の方法。
【0184】
例7:当該ラベル付けされていない自由生活モーションデータのラベル付けに少なくとも部分的に基づいて当該予めトレーニングされた活動認識モデルによって生成される当該複数のモーションデータはさらに、モーションデータのウィンドウに対するモーションデータの隣接するウィンドウのコンテキストに基づいてサイクリングに対応するモーションデータの1つ以上の短いバーストを除去するために、当該ラベル付けされていない自由生活モーションデータにおいて当該モーションデータのウィンドウのデバウンシングを実行する当該予めトレーニングされた活動認識モデルによって生成されている、例6に記載の方法。
【0185】
例8:当該モーションデータのトレーニングセットは、ラベル付けされていない自由生活モーションデータにおけるモーションデータのウィンドウに関連付けられた平均加速度計の計測値に少なくとも部分的に基づいて、当該ラベル付けされていない自由生活モーションデータから選択された静止状態として分類された複数のモーションデータを含む、例3から7のいずれか1つに記載の方法。
【0186】
例9:当該身体活動を認識するために当該オンデバイス活動認識を実行するステップは、当該1つ以上のニューラルネットワークを用いて、複数の身体活動にわたる当該モーションデータの確率分布を判定するステップを含む、例1~8のいずれか1つに記載の方法。
【0187】
例10:当該1つ以上のモーションセンサによって感知される当該動きに対応するとともに当該1つ以上のモーションセンサによって生成される当該モーションデータを受信するステップはさらに、当該コンピューティングデバイスによって、当該コンピューティングデバイスに通信可能に結合されたウェアラブルコンピューティングデバイスの当該1つ以上のモーションセンサによって生成される当該モーションデータを受信するステップを含み、当該モーションデータは、当該1つ以上のモーションセンサによって感知される当該ウェアラブルコンピューティングデバイスの動きに対応する、例1~9のいずれか1つに記載の方法。
【0188】
例11:当該1つ以上のモーションセンサによって感知される当該動きに対応するとともに当該1つ以上のモーションセンサによって生成される当該モーションデータを受信するステップは、当該コンピューティングデバイスによって、当該コンピューティングデバイスの当該1つ以上のモーションセンサによって生成される当該モーションデータを受信するステップを含み、当該モーションデータは、当該1つ以上のモーションセンサによって感知される当該コンピューティングデバイスの動きに対応している、例1~10のいずれか1つに記載の方法。
【0189】
例12:コンピューティングデバイスは、メモリと、1つ以上のプロセッサとを含み、当該1つ以上のプロセッサは、1つ以上のモーションセンサによって感知される動きに対応するとともに当該1つ以上のモーションセンサによって生成されるモーションデータを受信し、差分プライバシーでトレーニングされた1つ以上のニューラルネットワークを用いてオンデバイス活動認識を実行して、当該モーションデータに対応する身体活動を認識し、当該モーションデータに対応する当該身体活動を認識することに応答して、当該身体活動に関連付けられた動作を実行するように構成される。
【0190】
例13:当該1つ以上のニューラルネットワークは、差分プライバシーライブラリを用いて、かつ、当該1つ以上のニューラルネットワークのプライバシー保証が保持していない確率に境界を付けるデルタパラメータを用いてトレーニングされ、当該デルタパラメータは、当該1つ以上のニューラルネットワークのためのトレーニングセットのサイズの逆数に設定される値を有する、例12に記載のコンピューティングデバイス。
【0191】
例14:当該1つ以上のニューラルネットワークは、複数の身体活動に対応するモーションデータのトレーニングセットを用いてトレーニングされる、例12または13に記載のコンピューティングデバイス。
【0192】
例15:当該モーションデータのトレーニングセットは、制約なしのランダム回転で複数の方向に変換されている、例14に記載のコンピューティングデバイス。
【0193】
例16:当該モーションデータのトレーニングセットは、ラベル付けされていない自由生活モーションデータのラベル付けに少なくとも部分的に基づいて、予めトレーニングされた活動認識モデルによって生成される複数のモーションデータを含む、例14または15に記載のコンピューティングデバイス。
【0194】
例17:コンピュータ可読記憶媒体は命令を格納し、当該命令は、実行されると、コンピューティングデバイスの1つ以上のプロセッサに、1つ以上のモーションセンサによって感知される動きに対応するとともに当該1つ以上のモーションセンサによって生成されるモーションデータを受信させる命令と、差分プライバシーでトレーニングされた1つ以上のニューラルネットワークを用いてオンデバイス活動認識を実行して、当該モーションデータに対応する身体活動を認識させる命令と、当該モーションデータに対応する当該身体活動を認識することに応答して、当該身体活動に関連付けられた動作を実行させる命令とを含む。
【0195】
例18:当該1つ以上のニューラルネットワークは、差分プライバシーライブラリを用いて、かつ、当該1つ以上のニューラルネットワークのプライバシー保証が保持していない確率に境界を付けるデルタパラメータを用いてトレーニングされ、当該デルタパラメータは、当該1つ以上のニューラルネットワークのためのトレーニングセットのサイズの逆数に設定される値を有する、例17に記載のコンピュータ可読記憶媒体。
【0196】
例19:当該1つ以上のニューラルネットワークは、複数の身体活動に対応するモーションデータのトレーニングセットを用いてトレーニングされる、例17または18に記載のコンピュータ可読記憶媒体。
【0197】
例20:当該モーションデータのトレーニングセットは、制約なしのランダム回転で複数の方向に変換されている、例19に記載のコンピュータ可読記憶媒体。
【0198】
1つ以上の例においては、記載されている機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実現され得る。ソフトウェアで実現される場合、これらの機能は、1つ以上の命令またはコードとして、コンピュータ可読媒体に格納されるか、またはコンピュータ可読媒体を介して送信されて、ハードウェアベースの処理ユニットによって実行されてもよい。コンピュータ可読媒体は、コンピュータ可読記憶媒体を含んでいてもよく、コンピュータ可読記憶媒体は、データ記憶媒体などの有形の媒体、または、たとえば通信プロトコルに従った1つの場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体に対応する。このように、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または、(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、1つ以上のコンピュータまたは1つ以上のプロセッサによってアクセスされて、本開示に記載されている技術の実現のために命令、コードおよび/またはデータ構造を検索することができる任意の利用可能な媒体であってもよい。コンピュータプログラム製品はコンピュータ可読媒体を含んでいてもよい。
【0199】
限定ではなく一例として、このようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気記憶装置、フラッシュメモリ、またはその他の媒体を備えていてもよく、これらは、所望のプログラムコードを命令またはデータ構造の形式で格納するのに使用されることができ、コンピュータによってアクセスされることができる。また、任意の接続もコンピュータ可読媒体と呼ぶにふさわしい。たとえば、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、またはワイヤレス技術(赤外線、無線およびマイクロ波など)を用いてウェブサイト、サーバまたは他のリモートソースから命令が送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、またはワイヤレス技術(赤外線、無線およびマイクロ波など)は媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号または他の一時的な媒体を含むのではなく、代わりに非一時的な有形の記憶媒体を対象とものであることが理解されるべきである。本明細書におけるディスク(「disk」および「disc」)は、コンパクトディスク(compact disc:CD)、レーザディスク、光ディスク、デジタル多用途ディスク(digital versatile disc:DVD)、フロッピー(登録商標)ディスクおよびブルーレイディスクを含み、diskは通常はデータを磁気的に再生するのに対して、discはレーザを用いてデータを光学的に再生する。上記の組み合わせもコンピュータ可読媒体の範囲内に含まれるべきである。
【0200】
命令は、1つ以上のプロセッサ、たとえば、1つ以上のデジタル信号プロセッサ(digital signal processor:DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(field programmable logic array:FPGA)、または他の等価の集積もしくは個別論理回路など、によって実行されてもよい。したがって、本明細書における「プロセッサ」という用語は、本明細書に記載されている技術の実現に適した上記の構造またはその他の構造のいずれかを意味し得る。加えて、いくつかの局面においては、本明細書に記載されている機能は、専用のハードウェアおよび/またはソフトウェアモジュール内で提供されてもよい。また、これらの技術は、1つ以上の回路または論理要素において完全に実現されてもよい。
【0201】
本開示の技術は、ワイヤレスハンドセット、集積回路(integrated circuit:IC)または一組のIC(たとえば、チップセット)を含む多種多様なデバイスまたは装置において実現されてもよい。開示されている技術を実行するように構成されたデバイスの機能的局面を強調するためにさまざまなコンポーネント、モジュールまたはユニットが本開示に記載されているが、さまざまなハードウェアユニットによる実現を必ずしも必要とするわけではない。むしろ、上述のように、さまざまなユニットは、ハードウェアユニット内で組合わせられてもよく、または、好適なソフトウェアおよび/またはファームウェアとともに、上記の1つ以上のプロセッサを含む相互運用可能なハードウェアユニットの集合体によって提供されてもよい。
【0202】
実施形態に応じて、ここに説明された方法のうちのいずれかのうちの何らかの行為またはイベントが異なる順序で行なわれ得ること、追加されてもよいこと、併合されてもよいこと、または全て除外されてもよい(たとえば、説明された行為またはイベントがすべて、方法の実施に必要であるとは限らない)ことが認識されるべきである。さらに、いくつかの実施形態では、行為またはイベントは、順次ではなく、同時に、たとえばマルチスレッド処理、割込み処理、または複数のプロセッサにより行なわれてもよい。
【0203】
いくつかの例では、コンピュータ可読記憶媒体は非一時的な媒体を含む。いくつかの例では、「非一時的な」という語は、記憶媒体が搬送波または伝搬信号で具現化されないことを示す。いくつかの例では、非一時的な記憶媒体は、時間とともに変わり得るデータを(たとえばRAMまたはキャッシュに)格納してもよい。いくつかの例は表示のためにさまざまな情報を出力するものとして説明されるが、この開示の技術は、ほんの数例を挙げると音声形式、ホログラフ形式、または触覚形式などの他の形式で、そのような情報を出力してもよい。
【0204】
本開示のさまざまな局面について説明してきた。これらのおよび他の局面は添付の特許請求の範囲内にある。
図1
図2
図3A
図3B
図3C
図3D
図3E
図4
【手続補正書】
【提出日】2022-02-08
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
1つ以上のモーションセンサによって感知される動きに対応するとともに前記1つ以上のモーションセンサによって生成されるモーションデータをコンピューティングデバイスによって受信するステップと、
差分プライバシーでトレーニングされた1つ以上のニューラルネットワークを用いて、前記コンピューティングデバイスによってオンデバイス活動認識を実行して、前記モーションデータに対応する身体活動を認識するステップと、
前記モーションデータに対応する前記身体活動を認識することに応答して、前記コンピューティングデバイスによって、前記身体活動に関連付けられた動作を実行するステップとを含む、方法。
【請求項2】
前記1つ以上のニューラルネットワークは、差分プライバシーフレームワークを用いて、かつ、前記1つ以上のニューラルネットワークのプライバシー保証が保持していない確率に境界を付けるデルタパラメータを用いてトレーニングされ、前記デルタパラメータは、前記1つ以上のニューラルネットワークのためのトレーニングセットのサイズの逆数に設定される値を有する、請求項1に記載の方法。
【請求項3】
前記1つ以上のニューラルネットワークは、複数の身体活動に対応するモーションデータのトレーニングセットを用いてトレーニングされる、請求項1に記載の方法。
【請求項4】
前記モーションデータのトレーニングセットは、制約なしのランダム回転で複数の方向に変換されている、請求項3に記載の方法。
【請求項5】
前記モーションデータのトレーニングセットは、車両の運転中であるかまたは車両に乗車中であるユーザから生成されたものであり静止状態であると分類される複数のモーションデータを含む、請求項3に記載の方法。
【請求項6】
前記モーションデータのトレーニングセットは、ラベル付けされていない自由生活モーションデータのラベル付けに少なくとも部分的に基づいて、予めトレーニングされた活動認識モデルによって生成される複数のモーションデータを含む、請求項3に記載の方法。
【請求項7】
前記ラベル付けされていない自由生活モーションデータのラベル付けに少なくとも部分的に基づいて前記予めトレーニングされた活動認識モデルによって生成される前記複数のモーションデータはさらに、モーションデータのウィンドウに対するモーションデータの隣接するウィンドウのコンテキストに基づいてサイクリングに対応するモーションデータの1つ以上の短いバーストを除去するために、前記ラベル付けされていない自由生活モーションデータにおいて前記モーションデータのウィンドウのデバウンシングを実行する前記予めトレーニングされた活動認識モデルによって生成されている、請求項6に記載の方法。
【請求項8】
前記モーションデータのトレーニングセットは、ラベル付けされていない自由生活モーションデータにおけるモーションデータのウィンドウに関連付けられた平均加速度計の計測値に少なくとも部分的に基づいて、前記ラベル付けされていない自由生活モーションデータから選択された静止状態として分類された複数のモーションデータを含む、請求項3に記載の方法。
【請求項9】
前記身体活動を認識するために前記オンデバイス活動認識を実行するステップは、前記1つ以上のニューラルネットワークを用いて、複数の身体活動にわたる前記モーションデータの確率分布を判定するステップを含む、請求項1~8のいずれかに記載の方法。
【請求項10】
前記1つ以上のモーションセンサによって感知される前記動きに対応するとともに前記1つ以上のモーションセンサによって生成される前記モーションデータを受信するステップはさらに、
前記コンピューティングデバイスによって、前記コンピューティングデバイスに通信可能に結合されたウェアラブルコンピューティングデバイスの前記1つ以上のモーションセンサによって生成される前記モーションデータを受信するステップを含み、前記モーションデータは、前記1つ以上のモーションセンサによって感知される前記ウェアラブルコンピューティングデバイスの動きに対応する、請求項1~9のいずれかに記載の方法。
【請求項11】
前記1つ以上のモーションセンサによって感知される前記動きに対応するとともに前記1つ以上のモーションセンサによって生成される前記モーションデータを受信するステップはさらに、
前記コンピューティングデバイスによって、前記コンピューティングデバイスの前記1つ以上のモーションセンサによって生成される前記モーションデータを受信するステップを含み、前記モーションデータは、前記1つ以上のモーションセンサによって感知される前記コンピューティングデバイスの動きに対応している、請求項1~9のいずれかに記載の方法。
【請求項12】
コンピューティングデバイスは、
メモリと、
1つ以上のプロセッサとを含み、前記1つ以上のプロセッサは、
1つ以上のモーションセンサによって感知される動きに対応するとともに前記1つ以上のモーションセンサによって生成されるモーションデータを受信し、
差分プライバシーでトレーニングされた1つ以上のニューラルネットワークを用いてオンデバイス活動認識を実行して、前記モーションデータに対応する身体活動を認識し、
前記モーションデータに対応する前記身体活動を認識することに応答して、前記身体活動に関連付けられた動作を実行するように構成される、コンピューティングデバイス。
【請求項13】
前記1つ以上のニューラルネットワークは、差分プライバシーライブラリを用いて、かつ、前記1つ以上のニューラルネットワークのプライバシー保証が保持していない確率に境界を付けるデルタパラメータを用いてトレーニングされ、前記デルタパラメータは、前記1つ以上のニューラルネットワークのためのトレーニングセットのサイズの逆数に設定される値を有する、請求項12に記載のコンピューティングデバイス。
【請求項14】
前記1つ以上のニューラルネットワークは、複数の身体活動に対応するモーションデータのトレーニングセットを用いてトレーニングされる、請求項12に記載のコンピューティングデバイス。
【請求項15】
前記モーションデータのトレーニングセットは、制約なしのランダム回転で複数の方向に変換されている、請求項14に記載のコンピューティングデバイス。
【請求項16】
前記モーションデータのトレーニングセットは、ラベル付けされていない自由生活モーションデータのラベル付けに少なくとも部分的に基づいて、予めトレーニングされた活動認識モデルによって生成される複数のモーションデータを含む、請求項14に記載のコンピューティングデバイス。
【請求項17】
請求項1~11のいずれかに記載の方法を1つまたは複数のプロセッサに実行させるためのプログラム。
【外国語明細書】