[0025]様々な実施形態について、添付の図面を参照しながら詳細に説明する。可能な場合はいつでも、同じまたは同様の部分を指すために図面全体にわたって同じ参照番号を使用する。特定の例および実装形態になされる言及は、説明のためであり、本発明の範囲または特許請求の範囲を限定するものではない。
[0026]「例示的な」という単語は、本明細書では、「一例、事例、または例示として使用する」ことを意味するために使用される。本明細書に「例示的」と記載されたいかなる実装態様も、必ずしも他の実装態様よりも好ましいまたは有利であると解釈されるべきではない。
[0027]「学習デバイス(複数可)」、「スマートデバイス(複数可)」、および「スマートボックス(複数可)」という用語は、本明細書では事前定義されたアクションをトリガーに関係する情報、ユーザ入力、状態の検出された変化、受信された信号または送信を示すそのようなデータ、およびデバイスにおいて取得され得る他の情報と相関させることによって観察された情報から挙動を学習することができるコンピューティングデバイスを指すために使用される。学習デバイスは、時間の経過とともにトリガーと事前定義されたアクションとの間の新しい関係または相関を記憶するように構成され得る。事前定義されたアクションにすでに相関しているトリガーを検出したことに応答して、学習デバイスは、事前定義されたアクションを実行するか、または代替的に、他の関連付けられているデバイスが相関するアクションを実行することを引き起こすオペレーションを実行することができる。本開示全体を通して、修飾語「スマート」は、製品(アプライアンス、appliance)(たとえば、ランプ)が学習デバイスであることを示すために使用され得る。たとえば、「スマートランプ」という用語は、学習デバイスとなるように構成され、学習デバイスに結合され、制御されるか、または他の何らかの形で学習デバイスのコンポーネントを備えるランプを指す。
[0028]「イベント」という用語は、本明細書では、1つまたは複数の学習デバイスによって検出または生成されたアクション、条件、および/または状況を表すデータ(たとえば、オブジェクトもしくは他のデータ構造)を指すために使用される。イベントは、アクションまたは条件の発生を示す情報(本明細書では「発生データ」と称される)を取得したことに応答して学習デバイス上でローカルに生成され(または他の何らかの形で取得され)、記憶され得る。発生データは、アクションまたは条件を記述し、さらにはデバイス識別子、タイムスタンプ、優先度情報、利得情報、状態識別子などの、アクションまたは条件を実行または検出したデバイスを識別する様々なデータを含み得る。発生データは、学習デバイス(たとえば、学習デバイスのプロセッサもしくはコアに直接結合されたセンサーなど)に接続された、または学習デバイス(たとえば、非プログラム可能ランプなど)によって他の何らかの形で制御されるデバイスからの信号もしくは他の情報から学習デバイスによって受信されるか、または取得され得る。発生データは、他の付近のデバイスから受信されたブロードキャストメッセージ(本明細書では「イベントレポートメッセージ」と称される)からも学習デバイスによって受信されるか、または取得され得る。たとえば、ローカルで遭遇したセンサーデータに基づいて第1のイベントを生成した後に、第1の学習デバイスは、第2の学習デバイスがイベントレポートメッセージ内のデータに基づいて第1のイベントも生成することを有効化され得るように第1のイベントが発生したことを示す発生データとともにイベントレポートメッセージをブロードキャストし得る。
[0029]「リフレックス」という用語は、本明細書では、トリガーと学習デバイスが実行するように構成されているアクションとの間の少なくとも1つの相関または関係を示す学習デバイス内の記憶されている情報を指すために使用される。リフレックスの記憶されている情報は、学習デバイスがリフレックスのアクションを実行すること、および/またはリフレックス(たとえばトリガー重み)に関して記憶されている永続的データを調整することを引き起こすために所定の時間ウィンドウ内に生成されるイベントとマッチングされ得るパターンを含み得る。イベントは、リフレックス内のパターンの構成ブロックと考えられ得る。たとえば、リフレックス内に記憶されているトリガーパターンは、1つまたは複数のイベントからなるものとしてよい。
[0030]様々な実施形態が、イベントを観察しイベントをトリガーアクションに相関させることを介して学習デバイスの連続的構成を可能にするプロセッサ実行可能命令を伴う非一時的プロセッサ可読記憶媒体と、システムと、プロトコルと、方法と、デバイスとを提供する。様々な実施形態において、学習プロセスは、学習デバイスが直観的トレーニング方法を通じてユーザによって容易に構成されることを可能にするために、生体システムをエミュレートし得る。学習デバイスは、ユーザアクションの結果として生成され得るイベント、他の学習デバイスの状態の変化などに応答して望ましい仕方で反応するように容易に構成され得る。単純な繰返しを通じて、様々な挙動が、プリコンディショニングまたはプログラマーインターフェースを必要とすることなく、複数の学習デバイスの非集中システム内に実装されることによって学習され得る。繰り返される報酬トレーニング入力(rewarding training input)を使用することで、ユーザは、様々なトリガーに応答して事前定義されたタスクを自動的に実行するように学習デバイスを容易にトレーニングすることができる。同様の仕方で、ユーザは、補正入力(correcting input)(たとえば、単一の補正入力(correction input)、時間の経過とともに繰り返される補正入力など)を使用することによって他のトリガーに応答して特定のタスクを自動的に実行することを停止するように学習デバイスを容易にトレーニングすることができる。
[0031]様々な実施形態は、ユーザにとってより自然な仕方で連続的構成(継続的設定、continuous configuration)を可能にするシステムを可能にする。学習デバイスは、新しい挙動を学習するか、またはトリガーへのすでにプログラムされている応答を学習解除するために、オフにされること、リセットされること、またはクリアされることを必要としない。実施形態のシステムおよびトレーニングプロトコルは、学習デバイスが他の学習デバイスから学習するか、または他の学習デバイスに反応することを可能にする。
[0032]実施形態の学習デバイスのインタラクティブな操作およびオペレーションについては例を用いて説明され得る。ボタンの押下に関係する発生データを受信したことに応答して、第1の学習デバイスはイベントを生成し、このイベントはワイヤレス(または有線)信号を介しイベントレポートメッセージで学習デバイスによって報告され得る。第2の付近の学習デバイスは、イベントレポートメッセージを受信し、類似のイベントを生成し、イベントを処理することを、第2の学習デバイスがそのイベントをフィルタにかけていない限り行い得る。イベントを処理することに応答して、第2の学習デバイスは機能を実行することができ、次いで、実行された機能の結果得られる発生データに基づくなどして追加のイベントを生成し得る。
[0033]いくつかの実施形態では、学習デバイスは、将来の処理のために監視モードにおいてイベントレポートメッセージに関して受信機回路(たとえば、WiFi(登録商標)、Bluetooth(登録商標)、または他のワイヤレストランシーバ)を監視し得る。学習デバイスは、別の学習デバイスによるブロードキャスト送信(またはワイヤレス通信リンク)を介してイベントレポートメッセージを受信し得る。たとえば、第1の学習デバイスは、「オフ」から「オン」にトグルされたことに対応して、またはそのことに応答してワイヤレス方式でイベントレポートメッセージをブロードキャストするスマート壁面スイッチであってよく、ブロードキャストされたイベントレポートメッセージは、スマートランプなどの、付近の第2の学習デバイスによって受信され得る。そのようなイベントレポートメッセージを受信した学習デバイスは、それらのメッセージを処理し、含まれる発生データに基づいてイベントを生成し得る。たとえば、発生データは、スマートランプ(たとえば、学習デバイスに結合されているフロアランプ)によって受信され、壁面スイッチの「オン」イベントを生成するために使用され得る付近のスマート壁面スイッチ内の状態変化を示し得る。付近の学習デバイスは、ブロードキャストされるイベントレポートメッセージを受信し、処理するために送信側学習デバイスとペアリングされる必要がないものとしてよい。そのようなものとして、イベントは、通信範囲内にある学習デバイスによる受信のために自由に報告されるものとしてよく、したがって、学習デバイスは、他の学習デバイスからの情報に基づいて挙動を自由に学習することができる。このような仕方で、複雑なシステム挙動は、学習デバイスが他の学習デバイスを利用して、容易にプログラムまたは構成され得る。いくつかの実施形態では、受信されたイベントレポートメッセージを処理することに応答して、学習デバイスは、他の付近の学習デバイスによって受信され得る追加のイベントレポートメッセージをブロードキャストし得る。
[0034]代替的に、学習デバイスは、直接結合されているセンサーから学習デバイスのプロセッサによって受信されたセンサーデータに基づくなど、学習デバイスにおいて観察された発生データに基づいてイベントを生成(または受信/取得)することができる。たとえば、学習デバイスは、「オフ」から「オン」にトグルされたときに、それ自体の対応する「オフ」から「オン」へのイベントを生成し得るスマートランプであってよい。
[0035]学習デバイスが直接観察された発生または受信されたイベントレポートメッセージ内のデータに基づいてイベントを取得するかどうかに関係なく、学習デバイスは、所定の時間期間においてイベントを一時的に記憶する(すなわち、バッファリングする)など、イベントをメモリに記憶することができる。その時間期間の後に、学習デバイスは、メモリ(たとえば、バッファメモリ)内のイベントを無視し、それを削除することを、そのイベントがリフレックスの記憶されたまたは所定のパターンとマッチしない(またはマッチするイベントとのパターンの一部でない)か、または他のイベントまたはパターンが受信/取得されない場合に、行うことができる。しかしながら、学習デバイスが、メモリ内の1つまたは複数のイベントが、リフレックスの記憶されたまたは所定のパターン(たとえば、学習デバイスのメモリに記憶されているトリガーパターン)とマッチすると決定した場合、学習デバイスは、アクションを学習するかまたは実行するために、そのようなイベントを利用し得る。特に、メモリ内のパターンとリフレックスのトリガーパターンとのマッチングを行ったことに応答して、学習デバイスは、トリガーモードに入る(またはアクティブ化する)ことができる。トリガーモードに入っている間、学習デバイスは、マッチしたトリガーパターンのリフレックスが閾値を超える重み(すなわち、トリガー重み)を有するかどうかを決定し得る。学習デバイスは、リフレックスに関連付けられている重みが閾値を超えるときにリフレックスに関連付けられているアクションを実行することができる。たとえば、学習デバイスは、ライトをオンにするか、ステレオシステムを特定のラジオ局に同調させるか、または学習デバイスが実行する能力を有している他のアクションを実行するためのアクションを実行することができる。いくつかの実施形態では、学習デバイスは、メモリ内の1つまたは複数のイベントでトリガーパターンを生成することによってトリガーパターンを識別することができる。トリガーモードに入っている間、学習デバイスは、受信されたイベントレポートメッセージまたは検出された発生データに基づいてイベントを生成することを続行することができる。トリガーモードに入っている間に取得された少なくとも1つの追加のイベント(またはイベントのパターン)が識別されたトリガーパターンに関連付けられているリフレックスに対応する所定の補正パターンまたは所定の報酬パターンに対応する場合、学習デバイスは、リフレックスに関連付けられている1つまたは複数のトリガー重みを調整し得る。たとえば、追加のイベントが補正パターンに対応している場合、学習デバイスは、識別されたトリガーパターンに関連付けられているリフレックスのトリガー重みを低減し得る。しかしながら、追加のイベントが知られているトリガーパターン、補正パターン、または報酬パターンに対応しない場合、学習デバイスは、追加のイベント(複数可)に基づくトリガーパターン、さらにはトリガーモードに関係するリフレックスの事前定義されたアクション、補正パターン、および報酬パターンのコピーを伴う新しいリフレックスを作成し得る。いくつかの実施形態では、学習デバイスは、トリガーモードに入っている間に取得された少なくとも1つの追加のイベント(またはイベントのパターン)が識別されたトリガーパターンに関連付けられたリフレックスに対応する所定の補正パターンまたは所定の報酬パターンに対応する場合に、リフレックスに関連付けられている様々なパラメータおよび/またはトリガー重みを計算するための式に関連付けられているスケーリング係数または重み値などの、トリガー重みを調整するように構成され得る。
[0036]いくつかの実施形態では、学習デバイスは、リフレックスに関連付けられているトリガー重みが事前定義された閾値より高くないときにリフレックスのトリガーパターンを識別した後、アクションを実行しないことができる。この閾値、およびトリガー重みを徐々に増加させるプロセスは、学習デバイスが繰返しから学習し、意図しない学習(たとえば、望ましくない機能を実行するランダムな、または意図しないイベントからの学習)を回避することを可能にする働きをする。たとえば、学習デバイスが、スマートランプである場合、スマートランプは、付近の新しい壁面スイッチから受信されるイベントレポートメッセージに基づくイベント(たとえば、新しい壁面スイッチの「トグルオン」イベント)を生成し、スマートランプ上に記憶されているリフレックスに関連付けられているトリガーパターンとマッチするものとしてイベントを識別し得る。しかしながら、スマートランプは、スマートランプが追加のイベントレポートメッセージが付近の壁面スイッチから受信されるまでそのアクション(たとえば、オンにする)を実行することを学習しないように、最初に、リフレックスのトリガー重みを閾値より低く設定し得る。したがって、スマートランプは、トリガーパターンとマッチする十分な数のイベントパターンが観察されるまでトリガーパターンを識別した後にリフレックスの事前定義されたアクションを実行せず、リフレックスの関連付けられているトリガー重みを事前定義された閾値より高くし得る。
[0037]学習デバイスがモニターモードに入っているか、トリガーモードに入っているかに関係なく、学習デバイスは、メモリ(たとえば、バッファメモリ)に一時的に記憶されるイベントを生成するために、ローカルで観察された発生データを継続的に取得し、および/またはイベントレポートメッセージを受信し得る。たとえば、学習デバイスがスマートランプである場合、ユーザは、ランプスイッチをトグルすることによってスマートランプをオンにすることができ、そのようなトグルに応答して、スマートランプは、「オン」イベントを生成することができる。いくつかの実施形態では、学習デバイスは、トリガーモードに入っている間に以前のイベントをメモリから取り出すことができる。学習デバイスは、学習デバイスがリフレックスのトリガー重みを調整することによって事前定義されたタスクまたはリフレックスを自動的に実行することを学習できるように、メモリに記憶されているイベントの1つまたは複数が補正パターンまたは報酬パターンとマッチするかどうかを決定できる。イベントの定義済みの順序を有するパターンもあれば(順序依存イベントパターンと称される)、イベントの定義済み順序を有しないパターンもあり得る(順序独立イベントパターンと称される)。したがって、学習デバイスは、順序独立(または代替的に順序依存)方式でイベントを使用してトレーニングされ得る。たとえば、ランプに関連付けられている学習デバイスは、壁面スイッチから第1の「オン」イベントを、次いでランプスイッチから第2の「オン」イベントを観察したこと、またはランプスイッチから第2の「オン」イベントを、次いで壁面スイッチから第1の「オン」イベントを観察したことのいずれに応答してランプが壁面スイッチの「オン」イベントに反応することを引き起こすようにトレーニングされ得る。
[0038]いくつかの実施形態では、学習デバイスは、イベントが評価のためメモリに記憶されたままである、その後イベントがメモリから削除され得る、時間ウィンドウを利用するように構成され得る。学習デバイスは、イベントおよび/または関連付けられているパターンを生成した以降の時間が時間ウィンドウ(たとえば、5〜10秒など)を超えた後にイベントおよび/またはパターンをメモリから取り除くことができる。この時間ウィンドウは、学習デバイスが認知の順序に関係なくイベントの相関を含む、比較的近くに一緒に生じる2つまたはそれ以上のイベントもしくはパターンを相関させることを可能にする。したがって、学習デバイスは、特定のトリガーに遭遇したことに応答してアクションを実行することを、そのアクションに関連付けられているイベントまたはパターンが特定のトリガーのイベントまたはパターンの前に観察されたとしても、学習し得る。たとえば、ユーザは、壁面スイッチに結合されている学習デバイスから「オン」状態を示すイベントレポートメッセージを受信したことに応答してランプをオンにするようにランプに結合されている学習デバイスをトレーニングすることを、ユーザが壁面スイッチを「オン」に入れる直前にランプをオンにしたとしても、それら2つのイベントがメモリの時間ウィンドウ内にあれば、行い得る。いくつかの実施形態では、学習デバイスは、単一の時間ウィンドウ(たとえば、5〜10秒など)内で1つまたは複数のイベントの複数のトリガーパターンを観察し得る。
[0039]上で示されているように、学習デバイスは、イベントレポートメッセージを介して受信されたリモートで観察される発生データに基づいてイベントを生成することができる。たとえば、スマートは壁面スイッチなどの第2の学習デバイスは、「オン」位置にトグルされ、「オン」状態を示す発生データを含むイベントレポートメッセージをブロードキャストすることができ、受信後、第1の学習デバイス(たとえば、スマートランプ)は、受信されたイベントレポートメッセージからの発生データに基づいて「オン」イベントを生成し得る。このようにして、ある場所にあるデバイスを制御するための一実施形態の方法が使用可能にされるものとしてよく、それによって、第1の学習デバイスは、ローカルで発生データを取得し、取得された発生データに基づいてそれが生成するイベントに基づいて決定を下し、第1の学習デバイスにおいて他のイベントを生成すること、さらには第2の学習デバイスによって受信され得るイベントレポートメッセージをブロードキャストするなどの、アクションを実行し、第2のデバイスが決定を下し、アクションを行うことを引き起こすように構成され得る。いくつかの実施形態では、学習デバイスは、有線またはワイヤレス通信を通じて非学習デバイスからイベントとパターンとに変換され得るイベントレポートメッセージまたは他の信号を受信し得る。たとえば、壁面スイッチは、オンにトグルされたときに一方の信号を、オフにトグルされたときに異なる信号をワイヤレス方式で放射する送信機を有することができる。この仕方で、学習デバイスは、非学習デバイスから信号を受信し、アクションをそれらのデバイスから受信された信号に基づいて生成されたイベントに関連付けることを学習し得る。
[0040]いくつかの実施形態では、非集中システム内の複数の学習デバイスは、類似のトリガーパターンを有するリフレックスを記憶することができ、したがって、同じ発生データを取得し、同じイベントを生成したことに応答してそれぞれのアクションを実行するように構成され得る。たとえば、壁面スイッチの単一のトグルは、フロアランプがオンになることと、ステレオがオンになることと、テレビジョンがオンになることとを引き起こし得る。いくつかの実施形態では、2つの異なる学習デバイスが、同じ発生データを検出するか、または受信し、それに応答して、個別にアクションを実行し、イベントレポートメッセージで互いに伝達され得るその後の発生データを生成し得る。たとえば、同じ元のイベント応答メッセージを受信したことに応答して、第1の学習デバイスは、第1のアクションを実行し、第1のイベント応答メッセージを生成し得るが、第2の学習デバイスは、同時に第2のアクションを実行し、第2のイベント応答メッセージを生成する。この状況において、第1の学習デバイスは、第2のイベント応答メッセージを受信し、第2の学習デバイスは、第1のイベント応答メッセージを受信し、各々以前に学習されたリフレックスに基づいて応答としてさらなるアクションを実行する(またはしない)ことができる。第1の学習デバイスは、第2の学習デバイスによって補正パターンまたは報酬パターンのいずれかとして処理され得る発生データを含むイベントレポートメッセージをブロードキャストするように構成され得ることは理解されるであろう。
[0041]実施形態の学習デバイスは、おもちゃまたは娯楽製品を含むか、またはその中に含まれ得る。特に、一実施形態の学習デバイスは、物理的機能を駆動するための様々なモーターと、光センサーデータを検出するためのセンサーと、ユーザ入力要素(たとえば、ボタン)と、他のコンポーネントに結合され、入力とセンサーからのセンサーデータとを処理し、リフレックスおよび/または記憶されているリフレックスのトリガーアクションパターンを作成するように構成されているプロセッサとを備える閉ループシステムである子供のおもちゃであってよい。たとえば、学習デバイスは、おもちゃの自動車が床の白色または黒色の上(または前)にあるかどうかを検出するためのセンサーと、左と右の車輪を独立して回転させるためのモーターと、プロセッサと、対応するモーターを介して左車輪の回転をアクティブ化する左車輪モーターボタンと、対応するモーターを介して右車輪の回転をアクティブ化する右車輪モーターボタンとを備えるおもちゃの自動車であってよい。最初に、おもちゃの自動車は、車輪がセンサーからのセンサーデータに基づいて回転することを引き起こすリフレックスとともに構成されないことができる。しかしながら、ユーザは、床の白色を示すセンサーデータが取得されたときに(すなわち、おもちゃの自動車が床の大部分白い表面の上にあるときに)左車輪モーターボタンを押すことによって第1のリフレックスを作成し得る。第1の作成されたリフレックスにより、おもちゃの自動車は、その後取得されたセンサーデータがおもちゃの自動車が床の大部分白色の表面の上にあることを示すときに左車輪モーターをアクティブ化し得る(そこで左車輪を回転させ得る)。ユーザは、床の黒色を示すセンサーデータが取得されたときに(すなわち、おもちゃの自動車が床の大部分黒い表面の上にあるときに)右車輪モーターボタンを押すことによって第2のリフレックスも作成し得る。こうして、第2のリフレックスにより、おもちゃの自動車は、床の黒色を示すセンサーデータが取得されたときに(すなわち、おもちゃの自動車が床の大部分黒い表面の上にあるときに)右車輪モーターをアクティブ化する(したがって右車輪を回転させる)ようにトレーニングされ得る。言い換えれば、第1および第2のリフレックスは、所定の時刻における床の主色にのみ基づいて、ユーザがモーターボタンを押すことなく、おもちゃの自動車が移動することを引き起こし得る。このようにして、ユーザは、単純に、白色または黒色のセンサーデータイベントパターンにより左または右車輪回転アクションパターンをトリガーするようにおもちゃの自動車をトレーニングすることによって、他の何らかの形で白い床の上に塗られた黒色の線を辿るようにおもちゃの自動車をトレーニングすることができる。
[0042]様々な実施形態において、学習デバイスは、規則正しい周期的タイミングメカニズムを利用して、イベントが取得されたかどうか(たとえば、結合されているセンサーからのセンサーデータが受信されているかどうかなど)を決定し得る。そのようなメカニズムは、学習デバイスがトリガーパターンに応答してそのリフレックスのオペレーションを実行することを規則正しく引き起こす「心拍」のようなものであってよい。たとえば、上で説明されているおもちゃの自動車の学習デバイスは、規則正しい間隔または「心拍」でそれが床の黒色または白色の部分の上にあるかどうかを評価し、それによって、おもちゃの自動車が規則正しい仕方で回転する車輪を介して移動することを引き起こすように構成され得る。いくつかの実施形態では、学習デバイスは、1つまたは複数の周期的タイミングメカニズムまたは「心拍」に基づいて1つまたは複数のセンサーをポーリングし得る(たとえば、数ミリ秒おきなどで現在のセンサーデータを要求する)。たとえば、学習デバイスは、有線またはワイヤレス接続を介して学習デバイスに結合されている1つまたは複数のセンサーユニットがイベントレポートメッセージを生成することを引き起こす事前定義された間隔で要求を送信し得る。様々な実施形態において、学習デバイスは、異なる評価に対して異なる周期的タイミングメカニズムを(または「心拍」)を利用し得る。たとえば、学習デバイスは、学習デバイスが第1の周波数で(たとえば、数ミリ秒おきなどで)第1のタイプの入力(たとえば、着信光センサーデータ)を評価することを引き起こす第1の「心拍」メカニズムと、学習デバイスが第2の周波数で(たとえば、1秒おきなどで)第2のタイプの入力(たとえば、他のデバイスから受信されたメッセージなど)を評価することを引き起こす第2の「心拍」メカニズムとを実装し得る。いくつかの実施形態では、周期的タイミングメカニズムまたは「心拍」は、センサーユニットなどの、複数の有線もしくはワイヤレス方式の学習デバイスおよび/またはレポーターにまたがり得る。たとえば、第1および第2の学習デバイスは、他の付近の学習デバイスまたはセンサーなどの、他の外部デバイスから(たとえば、イベントレポートメッセージを介して)イベントを内部的に取得する、および/または最新情報を要求するために単一のタイミングメカニズム(たとえば、同期された「心拍」)を利用し得る。
[0043]いくつかの実施形態では、帯域外技術が、学習デバイスが不正にまたは思いがけなく動作しているときに非集中システム内の学習デバイスを調整するために使用され得る。特に、学習デバイスの状態(たとえば、システム変数など)または学習された挙動(たとえば、記憶されているリフレックス)を変更することなどの、デバッギング、プロビジョニング、診断、または較正オペレーションを実行するために、非集中システムの外の非学習デバイスは、学習デバイスと通信をやり取りして重み、利得、および/または他の記憶されている設定のクエリおよび/または調整を行うことができる。たとえば、学習デバイスは、学習デバイスが様々な記憶されているリフレックスに対する重み生成特性(たとえば、利得など)を調整することを引き起こす通信をデバッギングデバイスから帯域外有線またはワイヤレスシグナリング(たとえば、Bluetooth、WiFiなど)を介して受信するように構成され得る。別の例として、デバッギングデバイスは、学習デバイスと通信をやり取りして、学習デバイスに記憶されているリフレックス(たとえば、トリガー重み、利得など)の現在の状態を学習(または「のぞき込む」)ことができる。実施形態の帯域外技術は、発生データ(またはイベントレポートメッセージ)を使用することなく学習デバイスの挙動を調整するためプログラムをおよび/またはグラフィカルユーザインターフェース(GUI)インターフェースを使用してデバイスからの通信を送信することを含み得る。言い換えれば、製造業者デバイスなどの、工場または他の現場から離れている場所にあるデバイス、および/または現場の技術者デバイスなどの、学習デバイスの付近に配置されているデバイスによって送信される通信は、反復的活動(たとえば、トリガー重みを調整するためスイッチを入れることなど)を実行することをユーザに要求することなく学習デバイス内で誤りのあるデータを即座に補正することができるものとしてよい。
[0044]他の学習デバイスによる受信のためイベントへの応答を学習し、イベントメッセージをブロードキャストするそれらのメカニズムを通じて、様々な実施形態は、直接的なプログラミングまたはプログラミングインターフェースとのインタラクティブな操作を必要とすることなく中での時間の経過とともに行われるユーザのインタラクティブな操作から学習することができる学習デバイスの非集中分散システムを実現する。実施形態の非集中システムは、主コントローラまたは他の中央ユニットが学習オペレーションを実行することを必要としない。特に、実施形態のシステムは、他のデバイスのアクションに相関するイベントのパターンを識別するために単一のデバイスを利用しない。その代わりに、いくつかの実施形態の非集中システムにおける各学習デバイスは、イベントを監視し、システム内の他の学習デバイスから独立して学習するように構成されるものとしてよく、その特定のアクションがそれ自体に関連するイベントを検出したことに応答して実行されるべきであるかどうかのみを決定する。したがって、これらの実施形態は、イベントを観察し、相関させる技術を利用して、システム内の個別な学習デバイスがイベントおよびトリガーの自らの受信に基づいて自らの挙動を制御することを学習することを引き起こすアクションをトリガーする。
[0045]様々な実施形態は、実施形態の技術がリフレックスを利用して個別の学習デバイスの前記定義されたアクションを一意的にトリガーするという点で機械学習を使用する従来の自動化システムからさらに区別され得る。従来の技術では、トリガーをアクションから分けず、関係する発生のシーケンスを単に識別するだけであり得る。そのような従来の技術は、シーケンスで生じるイベントを観察し、そのイベントのシーケンスの1つまたは複数がその後検出されたときに必ずそのシーケンスのオペレーションがデバイスによって実行されることを引き起こす。知られているシーケンス内の異なるイベントの存在は、そのシーケンスの様々な残りのアクションの実行を引き起こし得るので、従来の技術は、本開示で説明されているように、定義されているトリガーに応答して生じる定義されているアクション(すなわち、別々に定義されているトリガーおよびアクション)を利用するとは考えられ得ない。言い換えれば、これらの実施形態の技術は、観察されたイベントに基づいて実行されるべきアクションの新しいシーケンスを学習し得ず、その代わりに、新しいトリガーを事前定義されたアクションに関連付けることのみを学習し得る。
[0046]さらに、従来の技術では、システムのデバイスが時間の経過とともに異なる方法で使用されるときにイベント間の関連付けを置き換えるか、または書き換えることができる。たとえば、従来の技術では、イベントの第1のシーケンスをイベントの第2のシーケンスで書き換えることを、第2のシーケンスが第1のシーケンスのバリエーション(たとえば、システム内でより最近またはより頻繁に観察されるバリエーション)であるときに行うことができる。様々な実施形態は、個別の実施形態の学習デバイスが各々異なるトリガー(またはトリガーパターン)を学習デバイスによって実行されるべき同じアクションに関連付け得る複数のリフレックスを生成することができるので、そのような従来の技術と異なる。言い換えれば、観察されたイベントバリエーションに基づいて観察された関連付けを書き換えることまたは置き換えることの代わりに、実施形態の学習デバイスは、事前定義された機能をトリガーするための追加の関連付けを記憶し得る。たとえば、学習デバイスは、壁面スイッチの「オン」イベントをランプのライトアクション(たとえば、オンにする)に関連付ける第1のリフレックスと、ステレオの電源オンイベントをランプのライトアクション(たとえば、オンにする)に関連付ける第2のリフレックスとを記憶し得る。これは、異なるトリガーを同じアクションに関連付ける複数のリフレックスが異なるユーザまたは同じユーザに対する、異なる状況の下での、学習デバイスの好ましい応答を可能にし得るので有益である。たとえば、学習デバイスは、壁面スイッチが入れられたときにライトがオンになることを望む第1のユーザと、ステレオの電源がオンにされ、電気スタンドがオンにされたときにライトがオンになることを望む第2のユーザとを受け入れるため異なるリフレックスを記憶し得る。
[0047]様々な実施形態は、学習デバイスに対する学習の一意的なプロセス(たとえば、イベントを観察し、トリガーアクションに相関させること)も実装する。特に、様々な実施形態は、事前定義された補正および報酬パターンを利用してリフレックスの変動性をオンザフライで調整することができる。事前定義された補正パターンを繰り返し検出したことに応答して、学習デバイスは、関係するリフレックスに関連付けられている重みを、最終的にその事前定義されたアクションが関連付けられているトリガーパターンがその後検出されたときに実行され得なくなるまで徐々に調整してゆくことができる。したがって、リフレックスパターンは、デバイスのメモリ内に残っている可能性があるが、学習デバイスは事実上リフレックスを学習解除しているので関連するリフレックスはもはや実行され得ない。しばらくしてから、リフレックスパターンは、イベントとアクションとのパターンをユーザが繰り返すことによって再アクティブ化され得、学習デバイスはこれを観察し、それに応答して、関係するリフレックスの重みを、関連付けられている重みがイベントが観察されたときにアクションをトリガーするまで調整する。同様に、事前定義された報酬パターンを繰り返し検出したことに応答して、学習デバイスは、リフレックスの重みを、事前定義されたアクションが関連付けられているトリガーパターンがその後検出されたときに実行され得るように徐々に調整してゆくことができる。言い換えれば、実施形態の技術は、その後遭遇した(または記憶されている)イベントに基づいて無効にされた関連付けを上書きすることまたは取り除くことをせずに補正情報に基づいてリフレックスにおける関連付けを無効にし、それらのリフレックスをその後受信される報酬パターンで再生されるようにメモリに記憶されたままにすることができる。
[0048]いくつかの実施形態では、リフレックスまたは他のデータは、新しいリフレックスを記憶するための領域をあけるために必要になったときにメモリから取り除かれ得る。たとえば、事前定義されたアクションに対するまだ知られていないトリガー要素を有する新しいリフレックス追加するために、すでに存在しているリフレックスがメモリ全体から取り除かれるかまたは削除され得る。しかしながら、学習デバイスのメモリからのリフレックスのそのような取り除きは、手続き的であり得、ガーベジコレクションポリシーに基づくものであり得(たとえば、最低使用頻度の、または最も古いリフレックスを取り除くなど)、したがって、リフレックスで示されている関連付けのバリエーションまたは更新を受信したことに応答しない。
[0049]様々な実施形態は、個別の学習デバイスの各リフレックス(またはアクション)に対して事前定義され、静的である明示的な補正パターンと、報酬パターンと、アクションパターンとを利用し、したがって、リフレックスに対するトリガーに重みを付け直すことは、関連付けられているリフレックスに関連する場合も関連しない場合もある他のイベントの分析を必要としない直接的手続きである。事前定義された報酬パターンおよび補正パターンは、個別の学習デバイスの学習がユーザによって監督され、ユーザ選好/期待に応答し、時間の経過とともに集約される発生に単に基づくだけでないことを確実にする。さらに、実施形態の学習デバイスは、既存のリフレックスに関連付けられているアクションが実行されていると決定したことに応答して検出される報酬または補正パターンに基づいて既存のリフレックスを調整し得る。言い換えれば、トリガーパターンに対する重みは、トリガーパターンに関連付けられているアクションが実際に実行され、関係する補正または報酬パターンが取得された発生データに基づいて生成された後になって初めて増加または減少させられる。たとえば、トリガーパターンを観察したことに応答してアクションが実行されたときに、ユーザは、学習デバイス上の「補正」ボタンを押して、ユーザがそのアクションおよびそのトリガーの関連付けを好まないことを示すことができる。この学習方法は、アクションが実行される前にトリガーとアクションとの間の関連付けの正しさをユーザ側で確認することを必要とし得る従来の技術と異なる。
[0050]さらに、様々な実施形態の技術は、学習デバイスがトリガーとアクションとの間の関連付けを「オンザフライ」で生成できる学習デバイスの「高速」トレーニング時間を使用可能にする。ほとんどの従来の機械学習技術は、最初に別の機械を使用して新しいプログラミング(または命令)を生成もしくはプログラムし、次いでターゲットデバイスを別の時刻に新しいプログラミングで更新することによってターゲットデバイスをトレーニングすることができる技術などの、「オフライン」学習を必要とする。そのような従来技術は、デバイスの単純なトレーニング可能な関連付けについてはトレーニング体験が劣ることがある。たとえば、ユーザがデバイスにおいて新しい挙動を望んだが、従来のトレーニング手続きが挙動の変更を行わせるのにデバイスのプログラミングおよび/または更新に対して長い期間(たとえば、時間)を必要とした場合、ユーザは、自分の考えの脈絡を失ったり、混乱したり、または関心をなくすことがあり得る。様々な実施形態の技術は、本明細書で説明されているリフレックスの作成技術および報酬/補正メカニズムが取得されたイベント(他の学習デバイスからの信号、学習デバイスに取り付けられているセンサーからのデータなど)に基づいて学習デバイスの高速トレーニングを可能にするので、そのよう「オフライン」の学習を必要としない。そこで、様々な実施形態の技術で、人々にとって意味のある、また直観的であるように思われる時間内に学習デバイスのトレーニングを可能にする。
[0051]次の説明では、学習デバイスは、1つまたは複数スマートボックスとして参照されるものとしてよく、これらは、図1Cおよび図2を参照しつつ以下で説明されているコンポーネントを有する学習デバイスの特定の実施形態である。しかしながら、類似のコンポーネントおよび機能を有する他の学習デバイスまたはスマートデバイスも、本開示において説明されているように様々な実施形態を利用するように構成され得ることは理解されるであろう。
[0052]図1は、様々なデバイス102、104、106、114、115、116が信号を互いに送受信するスマートボックス103a〜103eによって制御され得る一実施形態のシステム100を示している。スマートボックス103a〜103eの間で伝達される信号は、各スマートボックスが信号をシステム100内の特定のアクションまたは条件の発生に関係するものとして認識することを可能にするデータまたは他の情報を含み得る。特に、スマートボックス103a〜103eは、無線周波数(RF)送信112またはワイヤレス通信リンクを介して、図3Aを参照しつつ以下で説明されているような発生データを含むイベントレポートメッセージをブロードキャストすることができる。スマートボックス103a〜103eは、代替的に、またはそれに加えて、有線接続、光、音、またはそのような媒体の組合せを介して互いに通信することができる。
[0053]一例として、様々な実施形態によって使用可能にされるシステム100は、スマートボックス103aに接続された壁面スイッチ102を備え、スマートボックス103aは壁面スイッチ102が他のデバイスによる応答を制御する(たとえば、フロアランプ104をオンにする)ことを可能にする信号を送信する。壁面スイッチ102は、有線接続110によってスマートボックス103aに接続されるか、またはスマートボックス103aおよび壁面スイッチ102は、単一のユニットに組み合わされ得る。壁面スイッチ102がトグルされると、その関連付けられているスマートボックス103aは、状態のこの変化を検出し、RF送信112を介してイベントレポートメッセージを発行し、これは送信するスマートボックス103aの半径内にある他のスマートボックス103bから103eのどれかによって受信され得る。1つのそのような受信するスマートボックス103bは、有線接続110bを介してフロアランプ104に接続され得る。例として、フロアランプのスマートボックス103bは、フロアランプ104がオンになることを引き起こすイベントを生成することによって「オン」位置に移動される壁面スイッチ102に対応するイベントレポートメッセージに応答するようにトレーニングされ得る。フロアランプ104がオンになると、そのスマートボックス103bは、イベントを示す発生データを含み、他の付近のスマートボックス103c〜103eさらには壁面スイッチ102に接続されているスマートボックス103aによって受信され得るイベントレポートメッセージをブロードキャストし得る。代替的に、またはそれに加えて、スマートボックス103a、103c〜103eは、ランプをオンにすることが発生/条件/アクションを示す信号として処理され得るようにフロアランプ104からの光を感知し得る光センサーを備えることができる。
[0054]図1Aに示されているように、電気スタンド115、ステレオ106、携帯電話114、およびセンサー116などの、様々なデバイスがスマートボックスに結合され得る。スマートボックス103a〜103eは、個別のデバイス102、104、115、116から分離しているように図示されているけれども、各デバイスは、内部スマートボックスを備えるものとしてよく、1つのデバイス内のスマートボックスは、分離しているデバイスに結合され得る。説明を簡単にするため、フロアランプ104、壁面スイッチ102、電気スタンド115、センサー116、およびステレオ106への参照は、断りのない限りその対応するスマートボックスも参照し得る。
[0055]図1Aには示されていないけれども、システム全体を通して他の学習デバイスまたはスマートボックスによって受信され処理され得る信号(すなわち、イベントレポートメッセージ)を送信するために非学習デバイスがシステム100内に備えられてもよい。たとえば、壁面スイッチ102は、図示されているスマートボックス103aの代わりに送信機を有していてもよい。オンにトグルされたとき、壁面スイッチは符号化された「オン」信号(たとえば、1ビットイベントレポートメッセージ)を送信するものとしてよく、壁面スイッチがオフにトグルされたとき、これは、異なる符号化された「オフ」信号(たとえば、2ビットイベントレポートメッセージ)を送信し得る。システム内の別のスマートボックス(たとえば、フロアランプ104に接続されたスマートボックス103b)は、いずれかの信号を受信し、これをイベントに変換することができ、これは記憶されているリフレックスの関連付けられているアクションに対応し得る。
[0056]スマートボックスは、典型的には、スマートボックスで、またはスマートボックスによって実行されたアクションおよび/またはスマートボックスで検出された条件(たとえば、センサーデータ)などの、スマートボックスにおいてイベントを示すイベントレポートメッセージをブロードキャストするか、または他の何らかの形で送信するように構成され得る。たとえば、スマートボックスまたはスマートボックスにワイヤレス方式で接続されている送信機(「レポーター」)は、ガレージのドアが開かれていることを示すデータを含む信号をブロードキャストすることができる。スマートボックスは、典型的にはある場所の他のスマートボックスに直接に関与するようには構成されないことができるが、その代わりに、請求応答なしで、および/または他のデバイスのオペレーションを考慮することなく、発生データを単に報告するだけであってもよいことは理解されるであろう。しかしながら、いくつかの実施形態では、スマートボックスは、そのような送信112を介して互いに直接通信することができる。たとえば、ある場所(たとえば、家庭、オフィスなど)に置かれた新しいスマートボックスは、お気に入りの(または最も頻繁に遭遇する)イベントを示すデータを求める信号をその場所における他の学習デバイスに送信することができ、他のデバイスから応答信号受信したことに応答して、新しいスマートボックスは、バイアスを設定するように構成され得る。
[0057]図1Bは、システム100’内の壁面スイッチ102がスマートボックス103aに、内部的に、または有線接続110aなどの別の接続によって、接続され得ることを示している。壁面スイッチ102は、タッチセンサー119またはトグルを有することができる。タッチセンサー119がタッチされるか、またはトグルされたときに(たとえば、壁面スイッチ102がオンにされたときに)、状態の変化が発生データとしてスマートボックス103aに有線接続110aを介して伝達され得る。スマートボックス103aは、発生データによってイベントとして示される状態の変化を解釈し、RF送信112a、112bなどによって、イベントに関連付けられているイベントレポートメッセージをワイヤレス方式で送信することができる。イベントレポートメッセージは、壁面スイッチ102の受信範囲123内にあるスマートボックスによって受信され得る。いくつかの実施形態では、フロアランプ104は、RF送信112aを受信するスマートボックス103bを備えるか、またはそれに結合され得る。ときには、RF送信112aを介してイベントレポートメッセージを受信した後に、フロアランプ104上のランプスイッチ126が、ユーザによってオンにされ、これにより、照明124がオンになるものとしてよい。フロアランプ104は、そのスマートボックス103bに、現在「オン」状態になっていることを信号で知らせ、スマートボックス103bは、この信号を発生データとして解釈し得る。この信号は、ランプスイッチ126とスマートボックス103bとの間の有線接続110bによって、またはワイヤレス方式で(たとえば、Bluetoothデータリンクを介して)送信され得る。スマートボックス103bが、ランプを通電するスイッチを備える場合、このシグナリングは、このスイッチの作動であってよい。
[0058]様々な実施形態において、フロアランプ104に関連付けられているスマートボックス103bは、壁面スイッチ102をトグルする直前またはトグルした直後に(たとえば、5〜10秒以内に)ユーザが手動でフロアランプ104をオンにすることによって壁面スイッチのスマートボックス103aからトグル信号(すなわち、トグルアクションを示す発生データを含むイベントレポートメッセージ)を受信したことに応答してフロアランプ104を通電するか、またはフロアランプ104がオンになることを引き起こすようにトレーニングされ得る。このような学習を遂行するために、スマートボックス103bは、所定の時間ウィンドウ内で壁面スイッチのトグル(イベントレポートメッセージで報告されるような)およびフロアランプ104の作動に関係するイベント(フロアランプ104から取得された発生データを介して報告されるような)がいつ生じたかを認識することができる。これは、少なくとも一部は、所定の時間ウィンドウに対する取得された発生データから生成されたイベントを一時的に記憶する(すなわち、バッファリングする)ことと、メモリに記憶されているイベントを処理し、相関させることと、その後、メモリからイベントを削除することとによって遂行され得る。たとえば、フロアランプ104に接続されているスマートボックス103bは、壁面スイッチ102の「オン」イベントをフロアランプ104のランプスイッチ126の「オン」イベントに関連付けることを、これら2つのイベントが生成されるか、または所定の時間ウィンドウ内で生じるときに行うことができ、実際、将来の壁面スイッチ102の「オン」イベントがフロアランプ104の作動をトリガーすべきであることを学習する。いくつかの実施形態では、イベントの順序は、重要であるが、いくつかの実施形態では、イベントの順序は問題にならず、したがって、イベントの順序は、イベントが所定の時間ウィンドウ内で生じる(または生成される)限り逆にされ得る。たとえば、壁面スイッチ102に接続されているスマートボックス103aは、フロアランプ104のランプスイッチ126の「オン」イベントを後続する壁面スイッチ102の「オン」イベント(たとえば、タッチセンサー119へのタッチ)に関連付けることができ、実際、将来の壁面スイッチ102の「オン」イベントがフロアランプ104の作動をトリガーすべきであることをそのまま学習する。以下でより詳しく説明されているように、そのようなトレーニングは、望ましくない挙動をうっかり学習してしまうことを回避するためある程度の繰返しを必要とし得る。
[0059]図1Cに示されているように、一実施形態のスマートボックス103は、信号受信機142から受信されたイベントレポートメッセージを処理するように構成されたプロセッサ132(図1Cにおいて、中央演算処理装置(CPU)と称される)を備えることができる。スマートボックス103は、他の学習デバイスまたはスマートボックスによって受信され得るRF信号を介してイベントレポートメッセージで発生データを送信するように構成された信号送信機136を備えることができる。上で説明されているように、そのようなイベントレポートメッセージ内の発生データは、スマートボックス103において遭遇した条件または実行されたアクションを定義または特徴付けることができる(すなわち、イベントレポートメッセージが、スマートボックス103において生成されたイベントを特徴付けることができる)。さらに、その信号受信機142を介して、スマートボックス103は、他のデバイスから類似の送信されたRF信号を介してイベントレポートメッセージを受信することができ、以下で説明されているようなデータ構造を使用して受信された信号からの受信された発生データをイベントとしてメモリ138内のバッファに保存することができる。いくつかの実施形態では、メモリ138は、本開示全体を通して説明されているような関連付けられているパターンを有するリフレックスを記憶するためのある量(たとえば、32キロバイト(KB)、64KBなど)の記憶装置(たとえば、ランダムアクセスメモリ(RAM)、フラッシュなど)を備え得る。この実施形態のスマートボックス103は、スマートボックス103によって検出された状態の変化を示す発生データを取得するためのセンサーエンコーダ134を備えることができる。たとえば、スマートボックス103が、フロアランプに接続され、フロアランプがオンにされた場合、接続されているスマートボックス103内のセンサーエンコーダ134は、状態の変化をデジタル方式で識別するか、またはマップするために発生データを生成し得る。この発生データは、スマートボックス103のメモリ138に記憶され、そのブロードキャスト範囲内の他の学習デバイス(たとえば、スマートボックス)に対してイベントレポートメッセージ内でブロードキャストされ得る。他の学習デバイスは、その信号受信機を通じて発生データを含むイベントレポートメッセージを受信し、最終的に本明細書で説明されている様々な学習アルゴリズムによって関係するイベントを処理することができる。いくつかの実施形態では、メモリ138は、揮発性ランダムアクセスメモリ(RAM)ユニット(複数可)と不揮発性フラッシュメモリユニット(複数可)とを含むものとしてよい。そのような実施形態では、RAMユニットは、スマートボックス103の様々な機能を動作させるために使用され、フラッシュユニットは、永続的データ(たとえば、リフレックスなど)とログデータ(たとえば、取得されたイベント、信号など)を記憶するために使用され得る。いくつかの実施形態では、リフレックス(以下で説明されているような)は、フラッシュメモリに記憶されないことができるが、その代わりに、揮発性RAMに記憶され、これにより、学習された挙動の再設定を効率的に簡単に行えるようにすることができる(たとえば、電源をオフにすることによって未トレーニング状態にリセットし、RAM内のすべてのリフレックスを消去する)。いくつかの実施形態では、フラッシュメモリは、サイズが様々であり、また他の点で、オプションであってもよい。たとえば、フラッシュメモリは、64MB RAMユニットに等しい64MB記憶ユニットであってもよく、両方とも図1Cに表されているようにメモリ138内に含まれ得る。
[0060]それに加えて、スマートボックス103は、補正されたトリガーに応答して学習されたリフレックスアクションとし接続されているデバイス上で物理的アクションを実行するためのモーター駆動装置140を備え得る。たとえば、スマートボックス103が、フロアランプに接続され、受信されたイベントレポートメッセージに応答して生成されたイベントに基づいてフロアランプがオンになるべきであると決定した場合、スマートボックス103のプロセッサ132は、モーター駆動装置140に信号を送りフロアランプの電源スイッチを作動させることができる。モーター駆動装置140の代わりに(またはそれに加えて)、スマートボックス103は、補正されたトリガーに応答して学習されたリフレックスアクションとしてアプライアンスを外部電源(たとえば、120Vの交流電源)に接続するように構成されたリレーを備えることができる。
[0061]いくつかの実施形態では、スマートボックス103は、スマートボックス103のコンポーネントに結合された電池143(たとえば、充電式リチウムイオン電池など)を備え得る。いくつかの実施形態では、スマートボックス103は、それに加えて、電流を受けて充電式電池143を充電するか、またはスマートボックス103の様々なコンポーネントに他の何らかの形で電力を供給するための電線または他のインターフェース144(たとえば、交流(AC)電源コンセントに接続するためのプラグまたはプロング)を備えることができる。
[0062]図2は、イベントから新しい挙動を学習し、その後のイベントに応答して学習された挙動を実行するために様々な機能コンポーネントがどのように一緒に結合されるか、または通信するかを示す一例を図示するスマートボックス103の一実施形態のアーキテクチャ200を示している。スマートボックス103は、イベント生成器202と、センサーエンコーダ134と、信号受信機142とを備え得る。イベント生成器202は、知られているイベントパターン(たとえば、すでに学習されている、または事前プログラミングされているパターン)を示すデータを受信したことに応答してイベントまたは1つもしくは複数のイベントのシーケンスを生成することができる。たとえば、イベントのパターンがスマートボックス103に接続されているフロアランプをオンにする事前定義されたアクションに関連付けられている場合、イベント生成器202は、イベントパターン記憶装置204に記憶されているパターンを有する信号内の受信された発生データから生成されるイベントとマッチしたことに応答して「ランプオン」イベントを生成し得る。次いで、生成されたイベントは、イベントバス214を介してモーター駆動装置140に伝達され、スマートボックス103に接続されているフロアランプのライトをオンにする。
[0063]スマートボックス103は、信号受信機142を介して別のスマートボックスから信号内の発生データ(たとえば、イベントレポートメッセージ)を受信することもできる。信号受信機142によって受信された信号からのデータは、イベントバス214を介して、イベントレコーダー206などの、他のデバイスコンポーネントにイベントとしてトランスポートされ得る。
[0064]スマートボックス103は、センサーエンコーダ134からのイベントも認識することができ、このエンコーダは、イベントバス214を介してイベントを他のコンポーネントに伝達し得る。たとえば、ユーザがスマートボックス103に接続されているフロアランプを手動でオンにする場合、状態の変化を示す発生データ(たとえば、ライトを「オフ」から「オン」にする)は、センサーエンコーダ134によってデジタル符号化され、状態の変化をイベントに変換することができる。
[0065]信号送信機136は、その後、イベントレポートメッセージを介して別のスマートボックスによって発生データも受信され得るようにイベントバス214を介して受信されたイベントに基づいて発生データを送信することができる。これは、一方のスマートボックス103から他方のスマートボックスへのイベントに関する情報の転送を可能にし、これにより、スマートボックスが互いから学習し、各それぞれのスマートボックスによって学習された挙動に基づいて複雑なシステム挙動を作成することを可能にし得る。イベントに関係するデータ(すなわち、イベントレポートメッセージ内の発生データ)の再送またはブロードキャストは、スマートボックスがデージーチェーンで一緒につながれ与えられたスマートボックスの信号範囲を拡張することを可能にし得る。
[0066]イベントレコーダー206は、イベントバス214からイベントを受信し、そのイベントをイベントパターン記憶装置204に保存し得る。いくつかの実施形態では、イベントレコーダー206は、発生データを受信し、受信されたデータに基づいてイベントを作成し、イベントパターン記憶装置204に記憶することができる。イベントセレクター210は、イベントレコーダー206から1つまたは複数のイベントを受信することができる。イベントの特定の組合せを受信したことに応答して、セレクター210は、ストアパターンコマンドを生成し、ストアパターンコマンドをイベントレコーダー206に送信し、イベントの組合せをパターンとしてイベントパターン記憶装置204内に記憶することをそれに指令することができる。いくつかの実施形態では、イベントセレクター210は、イベントバス214から直接イベントを受信することができる。
[0067]コンポーネントのオペレーションおよびスマートボックス103に対するインタラクティブな操作は、次の例に示されている。フロアランプに接続されたスマートボックス103は、信号受信機142を通じてスマートボックス103で受信される、壁面スイッチからのイベントレポートメッセージを介して状態の変化を示す発生データを受信し得る。信号受信機142を介したスマートボックス103は、壁面スイッチの状態の変化に関係するイベントをイベントバス214を介してイベントレコーダー206に伝達することができる。その後まもなく、ユーザは、スマートボックス103に接続されているフロアランプのライト124を手動でオンにすることができ、それに応答して、センサーエンコーダ134が、この状態の変化をイベントに変換して、そのイベントをイベントバス214を介してイベントレコーダー206に伝達し得る。イベントレコーダー206は、それらのイベントを、受信されるとともにセレクター210に送信し得る。セレクター210は、学習アルゴリズムを用いて、壁面スイッチのトグルに基づいて生成される、イベントのパターンと、フロアランプの手動のライトオン発生データとを処理することができる。イベントを処理した後、セレクター210は、ストアパターンコマンドを通じてイベントのパターンをイベントパターン記憶装置204に記憶するようにイベントレコーダー206に指令することができる。イベントパターン記憶装置204は、イベント間の学習された関連付けをリフレックスとして特定の重み関連付けとともに記憶し得る。いくつかの実施形態では、イベントパターン記憶装置204は、補正パターンと、報酬パターンと、トリガーパターンと、アクションパターンとを生成するために使用されるパターンもしくはイベントなどの所定のパターンおよび/またはイベントも同様に記憶することができる。
[0068]観察されたイベントとアクションとの間の関連付けに応じて、セレクター210は、以下で説明されているように、利得調整器212と連携して、観察されたアクションパターン(たとえば、ユーザがフロアランプをオンにしたことの観察)および/または重み(すなわち、バイアス、スケール、など)の方程式および/または計算に関係する他の特性に関連付けられているイベントの重みを変更する(たとえば、トリガーイベントのトリガー重みを増加させる)ことができる。
[0069]適宜、センサーエンコーダ252は、指令されたアクションの開始に基づいて追加のイベントを提供し得る。これらの追加のイベントは、指令されたイベントが実際に発生した(たとえば、「オン」アクションが実行されたことに応答してライトが実際に点灯した、など)ことの確認であるものとしてよく、スマートボックス103がイベントとアクションとの間の関連付けを学習するのを助ける報酬イベント(またはパターン)として処理することができる。
[0070]図3Aは、発生データを特徴付けるために使用され得るデータ構造300を示している。発生データは、フォーマットコンポーネント301と、識別コンポーネント302と、状態コンポーネント303とを含むようにデータレコード内に反映され得る。スマートボックス(たとえば、図1Cに示されているような)のプロセッサ132(またはCPU)は、復号情報をフォーマットコンポーネント301として記録し得る。これは、プロトコルバージョン、暗号化タイプ、シーケンス番号、トランザクション識別子(たとえば、指示なしで様々な発生データを次のデータから区別するために使用され得る情報、方向、順序、またはシーケンス)、記録時間、送信時間などを含み得る。しかしながら、記録時間および送信時間は、フォーマットコンポーネント301におけるオプションフィールドであり得る。いくつかの実施形態では、トランザクション識別子(またはID)は、値に関して連続していないか、または他の何らかの形で順序番号(たとえば、シーケンス内で増加または減少)を示し得る。上で説明されているように、スマートボックスは、データ構造300を少なくとも含む信号(すなわち、イベントレポートメッセージ)を送信するように構成されるものとしてよく、また他の学習デバイスは、そのような信号を受信し、このフォーマットコンポーネント301を使用してデータ構造300の発生データの残りを読み取るように構成され得る。識別コンポーネント302は、発生データの発生元のデバイスを示すものとしてよく、状態コンポーネント303は、発生データが表す状態または状態の変化に対応し得る。いくつかの実施形態では、状態コンポーネント303は、デバイスの動作状態(たとえば、「オン」、「オフ」など)に加えてボルト(たとえば、0.02)などの、アナログ状態データを含み得る。
[0071]たとえば、発生データに対するデータ構造300は、「V2.1」のフォーマットコンポーネント301と、「WALLSWITCH102」の識別コンポーネント302と、「ON」の状態コンポーネント303とを含み得る。これは、壁面スイッチに接続されているスマートボックスで2.1のデータフォーマットバージョンを表し、また壁面スイッチが「オフ」から「オン」にトグル式に切り替えられたことを表し得る。さらにこの例において、発生データおよび関連付けられているイベントは、壁面スイッチ(図1Aに示されている)のところで生成され得る。生成された後、発生データは、イベントレポートメッセージで、そのブロードキャスト範囲内にあるすべてのスマートボックスによって受信されるように壁面スイッチに関連付けられているスマートボックスからブロードキャストされ得る。フロアランプに関連付けられている付近のスマートボックスは、ブロードキャストされた発生データを受信して処理することができる。発生データは、後で説明されるイベントデータ構造350(図3B)と類似のデータコンポーネントを有し得るので、受信するスマートボックスは、発生データを利用してイベントを生成し復号することができる。これは、イベントのフィルタリングおよびパターン生成を円滑にするのに役立ち得る。
[0072]図3Bは、イベントを記録するか、または特徴付けるために使用され得るデータ構造350を示している。データ構造350は、適宜、上で説明されているようなフォーマットコンポーネント301を含み得る。イベントは、時間コンポーネント351と、識別コンポーネント352と、状態コンポーネント353とを含むようにデータレコード内に反映され得る。イベントデータ構造350は、発生データに関して図3Aにおいて上で説明されているようなデータ構造300に類似しており、イベントは、発生データと同時に生成され得る。データ構造300(すなわち、発生データ)は、データ構造350(すなわち、イベント)を生成するためにスマートボックスによって使用され、またその逆もあり得る。スマートボックスが、イベント発生源(たとえば、信号受信機142)を通じてイベントに対する発生データを受信したときに、イベントに関連付けられている時間コンポーネント351を記録することができる、イベントレコーダー206内のイベントを特徴付けるデータを記憶することができる。時間コンポーネント351は、受信するスマートボックスによってイベントが作成されるか、または観察された時間であってよい。代替的に、時間コンポーネント351は、イベントの発生データを送信する前に発生元のスマートボックスによって割り当てられた時間(すなわち、アクションが実行された、または条件が観察されたときなど)を示し得る。識別コンポーネント352は、イベントの発生データの発生元のデバイスを示すものとしてよく、状態コンポーネント353は、イベントが表す状態または状態の変化に対応し得る。
[0073]たとえば、イベントは、17:12:02の時間コンポーネント351と、「WALLSWITCH102」の識別コンポーネント352と、「ON」の状態コンポーネントとを含み得る。これは、壁面スイッチに接続されているスマートボックス上で17:12:02に作成されたイベントを表し、また壁面スイッチが「オフ」から「オン」にトグル式に切り替えられたことを表し得る。引き続きこの例示において、そのようなイベントを記述する発生データは、イベントレポートメッセージで、壁面スイッチに関連付けられているスマートボックスからそのブロードキャスト範囲内にあるどれかのスマートボックスにブロードキャストされ得る。フロアランプに関連付けられているスマートボックスは、以下で説明されているように、ブロードキャストされたイベントレポートメッセージを受信し、含まれている発生データを処理して学習アルゴリズムによる処理のためのイベントを生成することができる。
[0074]イベントパターンは、取得されるか、生成されるか、または他の何らかの形で時間ウィンドウもしくはシーケンス内で遭遇する1つまたは複数のイベントを含み得る。たとえば、特定のイベントパターンが、学習デバイス(たとえば、スマートフロアランプなど)によって内部で生成された第1のイベントと、別のデバイス(たとえば、スマート壁面スイッチなど)から受信される信号を受信したことに応答して学習デバイスによって取得された第2のイベントとを含み得る。後で説明されているように、イベントパターンは、トリガーパターン、アクションパターン、補正パターン、または報酬パターンであってよい。どのタイプかに関係なく、イベントパターンは、順序依存であるものとしてよく、したがって特定のイベントが受信される順序がパターンを構成する。代替的に、イベントパターンは順序独立であってよく、その場合、パターンは、イベントの処理順序から独立している。たとえば、第1のイベント(イベントAと称される)は、時刻0に取得され(たとえば、受信された発生データに基づいて生成される)、第2および第3のイベント(それぞれイベントBおよびイベントCと称される)は、その後の時刻1に同時に取得され得る(A:0、B:1、C:1と表される)。順序依存パターンでは、学習デバイスは、イベントAが最初に取得され、イベントBおよびCがイベントAの後に同時に取得される場合にのみパターンを認識し得る(A:0、B:1、C:1と表される)。しかしながら、イベントCが時刻1ではなく時刻2において取得された場合、パターン(A:0、B:1、C:2)は、イベントCが時刻1ではなく時刻2において取得されたので、パターンA:0、B:1、C:1に等しくなり得ない。したがって、時刻1にイベントCを取得することによって作成される第1のパターン(A:0、B:1、C:1)および時刻2にイベントCを取得することによって作成されるパターン(A:0、B:1、C:2)は、イベントCを取得する時刻が異なるので異なる。順序独立パターンでは、学習デバイスは、取得されたイベントA:0、B:1、C:1を取得されたイベントA:0、B:1、C:2と同じように処理し得るが、それは、Cの時刻は、イベントCがイベントAおよびイベントBと同じ所定の時間ウィンドウ内で取得される限り重要でないからである。言い換えれば、順序独立の場合、同じベントは、特定の時間ウィンドウ内で取得されるだけでよい。スマートボックスまたは学習デバイスによって観察される時間ウィンドウは、図3C〜図3Hを参照しつつ以下でさらに説明される。
[0075]いくつかの実施形態では、複数のスマートボックスまたは学習デバイスが、パターン(たとえば、トリガーパターンおよびアクションパターン)を生成し、単一のイベントに基づいてアクションを実行することができる。たとえば、ユーザは、壁面スイッチを「オフ」から「オン」にトグルし、壁面スイッチが単一の第1のイベントを生成することを引き起こすことができる。第1のイベントを生成した後、壁面スイッチは、関係するイベントレポートメッセージをワイヤレス方式ですべての付近の学習デバイスにブロードキャストし得る。第1の付近の学習デバイスは、たとえば、フロアランプであってよく、これは受信されたイベントレポートメッセージに基づいて第1のイベントを生成し、それをトリガーパターンに変換し得る。トリガーパターンに応答して、フロアランプは、アクションパターンを生成し、このアクションパターンに基づいてライトをアクティブ化することができる。同時に、付近のステレオが、同じイベントレポートメッセージを受信し、それと同時に、受信されたイベントレポートメッセージに基づいて第1のイベントを同様に生成し、それをトリガーパターンに変換し、フロアランプと異なる関連付けられているアクションパターンを生成し、異なるアクションパターンに基づいて音楽を再生することができる。したがって、この例において第1のパターンに関係する単一のブロードキャストされたイベントレポートメッセージは、フロアランプがそのライトをアクティブ化し、ステレオが音楽を再生することを引き起こした。
[0076]いくつかの実施形態では、複数のスマートボックスは、アクションパターンを生成し、複数の個別のイベントに関係する複数のイベントレポートメッセージを受信することに基づいて対応するアクションを実行することができる。たとえば、ユーザは、図1Aからの壁面スイッチを「オフ」から「オン」にトグルし、壁面スイッチにおいて第1のイベントを生成する。ユーザは、スマートフロアランプのランプスイッチをオフから「オン」にトグルすることもでき、これは、スマートフロアランプがスマートフロアランプにおいて第2のイベントを生成することを引き起こす。第1および第2のイベントに関係するイベントレポートメッセージ(すなわち、それぞれ第1および第2のイベントに対する発生データを含む)は、5〜10秒の時間ウィンドウ内でそれぞれのスマートボックスからブロードキャストされ得る。なおもその時間ウィンドウ内で、付近のスマートステレオおよびスマート電気スタンドは、第1および第2のイベントに関係する両方のイベントレポートメッセージを受信し得る。スマートステレオは、第1および第2のイベントに関係するイベントレポートメッセージを受信することに基づいてトリガーパターンと、対応するアクションパターンとを生成し得る。アクションパターン生成は、たとえば、ステレオがオンになり、音楽の再生を開始することを引き起こすことができる。それと同時に、スマート電気スタンドは、同じ2つのイベントに関係するイベントレポートメッセージを受信することに基づいてトリガーパターンと、異なるアクションパターンとを生成する。アクションパターンを生成した後、スマート電気スタンドは、たとえば、そのライトをオンにすることができる。
[0077]図3C〜図3Hは、様々な実施形態の学習デバイスがイベントのパターンを識別し、および/または補正するために時間をロールオーバーする時間ウィンドウ362をどのように使用するかを示している。上で説明されているように、そのような時間ウィンドウ362は、与えられた時刻にパターンまたはパターンの一部として識別されることに対して適格であり得るイベントに対して時間的制限を加えることができる、秒数(たとえば、5〜10秒)などの、所定の時間量であってよい。言い換えれば、時間ウィンドウ362内に発生するか、またはスマートボックスによって取得されるイベント(たとえば、時間ウィンドウ362内に収まる図3Bにおいて上で説明されているような時間コンポーネント351を有するイベント)が組み合わされて、以下で説明されているようにアクションをトリガーし、および/またはリフレックスに対するトリガー重みを調整する際に使用するためのパターンを生成し得る。いくつかの実施形態では、スマートボックスは、取得されたイベントを、そのような取得されたイベントが所定の時間ウィンドウ362内にもはや収まっていないときにメモリ、バッファ、または他の記憶装置から削除するように構成され得る。
[0078]図3Cは、タイムライン360に対する例示的な時間ウィンドウ362を示している。取得されるか、または観察されたイベント370〜374(図3C〜図3FにおいてイベントA〜Eと称される)は、第1の時刻380aおよび第2の時刻380bに関して時間ウィンドウ362内でスマートボックスによって遭遇されているものとしてよい。時間ウィンドウ362の長さは、第1の時刻380aと第2の時刻380bとの間の時間の長さとすることができる。そのため、第2の時刻380bにおいて、スマートボックスは、取得されたイベント370〜374のどれかを任意の組合せまたは順序で使用して、記憶されているリフレックス内の事前定義されたパターンとマッチされ得るパターンを生成し得る。たとえば、スマートボックスは、「A,B,C,D,E」、「A,B,C,D,」「A,B,C,」「A,B」「A」、「A,B,C,D,E」、「A,C,E」、「E,C,A」、「A,E,C」などの、イベントA〜Eの任意の組合せおよび/または順序を使用してパターンを生成することができる。
[0079]図3Dは、第3の時刻381aと第4の時刻381bとの間の時間ウィンドウ362内で取得されたイベント371〜375(図3DにおいてイベントB〜Fと称される)を示している。たとえば、第4の時刻381bにおいて、イベント「A」370は、もはや、時間ウィンドウ362内にはないが(すなわち、イベント「A」370は、第3の時刻381aよりも早い時刻に対応し得る)、イベントB〜F371〜375の任意の組合せは、スマートボックスに記憶されているリフレックス内の事前定義された情報とマッチし得るパターンを生成するように組み合わされ得る。いくつかの実施形態では、イベント「A」370は、第4の時刻381bにおいてメモリ、バッファ、または他の記憶装置から削除されるか、または他の何らかの形で取り除かれ得る。
[0080]同様に、図3Eは、第5の時刻382aと第6の時刻382bとの間の時間ウィンドウ362内でスマートボックスによって取得され得るイベント372〜376(図3EにおいてイベントC〜Gと称される)を示している。たとえば、第6の時刻382bにおいて、イベント「A」370およびイベント「B」371は、もはや、時間ウィンドウ362内に入っていないが、イベントC〜G372〜376の任意の組合せは、スマートボックスに記憶されているリフレックス内の事前定義された情報とマッチし得るパターンを生成するように組み合わされ得る。いくつかの実施形態では、イベント「B」371は、第6の時刻382において(すなわち、時間ウィンドウ362の外であるとき)メモリ、バッファ、または他の記憶装置から削除されるか、または他の何らかの形で取り除かれ得る。スマートボックスは、同様の方式で時間ウィンドウ362をロールする(または進ませる)ことを続け、時間ウィンドウ362内に収まるイベントを継続的に評価し、イベントが事前定義されたパターンに対応しているかどうかを決定することができる。
[0081]図3F〜図3Hは、識別されたパターンに関する様々な他の例示的な時間ウィンドウを示している。本明細書で説明されているように、スマートボックス(または学習デバイス)は、フロアランプの「オン」イベントまたは壁面スイッチの「オン」イベントなどのイベントを識別されたトリガーまたはそのような事前定義された時間ウィンドウ内で発生する他のパターンに相関させることができる。たとえば、特定のリフレックス(たとえば、取得された壁面スイッチの「オン」イベント)のトリガーパターンの発生を検出したことに応答して、スマートボックスは、リフレックスの関係する報酬パターンまたは補正パターンもトリガーパターンから5〜10秒の時間ウィンドウ内で発生したかどうかを決定し得る。スマートボックスは、関係するパターンにも遭遇したかどうかを決定するために識別されたパターン(たとえば、トリガーパターン)の前および/または後に取得される取得済みイベントを評価し得る。
[0082]図3F〜図3Hは、イベント「D」373および識別されたパターンに関連付けられている時刻389(図3F〜3Hでは「id’dパターンの時刻(Time of id’d pattern)」と称されている)からなる識別されたパターンに関する様々な時間ウィンドウ362a〜362cを示している。図3Fは、識別されたパターン(すなわち、イベント「D」373)に関連付けられている時刻389の前に生じる第1の期間392aを含むように構成され、識別されたパターンに関連付けられている時刻389の後に生じる第2の期間392bに等しい第1の時間ウィンドウ362aを示している。スマートボックスは、識別されたパターンに関連付けられている時刻389から第2の期間392bが経過した後に生じる第1の終了時刻390aまでに識別されたパターンに相関され得るイベントを取得し、記憶する(またはバッファリングする)ように構成され得る。第1の期間392aおよび第2の期間392bが同じ持続時間である場合に、等しい数のイベントが、潜在的に、識別されたパターンに関連付けられている時刻389の前および後に生じる期間392a、392b内に取得され得る。言い換えれば、第1の時間ウィンドウ362aにより、スマートボックスは、イベント「B」371、イベント「C」372、イベント「E」374、およびイベント「F」375のどれかまたはすべてをイベント「D」373の識別されたパターンに相関させることができるものとしてよい。別の例として、スマートボックスは、イベント「D」373の識別されたパターンをイベント「B」371とイベント「F」375とを含む報酬パターンなどと相関させることができる。
[0083]図3Gは、識別されたパターンに関連付けられている時刻389の後に生じる第4の期間393bより短い(または時間的に小さい)識別されたパターン(すなわち、イベント「D」373)に関連付けられている時刻389の前に生じる第3の期間393aを含むように構成されている第2の時間ウィンドウ362bを示している。スマートボックスは、識別されたパターンに関連付けられている時刻389から第4の期間393bが経過した後に生じる第2の終了時刻390bまでに識別されたパターンに相関され得るイベントを取得し、記憶する(またはバッファリングする)ように構成され得る。したがって、識別されたパターンの後に生じる第4の期間393b内で、より多くの数のイベントが潜在的に取得され得る。言い換えれば、第2の時間ウィンドウ362bにより、スマートボックスは、イベント「C」372、イベント「E」374、イベント「F」375、およびイベント「G」376のどれかまたはすべてをイベント「D」373の識別されたパターンに相関させることができるものとしてよい。たとえば、スマートボックスは、イベント「D」373の識別されたパターンをイベント「C」372と、イベント「E」374と、イベント「G」376を含む補正パターンなどと相関させることができる。
[0084]図3Hは、識別されたパターンに関連付けられている時刻389の後に生じる第6の期間394bより長い(または時間的に大きい)識別されたパターン(すなわち、イベント「D」373)に関連付けられている時刻389の前に生じる第5の期間394aを含むように構成されている第3の時間ウィンドウ362cを示している。スマートボックスは、識別されたパターンに関連付けられている時刻389から第6の期間394bが経過した後に生じる第3の終了時刻390cまでに識別されたパターンに相関され得るイベントを取得し、記憶する(またはバッファリングする)ように構成され得る。したがって、識別されたパターンの前に生じる第5の期間394a内で、より多くの数のイベントが潜在的に取得され、記憶され得る。言い換えれば、第3の時間ウィンドウ362cにより、スマートボックスは、イベント「A」370、イベント「B」371、イベント「C」372、およびイベント「E」374のどれかまたはすべてをイベント「D」373の識別されたパターンに相関させることができるものとしてよい。たとえば、スマートボックスは、イベント「D」373の識別されたパターンをイベント「C」372と、イベント「E」374とを含む補正パターンなどと相関させることができる。
[0085]上で説明されているように、リフレックスは、スマートボックスが関連付けられているトリガーを検出したことに応答して実行するか、または開始することができる事前定義されたアクションを示す記憶されている情報であるものとしてよい。図4に示されているように、4つのパターンは、リフレックス400、特にトリガーパターン402と、アクションパターン404と、報酬パターン406と、補正パターン408とを構成し得る。パターンは、1つまたは複数のイベントを含み、イベントは、データに関連付けられ得る。しかしながら、いくつかの実施形態では、パターンは、1ビット信号に関係付けられ得る(たとえば、割り込み信号線がHighレベルになる)。たとえば、1ビット信号は、報酬パターンに変換され、スマートボックスの論理イベントバス上に出され得る報酬信号であるものとしてよい。割り込みセンサーは一種のセンサーエンコーダであってよいので、そのような1ビット信号報酬パターンは、センサーエンコーダ経路を、上で説明されているように取り得る。他のパターンタイプ(たとえば、アクション、トリガーなど)は、単純な信号(たとえば、1ビット信号または割り込み)によっても定義され得る。
[0086]スマートボックスが知られているリフレックスの知られているトリガーパターンとマッチするイベント(または複数のイベント)を取得したときに、スマートボックスは、対応するアクションパターン404を生成し得る。リフレックスは、所定の報酬パターンおよび所定の補正パターンを有することができる。スマートボックスが、学習を許されたときに報酬パターンを受け取った場合、スマートボックスは、トリガーパターン402とアクションパターン404との間の関連付けに対する重み付け(すなわち、トリガー重み)を増加させ得る。関連付け重み付けが、閾値量を超えると、スマートボックスは、トリガーパターンに応答してアクションパターンを実行し得る。同様に、リフレックス400は、所定の補正パターン408を有することができ、スマートボックスが、学習を許されたときに補正パターンを受け取った場合、スマートボックスは、トリガーパターン402とアクションパターン404との間の関連付け重み付けを減少させ得る。補正パターン408の処理で、関連付け重み付けの修正を、関連付け重み付けが閾値量よりも低くなり得、スマートボックスが事実上トリガーパターン402に応答してアクションパターン404を実行しないことを学習する十分な回数だけ行うことができる。この仕方で、スマートボックスは、トリガーパターン402と対応するアクションパターン404との間の関連付けを学習し、望ましくないトリガー/アクション関連付けを学習解除することができる。様々な実施形態において、補正パターン408および/または報酬パターン406は、アクションを実行すること、入力を受信することなどに応答してイベントレポートメッセージを発行する付近のデバイスなどの別のスマートボックスデバイスからスマートボックスによって受信されたデータに基づいて取得され得る。
[0087]いくつかの実施形態では、スマートボックスのリフレックス400の事前定義されたアクションパターン404をトリガーパターンに関連付けるために、スマートボックスに対する「学習を許された」状態(または学習モード)を有効化する方法が使用され得る。そのような学習モードは、スマートボックスがリフレックス400のトリガー重みを変更することを可能にされ得る間のスマートボックスの動作状態であるものとしてよい。取得されたパターンが知られているリフレックス400のトリガーパターン402にマッチした後、リフレックスは学習モードに入り得る。他の実施形態では、スマートボックスは、アクションパターン404が生成されるときに学習モードに入り得る。他の実施形態では、スマートボックスは、大域的学習モードまたは状態に入り、これはトリガー(たとえば、学習スイッチをオンにする)から独立しているものとしてよく、またそのときに、スマートボックスは様々なリフレックスに対するトリガー重みを変更するか、または他の何らかの形で、取得されたイベントに基づいて新しいリフレックスを生成することができる。様々な実施形態において、リフレックス400は、リフレックス400がアクティブな監視モード、トリガーされたモード、学習モードなどに入っているかどうかを示すビット、フラグ、または他のインジケータなどの、様々なモードのステータスを示すデータを含み得る。
[0088]スマートボックスは、スマートボックスの所定の知られている能力に対するアクションパターンを有する1つまたは複数のリフレックスとともに構成され得る。スマートボックスは、複数のリフレックスを異なる対応するアクションとともに利用することができるけれども、いくつかの実施形態では、スマートボックスは、製造業者によって提供されるデータにおいて示されるアクションパターンなどの、スマートボックスの知られている能力またはアクションの静的セットの外部のアクションを実行するように構成されないことができる。そのため、スマートボックスは、知られているアクションに相関する知られていないトリガーを有する新しいリフレックスを生成するように構成され得るが、事前定義されていないアクションを有する新しいリフレックスを生成するように構成されないことかできる。
[0089]例示として、ステレオ学習デバイス(または学習デバイスまたはスマートボックスに結合されているステレオ)は、音量レベルを音量レベル値の有限の範囲(たとえば、0〜10など)内の値に設定する、ラジオ(またはラジオチューナー)を「オン」にアクティブ化する、ラジオ(またはラジオチューナー)を非アクティブ化する、ラジオ放送局をラジオ放送局の値の有限の範囲(たとえば、88.1〜121.9など)内の値に設定する、周波数変調(FM)構成または振幅変調(AM)構成を設定するなどの所定のアクションとともに構成され得る。ステレオ学習デバイスは、様々なトリガーパターンを有するこれらの所定のアクションの各々に対するリフレックスを記憶することができる。たとえば、ステレオ学習デバイスは、ラジオ放送局を第1の値(たとえば、92.3FM)に設定するアクションパターンとランプ「オン」イベントのトリガーパターンとを有する第1のリフレックス、ラジオ放送局を第2の値(たとえば、101.5FM)に設定するアクションパターンと壁面スイッチ「オン」イベントのトリガーパターンとを有する第2のリフレックス、音量レベルを8に設定するアクションパターンとランプ「オン」イベントのトリガーパターンとを有する第3のリフレックス、などを記憶することができる。
[0090]パターンは、センサー(たとえば、光センサー、スイッチ視覚センサーなど)によって取得された発生データに基づいて生成されるイベントおよび/または信号受信機142によって受信された発生データに基づいて生成される1つまたは複数のイベントなどの、スマートボックスで取得される1つまたは複数のイベント(たとえば、時間コンポーネント、デバイスコンポーネント、など)から作成され得る。イベントは、メモリ138内に記憶され、パターンを作成または認識するためにイベントレコーダー206によって使用され得る。パターンを作成または認識するためにイベントを評価する前に、フィルタがイベントに適用され、これにより、考慮され得るイベントのセットを縮小することができる。たとえば、フロアランプのスマートボックスは、ステレオからのイベントレポートメッセージに関係するイベントを無視することができる。代替的な一例として、ステレオは、午後11時などの、ある時刻以降に取得されるか、または生成されたイベントを無視することができる。スマートボックスが、イベントのパターンを生成した後、これは、そのパターンが記憶されているリフレックスに対応する知られているトリガーパターンとマッチするかどうかを決定することができる。
[0091]識別されたパターンがリフレックス内の記憶されているトリガーパターンとマッチし、関係するトリガー重みが特定の閾値に等しいか、またはそれ以上である場合に、対にされたアクションパターンが生成され得る。特定のリフレックス(Reflexi)に対する現在のトリガー重み(Wi)は、次の式に基づいて計算され得る。
[0092]ただし、iは、リフレックスカウンターまたは識別子であり、nは、リフレックスのトリガーパターンに関連付けられているイベントの数であり、kは、リフレックスのトリガーパターン内の個別のイベントに対するカウンターを識別し、mは、リフレックスのトリガーパターン内の個別のイベントに対するイベントマッチインジケータであり、xは、リフレックスのトリガーパターン内の個別のイベントに関連付けられているマッチ重みであり、sは、リフレックスのトリガーパターン内の個別のイベントに適用されるスケール係数であり、bは、リフレックスのトリガーパターン内の個別のイベントに適用される重みマッチ全体に対するバイアスである。したがって、Reflexiの現在のトリガー重みWiは、イベントマッチ(m)にマッチ重み(x)とスケール係数(s)とを掛けて取った総和にReflexiに関連付けられているトリガーパターンにおけるバイアスbを加えたものに等しい。いくつかの実施形態では、マッチ重み(x)は、それぞれのイベントに関連付けられている利得によって調整されるものとしてよく、本開示で説明されているように、利得は、学習デバイスが臨界期間内にあるか、または定常状態期間内にあるかに基づいて設定され得る。いくつかの実施形態では、スマートボックスは、値を0.0から1.0の範囲内に正規化する。さらに、いくつかの実施形態では、イベント(m)に対するイベントマッチインジケータは、イベントが完全にマッチしたかしていないかを示し得る0.0と1.0との間で流動的な値であり得る。(すなわち、1.0のイベントマッチ値は、完全マッチを表し、0.0のイベントマッチは、完全なミスマッチを示し得る)。
[0093]例示として、単一のイベントの識別されたパターンが特定のリフレックス(Reflexi)に対する知られているトリガーパターンとマッチする場合に、単一のイベントに対するイベントマッチインジケータ(m)は、1に設定され得る。単一のイベントに対するマッチ重み(x)が関連付けられている利得値に基づいて1に設定され、スケール係数(s)も1に設定され、Reflexiに対するバイアス(b)は0に設定されていると仮定すると、Reflexiに対する新しい、または現在のトリガー重みWiは1に等しいものとしてよい。同じパターンが再び受信された場合、マッチ重み(x)は、リフレックスに関連付けられている現在の利得によって調整され、その結果、トリガー重み閾値よりも大きくなり得るその後の新しいトリガー重み(Wi)の増加が生じ得る。したがって、新しいトリガー重み(Wi)は、増減し得る。たとえば、2度目も同じトリガーパターンを受信することは、mk,iが1に設定され、xk,iが1.5に調整され、sk,iが1に設定され、biが0に設定されていると仮定してトリガー重み(Wi)を1.5に増加させ得る。同じ条件の下で、識別されたパターンが、知られているトリガーパターンとマッチしない場合、mは、0に等しくなり、その結果、新しいトリガー重みWiも0に等しくなり得る。
[0094]追加の例示として、ステレオ(たとえば、図1Aにおいて上で説明されているようなステレオ106)は、様々なリフレックスを記憶し、利用することができるスマートボックスを備えるか、またはこれに結合され得る。特に、ステレオは(そのスマートボックスを介して)、付近のシーリングライトからの「オン」信号に関係する第1のイベントと、付近のリクライナー内の人感センサー(たとえば、圧力センサー、モーションセンサーなど)からの信号に関係する第2のイベントとを含むトリガーパターンを有する第1のリフレックス(Ri)を記憶し得る。たとえば、第1のイベントは、アクティブ化されたときにシーリングライト(またはシーティングライトに結合されているスマートボックス)によって送信された信号に対応するものとしてよく、第2のイベントは、リクライナーに人が座っているときにリクライナー(またはリクライナーに結合されているスマートボックス)によって送信された信号に対応するものとしてよい。第1のリフレックスは、ステレオがトリガーパターンの発生を検出したことに応答してステレオがオンになることを引き起こし得るアクションパターンも含み得る(すなわち、シーティングライトとリクライナーイベントの両方)。言い換えれば、第1のリフレックスに基づいて、ステレオは、シーリングライトがオンにされ、誰かが事前定義された時間ウィンドウ(たとえば、5〜10秒など)内でリクライナーに座ったことに応答してラジオをアクティブ化し、音楽を再生することができる。
[0095]次の表は、ステレオの第1のリフレックス(つまり、Ri)に関する式の例示的な特性を示している。次の例および表の目的に関して、第1のリフレックスのアクションパターン(すなわち、ステレオをオンにして、音楽を再生する)は、第1のリフレックス(すなわち、Wi)のトリガー重みが1.5のトリガー閾値以上であるときにトリガーされるものとしてよく、この条件はステレオが第1のイベントおよび第2のイベントの少なくとも一方を受信したことに応答して発生し得る。第1のイベントは、イベントk=0であり、第2のイベントは、k=1であるものとしてよい。さらに、様々イベント(mn,i)に対するマッチインジケータを除き、製造業者、開発者、またはユーザによって設定されるような、次の特性における様々な値は、事前定義され得ることは理解されるであろう。たとえば、イベントに対するマッチ重みは、製造業者によって設定され得るか、またはスマートボックスにおいて遭遇した以前のイベントに基づくものとしてよい。
[0096]上の表Aの例示的な特性に示されているように、一シナリオにおいて、第1のイベント(すなわち、k=0)のみがステレオによって受信され得る。したがって、ステレオのスマートボックスは、第1のイベント(m0,i)に対するイベントマッチインジケータを1.0に(すなわち、第1のイベントに対してマッチがある)、第2のイベント(m1,i)に対するイベントマッチインジケータを0.0に(すなわち、第2のイベントに対してマッチがない)設定することができる。第1のリフレックスのトリガー重みは、各イベントに対する部分重み計算結果を総和することによって計算されるものとしてよく、それにより、第1のイベントの部分重みは、1.0と計算される。言い換えれば、(m0,i*x0,i*s0,i)+bi=(1.0*1.0*1.0)+0.0=1.0である。第2のイベントはないので、第2のイベント(m1,i)に対するイベントマッチインジケータは0.0であり、したがって、第2のベントに対する部分重み計算結果は0.0となり得る。言い換えれば、(m1,i*x1,i*s1,i)+bi=(0.0*1.0*1.0)+0.0=0.0である。したがって、第1のリフレックス(Wi)のトリガー重み合計は、1.0(すなわち、1.0+0.0)であり、これは1.5のトリガー閾値よりも小さい。したがって、第1のイベントのみが受信された場合、第1のリフレックスのアクションパターンはトリガーされないことができる(たとえば、ステレオはラジオをアクティブ化しないことができる)。
[0097]上の表Bの例示的な特性に示されているように、別のシナリオにおいて、第1のイベント(すなわち、k=0)および第2のイベント(すなわち、k=1)の両方がステレオによって受信され得る。したがって、スマートボックスは、第1のイベント(m0,i)に対するイベントマッチインジケータを1.0に(すなわち、第1のイベントに対してマッチがある)、第2のイベント(m1,i)に対するイベントマッチインジケータを非ゼロの値に設定することができる。しかしながら、いくつかの場合において、第2のイベントは、正確にマッチされないことがあり得、そのため、第2のイベント(m1,i)に対するマッチインジケータは、0.8に設定され得る(すなわち、第2のイベントに対して少なくとも部分的なマッチがある)。第2のイベント(m1,i)に対するイベントマッチインジケータに対する0.8の値は、第2のイベントマッチが、値を0.0から1.0までの範囲に正規化するシステムに対する不完全なマッチであったことを示すものとしてよく、1.0は、イベントマッチ値に対する完全なマッチを表す。
[0098]上で説明されているように、トリガー重み(Wi)は、各イベントに対する部分重み計算結果を総和することによって計算されるものとしてよく、それにより、第1のイベントの部分重みは、1.0と計算される。言い換えれば、(m0,i*x0,i*s0,i)+bi=(1.0*1.0*1.0)+0.0=1.0である。さらに、第2のイベントの部分重みは、0.8と計算される。言い換えれば、(m1,i*x1,i*s1,i)+bi=(0.8*1.0*1.0)+0.0=0.8である。したがって、第1のリフレックス(Wi)のトリガー重み合計は、1.8(すなわち、1.0+0.8)であり、これは1.5のトリガー閾値よりも大きい。そのため、第1のイベントと第2のイベントの両方がスマートボックスで取得される場合、第1のリフレックスのアクションパターンが生成され、これはアクションが実行されることを引き起こし得る(たとえば、ステレオがそのラジオをアクティブ化し、音楽を再生し得る、など)。いくつかの実施形態では、第1のリフレックスのアクションパターンが生成され、これはトリガー閾値(たとえば、1.5)以上の第1のリフレックス(Wi)のトリガー重み合計の計算に応答してアクションが実行されることを引き起こし得る。
[0099]いくつかの実施形態では、様々なイベントに対するマッチ重みに基づいて、スマートボックスは、単一のイベントを取得したことに応答してアクションを実行するように構成され得る。たとえば、ステレオのスマートボックスは、誰かがリクライナーに座っていることを示す信号を受信したことのみに応答してそのラジオ機能をアクティブ化するように構成され得る(すなわち、アクションパターンは、リクライナーに関連付けられている人感センサーのイベントによってトリガーされ得る)。上の表Cの例示的な特性に示されているように、第1のイベントは取得されず(すなわち、m0,i=0.0)、第2のイベントは取得され(すなわち、m1,i=0.8)、第2のイベント(x1,i)に対するマッチ重みは2.0の値に設定され得る。第2のイベントに対するマッチ重みが高いので、ステレオのラジオは、第2のイベントのみがステレオにおいて取得されたときにアクティブ化され得る。言い換えれば、第1のリフレックスに対するトリガー重みは、第2のイベントを取得することにのみ基づいて1.5よりも大きいものとしてよい(すなわち、((m0,i*x0,i*s0,i)+(m1,i*x1,i*s1,i))+bi=((0.0*1.0*1.0)+(0.8*2.0*1.0))+0.0=1.6)。
[0100]いくつかの実施形態では、ノイズの多いRF環境などにおいて、不完全なイベントマッチングがあり得そうなときに、スケール係数は、マッチングが低い可能性があるとしてもリフレックスがトリガーされるように調整され得る。たとえば、上の表Dに示されているように、マッチングインジケータが理想値より低い(たとえば、1.0未満、0.8未満など)ときであっても、1.5の閾値より高いトリガー重みを可能にするために、第1のイベント(s0,i)に対するスケール係数および第2のイベント(s1,i)に対するスケール係数は2.0の値に増加され得る。言い換えれば、理想値より低いマッチングインジケータ(たとえば、それぞれ0.7および0.6)を有する第1のイベントと第2のイベントの両方を受信し、第1のリフレックスに対する2.6のトリガー重みを計算したことに応答して、ステレオはそのラジオをアクティブ化して、音楽を再生することができる(すなわち、((m0,i*x0,i*s0,i)+(m1,i*x1,i*s1,i))+bi=((0.7*1.0*2.0)+(0.6*1.0*2.0))+0.0=2.6)。
[0101]いくつかの実施形態では、スマートボックスが単一のイベントを取得したことに応答してアクションパターンがトリガーされることを引き起こすためにトリガー重み計算結果に対するバイアス値が調整され得る。たとえば、上の表Eに示されているように、バイアス(bi)は、1.0に設定されるものとしてよく、これは、第1のイベントまたは第2のイベントのいずれかがステレオが第1のリフレックスを介してそのラジオをアクティブ化することを個別に引き起こすことを許す。言い換えれば、アクションパターンは、第2のイベントのみが取得されたときに(すなわち、((m0,i*x0,i*s0,i)+(m1,i*x1,i*s1,i))+bi=((0.0*1.0*1.0)+(0.8*1.0*1.0))+1.0=1.8)または第1のイベントのみが取得されたときに(すなわち、((m0,i*x0,i*s0,i)+(m1,i*x1,i*s1,i))+bi=((0.9*1.0*1.0)+(0.0*1.0*1.0))+1.0=1.9).トリガーされ得る。
[0102]図5〜図7は、イベント(アクションを含む)がフレックスにおいてパターンとしてどのように認識(または識別)され得るかを示すタイムライン図である。これらのタイムラインの説明において、壁面スイッチおよびフロアランプは、それらのデバイスに関連付けられているスマートボックスに対する簡略表記として参照されている。さらに、壁面スイッチおよびフロアランプは、スマートボックスに結合され得るタイプのデバイスの説明に役立つ例として使用される。したがって、壁面スイッチおよびフロアランプへの参照は、いかなる形でも請求項の範囲を制限することを意図されていない。
[0103]図5は、送信機510(たとえば、壁面スイッチ)と受信機(たとえば、ランプ)との間の送信の時間を示すリフレックスに対応するイベント送信のタイムライン図500である。これらのイベント送信(またはイベントレポートメッセージ)は、受信機がイベントを生成するのを助け得る発生データを含みことができる。タイムライン図は、受信機がモニターモード506に入っている状態で時刻0(または図5に示されているようにt=「t0」)から始まり、受信機が時刻「tResumeMonitor」(またはt=「tResumeMonitor」)でモニターモード506に戻ったときに終了する。いくつかの実施形態では、図500内の送信機510は、フロアランプによって受信され得る、イベントの発生データをブロードキャストする壁面スイッチであってよい。フロアランプは、モニターモード506またはトリガーモード508のいずれかとしてよい、各記憶されているリフレックスに関連付けられている受信機状態511を有し得る。フロアランプに関連付けられている各リフレックスの既定状態は、モニターモード506であってよい。フロアランプは、イベントを他のスマートボックスコンポーネントに転送し得る、イベントバス214(典型的にはそのスマートボックス内の)も有することができる。
[0104]例示を目的として、時刻t=t0において、フロアランプは、すべてのリフレックスに関してモニターモード506に入っていると考えられ得る。フロアランプは、その信号受信機142などを介してイベントレポートメッセージ502を受信することができる。たとえば、ユーザは、壁面スイッチを「オフ」から「オン」にトグルすることができる。それに応答して、壁面スイッチは、センサーエンコーダ134(図2に示されている)によりそのトグルをイベントとして記録することができる。壁面スイッチは、壁面スイッチの信号送信機136を通じて新しいイベントに関係する発生データを有するイベントレポートメッセージ502を送信し得る。イベントレポートメッセージ502は、フロアランプなどの、他のスマートボックスによって受信され得る。
[0105]t=tTriggerにおいて、イベントレポートメッセージ502がフロアランプによって受信され得る。フロアランプは、イベントレポートメッセージ502に基づいて生成されたイベントがリフレックスのトリガーパターンとマッチすると決定し、マッチしたリフレックスに関してトリガーモード508に入り得る。トリガーモード508において、フロアランプは、他のイベントの探索を続け、学習または学習解除をそれぞれ可能にするために報酬および/または補正パターンが存在するかどうかを決定し得る。
[0106]t=tResponseにおいて、フロアランプは、マッチするリフレックスのアクションパターンに関連付けられているイベント514を生成することができ、これはモーター駆動装置140をアクティブ化して、フロアランプ(図1Bおよび図1Cに示されている)のライト124をオンにすることなどのアクションを引き起こし得る。イベント514は、フロアランプのイベントバス214上に出され、最終的にパターンに変換され、メモリ138に記憶され得る。いくつかの実施形態では、生成されたアクションパターンは、追加のアクションパターンに対するトリガーパターンであってもよい。たとえば、フロアランプをオンにすることは、ステレオをオンにするためのトリガーパターンであってもよい。言い換えれば、複数の学習デバイスがデージーチェーンでつながれ、これにより、トリガーパターンおよびアクションパターンが生成されることを可能にし、対応するデータをデバイスからデバイスへと送信することができる。
[0107]t=tResumeMonitorにおいて、フロアランプは、トリガーモード508を抜けて、モニターモード506に再入し、そこで、フロアランプは、新しいイベントレポートメッセージを探索し、受信することができる。
[0108]図5が示しているように、フロアランプは、単一のリフレックスに関して単一のトリガーモードに入ることができる。いくつかの実施形態では、フロアランプは、複数のリフレックスをメモリに記憶しておき、重なり合う時間間隔で複数のイベントを取得(または生成)することができる。フロアランプが、結果として複数のトリガーパターンを引き起こす複数のイベントを取得すると仮定すると、フロアランプは、同時トリガーモードに入り得る。各トリガーモードは、異なるリフレックスに対応し得る。たとえば、フロアランプは、壁面スイッチからEventAに関係するイベントレポートメッセージを、ステレオからEventBに関係するイベントレポートメッセージを同時に受信することができる。EventAは、フロアランプのメモリに記憶されている第1のリフレックスからのトリガーパターンに対応し得る。それに応答して、フロアランプは、第1のリフレックスReflexAに関してトリガーモードに入ることができる。EventBは、異なるリフレックスReflexBの異なるトリガーパターンに対応し得る。したがって、フロアランプは、ReflexBに関して第2のトリガーモードに同時に入り得る。各トリガーモードは、図5に示されているように表され得るが、フロアランプは、各イベントと、リフレックスと、トリガーモードとを独立して処理することができる。
[0109]フロアランプは、異なる時刻に異なるリフレックスに対するトリガーパターンのイベントを生成することができ、これは、フロアランプが一方のトリガーに関して他のリフレックスに対する他方のトリガーモードと異なる時刻にトリガーモードに入ることを引き起こし得る。各リフレックスのトリガーモードが同じ時間期間(たとえば、5秒)に重なると仮定すると、フロアランプは、第1のリフレックスに関してトリガーモードを終了するが、第2のリフレックスに関してはトリガーモードに留まり得る。最終的に、イベントフロアランプは、各リフレックスに関してトリガーモードを終了し、各リフレックスに関してモニターモードに戻り得る。
[0110]図6は、新しいリフレックスを作成する学習タイムラインを示すタイムライン図600である。図600は、知られているリフレックス(「ReflexF1」または「F1」と称される)が新しいリフレックス(「ReflexF2」または「F2」と称される)を作成するためにどのように使用され得るかを示している。図600は、新しい壁面スイッチと、ランプスイッチと、フロアランプとを含む。フロアランプは、知られているReflexF1を有し、これはモニターモード606とトリガーモード608とを含む状態618を有する。ReflexF2は知られておらず、このタイムライン601上で最終的に作成される。タイムライン601は、時刻0(「t=t0」)に開始し、時刻「ResumeMonitor」(t=「tResumeMonitor」)に終了する。
[0111]t=t0において、フロアランプは、ReflexF1に関してモニターモード606で開始し得る。ReflexF1は、トリガーパターン(MD2と称される)と、アクションパターン(MD3と称される)と、報酬パターン(MD4と称される)と、補正パターン(MD5と称される)とを含み得る。フロアランプは、ReflexF1(MD2)のトリガーパターンとマッチするパターンに対する生成されたイベントを監視し得る。
[0112]t=tMd1−onにおいて、新しい壁面スイッチが「オフ」から「オン」に切り替えられ、これにより、イベントを生成し、関係する発生データ(「発生データ1」と称される)がフロアランプによって受信されたイベントレポートメッセージで壁面スイッチによってブロードキャストされることを引き起こし得る。新しい壁面スイッチからのイベントレポートメッセージからの発生データは、1つまたは複数のイベントと組み合わされ得るか、またはパターン(「MD1」)を作成するために個別に使用され得るイベントを生成するためにフロアランプによって使用され得る。
[0113]t=tMd1−doneにおいて、フロアランプは、「発生データ1」を含むイベントメッセージを受信し、関係するイベントを生成し、それを(およびメモリに記憶されている可能な他のイベントを)パターン「MD1」として知られているパターンに変換し得る。このときに、フロアランプは、パターンMD1をイベントバス上に出して、さらに処理するか、またはメモリに一時的に記憶することができる。フロアランプは、パターンMD1がフロアランプの知られているリフレックスの知られているトリガーパターンと一致していないと決定し、そこで、モニターモード606で動作し続けることができる。
[0114]t=tMd2−onにおいて、ランプスイッチは、「オフ」から「オン」にされ、それに応答して、フロアランプが、状態変化に関係する発生データ(「発生データ2」と称される)に基づいてイベントを生成し得る。それと同時に、フロアランプは、「発生データ2」から生成されたイベントをパターンMD2としてまとめて処理される他のイベントと組み合わせて、パターンMD2をイベントバス上に出して、メモリに一時的に記憶し得る。
[0115]t=tTriggerにおいて、フロアランプは、パターンMD2とReflexF1のトリガーパターンとのマッチングを行うことができる。次いで、フロアランプは、パターンMD2がReflexF1のトリガーパターンとマッチするので、ReflexF1に対するトリガーモード608に入ることができる。いくつかの実施形態では、フロアランプは、内部送信を完了し、t=tTriggerにおいて「発生データ2」から生成されたイベントをパターンMD2に変換し得る。
[0116]t=tActionにおいて、フロアランプは、イベントバス上に配置されるか、またはフロアランプのメモリに記憶されるReflexF1(MD2)に対する知られているトリガーパターンに関連付けられているReflexF1(MD3)に対するアクションパターンを生成し得る。パターンMD3の生成は、フロアランプに接続されているモーター駆動装置がライトをオンにすることを引き起こし得る。
[0117]t=tNewReflexにおいて、パターンMD1とマッチするトリガーパターンを有する既存のリフレックスがないので、新しいリフレックス(「ReflexF2」または「F2」と称される)が作成される。ただ1つの知られているトリガーパターンは、ReflexF1に関連付けられているMD2である。ReflexF2を作成する際に、フロアランプは、ReflexF1に関連付けられているアクションパターンと、報酬パターンと、補正パターンとを新しいリフレックスにコピーし、タイムライン601上で受信されたパターン(MD1)をそのトリガーパターンとして新しいリフレックスに割り当て得る。コピーされるパターンに関連付けられている重みは、新しいリフレックスにコピーされるときに調整され得る。したがって、新しいリフレックス(ReflexF2)は、パターンMD1に等しく、新しい壁面スイッチから受信された発生データ(「発生データ1」)に関係するトリガーパターンと、フロアランプをオンにすることに関連付けられているパターンMD3に等しいアクションパターンと、パターンMD4に等しい報酬パターンと、パターンMD5に等しい補正パターンとを有することができる。いくつかの実施形態では、フロアランプが、複数のアクションを実行し(たとえば、オンにする、オフにする、など)、それにより、少なくとも2つのリフレックス(すなわち、アクションごとに少なくとも1つのリフレックス)を利用するように構成され得るときに、未知のパターン検出したことに応答して作成される新しいリフレックスは、そのトリガーモードにおいて既存のリフレックスからコピーされ得る。言い換えれば、新しいリフレックスを作成するときにどの既存のリフレックスからコピーするかを決定するために、フロアランプは、トリガーモードにおいてイベント(またはイベントのパターン)をリフレックスの知られているアクションに相関させるオペレーションを実行し得る(すなわち、新しいリフレックスに対するパターンが、知られていないパターン/イベントの時間ウィンドウ内でアクションパターンに遭遇する既存のリフレックスからコピーされ得る)。図11は、スマートボックスが新しいリフレックスを追加するためのオペレーションを含む一実施形態の方法を示している。
[0118]t=tRewardにおいて、別のコンポーネントが、ReflexF1に対する報酬パターンとして知られているパターンMD4などの報酬パターンとマッチするイベントを生成し得る。たとえば、モーター駆動装置は、フロアランプのライトがオンになるときにパターンMD4に等しいイベントを生成することができる(図1B〜図1Cに示されている)。モーター駆動装置は、パターンMD4をイベントレコーダーに送信し得る。パターンMD4は、ReflexF1の報酬パターン(および新規作成されたReflexF2)とマッチするので、ReflexF1に関連付けられているトリガー重みは、ReflexF1がトリガーモード608に入るときに増加され得る。いくつかの実施形態では、報酬パターンは、フロアランプのライトがオンになる限りパターンMD4に等しい報酬パターンが常に生成され、トリガー重みが増加し得るように自己生成パターンであってよい。
[0119]学習有効モードにおいて、報酬パターン(MD4)がマッチした場合、報酬利得が適用され得る(たとえば、トリガー重みを蔵させる、など)。いくつかの実施形態では、マッチ重み(上で説明されているようにx)は、典型的には、学習有効モードに入っている間に修正されるけれども、式の中のパラメータまたは値は、学習有効モードに入っている間に調整され得る。言い換えれば、リフレックスのトリガー重みを増減することは、トリガー重みの式の中のパラメータを調整することを含み得る。
[0120]しかし、補正パターン(MD5)がマッチした場合、補正利得が適用され得る(たとえば、トリガー重みを減少させる)。いくつかの実施形態では、報酬パターンまたは補正パターンは、入力、または応答が望ましいものであった(または望ましくなかった)というフィードバックを返すためにユーザがアクティブ化し得るボタンなどの、追加の発生によって生成され得る。たとえば、フロアランプがそのライトをオンにした後、ユーザは、フロアランプ上のボタンを押して、報酬パターンを生成する。報酬パターンに基づいて、フロアランプは、関係するリフレックスのトリガー重みを増加させ得る。
[0121]t=tResume Monitorにおいて、フロアランプは、ReflexF1に対するトリガーモード608を終了し、モニターモード606に戻る。いくつかの実施形態では、フロアランプは、その後、パターンMD1を受信するものとしてよく、これは、フロアランプがReflexF2のトリガーされたアクションに基づいてライトをアクティブ化することを引き起こし得る。
[0122]いくつかの実施形態では、新しいリフレックスが、様々発生データがフロアランプによって受信されるか、または取得される順序に関係なく生成され得る。言い換えれば、未知のトリガーパターン(たとえば、MD1)は、トリガーウィンドウの前、間、および後に受信され、使用される可能性があり、したがって、発生データを受信する順序と無関係にリフレックスの作成を引き起こす可能性がある。たとえば、「発生データ1」が受信され、フロアランプがReflexF1に対するトリガーモード608に入った後(すなわち、「発生データ2」が受信され、MD2が取得された後)にパターンMD1を生成するために使用される場合、MD1がトリガーモード608に関する時間ウィンドウ内でまだ発生していることがあり得るので、フロアランプはReflexF2をまだ作成することができる。
[0123]図7は、図6からの新規作成されたリフレックスReflexF2がどのように報酬を受けおよび/または補正されてタイムライン701に沿ったアクションとの関連付けを増加/減少させるかを示している。ReflexF2の状態718に応じて、フロアランプは、ReflexF2に関してモニターモード706またはトリガーモード708に入り得る。モニターモード706において、フロアランプは、リフレックスに関してマッチするトリガーパターンを探索している。フロアランプが、記憶されているリフレックスの知られているトリガーパターンとマッチするイベントのパターンを生成する場合、フロアランプは、マッチするトリガーパターンを含むフレックスのトリガーモードに入り得る。図700では、ReflexF2は、パターンMD1に等しいトリガーパターンと、パターンMD3に等しいアクションパターンと、パターンMD4に等しい報酬パターンと、パターンM5に等しい補正パターンとを有することができる。
[0124]t=t0において、壁面スイッチは、イベントを生成し、そのイベントに関係する発生データとともにイベントレポートメッセージをブロードキャストすることができる。フロアランプは、モニターモード706において、t=tMD1−Rxまでにイベントレポートメッセージを受信し得る。
[0125]t=tMD1−Rxにおいて、フロアランプは、発生データを伴うイベントレポートメッセージ全体を受信し、それに応答してイベントを生成し、それをイベントレコーダーに転送し、このイベントレコーダーがイベントをパターンMD1に変換して、イベントバスに出すものとしてよい(図2に示されているように)。フロアランプは、パターンMD1をイベントバスからメモリの一時記憶装置(たとえば、図2のイベントパターン記憶装置204)に転送し得る。
[0126]t=tTriggerにおいて、フロアランプは、パターンMD1を処理し、それがReflexF2に関連付けられている知られているトリガーパターンとマッチすると決定し得る。したがって、フロアランプは、ReflexF2に関してトリガーモード708に入り、そこで、フロアランプは、ReflexF2に関して学習または学習解除を行うことができる。
[0127]t=tActionにおいて、フロアランプは、イベントバス上に出される、ReflexF2に関連付けられているアクションパターン(MD3)を生成し得る。モーター駆動装置は、アクションパターン(MD3)をイベントバスから取り出し、生成されたアクションパターンに関連付けられているアクション(たとえば、フロアランプのライトをオンにする)を実行し得る。
[0128]t=tRewardにおいて、ReflexF2に関連付けられている報酬パターン(MD4)が、別のコンポーネントから生成され得る。たとえば、生成されたアクションパターン(MD3)は、モーター駆動装置がフロアランプをオンにすることを引き起こし得る。フロアランプがオンになると、モーター駆動装置がフィードバックを受信し得るか、またはセンサーエンコーダがランプの状態の変化を感知し、パターンMD4を生成し得る。パターンMD4は、その後、イベントパターン記憶装置に記憶され得る。パターンMD4は、ReflexF2の報酬パターンとマッチするものとしてよく、その結果、ReflexF2トリガーパターン(MD1)に関連付けられている重みが増加され得る。
[0129]いくつかの実施形態では、リフレックスのトリガー重みが、最大レベルに達した後、トリガー重みは、さらに調整されることはなく、これにより、システムリソースが別のところで使用されることを許し得る。そのような最大レベルは、重み計算の動的範囲を制限するか、または学習デバイス内に備えられるRAMの量を減らすために利用され得る。たとえば、リフレックスにトリガー重みのより小さい動的範囲が使用されるときに(たとえば、最小のトリガー重みと最大のトリガー重みとの間のより小さい範囲)、学習デバイスではより少ないRAMが使用され得る(たとえば、16ビットの代わりに8ビット)。
[0130]いくつかの実施形態では、フロアランプのメモリは、限られた数のパターンおよび/またはリフレックスを記憶できるだけのサイズを有し得る。そのような場合、記憶されているリフレックスのトリガー重みが、最小の重み値(たとえば、「破棄閾値」)に達した場合、トリガー重みは、リフレックスをトリガーすることが決してないことがあり得そうなほど低いものとしてかんが得られ得る。そのような場合、フロアランプは、新しいリフレックスのためにそのリフレックスに割り振られているメモリを再使用(または再利用)することができる。したがって、低いトリガー重みでリフレックスを補正するための下限値を設定することは、そのメモリが他のパターンおよび/またはリフレックス用に記憶域を充てることを可能にし得る。他の実施形態では、新しいリフレックスを記憶するための制限されたリソースがあるときに、フロアランプは、最小のまたは「破棄」閾値を使用することなく、メモリを最も頻繁に使用されていない、または使用される可能性が最も低いものから(重み特性を介して)新しいリフレックスに再割り振りすることができる(すなわち、フロアランプは、単純に、最も無益なリフレックスを置き換えることができる)。
[0131]t=tCorrectionにおいて、異なるコンポーネントが補正パターン(MD5)を生成し得る。たとえば、フロアランプが、トリガーモード708においてオフにされた場合、センサーエンコーダは、この状態の変化をイベントに変換するものとしてよく、これはイベントレコーダーに受け渡され、補正パターンMD5を作成することができる。パターンMD5は、ReflexF2(トリガーモード708に入っている)の補正パターンにマッチされるものとしてよく、その結果、トリガー重みは減らされて、トリガーパターン(MD1)とReflexF2のアクションパターン(MD3)との間の関連付けを弱め得る。
[0132]t=tResume Monitorにおいて、フロアランプは、ReflexF2に関連付けられているトリガーモード708を終了し得、フロアランプは、モニターモード706に戻り得る。トリガーモード708は、それがタイムアウトになったことで単純に終了し得る。たとえば、トリガーモード708は、10秒間のみ持続し得るので、10秒間トリガーモード708で動作した後、フロアランプは、ReflexF2に関してトリガーモード708を終了し、対応するモニターモード706に入り得る。
[0133]図8は、フロアランプなどの、学習デバイスのリフレックスに対する異なる種類の学習率(learning rates)を示している。各デバイスは、学習の臨界学習期間801と定常状態学習期間802とを有し得る。言い換えれば、臨界学習期間801および定常状態学習期間802は、学習デバイスの異なる学習状態または学習条件に対応し得る。たとえば、臨界学習期間801は、高速学習状態に対応し、定常状態学習期間802は、低速または通常学習状態に対応し得る。これらの期間の各々の期間内にあるときに利得の異なるセットがトリガー重みに適用され得る。図8は、2つの学習期間801、802を示しているが、リフレックスは、2つよりも多い学習期間を利用することができることは理解されるであろう。
[0134]臨界学習期間801は、典型的には、学習デバイスの初期状態に関連付けられ得る。これは、学習デバイスの初期挙動をトレーニングすることが、ユーザにとってより有益である時間であり得る。初期動的リフレックスは、この状態で作成される可能性が高い、つまり、臨界学習期間801に関連付けられている様々な利得値(図8では「利得セット1」と称されている)が高く(すなわち、高利得セット)、スマートボックスは、学習および学習解除を行う可能性がより高い。たとえば、製造業者が、フロアランプを最初に高い利得を有する臨界学習期間801に設定し、フロアランプが壁面スイッチまたは他のデバイスに素早く関連付けることを可能にし得る。第1のトリガーアクション関連付けが発生した後、フロアランプは、定常状態学習期間802に変化し得る。
[0135]定常状態学習期間802は、特定のデバイスが初期トレーニングされたときに生じるものとしてよく、追加のトレーニングは許されるが、より困難であることが意図される。定常状態学習期間802に関連付けられている利得(図8では「利得セット2」と称されている)は、低い利得(すなわち、低利得セット)を有し、学習をより困難なものにし得る。たとえば、フロアランプが壁面スイッチに関係する「オン」イベントとの「オン」イベント関連付けを有する場合、フロアランプは、定常状態学習期間802に入っているものとしてよい。定常状態学習期間802に入っている間、フロアランプは、ステレオから受信された発生データに応答してアクティブ化するなどの、追加の関連付けを学習し得る。しかしながら、ステレオとフロアランプとの間の関連付けを瞬時に学習する代わりに、フロアランプは、トリガーパターン(たとえば、ステレオから受信された発生データに基づくステレオ「オン」イベント)と、アクションパターン(たとえば、ランプがオンにされたことを示す発生データに基づくフロアランプ「オン」イベント)と、報酬パターン(たとえば、ランプ上のユーザ入力ボタンから「報酬」信号または発生データを受信することに基づく)とに、ステレオがオンになったときにフロアランプがオンになることを学習する前に複数回遭遇しなければならない場合がある。
[0136]臨界学習期間801に関連付けられている利得(「利得セット1」)と、定常状態学習期間802に関連付けられている利得(「利得セット2」)との関係は、次の式で示され得る。
[0137]言い換えれば、上記の式を使用する学習デバイスは、利得セット1で学習するのが利得セット2よりも高速であり得る。
[0138]いくつかの実施形態では、各利得セットは、オペレーションの異なる段階でリフレックスのトリガー、報酬、および補正パターンに関連付けられている個別の利得または重みを有し得る。臨界期間と定常状態期間とにより近くなるように利得を調整するために2つまたはそれ以上の利得レベルが使用され得る。たとえば、第3の利得セットがあり得、これは、臨界期間と定常状態期間とのハイブリッドであってよい(たとえば、学習するのに繰返しが少なくて済む)。利得が調整されるときに、特定のパターンに関連付けられている重みが、システム内のマッチを決定するように調整され得る。
[0139]特定のリフレックスが動的であるか、または静的であるかは、学習デバイスに関連付けられている利得と学習とに影響を及ぼし得る。特定の学習デバイスが、調整されないことができる、組み込みの静的リフレックスを有し得る。たとえば、フロアランプは、関係する報酬パターンまたは補正パターンに遭遇することに関係なく再重み付けされないことができる組み込みのリフレックスを有し得る。言い換えれば、学習デバイスは、重み調整(たとえば、補正)の使用を通じて静的リフレックスを無効にする(または「忘れる」)ことができない。しかしながら、対照的に、動的リフレックスは、自然発生的に作成され、時間の経過とともに調整され得る。たとえば、フロアランプは、壁面スイッチに関連付けられているトリガーパターンに対応してフロアランプのアクションが実行されないよう時間の経過とともに動的リフレックス(たとえば、上で示されているようなReflexF2)の重みを調整し得る。言い換えれば、学習デバイスは、トリガーパターン(たとえば、壁面スイッチでの発生)とアクションパターン(たとえば、フロアランプをオンにする)との間の関連付けに関係するリフレックスのトリガー重みを、そのトリガー重みが閾値より低くなり、したがってアクションが実行されないように下げることができる。しかしながら、いくつかの実施形態では、動的リフレックスは、関連付けが忘れ去られないように静的リフレックスに変換され得る。いくつかの実施形態では、動的リフレックスは、アクションとトリガーとの間の関連付けを有するリフレックスのトリガー重みを変更することが困難になり、したがってそのような動的リフレックスをより永続的にするようなリジッド状態を与えられ得る。
[0140]図9および図10は、図8に示されているように定常状態学習期間802における動的リフレックスの学習および学習解除の例を示している。図9および図10に示されている同じ原理は、臨界学習期間801における動的リフレックスにも当てはまる。
[0141]図9は、トリガーアクション関連付けに報酬を与えることで、トリガーパターンがトリガー重み閾値925以上の重みを有するようになるまでトリガーパターンの重みをどのように変更することができるかを示しているタイムライン図900である。図900は、2つの知られているリフレックスReflexF1とReflexF2とを含む。ReflexF1は、トリガーパターン(「MD2」と称される)と、そのトリガー閾値(図示せず)よりも高い第1のトリガー重みとを有する。ReflexF1は、また、アクションパターン(「MD3」と称される)と、報酬パターン(「MD4」と称される)と、補正パターン(「MD5」と称される)とを有する。ReflexF2は、ReflexF2が異なるトリガーパターン(「MD1」と称される)を有することを除きReflexF1と同じであり、最初にトリガー重み閾値925より低い第2のトリガー重みを有し得る。図900は、ReflexF2のトリガー重みを変えることができる、イベントおよび反応のタイムライン901を示している。
[0142]時刻t=t0において、フロアランプは、ReflexF2に関してモニターモード906に入っているものとしてよい。モニターモード906では、フロアランプは、トリガーパターンReflexF2とマッチするイベントに関係する信号が入ってくるのを監視し得る。モニターモード906において、フロアランプは、トリガーパターンMD1に対応するイベントに遭遇するか、または取得し得る。たとえば、第1の壁面スイッチと同一であってもよい、新しい壁面スイッチは、新しい壁面が「オフ」から「オン」にトグルしたときにイベントレポートメッセージを発生データとともにフロアランプに送信することができ、次いで、フロアランプは、受信されたイベントレポートメッセージおよび発生データに基づいてトリガーパターンMD1を生成することができる。
[0143]時刻t=tNoAction1において、フロアランプは、ReflexF1とReflexF2とに対するトリガーパターンMD1を処理することができる。すでに説明されているように、MD1は、ReflexF2にのみ関連付けられ、したがって、フロアランプは、ReflexF2に関してトリガーモード908に入り得る。ReflexF2は、t=tNoAction1でトリガー重み閾値925より低い第1のトリガー重みレベル921で現在のトリガー重みを有するので、フロアランプは、ReflexF2に対するアクションパターン(たとえば、MD3)を生成しないことができる。しかしながら、その後すぐに、フロアランプは、新しい壁面スイッチに対応する発生データとともに別のイベントレポートメッセージを受信してからトリガーパターンMD2を生成し得る。たとえば、新しい壁面スイッチは、「オフ」から「オン」にトグルし、関係するイベントレポートメッセージをフロアランプに送信して、フロアランプがイベントレポートメッセージに基づいてトリガーパターンMD2を生成することを引き起こし得る。トリガーパターンMD2はReflexF1に対応し、トリガー重みはそのトリガー閾値よりも高いと、フロアランプはアクションパターンMD3を生成し得る。フロアランプは、その後、結果としてランプがそのライトをオンにすることを引き起こす対応するアクションイベントを生成し得る。ライトがオンになった後、状態の変化が、センサーエンコーダによって記録されるものとしてよく、これは関連付けられているイベントを作成し、報酬パターンMD4を生成する。
[0144]時刻t=tWeightAdjust1において、報酬パターンMD4は、ReflexF1とReflexF2とに対するトリガー重みを調整するように処理され得る。ReflexF2に関してトリガーモード908に入っている間、フロアランプは、パターンMD4がReflexF2の報酬パターンとマッチしていると決定するものとしてよく、MD1およびReflexF2のトリガー重みを増加させ得る。新しいトリガー重みは第2のトリガー重みレベル922にあり、これは、依然としてトリガー重み閾値925より低くなっている。トリガーモード908がタイムアウトになった後、フロアランプは、モニターモード906に再び入ることができる。
[0145]t=tWeightAdjust2において、イベントに遭遇し、対応するパターンMD1と、MD2と、MD3(またはMD3’)と、MD4とを生成するプロセスが繰り返され、その結果、トリガー重み閾値925を超えて第3のトリガー重みレベル923にまで増加するようにReflexF2のトリガー重みを調整し得る。
[0146]ReflexF2のトリガー重みをトリガー重み閾値925よりも高く調整した後いつでも、フロアランプは、パターンMD1に対応するイベントに遭遇することがあり、その結果、ReflexF1をトリガーするのにパターンMD2に遭遇する必要なくアクションパターンMD3’が生成され得る。たとえば、新しい壁面スイッチの「オン」イベントに対応するパターンMD2を生成したときのみフロアランプがオンになった可能性がある前である。次に、壁面スイッチは、結果としてパターンMD1に対応するイベントを生成し、したがってフロアランプがReflexF2を介してそのライトをオンにするようにトリガーされることを引き起こし得る発生データを含むイベントレポートメッセージをフロアランプに送信することができる。
[0147]図10は、トリガー重み閾値1025より低くなるまでトリガー重みを調整することによってトリガーアクション関連付けを補正することを示すタイムライン図1000である。図1000は、補正イベントにフロアランプが遭遇することと、フロアランプがその後補正パターンを生成することを除き図900に類似している。この補正パターンは、リフレックスのトリガー重みを減少させる。図900と異なり、図1000の補正プロセスは、ただ1つのリフレックスを伴い得る。ここで、ReflexF2のみが関わり、図900のように、同じトリガーパターンMD1と、アクションパターンMD3と、報酬パターンMD4と、補正パターンMD5とを含む。また図900とは異なり、図1000におけるReflexF2は、トリガー重み閾値1025よりも高い1023の初期トリガー重みから始まり得る。したがって、トリガーパターンMD1を生成した後に、フロアランプは、対応するアクションパターンと関連付けられているアクションとを生成し得る。
[0148]時刻t=t0において、フロアランプは、モニターモード1006においてイベントを監視し得る。モニターモード1006において、フロアランプは、トリガーパターンMD1に対応するトリガーイベントに遭遇し得る。たとえば、新しい壁面スイッチは、新しい壁面スイッチが「オフ」から「オン」にトグルされたので、「オン」イベントに関係する、パターンMD1に対応する、発生データとともにイベントレポートメッセージをブロードキャストすることができる。イベントが受信されると、フロアランプは、対応するトリガーパターンを生成し得る。
[0149]時刻t=tTriggered1において、フロアランプは、オンイベントに関係するイベントレポートメッセージを受信し、パターンMD1を生成し得る。フロアランプは、パターンMD1がReflexF2に対応する知られているトリガーパターンであると決定し、したがって、ReflexF2に関してトリガーモード1008に入ることができる。その後すぐに、フロアランプは、ReflexF2に対する第1のトリガー重みレベル1023がトリガー重み閾値1025より高いと決定し、アクションパターンMD3を生成することができ、その結果、フロアランプがライトをオンにするアクションイベントおよび物理的アクションが生じる。フロアランプは、トリガーモード1008に入っている間に補正パターンMD5に対応するイベントにも遭遇し得る。たとえば、フロアランプは、ユーザがフロアランプ上の別の補正ボタン(たとえば、「Correction」というラベルが付いたボタン)を押したときにイベントに遭遇した後補正パターンMD5を生成し得る。ユーザは、このボタンを押して、補正イベントをフロアランプに送信し、それに応答して、フロアランプは、補正パターンMD5を生成し得る。代替的一例において、フロアランプは、ユーザが前のトリガーパターンの短い時間ウィンドウ内でフロアランプを手動でオフにしたときに補正パターンを生成し得る。前のトリガーパターンの反対の入力は、補正パターンに対応し、フロアランプは、トリガーパターンとアクションパターンとの関連付けを解除するように学習し得る。
[0150]時刻t=tCorrection1において、フロアランプは、補正パターンMD5がReflexF2の補正パターンとマッチしていると決定することができる。したがって、フロアランプは、ReflexF2に関連付けられているトリガー重みを第2のトリガー重みレベル1022にまで下げることができる。第2のトリガー重みレベル1022はまだトリガー重み閾値1025より高く、そのため、フロアランプはライトをそのままアクティブ化することができる。最終的に、トリガーモード1008は、時間の制約によって終了し、フロアランプは、モニターモード1006に再び入り得る。
[0151]モニターモード1006に入っている間に、フロアランプは、第2のトリガーイベントに遭遇し、第2のトリガーパターンMD1を生成し得る。たとえば、新規壁面スイッチは、再び、「オフ」から「オン」にトグルされ得る。時刻t=tTriggered2において、フロアランプは、第2のパターンMD1がReflexF2の知られているトリガーパターンとマッチすると決定し、ReflexF2に関してトリガーモード1008に入ることができる。ReflexF2が現在トリガー重み閾値1025よりも高い第2のトリガー重みレベル1022を有しているので、フロアランプは、アクションパターンMD3と関連付けられている機械的アクション(たとえば、ライトをオンにする)を生成し得る。フロアランプが、ReflexF2でトリガーモード1008に入っている間、フロアランプは、再び、補正ボタンからの補正イベントに遭遇し、補正パターンMD5を生成することができる。パターンMD5は、ReflexF2に対応しているので、時刻t=tCorrection2において、トリガー重みは、第3のトリガー重みレベル1021に下げられるが、これはトリガー重み閾値1025よりも低い。したがって、時刻t=tTriggered3においてフロアランプが別のトリガーイベントに遭遇し、別のトリガーパターンMD1を生成する場合、フロアランプは、トリガーモード1008において対応するアクションパターンMD3を生成しないことができる。言い換えれば、フロアランプはReflexF2のトリガーアクション関連付けを事実上忘れてしまっている可能性があり、将来トリガーパターンMD1を生成した後(または少なくともトリガーパターンへのその仕方に応答するように再トレーニングされるまで)そのライトをアクティブ化しないことがあり得る。
[0152]いくつかの実施形態では、その関連付けトリガー重み閾値よりも低いトリガー重みは、報酬パターンに遭遇することなくフロアランプがトリガーモードに入ったことに応答して継続的に下げられ得る。たとえば、図10では、時刻tTriggered3において、フロアランプは、その後の報酬パターンなしでトリガーパターンMD1を検出することができ、結果として、時刻t=tSubthreshold1において示されているようにフロアランプはReflexF2に対するトリガー重みを第4のトリガー重みレベル1019に減少させ続け得る。いくつかの実施形態では、リフレックスのトリガー重みは、トリガー重みがその関連付けられているトリガー重み閾値より低くなり、報酬パターンに遭遇しないと、時間の経過とともに周期的に減少(または減衰)させられ得る。
[0153]いくつかの実施形態では、フロアランプは、そのトリガー重みがトリガー重み閾値1025よりも低くなり、メモリ不足が生じた後ただちに、またはしばらくしてからReflexF2を取り除くことができる。したがって、フロアランプが、ReflexF2が削除された後にReflexF2のトリガーパターン(MD1)を検出した場合、フロアランプは、他の条件が満たされていると仮定して(たとえば、トリガーモードにおいて存在している報酬を有する)そのトリガーパターンとしてパターンMD1を有する新しいリフレックスを作成し得る。いくつかの実施形態では、フロアランプは、メモリ不足(たとえば、記憶されているリフレックスに対してメモリ限界に達したこと)により関連付けられている閾値よりも高いトリガー重みを有するリフレックスを取り除くことができる。たとえば、フロアランプが、トリガーモードにおいて新しいトリガーパターンに遭遇したが、ローカルメモリに利用可能な記憶領域を有していないときに、フロアランプは、トリガー閾値よりも高いトリガー重みを有するが、あまり使用されない、使用される可能性が最も低い、および/またはトリガー重みがそれぞれのトリガー重み閾値を超えるすべてのリフレックスの最低のトリガー重みを有する、記憶されているリフレックスを取り除くことができる。
[0154]図11は、イベントに関連付けられているアクションを学習するためスマートボックス内に実装され得る一実施形態の方法1100を示している。この実施形態の方法1100は、どのようなスマートボックスとも使用され得るけれども、説明を簡単にするため、方法1100は、壁面スイッチに接続されているスマートボックスからイベントレポートメッセージを受信するフロアランプに接続されているスマートボックスの例を参照しつつ説明されている。それに加えて、フロアランプ、壁面スイッチ、またはステレオへの参照は、対応するスマートボックスもそれぞれ包含する。たとえば、フロアランプによって実行されるものとして説明されているオペレーションは、フロアランプに関連付けられているスマートボックスのプロセッサによって実行され得る。これらのスマートボックスは、実際には、イベントレポートメッセージ内の発生データを交換するオペレーションと、イベントおよび/またはパターンを処理するオペレーションとを実行する。
[0155]ブロック1102において、フロアランプはイベントを取得し得る。たとえば、フロアランプは、壁面スイッチからRF送信上で発生データを含むイベントレポートメッセージを受信することができ、イベントレポートメッセージ内のデータに基づいて、フロアランプは、図3Bを参照しつつ上で説明されているようなデータ構造としてイベントを生成し得る。そのような一例において、イベントレポートメッセージは、ユーザが壁面スイッチを「オフ」から「オン」にトグルしたときに壁面スイッチによって送信され得る。上で説明されているように、フロアランプは、代替的に、フロアランプに結合されたセンサー(たとえば、光センサーなど)に基づいて、および/またはアクションを実行したこと応答して、イベントを取得し得る。時間の経過とともに、方法1100および1200のオペレーションのその後の繰返しにおいて、フロアランプは、取得されたイベントに関係する場合もない場合もある追加の要素を取得し得る。たとえば、取得されてイベントに基づいてトリガーモードをアクティブ化した後、フロアランプは、受信されたイベントレポートメッセージおよび/またはフロアランプによって実行されたアクションに応答して生成されたイベントなどの、取得され、メモリ内に記憶された以前のイベントを取り出すことによって追加のイベントを取得し得る。
[0156]決定ブロック1104において、フロアランプは、イベントフィルタが適用されるかどうかを決定することができる。イベントフィルタは、時間フィルタ、タイプフィルタ、デバイスイベントフィルタなどを含み得る。イベントフィルタが適用されることを決定したことに応答して(決定ブロック1104=「はい」)、フロアランプは、ブロック1106においてさらなる処理からイベントを破棄し、ブロック1102において新しく入ってくる信号を監視し続けることができる。いくつかの実施形態では、イベントフィルタが時間ベースのフィルタである場合、日中にイベントを破棄する所定のされたスケジュールがあってよい。たとえば、ステレオは、真夜中の時間から午前10時までに取得されたイベントを無視する時間フィルタを有することができる。別の例では、フロアランプのところのイベントフィルタは、単に、ステレオからの取得されたすべてのイベントを無視し得る。さらなる例では、ステレオは、特定のユーザに関連付けられている取得されてイベントを無視し得る。いくつかの実施形態では、壁面スイッチは、入力されたユーザID(たとえば、指紋データ、パスコード、Bluetoothまたは近距離通信(NFC)からの付近のモバイルデバイスのデータなど)を受信し、そのユーザIDをイベントレポートメッセージ内の発生データに含めることができる。ステレオを所有する父親は、自分のステレオを自分以外の誰かに壁面スイッチでオンにしてもらいたくない場合がある。したがって、ステレオは、取得されたすべてのイベントを、それらが父親のユーザIDを含まない場合に破棄し、それによって、他人が壁面スイッチでステレオをオンにするのを防ぐことができる。しかしながら、イベントフィルタが適用されない場合(すなわち、決定ブロック1104=「いいえ」)、フロアランプは、メモリ138(図1Cに示されている)に配置されているバッファ内にイベントを記憶し得る。
[0157]イベントフィルタが適用されないと仮定すると、フロアランプは、ブロック1108においてメモリ138に配置されているバッファ内にイベントを記憶し得る。イベントはバッファまたはメモリに記憶されることで、フロアランプがモニターモードに入っている間にイベントレコーダー206のところでパターンを生成することを円滑にし得る。言い換えれば、フロアランプは、モニターモードに入っている間にイベントの記憶を実行し得る。図示されていないけれども、フロアランプは、特定の時間期間(たとえば、5〜10秒)にメモリ内にイベントを一時的に記憶またはバッファリングし、次いで、イベントを破棄して新しいイベントのための領域をあけることができる。
[0158]ブロック1110において、フロアランプは、イベントがメモリ内に常駐していることに基づいてパターンを生成し得る。いくつかの実施形態では、フロアランプは、メモリ内に記憶されている様々イベントを取り出して組み合わせることなどによって、メモリ内に常駐する複数のイベントに基づいてパターンを生成し得る。たとえば、フロアランプは、2つの異なる壁面スイッチが「オン」位置に切り替えられたときに受信されるイベントレポートメッセージに基づいて生成された2つのイベントに基づいてパターンを生成しているものとしてよい。パターンは、次の4つの方法の1つによって生成され得る、すなわち、(1)イベントの時間順序のシーケンスに基づくこと、(2)複数のイベントをシングレットに圧縮すること、(3)発見的手法、および(4)パターン生成においてイベントから時間を取り除くことによって生成され得る。
[0159]イベントの時間順序のシーケンスに基づいてパターンを生成するときに、イベントが生成されるか、または他の何らかの形で取得される時間が問題になり得る。したがって、イベントが特定の時間ウィンドウ内で生成されない場合、フロアランプは、イベントに基づいてパターンを生成しないことがあり得る。たとえば、フロアランプは、壁面スイッチに関係する「オン」イベントおよびステレオに関係する「オン」イベントと同等のトリガーパターンを有することができる。フロアランプが、時間ウィンドウ内で壁面スイッチに関係する「オン」イベントを取得するが、時間ウィンドウの外でステレオに関係する「オン」イベントが取得された場合、フロアランプは、トリガーイベントを認識しないことがあり得る。いくつかの実施形態では、パターンは、イベントAがイベントBの前に取得される場合にのみ生成され得る。たとえば、フロアランプが、壁面スイッチの「オン」イベントの前にステレオの「オン」イベントを取得した場合、壁面スイッチのイベントが最初に取得されたときにのみフロアランプがトリガーパターンを受け付けるので、フロアランプはこれらのイベントをトリガーパターンとして認識しないことがあり得る。
[0160]いくつかの実施形態では、複数のイベントが、単一のイベントまたはシングレットに圧縮され得る。たとえば、フロアランプは、ランプイベントバッファまたはメモリに記憶されている、異なる時刻における2つの「A」イベント、次いで「B」イベントを取得し得る。フロアランプは、第2の「A」イベントを破棄して、1つの「A」イベントと1つの「B」イベントとに基づいてパターンを生成し得る。したがって、2つの「A」イベントと1つの「B」イベントとを有するトリガーパターンは、1つの「A」イベントと1つの「B」イベントとを有するトリガーパターンに圧縮され得る。「A」イベントは、異なる時刻に繰り返されるので、フロアランプは、繰り返されるイベントを無視することができる。
[0161]いくつかの実施形態では、フロアランプは、一連の発見的計算を実行して、イベントを無視するかどうかを決定することができる。これらの発見的計算のいくつかは、単に、カウントするメカニズムを含み得る。たとえば、フロアランプは、「A」イベントを3回受信したか(たとえば、壁面スイッチに関係する「オン」イベント)を決定することができ、その時点で、フロアランプは、3つの「A」イベントを受信することはトリガーパターンを生成することと同じであるという発見的ルールに基づいてトリガーパターンなどの対応するパターンを生成し得る。
[0162]いくつかの実施形態では、フロアランプは、イベントからパターンを作成する時刻を無視することができる。時刻を無視することは、発見的計算と同時に起こってよい。たとえば、フロアランプがメモリ138において3つの「A」イベントと1つの「B」イベントとを受信した場合、フロアランプは、一連の発見的計算を実行して時間ウィンドウなしでイベントに基づいてパターンを生成するかどうかを決定することができる。時刻を無視することは、順序独立であることも含み得る。たとえば、フロアランプは、まず「A」イベント、続いて「B」イベントを取得するか、または「B」イベント、続いて「A」イベントを取得するかどうかに関係なく同じパターンを作成し得る。
[0163]決定ブロック1112において、フロアランプは、パターンフィルタを適用するどうかを決定することができる。これは、決定ブロック1104を参照しつつ説明されているイベントフィルタに類似するものであってよく、これは記憶されている無視パターン、時間ベースのフィルタ、デバイスタイプフィルタなどを含み得る。フロアランプは、パターンが時間閾値などの閾値よりも低くなったときにパターンフィルタを使用してパターンをメモリ(たとえば、32Kメモリ、64Kメモリなど)から取り除くことができる。フロアランプがパターンフィルタが適用されることを決定したことに応答して(すなわち、決定ブロック1112=「はい」)、フロアランプは、パターンを破棄し、ブロック1113においてそのパターンのさらなる処理を止めることができる。いくつかの実施形態では、フロアランプは、最近実行されたアクションに対して生成されたパターンをフィルタリングし得る。たとえば、フロアランプがオンになったときに、フロアランプは、イベントからアクションパターンを生成することができる。アクションパターンが、一定の時間期間において無視されなかった場合、フロアランプは、アクションパターンを別のアクション(たとえば、ステレオをオンにする)へのトリガーパターンとして処理しようと試み得る。新しいトリガーアクション関連付けの作成を回避するために、フロアランプは、フロアランプが短い時間期間において生成されたアクションパターンを無視する一時的無視パターンフィルタを作成し得る。フロアランプがパターンを破棄した後、フロアランプはブロック1102において新しいイベントを取得することに戻る。いくつかの実施形態では、フロアランプは、ブロック1102において、イベントを絶えず取得し得る。
[0164]いくつかの実施形態では、フロアランプは、パターンのトリガー重みまたは対応するリフレックスが低閾値よりも低い場合にパターンフィルタを適用することができる。パターンフィルタを適用することによって、フロアランプは、特定のリフレックスの閾値が特定の設定値よりも低いときにそのメモリからパターンを削除することができるものとしてよい。フロアランプは、本出願全体を通して説明されている補正プロセスを通じてリフレックスのトリガー重みを低減することができる。パターンを取り除くことで、フロアランプが新しいリフレックスの作成のためリソース(たとえば、メモリ)を節約することを可能にし得る。いくつかの実施形態では、フロアランプは、利用可能なローカルの記憶装置に関係なく、ユーザが与えられた時刻にフロアランプの学習能力に関して混乱する可能性が低くなるように所定の限られた数のリフレックス(たとえば、ランプ1つにつきリフレックス2つ)を利用するように構成され得る。記憶されるリフレックスに対するそのような限界は、記憶されるリフレックスおよびパターンがより少ないことで比較される必要があり得るパターンの数を減らすことによってパターンマッチング速度を改善するなどによって性能改善するという追加の利点も有し得る。
[0165]決定ブロック1112に戻って参照すると、パターンフィルタが適用されないことを決定したことに応答して(すなわち、決定ブロック1112=「いいえ」)、フロアランプは、決定ブロック1114において生成されたパターンが知られているパターンとマッチしているかどうかを決定し得る。たとえば、フロアランプは、受信されたイベントが時間ベースのフィルタの時間ウィンドウ内にあると決定し得る。そこで、フロアランプは、イベントをパターンとして処理し続ける。フロアランプは、生成されたパターンが、知られているトリガーパターン、知られている補正パターン、知られている報酬パターンなどの、任意の種類の知られているパターンであるかどうかを決定し得る。
[0166]一例として、決定ブロック1114において、フロアランプは、生成されたパターンが、図6を参照しつつ上で説明されているリフレックス「ReflexF1」に対するトリガーパターン「MD2」などの、リフレックスの知られているトリガーパターンに対応するかどうかを決定し得る。生成されたパターンが知られているパターンとマッチすると決定したことに応答して(すなわち、決定ブロック1114=「はい」)、フロアランプは、図12を参照しつつ以下で説明されている決定ブロック1202のオペレーションを実行し得る。たとえば、フロアランプは、少なくとも1つのイベントがリフレックスに関連付けられているトリガーパターンに対応するときにリフレックスに関係するトリガーモードに入り、リフレックスに関連付けられているアクションを実行することができる。
[0167]しかしながら、生成されたパターンが知られているパターンにマッチしていないと決定したことに応答して(すなわち、決定ブロック1114=「いいえ」)、フロアランプは、決定ブロック1116において新しいリフレックスを作成するかどうかを決定し得る。たとえば、図7のシナリオにおいて上で説明されているように、生成されたパターンは、知られているパターンに対応していないパターン「MD1」であり得(すなわち、ReflexF2はまだ作成されていない)、したがってフロアランプは、パターンMD1を有する新しいリフレックスをその新しいトリガーパターンとして作成すべきかどうかを決定し得る。フロアランプは、未知のパターンが検出されたかどうかと、リフレックスがトリガーモードに入っているかどうかの両方に基づいて新しいリフレックスが作成されるべきかどうかを決定することができる。
[0168]フロアランプが新しいリフレックスを作成しないことを決定したことに応答して(すなわち、決定ブロック1116=「いいえ」)、フロアランプは、ブロック1113において生成されたパターンを破棄し、ブロック1102において新しいベントを監視することを開始し得る。いくつかの実施形態では、フロアランプは、フロアランプが新しい関連付けを学習することができない非学習モードに切り替えられ、それによって、新しいリフレックスを作成する能力を無効化することができる。たとえば、フロアランプは、壁面スイッチがオン/オフイベントに関連付けられているイベントレポートメッセージを送信したときにライトをオン/オフにすることをすでに学習している場合がある。ユーザは、この単純なオン/オフ関連付けに満足し、フロアランプによる追加の学習を無効化することができる。そのため、フロアランプは、ステレオまたは他の学習デバイスのところでの発生(たとえば、電源オンなど)との追加の関連付けを学習しないことができる。他の実施形態では、フロアランプは、新しいリフレックスを学習することを避けるための他の考慮事項(たとえば、十分なメモリがない、トリガーモードがタイムアウトした、など)を有し得る。
[0169]フロアランプが新しいリフレックスを作成することを決定したことに応答して(すなわち、決定ブロック1116=「はい」)、フロアランプは、ブロック1118において新しいパターンを新しいリフレックスに対するトリガーパターンとして記憶することができる。新しいリフレックスは、所定のアクションパターンと、報酬パターンと、補正パターンにより作成され得る。したがって、ブロック1119において、フロアランプは、現在トリガーモードに入っているリフレックスから、新しいリフレックスに、アクションパターンと、報酬パターンと、補正パターンとをコピーし得る。たとえば、上記の図6に示されているように、フロアランプは、新しいパターンMD1を含むReflexF2をトリガーパターンとして作成し、他の知られているReflexF1のみからアクションパターンと、報酬パターンと、補正パターンとをコピーすることができる。代替的な一例において、フロアランプは、トリガーモードで他の記憶されているリフレックスからパターンを取り出すことによって新しいリフレックスを作成し得る。
[0170]すでに指摘されているように、フロアランプは、トリガーモードに入っている間に追加のイベントを取得することができ、そのような追加のイベントは、異なるトリガーに関連付けられるか、または相関され得る。フロアランプは、これらの追加のイベントに基づいてパターンを識別するか、またはパターンとメモリに記憶されているリフレックスのパターンとのマッチングを行うことを試み得る。しかしながら、これらの追加のイベントに基づくパターンは、記憶されているリフレックスの知られているパターンに対応しないことができ、フロアランプは、新しいリフレックスを作成することを決定し得る。言い換えれば、フロアランプは、追加のイベントに基づくパターンがリフレックスに関連付けられているトリガーパターン、アクションパターン、補正パターン、および報酬パターンの少なくとも1つに対応しないときに、トリガーパターンと、アクションパターンと、補正パターンと、報酬パターンにより第2のリフレックスを作成し得る。
[0171]図12は、図11からのマッチしたパターンの継続処理の一実施形態の方法1200を示している。上で説明されているように、生成されたパターンが知られているパターンにマッチしていると決定したことに応答して(すなわち、図11の決定ブロック1114=「はい」)、フロアランプは、決定ブロック1202において生成されたパターンがリフレックスの知られているトリガーパターンとマッチするかどうかを決定し得る。たとえば、フロアランプは、壁面スイッチの「オン」イベントに基づいて生成されたパターンが、記憶されているリフレックスの知られているトリガーパターンとマッチしている(たとえば、パターンMD1が図6に示されているReflexF2に対するトリガーパターンとマッチしている)かどうかを決定することができる。フロアランプが生成されたパターンが知られているトリガーパターンとマッチすると決定したことに応答して(すなわち、決定ブロック1202=「はい」)、フロアランプは、ブロック1203において生成されたパターンとマッチする知られているトリガーパターンに関連付けられているリフレックスに対するトリガーモードをアクティブ化する(または、「オン」にする)ことができる。トリガーモードをアクティブ化することで、リフレックスに関連付けられているモニターモードを非アクティブ化することができる。フロアランプは、他のリフレックスに関連付けられている他のイベントなどの、リフレックスに関係するトリガーモードに入っている間に追加のイベントを受信し、識別することができ、これにより、同時にアクティブ化されたトリガーモードを引き起こすことに注意されたい。
[0172]フロアランプは、決定ブロック1204においてマッチしているパターンのリフレックスのトリガー重みがトリガー閾値以上かどうかを決定し得る。引き続き図11の例によれば、フロアランプは、生成されたパターンMD1が最近作成されたReflexF2の知られているトリガーパターンとマッチしていると決定し、ReflexF2に対する現在の記憶されているトリガー重みをそれぞれのトリガー閾値と比較し得る。決定ブロック1204において、フロアランプは、トリガー重みが閾値以上であるかどうかを決定することができる。トリガー重みが閾値以上であると決定したことに応答して(すなわち、決定ブロック1204=「はい」)、フロアランプは、マッチしているトリガーパターンのリフレックスを使用してフロアランプが所定のアクションを行うか、または実行することを引き起こすパターンもしくはその結果生じるイベントを生成することなどによって、ブロック1216においてアクションを生成し得る。たとえば、フロアランプは、ReflexF2のトリガー重みが、図9に示されているようにトリガー重み閾値925より高い場合にライト124をオンにすることができる。様々な実施形態において、アクションを生成することは、さらに外部的に、または内部的に伝搬され得る、またアクチュエータを駆動するためにモーター駆動装置によって使用されるイベントのパターンを生成することを含み得る。
[0173]いくつかの実施形態では、フロアランプは、トリガーされたときに限られた数のアクションを生成するように構成され得る。たとえば、フロアランプは、1つのトリガーモードにおいて1つのアクションのみの生成を、そのトリガーモードで受信されたトリガーパターンの数に関係なく行うことができる。
[0174]オプションのブロック1217において、フロアランプは、生成されたアクション(またはその結果のイベント)を示す発生データを含むブロードキャストメッセージなどの、生成されたアクションに基づくイベントレポートメッセージをブロードキャストし得る。フロアランプが、マッチしたトリガー重みがリフレックスに対するトリガー閾値以上でないと決定したことに応答して(すなわち、決定ブロック1204=「いいえ」)、またはブロック1216におけるオペレーションによりアクションが生成され、オプションのブロック1217におけるオペレーションによりブロードキャストが行われる場合、フロアランプは、以下で説明されている決定ブロック1220におけるオペレーションを実行することができる。
[0175]フロアランプが生成されたパターンが知られているトリガーパターンにマッチしていないと決定したことに応答して(すなわち、決定ブロック1202=「いいえ」)、フロアランプは、決定ブロック1206においてフロアランプが学習することを許されているかどうかを決定し得る。たとえば、フロアランプは、トリガーパターン(たとえば、MD1)をすでに処理している場合があり、現在は、トリガーモードに入っている間に生成された報酬パターンおよび補正パターンを監視している。したがって、フロアランプは、トリガーパターンを受信し、関連付けられているリフレックスに対するアクティブ化されたトリガーモードに入った後まもなく、報酬イベントを取得し、対応する報酬パターン(たとえば、MD4)を生成し得る。
[0176]フロアランプが学習することを許されていないと決定したことに応答して(すなわち、決定ブロック1206=「いいえ」)、フロアランプは、以下で説明されている決定ブロック1220におけるオペレーションを実行し得る。たとえば、フロアランプは、トリガーパターン(たとえば、MD1)に関連付けられている新しいアクションを学習/学習解除するためにトリガーパターンを生成した後5秒の指定された時間ウィンドウを有し得る。報酬パターンまたは補正パターンが5秒のウィンドウ内で生成される限り、フロアランプは、トリガーパターン(たとえば、MD1)でアクションを学習/学習解除し得るが、フロアランプは、受信された報酬/補正パターンが5秒の時間ウィンドウの外にある場合に新しい関連付けを学習すること、または古い関連付けを学習解除することを実行しないことができる。別の例では、フロアランプは、単純に関連付けられているリフレックスが学習解除状態にあるか、または関連付けられているリフレックスが学習または学習解除し得ない静的リフレックスであるという理由により学習することができない場合があり得る。
[0177]しかし、フロアランプが、リフレックスのアクショントリガー関連付けに関して学習することを許されていると決定した場合(すなわち、決定ブロック1206=「はい」)、決定ブロック1208において、フロアランプは、生成されたパターンが報酬パターンとマッチしているかどうかを決定し得る。いくつかの実施形態では、フロアランプは、学習時間ウィンドウ内で報酬パターンを受信するかまたは生成し得る。たとえば、ユーザは、壁面スイッチをスイッチオンし、フロアランプをオンにしてから5秒以内にフロアランプ上の報酬ボタンを押すことができる。フロアランプ上の報酬ボタンを押すことによって、報酬パターン(たとえば、図7に示されているようなパターンMD4)を生成し得る。代替的な一例において、ユーザは、壁面スイッチをオンにしてから5秒以内にフロアランプに取り付けられているランプスイッチ126をオンにし、フロアランプがランプがアクティブ化したときに報酬パターン(たとえば、MD4)を生成し、フロアランプがオンになったことを確認することを引き起こし得る。
[0178]いくつかの実施形態では、フロアランプは、モニターモードに入っているか、またはトリガーモードに入っているかに基づいて学習することを許され得る。たとえば、特定のリフレックスに対するモニターモードに入ったときに、フロアランプは、そのリフレックスに関して学習することを許されないが、学習することは、リフレックスのトリガーモードに入っているときに許され得る。いくつかの実施形態では、1つまたは複数のリフレックスは、フロアランプの全体的状態または構成などの、他の要因により学習することを許され得る。たとえば、フロアランプは、様々なリフレックスがテストされ得るアクティブデバッグモードなどの、システム設定により学習することを許さないように構成され得る。
[0179]フロアランプが、生成されたパターンが報酬パターンとマッチすると決定した場合(すなわち、決定ブロック1208=「はい」)、ブロック1212aにおいて、フロアランプは、関連付けられているリフレックスのトリガー重みを調整することができる。いくつかの実施形態では、フロアランプは、トリガー重みを増加させることによって適切なリフレックスに関連付けられているトリガー重みを調整し得る。たとえば、フロアランプが、トリガーパターン(たとえば、MD1)に遭遇してからの5秒の学習時間ウィンドウ内でパターン(たとえば、MD4)を受信するかまたは生成する場合、フロアランプは、トリガーパターンのリフレックスのトリガー重みを増加させることができる。トリガー重みが調整された後、ブロック1214において、フロアランプは、調整されたトリガー重みをメモリ138に記憶することができ、フロアランプは、以下で説明されているように決定ブロック1220におけるオペレーションを実行することができる。
[0180]いくつかの実施形態では、フロアランプは、ブロック1212aにおけるオペレーションを実行した後に決定ブロック1210におけるオペレーションも適宜実行し得る。言い換えれば、フロアランプは、決定ブロック1208の決定に関係なく、学習することを許されていると決定したことに応答して(すなわち、決定ブロック1206=「はい」)、決定ブロック1208において報酬パターンがマッチしたかどうかと、決定ブロック1210において補正パターンがマッチしたかどうかの両方を評価するように構成され得る。言い換えれば、報酬および補正のマッチは、フロアランプによって並行してチェックされ得る。
[0181]フロアランプが生成されたパターンが知られている報酬パターンにマッチしていないと決定した場合(すなわち、決定ブロック1208=「いいえ」)、フロアランプは、決定ブロック1210において補正パターンのマッチをチェックし得る。いくつかの実施形態では、フロアランプは、学習時間ウィンドウ内で補正パターンを受信するかまたは生成し得る。たとえば、ユーザは、壁面スイッチをスイッチオンし、フロアランプをオンにしてから5秒以内にフロアランプ上の補正ボタンを押すことができる。補正ボタンを押すことによって、フロアランプは、補正パターン(たとえば、図7に示されているようなパターンMD5)を生成し得る。代替的な一例において、ユーザは、壁面スイッチをオンにしてから5秒以内にフロアランプに取り付けられているランプスイッチ126をオフにし、フロアランプがライト124をオフにしたときにフロアランプが補正パターン(たとえば、MD4)を生成することを引き起こし得る。
[0182]フロアランプが、生成されたパターンが知られている補正パターンとマッチすると決定した場合(すなわち、決定ブロック1210=「はい」)、フロアランプは、ブロック1212bにおいてトリガー重みを調整することができる。いくつかの実施形態では、フロアランプは、学習時間ウィンドウ内で補正パターンを受信した後にトリガー重みを減少させ得る。たとえば、フロアランプは、ユーザが壁面スイッチの「オン」イベントに関連付けられているトリガーパターン(たとえば、MD1)を生成して5秒以内にフロアランプのランプスイッチ126を「オフ」にするときに補正パターン(たとえば、パターンMD5)を生成することができる。フロアランプは、ReflexF2の補正パターンとして生成されたパターン(MD5)とマッチし、ReflexF2に関連付けられているトリガー重みを小さくすることができる。ブロック1214において、フロアランプは、調整された重みをメモリ138に記憶することができ、フロアランプは、以下で説明されているように決定ブロック1220におけるオペレーションを実行することができる。言い換えれば、フロアランプは、少なくとも1つの追加のイベントがリフレックスに関連付けられている補正パターンおよび報酬パターンの少なくとも一方に対応するときにリフレックスの1つまたは複数のトリガー重みを調整し得る。
[0183]フロアランプが生成されたパターンが補正パターンとマッチしないと決定したことに応答して(すなわち、決定ブロック1210=「いいえ」)、またはフロアランプがマッチしたトリガー重みがトリガー閾値以上ではないと決定したことに応答して(すなわち、決定ブロック1204=「いいえ」)、またはフロアランプが学習することを許されていないと決定したことに応答して(すなわち、決定ブロック1206=「いいえ」)、またはフロアランプがブロック1217または1214のオペレーションを実行したことに応答して、フロアランプは、ブロック1203におけるオペレーションでアクティブ化されたトリガーモードに入るので失効した持続時間に基づくなどして決定ブロック1220においてモニターモードに戻るかどうかを決定し得る。トリガーモードを非アクティブ化することで、リフレックスに関連付けられているモニターモードをアクティブ化することができる。フロアランプがモニターモードに戻るべきと決定したことに応答して(すなわち、決定ブロック1220=「はい」)、フロアランプは、ブロック1222においてリフレックスに対するトリガーモードを非アクティブ化することができる。フロアランプがモニターモードに戻るべきでないと決定したことに応答して(すなわち、決定ブロック1220=「いいえ」)、またはブロック1222のオペレーションが実行されたときに、フロアランプは、図11を参照しつつ上で説明されているように方法1100のブロック1102においてイベントを取得することを続け得る。
[0184]図6にシナリオに基づく例として、壁面スイッチは、フロアランプによって受信される新しい発生データとともに新しいイベントレポートメッセージを送信し得る(たとえば、壁面スイッチの「オン」イベント)。フロアランプは、受信された新しいイベントレポートメッセージに基づいてイベントに関連付けられている第1のパターン(たとえば、パターンMD1)を生成するまでブロック1102、1104、1108、および1110のオペレーションを実行し得る。同じ時間ウィンドウ内で、フロアランプは、他の発生データに基づいて第2のパターン(たとえば、パターンMD2)を生成し、図11を参照しつつ上で説明されているようなブロック1102〜114および図12を参照しつつ上で説明されているようなブロック1202、1203、1204、1216におけるオペレーションにより第2のパターンを処理し得る。フロアランプは、これらのオペレーションに基づいて第2のパターンに関連付けられている第2のリフレックス(たとえば、ReflexF1)をトリガーモードにすることができる。
[0185]次いで、フロアランプは、受信された新しいイベントレポートメッセージに基づいてイベントに関連付けられている第1のパターン(たとえば、パターンMD1)を生成するまで図11を参照しつつ上で説明されているようなブロック1102、1104、1108、および1110におけるオペレーションを実行し得る。フロアランプは、図11を参照しつつ上で説明されているようなブロック1112、1114、1116、1118、1119のオペレーションを実行することと、第1のパターンをトリガーパターン(たとえば、パターンMD1)として第1のリフレックス(たとえば、ReflexF2)を作成することと、第2のリフレックスがトリガーモードに入っているので第2のリフレックス(たとえば、ReflexF1)からそのアクションパターンと、報酬パターンと、補正パターンとをコピーすることとによって新しいパターンを処理することを続け得る。
[0186]フロアランプが、その後、同じイベントを取得し、壁面スイッチから受信された他のデータに基づいて第1のパターン(たとえば、パターンMD1)を生成する場合、フロアランプは、図11を参照しつつ上で説明されているようなブロック1102、1104、1108、1110、1112、および1114のオペレーションで第1のリフレックスを参照して第1のパターンを処理することができる。決定ブロック1114において、フロアランプは、壁面スイッチに関連付けられているパターンがメモリに記憶されている第1のリフレックス(たとえば、ReflexF2)のトリガーパターンとして現在知られているので、壁面スイッチに関連付けられている生成されたパターン(たとえば、パターンMD1)は知られているパターンとマッチすると判定し得る。そこで、フロアランプは、壁面スイッチの「オン」イベントに対する生成されたパターンの処理を継続するために図12を参照しつつ上で説明されているオペレーションを実行し続け得る。
[0187]この例を続けると、フロアランプは、新しい壁面スイッチイベントからマッチした第1のパターン(MD1)を処理し、マッチしたパターンがトリガーパターンマッチであると決定し(すなわち、決定ブロック1202=「はい」)、第1のリフレックス(たとえば、ReflexF2)に対するトリガーモードをアクティブ化することができる。しかしながら、第1のリフレックス(たとえば、ReflexF2)に対するトリガー重みは、そのトリガー閾値よりも低い場合があり、その場合、フロアランプは、ブロック1216においてアクションを生成しないが、他のイベント/パターンを監視することを続け得る。その一方で、フロアランプは、ランプスイッチ126からの「オン」イベントなどの、異なるトリガーベントに遭遇し得る。フロアランプは、図11を参照しつつ上で説明されているような方法1100のブロック1102、1104、1108、および1110を通じてランプスイッチ126からのオンイベントを処理し、ランプスイッチ126のオンイベントに関連付けられている第2のパターン(たとえば、パターンMD2)を生成し得る。フロアランプは、図11と図12とを参照しつつ上で説明されているようなブロック1112、1114、および1202のオペレーションを通じてオンイベントパターンを処理することを続け得る。方法1200の決定ブロック1202において、フロアランプは、第2のパターン(MD2)が第2のリフレックス(ReflexF1)に対するトリガーパターンマッチであると決定し、決定ブロック1204において、第2のリフレックスに対するトリガー重みは、閾値より高いと決定し得る。その場合、第2のリフレックスのトリガー重みに基づいて、フロアランプは、図12を参照しつつ上で説明されているようなブロック1216においてアクションパターンと関連付けられているアクション(たとえば、ライトをオンにする)とを生成し得る。ライトをオンにすることによって、フロアランプは、図11を参照しつつ上で説明されているようなブロック1110において報酬イベントとその後の報酬パターン(たとえば、パターンMD4)とを生成し得る。フロアランプは、決定ブロック1208においてフロアランプが生成された報酬パターン(MD4)が第1のリフレックス(ReflexF2)の報酬パターンとマッチすると決定するまで上で説明されているような方法1100と1200とを通じて報酬パターンを処理することができる。フロアランプは、トリガー重みを増加させることと、調整をメモリ138に記憶することとによってReflexF2に関連付けられている重みを調整し、それによって、壁面スイッチでのオンイベントとフロアランプでのオンイベントとの間の関連付けを学習し得る。このプロセスは、第1のリフレックス(たとえば、ReflexF2)のトリガー重みが、図9に示されているようなトリガー閾値より高くなるまでフロアランプによって繰り返され得る。
[0188]図11と図12とを参照しつつ上で説明されている実施形態の方法は、イベントがある時間ウィンドウに対して取得されて記憶され、その時間ウィンドウにおいて任意の数のイベントが取得されるものとしてよく、記憶されたイベントを処理してマッチしているパターンを識別し、新しい相関またはリフレックスを学習することは複数のイベントとイベントおよびリフレックスの組合せとを包含し得るので、ある種の再帰アルゴリズムとして機能し得る。ユーザが実施形態のスマートボックスと学習デバイスとをトレーニングすることを可能にするためにこれらの実施形態がどのように機能し得るかをさらに開示するために、そのようなデバイスを実装するユーザアクションの次の例が提示されている。この例では、ユーザは、まだ互いに関連付けられていない、2つの学習デバイス、すなわち、壁面スイッチとフロアランプとをトレーニングする。説明を簡単にするため、フロアランプまたは壁面スイッチへの次の参照は、それらの関連付けられているスマートボックスを包含することを意図されている。
[0189]この例では、フロアランプおよび壁面スイッチの各々は、それらの関連付けられているスマートボックスのメモリに記憶されている事前定義されたリフレックスを有するものとしてよい。たとえば、壁面スイッチは、トリガーパターン「WT」と、アクションパターン「WA」と、補正パターン「WC」と、報酬パターン「WR」とを含み得るメモリに記憶されている事前定義されたリフレックスReflexWを有するものとしてよい。トリガーパターンWTは、ユーザが壁面スイッチを「オフ」から「オン」にトグルするトリガーイベントに対応し得る。ユーザが、壁面スイッチを「オフ」から「オン」にトグルしたときに、壁面スイッチは、イベントを生成し、さらには「オン」イベントに関係する発生データを含むイベントレポートメッセージをブロードキャストし得る。壁面スイッチの「オン」イベントに関係する生成されたイベントから、壁面スイッチ内に備えられているか、または結合されているスマートボックスが、トリガーパターンWTを生成し得る。最初に、アクションパターンWAは、スイッチをトグルするなどの日常の生活におけるアクションに対応していない可能性がある。その代わりに、WAは、単純に、将来のリフレックスにいつでも割り当てられるようになっているコンピュータコードであってよい。
[0190]補正パターンWCは、「Correction」というラベルが付けられている壁面スイッチ上のボタンに対応し得る。ユーザが補正ボタンを押すと、壁面スイッチは、補正イベントを生成し、さらには補正イベントを示す発生データとともに別のイベントレポートメッセージをブロードキャストし得る。生成された補正イベントから、壁面スイッチに関連付けられているスマートボックスは、補正パターンWCを生成し得る。報酬パターンWRは、ユーザが「Reward」というラベルが付けられている壁面スイッチ上の報酬ボタンを押すイベントに対応し得る。ユーザが報酬ボタンを押すと、壁面スイッチは、報酬イベントを生成し、さらには報酬イベントを示す発生データとともに別のイベントレポートメッセージをブロードキャストし得る。生成された報酬イベントから、壁面スイッチに関連付けられているスマートボックスは、報酬パターンWRを生成し得る。
[0191]同様に、フロアランプは、トリガーパターンMD1と、アクションパターンMD3と、補正パターンMD5と、報酬パターンMD4とを含み得るメモリに記憶されている事前定義されたリフレックスReflexF2を有することができる。トリガーパターンMD1は、ユーザがフロアランプのランプスイッチを「オフ」から「オン」にトグルするトリガーイベントに対応し得る。ユーザが、ランプスイッチを「オフ」から「オン」にトグルしたときに、壁面スイッチは、トリガーイベントを生成し、さらにはランプの「オン」イベントを示す発生データを含むイベントレポートメッセージをブロードキャストし得る。生成されたトリガーイベントから、フロアランプ内に備えられているか、または結合されているスマートボックスが、トリガーパターンMD1を生成し得る。アクションパターンMD3は、フロアランプがライトを「オフ」から「オン」にするイベントに対応し得る。補正パターンMD5は、フロアランプがトリガーモードに入っているときに「Correction」というラベルが付けられているフロアランプ上の追加のボタンに対応し得る。ユーザが補正ボタンを押すと、ランプは、補正イベントを生成し、さらにはランプの補正イベントを示す発生データとともにイベントレポートメッセージをブロードキャストし得る。生成された補正イベントから、フロアランプに関連付けられているスマートボックスは、補正パターンMD5を生成し得る。報酬パターンMD4は、ユーザがトリガーモードに入っている場合にフロアランプをオンにしたときに、報酬イベントを生成し、さらにはランプの報酬イベントを示す発生データとともにイベントレポートメッセージをブロードキャストすることに対応する。報酬イベントから、フロアランプに関連付けられているスマートボックスは、報酬パターンMD4を生成し得る。
[0192]壁面スイッチおよびフロアランプが最初にこの仕方で構成されている状態で、ユーザは、次のように壁面スイッチに応答してオンになるようにフロアランプをトレーニングすることができる。壁面スイッチが「オフ」位置にあり、フロアランプがオフにされている状態で、ユーザは壁面スイッチをオンにし、手動によるオペレーション(たとえば、デバイス上のスイッチを入れる)を介して即座にフロアランプをオンにすることがある。これら2つのアクションが短い時間期間(たとえば、5から10秒)内に遂行された場合、フロアランプに関連付けられているスマートボックスは、ランプオンリフレックスに関連付けられている重みを増加させることによってターンオンアクションを学習することを始めることができる。同様に、ユーザは、壁面スイッチをオフにし、即座にフロアランプをオフにすることによって壁面スイッチがオフにされたことに応答するようフロアランプをティーチングすることができる。ここでもまた、これら2つのアクションが短い時間期間(たとえば、5から10秒)内に遂行された場合、フロアランプに関連付けられているスマートボックスは、ランプオフリフレックスに関連付けられている重みを増加させることによってターンオフアクションを学習することを始めることができる。
[0193]そのようなトレーニングサイクルが1つでは十分でない場合があり(すでにトレーニング解除されているスマートボックスが単一のステップで第1のリフレックスイベント相関を学習するいくつかの実施形態の場合を除き)、したがって、ユーザは、壁面スイッチをオンにし、即座にフロアランプをオンにし、続いて少し間を置いて、壁面スイッチをオフにし、即座にフロアランプをオフにするプロセスを繰り返すものとしてよい。この一連のステップは、フロアランプに関連付けられているスマートボックスの学習ヒステリシス構成に応じて、3回またはそれ以上の回数、繰り返される必要があり得る。
[0194]2、3、またはそれ以上の繰返しの後、フロアランプに関連付けられているスマートボックスは、壁面スイッチのその後のトグルがフロアランプがしかるべくオンまたはオフになることを引き起こすようにランプオンおよびランプオフのリフレックスに関連付けられている重みを増加させている可能性がある。したがって、壁面スイッチのオン/オフイベントとフロアランプのオン/オフアクションとのこの望ましい相関をトレーニングするために、ユーザは、フロアランプがユーザが壁面スイッチをトグルしたことに応答してオンにすることを開始するまでこのプロセスを単純に繰り返すことができる。
[0195]ユーザによるこの一連のアクションは、壁面スイッチおよびフロアランプと関連付けられているスマートボックス内で次のアクションが生じることを引き起こす。壁面スイッチに関連付けられているスマートボックスが、「オフ」から「オン」へのトグルを感知したときに、壁面スイッチは、受信するブロードキャスト範囲(たとえば、100フィート)内のすべての学習デバイスに対してイベントレポートメッセージでブロードキャストされ得るトリガーイベントと関連付けられている発生データとを生成し得る。フロアランプに関連付けられているスマートボックスは、壁面スイッチのブロードキャスト範囲内にあり、イベントレポートメッセージを受信することができる。受信した後、フロアランプは、関係するイベントを生成し、メモリに記憶されているイベントフィルタが生成されたイベントのさらなる処理を妨げるかどうかを決定し得る。既定の状態では、フロアランプは、フィルタを生成されたイベントに適用しないことがあり得、したがって、フロアランプは生成されたイベントをメモリに記憶し得る。生成されたイベントに基づいて、フロアランプは、パターンMD2を生成し得る。
[0196]最初に、フロアランプは、ReflexF2に関連付けられているパターンをメモリに記憶しておくだけである(たとえば、MD1、MD3、MD5、およびMD4)。この例の目的のために、フロアランプは、パターンMD2を生成するのと同じ時間ウィンドウ内で、ReflexF2に対するトリガーパターン、パターンMD1を生成したことなどに応答して、ReflexF2に対するトリガーモード内にすでに入っていることが仮定される。生成されたパターンMD2がReflexF2のどのパターンともマッチしないので、生成されたパターンMD2は、新しいリフレックスに対するトリガーパターンとして使用され得る未知のパターンと考えられ得る。フロアランプは、未知の、またはマッチしていないパターンMD2で新しいリフレックスを作成するかどうかを決定し得る。フロアランプには、新しいリフレックスを作成しない異なる多くの理由があり得る。たとえば、フロアランプは、学習阻止モード(たとえば、保持モード)に入っているか、またはフロアランプは、特定のデバイスに関連付けられている特定のパターンからリフレックスを作成することを禁じられている場合がある(たとえば、フロアランプは、壁面スイッチに関連付けられているパターンからリフレックスを作成しない)。
[0197]この例では、フロアランプは、新しいリフレックスを作成することを阻止されていないので、フロアランプは、未知のパターンMD2をトリガーパターンとして、新しいリフレックスReflexF1を作成することができる。新しいリフレックスReflexF1は、完全なリフレックスとなるように、アクションパターンと、補正パターンと、報酬パターンとを含み得る。そこで、フロアランプは、メモリに記憶してあるアクションパターンと、補正パターンと、報酬パターンとを(たとえば、MD3と、MD5と、MD4とを)コピーすることによってトリガーモードにおける知られているリフレックスReflexF2のみからのパターンを使用し、それらのパターンを新しいトリガーパターンMD2とともに新しいリフレックスReflexF1に割り当てることができる。フロアランプの設定に応じて、フロアランプは、オンにトグルする壁面スイッチに関係するトリガーイベントとフロアランプのライトのアクティブ化との間の新しい関連付けを学習したばかりである場合がある。たとえば、フロアランプは、フロアランプが新しいリフレックスをすぐに学習する臨界学習期間801(図8に示されているような)に入っているものとしてよい(たとえば、フロアランプ上で実行される単一のオン/オフシーケンス)。そこで、フロアランプは、壁面スイッチが「オフ」から「オン」にトグルした後、ライトをアクティブ化し得る。しかしながら、この例の目的に関して、フロアランプが、臨界期間内になく、「オフ」から「オン」への壁面スイッチのトグルとフロアランプのライトをアクティブ化することとの間の関連付けをまだ完全には学習していないことが仮定される。
[0198]ユーザが、壁面スイッチをトグルした後まもなくフロアランプをオンにしたときに、フロアランプに関連付けられているスマートボックスは、最近学習されたパターンMD2をトリガーパターンとして、そのランプオンイベントを新しいリフレックスReflexF1と相関させることができる。壁面スイッチがオフにされ、その後すぐにフロアランプがオフにされるアクションでは、壁面スイッチとフロアランプとにおいて類似の応答を生成し得る。
[0199]壁面スイッチが、2回目に「オフ」から「オン」にトグルされると、オンイベントの関連付けられている発生データは、再び、イベントレポートメッセージでブロードキャストされ、フロアランプによって受信され得る。ここでもまた、フロアランプは、発生データとともに関係するイベントレポートメッセージを処理し、イベントを、そして最終的にパターンMD2を生成し得る。しかしながら、今回、フロアランプは生成されたパターンMD2とReflexF1の知られているパターンとのマッチングを行う。このマッチングに応答して、フロアランプは、また、パターンMD2とReflexF1の記憶されているトリガーパターンとの間にマッチがあると決定し、ReflexF1に関してトリガーモードに入ることができる。さらに、フロアランプは、ReflexF1のトリガー重みがトリガー重み閾値以上であるかどうかを決定することができる。この例では、1回のみのトレーニングサイクルの後に、ReflexF1が新しいリフレックスであるので、フロアランプは、ReflexF1のトリガー重みがトリガー重み閾値以上でないと決定し得る。そこで、フロアランプは、ReflexF1に対してトリガーモードに入っている間により多くのイベントを監視することを続け得る。
[0200]ユーザが5〜10秒の時間ウィンドウ内でフロアランプをオンにしたときに、フロアランプは、最終的にフロアランプが報酬パターンMD4を生成することを引き起こす報酬イベントを生成し得る。フロアランプは、MD4を処理し、報酬パターンとReflexF1とのマッチがあると決定する。それに応答して、フロアランプは、ReflexF1に関してまだトリガーモードに入っており、ReflexF1のトリガー重みを増加させ得る。重みを調整した後、または5〜10秒の時間ウィンドウの後に、フロアランプは、ReflexF1に関してトリガーモードを終了し、フロアランプがより多くのイベントを監視する監視モードに入り得る。
[0201]その後しばらくして、ユーザが3回目にまた壁面スイッチをオンにトグルし、壁面スイッチがフロアランプによって受信された発生データとともにイベントレポートメッセージをブロードキャストすることを引き起こし得る。ここでもまた、受信されたメッセージ内のデータに基づいて、フロアランプは、関係するイベントを生成し、次いでパターンMD2を生成し得る。フロアランプは、生成されたパターンMD2とReflexF1のトリガーパターンとの間にトリガーのマッチがあると決定し、3回目にReflexF1に関してトリガーモードに入ることができる。もう一度、フロアランプは、ReflexF1のトリガー重みがトリガー重み閾値以上であるかどうかを決定することができる。3回目では、ReflexF1が新しいリフレックスであるので、フロアランプは、ReflexF1のトリガー重みがトリガー重み閾値以上でないと決定し得る。そこで、フロアランプは、トリガーモードに入っている間により多くのイベントを監視することを続ける。
[0202]ReflexF1の最近のトリガーモードの5〜10秒の時間ウィンドウ内にまだある間に、ユーザが、3回目にフロアランプをオンにすることができる。それに応答して、フロアランプは、最終的にフロアランプが報酬パターンMD4を生成することを引き起こす報酬イベントを生成する。フロアランプは、MD4を処理し、報酬パターンとReflexF1とのマッチがあると決定し得る。フロアランプは、ReflexF1に関してまだトリガーモードに入っており、ReflexF1のトリガー重みをトリガー閾値より高く増加させ得る。
[0203]その後しばらくして、ユーザが4回目に壁面スイッチを「オフ」から「オン」にトグルしたときに、同じシーケンスのイベントが発生し、今回のみ、フロアランプは、ReflexF1のトリガー重みが閾値以上であり、したがってアクションパターンMD3を生成すると決定し得る。アクションパターンMD3に応答して、フロアランプは、フロアランプのライトをオンにするモーターコントローラを通電する関連付けられているアクションイベントを生成し得る。その後、フロアランプは、ユーザが壁面スイッチを「オフ」から「オン」にトグルしたことに応答してオンにされる。
[0204]学習デバイスの非集中システムのユーザは、ある場所において異なる状況に賢く適応するようにそのような学習デバイスをトレーニングすることができる。しかしながら、学習デバイスの異なるフォームファクタは、異なるユーザと、場所と、アプリケーションに対して役立ち得る。特に、購入を迫られているユーザがすべての新しいデバイス(たとえば、家具、電気製品など)を購入することを回避するために、既存のデバイスは、学習デバイスへと姿を変えさせるスマートボックスのインテリジェント機能を備えるように改造または適応される必要があり得る。図13A〜図14Bは、ある場所にある他のデバイスに関するスマートボックスに対する例示的なフォームファクタおよび/または構成を示している。特に、他の方法ではプログラム可能でないか、または学習しないデバイスを学習を行うことができるスマートボックス対応デバイスに変換するアダプタが使用され得る。そのようなアダプタは、処理ロジック(すなわち、「頭脳」)、さらには対応する頭脳と、またさらにはその場所の中にある他のスマートボックスとワイヤレス方式でデータを交換するその場所の中にあるユニットであり得るレポーターを備えるものとしてよい。
[0205]図13Aは、頭脳とレポーターの両方を含み得る一実施形態のアダプタを示している。言い換えれば、図13Aは、図1Aを参照しつつ上で説明されているスマートボックスに類似するスマートボックスアダプタ1301を示している。アダプタ1301は、二叉または三叉コネクタなどを介して、コンセント1302(たとえば、ACコンセント)に直接接続され、さらには接続部110b(たとえば、フロアランプからのコードとプラグ)を介してフロアランプに接続され得る。アダプタ1301をコンセント1302とフロアランプとの間に置き、アダプタ1301は、リレーなどを介して、フロアランプへの電力消費量を検出し、調節することができるものとしてよい。レポーター(図13Aには図示されていない)が含まれる場合、アダプタ1301も、フロアランプで生じる電源オン/オフイベントを示す発生データを含むイベントレポートメッセージなどの、フロアランプのオペレーションに関係するイベントを示す信号をワイヤレス方式で送信するように構成され得る。
[0206]図13Bは、図13Aに示されているアダプタ1301に類似する別の実施形態のアダプタ1352を示しているが、ただし、アダプタ1352は、直接取り付けられるか、または含まれるレポーターユニットがない頭脳要素のみを備え得る点が異なる。特に、レポーターが含まれていないアダプタ1352は、コンセント1302に、さらには接続部110bを介してフロアランプに接続され得る。レポーター1354は、壁、デスク、テーブルトップなどの、同じ場所の中の付近に置かれ、したがって、レポーター1354は、アダプタ1352のワイヤレス信号の受信範囲内にある。様々な実施形態において、レポーター1354は、状態変化(たとえば、オン/オフ変化)を送信するワイヤレス送信機、様々な増分(たとえば、秒、分、時、日など)の時間変化を送信する時計、輝度レベルを送信する光センサー、および他の類似の送信機デバイスを有する単純な壁面スイッチであってよい。
[0207]図14Aは、電球1402とフロアランプとの間の電気的接続部内に置かれるように構成されている別の実施形態のスマートボックスアダプタ1404を示している。アダプタ1404は、アダプタ1404が電球1402とソケット1410とに接続し、それらの間に位置決めされるようにフロアランプの従来の電球ソケット1410内に挿入され得る。たとえば、アダプタ1404は、電球1402の下に置かれているリングであってよい。いくつかの実施形態では、アダプタ1404、1450は、内部電池を充電するために使用され得る熱エネルギーを電球1402から取り出すように構成され得る。
[0208]いくつかの実施形態では、アダプタは、交換可能物(またはスマート交換可能物)内に備えられ得る。このようにして、ユーザが学習することができるある場所にすでに存在している電気製品を安く、容易にアップグレードする(すなわち、通常の電気製品を学習デバイスに変換する)ことができるように電気製品の使い捨て/交換可能コンポーネント内にインテリジェント機能が組み込まれ得る。図14Bは、従来の電球を交換することができる電球(すなわち、「スマートバルブ」)内に備えられる使い捨てスマートボックスアダプタ1450を示している。そのようなスマートバルブがあれば、ユーザは、その場所内での発生に基づいて動作することを学習することができるランプを有するためにスマートランプを購入することを回避できる。たとえば、フロアランプのソケット1410内に取り付けられたアダプタ1450は、アダプタが付近のスマートボックスから知られているトリガーパターンに関係する発生データとともにイベントレポートメッセージを受信したときにオンまたはオフになるようにトレーニングされ得る(すなわち、スマートバルブ内のコネクタは、実際のランプスイッチを使用せずにライトをオン/オフすることができる)。学習デバイス能力を有する交換可能物の他の例示的な使用は、冷蔵庫のフィルタ、様々な電池式デバイス用の電池、便座、蛇口、室内装飾品カバー(たとえば、ソファー、枕など)を含み得る。
[0209]様々な実施形態において、アダプタは、関連付けられているデバイスがオフにされたときであっても必ず動作可能なように内部電池を充填する必要があり得る。たとえば、図14A〜図14Bに示されているようにソケット1410に接続されているときに、アダプタ1404、1450は、フロアランプを介して受ける電流で充電式電池を充電するように構成され得る。様々な実施形態において、そのようなアダプタは、回路と、処理ユニットと、センサーとを備え得る。
[0210]上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供され、様々な態様のステップを提示された順序で実行しなければならないことを要求または暗示するものではない。当業者によって諒解されるように、上記の態様におけるステップの順序は、いかなる順序でも実行され得る。「その後」、「次いで」、「次に」などの用語は、それらのステップの順序を限定することが意図されず、これらの用語は、単に、読者をこれらの方法の説明に導くためである。さらに、たとえば、冠詞「a」、「an」または「the」を使用する単数形の請求項の要素への言及は、その要素を単数形に限定するものと解釈されるべきではない。
[0211]本明細書で開示される態様に関して説明される、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能に関して上述されている。このような機能性がハードウェアとして実施されるか、またはソフトウェアとして実施されるかは、特定の応用およびシステム全体に課される設計の制約によって決まる。当業者は、各具体的なアプリケーションについて様々な方法で説明された機能性を実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を引き起こすと解釈されるべきではない。
[0212]スマートボックス103などのハードウェアは、本明細書で開示されている態様に関して説明されている様々例示的な論理回路、論理ブロック、モジュール、および回路を実装するために使用され、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラム可能論理デバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、または本明細書で説明されている機能を実行するように設計されているこれらの任意の組合せにより実装または実行され得る。汎用プロセッサはマルチプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマルチプロセッサとの組合せ、複数のマルチプロセッサ、DSPコアと連携する1つもしくは複数のマルチプロセッサ、専用スマートデバイスASIC、または任意の他のそのような構成としても実装され得る。代替的に、いくつかのステップまたは方法は、所与の機能に固有の回路によって実施できる。
[0213]1つまたは複数の例示的な態様では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装された場合、これらの機能は、非一時的プロセッサ可読(またはコンピュータ可読)記憶媒体、非一時的コンピュータ可読媒体、または非一時的プロセッサ可読媒体上に1つまたは複数の命令もしくはコードとして記憶され得る。本明細書で開示されている方法またはアルゴリズムのステップは、非一時的コンピュータ可読媒体またはプロセッサ可読記憶媒体上に存在し得る、プロセッサ実行可能ソフトウェアモジュールまたはプロセッサ実行可能命令で具現化され得る。非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセス可能な何らかの記憶媒体であってよい。限定ではなく、例として、そのような非一時的コンピュータ可読媒体または非一時的プロセッサ可読媒体は、所望されるプログラムコードを命令またはデータ構造の形で記憶するために使用可能であり、かつコンピュータによってアクセス可能なRAM、ROM、EEPROM(登録商標)、FLASHメモリ、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または何らかの他の媒体を含むことが可能である。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、一方、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せも、非一時的コンピュータ可読媒体および非一時的プロセッサ可読媒体の範囲に含まれる。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品内に組み込むことが可能な1つのコードおよび/もしくは命令、あるいはコードおよび/もしくは命令の任意の組合せまたはセットとして、非一時的プロセッサ可読媒体上および/または非一時的コンピュータ可読媒体上に存在し得る。
[0214]開示した実施形態の上記の説明は、当業者が本発明を製作または使用できるように提供したものである。これらの実施形態への様々な修正は当業者には容易に明らかであり、本明細書で定義された一般原理は、本発明の趣旨または範囲から逸脱することなく他の実施形態に適用され得る。したがって、本発明は、本明細書で示された実施形態に限定されるものではなく、以下の特許請求の範囲ならびに本明細書で開示される原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
学習デバイスの連続的構成のための方法であって、
監視モードに入っている間に取得されたイベントを、第1の学習デバイスによって、記憶することと、
前記記憶されたイベントの少なくとも1つが第1のリフレックスに関連付けられた第1のトリガーパターンに対応するときに、所定のアクションに関連付けられた前記第1のリフレックスに対する第1のトリガーモードをアクティブ化することと、
前記第1のリフレックスがトリガー重み閾値を超えるトリガー重みを有するかどうかを決定することと、
前記第1のリフレックスに関連付けられた前記トリガー重みが前記トリガー重み閾値を超えると決定することに応答して前記第1のリフレックスに関連付けられた前記所定のアクションを実行することと、
前記第1のトリガーモードに入っている間に少なくとも1つの追加のイベントを取得することと、
前記少なくとも1つの追加のイベントが、前記第1のリフレックスに関連付けられ、前記所定のアクションを実行することに応答して発生する第1の報酬パターンおよび第1の補正パターンの少なくとも一方に対応するときに、前記第1のリフレックスの前記トリガー重みを調整することと、および
前記少なくとも1つの追加のイベントが、前記第1のリフレックスに関連付けられた前記第1のトリガーパターン、前記第1の補正パターン、および前記第1の報酬パターンの少なくとも1つに対応しないときに、第2のトリガーパターン、第2の補正パターン、および第2の報酬パターンにより、第2のリフレックスを作成することと、
を備える方法。
[C2]
前記第1のリフレックスの前記トリガー重みを調整することは、
前記少なくとも1つの追加のイベントが前記第1のリフレックスの前記第1の報酬パターンに対応するときに前記第1のリフレックスの前記トリガー重みを増加させることと、および
前記少なくとも1つの追加のイベントが前記第1のリフレックスの前記第1の補正パターンに対応するときに前記第1のリフレックスの前記トリガー重みを減少させることと、をさらに備える、
C1に記載の方法。
[C3]
高利得セットが前記トリガー重みに適用されている間に前記第1のリフレックスとともに臨界学習期間に入ることをさらに備えるC2に記載の方法。
[C4]
低利得セットが前記トリガー重みに適用されている間に前記第1のリフレックスとともに定常状態学習期間に入ることをさらに備えるC2に記載の方法。
[C5]
前記第1のトリガーモードに入っている間に前記少なくとも1つの追加のイベントを取得することは、
メモリから以前のイベントを取り出すこと、
をさらに備える、
C1に記載の方法。
[C6]
前記監視モードに入っている間に取得されたイベントを、前記第1の学習デバイスによって、記憶することは、
少なくとも1つのイベントおよび関連付けられたパターンが時間ウィンドウの後にメモリから取り除かれるように、前記時間ウィンドウにおいて前記少なくとも1つのイベントを、前記メモリに、記憶すること、
を備える、
C1に記載の方法。
[C7]
前記記憶されたイベントの少なくとも1つは、ローカルで生成される発生データに基づいて取得される、
C1に記載の方法。
[C8]
前記記憶されたイベントの少なくとも1つは、リモートで生成される発生データに基づいて取得される、
C1に記載の方法。
[C9]
リモートで生成される前記発生データに基づいて取得される前記記憶されたイベントの前記少なくとも1つは、前記第1の学習デバイスが第2の学習デバイスからイベントレポートメッセージを受信することに応答して生成され、ここにおいて、前記第1の学習デバイスおよび前記第2の学習デバイスは、有線またはワイヤレス通信リンクを介して接続されるある場所における複数の学習デバイスからなる非集中システムの一部である、
C8に記載の方法。
[C10]
リモートで生成される前記発生データに基づいて取得される前記記憶されたイベントの前記少なくとも1つは、前記第1の報酬パターンおよび前記第1の補正パターンの少なくとも一方に対応する、
C8に記載の方法。
[C11]
前記記憶されたイベントの少なくとも1つは、有線またはワイヤレス通信リンクを介して非学習デバイスから受信される発生データに基づいて取得される、
C1に記載の方法。
[C12]
前記少なくとも1つの追加のイベントが第3のリフレックスに関連付けられた異なるトリガーパターンに対応するときに、第2のトリガーモードを同時にアクティブ化することをさらに備えるC1に記載の方法。
[C13]
前記第1のリフレックスに関連付けられた前記トリガー重みが前記トリガー重み閾値を超えると決定することに応答して前記第1のリフレックスに関連付けられた前記所定のアクションを実行することは、
前記所定のアクションを実行することに基づいて結果として生じるイベントを生成することと、および
前記結果として生じるイベントを示し、別の学習デバイスによって使用されることが可能であるイベントレポートメッセージをブロードキャストすることと、
を備える、
C1に記載の方法。
[C14]
別の学習デバイスからイベントレポートメッセージを、前記第1の学習デバイスにおいて、受信すること、ここにおいて、前記受信されたイベントレポートメッセージは、前記別の学習デバイスが前記第1のトリガーパターンに対応する別のイベントを取得したことに応答して前記別の学習デバイスによって生成された別のイベントを示す、をさらに備えるC1に記載の方法。
[C15]
前記記憶されたイベントの少なくとも1つが前記第1のリフレックスに関連付けられた前記第1のトリガーパターンに対応するときに、前記所定のアクションに関連付けられた前記第1のリフレックスに対する前記第1のトリガーモードをアクティブ化することは、
前記記憶されたイベントの前記少なくとも1つに基づいてパターンにパターンフィルタを適用することと、および
前記記憶されたイベントの前記少なくとも1つが前記第1のリフレックスに関連付けられた前記第1のトリガーパターンに対応するときに、および前記パターンが前記適用されたパターンフィルタに基づいて破棄されないときに、前記所定のアクションに関連付けられた前記第1のリフレックスに対する前記第1のトリガーモードをアクティブ化することと、
を備える、
C1に記載の方法。
[C16]
前記第1のリフレックスおよび前記第2のリフレックスは、ガーベジコレクションポリシーに基づいて前記第1の学習デバイスから除去可能なだけである、
C1に記載の方法。
[C17]
前記第1のリフレックスに関連付けられた前記トリガー重みが前記トリガー重み閾値を超えると決定することに応答して前記第1のリフレックスに関連付けられた前記所定のアクションを実行することは、アクチュエータを駆動するためにモーター駆動装置によって使用されるイベントのパターンを生成することを備える、
C1に記載の方法。
[C18]
前記第1の補正パターンおよび前記第1の報酬パターンの1つまたは複数は、順序依存である、
C1に記載の方法。
[C19]
前記第1の補正パターンおよび前記第1の報酬パターンの1つまたは複数は、順序独立である、
C1に記載の方法。
[C20]
前記第1のトリガーモードに入っている間に前記少なくとも1つの追加のイベントを取得することは、1つまたは複数の周期的タイミングメカニズムに基づいて前記少なくとも1つの追加のイベントを取得することを備える、
C1に記載の方法。
[C21]
前記1つまたは複数の周期的タイミングメカニズムに基づいて1つまたは複数のセンサーをポーリングすることをさらに備えるC20に記載の方法。
[C22]
前記1つまたは複数の周期的タイミングメカニズムは、複数のデバイスによって共有される、
C20に記載の方法。
[C23]
監視モードに入っている間に取得されたイベントを記憶することと、
前記記憶されたイベントの少なくとも1つが第1のリフレックスに関連付けられた第1のトリガーパターンに対応するときに、所定のアクションに関連付けられた前記第1のリフレックスに対する第1のトリガーモードをアクティブ化することと、
前記第1のリフレックスがトリガー重み閾値を超えるトリガー重みを有するかどうかを決定することと、
前記第1のリフレックスに関連付けられた前記トリガー重みが前記トリガー重み閾値を超えると決定することに応答して前記第1のリフレックスに関連付けられた前記所定のアクションを実行することと、
前記第1のトリガーモードに入っている間に少なくとも1つの追加のイベントを取得することと、
前記少なくとも1つの追加のイベントが、前記第1のリフレックスに関連付けられ、前記所定のアクションを実行することに応答して発生する第1の報酬パターンおよび第1の補正パターンの少なくとも一方に対応するときに、前記第1のリフレックスの前記トリガー重みを調整することと、および
前記少なくとも1つの追加のイベントが、前記第1のリフレックスに関連付けられた前記第1のトリガーパターン、前記第1の補正パターン、および前記第1の報酬パターンの少なくとも1つに対応しないときに、第2のトリガーパターン、第2の補正パターン、および第2の報酬パターンにより、第2のリフレックスを作成することと、
を備えるオペレーションを実行するようにプロセッサ実行可能命令により構成されたプロセッサを備えるコンピューティングデバイス。
[C24]
前記プロセッサは、
前記第1のリフレックスの前記トリガー重みを調整することが、
前記少なくとも1つの追加のイベントが前記第1のリフレックスの前記第1の報酬パターンに対応するときに前記第1のリフレックスの前記トリガー重みを増加させることと、および
前記少なくとも1つの追加のイベントが前記第1のリフレックスの前記第1の補正パターンに対応するときに前記第1のリフレックスの前記トリガー重みを減少させることと、
をさらに備えるようなオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C23に記載のコンピューティングデバイス。
[C25]
前記プロセッサは、
高利得セットが前記トリガー重みに適用されている間に前記第1のリフレックスとともに臨界学習期間に入ることをさらに備えるオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C24に記載のコンピューティングデバイス。
[C26]
前記プロセッサは、
低利得セットが前記トリガー重みに適用されている間に前記第1のリフレックスとともに定常状態学習期間に入ることをさらに備えるオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C24に記載のコンピューティングデバイス。
[C27]
前記プロセッサは、
前記第1のトリガーモードに入っている間に前記少なくとも1つの追加のイベントを取得することがメモリから以前のイベントを取り出すことをさらに備えるようなオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C23に記載のコンピューティングデバイス。
[C28]
前記プロセッサは、
前記監視モードに入っている間に取得されたイベントを記憶することが、
少なくとも1つのイベントおよび関連付けられたパターンが時間ウィンドウの後にメモリから取り除かれるように、前記時間ウィンドウにおいて前記少なくとも1つのイベントを、前記メモリに、記憶することを備えるようなオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C23に記載のコンピューティングデバイス。
[C29]
前記記憶されたイベントの少なくとも1つは、ローカルで生成される発生データに基づいて取得される、
C23に記載のコンピューティングデバイス。
[C30]
前記記憶されたイベントの少なくとも1つは、リモートで生成される発生データに基づいて取得される、
C23に記載のコンピューティングデバイス。
[C31]
リモートで生成される前記発生データに基づいて取得される前記記憶されたイベントの前記少なくとも1つは、前記コンピューティングデバイスが別のデバイスからイベントレポートメッセージを受信することに応答して生成され、ここにおいて、前記コンピューティングデバイスおよび前記別のデバイスは、有線またはワイヤレス通信リンクを介して接続されるある場所の複数の学習デバイスからなる非集中システムの一部である、
C30に記載のコンピューティングデバイス。
[C32]
リモートで生成される前記発生データに基づいて取得される前記記憶されたイベントの前記少なくとも1つは、前記第1の報酬パターンおよび前記第1の補正パターンの少なくとも一方に対応する、
C30に記載のコンピューティングデバイス。
[C33]
前記記憶されたイベントの少なくとも1つは、有線またはワイヤレス通信リンクを介して非学習デバイスから受信される発生データに基づいて取得される、
C23に記載のコンピューティングデバイス。
[C34]
前記プロセッサは、
前記少なくとも1つの追加のイベントが第3のリフレックスに関連付けられた異なるトリガーパターンに対応するときに、第2のトリガーモードを同時にアクティブ化することをさらに備えるオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C23に記載のコンピューティングデバイス。
[C35]
前記プロセッサは、
前記第1のリフレックスに関連付けられた前記トリガー重みが前記トリガー重み閾値を超えると決定することに応答して前記第1のリフレックスに関連付けられた前記所定のアクションを実行することが
前記所定のアクションを実行することに基づいて結果として生じるイベントを生成することと、および
前記結果として生じるイベントを示し、別のデバイスによって使用されることが可能であるイベントレポートメッセージをブロードキャストすることと、
を備えるようなオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C23に記載のコンピューティングデバイス。
[C36]
前記プロセッサは、
別のデバイスからイベントレポートメッセージを受信すること、ここにおいて、前記受信されたイベントレポートメッセージは、前記別のデバイスが前記第1のトリガーパターンに対応する別のイベントを取得したことに応答して前記別のデバイスによって生成された別のイベントを示す、
をさらに備えるオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C23に記載のコンピューティングデバイス。
[C37]
前記プロセッサは、
前記記憶されたイベントの少なくとも1つが前記第1のリフレックスに関連付けられた前記第1のトリガーパターンに対応するときに、前記所定のアクションに関連付けられた前記第1のリフレックスに対する前記第1のトリガーモードをアクティブ化することが、
前記記憶されたイベントの前記少なくとも1つに基づいてパターンにパターンフィルタを適用することと、および
前記記憶されたイベントの前記少なくとも1つが前記第1のリフレックスに関連付けられた前記第1のトリガーパターンに対応するときに、および前記パターンが前記適用されたパターンフィルタに基づいて破棄されないときに、前記所定のアクションに関連付けられた前記第1のリフレックスに対する前記第1のトリガーモードをアクティブ化することと、
を備えるようなオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C23に記載のコンピューティングデバイス。
[C38]
前記第1のリフレックスおよび前記第2のリフレックスは、ガーベジコレクションポリシーに基づいて前記コンピューティングデバイスから除去可能なだけである、
C23に記載のコンピューティングデバイス。
[C39]
前記プロセッサは、
前記第1のリフレックスに関連付けられた前記トリガー重みが前記トリガー重み閾値を超えると決定することに応答して前記第1のリフレックスに関連付けられた前記所定のアクションを実行することが、
アクチュエータを駆動するためにモーター駆動装置によって使用されるイベントのパターンを生成すること、
を備えるようなオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C23に記載のコンピューティングデバイス。
[C40]
前記第1の補正パターンおよび前記第1の報酬パターンの1つまたは複数は、順序依存である、
C23に記載のコンピューティングデバイス。
[C41]
前記第1の補正パターンおよび前記第1の報酬パターンの1つまたは複数は、順序独立である、
C23に記載のコンピューティングデバイス。
[C42]
前記プロセッサは、
前記第1のトリガーモードに入っている間に前記少なくとも1つの追加のイベントを取得することが、
1つまたは複数の周期的タイミングメカニズムに基づいて前記少なくとも1つの追加のイベントを取得すること、
を備えるようなオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C23に記載のコンピューティングデバイス。
[C43]
前記プロセッサは、
前記1つまたは複数の周期的タイミングメカニズムに基づいて1つまたは複数のセンサーをポーリングすることをさらに備えるオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C42に記載のコンピューティングデバイス。
[C44]
前記1つまたは複数の周期的タイミングメカニズムは、複数のデバイスによって共有される、
C42に記載のコンピューティングデバイス。
[C45]
コンピューティングデバイスのプロセッサに、
監視モードに入っている間に取得されたイベントを記憶することと、
前記記憶されたイベントの少なくとも1つが第1のリフレックスに関連付けられた第1のトリガーパターンに対応するときに、所定のアクションに関連付けられた前記第1のリフレックスに対する第1のトリガーモードをアクティブ化することと、
前記第1のリフレックスがトリガー重み閾値を超えるトリガー重みを有するかどうかを決定することと、
前記第1のリフレックスに関連付けられた前記トリガー重みが前記トリガー重み閾値を超えると決定することに応答して前記第1のリフレックスに関連付けられた前記所定のアクションを実行することと、
前記第1のトリガーモードに入っている間に少なくとも1つの追加のイベントを取得することと、
前記少なくとも1つの追加のイベントが、前記第1のリフレックスに関連付けられ、前記所定のアクションを実行することに応答して発生する第1の報酬パターンおよび第1の補正パターンの少なくとも一方に対応するときに、前記第1のリフレックスの前記トリガー重みを調整することと、および
前記少なくとも1つの追加のイベントが、前記第1のリフレックスに関連付けられた前記第1のトリガーパターン、前記第1の補正パターン、および前記第1の報酬パターンの少なくとも1つに対応しないときに、第2のトリガーパターン、第2の補正パターン、および第2の報酬パターンにより、第2のリフレックスを作成することと、
を備えるオペレーションを実行させるように構成されたプロセッサ実行可能命令をその上に記憶している非一時的プロセッサ可読記憶媒体。
[C46]
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、
前記第1のリフレックスの前記トリガー重みを調整することが、
前記少なくとも1つの追加のイベントが前記第1のリフレックスの前記第1の報酬パターンに対応するときに前記第1のリフレックスの前記トリガー重みを増加させることと、および
前記少なくとも1つの追加のイベントが前記第1のリフレックスの前記第1の補正パターンに対応するときに前記第1のリフレックスの前記トリガー重みを減少させることと、
をさらに備えるようなオペレーションを実行させるように構成される、
C45に記載の非一時的プロセッサ可読記憶媒体。
[C47]
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、
高利得セットが前記トリガー重みに適用されている間に前記第1のリフレックスとともに臨界学習期間に入ることをさらに備えるオペレーションを実行させるように構成される、
C46に記載の非一時的プロセッサ可読記憶媒体。
[C48]
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、
低利得セットが前記トリガー重みに適用されている間に前記第1のリフレックスとともに定常状態学習期間に入ることをさらに備えるオペレーションを実行させるように構成される、
C46に記載の非一時的プロセッサ可読記憶媒体。
[C49]
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、
前記第1のトリガーモードに入っている間に前記少なくとも1つの追加のイベントを取得することが、
メモリから以前のイベントを取り出すことをさらに備えるようなオペレーションを実行させるように構成される、
C45に記載の非一時的プロセッサ可読記憶媒体。
[C50]
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、
前記監視モードに入っている間に取得されたイベントを記憶することが、
少なくとも1つのイベントおよび関連付けられたパターンが時間ウィンドウの後にメモリから取り除かれるように、前記時間ウィンドウにおいて前記少なくとも1つのイベントを、前記メモリに、記憶することを備えるようなオペレーションを実行させるように構成される、
C45に記載の非一時的プロセッサ可読記憶媒体。
[C51]
前記記憶されたイベントの少なくとも1つは、ローカルで生成される発生データに基づいて取得される、
C45に記載の非一時的プロセッサ可読記憶媒体。
[C52]
前記記憶されたイベントの少なくとも1つは、リモートで生成される発生データに基づいて取得される、
C45に記載の非一時的プロセッサ可読記憶媒体。
[C53]
リモートで生成される前記発生データに基づいて取得される前記記憶されたイベントの前記少なくとも1つは、前記コンピューティングデバイスが別のデバイスからイベントレポートメッセージを受信することに応答して生成され、ここにおいて、前記コンピューティングデバイスおよび前記別のデバイスは、有線またはワイヤレス通信リンクを介して接続されるある場所における複数の学習デバイスからなる非集中システムの一部である、
C52に記載の非一時的プロセッサ可読記憶媒体。
[C54]
リモートで生成される前記発生データに基づいて取得される前記記憶されたイベントの前記少なくとも1つは、前記第1の報酬パターンおよび前記第1の補正パターンの少なくとも一方に対応する、
C52に記載の非一時的プロセッサ可読記憶媒体。
[C55]
前記記憶されたイベントの少なくとも1つは、有線またはワイヤレス通信リンクを介して非学習デバイスから受信される発生データに基づいて取得される、
C45に記載の非一時的プロセッサ可読記憶媒体。
[C56]
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、
前記少なくとも1つの追加のイベントが第3のリフレックスに関連付けられた異なるトリガーパターンに対応するときに、第2のトリガーモードを同時にアクティブ化することをさらに備えるオペレーションを実行させるように構成される、
C45に記載の非一時的プロセッサ可読記憶媒体。
[C57]
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、
前記第1のリフレックスに関連付けられた前記トリガー重みが前記トリガー重み閾値を超えると決定することに応答して前記第1のリフレックスに関連付けられた前記所定のアクションを実行することが、
前記所定のアクションを実行することに基づいて結果として生じるイベントを生成することと、および
前記結果として生じるイベントを示し、別のデバイスによって使用されることが可能であるイベントレポートメッセージをブロードキャストすることと、
を備えるようなオペレーションを実行させるように構成される、
C45に記載の非一時的プロセッサ可読記憶媒体。
[C58]
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、
別のデバイスからイベントレポートメッセージを受信すること、ここにおいて、前記受信されたイベントレポートメッセージは、前記別のデバイスが前記第1のトリガーパターンに対応する別のイベントを取得したことに応答して前記別のデバイスによって生成された別のイベントを示す、
をさらに備えるオペレーションを実行させるように構成される、
C45に記載の非一時的プロセッサ可読記憶媒体。
[C59]
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、
前記記憶されたイベントの少なくとも1つが前記第1のリフレックスに関連付けられた前記第1のトリガーパターンに対応するときに、前記所定のアクションに関連付けられた前記第1のリフレックスに対する前記第1のトリガーモードをアクティブ化することが、
前記記憶されたイベントの前記少なくとも1つに基づいてパターンにパターンフィルタを適用することと、および
前記記憶されたイベントの前記少なくとも1つが前記第1のリフレックスに関連付けられた前記第1のトリガーパターンに対応するときに、および前記パターンが前記適用されたパターンフィルタに基づいて破棄されないときに、前記所定のアクションに関連付けられた前記第1のリフレックスに対する前記第1のトリガーモードをアクティブ化することと、
を備えるようなオペレーションを実行させるように構成される、
C45に記載の非一時的プロセッサ可読記憶媒体。
[C60]
前記第1のリフレックスおよび前記第2のリフレックスは、ガーベジコレクションポリシーに基づいて前記コンピューティングデバイスから除去可能なだけである、
C45に記載の非一時的プロセッサ可読記憶媒体。
[C61]
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、
前記第1のリフレックスに関連付けられた前記トリガー重みが前記トリガー重み閾値を超えると決定することに応答して前記第1のリフレックスに関連付けられた前記所定のアクションを実行することが、アクチュエータを駆動するためにモーター駆動装置によって使用されるイベントのパターンを生成することを備えるようなオペレーションを実行させるように構成される、
C45に記載の非一時的プロセッサ可読記憶媒体。
[C62]
前記第1の補正パターンおよび前記第1の報酬パターンの1つまたは複数は、順序依存である、
C45に記載の非一時的プロセッサ可読記憶媒体。
[C63]
前記第1の補正パターンおよび前記第1の報酬パターンの1つまたは複数は、順序独立である、
C45に記載の非一時的プロセッサ可読記憶媒体。
[C64]
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、
前記第1のトリガーモードに入っている間に前記少なくとも1つの追加のイベントを取得することが、1つまたは複数の周期的タイミングメカニズムに基づいて前記少なくとも1つの追加のイベントを取得することを備えるようなオペレーションを実行させるように構成される、
C45に記載の非一時的プロセッサ可読記憶媒体。
[C65]
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、
前記1つまたは複数の周期的タイミングメカニズムに基づいて1つまたは複数のセンサーをポーリングすることをさらに備えるオペレーションを実行させるように構成される、
C64に記載の非一時的プロセッサ可読記憶媒体。
[C66]
前記1つまたは複数の周期的タイミングメカニズムは、複数のデバイスによって共有される、
C64に記載の非一時的プロセッサ可読記憶媒体。
[C67]
第1のプロセッサと、
前記第1のプロセッサに結合された第1のメモリとを備え、
ここにおいて、前記第1のプロセッサは、
監視モードに入っている間に取得されたイベントを、前記第1のメモリに、記憶することと、
前記記憶されたイベントの少なくとも1つが第1のリフレックスに関連付けられた第1のトリガーパターンに対応するときに、所定のアクションに関連付けられた前記第1のリフレックスに対する第1のトリガーモードをアクティブ化することと、
前記第1のリフレックスがトリガー重み閾値を超えるトリガー重みを有するかどうかを決定することと、
前記第1のリフレックスに関連付けられた前記トリガー重みが前記トリガー重み閾値を超えると決定することに応答して前記第1のリフレックスに関連付けられた前記所定のアクションを実行することと、
前記第1のトリガーモードに入っている間に少なくとも1つの追加のイベントを取得することと、
前記少なくとも1つの追加のイベントが、前記第1のリフレックスに関連付けられ、前記所定のアクションを実行することに応答して発生する第1の報酬パターンおよび第1の補正パターンの少なくとも一方に対応するときに、前記第1のリフレックスの前記トリガー重みを調整することと、および
前記少なくとも1つの追加のイベントが、前記第1のリフレックスに関連付けられた前記第1のトリガーパターン、前記第1の補正パターン、および前記第1の報酬パターンの少なくとも1つに対応しないときに、第2のトリガーパターン、第2の補正パターン、および第2の報酬パターンにより、第2のリフレックスを作成することと、
を備えるオペレーションを実行するようにプロセッサ実行可能命令により構成される、
複数の学習デバイス内の第1の学習デバイスと、および
第2のプロセッサと、
前記第2のプロセッサに結合された第2の信号送信機を備え、および
ここにおいて、前記第2のプロセッサは、第1のイベントレポートメッセージを、前記第2の信号送信機を介して、送信することを備えるオペレーションを実行するようにプロセッサ実行可能命令により構成される、
前記複数の学習デバイス内の第2の学習デバイスと、
を備え、および
ここにおいて、前記第1の学習デバイスは、
前記第1のプロセッサに結合された第1の信号受信機をさらに備え、および
ここにおいて、前記第1のプロセッサは、前記第2の学習デバイスによって送信された前記第1のイベントレポートメッセージを、前記第1の信号受信機を介して、受信することをさらに備えるオペレーションを実行するようにプロセッサ実行可能命令により構成される、
システム。
[C68]
前記第1のプロセッサは、
前記第1のリフレックスの前記トリガー重みを調整することが、
前記少なくとも1つの追加のイベントが前記第1のリフレックスの前記第1の報酬パターンに対応するときに前記第1のリフレックスの前記トリガー重みを増加させることと、および
前記少なくとも1つの追加のイベントが前記第1のリフレックスの前記第1の補正パターンに対応するときに前記第1のリフレックスの前記トリガー重みを減少させることと、
をさらに備えるようなオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C67に記載のシステム。
[C69]
前記第1のプロセッサは、
高利得セットが前記トリガー重みに適用されている間に前記第1のリフレックスとともに臨界学習期間に入ることをさらに備えるオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C68に記載のシステム。
[C70]
前記第1のプロセッサは、
低利得セットが前記トリガー重みに適用されている間に前記第1のリフレックスとともに定常状態学習期間に入ることをさらに備えるオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C68に記載のシステム。
[C71]
前記第1のプロセッサは、
前記第1のトリガーモードに入っている間に前記少なくとも1つの追加のイベントを取得することが、
前記第1のメモリから以前のイベントを取り出すことをさらに備えるようなオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C67に記載のシステム。
[C72]
前記第1のプロセッサは、
前記監視モードに入っている間に取得されたイベントを記憶することが、
少なくとも1つのイベントおよび関連付けられたパターンが時間ウィンドウの後に第1のメモリから取り除かれるように、前記時間ウィンドウにおいて前記少なくとも1つのイベントを、前記第1のメモリに、記憶すること、
を備えるようなオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C67に記載のシステム。
[C73]
前記記憶されたイベントの少なくとも1つは、ローカルで生成される発生データに基づいて取得される、
C67に記載のシステム。
[C74]
前記記憶されたイベントの少なくとも1つは、リモートで生成される発生データに基づいて取得される、
C67に記載のシステム。
[C75]
リモートで生成される前記発生データに基づいて取得される前記記憶されたイベントの前記少なくとも1つは、前記第1の報酬パターンおよび前記第1の補正パターンの少なくとも一方に対応する、
C74に記載のシステム。
[C76]
1つまたは複数の非学習デバイスをさらに備え、および
ここにおいて、前記記憶されたイベントの少なくとも1つは、有線またはワイヤレス通信リンクを介して前記1つまたは複数の非学習デバイスから受信される発生データに基づいて前記第1の学習デバイスによって取得される、
C67に記載のシステム。
[C77]
前記第1のプロセッサは、
前記少なくとも1つの追加のイベントが第3のリフレックスに関連付けられた異なるトリガーパターンに対応するときに、第2のトリガーモードを同時にアクティブ化することをさらに備えるオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C67に記載のシステム。
[C78]
前記第1の学習デバイスは、前記第1のプロセッサに結合された第1の信号送信機をさらに備え、および
ここにおいて、前記第1のプロセッサは、
前記第1のリフレックスに関連付けられた前記トリガー重みが前記トリガー重み閾値を超えると決定することに応答して前記第1のリフレックスに関連付けられた前記所定のアクションを実行することが、
前記所定のアクションを実行することに基づいて結果として生じるイベントを生成することと、および
前記結果として生じるイベントを示し、別のデバイスによって使用されることが可能である第2のイベントレポートメッセージを、前記第1の信号送信機を介して、ブロードキャストすることと、
を備えるようなオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C67に記載のシステム。
[C79]
前記第2のプロセッサは、
前記第1のトリガーパターンに対応する第1のイベントを取得することと、および
前記第1のトリガーパターンに対応する前記第1のイベントを取得することに応答して第2のイベントを生成することとをさらに備え、および
ここにおいて、前記第1のイベントレポートメッセージは第2のイベントを示す、オペレーションを実行するようにプロセッサ実行可能命令により構成される、
C67に記載のシステム。
[C80]
前記第1のプロセッサは、
前記記憶されたイベントの少なくとも1つが前記第1のリフレックスに関連付けられた前記第1のトリガーパターンに対応するときに、前記所定のアクションに関連付けられた前記第1のリフレックスに対する前記第1のトリガーモードをアクティブ化することが、
前記記憶されたイベントの前記少なくとも1つに基づいてパターンにパターンフィルタを適用することと、および
前記記憶されたイベントの前記少なくとも1つが前記第1のリフレックスに関連付けられた前記第1のトリガーパターンに対応するときに、および前記パターンが前記適用されたパターンフィルタに基づいて破棄されないときに、前記所定のアクションに関連付けられた前記第1のリフレックスに対する前記第1のトリガーモードをアクティブ化することと、
を備えるようなオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C67に記載のシステム。
[C81]
前記第1のリフレックスおよび前記第2のリフレックスは、ガーベジコレクションポリシーに基づいて前記第1の学習デバイスの前記第1のメモリから除去可能なだけであるC67に記載のシステム。
[C82]
前記第1のプロセッサは、
前記第1のリフレックスに関連付けられた前記トリガー重みが前記トリガー重み閾値を超えると決定することに応答して前記第1のリフレックスに関連付けられた前記所定のアクションを実行することが、アクチュエータを駆動するためにモーター駆動装置によって使用されるイベントのパターンを生成することを備えるようなオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C67に記載のシステム。
[C83]
前記第1の補正パターンおよび前記第1の報酬パターンの1つまたは複数は、順序依存である、
C67に記載のシステム。
[C84]
前記第1の補正パターンおよび前記第1の報酬パターンの1つまたは複数は、順序独立である、
C67に記載のシステム。
[C85]
前記第1のプロセッサは、
前記第1のトリガーモードに入っている間に前記少なくとも1つの追加のイベントを取得することが、1つまたは複数の周期的タイミングメカニズムに基づいて前記少なくとも1つの追加のイベントを取得することを備えるようなオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C67に記載のシステム。
[C86]
前記第1のプロセッサは、
前記1つまたは複数の周期的タイミングメカニズムに基づいて1つまたは複数のセンサーをポーリングすることをさらに備えるオペレーションを実行するようにプロセッサ実行可能命令により構成される、
C85に記載のシステム。
[C87]
前記1つまたは複数の周期的タイミングメカニズムは、前記第2の学習デバイスによって共有される、
C85に記載のシステム。
[C88]
学習デバイスの非集中トレーニングのための方法であって、
第1の学習デバイスにおいて1つまたは複数のイベントを受信すること、前記第1の学習デバイスは1つまたは複数の関連付けられたリフレックスを有し、各リフレックスは少なくとも1つの関連付けられたトリガーパターンと少なくとも1つの関連付けられたアクションとを有する、と、
前記受信された1つまたは複数のイベントが前記第1の学習デバイスに関連付けられた第1のリフレックスに関連付けられた第1のトリガーパターンとマッチするかどうかを決定することと、
前記受信された1つまたは複数のイベントが前記第1のトリガーパターンとマッチすると決定したことに応答して前記第1のリフレックスに関連付けられた第1のアクションを実行することと、および
前記受信された1つまたは複数のイベントが前記第1の学習デバイスに関連付けられたどのパターンともマッチしないと決定することに応答して第2のトリガーパターンと第2のアクションとにより前記第1の学習デバイスに関連付けられた第2のリフレックスを作成することと、
を備える方法。