KR20160016875A - 학습 디바이스들의 학습 역량들의 수정 - Google Patents

학습 디바이스들의 학습 역량들의 수정 Download PDF

Info

Publication number
KR20160016875A
KR20160016875A KR1020157036201A KR20157036201A KR20160016875A KR 20160016875 A KR20160016875 A KR 20160016875A KR 1020157036201 A KR1020157036201 A KR 1020157036201A KR 20157036201 A KR20157036201 A KR 20157036201A KR 20160016875 A KR20160016875 A KR 20160016875A
Authority
KR
South Korea
Prior art keywords
learning
modifier
pattern
event
trigger
Prior art date
Application number
KR1020157036201A
Other languages
English (en)
Inventor
마이클-데이비드 나카요시 케노이
스티븐 앨튼 스프리그
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20160016875A publication Critical patent/KR20160016875A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N99/005
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Selective Calling Equipment (AREA)
  • Computer Hardware Design (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Feedback Control In General (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

학습 디바이스들의 비집중화된 시스템 내에서 학습 역량들을 수정하기 위한 다양한 실시형태들은, 학습 디바이스에서, 근처의 디바이스로부터 신호를 수신하는 단계, 수신된 신호 내의 데이터에 기초하여 수신된 신호가 학습 수정자 신호인지 여부를 결정하는 단계, 및 수신된 신호가 학습 수정자 신호인 것으로 결정하는 것에 응답하여 학습 역량들 중 하나 이상을 수정하는 단계를 포함하는 방법을 포함한다. 방법은, 후속의 학습 수정자 신호들이 수신되는지 여부를 결정하는 단계, 및 후속의 학습 수정자 신호들이 수신되지 않은 것으로 결정하는 것에 응답하여 학습 역량들 중의 수정된 하나 이상을 재설정하는 단계를 더 포함할 수도 있다. 학습 역량들을 수정하는 단계는, 학습 디바이스의 학습 모드를 인에이블 또는 디스에이블하는 단계 및/또는 리플렉스들의 트리거 가중치들을 계산하기 위해 이용된 변수들의 값들을 조절하는 단계를 포함할 수도 있다. 후속의 학습 수정자 신호들이 수신되지 않을 때, 학습 디바이스는 수정된 학습 역량들을 재설정할 수도 있다.

Description

학습 디바이스들의 학습 역량들의 수정{MODIFYING LEARNING CAPABILITIES OF LEARNING DEVICES}
관련 출원들
본 출원은, 그 전체 내용들이 모든 목적들을 위한 참조를 위해 본원에 포함되는, 2013 년 5 월 24 일자로 출원된 "A Method and Apparatus for Continuous Configuration of a Device (디바이스의 연속적인 구성을 위한 방법 및 장치)" 라는 명칭의 미국 가출원 제 61/827,141 호에 대한 우선권의 이익을 주장한다.
본 출원은 또한, 그 전체 내용들이 학습 디바이스들에 관한 추가의 세부사항들에 대하여 참조를 위해 포함되는, 본원과 동시에 출원되는 "Learning Device With Continuous Configuration Capability (연속적인 구성 역량을 갖는 학습 디바이스)" 라는 명칭의 미국 특허 출원 제 14/286,244 호에 관련된다.
일부의 스마트 디바이스들은 수신된 트리거들에 기초하여 액션들을 수행하는 것을 학습할 수도 있다. 그러나, 일부의 상황들에서, 스마트 디바이스들의 학습 거동들은 사용자들에게 충분하거나 바람직하지 않을 수도 있다. 예를 들어, 새로운 스마트 디바이스가 환경 내로 운반될 때, 사용자는 그 효용성을 신속하게 시작하기 위하여 새로운 스마트 디바이스가 가속화된 학습 레이트를 가질 것을 원할 수도 있다. 사용자들은 스마트 디바이스들의 학습 역량들을 제어하거나 조절하기 위한 편리한 방법을 필요로 할 수도 있다.
다양한 실시형태들은 학습 디바이스들의 비집중화된 시스템 (decentralized system) 내에서 학습 역량들을 수정하기 위한 시스템들, 컴퓨팅 디바이스들, 비일시적 프로세서 판독가능 저장 매체들, 및 방법들을 제공한다. 학습 디바이스인 컴퓨팅 디바이스의 프로세서에 의해 수행될 수도 있는 일 실시형태의 방법은 근처의 디바이스로부터 신호를 수신하는 단계, 수신된 신호 내의 데이터에 기초하여, 수신된 신호가 학습 수정자 신호 (learning modifier signal) 인지 여부를 결정하는 단계, 및 수신된 신호가 학습 수정자 신호인 것으로 결정하는 것에 응답하여 학습 디바이스의 하나 이상의 학습 역량들을 수정하는 단계를 포함할 수도 있다. 일부의 실시형태들에서, 방법은, 후속의 학습 수정자 신호들이 수신되는지 여부를 결정하는 단계, 및 후속의 학습 수정자 신호들이 수신되지 않은 것으로 결정하는 것에 응답하여 학습 디바이스의 수정된 하나 이상의 학습 역량들을 재설정 (reset) 하는 단계를 더 포함할 수도 있다. 일부의 실시형태들에서, 학습 디바이스의 하나 이상의 학습 역량들을 수정하는 단계는 학습 디바이스의 학습 모드를 인에이블 (enable) 하는 단계를 포함할 수도 있고, 학습 디바이스의 수정된 하나 이상의 학습 역량들을 재설정하는 단계는 학습 디바이스의 학습 모드를 디스에이블 (disable) 하는 단계를 포함할 수도 있다.
일부의 실시형태들에서, 학습 디바이스의 하나 이상의 학습 역량들을 수정하는 단계는 학습 디바이스의 학습 모드를 디스에이블하는 단계를 포함할 수도 있고, 학습 디바이스의 수정된 하나 이상의 학습 역량들을 재설정하는 단계는 학습 디바이스의 학습 모드를 인에이블하는 단계를 포함할 수도 있다. 일부의 실시형태들에서, 학습 디바이스의 하나 이상의 학습 역량들을 수정하는 단계는 학습 수정자 신호에 기초하여 리플렉스 (reflex) 들의 트리거 가중치 (trigger weight) 들을 계산하기 위해 이용된 변수들의 값들을 조절하는 단계를 포함할 수도 있고, 학습 디바이스의 수정된 하나 이상의 학습 역량들을 재설정하는 단계는 디폴트 값들에 대한 리플렉스들의 트리거 가중치들을 계산하기 위해 이용된 변수들의 값들을 조절하는 단계를 포함할 수도 있다.
일부의 실시형태들에서, 방법은, 타이머를 초기화하는 단계, 및 수신된 신호가 학습 수정자 신호인 것으로 결정하는 것, 또는 후속의 학습 수정자 신호들이 수신되는 것으로 결정하는 것에 응답하여 타이머를 활성화 또는 재설정하는 단계를 더 포함할 수도 있다. 이러한 실시형태들에서, 후속의 학습 수정자 신호들이 수신되는지 여부를 결정하는 단계는 타이머가 만료되기 전에 후속의 학습 수정자 신호들이 수신되는지 여부를 결정하는 단계를 포함할 수도 있다. 일부의 실시형태들에서, 타이머는 학습 수정자 신호로부터의 데이터에 기초하여 설정될 수도 있다. 일부의 실시형태들에서, 학습 수정자 신호는, 학습 디바이스가 학습의 레이트를 증가 또는 감소시켜야 하는지 여부를 표시하는 학습 레이트 수정자 값; 학습 수정자 신호에 의해 영향받는 학습 디바이스의 타입을 표시하는 디바이스 타입; 학습 디바이스가 학습 모드를 인에이블 또는 디스에이블해야 하는지 여부를 표시하는 학습 모드 활성 세팅; 학습 수정자 신호들에 의해 영향받는 계산들의 특정 타입들을 표시하는 학습 레이트 수정자 타입; 및 근처의 디바이스가 얼마나 자주 학습 수정자 신호들을 전송할 것인지를 표시하는 송신 빈도 중 하나 이상을 포함할 수도 있다.
다양한 실시형태들은 상기 설명된 방법들의 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성된 컴퓨팅 디바이스를 포함할 수도 있다. 다양한 실시형태들은 상기 설명된 방법들의 동작들의 기능들을 수행하기 위한 수단을 가지는 컴퓨팅 디바이스를 포함할 수도 있다. 다양한 실시형태들은, 컴퓨팅 디바이스의 프로세서로 하여금 상기 설명된 방법들의 동작들을 수행하게 하도록 구성된 프로세서 실행가능 명령들이 저장되는 비일시적 프로세서 판독가능 저장 매체들을 포함할 수도 있다. 다양한 실시형태들은 상기 설명된 방법들의 동작들을 수행하도록 구성된 하나 이상의 학습 디바이스들을 포함할 수도 있는 시스템을 포함할 수도 있다.
본원에 포함되며 이 명세서의 일부를 구성하는 첨부한 도면들은 발명의 예시적인 실시형태들을 예시하고, 위에서 주어진 일반적인 설명 및 이하에서 주어진 상세한 설명과 함께, 발명의 특징들을 설명하도록 작용한다.
도 1a 내지 도 1b 는 다양한 실시형태들을 구현하는 예시적인 시스템들을 예시하는 시스템 블록도들이다.
도 1c 는 다양한 실시형태들에서의 이용을 위해 적합한 일 실시형태의 학습 디바이스의 컴포넌트 블록도이다.
도 1d 는 다양한 실시형태들에서의 이용을 위해 적합한 학습 수정자 디바이스의 컴포넌트 블록도이다.
도 2 는 다양한 실시형태들과의 이용을 위해 적합한 일 실시형태의 학습 디바이스의 컴포넌트 블록도이다.
도 3a 는 다양한 실시형태들과의 이용을 위해 적합한 다양한 컴포넌트들을 갖는 일 실시형태의 이벤트 보고 메시지 구조의 컴포넌트 블록도이다.
도 3b 는 다양한 실시형태들과의 이용을 위해 적합한 다양한 컴포넌트들을 갖는 일 실시형태의 이벤트 데이터 구조의 컴포넌트 블록도이다.
도 3c 내지 도 3h 는 다양한 실시형태들에서의 이용을 위해 적합한 이벤트들의 패턴들을 식별 및/또는 상관시키기 위하여 스마트 박스 (smart box) (또는 학습 디바이스) 에 의해 사용될 수도 있는 예시적인 시간 윈도우들의 도면들이다.
도 4 는 다양한 실시형태들과의 이용을 위해 적합한 4 개의 패턴들로 구성되는 일 실시형태의 리플렉스의 컴포넌트 블록도이다.
도 5 는 다양한 실시형태들에서의 이용을 위해 적합한 이벤트들을 생성하는 것에 응답하여 상태들을 변경하는 리플렉스 시스템의 예시적인 타임라인 (timeline) 도면이다.
도 6 은 다양한 실시형태들에서의 이용을 위해 적합한 기존의 리플렉스에 기초하여 새로운 리플렉스의 생성을 예시하는 예시적인 타임라인 도면이다.
도 7 은 다양한 실시형태들에서의 이용을 위해 적합한 새롭게 생성된 리플렉스의 훈련을 예시하는 예시적인 타임라인 도면이다.
도 8 은 다양한 실시형태들에서의 이용을 위해 적합한 학습 디바이스에 대한 2 개의 예시적인 학습 레이트들의 도면이다.
도 9 는 다양한 실시형태들에서의 이용을 위해 적합한 수신을 통해 알려진 리플렉스의 트리거 가중치를 증가시킴으로써 학습 디바이스를 훈련시키기 위한 보상 신호들을 예시하는 예시적인 타임라인 도면이다.
도 10 은 다양한 실시형태들에서의 이용을 위해 적합한 수신을 통해 알려진 리플렉스의 트리거 가중치들을 감소시킴으로써 학습 디바이스를 훈련시키기 위한 정정 신호들을 예시하는 예시적인 타임라인 도면이다.
도 11 은 액션 (action) 들을 수행하거나 액션들을 트리거들과 연관시키기 위하여 이벤트들을 생성하고 프로세싱하는 일 실시형태의 방법을 예시하는 프로세스 흐름도이다.
도 12 는 학습 (learning) 및 폐기학습 (unlearning) 을 위한 트리거 가중치들의 조절을 위한 일 실시형태의 동작들을 예시하는 프로세스 흐름도이다.
도 13a 내지 도 13c 는 그 학습 역량들을 조절하기 위하여 다양한 학습 디바이스들의 근접성 내에서 일 실시형태의 학습 수정자 디바이스를 휴대하는 사용자를 예시하는 도면들이다.
도 13d 내지 도 13f 는 다양한 학습 디바이스들의 근접성 내에서 위치되며 다양한 접속들을 수신하는 것에 응답하여 학습 수정자 신호들을 송신하도록 구성된 일 실시형태의 학습 수정자 디바이스를 예시하는 도면들이다.
도 14a 내지 도 14d 는 다양한 실시형태들에 따라 학습 디바이스가 다양한 학습 상태들에 있을 때에 알려진 리플렉스의 트리거 가중치로의 보상 신호들의 적용들을 예시하는 예시적인 타임라인들이다.
도 15a 내지 도 15d 는 다양한 실시형태들에 따라 학습 디바이스가 다양한 학습 상태들에 있을 때에 알려진 리플렉스의 트리거 가중치로의 정정 신호들의 적용들을 예시하는 예시적인 타임라인들이다.
도 16 은 학습 수정자 신호의 일 실시형태의 데이터 구조의 컴포넌트 블록도이다.
도 17a 및 도 17b 는 학습 수정자 디바이스로부터 신호들을 수신하는 것에 응답하여 학습 디바이스가 그 학습 역량들을 변경하기 위한 일 실시형태의 방법들을 예시하는 프로세스 흐름도들이다.
도 18a 및 도 18b 는 학습 수정자 디바이스로부터 신호들을 수신하는 것에 응답하여 학습 모드를 인에이블 또는 디스에이블함으로써, 학습 디바이스가 그 학습 역량들을 변경하기 위한 일 실시형태의 방법들을 예시하는 프로세스 흐름도들이다.
도 19 는 학습 수정자 디바이스로부터 신호들을 수신하는 것에 응답하여 트리거 가중치들을 계산함에 있어서 이용된 변수 값들을 조절함으로써, 학습 디바이스가 그 학습 레이트를 변경하기 위한 일 실시형태의 방법을 예시하는 프로세스 흐름도이다.
다양한 실시형태들은 첨부한 도면들을 참조하여 상세하게 설명될 것이다. 가능한 어디에서든지, 동일한 참조 번호들은 동일하거나 유사한 부분들을 지칭하기 위하여 도면들의 전반에 걸쳐 이용될 것이다. 특정 예들 및 구현예들에 대해 행해진 참조들은 예시적인 목적들을 위한 것이고, 발명 또는 청구항들의 범위를 제한하도록 의도된 것은 아니다.
단어 "예시적" 은 "예, 경우, 또는 예시로서 작용함" 을 의미하기 위하여 본원에서 이용된다. "예시적" 으로서 본원에서 설명된 임의의 구현예는 다른 구현예들에 비해 바람직하거나 유리한 것으로서 반드시 해석되어야 하는 것은 아니다.
용어들 "학습 디바이스 (들)", "스마트 디바이스 (들)", 및 "스마트 박스 (들)" 는, 미리 정의된 액션 (action) 들을, 사용자 입력들을 표시하는 데이터, 상태들에 있어서의 검출된 변경들, 수신된 신호들 또는 송신들, 및 디바이스들에서 획득될 수도 있는 다른 정보와 같이, 트리거들에 관련된 정보와 상관시킴으로써, 관찰된 정보로부터 거동들을 학습할 수 있는 컴퓨팅 디바이스들을 지칭하기 위하여 본원에서 이용된다. 학습 디바이스들은 트리거들 및 시간 경과에 따라 미리 정의된 액션들 사이의 새로운 관계들 또는 상관들을 저장하도록 구성될 수도 있다. 미리 정의된 액션에 이미 상관된 트리거를 검출하는 것에 응답하여, 학습 디바이스는 미리 정의된 액션을 수행할 수도 있거나, 대안적으로, 다른 연관된 디바이스들로 하여금 상관된 액션들을 수행하게 하기 위한 동작들을 수행할 수도 있다. 개시물의 전반에 걸쳐, 수식어 "스마트" 는 기기 (예컨대, 램프) 가 학습 디바이스임을 표시하기 위하여 이용될 수도 있다. 예를 들어, 용어 "스마트 램프" 는, 학습 디바이스인 것으로 구성되고, 학습 디바이스에 결합되고 학습 디바이스에 의해 제어되거나, 또는 이와 다르게, 학습 디바이스의 컴포넌트들을 포함하는 램프를 지칭한다.
용어 "이벤트" 는, 하나 이상의 학습 디바이스들에 의해 검출되거나 생성되었던 액션, 조건, 및/또는 상황을 나타내는 데이터 (예컨대, 객체 (object) 또는 다른 데이터 구조) 를 지칭하기 위하여 본원에서 이용된다. 액션 또는 조건의 발생을 표시하는 정보 ("발생 데이터" 로서 본원에서 지칭됨) 를 획득하는 것에 응답하여, 이벤트들이 생성될 수도 있고 (또는 이와 다르게 획득됨) 학습 디바이스들 상에서 국부적으로 (locally) 저장될 수도 있다. 발생 데이터는 액션 또는 조건을 설명할 뿐만 아니라, 디바이스 식별자들, 타임스탬프 (timestamp) 들, 우선순위 정보, 이득 정보, 상태 식별자들 등과 같이, 액션 또는 조건을 수행하였거나 검출하였던 디바이스를 식별하는 다양한 데이터를 포함할 수도 있다. 발생 데이터는 학습 디바이스들 (예컨대, 학습 디바이스의 프로세서 또는 코어 (core) 에 직접적으로 결합된 센서 등) 에 접속되거나, 이와 다르게, 학습 디바이스 (예컨대, 비-프로그래밍가능한 램프 등) 에 의해 제어된 디바이스들로부터의 신호들 또는 다른 정보로부터 학습 디바이스에 의해 수신되거나 획득될 수도 있다. 발생 데이터는 또한, 다른 근처의 디바이스들로부터 수신된 브로드캐스팅된 메시지들 ("이벤트 보고 메시지들" 로서 본원에서 지칭됨) 로부터 학습 디바이스들에 의해 수신되거나 획득될 수도 있다. 예를 들어, 국부적으로 조우 (encounter) 된 센서 데이터에 기초하여 제 1 이벤트를 생성한 후, 제 1 학습 디바이스는, 제 1 이벤트가 발생하여, 제 2 학습 디바이스가 이벤트 보고 메시지 내의 데이터에 기초하여 제 1 이벤트를 또한 생성하는 것이 가능하게 될 수도 있음을 표시하는 발생 데이터를 갖는 이벤트 보고 메시지를 브로드캐스팅할 수도 있다.
용어 "리플렉스 (reflex)" 는, 트리거와, 학습 디바이스가 수행하도록 구성된 액션 사이의 적어도 상관 또는 관계를 표시하는 학습 디바이스 내의 저장된 정보를 지칭하기 위하여 본원에서 이용된다. 리플렉스의 저장된 정보는, 학습 디바이스로 하여금, 리플렉스의 액션을 수행하게 하고 및/또는 리플렉스에 관련하여 저장된 지속적 데이터 (persistent data) 를 조절하게 하기 위하여 미리 결정된 시간 윈도우 내에서 생성된 이벤트들과 일치될 수도 있는 패턴들을 포함할 수도 있다. 이벤트들은 리플렉스 내에서의 패턴들의 구축 블록들로 고려될 수도 있다. 예를 들어, 리플렉스 내에 저장된 트리거 패턴은 하나 이상의 이벤트들로 이루어질 수도 있다.
학습 디바이스들은 정상 동작들 동안에 연속적이며 유지되는 학습 프로세스들을 통한 연속된 구성을 경험하도록 구성될 수도 있다 (즉, 구성은 정상적인 동작들과는 별도인 정의된 훈련 프로세스들로 제한되지 않음). 이러한 학습 프로세스들은, 학습 디바이스들이 사용자의 상호작용들을 관찰함으로써, 및/또는 직관적 훈련 방법들을 통해 용이하게 구성되는 것을 가능하게 하기 위하여, 생물학적 시스템들을 에뮬레이팅 (emulating) 할 수도 있다. 학습 디바이스들은 사용자 액션들의 결과, 다른 학습 디바이스들의 상태에 있어서의 변경들 등으로서 생성될 수도 있는 이벤트들에 응답하여 희망하는 방식으로 반응하도록 용이하게 구성될 수도 있다. 간단한 반복을 통해, 다양한 거동들은 사전조건지정 (preconditioning) 또는 프로그래머 인터페이스에 대한 필요성 없이 복수의 학습 디바이스들의 비집중화된 시스템에 의해 학습될 수 있고, 이에 따라, 비집중화된 시스템에서 구현될 수 있다. 반복된 보상 훈련 입력들을 이용하면, 사용자는 다양한 트리거들에 응답하여 미리 정의된 태스크들을 자동으로 수행하기 위하여 학습 디바이스를 용이하게 훈련시킬 수도 있다. 유사한 방식으로, 사용자는 반복된 정정 입력들을 이용함으로써 다른 트리거들에 응답하여 특정 태스크를 자동으로 수행하는 것을 정지시키기 위하여 학습 디바이스들을 용이하게 훈련시킬 수도 있다. 학습 디바이스들은 액션들을 수행하기 위하여 이벤트들 및 이벤트들에 관련된 맥락들의 임의의 면밀한 이해를 가질 필요가 없다. 실제로, 학습 디바이스들은 트리거들, 및 관련된 미리 정의된 거동들을 검출하기 위하여, 하나 이상의 디바이스들에 의해 전송된 이벤트들의 패턴들을 일치시키도록 간단하게 훈련될 수도 있다. 이러한 훈련은 복잡하거나 지루한 셋업 (setup) 또는 프로그래밍을 회피하기 때문에 유익하다.
비집중화된 시스템 내의 학습 디바이스들은 트리거들 사이의 새로운 연관성들 및 디바이스들의 다양한 기능성들의 실행을 계속적으로 학습하도록 구성될 수도 있다. 예를 들어, 스마트 스테레오 (smart stereo) 는 턴 '온', 턴 '오프', 라디오 방송국 변경, 음량 조절 등에 대한 스테레오의 미리 정의된 액션들과 페어링 (pairing) 될 수도 있는 근처의 디바이스들로부터 수신된 신호들에 대하여 수신기 회로를 계속적으로 모니터링할 수도 있다. 그러나, 모든 학습이 사용자들에 의해 희망되지는 않을 수도 있다. 예를 들어, 스마트 TV 는 턴 '온' (또는 활성화) 를 근처의 디바이스들로부터의 신호들에 의해 보고된 다양한 트리거들과 연관시키는 것을 학습하도록 구성될 수도 있다. 시간 경과에 따라, 스마트 TV 는, 사용자가 센서를 구비한 카우치 (couch) 위에 앉아 있음을 표시하는 신호들 (예컨대, 사용자가 앉아 있을 때에 압력을 검출하는 센서로부터의 신호들 등), 사용자가 룸으로 걸어가는 것을 표시하는 신호들 (예컨대, 모션 센서로부터의 신호들 등), 및 사용자가 "TV ON" 이라고 말하는 것을 표시하는 신호들 (예컨대, 부착된 마이크로폰을 갖는 디바이스로부터의 신호들 등) 을 수신하는 것에 응답하여 턴 온하는 것을 학습할 수도 있다. 그러나, 사용자는 카우치 위에 않아 있는 동안에, 또는 룸에 들어갈 때에 다른 활동들을 하지 않는 것을 선호할 수도 있으므로, 그/그녀가 "TV ON" 이라고 말하는 것에 응답하는 것을 제외하고는 스마트 TV 를 활성화하는 것을 원하거나 필요로 하지 않을 수도 있다. 스마트 TV 는 새롭고 유용한 연관성들을 학습하는 것을 끊임없이 시도할 수도 있으므로, 사용자가 스마트 TV 가 학습하는 것 및 학습하지 않는 것을 제어하는 것이 어려울 수도 있다. 이 이유들로, 사용자들은 학습 디바이스들이 실제적으로 학습하는 레이트를 조절하는 것뿐만 아니라, 학습을 선택적으로 인에이블 또는 디스에이블하기 위한 수단을 가질 것을 희망할 수도 있다.
다양한 실시형태들은 학습 디바이스들의 비집중화된 시스템 내에서 학습 역량들을 수정하기 위한 디바이스들, 방법들, 프로토콜들, 시스템들, 및 비일시적 프로세서 판독가능 저장 매체들을 제공한다. "학습 수정자 디바이스"로서 지칭된 특수-목적 디바이스는, 예컨대, 학습 디바이스들이 트리거들과, 트리거들에 의해 응답하여 학습 디바이스들에 의해 수행된 액션들 사이의 연관성들을 강화시키거나 약화시키는지 여부와, 얼마나 많이 강화시키거나 약화시키는지를 결정하는 파라미터들을 학습하거나 조절하는 것을 억제함으로써, 근처의 학습 디바이스들로 하여금 이들이 학습하였던 레이트를 조절하게 할 수도 있다. 학습 수정자 디바이스가 학습 디바이스들 (예컨대, 스마트 TV, 스마트 램프 등) 의 근접성 내에 있을 때, 학습 수정자 디바이스에 의해 전송된 신호들은 새로운 거동들의 학습과 연관된 수정된 동작들을 사용하기 위하여 학습 디바이스들을 일시적으로 재구성할 수도 있다. 예를 들어, 학습 수정자 디바이스 근처에 있을 때, 스마트 램프는 턴 온하는 것을 학습하기 전에 더 적은 '온' 이벤트 신호들이 스마트 벽 스위치로부터 수신될 것을 요구함으로써 학습 수정자 디바이스에 의해 전송된 신호들에 응답할 수도 있다. 또 다른 예로서, 스마트 램프는 스마트 TV '온' 이벤트 신호에 응답하여 턴 온하는 것을 정지할 것을 학습하기 위하여 더 적은 정정 신호들을 요구할 수도 있다. 또 다른 예로서, 스마트 램프는 수신된 신호들에서 표시된 이벤트들과, 스마트 램프가 수행할 수도 있는 액션들 (예컨대, 턴 온) 과의 사이의 새로운 연관성들을 생성하는 것을 정지하거나 시작할 수도 있다. 이에 따라, 학습 수정자 디바이스가 그 신호들의 범위 내에 있을 때, 학습 디바이스들은 사전-연관된 (pre-associated) 트리거들에 응답하여 액션들을 수행하는 것 (또는 수행하는 것을 정지하는 것) 을 더욱 고속으로 또는 저속으로 학습할 수도 있고, 어떤 것을 학습하기 위한 능력을 간단하게 인에이블 또는 디스에이블할 수도 있다.
학습 수정자 디바이스는 활성화될 때, 수신하는 학습 디바이스들로 하여금 그 학습 역량들을 조절하게 하는 메시지들 (본원에서 "학습 수정자 신호들" 로서 지칭됨) 을 주기적으로 전송하도록 구성될 수도 있다. 이러한 학습 수정자 신호들은 블루투스 (Bluetooth) LE 브로드캐스트 패킷들 또는 WiFi 와 같은 유선 또는 무선 매체들을 통해 송신될 수도 있다. 일부의 실시형태들에서, 학습 수정자 신호들은, 리플렉스들에 대한 트리거 가중치들 (또는 트리거 가중치 변경들) 을 계산할 때에 학습 디바이스들에 의해 사용될 수도 있는 스칼라 (scalar) 들, 승수 (multiplier) 들, 부스터 (booster) 들, 및/또는 댐프너 (dampener) 들과 같이, 수신측 학습 디바이스들이 그 학습 (또는 학습 레이트) 을 조절해야 하는 정도를 표시하는 데이터를 포함할 수도 있다. 예를 들어, 학습 수정자 신호는 트리거 가중치 계산을 계산하기 위하여 학습 디바이스에 의해 이용된 하나 이상의 변수들 (또는 값들) 에 의해 승산 (multiply) 될 수도 있거나, 하나 이상의 변수들 (또는 값들) 로 제산 (divide) 될 수도 있거나, 하나 이상의 변수들 (또는 값들) 에 가산될 수도 있거나 하나 이상의 변수들 (또는 값들) 로부터 감산될 수도 있는 정수 또는 부동 소수점 값을 포함할 수도 있어서, 트리거 가중치가 그 학습 디바이스에 대해 정상적인 것과는 상이한 방법으로 계산되게 할 수도 있다 (예컨대, 트리거 가중치들이 더 많은 각각의 계산을 증가시키는 것, 등). 다양한 실시형태들에서는, 학습 디바이스가 연관된 액션을 실제적으로 수행하는 것을 학습하기 전에 더 높거나 더 낮은 수의 트리거 이벤트들을 검출 (또는 수신) 할 필요가 있을 수도 있도록, 학습 수정자 신호들은 리플렉스들의 트리거 가중치들을 계산함에 있어서 이용된 이득들에 대한 일시적인 변경들을 야기시킬 수도 있다.
예시로서, 스마트 스테레오는 스마트 스테레오에서 FM 튜너를 활성화하는 것을, 스마트 벽 스위치로부터의 '온' 이벤트 신호 및 카우치 내의 센서로부터의 압력 이벤트 신호의 양자에 연관시키는 것을 학습하였다. 다시 말해서, 제 1 연관성은 제 1 임계을 초과하는 제 1 트리거 가중치를 갖는 제 1 리플렉스로서 저장될 수도 있고, 제 2 연관성은 제 2 임계을 초과하는 제 2 트리거 가중치를 갖는 제 2 리플렉스로서 저장될 수도 있다. 그러나, 사용자는 스마트 스테레오가 스마트 벽 스위치로부터의 '온' 이벤트 신호에 응답하여 그 FM 튜너를 활성화하게 하는 것을 희망하기만 할 수도 있다. 이것이 일어나도록 하기 위하여, FM 튜너가 압력 이벤트 신호에 응답하여 활성화하지 않도록, 제 2 리플렉스의 제 2 트리거 가중치는 제 2 임계 미만으로 저하될 필요가 있을 수도 있다. 정상적으로, 사용자는 압력 이벤트 신호 및 FM 튜너를 활성화하는 것 사이의 연관성을 "폐기교육 (unteach)" 하기 위하여 정정 절차를 몇 번 반복해야 할 수도 있다. 예를 들어, 사용자는 카우치 위에 반복적으로 앉아 있어야 하고, FM 튜너를 자동으로 활성화하기 위하여 스테레오를 대기해야 하고, 그 다음으로, 스마트 스테레오가 제 2 리플렉스에 대한 제 2 트리거 가중치를 제 2 임계 미만으로 저하시켰을 때까지 스마트 스테레오 상의 '정정' 버튼을 눌러야 할 수도 있다. 이 정상적인 프로세스는 사용자가 실행하기를 희망하지 않을 수도 있는 지루하고, 시간 소비적인 노력일 수도 있다.
예시를 계속하면, 사용자는 스마트 스테레오의 학습 레이트를 조절하기 위해 학습 수정자 디바이스를 이용할 수도 있고, 이에 따라, 압력 이벤트 신호 및 FM 튜너를 활성화하는 것 사이의 연관성을 폐기교육하기 위해 이용된 시간을 더 빠르게 할 수도 있다. 특히, 사용자는 학습 수정자 디바이스를 스마트 스테레오의 근접성 내에 운반할 수도 있어서, 스마트 스테레오가 트리거 가중치들을 계산하기 위해 이용된 변수들을 조절하게 할 수도 있다. 다음으로, 사용자는 카우치 위에 앉아 있을 수도 있어서, FM 튜너 활성화를 트리거링하는 압력 이벤트 신호가 스마트 스테레오에서 수신되게 할 수도 있다. 다음으로, 사용자는 '정정' 버튼을 누를 수도 있어서, 스마트 스테레오로 하여금, 학습 수정자 신호들에 기초하여 조절된 변수들을 이용하여 제 2 리플렉스에 대한 새로운 트리거 가중치를 계산하게 할 수도 있다. 그 후에, 사용자가 카우치 위에 앉아 있을 때, '정정' 버튼의 단 한번의 누름은 조절된 학습 레이트로 인해 연관성을 폐기교육하기 위해 적절하였으므로, 스마트 디바이스는 FM 튜너를 활성화하지 않을 수도 있다.
다양한 실시형태들에서, 학습 수정자 디바이스는 스마트폰, 전용 시그널링 디바이스 또는 송신기 (예컨대, "마술 봉 (magic wand)" 디바이스), 또는 근처의 학습 디바이스들에 의한 수신을 위해 구성된 신호를 브로드캐스팅할 수 있는 또 다른 프로그래밍가능한 디바이스일 수도 있다. 일부의 실시형태들에서, 학습 수정자 디바이스는 다른 신호들 또는 사용자 입력들을 수신하는 것에 응답하여 학습 수정자 신호들을 송신할 수도 있다. 예를 들어, 학습 수정자 디바이스는 WiFi 라우터를 통해 인터넷 또는 로컬 영역 네트워크 상에서 커맨드를 수신하는 것에 응답하여 신호들을 브로드캐스팅하는 것을 시작하거나 정지할 수도 있다. 또 다른 예로서, 학습 수정자 디바이스는 사용자가 시작 버튼을 누르는 것, 또는 학습 수정자 디바이스 상에서 애플리케이션을 로딩, 액세스, 또는 이와 다르게 활성화하는 것에 응답하여 학습 수정자 신호들을 송신하는 것을 시작하거나 정지할 수도 있다. 일부의 실시형태들에서, 학습 수정자 디바이스는 페어링된 블루투스 블루투스 디바이스 (예컨대, 전화) 와의 링크를 통한 것과 같은, 단거리 시그널링을 통해 사전-연관된 사용자 디바이스에 접속될 때에 학습 수정자 신호들을 송신할 수도 있다.
일부의 실시형태들에서, 학습 수정자 디바이스에 의해 송신된 학습 수정자 신호들은, 학습 디바이스들이 학습 모드 동안에 트리거들 및 액션들 사이의 새로운 연관성들을 생성하고 및/또는 사전에 존재하는 리플렉스들의 트리거 가중치들을 조절할 수 있는 그러한 학습 모드를 인에이블 또는 디스에이블 (즉, 진입 또는 나감) 해야 하는 것을 표시할 수도 있다. 예를 들어, 스마트 스테레오가 트리거들 및 수행되어야 할 액션들 사이의 연관성들의 새로운 리플렉스들을 디폴트로 생성할 수 없을 때, 사용자는 스마트 스테레오를 일시적으로 인에이블된 학습 모드로 하기 위하여 학습 수정자 디바이스를 이용할 수도 있어서, 스테레오는 근처의 스마트 벽 스위치로부터 '온' 이벤트 신호를 수신하는 것에 응답하여 턴 '온' 하는 것을 학습할 수도 있다. 추가의 예로서, 사용자가 스마트 스테레오가 임의의 다른 연관성들을 학습하는 것 (그러므로, 리플렉스들을 저장함) 을 원하지 않을 때, 사용자는 룸 (room) 으로부터 학습 수정자 디바이스를 제공할 수도 있어서, 스마트 스테레오를 디스에이블된 학습 모드로 할 수도 있다. 이러한 방법으로, 학습 수정자 디바이스가 로케이션으로부터 제거될 때, 로케이션에서의 학습 디바이스들은 의도되지 않은 학습으로부터 보호될 수도 있다. 예를 들어, 손님들이 방문할 때, 주택 소유자는 스마트 TV 가 손님들의 활동들에 기초하여 우연히 연관성들을 학습하는 것을 정지시키기 위하여, TV 룸으로부터 학습 수정자 디바이스를 제거할 수도 있다.
다양한 실시형태들에서, 일부의 학습 디바이스들은 학습 수정자 신호들 및/또는 학습 수정자 디바이스의 근접성 내의 데이터에 기초하여 학습 수정자 디바이스에 의해 영향받을 수도 있거나 영향받지 않을 수도 있다. 예를 들어, 학습 수정자 신호들은 스마트 TV 들만이 그 학습 레이트들을 조절하기 위한 것임을 표시하는 데이터를 포함할 때, 스마트 벽 스위치는 학습 수정자 신호들을 수신하는 것에 응답하여 그 학습 레이트를 조절하지 않을 수도 있다.
일부의 실시형태들에서, 학습 수정자 신호들은 근처의 학습 디바이스들에 의한 위조 또는 다른 의도되지 않은 학습을 금지하기 위하여 암호화될 수도 있거나, 또는 이와 다르게 보안화될 수도 있다. 예를 들어, 브로드캐스트 학습 수정자 신호들은 사용자의 스마트 디바이스들과 오직 공유되는 비밀 디코딩 키 (secret decoding key) 를 이용하여 생성된 해시 (hash) 를 포함할 수도 있다. 이러한 보안 조치들은 학습 수정자 디바이스들이 아파트들 또는 연립 주택들과 같은 다가구 건물들에서 이용될 때에 유익할 수도 있다.
다음의 설명들에서, 학습 디바이스들은, 도 1c 및 도 2 를 참조하여 이하에서 설명된 컴포넌트들을 가지는 학습 디바이스들의 특정 실시형태들인 스마트 박스 (smart box) 또는 스마트 박스들로서 지칭될 수도 있다. 그러나, 유사한 컴포넌트들 및 기능성들을 가지는 다른 학습 디바이스들 또는 스마트 디바이스들은 또한, 이 개시물에서 설명된 바와 같이 다양한 실시형태들을 사용하도록 구성될 수도 있다는 것을 인식해야 한다.
도 1a 는 다양한 디바이스들 (102, 104, 106, 114, 115, 116) 이 신호들을 서로 전송하고 수신하는 스마트 박스들 (103a 내지 103e) 에 의해 제어될 수도 있는 일 실시형태의 시스템 (100) 을 예시한다. 스마트 박스들 (103a 내지 103e) 사이에서 통신된 신호들은, 각각의 스마트 박스가 신호를 시스템 (100) 내의 특정 액션 또는 조건의 발생에 관련되는 것으로서 인식하는 것을 가능하게 하는 데이터 또는 다른 정보를 포함할 수도 있다. 특히, 스마트 박스들 (103a 내지 103e) 은 라디오 주파수 (radio frequency; RF) 송신들 (112) 또는 무선 통신 링크들을 통해, 도 3a 를 참조하여 이하에서 설명된 바와 같이 발생 데이터를 포함하는 이벤트 보고 메시지들을 브로드캐스팅할 수도 있다. 스마트 박스들 (103a 내지 103e) 은 대안적으로 또는 추가적으로, 배선 접속들, 광, 사운드 (sound), 또는 이러한 매체들의 조합들을 통해 서로 통신할 수도 있다.
일 예로서, 다양한 실시형태들에 의해 가능하게 된 시스템 (100) 은, 벽 스위치 (102) 가 (예컨대, 바닥 램프 (104) 를 턴 온 하기 위하여) 다른 디바이스들에 의한 응답들을 제어하는 것을 가능하게 하는 신호들을 송신하는 스마트 박스 (103a) 에 접속된 벽 스위치 (102) 를 포함할 수도 있다. 벽 스위치 (102) 는 유선 접속 (110) 에 의해 스마트 박스 (103a) 에 접속될 수도 있거나, 스마트 박스 (103a) 및 벽 스위치 (102) 는 단일 유닛으로 조합될 수도 있다. 벽 스위치 (102) 가 토글 (toggle) 될 때, 그 연관된 스마트 박스 (103a) 는 상태에 있어서의 이 변경을 검출할 수도 있고, RF 송신 (112) 을 통해 이벤트 보고 메시지를 방출할 수도 있고, 이 이벤트 보고 메시지는 송신 스마트 박스 (103a) 의 반경 내에서 다른 스마트 박스들 (103b 내지 103e) 중의 임의의 것에 의해 수신될 수도 있다. 하나의 이러한 수신 스마트 박스 (103b) 는 유선 접속 (110b) 을 통해 바닥 램프 (104) 에 접속될 수도 있다. 예로서, 바닥 램프 스마트 박스 (103b) 는, 바닥 램프 (104) 로 하여금 턴 온 되게 하는 이벤트를 생성함으로써, '온' 위치로 이동되는 벽 스위치 (102) 에 대응하는 이벤트 보고 메시지에 응답하도록 훈련될 수도 있다. 바닥 램프 (104) 가 턴 온될 때, 그 스마트 박스 (103b) 는, 이벤트를 표시하는 발생 데이터를 포함하며 다른 근처의 스마트 박스들 (103c 내지 103e) 뿐만 아니라 벽 스위치 (102) 에 접속된 스마트 박스 (103a) 에 의해 수신될 수도 있는 이벤트 보고 메시지를 브로드캐스팅할 수도 있다. 대안적으로 또는 추가적으로, 스마트 박스들 (103a, 103c 내지 103e) 은, 램프의 턴 온이 발생/조건/액션을 표시하는 신호로서 취급될 수도 있도록, 바닥 램프 (104) 로부터의 광을 감지할 수도 있는 광 센서를 포함할 수도 있다.
도 1a 에서 예시된 바와 같이, 데스크 램프 (desk lamp; 115), 스테레오 (stereo; 106), 이동 전화 (114), 및 센서 (116) 와 같은 다양한 디바이스들이 스마트 박스들에 결합될 수도 있다. 스마트 박스들 (103a 내지 103e) 은 개별적인 디바이스들 (102, 104, 115, 116) 로부터 분리되어 있는 것으로 도시되어 있지만, 각각의 디바이스는 내부 스마트 박스를 포함할 수도 있고, 하나의 디바이스 내의 스마트 박스는 별도의 디바이스에 결합될 수도 있다. 설명의 용이함을 위하여, 바닥 램프 (104), 벽 스위치 (102), 데스크 램프 (115), 센서 (116), 및 스테레오 (106) 에 대한 임의의 참조는 또한, 이와 다르게 기재되지 않았으면, 그 대응하는 스마트 박스를 지칭할 수도 있다.
도 1a 에서 도시되지 않았지만, 시스템 전반에 걸쳐 다른 학습 디바이스들 또는 스마트 박스들에 의해 수신되고 프로세싱될 수도 있는 신호들 (즉, 이벤트 보고 메시지들) 을 송신하기 위하여, 비-학습 디바이스들이 시스템 (100) 에서 포함될 수도 있다. 예를 들어, 벽 스위치 (102) 는 도시된 스마트 박스 (103a) 대신에 송신기를 가질 수도 있다. 온으로 토글될 때, 벽 스위치는 인코딩된 '온 (on)' 신호 (예컨대, 1-비트 이벤트 보고 메시지) 를 전송할 수도 있고, 벽 스위치가 오프로 토글될 때에는, 그것은 상이한 인코딩된 '오프 (off)' 신호 (예컨대, 2-비트 이벤트 보고 메시지) 를 전송할 수도 있다. 시스템에서의 또 다른 스마트 박스 (예컨대, 바닥 램프 (104) 에 접속된 스마트 박스 (103b)) 는 어느 하나의 신호를 수신할 수도 있고, 이것을, 저장된 리플렉스의 연관된 액션에 대응할 수도 있는 이벤트로 변환할 수도 있다.
스마트 박스는 통상적으로, 스마트 박스에서 또는 스마트 박스에 의해 수행된 액션들 및/또는 스마트 박스에서 검출된 조건들 (예컨대, 센서 데이터) 과 같은, 스마트 박스에서의 이벤트들을 표시하는 이벤트 보고 메시지들을 브로드캐스팅하거나, 또는 이와 다르게 송신하도록 구성될 수도 있다. 예를 들어, 스마트 박스 또는 스마트 박스에 무선으로 접속된 송신기 ("보고기") 는 개리지 도어 (garage door) 가 개방되었음을 표시하는 데이터를 포함하는 신호를 브로드캐스팅할 수도 있다. 스마트 박스는 통상적으로, 로케이션에서 다른 스마트 박스들과 직접적으로 계합 (engage) 하도록 구성되지 않을 수도 있지만, 그 대신에, 응답들을 간청하지 않으면서, 및/또는 다른 디바이스들의 동작들의 고려 없이 발생 데이터를 단지 보고할 수도 있다. 그러나, 일부의 실시형태들에서, 스마트 박스들은 이러한 송신들 (112) 을 통해 서로 직접적으로 통신할 수도 있다. 예를 들어, 로케이션 (예컨대, 집, 사무실 등) 내에 배치된 새로운 스마트 박스는 그 가장 좋아하는 (또는 가장 빈번하게 조우된) 이벤트들을 표시하는 데이터를 요구하기 위하여 신호들을 로케이션 내의 다른 학습 디바이스들로 송신할 수도 있고, 다른 디바이스들로부터 응답 신호들을 수신하는 것에 응답하여, 새로운 스마트 박스는 바이어스 (bias) 를 설정하도록 구성될 수도 있다.
시스템 (100) 은 시스템 (100) 내의 다양한 스마트 박스들 (103a 내지 103e) 에 의한 수신을 위한 유선 또는 무선 신호들을 송신할 수 있는 학습 수정자 디바이스 (150) 를 더 포함할 수도 있다. 특히, 학습 수정자 디바이스 (150) 는 블루투스 LE (Bluetooth LE), WiFi 다이렉트 (WiFi Direct), RF 등과 같은 무선 송신들 (112') 을 통해 학습 수정자 신호들을 스마트 박스들 (103a 내지 103e) 로 전송할 수도 있다. 예를 들어, 학습 수정자 디바이스 (150) 는, 제 1 스마트 박스 (103a) 로 하여금 리플렉스들에 대한 트리거 가중치들을 계산함에 있어서 이용된 학습 레이트를 증가시키게 하는 학습 수정자 신호들을 주기적으로 브로드캐스팅하도록 구성될 수도 있다. 또 다른 예로서, 학습 수정자 디바이스 (150) 는 제 1 스마트 박스 (103a) 로 하여금 학습 모드를 디스에이블 또는 인에이블하게 하는 (예컨대, 새로운 리플렉스들을 생성하고 및/또는 기존의 리플렉스들에 대한 트리거 가중치들을 변경할 수 있거나 할 수 없게 되는 것, 등) 학습 수정자 신호들을 송신할 수도 있다.
일부의 실시형태들에서, 학습 수정자 디바이스 (150) 는 무선 또는 유선 링크 (153) 를 통한 인터넷 (152) 에 대한 접속을 제공하도록 구성된 네트워크 인터페이스를 선택적으로 포함할 수도 있다. 예를 들어, 네트워크 인터페이스는 광역 네트워크 (wide area network; WAN) 와 통신할 수 있는 트랜시버 (예컨대, WiFi 라디오, 셀룰러 네트워크 라디오 등) 일 수도 있다. 인터넷 (152) 에 대한 접속에 기초하여, 학습 수정자 디바이스 (150) 는 접속 (155) 을 통해 인터넷 (152) 에 접속된 원격 서버 (154) 와 같은, 다양한 디바이스들 및 데이터 소스들과 인터넷 프로토콜들을 통해 통신할 수도 있다. 원격 서버 (154) 는 웹 서버, 클라우드 컴퓨팅 서버, 또는 제 3 자와 연관된 다른 서버 디바이스일 수도 있다. 예를 들어, 원격 서버 (154) 는, 학습 수정자 디바이스 (150) 상에서 다운로딩되고 이용될 수도 있는 프로그램들, 앱들 (또는 애플리케이션들), 커맨드들, 명령들, 스크립트들, 루틴들, 구성들, 또는 다른 정보를 분배하는 웹 포털 또는 데이터 소스와 연관된 서버일 수도 있다.
도 1b 는 시스템 (100') 에서의 벽 스위치 (102) 가 내부적으로, 또는 유선 접속 (110a) 과 같은 또 다른 접속에 의한 것 중의 어느 하나로, 스마트 박스 (103a) 에 접속될 수도 있음을 예시한다. 벽 스위치 (102) 는 터치 센서 (119) 또는 토글을 가질 수도 있다. 터치 센서 (119) 가 터치되거나 토글될 때 (예컨대, 벽 스위치 (102) 가 턴 온 됨), 상태 변경은 유선 접속 (110a) 을 통해 스마트 박스 (103a) 에 발생 데이터로서 통신될 수도 있다. 스마트 박스 (103a) 는 이벤트로서 발생 데이터에 의해 표시된 상태 변경을 인터셉트할 수도 있고, 예컨대, RF 송신들 (112a, 112b) 에 의해, 이벤트와 연관된 이벤트 보고 메시지를 무선으로 송신할 수도 있다. 이벤트 보고 메시지는 벽 스위치 (102) 의 수신 범위 (123) 내에서 임의의 스마트 박스에 의해 수신될 수도 있다. 일부의 실시형태들에서, 바닥 램프 (104) 는, RF 송신 (112a) 을 수신하는 스마트 박스 (103b) 를 포함할 수도 있거나 스마트 박스 (103b) 에 결합될 수도 있다. RF 송신 (112a) 을 통해 이벤트 보고 메시지를 수신하고 나서 잠시 후에, 바닥 램프 (104) 상의 램프 스위치 (126) 는 사용자에 의해 온으로 스위칭될 수도 있어서, 이에 따라, 전등 (124) 을 턴 온 할 수도 있다. 바닥 램프 (104) 는 그것이 지금은 '온' 상태에 있음을 그 스마트 박스 (103b) 에 시그널링할 수도 있고, 스마트 박스 (103b) 는 이 신호를 발생 데이터로서 해석할 수도 있다. 이 신호는 램프 스위치 (126) 및 스마트 박스 (103b) 사이의 유선 접속 (110b) 에 의해, 또는 (예컨대, Bluetooth® 데이터 링크를 통해) 무선으로 송신될 수도 있다. 스마트 박스 (103b) 가 램프를 에너자이징하는 스위치를 포함할 때, 이 시그널링은 이 스위치의 작동일 수도 있다.
다양한 실시형태들에서, 바닥 램프 (104) 와 연관된 스마트 박스 (103b) 는, 벽 스위치를 토글하기 바로 전 또는 바로 후에 (예컨대, 5 내지 10 초 이내) 바닥 램프 (104) 를 수동으로 턴 온 하는 사용자에 의해 벽 스위치 스마트 박스 (103a) 로부터 토글 신호 (즉, 토글 액션을 표시하는 발생 데이터를 포함하는 이벤트 보고 메시지) 를 수신하는 것에 응답하여, 바닥 램프 (104) 를 에너자이징하거나 바닥 램프 (104) 로 하여금 턴 온 하게 하도록 훈련될 수도 있다. 이러한 학습을 달성하기 위하여, 스마트 박스 (103b) 는 (이벤트 보고 메시지에서 보고된 바와 같은) 벽 스위치 토글에 관련된 이벤트들 및 (바닥 램프 (104) 로부터 획득된 발생 데이터를 통해 보고된 바와 같은) 바닥 램프 (104) 의 활성화가 미리 결정된 시간 윈도우 내에서 언제 발생하는지를 인식할 수도 있다. 이것은, 미리 결정된 시간의 윈도우에 대한 획득된 발생 데이터로부터 생성된 이벤트들을 버퍼링하고, 버퍼에서 저장된 이벤트들을 프로세싱하고 상관시키고, 그 시간 후에 버퍼로부터 이벤트들을 삭제함으로써 적어도 부분적으로 달성될 수도 있다. 예를 들어, 바닥 램프 (104) 에 접속된 스마트 박스 (103b) 는, 미리 결정된 시간 윈도우 내에서 2 개의 이벤트들이 생성되거나 발생할 때, 벽 스위치 (102) 의 '온' 이벤트를 바닥 램프 (104) 의 램프 스위치 (126) 의 '온' 이벤트 와 연관시킬 수도 있어서, 사실상, 미래의 벽 스위치 (102) '온' 이벤트들이 바닥 램프 (104) 의 활성화를 트리거링해야 한다는 것을 학습할 수도 있다. 일부의 실시형태들에서는, 이벤트들의 순서가 중요할 수도 있는 반면, 일부의 실시형태들에서는, 이벤트들의 순서가 중요하지 않을 수도 있고, 그러므로, 이벤트들이 미리 결정된 시간 윈도우 내에서 발생 (또는 생성됨) 하는 한, 이벤트들의 순서는 반전될 수도 있다. 예를 들어, 벽 스위치 (102) 에 접속된 스마트 박스 (103a) 는 바닥 램프 (104) 의 램프 스위치 (126) 의 '온' 이벤트를 벽 스위치 (102) 의 추후의 '온' 이벤트 (예컨대, 터치 센서 (119) 에 대한 터치) 와 연관시킬 수도 있어서, 사실상, 미래의 벽 스위치 (102) '온' 이벤트들이 바닥 램프 (104) 의 활성화를 트리거링해야 한다는 것을 여전히 학습할 수도 있다. 이하에서 더욱 상세하게 설명된 바와 같이, 이러한 훈련은 바람직하지 않은 거동들의 부적절한 학습을 회피하기 위하여 일부의 반복을 요구할 수도 있다.
도 1c 에서 예시된 바와 같이, 일 실시형태의 스마트 박스 (103) 는 신호 수신기 (142) 로부터 수신된 이벤트 보고 메시지들을 프로세싱하도록 구성된 프로세서 (132) (중앙 프로세서 유닛 (central processor unit; CPU) 으로서 도 1c 에서 지칭됨) 를 포함할 수도 있다. 스마트 박스 (103) 는, 다른 학습 디바이스들 또는 스마트 박스들에 의해 수신될 수도 있는 RF 신호들을 통해 이벤트 보고 메시지들 내의 발생 데이터를 송신하도록 구성된 신호 송신기 (136) 를 포함할 수도 있다. 위에서 설명된 바와 같이, 이러한 이벤트 보고 메시지들 내의 발생 데이터는 스마트 박스 (103) 에서 조우된 조건 또는 수행된 액션을 정의하거나 특징화할 수도 있다 (즉, 이벤트 보고 메시지들은 스마트 박스 (103) 에서 생성된 이벤트들을 특징화할 수도 있음). 또한, 그 신호 수신기 (142) 를 통해, 스마트 박스 (103) 는 다른 디바이스들로부터 유사한 송신된 RF 신호들을 통해 이벤트 보고 메시지들을 수신할 수도 있고, 이하에서 설명된 바와 같은 데이터 구조를 이용하여, 수신된 신호들로부터의 수신된 발생 데이터를 메모리 (138) 내의 버퍼에서 이벤트들로서 저장할 수도 있다. 일부의 실시형태들에서, 메모리 (138) 는 이 개시물의 전반에 걸쳐 설명된 바와 같은 연관된 패턴들을 가지는 리플렉스들을 저장하기 위한 저장장치 (예컨대, 랜덤 액세스 메모리 (RAM), 플래시 등) 의 양 (예컨대, 32 킬로바이트 (KB), 64 KB 등) 을 포함할 수도 있다. 실시형태의 스마트 박스 (103) 는 스마트 박스 (103) 에 의해 검출된 상태들에 있어서의 변경들을 표시하는 발생 데이터를 획득하기 위한 센서 인코더 (134) 를 포함할 수도 있다. 예를 들어, 스마트 박스 (103) 가 바닥 램프에 접속되고 바닥 램프가 턴 온 될 경우, 접속된 스마트 박스 (103) 에서의 센서 인코더 (134) 는 상태에 있어서의 변경을 디지털적으로 식별하거나 맵핑하기 위한 발생 데이터를 생성할 수도 있다. 이 발생 데이터는 스마트 박스 (103) 의 메모리 (138) 내에 저장될 수도 있고, 그 브로드캐스트 범위 내의 다른 학습 디바이스들 (예컨대, 스마트 박스들) 에 대한 이벤트 보고 메시지들 내에서 브로드캐스팅될 수도 있다. 다른 학습 디바이스들은 그 신호 수신기들을 통해 발생 데이터를 포함하는 이벤트 보고 메시지들을 수신할 수도 있고, 궁극적으로, 본원에서 설명된 다양한 학습 알고리즘들에 의해 관련된 이벤트들을 프로세싱할 수도 있다. 일부의 실시형태들에서, 메모리 (138) 는 휘발성 랜덤 액세스 메모리 (RAM) 유닛 (들) 및 비휘발성 플래시 메모리 유닛 (들) 을 포함할 수도 있다. 이러한 실시형태들에서, RAM 유닛들은 스마트 박스 (103) 의 다양한 기능들을 동작시키기 위하여 이용될 수도 있고, 지속적 데이터 (예컨대, 리플렉스들 등) 및 로그 데이터 (예컨대, 획득된 이벤트들, 신호들 등) 를 저장하기 위하여 이용될 수도 있다. 일부의 실시형태들에서, (이하에서 설명된 바와 같은) 리플렉스들은 플래시 메모리 내에 저장되지 않고, 그 대신에, 학습된 거동들의 효율적이고 용이한 재설정 (예컨대, 전력을 턴 오프함으로써 훈련되지 않은 상태로 재설정하고 RAM 에서 모든 리플렉스들을 소거함) 을 촉진하기 위하여, 휘발성 RAM 내에 저장될 수도 있다. 일부의 실시형태들에서, 플래시 메모리는 사이즈에 있어서 변동될 수도 있고, 이와 다르게, 선택적일 수도 있다. 예를 들어, 플래시 메모리는 64 MB RAM 유닛과 동일한 64 MB 저장 유닛일 수도 있고, 양자는 도 1c 에서 나타낸 바와 같은 메모리 (138) 내에 포함될 수도 있다.
추가적으로, 스마트 박스 (103) 는 상관된 트리거에 응답하여 학습된 리플렉스 액션으로서, 접속된 디바이스 상에서 물리적 액션들을 수행하기 위한 모터 구동기 (140) 를 포함할 수도 있다. 예를 들어, 스마트 박스 (103) 가 바닥 램프에 접속되고, 수신된 이벤트 보고 메시지에 응답하여 생성된 이벤트에 기초하여, 바닥 램프가 턴 온 되어야 하는 것으로 결정할 경우, 스마트 박스 (103) 의 프로세서 (132) 는 바닥 램프 상의 전력 스위치를 작동시키기 위하여 모터 구동기 (140) 에 시그널링할 수도 있다. 모터 구동기 (140) 대신에 (또는 이에 추가하여), 스마트 박스 (103) 는 상관된 트리거에 응답하여 학습된 리플렉스 액션으로서, 기기를 외부 전력 공급 장치 (예컨대, 120V AC 전력) 에 접속하도록 구성된 중계기를 포함할 수도 있다.
일부의 실시형태들에서, 스마트 박스 (103) 는 스마트 박스 (103) 의 컴포넌트들에 결합된 배터리 (143) (예컨대, 재충전가능한 리튬-이온 배터리 등) 를 포함할 수도 있다. 일부의 실시형태들에서, 스마트 박스 (103) 는, 재충전가능한 배터리 (143) 를 충전하기 위한 전류를 수신하거나, 또는 이와 다르게 전력을 스마트 박스 (103) 의 다양한 컴포넌트들에 제공하기 위한 배선 또는 다른 인터페이스 (144) (예컨대, 교류 (AC) 전력 아웃렛에 접속하기 위한 플러그 (plug) 들 또는 프롱 (prong) 들 등) 를 추가적으로 포함할 수도 있다.
도 1d 는 원격 서버로부터의 정보 다운로딩된 데이터 및/또는 사용자 입력 데이터와 같은 다양한 데이터를 프로세싱하도록 구성된 프로세서 (180) 를 포함할 수도 있는 일 실시형태의 학습 수정자 디바이스 (150) 를 예시한다. 학습 수정자 디바이스 (150) 는 블루투스 애드버타이즈먼트 패킷 (Bluetooth advertisement packet) 들과 같은 단거리 신호들을 교환하도록 구성되는 신호 트랜시버 (188) 를 포함할 수도 있다. 예를 들어, 학습 수정자 디바이스 (150) 는 근처의 스마트 박스들에 의한 수신을 위한 학습 수정자 신호들을 전송하기 위한 블루투스 또는 WiFi 라디오를 포함할 수도 있다. 학습 수정자 디바이스 (150) 는 또한, 다양한 통신 네트워크들과 통신하기 위한 선택적인 네트워크 인터페이스 (184) 를 포함할 수도 있다. 예를 들어, 네트워크 인터페이스 (184) 는 광역 네트워크 트랜시버, 이더넷 (Ethernet) 인터페이스, 셀룰러 네트워크 칩, 및/또는 학습 수정자 디바이스 (150) 가 인터넷 프로토콜들을 통해 메시징을 교환하는 것을 가능하게 할 수 있는 다른 컴포넌트들일 수도 있다. 학습 수정자 디바이스 (150) 는, 사용자 입력들을 수신하도록 구성된 터치 스크린, 정보를 디스플레이할 수 있는 스크린, 및/또는 사용자들이 학습 수정자 디바이스 (150) 에 의한 학습 수정자 신호들의 송신을 제어하거나 변경하기 위한 주변기기들과 같은 사용자 인터페이스 컴포넌트 (186) 를 포함할 수도 있다. 또한, 학습 수정자 디바이스 (150) 는 데이터 (예컨대, 사용자 입력 데이터, 원격 서버로부터 다운로딩된 데이터 등) 를 메모리 (182) 내의 버퍼에서 저장할 수도 있다. 예를 들어, 학습 수정자 디바이스 (150) 는 이벤트 데이터 구조들을 메모리 (182) 내에 저장할 수도 있다. 일부의 실시형태들에서, 학습 수정자 디바이스 (150) 는 학습 수정자 디바이스 (150) 의 컴포넌트들에 결합된 배터리 (190) (예컨대, 재충전가능한 리튬-이온 배터리 등) 를 포함할 수도 있다. 다른 실시형태들에서, 학습 수정자 디바이스 (150) 는, 재충전가능한 배터리 (190) 를 충전하기 위한 전류를 수신하거나, 또는 이와 다르게 전력을 학습 수정자 디바이스 (150) 의 다양한 컴포넌트들에 제공하기 위한 배선 또는 다른 인터페이스 (192) (예컨대, 교류 (AC) 전력 아웃렛에 접속하기 위한 플러그 (plug) 들 또는 프롱 (prong) 들 등) 를 추가적으로 포함할 수도 있다.
도 2 는 이벤트들로부터 새로운 거동들을 학습하고 추후의 이벤트들에 응답하여 학습된 거동들을 수행하기 위하여, 다양한 기능적인 컴포넌트들이 어떻게 함께 결합되거나 통신할 수도 있는지의 예를 도시하는 스마트 박스 (103) 의 일 실시형태의 아키텍처 (200) 를 예시한다. 스마트 박스 (103) 는 이벤트 생성기 (202), 센서 인코더 (134), 및 신호 수신기 (142) 를 포함할 수도 있다. 이벤트 생성기 (202) 는 알려진 이벤트 패턴 (예컨대, 이전에 학습되거나 프로그래밍된 패턴) 을 표시하는 데이터를 수신하는 것에 응답하여 이벤트 또는 하나 이상의 이벤트들의 시퀀스를 생성할 수도 있다. 예를 들어, 이벤트들의 패턴이 스마트 박스 (103) 에 접속된 바닥 램프를 턴 온하는 미리 정의된 액션과 연관될 경우, 이벤트 생성기 (202) 는 신호 내에서 수신된 발생 데이터로부터 생성된 이벤트를, 이벤트 패턴 저장장치 (204) 에서 저장된 패턴과 일치시키는 것에 응답하여 "램프-온 (lamp-on)" 이벤트를 생성할 수도 있다. 다음으로, 생성된 이벤트는 스마트 박스 (103) 에 접속된 바닥 램프의 전등을 턴 온 하기 위하여 이벤트 버스 (214) 를 통해 모터 구동기 (140) 에 통신된다.
스마트 박스 (103) 는 또한, 신호 수신기 (142) 를 통해 또 다른 스마트 박스로부터 신호들 (예컨대, 이벤트 보고 메시지들) 내의 발생 데이터를 수신할 수도 있다. 신호 수신기 (142) 에 의해 수신된 신호들로부터의 데이터는 이벤트 버스 (214) 를 통해, 이벤트 레코더 (event recorder; 206) 와 같은 다른 디바이스 컴포넌트들에 이벤트들로서 전송될 수도 있다.
스마트 박스 (103) 는 또한, 이벤트 버스 (214) 를 통해 이벤트를 다른 컴포넌트들에 통신할 수도 있는 센서 인코더 (134) 로부터의 이벤트를 인식할 수도 있다. 예를 들어, 사용자가 스마트 박스 (103) 에 접속된 바닥 램프를 수동으로 턴 온할 경우, 상태에 있어서의 그 변경 (예컨대, 전등을 '오프' 로부터 '온' 으로 하는 것) 을 표시하는 발생 데이터는 상태에 있어서의 변경을 이벤트로 변환하는 센서 인코더 (134) 에 의해 디지털적으로 인코딩될 수도 있다.
신호 송신기 (136) 는 이벤트 버스 (214) 를 통해 수신된 이벤트에 기초하여 발생 데이터를 추후에 송신할 수도 있어서, 발생 데이터는 또한, 이벤트 보고 메시지들을 통해 또 다른 스마트 박스에 의해 수신될 수도 있다. 이것은 하나의 스마트 박스 (103) 로부터 또 다른 것으로의 이벤트들에 대한 정보의 전송을 허용할 수도 있어서, 스마트 박스들이 서로로부터 학습하고 각각의 개별 스마트 박스에 의해 학습된 거동들에 기초하여 복잡한 시스템 거동들을 생성하는 것을 허용하도록 할 수도 있다. 이벤트들에 관련된 데이터 (즉, 이벤트 보고 메시지들에서의 발생 데이터) 의 재송신 또는 브로드캐스팅은 스마트 박스들이 함께 데이지-체인 (daisy-chain) 으로 연결되는 것을 허용할 수도 있어서, 주어진 스마트 박스의 신호 범위를 연장시킬 수도 있다.
이벤트 레코더 (206) 는 이벤트 버스 (214) 로부터 이벤트를 수신할 수도 있고, 이벤트를 이벤트 패턴 저장장치 (204) 내에 저장할 수도 있다. 일부의 실시형태들에서, 이벤트 레코더 (206) 는 발생 데이터를 수신할 수도 있고, 이벤트 패턴 저장장치 (204) 에서의 저장을 위한 수신된 데이터에 기초하여 이벤트를 생성할 수도 있다. 이벤트 선택기 (210) 는 이벤트 레코더 (206) 로부터 하나 이상의 이벤트들을 수신할 수도 있다. 이벤트들의 특정 조합을 수신하는 것에 응답하여, 선택기 (210) 는 저장 패턴 커맨드를 생성할 수도 있고 저장 패턴 커맨드를 이벤트 레코더 (206) 로 전송할 수도 있어서, 이 이벤트 레코더가 이벤트들의 조합을 이벤트 패턴 저장장치 (204) 에서의 패턴으로서 저장하도록 명령할 수도 있다. 일부의 실시형태들에서, 이벤트 선택기 (210) 는 이벤트 버스 (214) 로부터 직접적으로 이벤트들을 수신할 수도 있다.
스마트 박스 (103) 를 갖는 컴포넌트들의 동작들 및 상호작용들은 다음의 예에서 예시되어 있다. 바닥 램프에 접속된 스마트 박스 (103) 는, 신호 수신기 (142) 를 통해 스마트 박스 (103) 에서 수신된, 벽 스위치로부터의 이벤트 보고 메시지를 통해 상태에 있어서의 변경을 표시하는 발생 데이터를 수신할 수도 있다. 신호 수신기 (142) 를 통한 스마트 박스 (103) 는 상태에 있어서의 벽 스위치 변경에 관련된 이벤트를 이벤트 버스 (214) 를 통해 이벤트 레코더 (206) 에 통신할 수도 있다. 그 바로 후에, 사용자는 스마트 박스 (103) 에 접속된 바닥 램프의 전등 (124) 을 수동으로 턴 온 할 수도 있고, 이에 응답하여, 센서 인코더 (134) 는 상태에 있어서의 이 변경을 이벤트로 변환할 수도 있고, 이벤트를 이벤트 버스 (214) 를 통해 이벤트 레코더 (206) 에 통신할 수도 있다. 이벤트 레코더 (206) 는 이벤트들이 수신되는 대로, 이벤트들을 선택기 (210) 로 전송할 수도 있다. 선택기 (210) 는 학습 알고리즘으로, 벽 스위치 토글 및 바닥 램프의 수동적 온-전등 (manual on-light) 발생 데이터에 기초하여 생성된 이벤트들의 패턴을 프로세싱할 수도 있다. 이벤트들을 프로세싱한 후, 선택기 (210) 는 이벤트 레코더 (206) 가 저장 패턴 커맨드를 통해 이벤트 패턴 저장장치 (204) 에서 이벤트들의 패턴을 저장하도록 명령할 수도 있다. 이벤트 패턴 저장장치 (204) 는 이벤트들 사이의 학습된 연관성을, 특정 가중치 연관성을 갖는 리플렉스로서 저장할 수도 있다. 일부의 실시형태들에서, 이벤트 패턴 저장장치 (204) 는 정정 패턴들, 보상 패턴들, 트리거 패턴들, 및 액션 패턴들을 생성하기 위하여 이용된 패턴들 또는 이벤트들과 같은, 미리 결정된 패턴들 및/또는 이벤트들을 마찬가지로 저장할 수도 있다.
관찰된 이벤트들 및 액션들 사이의 연관성들에 따라, 선택기 (210) 는 관찰된 액션 패턴 (예컨대, 사용자가 바닥 램프를 턴 온 하였다는 관찰) 및/또는 이하에서 설명된 바와 같은 가중치들의 식들 및/또는 계산들에 관련된 다른 성질들 (즉, 바이어스, 스케일 등) 과 연관된 이벤트의 가중치를 변경 (예컨대, 트리거 이벤트의 트리거 가중치를 증가시킴) 하기 위하여 이득 조절기 (212) 와 함께 작동할 수도 있다.
선택적으로, 센서 인코더 (252) 는 명령된 액션의 시작에 기초하여 추가적인 이벤트들을 제공할 수도 있다. 이 추가적인 이벤트들은 명령된 이벤트가 실제적으로 발생한 것 (예컨대, '온' 액션이 수행되는 것에 응답하여 전등이 실제적으로 온 되는 것, 등) 의 확인일 수도 있고, 스마트 박스 (103) 가 이벤트들 및 액션들 사이의 연관성들을 학습하는 것을 돕기 위하여 보상 이벤트들 (또는 패턴들) 로서 프로세싱될 수도 있다.
도 3a 는 발생 데이터를 특징화하기 위하여 이용될 수도 있는 데이터 구조 (300) 를 예시한다. 발생 데이터는 포맷 컴포넌트 (301), 식별 컴포넌트 (302), 및 상태 컴포넌트 (303) 를 포함하기 위하여 데이터 레코드에서 반영될 수도 있다. (예컨대, 도 1c 에서 도시된 바와 같은) 스마트 박스의 프로세서 (132) (또는 CPU) 는 디코딩 정보를 포맷 컴포넌트 (301) 로서 레코딩할 수도 있다. 이것은 프로토콜 버전, 암호화 타입, 시퀀스 번호, 트랜잭션 식별자 (transaction identifier) (예컨대, 방향, 순서, 또는 시퀀스를 표시하지 않고 다양한 발생 데이터를 그 다음의 것과 구별하기 위하여 이용될 수도 있는 정보), 레코드 시간, 송신 시간 등을 포함할 수도 있다. 그러나, 레코드 시간 및 송신 시간은 포맷 컴포넌트 (301) 에서 선택적인 필드들일 수도 있다. 일부의 실시형태들에서, 트랜잭션 식별자들 (또는 ID 들) 은 값에 있어서 인접하지 않을 수도 있거나, 또는 이와 다르게, 순서 번호들 (예컨대, 시퀀스에서 증가하거나 감소함) 을 표시할 수도 있다. 위에서 설명된 바와 같이, 스마트 박스는 데이터 구조 (300) 를 적어도 포함하는 신호들 (즉, 이벤트 보고 메시지들) 을 송신하도록 구성될 수도 있고, 다른 학습 디바이스들은 이러한 신호들을 수신하고 데이터 구조 (300) 에서 발생 데이터의 나머지를 판독하기 위하여 이 포맷 컴포넌트 (301) 를 이용하도록 구성될 수도 있다. 식별 컴포넌트 (302) 는 발생 데이터를 발신한 디바이스를 표시할 수도 있고, 상태 컴포넌트 (303) 는 발생 데이터가 나타내는 상태 또는 상태에 있어서의 변경에 대응할 수도 있다. 일부의 실시형태들에서, 상태 컴포넌트 (303) 는 디바이스들의 동작 상태들 (예컨대, '온', '오프' 등) 에 추가하여, 볼트 (volt) 들 (예컨대, 0.02) 과 같은 아날로그 상태 데이터를 포함할 수도 있다.
예를 들어, 발생 데이터에 대한 데이터 구조 (300) 는 "V2.1" 의 포맷 컴포넌트 (301), "WALLSWITCH102 (벽 스위치 (102))" 의 식별 컴포넌트 (302), 및 "ON (온)" 의 상태 컴포넌트 (303) 를 포함할 수도 있다. 이것은 벽 스위치에 접속된 스마트 박스 상에서 2.1 의 데이터 포맷 버전을 나타낼 수도 있고, 벽 스위치가 '오프' 로부터 '온' 으로 토글되었음을 나타낼 수도 있다. 이 예를 계속하면, 발생 데이터 및 연관된 이벤트는 (도 1a 에서 도시된) 벽 스위치에서 생성될 수도 있다. 일단 생성되면, 발생 데이터는 벽 스위치와 연관된 스마트 박스로부터 이벤트 보고 메시지에서 브로드캐스팅될 수도 있어서, 그것은 그 브로드캐스트 범위 내의 모든 스마트 박스들에 의해 수신될 수도 있다. 바닥 램프와 연관된 근처의 스마트 박스는 브로드캐스팅된 발생 데이터를 수신하고 프로세싱할 수도 있다. 발생 데이터는 (도 3b 에서의) 더 이후에 설명된 이벤트 데이터 구조 (350) 와 유사한 데이터 컴포넌트들을 가질 수도 있으므로, 수신 스마트 박스는 이벤트들을 생성하고 디코딩하기 위하여 발생 데이터를 사용할 수도 있다. 이것은 이벤트 필터링 및 패턴 생성을 용이하게 하는 것을 도울 수도 있다.
도 3b 는 이벤트를 레코딩하거나 특징화하기 위하여 이용될 수도 있는 데이터 구조 (350) 를 예시한다. 데이터 구조 (350) 는 위에서 설명된 바와 같은 포맷 컴포넌트 (301) 를 선택적으로 포함할 수도 있다. 이벤트는 시간 컴포넌트 (351), 식별 컴포넌트 (352), 및 상태 컴포넌트 (353) 를 포함하기 위하여 데이터 레코드에서 반영될 수도 있다. 이벤트 데이터 구조들 (350) 은 발생 데이터에 대하여 도 3a 에서 상기 설명된 바와 같은 데이터 구조 (300) 와 유사하고, 이벤트들은 발생 데이터와 동시에 생성될 수도 있다. 데이터 구조 (300) (즉, 발생 데이터) 는 데이터 구조 (350)(즉, 이벤트) 를 생성하기 위하여 스마트 박스들에 의해 이용될 수도 있고, 그 역도 마찬가지이다. 스마트 박스가 임의의 이벤트-발신 소스 (예컨대, 신호 수신기 (142)) 를 통해 이벤트에 대한 발생 데이터를 수신할 때, 그것은 이벤트와 연관된 시간 컴포넌트 (351) 를 레코딩할 수도 있는 이벤트 레코더 (206) 에서 이벤트를 특징화하는 데이터를 저장할 수도 있다. 시간 컴포넌트 (351) 는 이벤트가 수신 스마트 박스에 의해 생성되었거나 관찰되었던 시간일 수도 있다. 대안적으로, 시간 컴포넌트 (351) 는 이벤트의 발생 데이터를 송신하기 이전에 발신하는 스마트 박스에 의해 배정된 시간 (즉, 액션이 수행되었거나 조건이 관찰되었던 시간 등) 을 표시할 수도 있다. 식별 컴포넌트 (352) 는 이벤트의 발생 데이터를 발신한 디바이스를 표시할 수도 있고, 상태 컴포넌트 (353) 는 이벤트가 나타내는 상태 또는 상태에 있어서의 변경에 대응할 수도 있다.
예를 들어, 이벤트는 17:12:02 의 시간 컴포넌트 (351), "WALLSWITCH102 (벽 스위치 (102))" 의 식별 컴포넌트 (352), 및 "ON (온)" 의 상태 컴포넌트를 포함할 수도 있다. 이것은 벽 스위치에 접속된 스마트 박스 상에서 17:12:02 에 생성된 이벤트를 나타낼 수도 있고, 벽 스위치가 '오프' 로부터 '온' 으로 토글되었음을 나타낼 수도 있다. 이 예시를 계속하면, 이러한 이벤트를 설명하는 발생 데이터는 벽 스위치와 연관된 스마트 박스로부터 그 브로드캐스트 범위 내의 임의의 스마트 박스로 이벤트 보고 메시지에서 브로드캐스팅될 수도 있다. 바닥 램프와 연관된 스마트 박스는 브로드캐스팅된 이벤트 보고 메시지를 수신할 수도 있고, 이하에서 설명된 바와 같은 학습 알고리즘으로 프로세싱하기 위한 이벤트를 생성하기 위하여 포함된 발생 데이터를 프로세싱할 수도 있다.
이벤트 패턴은 시간 윈도우 또는 시퀀스에서 획득되거나, 생성되거나, 또는 이와 다르게 조우된 하나 이상의 이벤트들을 포함할 수도 있다. 예를 들어, 특정 이벤트 패턴은 학습 디바이스 (예컨대, 스마트 바닥 램프 등) 에 의해 내부적으로 생성된 제 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 에서 획득될 경우, 이벤트 C 는 시간 1 대신에 시간 2 에서 획득되었으므로, 패턴 (A:0, B:1, C:2) 은 패턴 A:0, B:1, C:1 과 동일하지 않을 수도 있다. 이에 따라, 이벤트 C 를 획득하기 위한 시간들이 상이하므로, 시간 1 에서 이벤트 C 를 획득함으로써 생성된 제 1 패턴 (A:0, B:1, C:1) 과, 시간 2 에서 이벤트 C 를 획득함으로써 생성된 제 2 패턴 (A:0, B:1, C:2) 은 상이하다. 순서-독립적 패턴에서는, 이벤트 C 가 이벤트 A 및 이벤트 B 와 동일한 미리 결정된 시간 윈도우 내에서 획득되는 한, C 의 시간이 중요하지 않으므로, 학습 디바이스는 획득된 이벤트들 A:0, B:1, C:1 을 획득된 이벤트들 A:0, B:1, C:2 와 동일하게 취급할 수도 있다. 다시 말해서, 순서-독립성을 위하여, 동일한 이벤트들은 특별한 시간 윈도우 내에서 단지 획득될 필요가 있을 수도 있다. 스마트 박스들 또는 학습 디바이스들에 의해 관찰된 시간 윈도우들은 도 3c 내지 도 3h 를 참조하여 이하에서 추가로 설명된다.
일부의 실시형태들에서, 다수의 스마트 박스들 또는 학습 디바이스들은 패턴들 (예컨대, 트리거 패턴들 및 액션 패턴들) 을 생성할 수도 있고 단일 이벤트에 기초하여 액션들을 행할 수도 있다. 예를 들어, 사용자는 벽 스위치를 '오프' 로부터 '온' 으로 토글할 수도 있어서, 벽 스위치로 하여금 단일의 제 1 이벤트를 생성하게 할 수도 있다. 제 1 이벤트를 생성할 시에, 벽 스위치는 관련된 이벤트 보고 메시지를 무선으로 모든 근처의 학습 디바이스들에 브로드캐스팅할 수도 있다. 제 1 근처의 학습 디바이스는, 예를 들어, 수신된 이벤트 보고 메시지에 기초하여 제 1 이벤트를 생성할 수도 있고 이것을 트리거 패턴으로 변환할 수도 있는 바닥 램프일 수도 있다. 트리거 패턴에 응답하여, 바닥 램프는 액션 패턴을 생성할 수도 있고, 액션 패턴에 기초하여 전등을 활성화할 수도 있다. 동시에, 근처의 스테레오는 동일한 이벤트 보고 메시지를 수신할 수도 있고, 유사하게, 수신된 이벤트 보고 메시지에 기초하여 제 1 이벤트를 생성할 수도 있고, 그것을 트리거 패턴으로 변환할 수도 있고, 바닥 램프와는 상이한 연관된 액션 패턴을 생성할 수도 있고, 상이한 액션 패턴에 기초하여 음악을 플레이할 수도 있다. 이에 따라, 이 예에서 제 1 이벤트에 관련된 단일의 브로드캐스팅된 이벤트 보고 메시지는 바닥 램프로 하여금 그 전등을 활성화하고 스테레오로 하여금 음악을 플레이한다.
일부의 실시형태들에서, 다수의 스마트 박스들은 액션 패턴들을 생성할 수도 있고, 다수의 개별적인 이벤트들에 관련된 다수의 이벤트 보고 메시지들을 수신하는 것에 응답하여 대응하는 액션들을 행할 수도 있다. 예를 들어, 사용자는 도 1a 로부터의 벽 스위치를 '오프' 로부터, 벽 스위치에서 제 1 이벤트를 생성하는 '온' 으로 토글할 수도 있다. 사용자는 또한, 스마트 바닥 램프 상의 램프 스위치를 오프로부터, 스마트 바닥 램프로 하여금 스마트 바닥 램프에서 제 2 이벤트를 생성하게 하는 '온' 으로 토글할 수도 있다. 제 1 및 제 2 이벤트들에 관련된 이벤트 보고 메시지들 (즉, 각각 제 1 및 제 2 이벤트들에 대한 발생 데이터를 포함함) 은 5 내지 10 초 시간 윈도우 내에서 그 각각의 스마트 박스들로부터 브로드캐스팅될 수도 있다. 여전히 시간 윈도우 내에서, 근처의 스마트 스테레오 및 스마트 데스크 램프는 제 1 및 제 2 이벤트들에 관련된 양자의 이벤트 보고 메시지들을 수신할 수도 있다. 스마트 스테레오는 제 1 및 제 2 이벤트들에 관련된 이벤트 보고 메시지들을 수신하는 것에 기초하여 트리거 패턴 및 대응하는 액션 패턴을 생성할 수도 있다. 액션 패턴 생성은 스테레오로 하여금 턴 온 하게 하고 예를 들어, 음악을 플레이하는 것을 시작하게 할 수도 있다. 동시에, 스마트 데스크 램프는 동일한 2 개의 이벤트들에 관련된 이벤트 보고 메시지들을 수신하는 것에 기초하여 트리거 패턴 및 상이한 액션 패턴을 생성한다. 액션 패턴을 생성할 시에, 스마트 데스크 램프는 예를 들어, 그 전등을 턴 온 할 수도 있다.
도 3c 내지 도 3h 는 다양한 실시형태의 학습 디바이스들이 이벤트들의 패턴들을 식별하고 및/또는 상관시키기 위하여 시간 경과에 따라 지나가는 시간 윈도우 (362) 를 어떻게 이용할 수도 있는지를 예시한다. 위에서 설명된 바와 같이, 이러한 시간 윈도우 (362) 는, 임의의 주어진 시간에 패턴들 또는 패턴들의 일부들로서 식별되기에 적합할 수도 있는 이벤트들에 대한 시간적 한계를 제공할 수도 있는 몇 초 (예컨대, 5 내지 10 초) 와 같은 미리 결정된 시간의 양일 수도 있다. 다시 말해서, 시간 윈도우 (362) 내에서 스마트 박스에 의해 발생하거나 획득된 이벤트들 (예컨대, 시간 윈도우 (362) 내에 속하는 도 3b 에서 상기 설명된 바와 같은 시간 컴포넌트 (351) 를 가지는 이벤트들) 은, 액션들을 트리거링하고 및/또는 이하에서 설명된 바와 같이 리플렉스들에 대한 트리거 가중치들을 조절함에 있어서 이용하기 위한 패턴들을 생성하기 위하여 조합될 수도 있다. 일부의 실시형태들에서는, 스마트 박스는 이러한 획득된 이벤트들이 더 이상 미리 정의된 시간 윈도우 (362) 내에 속하지 않을 때에 메모리, 버퍼, 또는 다른 저장장치로부터 획득된 이벤트들을 제거하도록 구성될 수도 있다.
도 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 의 임의의 조합 및/또는 순서를 이용하여 패턴들을 생성할 수도 있다.
도 3d 는 제 3 시간 (381a) 및 제 4 시간 (381d) 사이의 시간 윈도우 (362) 에서 획득되는 이벤트들 (371 내지 375) (도 3d 에서 이벤트들 B 내지 F 로서 지칭됨) 을 예시한다. 예를 들어, 제 4 시간 (381b) 에서, 이벤트 'A' (370) 는 더 이상 시간 윈도우 (362) 내에 있지 않을 수도 있지만 (즉, 이벤트 'A' (370) 는 제 3 시간 (381a) 보다 더 이전의 시간에 대응할 수도 있음); 그러나, 이벤트들 B 내지 F (371 내지 375) 의 임의의 조합은 스마트 박스 상에 저장된 리플렉스들 내의 미리 정의된 정보와 일치할 수도 있는 패턴들을 생성하기 위하여 조합될 수도 있다. 일부의 실시형태들에서, 이벤트 'A' (370) 는 제 4 시간 (381b) 에서 메모리, 버퍼, 또는 다른 저장장치로부터 삭제될 수도 있거나, 또는 이와 다르게 제거될 수도 있다.
유사하게, 도 3e 는 제 5 시간 (382a) 및 제 6 시간 (382b) 사이의 시간 윈도우 (362) 내에서 스마트 박스에 의해 획득될 수도 있는 이벤트들 (372 내지 376) (도 3e 에서 이벤트들 C 내지 G 로서 지칭됨) 을 예시한다. 예를 들어, 제 6 시간 (382b) 에서, 이벤트 'A' (370) 및 이벤트 'B' (371) 는 더 이상 시간 윈도우 (362) 내에 있지 않을 수도 있지만; 그러나, 이벤트들 C 내지 G (372 내지 376) 의 임의의 조합은 스마트 박스 상에 저장된 리플렉스들 내의 미리 정의된 정보와 일치할 수도 있는 패턴들을 생성하기 위하여 조합될 수도 있다. 일부의 실시형태들에서, 이벤트 'B' (371) 는 제 6 시간 (382) 에서 (즉, 그것이 시간 윈도우 (362) 외부에 속할 때) 메모리, 버퍼, 또는 다른 저장장치로부터 삭제될 수도 있거나, 또는 이와 다르게 제거될 수도 있다. 스마트 박스는 유사한 방식으로 시간 윈도우 (362) 를 지나가는 것 (또는 진행하는 것) 을 계속할 수도 있어서, 이벤트들이 미리 정의된 패턴들에 대응하는지 여부를 결정하기 위하여 시간 윈도우 (362) 내에 속하는 이벤트들을 계속적으로 평가할 수도 있다.
도 3f 내지 도 3h 는 식별된 패턴과 관련하여 다양한 다른 예시적인 시간 윈도우들을 예시한다. 본원에서 설명된 바와 같이, 스마트 박스 (또는 학습 디바이스) 는 바닥 램프 '온' 이벤트 또는 벽 스위치 '온' 이벤트와 같은 이벤트들을, 이러한 미리 정의된 시간 윈도우들 내에서 발생하는 식별된 트리거들 또는 다른 패턴들에 상관시킬 수도 있다. 예를 들어, 어떤 리플렉스의 트리거 패턴의 발생 (예컨대, 획득된 벽 스위치 '온' 이벤트) 을 검출하는 것에 응답하여, 스마트 박스는 트리거 패턴으로부터, 리플렉스의 관련된 보상 패턴 또는 정정 패턴이 또한, 5 내지 10 초의 시간 윈도우 내에서 발생하였는지 여부를 결정할 수도 있다. 스마트 박스는 관련된 패턴이 또한 조우되었는지 여부를 결정하기 위하여 식별된 패턴 (예컨대, 트리거 패턴) 이전 및/또는 이후에 획득되는 획득된 이벤트들을 평가할 수도 있다.
도 3f 내지 도 3h 는 이벤트 'D' (373) 로 이루어진 식별된 패턴, 및 식별된 패턴과 연관된 시간 (389) (도 3f 내지 도 3h 에서 "id'd 패턴의 시간" 으로서 지칭됨) 에 관련된 다양한 시간 윈도우들 (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) 등을 포함하는 보상 패턴과 상관시킬 수도 있다.
도 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) 등을 포함하는 정정 패턴과 상관시킬 수도 있다.
도 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) 등을 포함하는 정정 패턴과 상관시킬 수도 있다.
위에서 설명된 바와 같이, 리플렉스는 스마트 박스가 연관된 트리거를 검출하는 것에 응답하여 취할 수도 있거나 개시할 수도 있는 미리 정의된 액션을 표시하는 저장된 정보일 수도 있다. 도 4 에서 예시된 바와 같이, 4 개의 패턴들, 구체적으로, 트리거 패턴 (402), 액션 패턴 (404), 보상 패턴 (406), 및 정정 패턴 (408) 은 리플렉스 (400) 를 구성할 수도 있다. 패턴들은 하나 이상의 이벤트들을 포함할 수도 있고, 이벤트들은 데이터와 연관될 수도 있다. 그러나, 일부의 실시형태들에서, 패턴은 1-비트 신호에 관련될 수도 있다 (예컨대, 인터럽트 라인 (interrupt line) 은 하이 (high) 로 감). 예를 들어, 1-비트 신호는 보상 패턴으로 변환될 수도 있으며 스마트 박스의 논리적 이벤트 버스 상에 놓여질 수도 있는 보상 신호일 수도 있다. 인터럽트 센서가 센서 인코더의 타입일 수도 있으므로, 이러한 1-비트 신호 보상 패턴은 위에서 설명된 바와 같이, 센서 인코더 경로를 취할 수도 있다. 다른 패턴 타입들 (예컨대, 액션, 트리거 등) 은 또한, 간단한 신호들 (예컨대, 1-비트 신호들 또는 인터럽트들) 에 의해 정의될 수도 있다.
스마트 박스가 알려진 리플렉스의 알려진 트리거 패턴과 일치하는 이벤트 (또는 다수의 이벤트들) 를 획득할 때, 스마트 박스는 대응하는 액션 패턴 (404) 을 생성할 수도 있다. 리플렉스는 미리 결정된 보상 패턴 및 미리 결정된 정정 패턴을 가질 수도 있다. 스마트 박스가 그것이 학습하도록 허용될 때에 보상 패턴을 수신할 경우, 스마트 박스는 트리거 패턴 (402) 및 액션 패턴 (404) 사이의 연관성에 관한 가중 (즉, 트리거 가중치) 을 증가시킬 수도 있다. 일단 연관성 가중이 임계량 (threshold amount) 을 초과하면, 스마트 박스는 트리거 패턴에 응답하여 액션 패턴을 실행할 수도 있을 것이다. 유사하게, 리플렉스 (400) 는 미리 결정된 정정 패턴 (408) 을 가질 수도 있고, 스마트 박스가 그것이 학습하도록 허용될 때에 정정 패턴을 수신할 경우, 스마트 박스는 트리거 패턴 (402) 및 액션 패턴 (404) 사이의 연관성 가중을 감소시킬 수도 있다. 정정 패턴 (408) 의 프로세싱은 연관성 가중이 임계량 미만으로 떨어질 수도 있는 충분한 횟수로 연관성 가중을 수정할 수도 있고, 스마트 박스는 트리거 패턴 (402) 에 응답하여 액션 패턴 (404) 을 수행하지 않도록 효과적으로 학습할 것이다. 이러한 방식으로, 스마트 박스는 트리거 패턴 (402) 및 대응하는 액션 패턴 (404) 사이의 연관성을 학습할 수도 있고, 바람직하지 않은 트리거/액션 연관성들을 폐기학습할 수도 있다. 다양한 실시형태들에서, 정정 패턴 (408) 및/또는 보상 패턴 (406) 은, 액션을 수행하는 것, 입력을 수신하는 것 등에 응답하여 이벤트 보고 메시지들을 방출하는 근처의 디바이스와 같은 또 다른 스마트 박스 디바이스로부터, 스마트 박스에 의해 수신된 데이터에 기초하여 획득될 수도 있다.
일부의 실시형태들에서, 스마트 박스에 대한 "학습하도록 허용된" 상태 (또는 학습 모드) 를 가능하게 하는 방법은 스마트 박스의 리플렉스 (400) 의 미리 정의된 액션 패턴 (404) 을 트리거 패턴과 연관시키기 위하여 이용될 수도 있다. 이러한 학습 모드는, 그 동안에 스마트 박스가 리플렉스 (400) 의 트리거 가중치들을 변경하는 것이 가능하게 될 수도 있는 스마트 박스의 동작 상태일 수도 있다. 일단 획득된 패턴이 알려진 리플렉스 (400) 의 트리거 패턴 (402) 에 일치되면, 리플렉스는 학습 모드에 진입할 수도 있다. 다른 실시형태들에서, 스마트 박스는 액션 패턴 (404) 이 생성될 때에 학습 모드에 진입할 수도 있다. 다른 실시형태들에서, 스마트 박스는, 트리거들 (예컨대, 학습 스위치를 턴 온하는 것) 에 독립적일 수도 있고, 그리고 그 동안에, 스마트 박스가 다양한 리플렉스들에 대한 트리거 가중치들을 변경할 수도 있거나, 또는 이와 다르게 획득된 이벤트들에 기초하여 새로운 리플렉스들을 생성할 수도 있는 글로벌 (global) 학습 모드 또는 상태에 진입할 수도 있다. 다양한 실시형태들에서, 리플렉스 (400) 는 리플렉스 (400) 가 능동 모니터링 모드 (active monitoring mode), 트리거링된 모드, 학습 모드 등에 있는지 여부를 표시하는 비트들, 플래그들, 또는 다른 표시자들과 같이, 그 다양한 모드들의 스테이터스 (status) 를 표시하는 데이터를 포함할 수도 있다.
스마트 박스는 스마트 박스의 미리 결정된, 알려진 역량들에 대한 액션 패턴들을 갖는 하나 이상의 리플렉스들로 구성될 수도 있다. 스마트 박스는 상이한 대응하는 액션들을 갖는 다수의 리플렉스들을 사용할 수도 있지만, 일부의 실시형태들에서는, 스마트 박스가 제조업자에 의해 제공된 데이터에서 표시된 액션 패턴들과 같은, 스마트 박스의 알려진 역량들 또는 액션들의 정적 세트 외의 액션들을 수행하도록 구성되지 않을 수도 있다. 이에 따라, 스마트 박스는 알려진 액션들에 상관된 알려지지 않은 트리거들을 갖는 새로운 리플렉스들을 생성하도록 구성될 수도 있지만, 미리 정의되지 않은 액션들을 갖는 새로운 리플렉스들을 생성하도록 구성되지 않을 수도 있다.
예시로서, 스테레오 학습 디바이스 (또는 학습 디바이스 또는 스마트 박스에 결합된 스테레오) 는 음량 레벨을 음량 레벨 값들의 유한한 범위 (예컨대, 0 내지 10 등) 에서의 임의의 값으로 설정하고, 라디오 (또는 라디오 튜너) 를 '온' 으로 활성화하고, 라디오 (또는 라디오 튜너) 를 비활성화 (deactivate) 하고, 라디오 방송국을 라디오 방송국 값들의 유한한1 범위 (예컨대, 88.1 내지 121.9 등) 에서의 임의의 값으로 설정하고, 주파수 변조 (frequency modulation; FM) 구성 또는 진폭 변조 (amplitude modulation; AM) 구성 등을 설정하기 위한 미리 결정된 액션들로 구성될 수도 있다. 스테레오 학습 디바이스는 다양한 트리거 패턴들을 갖는 이들 미리 결정된 액션들의 각각에 대한 리플렉스들을 저장할 수도 있다. 예를 들어, 스테레오 학습 디바이스는 라디오 방송국을 제 1 값 (예컨대, 92.3 FM) 으로 설정하는 액션 패턴 및 램프 '온' 이벤트의 트리거 패턴을 갖는 제 1 리플렉스, 라디오 방송국을 제 2 값 (예컨대, 101.5 FM) 으로 설정하는 액션 패턴 및 벽 스위치 '온' 이벤트의 트리거 패턴을 갖는 제 2 리플렉스, 음량 레벨을 8 로 설정하는 액션 패턴 및 램프 '온' 이벤트의 트리거 패턴을 갖는 제 3 리플렉스 등을 저장할 수도 있다.
패턴들은, 센서 (예컨대, 광 센서, 스위치 시각 센서 (switch vision sensor) 등) 에 의해 획득된 발생 데이터에 기초하여 생성된 이벤트들 및/또는 신호 수신기 (142) 에 의해 수신된 발생 데이터에 기초하여 생성된 하나 이상의 이벤트들과 같은, 스마트 박스에서 획득된 하나 이상의 이벤트들 (예컨대, 시간 컴포넌트, 디바이스 컴포넌트 등) 로부터 생성될 수도 있다. 이벤트들은 메모리 (138) 에서 저장될 수도 있고, 패턴들을 생성하거나 인식하기 위하여 이벤트 레코더 (206) 에 의해 이용될 수도 있다. 패턴들을 생성하거나 인식하기 위하여 이벤트들을 평가하기 이전에, 고려될 수도 있는 이벤트들의 세트를 감소시키기 위하여, 필터가 이벤트들에 적용될 수도 있다. 예를 들어, 바닥 램프 스마트 박스는 스테레오로부터의 이벤트 보고 메시지들에 관련된 이벤트들을 무시할 수도 있다. 대안적인 예로서, 스테레오는 오후 11:00 와 같은 하루 중의 어떤 시간 후에 획득되거나 생성된 이벤트들을 무시할 수도 있다. 일단 스마트 박스가 이벤트들의 패턴을 생성하면, 그것은 패턴이 저장된 리플렉스에 대응하는 임의의 알려진 트리거 패턴들과 일치하는지 여부를 결정할 수도 있다.
식별된 패턴이 리플렉스에서의 저장된 트리거 패턴과 일치하고 관련된 트리거 가중치가 특정 임계 이상일 경우, 그 쌍을 이룬 액션 패턴이 생성될 수도 있다. 어떤 리플렉스 (Reflex i ) 에 대한 현재의 트리거 가중치 (W i ) 는 다음의 식에 기초하여 계산될 수도 있다:
Figure pct00001
여기서, i 는 리플렉스 카운터 또는 식별자이고, n 은 리플렉스의 트리거 패턴과 연관된 이벤트들의 수이고, k 는 리플렉스의 트리거 패턴에서 개별적인 이벤트들에 대한 카운터를 식별하고, m 은 리플렉스의 트리거 패턴에서 개별적인 이벤트에 대한 이벤트 일치 표시자이고, x 는 리플렉스의 트리거 패턴에서 개별적인 이벤트와 연관된 일치 가중치이고, s 는 리플렉스의 트리거 패턴에서 개별적인 이벤트에 적용된 스케일 인자 (scale factor) 이고, b 는 리플렉스의 트리거 패턴에서 개별적인 이벤트에 적용된 전체 가중치 일치에 대한 바이어스 (bias) 이다. 이에 따라, Reflex i 의 현재의 트리거 가중치 W i 는 일치 가중치 (x) 및 및 스케일 인자 (s) 에 의해 승산된 이벤트 일치 (m) 와, Reflex i 와 연관된 트리거 패턴에서의 바이어스 b 와의 합과 동일하다. 일부의 실시형태들에서, 일치 가중치들 (x) 은 그 각각의 이벤트들과 연관된 이득들에 의해 조절될 수도 있고, 이 개시물에서 설명된 바와 같이, 이득들은 학습 디바이스가 임계 주기 (critical period) 또는 정상 상태 주기 내에 있는지 여부에 기초하여 설정될 수도 있다. 일부의 실시형태들에서, 스마트 박스들은 값들을 0.0 으로부터 1.0 까지 정규화할 수도 있다. 또한, 일부의 실시형태들에서, 이벤트 (m) 에 대한 이벤트 일치 표시자는, 이벤트가 완벽하게 일치되었는지 아닌지 여부를 표시할 수도 있는 0.0 및 1.0 사이의 부동 값 (floating value) 일 수도 있다. (즉, 1.0 의 이벤트 일치 값은 완벽한 일치를 나타낼 수도 있고 0.0 의 이벤트 일치는 완전한 불일치를 표시할 수도 있음).
예시로서, 단일 이벤트의 식별된 패턴이 어떤 리플렉스 (Reflex i ) 에 대한 알려진 트리거 패턴과 일치하지 않을 경우, 단일 이벤트에 대한 이벤트 일치 표시자 (m) 는 1 로 설정될 수도 있다. 단일 이벤트에 대한 일치 가중치 (x) 가 연관된 이득 값에 기초하여 1 로 설정되고, 스케일 인자 (s) 가 또한 1 로 설정되고, Reflex i 에 대한 바이어스 (b) 가 0 으로 설정되는 것으로 가정하면, Reflex i 에 대한 새로운 또는 현재의 트리거 가중치 W i 는 1 과 동일할 수도 있다. 동일한 패턴이 다시 수신될 경우, 일치 가중치 (x) 는 리플렉스와 연관된 현재의 이득에 의해 조절될 수도 있어서, 트리거 가중치 임계보다 더 클 수도 있는 추후의 새로운 트리거 가중치 (W i ) 에서의 증가를 초래할 수도 있다. 이에 따라, 새로운 트리거 가중치 (W i ) 는 증가하거나 감소할 수도 있다. 예를 들어, m k,i 가 1 로 설정되고, x k ,i 가 1.5 로 조절되고, s k,i 가 1 로 설정되고, b i 가 0 으로 설정된다고 가정하면, 제 2 시간에 동일한 트리거 패턴을 수신하는 것은 트리거 가중치 (W i ) 를 1.5 로 증가시킬 수도 있다. 동일한 조건들 하에서, 식별된 패턴이 알려진 트리거 패턴과 일치하지 않을 경우, m 은 0 과 동일할 수도 있어서, 새로운 트리거 가중치 W i 가 또한 0 과 동일한 것으를 초래할 수도 있다.
추가적인 예시로서, 스테레오 (예컨대, 도 1a 에서 상기 설명된 바와 같은 스테레오 (106)) 는 다양한 리플렉스들을 저장하고 사용할 수 있는 스마트 박스를 포함할 수도 있거나, 이 스마트 박스에 결합될 수도 있다. 특히, (그 스마트 박스를 통한) 스테레오는, 근처의 천정 전등으로부터의 '온' 신호에 관련된 제 1 이벤트와, 근처의 안락의자에서의 존재 센서 (예컨대, 압력 센서, 모션 센서 등) 로부터의 신호에 관련된 제 2 이벤트를 포함하는 트리거 패턴을 가지는 제 1 리플렉스 (R i ) 를 저장할 수도 있다. 예를 들어, 제 1 이벤트는 활성화될 때에 천정 전등 (또는 천정 전등에 결합된 스마트 박스) 에 의해 송신된 신호에 대응할 수도 있고, 제 2 이벤트는 사람이 안락의자에 앉아 있을 때에 안락의자 (또는 안락의자에 결합된 스마트 박스) 에 의해 송신된 신호에 대응할 수도 있다. 제 1 리플렉스는 또한, 스테레오가 트리거 패턴 (즉, 양자의 천정 전등 및 안락의자 이벤트들) 의 발생을 검출하는 것에 응답하여 스테레오로 하여금 턴 온 하게 할 수도 있는 액션 패턴을 포함할 수도 있다. 다시 말해서, 제 1 리플렉스에 기초하여, 스테레오는 그 라디오를 활성화할 수도 있고, 천정 전등이 턴 온 되는 것과, 미리 정의된 시간 윈도우 (예컨대, 5 내지 10 초 등) 내에서 누군가가 안락의자에 앉아 있는 것에 응답하여 음악을 플레이할 수도 있다.
다음의 표들은 스테레오의 제 1 리플렉스 (즉, R i ) 에 대하여 식의 예시적인 성질들을 예시한다. 다음의 예들 및 표들의 목적을 위하여, 제 1 리플렉스의 액션 패턴 (즉, 스테레오를 턴 온 하고 음악을 플레이하는 것) 은, 제 1 리플렉스의 트리거 가중치 (즉, W i ) 가, 스테레오가 제 1 이벤트 및 제 2 이벤트 중의 적어도 하나를 수신하는 것에 응답하여 발생할 수도 있는 조건인, 1.5 의 트리거 임계 값 이상일 때에 트리거링될 수도 있다. 제 1 이벤트는 이벤트 k=0 일 수도 있고, 제 2 이벤트는 k=1 일 수도 있다. 또한, 다양한 이벤트들에 대한 일치 표시자 (m n ,i ) 를 제외하고는, 다음의 성질들에서의 다양한 값들이 제조업자, 개발자, 또는 사용자에 의해 설정된 바와 같이, 미리 정의될 수도 있다는 것을 인식해야 한다. 예를 들어, 이벤트에 대한 일치 가중치는 제조업자에 의해 설정될 수도 있거나, 스마트 박스에서 조우된 이전의 이벤트들에 기초할 수도 있다.
[표 A]
Figure pct00002
상기 표 A 의 예시적인 성질들에서 도시된 바와 같이, 하나의 시나리오에서는, 제 1 이벤트 (즉, k=0) 만이 스테레오에 의해 수신될 수도 있다. 이에 따라, 스테레오의 스마트 박스는 제 1 이벤트에 대한 이벤트 일치 표시자 (m 0 ,i ) 를 1.0 (즉, 제 1 이벤트에 대한 일치가 있음) 으로, 그리고 제 2 이벤트에 대한 이벤트 일치 표시자 (m 1 ,i ) 를 0.0 (즉, 제 2 이벤트에 대한 일치가 없음) 으로 설정할 수도 있다. 제 1 리플렉스에 대한 트리거 가중치는 제 1 이벤트의 서브-가중치가 1.0 으로 연산되도록, 각각의 이벤트에 대한 서브-가중치 계산을 합산함으로써 연산될 수도 있다. 다시 말해서, (m 0 ,i * x 0 ,i * s 0 ,i ) + b i = (1.0 * 1.0 * 1.0) + 0.0 = 1.0 이다. 제 2 이벤트가 없으므로, 제 2 이벤트에 대한 이벤트 일치 표시자 (m 1 ,i ) 는 0.0 일 수도 있고, 이에 따라, 제 2 이벤트에 대한 서브-가중치 계산은 0.0 일 수도 있다. 다시 말해서, (m 1 ,i * x 1 ,i * s 1 ,i ) + b i = (0.0 * 1.0 * 1.0) + 0.0 = 0.0 이다. 따라서, 제 1 리플렉스의 총 트리거 가중치 (W i ) 는 1.0 (즉, 1.0 + 0.0) 이고, 이것은 1.5 의 트리거 임계 값보다 더 작다. 이에 따라, 수신된 제 1 이벤트만으로는, 제 1 리플렉스의 액션 패턴이 트리거링되지 않을 수도 있다 (예컨대, 스테레오는 그 라디오를 활성화하지 않을 수도 있음).
[표 B]
Figure pct00003
상기 표 B 의 예시적인 성질들에서 도시된 바와 같이, 또 다른 시나리오에서는, 제 1 이벤트 (즉, k=0) 및 제 2 이벤트 (즉, k=1) 가 스테레오에 의해 수신될 수도 있다. 이에 따라, 스마트 박스는 제 1 이벤트에 대한 이벤트 일치 표시자 (m 0 ,i ) 를 1.0 (즉, 제 1 이벤트에 대한 일치가 있음) 으로, 그리고 제 2 이벤트에 대한 이벤트 일치 표시자 (m 1 ,i ) 를 비-제로 (non-zero) 값으로 설정할 수도 있다. 그러나, 일부의 경우들에는, 제 2 이벤트가 정확하게 일치되지 않을 수도 있고, 이에 따라, 제 2 이벤트에 대한 일치 표시자 (m 1 ,i ) 는 0.8 (즉, 제 2 이벤트에 대한 적어도 부분적인 일치가 있음) 로 설정될 수도 있다. 제 2 이벤트에 대한 이벤트 일치 표시자 (m 1, i ) 에 대한 0.8 의 값은 제 2 이벤트 일치가, 값들을 0.0 으로부터 1.0 으로 정규화하는 시스템에 대한 완벽하지 않은 일치였음을 표시할 수도 있고; 여기서, 1.0 은 이벤트 일치 값에 대한 완벽한 일치를 나타낸다.
위에서 설명된 바와 같이, 트리거 가중치 (W i ) 는, 제 1 이벤트의 서브-가중치가 1.0 으로 연산되도록, 각각의 이벤트에 대한 서브-가중치 계산을 합산함으로써 연산될 수도 있다. 다시 말해서, (m 0 ,i * x 0 ,i * s 0 ,i ) + b i = (1.0 * 1.0 * 1.0) + 0.0 = 1.0 이다. 또한, 제 2 이벤트의 서브-가중치는 0.8 로 연산된다. 다시 말해서, (m 1 ,i * x 1 ,i * s 1 ,i ) + b i = (0.8 * 1.0 * 1.0) + 0.0 = 0.8 이다. 따라서, 제 1 리플렉스의 총 트리거 가중치 (W i ) 는 1.8 (즉, 1.0 + 0.8) 일 수도 있고, 이것은 1.5 의 트리거 임계 값보다 더 크다. 이에 따라, 스마트 박스에서 획득된 제 1 이벤트 및 제 2 이벤트의 양자에 의하여, 제 1 리플렉스의 액션 패턴이 생성될 수도 있어서, 액션이 수행되게 할 수도 있다 (예컨대, 스테레오는 그 라디오를 활성화할 수도 있고 음악을 플레이할 수도 있는 것, 등). 일부의 실시형태들에서, 제 1 리플렉스의 액션 패턴이 생성될 수도 있고, 트리거 임계 값 (예컨대, 1.5) 이상인 제 1 리플렉스 (W i ) 의 임의의 총 트리거 가중치의 계산에 응답하여 액션이 수행되게 할 수도 있다.
[표 C]
Figure pct00004
일부의 실시형태들에서는, 다양한 이벤트들에 대한 일치 가중치들에 기초하여, 스마트 박스가 단일 이벤트를 획득하는 것에 응답하여 액션들을 수행하도록 구성될 수도 있다. 예를 들어, 스테레오 스마트 박스는 누군가가 안락의자에 앉아 있음을 표시하는 신호를 수신하는 것에만 응답하여 그 라디오 기능성을 활성화하도록 구성될 수도 있다 (즉, 액션 패턴은 안락의자와 연관된 존재 센서 이벤트에 의해 트리거링될 수도 있음). 상기 표 C 에서의 예시적인 성질들에서 도시된 바와 같이, 제 1 이벤트는 획득되지 않을 수도 있고 (즉, m 0 ,i = 0.0), 제 2 이벤트는 획득될 수도 있고 (즉, m 1 ,i = 0.8), 제 2 이벤트에 대한 일치 가중치 (x 1 ,i ) 는 2.0 의 값으로 설정될 수도 있다. 제 2 이벤트에 대한 더 높은 일치 가중치로 인해, 스테레오의 라디오는 제 2 이벤트만이 스테레오에서 획득될 때에 활성화될 수도 있다. 다시 말해서, 제 1 리플렉스에 대한 트리거 가중치는 제 2 이벤트를 획득하는 것에만 기초하여 1.5 보다 더 클 수도 있다 (즉, ((m 0 ,i * x 0 ,i * s 0 ,i ) +(m 1 ,i * x 1 ,i * s 1 ,i )) + b i = ((0.0 * 1.0 * 1.0) + (0.8 * 2.0 * 1.0)) + 0.0 = 1.6).
[표 D]
Figure pct00005
일부의 실시형태들에서, 잡음 있는 RF 환경에서와 같이, 완벽하지 않은 이벤트 일치가 가능성이 있을 때, 스케일 인자들은 일치가 낮을 수도 있더라도 리플렉스들이 트리거링될 수도 있도록 조절될 수도 있다. 예를 들어, 상기 표 D 에서 도시된 바와 같이, 제 1 이벤트에 대한 스케일 인자 (s 0, i ) 및 제 2 이벤트에 대한 스케일 인자 (s 1 , i ) 는, 일치 표시자들이 이상적인 것보다 더 작더라도 (예컨대, 1.0 보다 작음, 0.8 보다 작음 등), 1.5 임계 값을 초과하는 트리거 가중치들을 가능하게 하기 위하여 2.0 의 값으로 증가될 수도 있다. 다시 말해서, 스테레오는 이상적인 것보다 더 적은 일치 표시자들을 갖는 제 1 이벤트 및 제 2 이벤트의 양자 (예컨대, 각각 0.7 및 0.6) 를 수신하는 것과, 제 1 리플렉스에 대해 2.6 (즉, ((m 0 ,i * x 0 ,i * s 0 ,i ) +(m 1 ,i * x 1 ,i * s 1 ,i )) + b i = ((0.7 * 1.0 * 2.0) + (0.6 * 1.0 * 2.0)) + 0.0 = 2.6) 의 트리거 가중치를 계산하는 것에 응답하여 음악을 플레이하기 위하여 그 라디오를 활성화할 수도 있다.
[표 E]
Figure pct00006
일부의 실시형태들에서, 트리거 가중치 계산들에 대한 바이어스 값들은 액션 패턴들이 스마트 박스가 단일 이벤트를 획득하는 것에 응답하여 트리거링되게 하기 위하여 조절될 수도 있다. 예를 들어, 상기 표 E 에서 도시된 바와 같이, 바이어스 (bi) 는 1.0 으로 설정될 수도 있고, 이것은 제 1 이벤트 또는 제 2 이벤트 중의 어느 하나가 스테레오로 하여금 개별적으로, 제 1 리플렉스를 통해 그 라디오를 활성화하게 하도록 한다. 다시 말해서, 액션 패턴은 제 2 이벤트만 획득될 때 (즉, ((m 0 ,i * x 0 ,i * s 0 ,i ) +(m 1 ,i * x 1 ,i * s 1 ,i )) + b i = ((0.0 * 1.0 * 1.0) + (0.8 * 1.0 * 1.0)) + 1.0 = 1.8), 또는 제 1 이벤트만 획득될 때 (즉, ((m 0 ,i * x 0 ,i * s 0 ,i ) +(m 1 ,i * x 1 ,i * s 1 ,i )) + b i = ((0.9 * 1.0 * 1.0) + (0.0 * 1.0 * 1.0)) + 1.0 = 1.9) 에 트리거링될 수도 있다.
도 5 내지 도 7 은 이벤트들 (액션들을 포함함) 이 어떻게 리플렉스들에서의 패턴들로서 인식 (또는 식별) 될 수도 있는지를 예시하는 타임라인 도면들이다. 이 타임라인들의 설명들에서, 그 디바이스들과 연관된 스마트 박스들에 대한 속기 (short hand) 로서 벽 스위치 및 바닥 램프에 대해 참조들이 행해진다. 또한, 벽 스위치 및 바닥 램프는 스마트 박스에 결합될 수도 있는 디바이스들의 타입들의 예시적인 예들로서 이용된다. 이에 따라, 벽 스위치 및 바닥 램프에 대한 참조들은 청구항들의 범위를 임의의 방식으로 제한하도록 의도된 것이 아니다.
도 5 는 전송기 (510) (예컨대, 벽 스위치) 및 수신기 (예컨대, 램프) 사이의 송신들의 시간들을 도시하는 리플렉스에 대응하는 이벤트 송신들의 타임라인 도면 (500) 이다. 이 이벤트 송신들 (또는 이벤트 보고 메시지들) 은 수신기가 이벤트를 생성하는 것을 도울 수도 있는 발생 데이터를 포함할 수도 있다. 타임라인 도면은 모니터 모드 (506) 에서 수신기와 함께 시간 0 (또는 도 5 에서 도시된 바와 같이 t = "t0") 에서 시작하고, 수신기가 시간 "tResumeMonitor" (또는 t = "tResumeMonitor") 에서 모니터 모드 (506) 로 복귀할 때에 종료된다. 일부의 실시형태들에서, 도면 (500) 에서의 전송기 (510) 는 이벤트의 벽 스위치 브로드캐스팅 발생 데이터일 수도 있고, 이것은 바닥 램프에 의해 수신될 수도 있다. 바닥 램프는 각각의 저장된 리플렉스와 연관된 수신기 상태 (511) 를 가질 수도 있고, 이것은 모니터 모드 (506) 또는 트리거링된 모드 (508) 의 어느 하나에 있을 수도 있다. 바닥 램프와 연관된 각각의 리플렉스의 디폴트 상태는 모니터 모드 (506) 일 수도 있다. 바닥 램프는 또한, 이벤트들을 다른 스마트 박스 컴포넌트들로 전송할 수도 있는 이벤트 버스 (214) 를 (통상적으로는 그 스마트 박스 내에서) 가질 수도 있다.
예시의 목적들을 위하여, 시간 t=t0 에서, 바닥 램프는 모든 리플렉스들에 대하여 모니터 모드 (506) 에 있는 것으로 고려될 수도 있다. 바닥 램프는 예컨대, 그 신호 수신기 (142) 를 통해, 이벤트 보고 메시지 (502) 를 수신할 수도 있다. 예를 들어, 사용자는 벽 스위치를 '오프' 로부터 '온' 으로 토글할 수도 있다. 이에 응답하여, 벽 스위치는 토글을 (도 2 에서 도시된) 센서 인코더 (134) 를 갖는 이벤트로서 레코딩할 수도 있다. 벽 스위치는 벽 스위치의 신호 송신기 (136) 를 통해 새로운 이벤트에 관련된 발생 데이터를 가지는 이벤트 보고 메시지 (502) 를 송신할 수도 있다. 이벤트 보고 메시지 (502) 는 바닥 램프와 같은 다른 스마트 박스들에 의해 수신될 수도 있다.
t=tTrigger 에서, 이벤트 보고 메시지 (502) 는 바닥 램프에 의해 수신될 수도 있다. 바닥 램프는 이벤트 보고 메시지 (502) 에 기초하여 생성된 이벤트가 리플렉스의 트리거 패턴과 일치하는 것으로 결정할 수도 있고, 일치된 리플렉스에 대하여 트리거링된 모드 (508) 에 진입할 수도 있다. 트리거링된 모드 (508) 동안, 바닥 램프는 각각 학습 또는 폐기학습을 가능하게 하기 위하여 보상 및/또는 정정 패턴이 존재하는지 여부를 결정하기 위하여 다른 이벤트들을 검색하는 것을 계속할 수도 있다.
t=tResponse 에서, 바닥 램프는, (도 1b 및 도 1c 에서 도시된) 바닥 램프의 전등 (124) 을 턴 온 하는 것과 같은 액션을 야기시키기 위하여 모터 구동기 (140) 를 활성화할 수도 있는 일치하는 리플렉스의 액션 패턴과 연관된 이벤트 (514) 를 생성할 수도 있다. 이벤트 (514) 는 바닥 램프의 이벤트 버스 (214) 상에 배치되고, 이것은 궁극적으로 패턴으로 변환될 수도 있고 메모리 (138) 내에 저장될 수도 있다. 일부의 실시형태들에서, 생성된 액션 패턴은 추가적인 액션 패턴들에 대한 트리거 패턴일 수도 있다. 예를 들어, 바닥 램프를 턴 온 하는 것은 스테레오를 턴온하기 위한 트리거 패턴일 수도 있다. 다시 말해서, 다수의 학습 디바이스들은 함께 데이지-체인으로 연결될 수도 있어서, 트리거 패턴들 및 액션 패턴들이 생성되도록 할 수도 있고 대응하는 데이터를 디바이스로부터 디바이스로 송신할 수도 있다.
t = tResume Monitor 에서, 바닥 램프는 트리거링된 모드 (508) 를 이탈할 수도 있고, 바닥 램프가 새로운 이벤트 보고 메시지들을 검색하고 수신할 수도 있는 모니터 모드 (506) 에 재진입할 수도 있다.
도 5 가 예시하는 바와 같이, 바닥 램프는 단일 리플렉스에 대하여 단일 트리거링된 모드에 진입할 수도 있다. 일부의 실시형태들에서, 바닥 램프는 메모리 내에 저장된 다수의 리플렉스들을 가질 수도 있고, 시간의 중첩되는 구간들에서 다수의 이벤트들을 획득 (또는 생성) 할 수도 있다. 바닥 램프가 다수의 트리거 패턴들을 초래하는 다수의 이벤트들을 획득하는 것으로 가정하면, 바닥 램프는 동시 트리거링된 모드들에 진입할 수도 있다. 각각의 트리거링된 모드는 상이한 리플렉스들에 대응할 수도 있다. 예를 들어, 바닥 램프는 벽 스위치로부터 EventA 에 관련된 이벤트 보고 메시지, 그리고 스테레오로부터 EventB 에 관련된 이벤트 보고 메시지를 동시에 수신할 수도 있다. EventA 는 바닥 램프의 메모리 내에 저장된 제 1 리플렉스로부터의 트리거 패턴에 대응할 수도 있다. 이에 응답하여, 바닥 램프는 제 1 리플렉스 ReflexA 에 대하여 트리거링된 모드에 진입할 수도 있다. EventB 는 상이한 리플렉스 ReflexB 의 상이한 트리거 패턴에 대응할 수도 있다. 이에 따라, 바닥 램프는 ReflexB 에 대하여 제 2 트리거링된 모드에 동시에 진입할 수도 있다. 각각의 트리거링된 모드는 도 5 에서 예시된 바와 같이 표현될 수도 있지만; 그러나, 바닥 램프는 각각의 이벤트, 리플렉스, 및 트리거링된 모드를 독립적으로 프로세싱할 수도 있다.
바닥 램프는 상이한 시간들에서 상이한 리플렉스들에 대한 트리거 패턴들의 이벤트들을 생성할 수도 있고, 이것은 바닥 램프로 하여금, 다른 리플렉스에 대한 다른 트리거링된 모드와는 상이한 시간에서 하나의 리플렉스에 대하여 트리거링된 모드에 진입하게 할 수도 있다. 각각의 리플렉스의 트리거링된 모드들이 동일한 시간 주기 (예컨대, 5 초) 와 중첩된다고 가정하면, 바닥 램프는 제 1 리플렉스에 대하여 트리거링된 모드를 나갈 수도 있지만, 제 2 리플렉스에 대하여 트리거링된 모드에서 유지될 수도 있다. 궁극적으로, 바닥 램프는 각각의 리플렉스에 대하여 트리거링된 모드를 나갈 수도 있고, 각각의 리플렉스에 대하여 모니터 모드로 복귀할 수도 있다.
도 6 은 새로운 리플렉스를 생성하기 위한 학습 타임라인을 예시하는 타임라인 도면 (600) 이다. 도면 (600) 은 새로운 리플렉스 ("ReflexF2" 또는 "F2" 로서 지칭됨) 를 생성하기 위하여 알려진 리플렉스 ("ReflexF1" 또는 "F1") 가 어떻게 이용될 수도 있는지를 예시한다. 도면 (600) 은 새로운 벽 스위치, 램프 스위치, 및 바닥 램프를 포함한다. 바닥 램프는, 모니터 모드 (606) 및 트리거링된 모드 (608) 를 포함하는 상태들 (618) 을 가지는 알려진 ReflexF1 을 가진다. ReflexF2 는 알려져 있지 않고, 궁극적으로, 이 타임라인 (601) 상에서 생성될 것이다. 타임라인 (601) 은 시간 0 ("t=t0") 에서 시작하고, 시간 "ResumeMonitor" (t = "tResumeMonitor") 에서 종료된다.
t = t0 에서, 바닥 램프는 ReflexF1 에 대하여 모니터 모드 (606) 에서 시작할 수도 있다. ReflexF1 은 트리거 패턴 (MD2 로서 지칭됨), 액션 패턴 (MD3 으로서 지칭됨), 보상 패턴 (MD4 로서 지칭됨), 및 정정 패턴 (MD5 로서 지칭됨) 을 포함할 수도 있다. 바닥 램프는 ReflexF1 의 트리거 패턴 (MD2) 과 일치하는 패턴들에 대한 생성된 이벤트들을 모니터링할 수도 있다.
t=tMd1-on 에서는, 새로운 벽 스위치가 '오프' 로부터 '온' 으로 스위칭될 수도 있어서, 이벤트를 생성하고 관련된 발생 데이터 ("발생 데이터 1" 로서 지칭됨) 가 바닥 램프에 의해 수신된 이벤트 보고 메시지에서 벽 스위치에 의해 브로드캐스팅되게 한다. 새로운 벽 스위치로부터의 이벤트 보고 메시지로부터의 발생 데이터는, 하나 이상의 이벤트들과 조합될 수도 있는 이벤트를 생성하기 위하여 바닥 램프에 의해 이용될 수도 있거나, 패턴 ("MD1") 을 생성하기 위하여 개별적으로 이용될 수도 있다.
t=tMd1-done 에서는, 바닥 램프가 "발생 데이터 1" 을 갖는 이벤트 보고 메시지를 수신할 수도 있고, 관련된 이벤트를 생성할 수도 있고, 그것 (및 버퍼에서 저장된 가능한 다른 이벤트들) 을 패턴 "MD1" 로서 알려진 패턴으로 변환할 수도 있다. 이때, 바닥 램프는 추가의 프로세싱 또는 메모리에서의 일시적인 저장을 위하여 이벤트 버스 상에서 패턴 MD1 을 배치할 수도 있다. 바닥 램프는 패턴 MD1 이 바닥 램프의 알려진 리플렉스들의 임의의 알려진 트리거 패턴들과 일치하지 않는 것으로 결정할 수도 있고, 이에 따라, 모니터 모드 (606) 에서 동작하는 것을 계속할 수도 있다.
t= tMd2-on 에서는, 램프 스위치가 '오프' 로부터 '온' 으로 될 수도 있고, 이에 응답하여, 바닥 램프는 상태 변경에 관련된 발생 데이터 ("발생 데이터 2" 로서 지칭됨) 에 기초하여 이벤트를 생성할 수도 있다. 동시에, 바닥 램프는 "발생 데이터 2" 로부터 생성된 이벤트를 패턴 MD2 로서 집합적으로 프로세싱된 다른 이벤트들과 조합할 수도 있고, 메모리에서의 일시적인 저장을 위하여 이벤트 버스 상에서 패턴 MD2 를 배치할 수도 있다.
t=tTrigger 에서, 바닥 램프는 패턴 MD2 를 ReflexF1 의 트리거 패턴에 일치시킬 수도 있다. 패턴 MD2 는 ReflexF1 의 트리거 패턴과 일치하므로, 바닥 램프는 다음으로, ReflexF1 에 대한 트리거링된 모드 (608) 에 진입할 수도 있다. 일부의 실시형태들에서, 바닥 램프는 내부 송신을 완료할 수도 있고, t=tTrigger 에서, "발생 데이터 2" 로부터 생성된 이벤트를 패턴 MD2 로 변환할 수도 있다.
t=tAction 에서, 바닥 램프는, 이벤트 버스 상에서 위치되거나 바닥 램프의 메모리에서 저장되는 ReflexF1 에 대한 알려진 트리거 패턴 (MD2) 과 연관된 ReflexF1 에 대한 액션 패턴 (MD3) 을 생성할 수도 있다. 패턴 MD3 의 생성은 바닥 램프에 접속된 모터 구동기로 하여금 전등을 턴 온 하게 할 수도 있다.
t=tNewReflex 에서는, 패턴 MD1 과 일치하는 트리거 패턴을 갖는 기존의 리플렉스가 없으므로, 새로운 리플렉스 ("ReflexF2" 또는 "F2" 로서 지칭됨) 가 생성된다. 오직 알려진 트리거 패턴은 ReflexF1 과 연관된 MD2 이다. ReflexF2 를 생성할 시에는, 바닥 램프가 ReflexF1 과 연관된 액션 패턴, 보상 패턴, 및 정정 패턴을 새로운 리플렉스로 복사할 수도 있고, 타임라인 (601) 상에서 수신된 패턴 (MD1) 을 그 트리거 패턴으로서 새로운 리플렉스에 배정할 수도 있다. 복사된 패턴들과 연관된 가중치들은 새로운 리플렉스에 복사될 때에 조절될 수도 있다. 이에 따라, 새로운 리플렉스 (ReflexF2) 는 패턴 MD1 과 동일하며 새로운 벽 스위치로부터 수신된 발생 데이터 ("발생 데이터 1") 에 관련된 트리거 패턴, 바닥 램프를 턴 온 하는 것과 연관된 패턴 MD3 과 동일한 액션 패턴, 패턴 MD4 와 동일한 보상 패턴, 및 패턴 MD5 와 동일한 정정 패턴을 가질 수도 있다. 일부의 실시형태들에서, 바닥 램프가 하나를 초과하는 액션 (예컨대, 턴 온, 턴 오프 등) 을 수행하고, 이에 따라, 적어도 2 개의 리플렉스들 (즉, 액션 당 적어도 하나의 리플렉스) 을 사용하도록 구성될 수도 있을 때, 알려지지 않은 패턴들을 검출하는 것에 응답하여 생성된 새로운 리플렉스들은 그 트리거링된 모드에서 기존의 리플렉스로부터 복사될 수도 있다. 다시 말해서, 새로운 리플렉스를 생성할 때에 어느 기존의 리플렉스로부터 복사할 것인지를 결정하기 위하여, 바닥 램프는 그 트리거링된 모드에서 이벤트들 (또는 이벤트들의 패턴들) 을 리플렉스들의 알려진 액션들과 상관시키기 위한 동작들을 수행할 수도 있다 (즉, 새로운 리플렉스에 대한 패턴들은 그 액션 패턴이 알려지지 않은 패턴/이벤트의 시간 윈도우 내에서 조우되는 사전에 존재하는 리플렉스로부터 복사될 수도 있음). 도 11 은 스마트 박스가 새로운 리플렉스를 추가하기 위한 동작들을 포함하는 일 실시형태의 방법을 예시한다.
t=tReward 에서는, 또 다른 컴포넌트가 ReflexF1 에 대한 보상 패턴으로서 알려진 패턴 MD4 와 같은 보상 패턴과 일치하는 이벤트들을 생성할 수도 있다. 예를 들어, 모터 구동기는 바닥 램프의 전등이 턴 온될 때 (도 1b 내지 도 1c 에서 도시됨) 패턴 MD4 와 동일한 이벤트를 생성할 수도 있다. 모터 구동기는 패턴 MD4 를 이벤트 레코더로 전송할 수도 있다. 패턴 MD4 가 ReflexF1 (및 새롭게 생성된 ReflexF2) 의 보상 패턴과 일치하므로, ReflexF1 과 연관된 트리거 가중치는 ReflexF1 이 그 트리거링된 모드 (608) 에 있을 때와 같이 증가될 수도 있다. 일부의 실시형태들에서, 보상 패턴은, 바닥 램프의 전등이 턴 온 되는 한, 패턴 MD4 와 동일한 보상 패턴이 항상 생성되고 트리거 가중치는 증가할 수도 있도록, 자체-생성 패턴 (self-generating pattern) 일 수도 있다.
학습-인에이블된 모드 (learning-enabled mode) 에 있는 동안, 보상 패턴 (MD4) 이 일치될 경우, 보상 이득들이 적용될 수도 있다 (예컨대, 트리거 가중치를 증가시키는 것, 등). 일부의 실시형태들에서, 일치 가중치 (위에서 설명된 바와 같은 x) 는 학습-인에이블된 모드에 있는 동안에 통상적으로 수정되지만, 식에서의 임의의 파라미터 또는 값은 학습-인에이블된 모드에 있는 동안에 조절될 수도 있다. 다시 말해서, 리플렉스의 트리거 가중치를 증가 또는 감소시키는 것은 트리거 가중치 식에서 임의의 파라미터를 조절하는 것을 포함할 수도 있다.
그러나, 정정 패턴 (MD5) 이 일치될 경우에는, 정정 이득들이 적용될 수도 있다 (예컨대, 트리거 가중치를 감소시키는 것). 일부의 실시형태들에서, 보상 패턴 또는 정정 패턴은, 응답이 희망된 바와 같았다는 (또는 희망된 것이 아님) 피드백을 제공하기 위하여 사용자가 활성화할 수도 있는 입력 또는 버튼과 같은 추가적인 발생에 의해 생성될 수도 있다. 예를 들어, 바닥 램프가 그 전등을 턴 온 한 후, 사용자는 바닥 램프 상의 버튼을 누를 수도 있고, 이것은 보상 패턴을 생성한다. 보상 패턴에 기초하여, 바닥 램프는 관련된 리플렉스의 트리거 가중치를 증가시킬 수도 있다.
t=tResume Monitor 에서, 바닥 램프는 ReflexF1 에 대한 그 트리거링된 모드 (608) 를 종료하고 모니터 모드 (606) 로 복귀한다. 일부의 실시형태들에서, 바닥 램프는, 바닥 램프로 하여금 ReflexF2 의 트리거링된 액션에 기초하여 그 전등을 활성화하게 할 수도 있는 패턴 MD1 을 추후에 수신할 수도 있다.
일부의 실시형태들에서, 새로운 리플렉스는, 다양한 발생 데이터가 바닥 램프에 의해 수신되거나 획득되는 순서에 관계 없이 생성될 수도 있다. 다시 말해서, 트리거 윈도우 이전, 트리거 윈도우 동안, 그리고 트리거 윈도우 이후에, 알려지지 않은 트리거 패턴 (예컨대, MD1) 이 수신 및 이용될 수 있고, 이에 따라, 발생 데이터를 수신하는 순서에 독립적인 리플렉스의 생성을 야기시킬 수 있다. 예를 들어, 바닥 램프가 ReflexF1 에 대한 그 트리거링된 모드 (608) 에 진입한 후 (즉, "발생 데이터 2" 가 수신되고 MD2 가 획득된 후) 에 패턴 MD1 을 생성하기 위하여, "발생 데이터 1" 이 수신 및 이용될 경우, MD1 은 트리거링된 모드 (608) 에 관련하여 시간 윈도우 내에서 여전히 발생하였을 수도 있으므로, 바닥 램프는 ReflexF2 를 여전히 생성할 수도 있다.
도 7 은 타임라인 (701) 을 따르는 액션과의 그 연관성을 증가/감소시키기 위하여, 도 6 으로부터의 새롭게 생성된 리플렉스 ReflexF2 가 어떻게 보상 및/또는 정정될 수도 있는지를 예시한다. ReflexF2 의 상태 (718) 에 따라서는, 바닥 램프가 ReflexF2 에 대하여 모니터 모드 (706) 또는 트리거링된 모드 (708) 에 있을 수도 있다. 모니터 모드 (706) 에서는, 바닥 램프가 리플렉스에 대하여 일치하는 트리거 패턴을 검색하고 있다. 바닥 램프가 저장된 리플렉스의 알려진 트리거 패턴과 일치하는 이벤트들의 패턴을 생성할 경우, 바닥 램프는 일치하는 트리거 패턴을 포함하는 리플렉스의 트리거링된 모드에 진입할 수도 있다. 도면 (700) 에서, ReflexF2 는 패턴 MD1 과 동일한 트리거 패턴, 패턴 MD3 와 동일한 액션 패턴, 패턴 MD4 와 동일한 보상 패턴, 및 패턴 MD5 와 동일한 정정 패턴을 가질 수도 있다.
t=t0 에서, 벽 스위치는 이벤트를 생성할 수도 있고, 이벤트에 관련된 발생 데이터를 갖는 이벤트 보고 메시지를 브로드캐스팅할 수도 있다. 바닥 램프는 모니터 모드 (706) 에서, t=tMD1-Rx 에 의해 이벤트 보고 메시지를 수신할 수도 있다.
t=tMD1-Rx 에서, 바닥 램프는 발생 데이터를 갖는 전체의 이벤트 보고 메시지를 수신하고, 이에 응답하여 이벤트를 생성하고, 그것을 이벤트 레코더로 전송하고, 이 이벤트 레코더는 이벤트를 패턴 MD1 로 변환할 수도 있고 (도 2 에서 도시된 바와 같이) 그것을 이벤트 버스 상에서 배치할 수도 있다. 바닥 램프는 패턴 MD1 을 이벤트 버스로부터 메모리 내의 일시적인 저장장치 (예컨대, 도 2 에서의 이벤트 패턴 저장장치 (204)) 로 전송할 수도 있다.
t=tTrigger 에서, 바닥 램프는 패턴 MD1 을 프로세싱할 수도 있고, 그것이 ReflexF2 와 연관된 알려진 트리거 패턴과 일치하는 것으로 결정할 수도 있다. 이에 따라, 바닥 램프는 ReflexF2 에 대하여 트리거링된 모드 (708) 에 진입할 수도 있고, 여기서, 바닥 램프는 ReflexF2 에 대하여 학습하거나 폐기학습할 수도 있다.
t=tAction 에서, 바닥 램프는 ReflexF2 와 연관된 액션 패턴 (MD3) 을 생성할 수도 있고, 이것은 이벤트 버스 상에 놓여진다. 모터 구동기는 이벤트 버스로부터 액션 패턴 (MD3) 을 취출 (retrieve) 할 수도 있고, 생성된 액션 패턴과 연관된 액션을 행할 수도 있다 (예컨대, 바닥 램프의 전등을 턴 온 함).
t=tReward 에서, ReflexF2 와 연관된 보상 패턴 (MD4) 은 또 다른 컴포넌트로부터 생성될 수도 있다. 예를 들어, 생성된 액션 패턴 (MD3) 은 모터 구동기로 하여금 바닥 램프를 턴 온 하게 할 수도 있다. 바닥 램프가 턴 온 될 때, 모터 구동기는 피드백을 수신할 수도 있거나, 센서 인코더는 램프 상에서 상태에 있어서의 변경을 감지할 수도 있어서, 이에 따라, 패턴 MD4 를 생성할 수도 있다. 패턴 MD4 는 이벤트 패턴 저장장치에서 추후에 저장될 수도 있다. 패턴 MD4 는 ReflexF2 의 보상 패턴과 일치할 수도 있고, 그 결과, ReflexF2 트리거 패턴 (MD1) 과 연관된 가중치들이 증가될 수도 있다.
일부의 실시형태들에서, 일단 리플렉스의 트리거 가중치가 최대 레벨에 도달하면, 트리거 가중치는 추가로 조절되지 않을 수도 있어서, 시스템 자원들이 다른 곳에서 이용되도록 할 수도 있다. 이러한 최대 레벨은 가중치 계산들의 동적 범위를 제한하거나 학습 디바이스들 내에 포함된 RAM 의 양을 감소시키기 위하여 사용될 수도 있다. 예를 들어, 트리거 가중치들의 더 작은 동적 범위가 리플렉스에 대해 이용될 때 (예컨대, 최소 및 최대 트리거 가중치 사이의 더 작은 범위), 더 작은 RAM 이 학습 디바이스들에서 이용될 수도 있다 (예컨대, 16-비트들 대신에 8-비트들).
일부의 실시형태들에서, 바닥 램프의 메모리는 그것이 제한된 수의 패턴들 및/또는 리플렉스들을 저장하기만 할 수도 있도록 하는 사이즈일 수도 있다. 이러한 경우에는, 저장된 리플렉스의 트리거 가중치가 최소 가중치 값 (예컨대, '폐기 임계') 에 도달할 경우, 트리거 가중치는 너무 낮은 것으로 고려될 수도 있어서 그것은 리플렉스를 절대로 트리거링할 가능성이 없을 수도 있다. 이러한 경우, 바닥 램프는 새로운 리플렉스들에 대하여 그 리플렉스에 할당된 메모리를 재이용 (또는 재요구) 할 수도 있다. 이에 따라, 낮은 트리거 가중치로 리플렉스를 정정하기 위한 하한을 설정하는 것은 메모리가 다른 패턴들 및/또는 리플렉스들에 대한 저장을 전담하도록 할 수도 있다. 다른 실시형태들에서, 새로운 리플렉스들을 저장하기 위한 제한된 자원들이 있을 때, 바닥 램프는 최소 또는 "폐기" 임계을 이용하지 않으면서, 메모리를 (가중치 특성들을 통해) 가장 덜 빈번하게 이용되거나 최저로 이용될 가능성이 있는 것으로부터 새로운 리플렉스들로 재할당할 수도 있다 (즉, 바닥 램프는 가장 쓸모없는 리플렉스들을 간단하게 대체할 수도 있음).
t=tCorrection 에서는, 상이한 컴포넌트가 정정 패턴 (MD5) 을 생성할 수도 있다. 예를 들어, 바닥 램프가 트리거링된 모드 (708) 내에서 턴 오프 될 경우, 센서 인코더는 상태에 있어서의 이 변경을 이벤트로 변환할 수도 있고, 이 이벤트는 정정 패턴 MD5 을 생성하기 위하여 이벤트 레코더에 전달될 수도 있다. 패턴 MD5 는 (트리거링된 모드 (708) 에 있는) ReflexF2 의 정정 패턴에 일치될 수도 있고, 그 결과, 트리거 가중치들은 ReflexF2 의 트리거 패턴 (MD1) 및 액션 패턴 (MD3) 사이의 연관성을 약화시키기 위하여 감소될 수도 있다.
t=tResume Monitor 에서, 바닥 램프는 ReflexF2 와 연관된 트리거링된 모드 (708) 를 나갈 수도 있고, 모니터 모드 (706) 로 복귀할 수도 있다. 트리거링된 모드 (708) 는 그것이 시간 만료되었으므로 간단히 종료될 수도 있다. 예를 들어, 트리거링된 모드 (708) 는 10 초 동안에 지속되기만 할 수도 있으므로, 10 초 동안에 트리거링된 모드 (708) 에서 동작한 후, 바닥 램프는 ReflexF2 에 대하여 트리거링된 모드 (708) 를 나갈 수도 있고, 대응하는 모니터 모드 (706) 에 진입할 수도 있다.
도 8 은 바닥 램프와 같은 학습 디바이스의 리플렉스들에 대한 상이한 타입들의 학습 레이트들을 예시한다. 각각의 디바이스는 학습의 임계 학습 주기 (critical learning period; 801) 및 정상 상태 학습 주기 (steady state learning period; 802) 를 가질 수도 있다. 다시 말해서, 임계 학습 주기 (801) 및 정상 상태 학습 주기 (802) 는 학습 디바이스의 상이한 학습 상태들 또는 학습 조건들에 대응할 수도 있다. 예를 들어, 임계 학습 주기 (801) 는 고속 학습 상태에 대응할 수도 있고, 정상 상태 학습 주기 (802) 는 저속 또는 정상적인 학습 상태에 대응할 수도 있다. 이득들의 상이한 세트들은 이 주기들의 각각에 있을 때에 트리거들에 적용될 수도 있다. 도 8 은 2 개의 학습 주기들 (801, 802) 을 도시하지만, 리플렉스들은 2 개를 초과하는 학습 주기들을 사용할 수도 있다는 것을 인식해야 한다.
임계 학습 주기 (801) 는 학습 디바이스의 초기 상태와 통상적으로 연관될 수도 있다. 이것은 학습 디바이스의 초기 거동을 훈련시키는 것이 사용자에게 더욱 유익할 시간일 수도 있다. 초기 동적 리플렉스들은 이 상태에서 생성될 가능성이 있고; 이것은 임계 학습 주기 (801) 와 연관된 다양한 이득 값들 (도 8 에서 "이득 세트 1" 로서 지칭됨) 이 높을 수도 있고 (즉, 높은 이득 세트) 스마트 박스는 학습 및 폐기학습할 가능성이 더 많은 것을 의미한다. 예를 들어, 제조업자들은 그것이 벽 스위치 또는 임의의 다른 디바이스와 신속하게 연관되는 것을 가능하게 하기 위하여, 바닥 램프를 초기에 높은 이득들을 갖는 임계 학습 주기 (801) 로 설정할 수도 있다. 일단 제 1 트리거-액션 연관성이 발생하였으면, 바닥 램프는 정상 상태 학습 주기 (802) 로 변경될 수도 있다.
정상 상태 학습 주기 (802) 는 특정 디바이스가 초기에 훈련되었을 때에 발생할 수도 있고, 추가적인 훈련은 허용되지만, 더욱 어려운 것으로 의도된 것이다. 정상 상태 학습 주기 (802) 와 연관된 이득들 (도 8 에서 "이득 세트 2" 로서 지칭됨) 은 학습을 더욱 어렵게 만들기 위하여 낮은 이득들 (즉, 낮은 이득 세트) 을 가질 수도 있다. 예를 들어, 바닥 램프가 벽 스위치에 관련된 '온' 이벤트와의 '온' 이벤트 연관성을 가질 경우, 바닥 램프는 정상 상태 학습 주기 (802) 에 있을 수도 있다. 정상 상태 학습 주기 (802) 에 있는 동안, 바닥 램프는 스테레오로부터의 수신된 발생 데이터에 응답하여 활성화하는 것과 같은 추가적인 연관성들을 학습할 수도 있다. 그러나, 스테레오 및 바닥 램프 사이의 연관성을 즉시 학습하는 대신에, 스테레오가 턴 온 할 때에 바닥 램프가 턴 온 하는 것을 학습하기 전에, 바닥 램프는 트리거 패턴 (예컨대, 스테레오로부터 수신된 발생 데이터에 기초한 스테레오 '온' 이벤트), 액션 패턴 (예컨대, 램프가 턴 온 되었음을 표시하는 발생 데이터에 기초한 바닥 램프 '온' 이벤트), 및 (예컨대, 램프 상의 사용자 입력 버튼으로부터 "보상" 신호 또는 발생 데이터를 수신하는 것에 기초한) 보상 패턴을 다수 회 조우해야 할 수도 있다.
임계 학습 주기 (801) 와 연관된 이득들 ("이득 세트 1") 과, 정상 상태 학습 주기 (802) 와 연관된 이득들 ("이득 세트 2") 과의 관계는 다음의 식으로 예시될 수도 있다:
이득 세트 1 ≥ 이득 세트 2
다시 말해서, 상기 식을 이용한 학습 디바이스는 이득 세트 2 보다 이득 세트 1 로 더욱 신속하게 학습할 수도 있다.
일부의 실시형태들에서, 각각의 이득 세트는 상이한 동작 단계들에서 리플렉스의 트리거, 보상, 및 정정 패턴과 연관된 개별적인 이득들 또는 가중치들을 가질 수도 있다. 2 개 이상의 이득 레벨들은 이득들을 임계 주기 및 정상 상태 주기에 더 근접하게 조절하기 위하여 이용될 수도 있다. 예를 들어, 임계 주기 및 정상 상태 주기 사이의 하이브리드 (hybrid) 일 수도 있는 제 2 이득 세트가 있을 수도 있다 (예컨대, 학습하기 위해 더 적은 반복이 필요하게 됨). 이득들이 조절됨에 따라, 특정 패턴과 연관된 가중치들은 시스템 내에서의 일치들을 결정하기 위하여 조절될 수도 있다.
특정 리플렉스가 동적 또는 정적인지 여부는 이득들 및 학습 디바이스와 연관된 학습에 영향을 줄 수도 있다. 특정 학습 디바이스는 조절되지 않을 수도 있는 내장 정적 리플렉스를 가질 수도 있다. 예를 들어, 바닥 램프는 관련된 보상 패턴들 또는 정정 패턴들을 조우하는 것에 관계 없이 재가중화 (re-weight)될 수 없는 내장 리플렉스를 가질 수도 있다. 다시 말해서, 학습 디바이스들은 가중치 조절들 (예컨대, 정정) 의 이용을 통해 정적 리플렉스들을 무효화 (또는 "망각 (forget)") 하지 않을 수도 있다. 그러나, 대조적으로, 동적 리플렉스들은 자발적으로 생성될 수도 있고 시간 경과에 따라 조절될 수도 있다. 예를 들어, 바닥 램프는 바닥 램프의 액션이 벽 스위치와 연관된 트리거 패턴에 대응하게 수행되지 않을 수도 있도록, 시간 경과에 따라 동적 리플렉스 (예컨대, 위에서 예시된 바와 같은 ReflexF2) 의 가중치들을 조절할 수도 있다. 다시 말해서, 학습 디바이스는, 트리거 가중치가 임계 미만이고 이에 따라, 액션이 수행되지 않을 수도 있도록, 트리거 패턴 (예컨대, 벽 스위치에서의 발생) 및 액션 패턴 (예컨대, 바닥 램프를 턴 온) 사이의 연관성에 관련된 리플렉스의 트리거 가중치를 저하시킬 수도 있다. 그러나, 일부의 실시형태들에서, 동적 리플렉스들은 연관성이 망각되지 않을 수도 있도록, 정적 리플렉스들로 변환될 수도 있다. 일부의 실시형태들에서는, 액션 및 트리거 사이의 연관성을 가지는 리플렉스의 트리거 가중치를 변경하는 것이 어려워져서, 이에 따라, 이러한 동적 리플렉스들이 더욱 지속적인 것이 되도록, 동적 리플렉스들에 경직 상태 (rigid state) 가 부여될 수도 있다.
도 9 및 도 10 은 도 8 에서 도시된 바와 같이, 정상 상태 학습 주기 (802) 에서 동적 리플렉스의 학습 및 폐기학습의 예들을 예시한다. 도 9 및 도 10 에서 예시된 동일한 원리들은 임계 학습 주기 (801) 에서 동적 리플렉스에 대해 유효하다.
도 9 는 트리거 패턴이 트리거 가중치 임계 (925) 이상인 가중치를 가질 때까지, 트리거-액션 연관성을 보상하는 것이 어떻게 트리거 패턴의 가중치들을 변경할 수도 있는지를 도시하는 타임라인 도면 (900) 이다. 도면 (900) 은 2 개의 알려진 리플렉스들 ReflexF1 및 ReflexF2 를 포함한다. ReflexF1 은 트리거 패턴 ("MD2" 로서 지칭됨), 및 그 트리거 임계 (도시되지 않음) 을 초과하는 제 1 트리거 가중치를 가진다. ReflexF1 은 또한, 액션 패턴 ("MD3" 으로서 지칭됨), 보상 패턴 ("MD4" 로서 지칭됨), 및 정정 패턴 ("MD5" 로서 지칭됨) 을 가진다. ReflexF2 는, ReflexF2 가 상이한 트리거 패턴 ("MD1" 로서 지칭됨) 을 가지는 것을 제외하고는 ReflexF1 과 동일하고, 트리거 가중치 임계 (925) 미만인 제 2 트리거 가중치를 초기에 가질 수도 있다. 도면 (900) 은, ReflexF2 의 트리거 가중치를 변화시킬 수도 있는 이벤트들 및 반응들의 타임라인 (901) 을 도시한다.
시간 t = t0 에서, 바닥 램프는 ReflexF2 에 대하여 모니터 모드 (906) 에 있을 수도 있다. 모니터 모드 (906) 에서는, 바닥 램프가 트리거 패턴 ReflexF2 와 일치하는 이벤트들에 관련된 착신 신호들에 대해 모니터링할 수도 있다. 모니터 모드 (906) 에 있는 동안, 바닥 램프는 트리거 패턴 MD1 에 대응하는 이벤트를 조우하거나 획득할 수도 있다. 예를 들어, 제 1 벽 스위치와 동일할 수도 있는 새로운 벽 스위치는, 새로운 벽 스위치가 '오프' 로부터 '온' 으로 토글할 때에 발생 데이터를 갖는 이벤트 보고 메시지를 바닥 램프로 전송할 수도 있고, 다음으로, 바닥 램프는 수신된 이벤트 보고 메시지 및 발생 데이터에 기초하여 트리거 패턴 MD1 을 생성할 수도 있다.
시간 t=tNoAction1 에서, 바닥 램프는 ReflexF1 및 ReflexF2 에 대한 트리거 패턴 MD1 을 프로세싱할 수도 있다. 이전에 논의된 바와 같이, MD1 은 ReflexF2 와 연관되기만 할 수도 있고, 이에 따라, 바닥 램프는 ReflexF2 에 대하여 트리거링된 모드 (908) 에 진입할 수도 있다. ReflexF2 가 t = tNoAction1 에서 트리거 가중치 임계 (925) 미만인 제 1 트리거 가중치 레벨 (921) 에서 현재의 트리거 가중치를 가지므로, 바닥 램프는 ReflexF2 에 대한 액션 패턴 (예컨대, MD3) 을 생성하지 않을 수도 있다. 그러나, 그 바로 후에, 바닥 램프는 새로운 벽 스위치에 대응하는 발생 데이터를 갖는 또 다른 이벤트 보고 메시지를 수신한 후에 트리거 패턴 MD2 를 생성할 수도 있다. 예를 들어, 새로운 벽 스위치는 '오프' 로부터 '온' 으로 토글할 수도 있고, 관련된 이벤트 보고 메시지를 바닥 램프로 전송할 수도 있어서, 바닥 램프로 하여금 이벤트 보고 메시지에 기초하여 트리거 패턴 MD2 를 생성하게 할 수도 있다. 트리거 패턴 MD2 는 ReflexF1 에 대응하고 트리거 가중치는 그 트리거 임계을 초과하고 있으므로, 바닥 램프는 액션 패턴 MD3 을 생성할 수도 있다. 바닥 램프는 램프가 그 전등을 턴 온 하는 것으을 초래하는 대응하는 액션 이벤트를 추후에 생성할 수도 있다. 일단 전등이 턴 온 되면, 상태에 있어서의 변경은, 연관된 이벤트를 생성하고 보상 패턴 MD4 를 생성하는 센서 인코더에 의해 레코딩될 수도 있다.
시간 t=tWeightAdjust1 에서, 보상 패턴 MD4 은 ReflexF1 및 ReflexF2 양자에 대한 트리거 가중치들을 조절하기 위하여 프로세싱될 수도 있다. ReflexF2 에 대하여 트리거링된 모드 (908) 에 있는 동안, 바닥 램프는 패턴 MD4 가 ReflexF2 의 보상 패턴과 일치하는 것으로 결정할 수도 있고, MD1 및 ReflexF2 의 트리거 가중치를 증가시킬 수도 있다. 새로운 트리거 가중치는, 여전히 트리거 가중치 임계 (925) 미만인 제 2 트리거 가중치 레벨 (922) 에 있다. 트리거링된 모드 (908) 가 시간 만료된 후, 바닥 램프는 모니터 모드 (906) 에 다시 진입할 수도 있다.
이벤트들을 조우하고 그 대응하는 패턴들 MD1, MD2, MD3 (또는 MD3'), 및 MD4 를 생성하는 프로세스는 반복될 수도 있어서, t=tWeightAdjust2 에서 트리거 가중치 임계 (925) 위로 제 3 트리거 가중치 레벨 (923) 까지 증가시키기 위하여 ReflexF2 의 트리거 가중치를 조절하는 것으를 초래할 수도 있다.
ReflexF2 의 트리거 가중치를 트리거 가중치 임계 (925) 위로 조절한 후의 임의의 시간에, 바닥 램프는, ReflexF1 을 트리거링하기 위하여 패턴 MD2 를 조우할 필요 없이 액션 패턴 MD3' 의 생성으를 초래할 수도 있는, 패턴 MD1 에 대응하는 이벤트를 조우할 수도 있다. 예를 들어, 이전에는 바닥 램프가 새로운 벽 스위치의 '온' 이벤트에 대응하는 패턴 MD2 를 생성하였을 때에 턴 온 되기만 하였을 수도 있다. 이제, 벽 스위치는 패턴 MD1 에 대응하는 이벤트의 생성으를 초래할 수도 있는 발생 데이터를 포함하는 이벤트 보고 메시지를 바닥 램프로 전송할 수도 있고, 이에 따라, 바닥 램프는 ReflexF2 를 통해 전등을 턴 온 하도록 트리거링될 수도 있다.
도 10 은 트리거 가중치가 트리거 가중치 임계 (1025) 미만일 때까지 트리거 가중치를 조절함으로써 트리거-액션 연관성을 정정하는 것을 예시하는 타임라인 도면 (1000) 이다. 도면 (1000) 은, 정정 이벤트가 바닥 램프에 의해 조우되고 바닥 램프는 추후에 정정 패턴을 생성하는 것을 제외하고는 도면 (900) 과 유사하다. 이 정정 패턴은 리플렉스의 트리거 가중치를 감소시킨다. 도면 (900) 과 달리, 도면 (1000) 에서의 정정 프로세스는 하나의 리플렉스만을 관여시킬 수도 있다. 여기서, ReflexF2 만이 관여되고, 도면 (900) 에서와 같이, 동일한 트리거 패턴 MD1, 액션 패턴 MD3, 보상 패턴 MD4, 및 정정 패턴 MD5 를 포함한다. 또한, 도면 (900) 과 달리, 도면 (1000) 에서의 ReflexF2 는 그 트리거 가중치 임계 (1025) 을 초과하는 1023 의 초기 트리거 가중치와 함께 시작할 수도 있다. 이에 따라, 트리거 패턴 MD1 을 생성할 시에, 바닥 램프는 대응하는 액션 패턴 및 연관된 액션을 생성할 수도 있다.
시간 t=t0 에서, 바닥 램프는 모니터 모드 (1006) 에서 이벤트들에 대해 모니터링할 수도 있다. 모니터 모드 (1006) 동안, 바닥 램프는 트리거 패턴 MD1 에 대응하는 트리거 이벤트를 조우할 수도 있다. 예를 들어, 새로운 벽 스위치는 '오프' 로부터 '온' 으로 토글되었으므로, 새로운 벽 스위치는 '온' 이벤트에 관련되며 패턴 MD1 에 대응하는 발생 데이터를 갖는 이벤트 보고 메시지를 브로드캐스팅할 수도 있다. 이벤트가 수신됨에 따라, 바닥 램프는 대응하는 트리거 패턴을 생성할 수도 있다.
시간 t = tTriggered1 에서, 바닥 램프는 온-이벤트에 관련된 이벤트 보고 메시지를 수신할 수도 있고 패턴 MD1 을 생성할 수도 있다. 바닥 램프는 패턴 MD1 이 ReflexF2 에 대응하는 알려진 트리거 패턴인 것으로 결정할 수도 있고, 이에 따라, ReflexF2 에 대하여 트리거링된 모드 (1008) 에 진입할 수도 있다. 그 바로 후에, 바닥 램프는 ReflexF2 에 대한 제 1 트리거 가중치 레벨 (1023) 이 트리거 가중치 임계 (1025) 을 초과하고 있는 것으로 결정할 수도 있고, 그 전등을 턴 온 하는 바닥 램프의 액션 이벤트 및 물리적 액션으을 초래하는 액션 패턴 MD3 을 생성할 수도 있다. 바닥 램프는 또한, 트리거링된 모드 (1008) 에 있는 동안에 정정 패턴 MD5 에 대응하는 이벤트를 조우할 수도 있다. 예를 들어, 사용자가 바닥 램프 상의 별도의 정정 버튼 (예컨대, "정정" 으로 표기된 버튼) 누를 때, 바닥 램프는 이벤트를 조우할 시에 정정 패턴 MD5 를 생성할 수도 있다. 사용자는 정정 이벤트를 바닥 램프에 전송하기 위하여 이 버튼을 누를 수도 있고, 이에 응답하여, 바닥 램프는 정정 패턴 MD5 를 생성할 수도 있다. 대안적인 예에서는, 사용자가 이전 트리거 패턴의 잠시의 시간 윈도우 내에서 바닥 램프를 수동으로 턴 오프 할 때, 바닥 램프는 정정 패턴을 생성할 수도 있다. 이전 트리거 패턴의 반대의 입력은 정정 패턴에 대응할 수도 있고, 바닥 램프는 트리거 패턴들 및 액션 패턴들을 연관해제 (disassociate) 하는 것을 학습할 수도 있다.
시간 t=tCorrection1 에서, 바닥 램프는 정정 패턴 MD5 이 ReflexF2 의 정정 패턴과 일치하는 것으로 결정할 수도 있다. 이에 따라, 바닥 램프는 ReflexF2 와 연관된 트리거 가중치를 제 2 트리거 가중치 레벨 (1022) 까지 감소시킬 수도 있다. 제 2 트리거 가중치 레벨 (1022) 은 트리거 가중치 임계 (1025) 을 여전히 초과하고 있고, 이에 따라, 바닥 램프는 여전히 그 전등을 활성화할 수도 있다. 궁극적으로, 트리거링된 모드 (1008) 는 시간 제약들로 인해 종료되고, 바닥 램프는 모니터 모드 (1006) 에 다시 진입할 수도 있다.
모니터 모드 (1006) 에 있는 동안, 바닥 램프는 제 2 트리거 이벤트를 조우할 수도 있고 제 2 트리거 패턴 MD1 을 생성할 수도 있다. 예를 들어, 새로운 벽 스위치는 다시 '오프' 로부터 '온' 으로 토글될 수도 있다. 시간 t=tTriggered2 에서, 바닥 램프는 제 2 패턴 MD1 이 ReflexF2 의 알려진 트리거 패턴과 일치하는 것으로 결정할 수도 있고, ReflexF2 에 대하여 트리거링된 모드 (1008) 에 진입할 수도 있다. ReflexF2 가 현재 트리거 가중치 임계 (1025) 을 초과하여 제 2 트리거 가중치 레벨 (1022) 을 가지므로, 바닥 램프는 액션 패턴 MD3 및 연관된 기계적 액션 (예컨대, 전등을 턴 온 함) 을 생성할 수도 있다. 바닥 램프가 ReflexF2 를 갖는 트리거링된 모드 (1008) 에 있는 동안, 바닥 램프는 다시 정정 버튼으로부터의 정정 이벤트를 조우할 수도 있고, 정정 패턴 MD5 를 생성할 수도 있다. 패턴 MD5 는 ReflexF2 에 대응하므로, 시간 t=tCorrection2 에서, 트리거 가중치는 트리거 가중치 임계 (1025) 미만인 제 3 트리거 가중치 레벨 (1021) 까지 감소된다. 이에 따라, 시간 t=tTriggered3 에서, 바닥 램프가 또 다른 트리거 이벤트를 조우하고 또 다른 트리거 패턴 MD1 을 생성할 경우, 바닥 램프는 트리거링된 모드 (1008) 에서 대응하는 액션 패턴 MD3 을 생성하지 않을 수도 있다. 다시 말해서, 바닥 램프는 ReflexF2 의 트리거 액션 연관성을 효과적으로 망각하였을 수도 있고, 추후에 (또는 적어도 트리거 패턴에 대한 그 방식에 응답하도록 재훈련될 때까지) 트리거 패턴 MD1 을 생성할 시에 그 전등을 활성화하지 않을 수도 있다.
일부의 실시형태들에서, 그 연관성 트리거 가중치 임계 미만인 트리거 가중치들은 바닥 램프가 보상 패턴을 조우하지 않으면서 그 트리거 모드에 진입하는 것에 응답하여 저하될 수도 있다. 예를 들어, 도 10 에서는, 시간 tTriggered3 에서, 바닥 램프가 후속 보상 패턴을 갖지 않는 트리거 패턴 MD1 을 검출할 수도 있고, 그 결과, 바닥 램프는 t=tSubthreshold1 에서 도시된 바와 같이, ReflexF2 에 대한 트리거 가중치를 제 4 트리거 가중치 레벨 (1019) 가지 감소시키는 것을 계속할 수도 있다. 일부의 실시형태들에서, 일단 트리거 가중치가 그 연관된 트리거 가중치 임계 미만이고 보상 패턴이 조우되지 않는다면, 리플렉스의 트리거 가중치는 시간 경과에 따라 주기적으로 감소 (또는 감쇠) 될 수도 있다.
일부의 실시형태들에서, 바닥 램프는 그 트리거 가중치가 트리거 가중치 임계 (1025) 미만이고 메모리 부족이 있은 직후에 또는 그 약간 후에 ReflexF2 를 제거할 수도 있다. 이에 따라, ReflexF2 가 삭제된 후에 바닥 램프가 ReflexF2 의 트리거 패턴 (MD1) 을 삭제할 경우, 바닥 램프는 다른 조건들이 충족되는 것 (예컨대, 트리거링된 모드 동안에 존재하는 보상을 가짐) 으로 가정하면서, 그 트리거 패턴으로서 패턴 MD1 을 갖는 새로운 리플렉스를 생성할 수도 있다. 일부의 실시형태들에서, 바닥 램프는 메모리 부족들 (예컨대, 저장된 리플렉스들에 대한 메모리 한계에 도달함) 로 인해 그 연관된 임계을 초과하는 트리거 가중치를 가지는 리플렉스를 제거할 수도 있다. 예를 들어, 바닥 램프가 트리거링된 모드 내에서 새로운 트리거 패턴을 조우하지만, 국부적 메모리에서 이용가능한 저장 장치를 가지지 않을 때, 바닥 램프는, 트리거 임계을 초과하는 트리거 가중치를 가지지만, 종종 이용되지 않고, 이용될 가능성이 가장 적고, 및/또는 그 각각의 트리거 가중치 임계들을 초과하는 트리거 가중치들을 갖는 모든 리플렉스들의 최저 트리거 가중치를 가지는 저장된 리플렉스를 제거할 수도 있다.
도 11 은 이벤트들과 연관된 액션들을 학습하기 위한 스마트 박스에서 구현될 수도 있는 일 실시형태의 방법 (1100) 을 예시한다. 일 실시형태의 방법 (1100) 은 임의의 스마트 박스와 함께 이용될 수도 있지만, 설명의 용이함을 위하여, 방법 (1100) 은 벽 스위치에 접속된 스마트 박스로부터 이벤트 보고 메시지를 수신하는 바닥 램프에 접속된 스마트 박스의 예를 참조하여 설명된다. 추가적으로, 바닥 램프, 벽 스위치, 또는 스테레오에 대한 임의의 참조는 또한, 그 대응하는 스마트 박스들을 각각 망라한다. 예를 들어, 바닥 램프에 의해 수행되는 것으로 설명된 동작들은 바닥 램프와 연관된 스마트 박스의 프로세서에 의해 수행될 수도 있다. 이 스마트 박스들은, 이벤트 보고 메시지들 내의 발생 데이터를 교환하고, 이벤트들 및/또는 패턴들을 프로세싱하는 동작들을 실제적으로 수행한다.
블록 (1102) 에서, 바닥 램프는 이벤트를 획득할 수도 있다. 예를 들어, 바닥 램프는 벽 스위치로부터 RF 송신을 통해 발생 데이터를 포함하는 이벤트 보고 메시지를 수신할 수도 있고, 이벤트 보고 메시지에서의 데이터에 기초하여, 바닥 램프는 도 3b 를 참조하여 위에서 설명된 바와 같은 데이터 구조로서 이벤트를 생성할 수도 있다. 이러한 예에서는, 사용자가 벽 스위치를 '오프' 로부터 '온' 으로 토글할 때, 이벤트 보고 메시지가 벽 스위치에 의해 송신될 수도 있다. 위에서 설명된 바와 같이, 바닥 램프는 대안적으로, 바닥 램프에 결합된 센서 (예컨대, 광 센서 등) 에 기초하여, 및/또는 액션을 수행하는 것에 응답하여 이벤트를 획득할 수도 있다. 시간 경과에 따라, 그리고 방법들 (1100 및 1200) 의 동작들의 추후의 반복들에서, 바닥 램프는, 획득된 이벤트에 관련될 수도 있거나 관련되지 않을 수도 있는 추가적인 엘리먼트들을 획득할 수도 있다. 예를 들어, 획득된 이벤트에 기초하여 트리거링된 모드를 활성화한 후, 바닥 램프는, 수신된 이벤트 보고 메시지들 및/또는 바닥 램프에 의해 수행된 액션들에 응답하여 생성된 이벤트들과 같이, 획득되고 메모리 내에 버퍼링된 이전의 이벤트들을 취출함으로써 추가적인 이벤트들을 획득할 수도 있다.
결정 블록 (1104) 에서, 바닥 램프는 이벤트 필터가 적용되는지 여부를 결정할 수도 있다. 이벤트 필터들은 시간 필터들, 타입 필터들, 디바이스 이벤트 필터들 등을 포함할 수도 있다. 이벤트 필터가 적용되는 것으로 결정하는 것 (즉, 결정 블록 (1104) = "예") 에 응답하여, 바닥 램프는 블록 (1106) 에서 추가로 프로세싱하는 것으로부터 이벤트를 폐기할 수도 있고, 블록 (1102) 에서 새로운 착신 신호들에 대해 모니터링하는 것을 계속한다. 일부의 실시형태들에서, 이벤트 필터가 시간-기반 필터일 경우, 하루 동안에 이벤트들을 폐기하기 위한 사전 설정된 스케줄이 있을 수도 있다. 예를 들어, 스테레오는 자정의 시간들로부터 오전 10 시까지 획득된 이벤트들을 무시하게 될 시간 필터를 가질 수도 있다. 또 다른 예에서, 바닥 램프에서의 이벤트 필터는 스테레오로부터 모든 획득된 이벤트들을 간단하게 무시할 수도 있다. 추가의 예에서, 스테레오는 특정 사용자와 연관된 획득된 이벤트들을 무시할 수도 있다. 일부의 실시형태들에서, 벽 스위치는 사용자 ID 입력 (예컨대, 지문 데이터, 패스 코드, 블루투스 또는 근접장 통신 (Near Field Communication; NFC) 으로부터의 근처의 이동 디바이스 데이터 등) 을 수신할 수도 있고, 이벤트 보고 메시지 내의 발생 데이터에서 그 사용자 ID 를 포함할 수도 있다. 스테레오를 소유하는 아버지는 자신 외의 누군가가 벽 스위치로 자신의 스테레오를 턴 온 하는 것을 원하지 않을 수도 있다. 이에 따라, 스테레오는 획득된 이벤트들이 아버지의 사용자 ID 를 포함하고 있지 않을 경우에 모든 획득된 이벤트들을 폐기할 수도 있음으로써, 다른 사람들이 벽 스위치로 스테레오를 턴 온 하는 것을 방지할 수도 있다. 그러나, 이벤트 필터가 적용되지 않을 경우 (즉, 결정 블록 (1104) = "아니오"), 바닥 램프는 (도 1c 에서 도시된) 메모리 (138) 내에 위치된 버퍼에서 이벤트를 저장할 수도 있다.
이벤트 필터가 적용되지 않는 것으로 가정하면, 바닥 램프는 블록 (1108) 에서 메모리 (138) 내에 위치된 버퍼에서 이벤트를 저장할 수도 있다. 이벤트는 바닥 램프가 모니터 모드에 있는 동안에 이벤트 레코더 (206) 에서 패턴을 생성하는 것을 용이하게 하기 위하여 버퍼에서 저장될 수도 있다. 다시 말해서, 바닥 램프는 모니터 모드에 있는 동안에 이벤트들의 버퍼링을 수행할 수도 있다. 도시되지 않았지만, 바닥 램프는 특정 시간 주기 (예컨대, 5 내지 10 초) 동안에 이벤트들을 메모리 내에 버퍼링할 수도 있고, 그 다음으로, 새로운 이벤트들을 위한 공간을 만들기 위하여 이벤트들을 폐기할 수도 있다.
블록 (1110) 에서, 바닥 램프는 버퍼에서 상주하는 이벤트에 기초하여 패턴을 생성할 수도 있다. 일부의 실시형태들에서, 바닥 램프는 예컨대, 메모리 내에 버퍼링된 다양한 이벤트들을 취출 및 조합함으로써, 버퍼에서 상주하는 다수의 이벤트들에 기초하여 패턴을 생성할 수도 있다. 예를 들어, 바닥 램프는 2 개의 상이한 벽 스위치들이 '온' 위치로 될 때에 수신된 이벤트 보고 메시지들에 기초하여 생성된 2 개의 이벤트들에 기초하여 패턴을 생성하였을 수도 있다. 패턴들은 4 개의 방법들 중 하나에 의해 생성될 수도 있다: (1) 이벤트들의 시간-순서화된 시퀀스에 기초함; (2) 다수의 이벤트들을 싱글렛 (singlet) 으로 감소시킴; (3) 어림법 (heuristics); 및 (4) 패턴 생성 시에 이벤트들로부터 시간을 제거함.
이벤트들의 시간-순서화된 시퀀스에 기초하여 패턴을 생성할 때, 이벤트가 생성되거나 또는 이와 다르게 획득되는 시간이 중요할 수도 있다. 이에 따라, 이벤트가 어떤 시간 윈도우 내에서 생성되지 않을 경우, 바닥 램프는 이벤트에 기초하여 패턴을 생성하지 않을 수도 있다. 예를 들어, 바닥 램프는 벽 스위치에 관련된 '온' 이벤트 및 스테레오에 관련된 '온' 이벤트와 동등한 트리거 패턴을 가질 수도 있다. 바닥 램프가 시간 윈도우 내의 벽 스위치에 관련된 '온' 이벤트를 획득하지만, 스테레오에 관련된 '온' 이벤트는 시간 윈도우의 외부에서 획득될 경우, 바닥 램프는 트리거 이벤트를 인식하지 않을 수도 있다. 일부의 실시형태들에서, 패턴은 이벤트 A 가 이벤트 B 전에 획득될 경우에 생성되기만 할 수도 있다. 예를 들어, 바닥 램프가 벽 스위치 '온' 이벤트 이전에 스테레오 '온' 이벤트를 획득할 경우, 바닥 램프는 벽 스위치 이벤트가 먼저 획득될 때에 트리거 패턴들을 수용하기만 하므로, 바닥 램프는 이 이벤트들을 트리거 패턴으로서 인식하지 않을 수도 있다.
일부의 실시형태들에서, 다수의 이벤트들은 단일의 이벤트 또는 싱글렛 (singlet) 으로 감소될 수도 있다. 예를 들어, 바닥 램프는, 램프 이벤트 버퍼에서 저장되는, 상이한 시간들에서의 2 개의 'A' 이벤트들, 및 그 다음으로 'B' 이벤트를 획득할 수도 있다. 바닥 램프는 하나의 'A' 이벤트 및 하나의 'B' 이벤트에 기초하여 패턴을 생성할 수도 있어서, 제 2 'A' 이벤트를 폐기할 수도 있다. 이에 따라, 2 개의 'A' 이벤트들 및 'B' 이벤트를 가지는 트리거 패턴은 하나의 'A' 이벤트 및 하나의 'B' 이벤트를 가지는 트리거 패턴으로 감소될 수도 있다. 'A' 이벤트가 상이한 시간에서 반복되므로, 바닥 램프는 반복된 이벤트를 무시할 수도 있다.
일부의 실시형태들에서, 바닥 램프는 이벤트를 무시할 것인지 여부를 결정하기 위하여 일련의 어림 계산들을 행할 수도 있다. 이 어림 계산들 중의 일부는 간단하게 카운팅 메커니즘 (counting mechanism) 을 포함할 수도 있다. 예를 들어, 바닥 램프는 'A' 이벤트 (예컨대, 벽 스위치에 관련된 '온' 이벤트) 를 3 회 수신하였는지 여부를 결정할 수도 있고, 이때, 바닥 램프는 3 개의 'A' 이벤트들을 수신하는 것을 트리거 패턴을 생성하는 것과 동일시하는 어림 규칙에 기초하여 트리거 패턴과 같은 대응하는 패턴을 생성할 수도 있다.
일부의 실시형태들에서, 바닥 램프는 이벤트들로부터 패턴들을 생성하는 시간을 무시할 수도 있다. 시간을 무시하는 것은 어림 계산들과 일치할 수도 있다. 예를 들어, 바닥 램프가 메모리 (138) 에서의 3 개의 'A' 이벤트들 및 하나의 'B' 이벤트를 수신할 경우, 바닥 램프는 시간 윈도우를 갖지 않는 이벤트들에 기초하여 패턴을 생성할 것인지 여부를 결정하기 위하여 일련의 어림 계산들을 수행할 수도 있다. 시간을 무시하는 것은 또한, 순서-독립성을 포함할 수도 있다. 예를 들어, 바닥 램프는 그것이 'A' 이벤트 및 그 다음으로, 'B' 이벤트, 또는 'B' 이벤트 및 그 다음으로, 'A' 이벤트를 획득하는지 여부에 관계 없이 동일한 패턴을 생성할 수도 있다.
결정 블록 (1112) 에서, 바닥 램프는 패턴 필터를 적용할 것인지 여부를 결정할 수도 있다. 이것은 결정 블록 (1104) 을 참조하여 설명된 이벤트 필터와 유사할 수도 있고, 저장된 무시 패턴들, 시간-기반 필터들, 디바이스 타입 필터들 등을 포함할 수도 있다. 바닥 램프는 패턴이 시간 임계과 같은 임계 미만으로 떨어질 때에 메모리 (예컨대, 32 K 메모리, 64K 메모리 등) 로부터 패턴을 제거하기 위하여 패턴 필터를 채용할 수도 있다. 바닥 램프가 패턴 필터가 적용되는 것으로 결정하는 것 (즉, 결정 블록 (1112) = "예") 에 응답하여, 바닥 램프는 패턴을 폐기할 수도 있고, 블록 (1113) 에서의 그 패턴의 추가의 프로세싱을 금지할 수도 있다. 일부의 실시형태들에서, 바닥 램프는 최근에 행해진 액션들에 대해 생성된 패턴들을 필터링할 수도 있다. 예를 들어, 바닥 램프가 턴 온 될 때, 바닥 램프는 이벤트로부터 액션 패턴을 생성할 수도 있다. 액션 패턴이 시간 주기 동안에 무시되지 않았을 경우, 바닥 램프는 액션 패턴을 (예컨대, 스테레오를 턴 온 하기 위한) 또 다른 액션에 대한 트리거 패턴으로서 프로세싱하는 것을 시도할 수도 있다. 새로운 트리거-액션 연관성의 생성을 회피하기 위하여, 바닥 램프는, 바닥 램프가 짧은 시간 주기 동안에 생성된 액션 패턴들을 무시하는 일시적 무시 패턴 필터를 생성할 수도 있다. 바닥 램프가 패턴을 폐기한 후, 바닥 램프는 블록 (1102) 에서 새로운 이벤트들을 획득하는 것으로 복귀한다. 일부의 실시형태들에서, 바닥 램프는 블록 (1102) 에서 일정하게 이벤트들을 획득할 수도 있다.
일부의 실시형태들에서, 바닥 램프는 패턴 또는 대응하는 리플렉스의 트리거 가중치가 낮은 임계 값 미만일 경우에 패턴 필터들을 적용할 수도 있다. 패턴 필터를 적용함으로써, 바닥 램프는 특정 리플렉스의 임계 값이 어떤 설정 값 미만일 때에 그 메모리로부터 패턴들을 제거할 수 있을 수도 있다. 바닥 램프는 출원 전반에 걸쳐 설명된 정정 프로세스를 통해 리플렉스의 트리거 가중치를 감소시킬 수도 있다. 패턴들을 제거하는 것은 바닥 램프가 새로운 리플렉스들의 생성을 위한 자원들 (예컨대, 메모리) 을 보존하도록 할 수도 있다. 일부의 실시형태들에서, 바닥 램프는 미리 결정된, 제한된 수의 리플렉스들 (예컨대, 램프 당 2 개의 리플렉스들) 을 사용하도록 구성될 수도 있어서, 사용자들은 이용가능한 국부적 저장 장치에 관계 없이, 임의의 주어진 시간에서의 바닥 램프의 학습된 역량들에 관해 혼동될 가능성이 적다. 저장된 리플렉스들에 대한 이러한 제한들은 또한, 예컨대, 더 적은 저장된 리플렉스들 및 패턴들로 인해 비교될 필요가 있을 수도 있는 패턴들의 수를 감소시켜서 패턴 일치 속력들을 개선시킴으로써, 성능을 개선시키는 추가된 장점을 가질 수도 있다.
결정 블록 (1112) 을 다시 참조하면, 패턴 필터가 적용되지 않는 것으로 결정하는 것 (즉, 결정 블록 (1112) = "아니오") 에 응답하여, 바닥 램프는 결정 블록 (1114) 에서, 생성된 패턴이 알려진 패턴과 일치하는지 여부를 결정할 수도 있다. 예를 들어, 바닥 램프는 수신된 이벤트가 시간 기반 필터의 시간 윈도우 내에 있는 것으로 결정할 수도 있다. 이에 따라, 바닥 램프는 이벤트를 패턴으로서 프로세싱하는 것을 계속한다. 바닥 램프는 생성된 패턴이 알려진 트리거 패턴, 알려진 정정 패턴, 알려진 보상 패턴 등과 같은 임의의 타입의 알려진 패턴인지 여부를 결정할 수도 있다.
일 예로서, 결정 블록 (1114) 에서, 바닥 램프는 생성된 패턴이 도 6 을 참조하여 위에서 설명된 리플렉스 'ReflexF1' 에 대한 트리거 패턴 'MD2' 와 같은, 리플렉스의 알려진 트리거 패턴에 대응하는지 여부를 결정할 수도 있다. 생성된 패턴이 알려진 패턴과 일치하는 것으로 결정하는 것 (즉, 결정 블록 (1114) = "예") 에 응답하여, 바닥 램프는 도 12 를 참조하여 이하에서 설명된 결정 블록 (1202) 의 동작들을 수행할 수도 있다. 예를 들어, 바닥 램프는 적어도 하나의 이벤트가 리플렉스와 연관된 트리거 패턴에 대응할 때에 리플렉스에 관련된 트리거링된 모드에 진입할 수도 있고, 리플렉스와 연관된 액션을 행할 수도 있다.
그러나, 생성된 패턴이 알려진 패턴과 일치하지 않는 것으로 결정하는 것 (즉, 결정 블록 (1114) = 아니오) 에 응답하여, 바닥 램프는 결정 블록 (1116) 에서 새로운 리플렉스를 생성할 것인지 여부를 결정할 수도 있다. 예를 들어, 도 7 의 시나리오에서 위에서 설명된 바와 같이, 생성된 패턴은 알려진 패턴에 대응하지 않는 패턴 'MD1' 일 수도 있고 (즉, ReflexF2 는 아직 생성되지 않았음), 그러므로, 바닥 램프는 그것이 그 새로운 트리거 패턴으로서 패턴 MD1 을 가지는 새로운 리플렉스를 생성해야 하는지 여부를 결정할 수도 있다. 바닥 램프는, 알려지지 않은 패턴이 검출되었고 리플렉스가 그 트리거링된 모드에 있는지 여부의 양자에 기초하여, 새로운 리플렉스가 생성되어야 하는지 여부를 판단할 수도 있다.
바닥 램프가 새로운 리플렉스를 생성하지 않는 것으로 판단하는 것 (즉, 결정 블록 (1116) = "아니오") 에 응답하여, 바닥 램프는 블록 (1113) 에서 생성된 패턴을 폐기할 수도 있고, 블록 (1102) 에서 새로운 이벤트들에 대해 모니터링하기 시작할 수도 있다. 일부의 실시형태들에서, 바닥 램프는 바닥 램프가 새로운 연관성들을 학습할 수 없는 비-학습 모드로 스위칭될 수도 있음으로써, 새로운 리플렉스들을 생성하기 위한 그 능력을 디스에이블 (disable) 할 수도 있다. 예를 들어, 바닥 램프는 벽 스위치가 온/오프 이벤트와 연관된 이벤트 보고 메시지를 전송할 때에 그 전등을 온/오프하도록 이전에 학습하였을 수도 있다. 사용자는 이 간단한 온/오프 연관성으로 충족될 수도 있고, 바닥 램프에 의한 임의의 추가적인 학습을 디스에이블할 수도 있다. 이에 따라, 바닥 램프는 스테레오 또는 임의의 다른 학습 디바이스에서 발생들 (예컨대, 전력 온 등) 과의 추가적인 연관성을 학습하지 않을 수도 있다. 다른 실시형태들에서, 바닥 램프는 그것이 새로운 리플렉스를 학습하는 것을 방지하기 위하여 다른 고려사항들 (예컨대, 충분하지 않은 메모리, 트리거링된 모드 시간 만료 등) 을 가질 수도 있다.
바닥 램프가 새로운 리플렉스를 생성하는 것으로 판단하는 것 (즉, 결정 블록 (1116) = "예") 에 응답하여, 바닥 램프는 블록 (1118) 에서 새로운 리플렉스에 대한 트리거 패턴으로서 새로운 패턴을 저장할 수도 있다. 새로운 리플렉스는 미리 결정된 액션 패턴, 보상 패턴 및 정정 패턴으로 생성될 수도 있다. 이에 따라, 블록 (1119) 에서, 바닥 램프는, 현재 그 트리거링된 모드에 있는 리플렉스로부터의 액션 패턴, 보상 패턴, 및 정정 패턴을 새로운 리플렉스로 복사할 수도 있다. 예를 들어, 상기 도 6 에서 예시된 바와 같이, 바닥 램프는 트리거 패턴으로서 새로운 패턴 MD1 을 포함하는 ReflexF2 를 생성할 수도 있고, 오직 다른 알려진 ReflexF1 로부터 액션 패턴, 보상 패턴, 및 정정 패턴을 복사할 수도 있다. 대안적인 예에서, 바닥 램프는 그 트리거링된 모드에서 임의의 다른 저장된 리플렉스로부터 패턴들을 취함으로써 새로운 리플렉스를 생성할 수도 있다.
이전에 언급된 바와 같이, 바닥 램프는 트리거링된 모드에 있는 동안에 추가적인 이벤트들을 획득할 수도 있고, 이러한 추가적인 이벤트들은 상이한 트리거와 연관될 수도 있거나 상이한 트리거에 상관될 수도 있다. 바닥 램프는 이 추가적인 이벤트들에 기초한 패턴들을 식별하거나 이 패턴들을 메모리 내에 저장된 리플렉스들의 패턴들에 일치시키는 것을 시도할 수도 있다. 그러나, 이 추가적인 이벤트들에 기초한 패턴들은 저장된 리플렉스의 알려진 패턴에 대응하지 않을 수도 있고, 바닥 램프는 새로운 리플렉스를 생성하는 것으로 판단할 수도 있다. 다시 말해서, 추가적인 이벤트들에 기초한 패턴들이 알려진 리플렉스와 연관된 트리거 패턴, 액션 패턴, 정정 패턴, 및 보상 패턴 중의 적어도 하나에 대응하지 않을 때, 바닥 램프는 트리거 패턴, 액션 패턴, 정정 패턴, 및 보상 패턴을 갖는 제 2 리플렉스를 생성할 수도 있다.
도 12 는 도 11 로부터의 일치된 패턴의 계속된 프로세싱의 일 실시형태의 방법 (1200) 을 예시한다. 위에서 설명된 바와 같이, 생성된 패턴이 알려진 패턴과 일치하는 것으로 결정하는 것 (즉, 도 11 의 결정 블록 (1114) = "예") 에 응답하여, 바닥 램프는 결정 블록 (1202) 에서, 생성된 패턴이 리플렉스의 알려진 트리거 패턴과 일치하는지 여부를 결정할 수도 있다. 예를 들어, 바닥 램프는 벽 스위치 '온' 이벤트에 기초하여 생성된 패턴이 저장된 리플렉스의 알려진 트리거 패턴과 일치하는지 (예컨대, 패턴 MD1 이 도 6 에서 도시된 ReflexF2 에 대한 트리거 패턴과 일치함) 여부를 결정할 수도 있다. 바닥 램프가 생성된 패턴이 알려진 트리거 패턴과 일치하는 것으로 결정하는 것 (즉, 결정 블록 (1202) = "예") 에 응답하여, 바닥 램프는 블록 (1203) 에서, 생성된 패턴과 일치하는 알려진 트리거 패턴과 연관된 리플렉스에 대한 트리거링된 모드를 활성화 (또는 턴 '온') 할 수도 있다. 트리거링된 모드를 활성화하는 것은 리플렉스와 연관된 모니터 모드를 비활성화할 수도 있다. 바닥 램프는 다른 리플렉스들과 연관되는 다른 이벤트들과 같이, 리플렉스에 관련된 트리거링된 모드에 있는 동안에 추가적인 이벤트들을 수신 및 식별할 수도 있어서, 동시에 활성화된 트리거링된 모드들을 야기시킬 수도 있다는 것에 주목해야 한다.
바닥 램프는 결정 블록 (1204) 에서, 일치하는 패턴의 리플렉스의 트리거 가중치가 트리거 임계 이상인지 여부를 결정할 수도 있다. 도 11 의 예와 함께 계속하면, 바닥 램프는 생성된 패턴 MD1 이 최근에 생성된 ReflexF2 의 알려진 트리거 패턴과 일치하는 것으로 결정할 수도 있고, ReflexF2 에 대한 현재의 저장된 트리거 가중치를 그 각각의 트리거 임계과 비교할 수도 있다. 결정 블록 (1204) 에서, 바닥 램프는 트리거 가중치가 임계 이상인지 여부를 결정할 수도 있다. 트리거 가중치가 임계 이상인 것으로 결정하는 것 (즉, 결정 블록 (1204) = "예") 에 응답하여, 바닥 램프는 예컨대, 바닥 램프로 하여금 미리 결정된 액션을 행하거나 수행하게 하는 패턴 또는 결과적인 이벤트를 생성하기 위하여 일치하는 트리거 패턴의 리플렉스를 이용함으로써, 블록 (1216) 에서 액션을 생성할 수도 있다. 예를 들어, 바닥 램프는 ReflexF2 의 트리거 가중치가 도 9 에서 예시된 바와 같이 트리거 가중치 임계 (925) 을 초과할 경우에, 그 전등 (124) 을 턴 온 할 수도 있다. 다양한 실시형태들에서, 액션을 생성하는 것은, 외부적으로 또는 내부적으로 추가로 전파될 수도 있으며, 액츄에이터 (actuator) 를 구동하기 위하여 모터 구동기에 의해 이용되는 이벤트들의 패턴을 생성하는 것을 포함할 수도 있다.
일부의 실시형태들에서, 바닥 램프는 트리거링될 때에 제한된 수의 액션들을 생성하도록 구성될 수도 있다. 예를 들어, 바닥 램프는 그 트리거링된 모드 동안에 수신된 트리거 패턴들의 수에 관계 없이, 임의의 하나의 트리거링된 모드 동안에 하나의 액션을 생성하기만 할 수도 있다.
선택적인 블록 (1217) 에서, 바닥 램프는 생성된 액션 (또는 그 결과적인 이벤트) 을 표시하는 발생 데이터를 포함하는 브로드캐스팅된 메시지와 같은, 생성된 액션에 기초한 이벤트 보고 메시지를 브로드캐스팅할 수도 있다. 일치된 트리거 가중치가 리플렉스에 대한 트리거 임계 이상이 아닌 것으로 결정하는 것 (즉, 결정 블록 (1204) = "아니오") 에 응답하여, 또는 액션이 블록 (1216) 에서의 동작들로 생성되고 선택적인 블록 (1217) 에서의 동작들로 브로드캐스트가 행해질 경우, 바닥 램프는 이하에서 설명된 결정 블록 (1220) 에서의 동작들을 수행할 수도 있다.
바닥 램프가 생성된 패턴이 알려진 트리거 패턴과 일치하지 않는 것으로 결정하는 것 (즉, 결정 블록 (1202) = "아니오") 에 응답하여, 바닥 램프는 결정 블록 (1206) 에서, 바닥 램프가 학습하도록 허용되는지 여부를 결정할 수도 있다. 예를 들어, 바닥 램프는 트리거 패턴 (예컨대, MD1) 을 이전에 프로세싱하였을 수도 있고, 트리거링된 모드에 있는 동안에 생성된 보상 패턴들 및 정정 패턴들에 대해 현재 모니터링하고 있다. 이에 따라, 바닥 램프는 트리거 패턴을 수신하고 연관된 리플렉스에 대한 활성화된 트리거 모드에 진입한 직후에, 보상 이벤트를 획득할 수도 있고 대응하는 보상 패턴 (예컨대, MD4) 을 생성할 수도 있다.
바닥 램프가 학습하도록 허용되지 않는 것으로 결정하는 것 (즉, 결정 블록 (1206) = "아니오") 에 응답하여, 바닥 램프는 이하에서 설명된 결정 블록 (1220) 에서의 동작들을 수행할 수도 있다. 예를 들어, 바닥 램프는 트리거 패턴 (예컨대, MD1) 과 연관된 새로운 액션을 학습/폐기학습하기 위하여 트리거 패턴을 생성한 후에 5 초의 지정된 시간 윈도우를 가질 수도 있다. 보상 패턴 또는 정정 패턴이 5 초의 윈도우 내에서 생성되는 한, 바닥 램프는 트리거 패턴 (예컨대, MD1) 을 갖는 액션들을 학습/폐기학습할 수도 있지만; 그러나, 바닥 램프는 수신된 보상/정정 패턴이 5 초의 시간 윈도우 외부에 있을 경우에 새로운 연관성들을 학습하거나 과거의 연관성들을 폐기학습하는 것을 하지 못할 수도 있다. 또 다른 예에서, 연관된 리플렉스가 폐기학습 상태에 있거나 연관된 리플렉스가 학습 또는 폐기학습할 수 없을 수도 있는 정적 리플렉스 (static reflex) 이므로, 바닥 램프는 간단하게 학습할 수 없을 수도 있다.
그러나, 바닥 램프가 그것이 리플렉스의 액션-트리거 연관성에 관하여 학습하도록 허용되는 것으로 결정할 경우 (즉, 결정 블록 (1206) = "예"), 결정 블록 (1208) 에서는, 바닥 램프가 생성된 패턴이 보상 패턴과 일치하는지 여부를 결정할 수도 있다. 일부의 실시형태들에서, 바닥 램프는 학습 시간 윈도우 내에서 보상 패턴을 수신하거나 생성할 수도 있다. 예를 들어, 사용자는 벽 스위치를 스위칭하고 바닥 램프를 턴 온 하는 5 초 내에서 바닥 램프를 상의 보상 버튼을 누를 수도 있다. 바닥 램프 상의 보상 버튼을 누름으로써, 그것은 보상 패턴 (예컨대, 도 7 에서 예시된 바와 같은 패턴 MD4) 을 생성할 수도 있다. 대안적인 예에서, 사용자는 벽 스위치를 턴 온 하는 5 초 내에 바닥 램프에 부착된 램프 스위치 (126) 를 턴 온 할 수도 있어서, 램프가 바닥 램프가 턴 온된 것을 확인하는 것을 활성화할 때, 바닥 램프로 하여금 보상 패턴 (예컨대, MD4) 을 생성하게 할 수도 있다.
일부의 실시형태들에서, 바닥 램프는 그것이 모니터 모드 또는 트리거 모드에 있는지 여부에 기초하여 학습하도록 허용될 수도 있다. 예를 들어, 특정 리플렉스에 대한 모니터 모드에 있을 때, 바닥 램프는 그 리플렉스에 관하여 학습하도록 허용되지 않지만; 그러나, 학습은 리플렉스의 트리거링된 모드에 있을 때에 허용될 수도 있다. 일부의 실시형태들에서, 하나 이상의 리플렉스들은 바닥 램프의 전체적인 상태 또는 구성과 같은 다른 인자들로 인해 학습하도록 허용될 수도 있다. 예를 들어, 바닥 램프는 다양한 리플렉스들이 그 동안에 테스트될 수도 있는 능동 디버그 모드 (active debug mode) 와 같은, 시스템 세팅으로 인해 임의의 학습을 허용하지 않도록 구성될 수도 있다.
바닥 램프가 생성된 패턴이 보상 패턴과 일치하는 것으로 결정할 경우 (즉, 결정 블록 (1208) = "예"), 블록 (1212a) 에서는, 바닥 램프가 연관된 리플렉스의 트리거 가중치를 조절할 수도 있다. 일부의 실시형태들에서, 바닥 램프는 트리거 가중치를 증가시킴으로써 적절한 리플렉스와 연관된 트리거 가중치를 조절할 수도 있다. 예를 들어, 바닥 램프가 트리거 패턴 (예컨대, MD1) 을 조우하는 5 초의 학습 시간 윈도우 내에서 패턴 (예컨대, MD4) 을 수신하거나 생성할 경우, 바닥 램프는 트리거 패턴의 리플렉스의 트리거 가중치를 증가시킬 수도 있다. 트리거 가중치들이 조절된 후, 블록 (1214) 에서는, 바닥 램프가 메모리 (138) 내에 조절된 트리거 가중치들을 저장할 수도 있고, 바닥 램프는 이하에서 설명된 바와 같은 결정 블록 (1220) 에서의 동작들을 수행할 수도 있다.
일부의 실시형태들에서, 바닥 램프는 블록 (1212a) 에서의 동작들을 수행한 후에 결정 블록 (1210) 에서의 동작들을 선택적으로 수행할 수도 있다. 다시 말해서, 바닥 램프는 결정 블록 (1208) 의 결정들에 관계 없이, 그것이 학습하도록 허용되는 것으로 결정하는 것 (즉, 결정 블록 (1206) = "예") 에 응답하여, 보상 패턴이 결정 블록 (1208) 에서 일치되었는지 여부와, 정정 패턴이 결정 블록 (1210) 에서 일치되었는지 여부의 양자를 평가하도록 구성될 수도 있다. 다시 말해서, 보상 및 정정 일치들은 바닥 램프에 의해 병렬로 검사될 수도 있다.
바닥 램프가 생성된 패턴이 알려진 보상 패턴과 일치하지 않는 것으로 결정할 경우 (즉, 결정 블록 (1208) = "아니오"), 바닥 램프는 결정 블록 (1210) 에서, 정정 패턴 일치에 대하여 검사할 수도 있다. 일부의 실시형태들에서, 바닥 램프는 학습 시간 윈도우 내에서 정정 패턴을 수신하거나 생성할 수도 있다. 예를 들어, 사용자는 벽 스위치를 스위칭하고 바닥 램프를 턴 온 하는 5 초 내에서 바닥 램프를 상의 정정 버튼을 누를 수도 있다. 정정 버튼을 누름으로써, 바닥 램프는 정정 패턴 (예컨대, 도 7 에서 예시된 바와 같은 패턴 MD5) 을 생성할 수도 있다. 대안적인 예에서, 사용자는 벽 스위치를 턴 온하는 5 초 내에 바닥 램프에 부착된 램프 스위치 (126) 를 턴 오프할 수도 있어서, 바닥 램프가 그 전등 (124) 을 턴 오프할 때, 바닥 램프로 하여금 정정 패턴 (예컨대, MD4) 을 생성하게 할 수도 있다.
바닥 램프가 생성된 패턴이 알려진 정정 패턴과 일치하는 것으로 결정할 경우 (즉, 결정 블록 (1210) = "예"), 바닥 램프는 블록 (1212b) 에서, 트리거 가중치를 조절할 수도 있다. 일부의 실시형태들에서, 바닥 램프는 학습 시간 윈도우 내에서 정정 패턴을 수신한 후에 트리거 가중치들을 감소시킬 수도 있다. 예를 들어, 사용자가 벽 스위치의 '온' 이벤트와 연관된 트리거 패턴 (예컨대, MD1) 을 생성하는 5 초 내에 바닥 램프의 램프 스위치 (126) 를 '오프' 로 할 때, 바닥 램프는 정정 패턴 (예컨대, 패턴 MD5) 을 생성할 수도 있다. 바닥 램프는 생성된 패턴 (MD5) 을 ReflexF2 의 정정 패턴으로서 일치시킬 수도 있고, ReflexF2 와 연관된 트리거 가중치를 감소시킬 수도 있다. 블록 (1214) 에서, 바닥 램프는 메모리 (138) 내에 조절된 트리거 가중치들을 저장할 수도 있고, 바닥 램프는 이하에서 설명된 바와 같은 결정 블록 (1220) 에서의 동작들을 수행할 수도 있다. 다시 말해서, 바닥 램프는 적어도 하나의 추가적인 이벤트가 리플렉스와 연관된 정정 패턴 및 보상 패턴 중의 적어도 하나에 대응할 때에 리플렉스의 하나 이상의 트리거 가중치들을 조절할 수도 있다.
바닥 램프가 생성된 패턴이 정정 패턴과 일치하지 않는 것으로 결정하는 것 (즉, 결정 블록 (1210) = "아니오") 에 응답하여, 또는 바닥 램프가 일치된 트리거 가중치가 트리거 임계 이상이 아닌 것으로 결정하는 것 (즉, 결정 블록 (1204) = "아니오") 에 응답하여, 또는 바닥 램프가 그것이 학습하도록 허용되지 않는 것으로 결정하는 것 (즉, 결정 블록 (1206) = "아니오") 에 응답하여, 또는 바닥 램프가 블록들 (1217 또는 1214) 의 동작들을 수행하는 것에 응답하여, 바닥 램프는 예컨대, 블록 (1203) 에서의 동작들로 활성화된 트리거링된 모드에 진입한 이후의 만료된 기간에 기초하여, 결정 블록 (1220) 에서 모니터 모드로 복귀할 것인지 여부를 결정할 수도 있다. 트리거링된 모드를 비활성화하는 것은 리플렉스와 연관된 모니터 모드를 활성화할 수도 있다. 바닥 램프가 그것이 모니터 모드로 복귀해야 하는 것으로 결정하는 것 (즉, 결정 블록 (1220) = "예") 에 응답하여, 바닥 램프는 블록 (1222) 에서, 리플렉스에 대한 트리거링된 모드를 비활성화할 수도 있다. 바닥 램프가 그것이 모니터 모드로 복귀하지 않아야 하는 것으로 결정하는 것 (즉, 결정 블록 (1220) = "아니오") 에 응답하여, 또는 블록 (1222) 의 동작들이 수행되었을 때, 바닥 램프는 도 11 을 참조하여 위에서 설명된 바와 같은 방법 (1100) 의 블록 (1102) 에서 이벤트들을 획득하는 것을 계속할 수도 있다.
도 6 에서 도시된 시나리오에 기초한 예시로서, 벽 스위치는 바닥 램프에 의해 수신되는 새로운 발생 데이터 (예컨대, 벽 스위치 '온' 이벤트) 를 갖는 새로운 이벤트 보고 메시지를 전송할 수도 있다. 바닥 램프가 수신된 새로운 이벤트 보고 메시지에 기초하여 이벤트와 연관된 제 1 패턴 (예컨대, 패턴 MD1) 을 생성할 때까지, 바닥 램프는 블록들 (1102, 1104, 1108, 및 1110) 의 동작들을 수행할 수도 있다. 동일한 시간 윈도우 내에서, 바닥 램프는 다른 발생 데이터에 기초하여 제 2 패턴 (예컨대, 패턴 MD2) 을 생성할 수도 있고, 도 11 을 참조하여 위에서 설명된 바와 같은 블록들 (1102 내지 114) 및 도 12 를 참조하여 위에서 설명된 바와 같은 블록들 (1202, 1203, 1204, 1216) 에서의 동작들로 제 2 패턴을 프로세싱할 수도 있다. 바닥 램프는 이 동작들에 기초하여 트리거링된 모드에서의 제 2 패턴과 연관된 제 2 리플렉스 (예컨대, ReflexF1) 를 배치할 수도 있다.
다음으로, 바닥 램프가 수신된 새로운 이벤트 보고 메시지에 기초하여 이벤트와 연관된 제 1 패턴 (예컨대, 패턴 MD1) 을 생성할 때까지, 바닥 램프는 도 11 을 참조하여 위에서 설명된 바와 같은 블록들 (1102, 1104, 1108, 및 1110) 에서의 동작들을 수행할 수도 있다. 바닥 램프는 도 11 을 참조하여 위에서 설명된 바와 같이 블록들 (1112, 1114, 1116, 1118, 1119) 의 동작들을 수행함으로써, 그 트리거 패턴 (예컨대, 패턴 MD1) 으로서 제 1 패턴을 갖는 제 1 리플렉스 (예컨대, ReflexF2) 를 생성함으로써, 그리고 제 2 리플렉스가 그 트리거링된 모드에 있으므로, 제 2 리플렉스 (예컨대, ReflexF1) 로부터 그 액션 보상, 및 정정 패턴들을 복사함으로써, 새로운 패턴을 프로세싱하는 것을 계속할 수도 있다.
바닥 램프가 추후에 동일한 이벤트를 획득하고 벽 스위치로부터 수신된 다른 데이터에 기초하여 제 1 패턴 (예컨대, 패턴 MD1) 을 생성할 경우, 바닥 램프는 도 11 을 참조하여 위에서 설명된 바와 같은 블록들 (1102, 1104, 1108, 1110, 1112, 및 1114) 의 동작들에서 제 1 리플렉스를 참조하여 제 1 패턴을 프로세싱할 수도 있다. 결정 블록 (1114) 에서, 바닥 램프는, 벽 스위치와 연관된 패턴이 메모리 내에 저장된 제 1 리플렉스 (예컨대, ReflexF2) 의 트리거 패턴으로서 지금 알려져 있으므로, 벽 스위치와 연관된 생성된 패턴 (예컨대, 패턴 MD1) 이 알려진 패턴과 일치하는 것으로 결정할 수도 있다. 이에 따라, 바닥 램프는 벽 스위치 '온' 이벤트에 대한 생성된 패턴의 계속된 프로세싱을 위하여 도 12 를 참조하여 위에서 설명된 동작들을 수행하는 것을 계속할 수도 있다.
예시와 함께 계속하면, 바닥 램프는 새로운 벽 스위치 이벤트로부터의 일치된 제 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 에서 도시된 것과 같은 트리거 임계을 초과할 때까지 바닥 램프에 의해 반복될 수도 있다.
이벤트들은 시간 윈도우 동안에 획득 및 버퍼링되고, 임의의 수의 이벤트들은 시간 윈도우 동안에 획득될 수도 있고, 일치된 패턴들을 식별하고 새로운 상관들 또는 리플렉스들을 학습하기 위한 버퍼링된 이벤트들의 프로세싱은 다수의 이벤트들과, 이벤트들 및 리플렉스들의 조합들을 망라할 수도 있으므로, 도 11 및 도 12 를 참조하여 위에서 설명된 실시형태의 방법들은 재귀 알고리즘 (recursive algorithm) 의 타입으로서 기능할 수도 있다. 사용자가 실시형태의 스마트 박스들 및 학습 디바이스들을 훈련시키는 것을 가능하게 하기 위하여 실시형태들이 어떻게 기능할 수도 있는지를 추가로 개시하기 위하여, 이러한 디바이스들을 구현하는 사용자 액션들의 다음의 예가 제공된다. 이 예에서, 사용자는 2 개의 학습 디바이스들, 즉, 서로 이전에 연관되지 않았던 벽 스위치 및 바닥 램프를 훈련시킨다. 설명의 용이함을 위하여, 바닥 램프 또는 벽 스위치에 대한 다음의 참조들은 그 연관된 스마트 박스들을 망라하도록 의도된다.
이 예에서, 바닥 램프 및 벽 스위치의 각각은 그 연관된 스마트 박스의 메모리 내에 저장된 미리 정의된 리플렉스를 가질 수도 있다. 예를 들어, 벽 스위치는, 트리거 패턴 'WT', 액션 패턴 'WA', 정정 패턴 'WC', 및 보상 패턴 'WR' 을 포함할 수도 있는, 메모리 내에 저장된 미리 정의된 리플렉스 ReflexW 를 가질 수도 있다. 트리거 패턴 WT 은 사용자가 벽 스위치를 '오프' 로부터 '온' 으로 토글하는 트리거 패턴에 대응할 수도 있다. 사용자가 벽 스위치를 '오프' 로부터 '온' 으로 토글할 때, 벽 스위치는 이벤트를 생성할 수도 있을 뿐만 아니라, '온' 이벤트에 관련된 발생 데이터를 포함하는 이벤트 보고 메시지를 브로드캐스팅할 수도 있다. 벽 스위치의 '온' 이벤트에 관련된 생성된 이벤트로부터, 벽 스위치 내에 포함되거나 벽 스위치에 결합된 스마트 박스는 트리거 패턴 WT 를 생성할 수도 있다. 초기에, 액션 패턴 WA 는 스위치를 토글하는 것과 같은 실생활 액션에 대응하지 않을 수도 있다. 그 대신에, WA 는 간단하게, 추후의 리플렉스들에 배정되도록 준비된 컴퓨터 코드일 수도 있다.
정정 패턴 WC 는 "정정" 으로 표기된 벽 스위치 상의 버튼에 대응할 수도 있다. 사용자가 정정 버튼을 누를 때, 벽 스위치는 정정 이벤트를 생성할 수도 있을 뿐만 아니라, 정정 이벤트를 표시하는 발생 데이터를 갖는 또 다른 이벤트 보고 메시지를 브로드캐스팅할 수도 있다. 생성된 정정 이벤트로부터, 벽 스위치와 연관된 스마트 박스는 정정 패턴 WC 를 생성할 수도 있다. 보상 패턴 WR 은, 사용자가 "보상" 으로 표기된 벽 스위치 상의 보상 버튼을 누르는 이벤트에 대응할 수도 있다. 사용자가 보상 버튼을 누를 때, 벽 스위치는 보상 이벤트를 생성할 수도 있을 뿐만 아니라, 보상 이벤트를 표시하는 발생 데이터를 갖는 또 다른 이벤트 보고 메시지를 브로드캐스팅할 수도 있다. 생성된 보상 이벤트로부터, 벽 스위치와 연관된 스마트 박스는 보상 패턴 WR 을 생성할 수도 있다.
유사하게, 바닥 램프는, 트리거 패턴 MD1, 액션 패턴 MD3, 정정 패턴 MD5, 및 보상 패턴 MD4 을 포함할 수도 있는, 메모리 내에 저장된 미리 정의된 리플렉스 Reflex2 를 가질 수도 있다. 트리거 패턴 MD1 은 사용자가 바닥 램프의 램프 스위치를 오프로부터 온으로 토글하는 토글 이벤트에 대응할 수도 있다. 사용자가 램프 스위치를 '오프' 로부터 '온' 으로 토글할 때, 벽 스위치는 트리거 이벤트를 생성할 수도 있을 뿐만 아니라, 램프의 '온' 이벤트를 표시하는 발생 데이터를 갖는 이벤트 보고 메시지를 브로드캐스팅할 수도 있다. 생성된 트리거 이벤트로부터, 바닥 램프 내에 포함되거나 바닥 램프에 결합된 스마트 박스는 트리거 패턴 MD1 을 생성할 수도 있다. 액션 패턴 MD3 은, 바닥 램프가 그 전등을 '오프' 로부터 '온' 으로 하는 이벤트에 대응할 수도 있다. 정정 패턴 MD5 는, 바닥 램프가 트리거링된 모드에 있을 때에 "정정" 으로 표기된 바닥 램프 상의 추가적인 버튼에 대응할 수도 있다. 사용자가 정정 버튼을 누를 때, 램프는 정정 이벤트를 생성할 수도 있을 뿐만 아니라, 램프의 정정 이벤트를 표시하는 발생 데이터를 갖는 이벤트 보고 메시지를 브로드캐스팅할 수도 있다. 생성된 정정 이벤트로부터, 바닥 램프와 연관된 스마트 박스는 정정 패턴 MD5 를 생성할 수도 있다. 보상 패턴 MD4 는, 사용자가 트리거링된 모드 내에서 바닥 램프를 턴 온 할 때, 보상 이벤트를 생성하는 것 뿐만 아니라, 램프의 보상 이벤트를 표시하는 발생 데이터를 갖는 이벤트 보고 메시지를 브로드캐스팅하는 것에 대응한다. 보상 이벤트로부터, 바닥 램프와 연관된 스마트 박스는 보상 패턴 MD4 를 생성할 수도 있다.
이러한 방식으로 초기에 구성된 벽 스위치 및 바닥 램프에 의하여, 사용자는 다음과 같이, 벽 스위치에 응답하여 턴 온 하기 위하여 바닥 램프를 훈련시킬 수도 있다. '오프' 위치에서의 벽 스위치 및 턴 오프된 바닥 램프에 의하여, 사용자는 벽 스위치를 턴 온 할 수도 있고, 수동 동작들 (예컨대, 디바이스들 상의 스위치들을 플립함) 을 통해 바닥 램프를 즉시 턴 온 할 수도 있다. 2 개의 액션들이 짧은 시간 주기 (예컨대, 5 내지 10 초) 내에 달성될 경우, 바닥 램프와 연관된 스마트 박스는 램프-온 리플렉스와 연관된 가중치를 증가시킴으로써 턴-온 액션 상관을 학습하기 시작할 수도 있다. 유사하게, 사용자는 벽 스위치를 턴 오프 하고 바닥 램프를 즉시 턴 오프함으로써 턴오프되는 벽 스위치에 응답하는 것을 바닥 램프에게 교육시킬 수도 있다. 다시, 2 개의 액션들이 짧은 시간 주기 (예컨대, 5 내지 10 초) 내에 달성될 경우, 바닥 램프와 연관된 스마트 박스는 램프-오프 리플렉스와 연관된 가중치를 증가시킴으로써 턴-오프 액션 상관을 학습하기 시작할 수도 있다.
하나의 이러한 훈련 사이클은 (이전에 훈련되지 않은 스마트 박스가 단일 단계에서 제 1 리플렉스-이벤트 상관을 학습할 일부의 실시형태들을 제외하고는) 충분하지 않을 수도 있고, 그러므로, 사용자는 벽 스위치를 턴 온하고 바닥 램프를 즉시 턴 온한 다음에, 잠시 후에, 벽 스위치를 턴 오프하고 바닥 램프를 즉시 턴 오프하는 프로세스를 반복할 수도 있다. 이 일련의 단계들은 바닥 램프와 연관된 스마트 박스의 학습 히스테리시스 (learning hysteresis) 구성에 따라, 3 회 이상 반복될 필요가 있을 수도 있다.
2 개의 3 회 이상의 반복들 후에, 바닥 램프와 연관된 스마트 박스는 램프-온 및 램프-오프 리플렉스들과 연관된 가중치를 증가시켰을 수도 있어서, 벽 스위치의 후속 토글은 바닥 램프로 하여금 이에 따라 턴 온 또는 턴 오프하게 할 것이다. 이에 따라, 바닥 램프 온/오프 액션들에 대한 벽 스위치 온/오프 이벤트들의 이 희망하는 상관을 훈련시키기 위하여, 사용자는 바닥 램프가 사용자가 벽 스위치를 토글하는 것에 응답하여 턴 온 하는 것을 시작할 때까지, 프로세스를 간단하게 반복시킬 수도 있다.
사용자에 의한 이 일련의 액션들은 다음의 액션들이 벽 스위치 및 바닥 램프와 연관된 스마트 박스들 내에서 발생하게 한다. 벽 스위치와 연관된 스마트 박스가 '오프' 에서 '온' 으로의 토글을 감지할 때, 벽 스위치는 수신하기 위한 그 브로드캐스트 범위 (예컨대, 100 피트) 내의 모든 학습 디바이스들에 대한 이벤트 보고 메시지에서 브로드캐스팅될 수도 있는 트리거 이벤트 및 연관된 발생 데이터를 생성할 수도 있다. 벽 스위치의 브로드캐스트 범위 내에 있는, 바닥 램프와 연관된 스마트 박스는 이벤트 보고 메시지를 수신할 수도 있다. 수신 시에, 바닥 램프는 관련된 이벤트를 생성할 수도 있고, 메모리 내에 저장된 이벤트 필터가 생성된 이벤트의 추가의 프로세싱을 방지하는지 여부를 결정할 수도 있다. 디폴트 상태 (default state) 에서, 바닥 램프는 필터를 생성된 이벤트에 적용하지 않을 수도 있고, 이에 따라, 바닥 램프는 생성된 이벤트를 버퍼 내에 저장할 수도 있다. 생성된 이벤트에 기초하여, 바닥 램프는 패턴 MD2 를 생성할 수도 있다.
초기에, 바닥 램프는 ReflexF2 와 연관된 패턴들을 메모리 내에 저장하기만 하였다 (예컨대, MD1, MD3, MD5, 및 MD4). 이 예의 목적들을 위하여, 바닥 램프는 예컨대, 패턴 MD2 를 생성하는 것과 동일한 시간 윈도우 내에서, ReflexF2 에 대한 트리거 패턴, 패턴 MD1 을 생성하는 것에 응답하여, ReflexF2 에 대한 트리거링된 모드 내에 이미 있는 것으로 가정된다. 생성된 패턴 MD2 는 ReflexF2 의 임의의 패턴과 일치하지 않으므로, 생성된 패턴 MD2 는 새로운 리플렉스에 대한 트리거 패턴으로서 이용될 수도 있는 알려지지 않은 패턴으로 고려될 수도 있다. 바닥 램프는 알려지지 않거나 일치되지 않은 패턴 MD2 를 갖는 새로운 리플렉스를 생성할 것인지 여부를 결정할 수도 있다. 바닥 램프는 새로운 리플렉스를 생성하지 않기 위한 다수의 상이한 이유들을 가질 수도 있다. 예를 들어, 바닥 램프는 학습 방지 모드 (예컨대, 유지 모드) 에 있을 수도 있거나, 바닥 램프는 특정 디바이스와 연관된 어떤 패턴들로부터 리플렉스들을 생성하는 것이 금지될 수도 있다 (예컨대, 바닥 램프는 벽 스위치와 연관된 패턴들로부터 리플렉스들을 생성하지 않을 것임).
이 예에서, 바닥 램프는 새로운 리플렉스를 생성하는 것이 방지되지 않아서, 바닥 램프는 그 트리거 패턴으로서, 알려지지 않은 패턴 MD2 를 갖는 새로운 리플렉스 ReflexF1 을 생성할 수도 있다. 새로운 리플렉스 ReflexF1 은 완전한 리플렉스가 되기 위하여, 액션 패턴, 정정 패턴, 및 보상 패턴을 포함할 것이다. 이에 따라, 바닥 램프는, 그것이 메모리에서 저장한 액션, 정정, 및 보상 패턴들 (예컨대, MD3, MD5, 및 MD4) 을 복사함으로써, 트리거링된 모드에서의 오직 알려진 리플렉스 ReflexF2 로부터의 패턴들을 이용할 수도 있고, 새로운 트리거 패턴 MD2 와 함께, 그러한 패턴들을 새로운 ReflexF1 에 배정할 수도 있다. 바닥 램프의 설정들에 따라서는, 바닥 램프가 벽 스위치 토글 온에 관련된 트리거 이벤트 및 바닥 램프의 전등의 활성화 사이의 새로운 연관성을 방금 학습하였을 수도 있다. 예를 들어, 바닥 램프는, 바닥 램프가 즉시 새로운 리플렉스들을 학습하는 (도 8 에서 도시된 바와 같은) 임계 학습 주기 (801) (예컨대, 바닥 램프 상에서 수행된 단일 온/오프 시퀀스) 에 있을 수도 있다. 이에 따라, 일단 벽 스위치가 '오프' 로부터 '온' 으로 토글하면, 바닥 램프는 그 전등을 활성화할 수도 있다. 그러나, 이 예의 목적을 위하여, 바닥 램프는 임계 주기에 있지 않고, '오프' 로부터 '온' 으로의 벽 스위치 토글 및 바닥 램프의 전등의 활성화 사이의 연관성을 아직 완전히 학습해야 하는 것으로 가정된다.
사용자가 벽 스위치를 토글한 직 후에 바닥 램프를 턴 온할 때, 바닥 램프와 연관된 스마트 박스는 새로운 리플렉스 ReflexF1 을 갖는 램프-온 이벤트를, 그 트리거 패턴으로서 최근에 학습된 패턴 MD2 와 상관시킬 수도 있다. 턴 오프 되는 벽 스위치 및 그 바로 후에 턴 오프 되는 바닥 램프의 액션들은 벽 스위치 및 바닥 램프에서 유사한 응답들을 생성할 수도 있다.
벽 스위치가 '오프' 로부터 '온' 으로 제 2 시간에 토글될 때, 온 이벤트의 연관된 발생 데이터는 이벤트 보고 메시지에서 다시 브로드캐스팅될 수도 있고, 바닥 램프에 의해 수신될 수도 있다. 다시, 바닥 램프는 발생 데이터를 갖는 관련된 이벤트 보고 메시지를 프로세싱할 수도 있어서, 이벤트 및 궁극적으로 패턴 MD2 를 생성할 수도 있다. 그러나, 이번에는, 바닥 램프가 생성된 패턴 MD2 를 ReflexF1 의 알려진 패턴에 일치시킨다. 이 일치에 응답하여, 바닥 램프는 또한, 패턴 MD2 및 ReflexF1 의 저장된 패턴 사이의 일치가 있는 것으로 결정할 수도 있고, ReflexF1 에 대하여 트리거링된 모드에 진입할 수도 있다. 또한, 바닥 램프는 ReflexF1 의 트리거 가중치가 트리거 가중치 임계 이상인지 여부를 결정할 수도 있다. 이 예에서, 오직 하나의 훈련 사이클 후에, 바닥 램프는 ReflexF1 이 새로운 리플렉스이므로, ReflexF1 의 트리거 가중치가 트리거 가중치 임계 이상이 아닌 것으로 결정할 수도 있다. 이에 따라, 바닥 램프는 ReflexF1 에 대한 트리거링된 모드에 있는 동안에 더 많은 이벤트들에 대해 모니터링하는 것을 계속할 수도 있다.
사용자가 5 내지 10 초 시간 윈도우 내에서 바닥 램프를 턴 온 할 때, 바닥 램프는, 바닥 램프로 하여금 보상 패턴 MD4 를 궁극적으로 생성하게 하는 보상 이벤트를 생성할 수도 있다. 바닥 램프는 MD4 를 프로세싱하고, ReflexF1 과의 보상 패턴 일치가 있는 것으로 결정한다. 이에 응답하여, 여전히 ReflexF1 에 대하여 트리거링된 모드에 있는 바닥 램프는 ReflexF1 의 트리거 가중치를 증가시킬 수도 있다. 가중치들을 조절한 후, 또는 5 내지 10 초 시간 윈도우 후에, 바닥 램프는 ReflexF1 에 대하여 트리거링된 모드를 나갈 수도 있고, 바닥 램프가 더 많은 이벤트들에 대해 모니터링하는 모니터링 모드에 진입할 수도 있다.
얼마 더 이후에, 사용자는 벽 스위치를 제 3 시간에 온으로 다시 토글할 수도 있어서, 벽 스위치로 하여금, 바닥 램프에 의해 수신되는 발생 데이터를 갖는 이벤트 보고 메시지를 브로드캐스팅하게 할 수도 있다. 다시, 수신된 메시지에서의 데이터에 기초하여, 바닥 램프는 관련된 이벤트 및 그 다음으로, 패턴 MD2 를 생성할 수도 있다. 바닥 램프는 생성된 패턴 MD2 및 ReflexF1 의 트리거 패턴 사이의 트리거 일치가 있는 것으로 결정할 수도 있고, 제 3 시간 동안에 ReflexF1 에 대하여 트리거링된 모드를 진입할 수도 있다. 다시 한번, 바닥 램프는 ReflexF1 의 트리거 가중치가 트리거 가중치 임계 이상인지 여부를 결정할 수도 있다. 제 3 시간 동안, 바닥 램프는 ReflexF1 이 새로운 리플렉스이므로, ReflexF1 의 트리거 가중치가 트리거 가중치 임계 이상이 아닌 것으로 결정할 수도 있다. 이에 따라, 바닥 램프는 트리거링된 모드에 있는 동안에 더 많은 이벤트들에 대해 모니터링하는 것을 계속한다.
여전히, ReflexF1 의 최근의 트리거링된 모드의 5 내지 10 초 시간 윈도우 내에서, 사용자는 제 3 시간 동안에 바닥 램프를 턴 온 할 수도 있다. 이에 응답하여, 바닥 램프는 바닥 램프로 하여금, 보상 패턴 MD4 를 궁극적으로 생성하게 하는 보상 이벤트를 생성한다. 바닥 램프는 패턴 MD4 를 프로세싱할 수도 있고, ReflexF1 과의 보상 패턴 일치가 있는 것으로 결정할 수도 있다. 여전히 ReflexF1 에 대하여 트리거링된 모드에 있는 바닥 램프는 ReflexF1 의 트리거 가중치를 트리거 임계을 초과하여 증가시킬 수도 있다.
얼마 더 이후에, 사용자가 이벤트들의 동일한 시퀀스가 발생하는 제 4 시간 동안에 벽 스위치를 '오프' 로부터 '온' 으로 토글할 때, 이번에만, 바닥 램프는, ReflexF1 의 트리거 가중치가 그 임계 이상이고, 그러므로, 그것이 액션 패턴 MD3 을 생성하도록 결정할 수도 있다. 액션 패턴 MD3 에 응답하여, 바닥 램프는 바닥 램프의 전등을 턴 온 하는 모터 제어기를 에너자이징하는 연관된 액션 이벤트를 생성할 수도 있다. 그 후에, 바닥 램프는 사용자가 벽 스위치를 '오프' 로부터 '온' 으로 토글하는 것에 응답하여 턴 온 될 것이다.
도 13a 내지 도 13f 는 학습 수정자 디바이스 (150) 가 비집중화된 시스템 내에서 학습 디바이스들의 학습 역량들을 조절하기 하기 위한 다양한 시나리오들을 예시한다. 특히, 제 1 스마트 박스 (103a) 는 벽 스위치 (102) 에 결합될 수도 있고, 제 2 스마트 박스 (103b) 는 바닥 램프 (104) 에 결합될 수도 있다. 학습 수정자 디바이스 (150) 는, 그 브로드캐스트 범위 (1302) 내의 임의의 학습 디바이스가 신호들에 의해 영향받을 수도 있도록, 학습 수정자 신호들을 브로드캐스팅하도록 구성될 수도 있다. 위에서 설명된 바와 같이, 학습 수정자 디바이스 (150) 는 블루투스 라디오와 같이, 신호들을 브로드캐스팅할 수 있는 전용 시그널링 디바이스 또는 스마트폰일 수도 있다.
학습 수정자 디바이스 (140) 의 근접성 내에 없을 때 (즉, 브로드캐스트 범위 (1302) 의 외부에 있을 때), 스마트 박스들 (103a 내지 103b) 은 "디폴트 학습 상태들" 에서 동작하도록 구성될 수도 있다. 다시 말해서, 스마트 박스들 (103a 내지 103b) 은 수정된 학습 역량들 (예컨대, 리플렉스들에 대한 트리거링 가중치들을 계산하기 위한 증가된/감소된 학습 레이트들, 등) 을 사용하지 않을 수도 있다. 디폴트 학습 상태들은 개별적인 학습 디바이스들에 대해 상이할 수도 있다. 이에 따라, 제 1 스마트 박스 (103a) 에 대한 디폴트 학습 상태는 제 2 스마트 박스 (103b) 에 대한 디폴트 학습 상태보다 더 고속이거나, 더 저속이거나, 또는 동일한 학습 레이트에 의해 정의될 수도 있다. 또한, 디폴트 학습 상태들은 스마트 박스들 (103a 내지 103b) 은 인에이블되거나 디스에이블된 학습 모드 내에서 동작하고 있는지 여부를 표시할 수도 있다. 예를 들어, 디폴트로, 제 1 스마트 박스 (103a) 는, 스마트 박스 (103a) 가 위에서 설명된 바와 같이 새로운 트리거-액션 연관성들을 정상적으로 생성하지 않도록, 디스에이블된 학습 모드에서 동작하도록 구성될 수도 있다.
반대로, 스마트 박스들 (103a 내지 103b) 은, 이들이 학습 수정자 디바이스 (150) 의 수신 범위 내에 있을 때 (즉, 브로드캐스트 범위 (1302) 내에 있을 때) 에 "수정된 학습 상태들" 에서 동작하도록 구성될 수도 있다. 다시 말해서, 학습 수정자 디바이스 (150) 로부터 학습 수정자 신호들을 수신하는 것에 기초하여, 스마트 박스들 (103a 내지 103b) 은 수정된 학습 역량들 (예컨대, 리플렉스들에 대한 트리거링 가중치들을 계산하기 위한 조절된 학습 레이트들 등) 을 사용할 수도 있다. 예를 들어, 수정된 학습 상태들은 스마트 박스들 (103a 내지 103b) 이 수정된 학습 상태들에 있을 때에 더 적은 트리거들을 수신하는 것에 응답하여 액션들 (예컨대, 트리거 가중치들을 임계들을 초과하여 증가시킴, 등) 을 수행할 것을 학습하도록 구성되는 것에 대응할 수도 있다. 일부의 실시형태들에서, 수정된 학습 상태들은 개별적인 학습 디바이스들에 관련될 수도 있고, 이에 따라, 개별적인 학습 디바이스들에 대해 상이할 수도 있다. 예를 들어, 제 1 스마트 박스 (103a) 에 대한 수정된 학습 상태는 제 2 스마트 박스 (103b) 에 대한 수정된 학습 상태보다 더 고속이거나, 더 저속이거나, 또는 동일한 학습 레이트에 의해 정의될 수도 있다. 그러나, 일부의 실시형태들에서, 수정된 학습 상태들은 모든 학습 디바이스들에 대해 동일할 수도 있다. 예를 들어, 스마트 박스들 (103a 내지 103b) 에 대한 수정된 학습 상태는 양자의 스마트 박스들 (103a 내지 103b) 에서의 합동 학습 거동들을 야기시키기 위한 범용 학습 레이트로서 정의될 수도 있다. 디폴트 학습 상태들을 참조하여 위에서 설명된 것과 유사하게, 수정된 학습 상태들은 스마트 박스들 (103a 내지 103b) 이 인에이블되거나 디스에이블된 학습 모드 내에서 동작하고 있는지 여부를 표시할 수도 있다. 예를 들어, 제 1 스마트 박스 (103a) 가 디폴트로 인에이블된 학습 모드에서 동작하도록 구성될 때, 제 1 스마트 박스 (103a) 의 수정된 학습 상태는 디스에이블된 학습 모드일 수도 있다.
도 13a 내지 도 13c 는 그 학습 상태들을 조절하기 위하여 스마트 박스들 (103a 내지 103b) 의 근접성 내에서 학습 수정자 디바이스 (150) 를 휴대하는 사용자 (1301) 를 예시한다. 학습 수정자 디바이스 (150) 는 학습 수정자 신호들을 주기적으로 브로드캐스팅하도록 구성될 수도 있다. 학습 수정자 디바이스 (150) 는 사용자 (1301) 로부터의 사용자 입력들 (예컨대, '시작' 소프트 버튼 상의 터치 입력들, '전력' 버튼을 누르는 것 등) 에 응답하여 디폴트로 (예컨대, 활성화될 때마다, 배터리 삽입, 등) 또는 대안적으로 신호들을 브로드캐스팅하도록 구성될 수도 있다.
도 13a 에서, 사용자 (1301) 및 학습 수정자 디바이스 (150) 는, 스마트 박스들 (103a 내지 103b) 중의 어느 것도 학습 수정자 디바이스 (150) 의 브로드캐스트 범위 (1302) 내에 있지 않도록 위치될 수도 있다. 이에 따라, 양자의 스마트 박스들 (103a 내지 130b) 은 그 각각의 디폴트 학습 상태들에서 동작하도록 구성될 수도 있다. 예를 들어, 제 1 스마트 박스 (103a) 가 디폴트로 디스에이블된 학습 모드에서 동작하도록 구성될 경우, 그것은 학습하는 것으로부터 디스에이블되는 것을 계속할 수도 있다. 또 다른 예로서, 제 2 스마트 박스 (103b) 가 디폴트로 정상적인 학습 레이트에서 학습하도록 구성될 경우, 그것은 정상적인 학습 레이트에서 학습하는 것을 계속할 수도 있다.
도 13b 에서, 사용자 (1301) 및 학습 수정자 디바이스 (150) 는, 제 1 스마트 박스 (103a) 가 학습 수정자 디바이스 (150) 의 브로드캐스트 범위 (1302) 내에 있도록 위치될 수도 있다. 이에 따라, 제 1 스마트 박스 (103a) 는 학습 수정자 신호들 (1320) (예컨대, 블루투스 패킷들 등) 을 수신하는 것에 응답하여 수정된 학습 상태에서 동작하도록 구성될 수도 있지만; 그러나, 제 2 스마트 박스 (103b) 는 디폴트 학습 상태에서 동작하는 것을 계속하도록 구성될 수도 있다. 예를 들어, 제 1 스마트 박스 (103a) 는 관련된 트리거 가중치가 임계을 초과할 수도 있기 전에 더 적은 트리거 패턴들이 조우되어야 하도록 그 학습 레이트를 증가시킬 수도 있고, 이에 따라, 후속 트리거들이 제 1 스마트 박스 (103a) 에서 조우되는 것에 응답하여, 연관된 액션이 수행될 수도 있다. 또 다른 예로서, 제 2 스마트 박스 (103b) 가 디폴트로 새로운 리플렉스들을 학습하는 것으로부터 디스에이블되도록 (즉, 디스에이블된 학습 모드에서 동작함) 구성될 경우, 그것은 새로운 리플렉스들을 학습하지 않는 것을 계속할 수도 있다.
도 13c 에서, 사용자 (1301) 및 학습 수정자 디바이스 (150) 는, 스마트 박스들 (103a 내지 103b) 의 양자가 학습 수정자 디바이스 (150) 의 브로드캐스트 범위 (1302) 내에 있도록 위치될 수도 있다. 이에 따라, 양자의 스마트 박스들 (103a 내지 103b) 은 학습 수정자 디바이스 (150) 로부터 학습 수정자 신호들 (1320, 1330) 을 수신하는 것에 응답하여 그 각각의 수정된 학습 상태들에서 동작하도록 구성될 수도 있다. 예를 들어, 사용자 (1301) 가 디폴트로 디스에이블된 학습 모드들에서 동작하도록 구성된 스마트 박스들 (103a 내지 103b) 에 근접하게 걸어갈 때, 스마트 박스들 (103a 내지 103b) 은 인에이블된 학습 모드들에서 동작하도록 구성될 수도 있다.
도 13d 내지 도 13f 는 학습 수정자 디바이스 (150) 가 스마트 박스들 (103a 내지 103b) 의 근접성 내에서 (즉, 브로드캐스트 수신 범위 내에서) 위치되는 시나리오들을 예시한다. 도 13a 내지 도 13c 에서 예시된 시나리오들과 달리, 학습 수정자 디바이스 (150) 는 사용자 (1301) 에 의해 휴대되지 않을 수도 있지만, 그 대신에, 환경 (예컨대, 룸 등) 내의 단일 로케이션에서 고정된 상태로 유지될 수도 있다. 또한, 학습 수정자 디바이스 (150) 는 미리 정의된 신호들 또는 사용자 입력들을 수신하는 것에 응답하여 학습 수정자 신호들을 브로드캐스팅하기만 하도록 구성될 수도 있다. 예를 들어, 학습 수정자 디바이스 (150) 는 디폴트로 (예컨대, 활성화될 때마다, 배터리 삽입, 등) 신호들을 브로드캐스팅하도록 구성되지 않을 수도 있지만, 그 대신에, 단거리 라디오를 통해 미리 정의된 신호들을 수신하는 것에 응답하여 신호들을 브로드캐스팅하기만 할 수도 있다. 예를 들어, 도 13d 는 임의의 신호들을 송신하지 않으면서 스마트 박스들 (103a 내지 103b) 근처에 위치된 학습 수정자 디바이스 (150) 와, 그 각각의 디폴트 학습 상태들에서 동작하는 스마트 박스들 (103a 내지 103b) 을 도시한다.
도 13e 는 환경 내의 라우터 (1370) 를 예시한다. 라우터 (1370) 는 로컬 영역 네트워크 (LAN) 뿐만 아니라, 인터넷과 같은 광역 네트워크 (WAN) 를 통신들을 가능하게 할 수 있는 임의의 디바이스일 수도 있다. 예를 들어, 라우터 (1370) 는 주택 내의 WiFi 라우터일 수도 있다. 학습 수정자 디바이스 (150) 는 무선 통신 링크들 (1372) 을 통해 라우터 (1370) 로부터 신호들을 수신할 수도 있다. 이러한 신호들은 신호들을 송신하기 시작하도록 학습 수정자 디바이스 (150) 를 구성할 수도 있는 커맨드들, 스크립트들, 소프트웨어, 및/또는 다른 정보를 포함할 수도 있다. 이에 응답하여, 학습 수정자 디바이스 (150) 는, 브로드캐스트 범위 (1302) 내의 스마트 박스들 (103a 내지 103b) 로 하여금 그 각각의 수정된 학습 상태들에서 동작하게 하는 학습 수정자 신호들 (1320, 1330) 을 송신할 수도 있다. 일부의 실시형태들에서, 학습 수정자 디바이스 (150) 로 하여금 학습 수정자 신호들 (1320, 1330) 을 송신하기 시작하게 하는 통신 링크들 (1372) 을 통한 신호들은 인터넷을 통한 원격 서버로부터, 또는 대안적으로 LAN 을 통한 또 다른 디바이스 (예컨대, LAN 에 접속되지만, 상이한 룸 내에 있는 사용자 스마트폰, 등) 로부터의 통신들에 기초하여 라우터 (1370) 에 의해 제공될 수도 있다. 예를 들어, 학습 수정자 디바이스 (150) 는 사용자가 학습 수정자 디바이스 (150) 를 제어하기 위한 웹페이지를 액세스하는 것에 기초하여 브로드캐스팅을 시작하기 위한 커맨드들을 수신할 수도 있다.
도 13f 는 사용자 (1301) 에 의해 휴대되는 이동 디바이스 (1380) 로부터 신호들 (1382) 을 수신하는 것에 응답하여 학습 수정자 신호들 (1320, 1330) 을 송신하는 학습 수정자 디바이스 (150) 를 예시한다. 이동 디바이스 (1380) 는 예컨대, 블루투스 페어링 절차에 의해, 또는 신호들 (1382) 내에서 식별될 수도 있는 이동 디바이스의 식별정보 (예컨대, 신호들 (1382) 의 헤더 정보 내에서 보고된 디바이스 ID 등) 를 저장하는 것을 통해, 학습 수정자 디바이스 (150) 와 사전-연관될 수도 있다. 학습 수정자 디바이스 (150) 는 학습 수정자 신호들 (1320, 1330) 을 송신하기 시작하기 위한 프롬프트 (prompt) 로서의 신호들 (1382) 을 통해 이동 디바이스 (1380) 의 존재를 인식하도록 구성될 수도 있다. 예를 들어, 사용자 (1301) 가 블루투스 시그널링을 통해 그 ID 를 브로드캐스팅하도록 구성된 그/그녀의 스마트폰과 함께 룸 내로 들어올 때, 학습 수정자 디바이스 (150) 는 스마트폰을 검출할 수도 있고, 스마트 박스들 (103a 내지 103b) 로 하여금 그 각각의 수정된 학습 상태들 (예컨대, 인에이블된 학습 모드들, 디스에이블된 학습 모드들, 증가된 학습 레이트들, 감소된 학습 레이트들 등) 에서 동작하게 하는 신호들을 브로드캐스팅하기 시작할 수도 있다. 이러한 방식으로, 룸에서의 학습 디바이스들은 그/그녀가 존재할 때에 사용자에 의해 야기된 이벤트들을 관찰하는 것으로부터 학습하지만, 사용자가 존재하지 않을 때에 발생하는 이벤트들 (예컨대, 애완동물들, 아동들, 손님들 등에 의해 야기된 이벤트들) 로부터 학습하지 않도록 제어될 수도 있다.
도 14a 내지 도 14d 는 학습 디바이스가 다양한 학습 상태들 동안에 보상 패턴들을 획득하는 것에 응답하여 리플렉스의 트리거 가중치에 대한 예시적인 변경들을 예시한다. 특히, 학습 수정자 신호들의 상이한 타입들에 기초하여, 리플렉스의 현재의 트리거 가중치는 상이한 레이트들에서 트리거 가중치 임계 (1406) 위로 상승될 수도 있다. 그 결과, 학습 디바이스는 학습 수정자 신호들에 기초하여 상이한 속력들에서 연관된 액션을 수행할 수도 있다.
도 14a 는 디폴트 학습 상태 동안에 수신된 보상 신호들로 인해 트리거 가중치 변경들을 예시한다. 다시 말해서, 학습 디바이스가 학습 수정자 신호를 수신하지 않을 때 (즉, 학습 수정자 디바이스가 근접성 내에서 신호들을 송신하고 있지 않음) 에 변경들이 발생할 수도 있다. 학습 디바이스는 트리거 가중치 임계 (1406) 미만인 제 1 트리거 가중치 레벨 (1401) 에서 리플렉스에 대한 트리거 가중치를 초기화할 수도 있다. 제 1 시간 (1410) 에서는, 예컨대, 학습 디바이스가 특정 이벤트 또는 발생 데이터에 관련된 제 1 이벤트 보고 메시지를 수신하는 것에 응답하여, 학습 디바이스가 제 1 보상 패턴 (1411) 을 획득할 수도 있다. 이에 응답하여, 학습 디바이스는 트리거 가중치를 트리거 가중치 임계 (1406) 미만인 제 2 트리거 가중치 레벨 (1402) 로 증가시킬 수도 있다. 제 2 시간 (1412) 에서는, 예컨대, 학습 디바이스가 특정 이벤트 또는 발생 데이터에 관련된 제 2 이벤트 보고 메시지를 수신하는 것에 응답하여, 학습 디바이스가 제 2 보상 패턴 (1413) 을 획득할 수도 있다. 이에 응답하여, 학습 디바이스는 트리거 가중치를, 트리거 가중치 임계 (1406) 을 초과하는 제 3 트리거 가중치 레벨 (1403) 로 증가시킬 수도 있다. 이에 따라, 그 디폴트 학습 상태에서, 학습 디바이스는 2 개의 보상 패턴들 (1411, 1413) 을 수신한 후에 리플렉스의 액션을 수행하도록 구성될 수도 있다.
도 14b 는 증가된 학습 레이트에 의해 정의될 수도 있는 제 1 수정된 학습 상태 동안에 수신된 보상 신호들로 인한 트리거 가중치 변경들을 예시한다. 다시 말해서, 수신된 학습 수정자 신호들 내의 데이터 (예컨대, 승수들, 스칼라들, 부스터들 등) 에 기초하여, 학습 디바이스는 더 고속으로 학습하도록 구성될 수도 있다. 위에서 설명된 바와 같이, 학습 디바이스는 트리거 가중치 임계 (1406) 미만인 제 1 트리거 가중치 레벨 (1401) 에서 리플렉스에 대한 트리거 가중치를 초기화할 수도 있다. 제 1 시간 (1410) 에서, 학습 디바이스는 제 1 보상 패턴 (1411) 을 획득할 수도 있고, 이에 응답하여, 학습 디바이스는 트리거 가중치를, 트리거 가중치 임계 (1406) 을 초과하는 제 3 트리거 가중치 레벨 (1403) 로 증가시킬 수도 있다. 이에 따라, 증가된 학습 레이트를 갖는 제 1 수정된 학습 상태에서, 학습 디바이스는 더 적은 보상 패턴들을 수신한 후에 리플렉스의 액션을 수행하도록 구성될 수도 있다.
도 14c 는 감소된 학습 레이트에 의해 정의될 수도 있는 제 2 수정된 학습 상태 동안에 수신된 보상 신호들로 인한 트리거 가중치 변경들을 예시한다. 다시 말해서, 수신된 학습 수정자 신호들 내의 데이터 (예컨대, 승수들, 스칼라들, 부스터들 등) 에 기초하여, 학습 디바이스는 더 저속으로 학습하도록 구성될 수도 있다. 위에서 설명된 바와 같이, 학습 디바이스는 트리거 가중치 임계 (1406) 미만인 제 1 트리거 가중치 레벨 (1401) 에서 리플렉스에 대한 트리거 가중치를 초기화할 수도 있다. 제 1 시간 (1410) 에서, 학습 디바이스는 제 1 보상 패턴 (1411) 을 획득할 수도 있고, 이에 응답하여, 학습 디바이스는 트리거 가중치를, 트리거 가중치 임계 (1406) 미만인 제 4 트리거 가중치 레벨 (1452) 로 증가시킬 수도 있다. 제 2 시간 (1412) 에서, 학습 디바이스는 제 2 보상 패턴 (1413) 을 획득할 수도 있고, 이에 응답하여, 학습 디바이스는 트리거 가중치를, 트리거 가중치 임계 (1406) 미만인 제 2 트리거 가중치 레벨 (1402) 로 증가시킬 수도 있다. 제 3 시간 (1462) 에서, 학습 디바이스는 제 3 보상 패턴 (1463) 을 획득할 수도 있고, 이에 응답하여, 학습 디바이스는 트리거 가중치를, 트리거 가중치 임계 (1406) 미만인 제 5 트리거 가중치 레벨 (1454) 로 증가시킬 수도 있다. 제 4 시간 (1464) 에서, 학습 디바이스는 제 4 보상 패턴 (1465) 을 획득할 수도 있고, 이에 응답하여, 학습 디바이스는 트리거 가중치를, 트리거 가중치 임계 (1406) 을 초과하는 제 3 트리거 가중치 레벨 (1403) 로 증가시킬 수도 있다. 이에 따라, 이 제 2 수정된 학습 상태에서, 학습 디바이스는 더 많은 보상 패턴들을 수신한 후에 리플렉스의 액션을 수행하도록 구성될 수도 있다 (즉, 저속으로 학습함).
도 14d 는 디스에이블된 학습 모드에 의해 정의될 수도 있는 제 3 수정된 학습 상태 동안에 수신된 보상 신호들로 인한 트리거 가중치 변경들을 예시한다. 다시 말해서, 수신된 학습 수정자 신호들 내의 데이터에 기초하여, 학습 디바이스는 학습하지 않도록 구성될 수도 있다 (즉, 제로의 학습 레이트). 위에서 설명된 바와 같이, 학습 디바이스는 트리거 가중치 임계 (1406) 미만인 제 1 트리거 가중치 레벨 (1401) 에서 리플렉스에 대한 트리거 가중치를 초기화할 수도 있다. 제 1 시간 (1410) 에서, 학습 디바이스는 제 1 보상 패턴 (1411) 을 획득할 수도 있지만, 이에 응답하여, 학습 디바이스는 새로운 트리거 가중치를 계산하지 않을 수도 있고, 그러므로, 트리거 가중치는 제 1 트리거 가중치 레벨 (1401) 에서 유지될 수도 있다. 유사하게, 제 2 보상 패턴 (1413) 이 제 2 시간 (1412) 에서 획득되고, 제 3 보상 패턴 (1463) 이 제 3 시간 (1462) 에서 획득되고, 제 4 보상 패턴 (1465) 이 제 4 시간 (1464) 에서 획득된 후, 학습 디바이스는 새로운 트리거 가중치를 계산하지 않을 수도 있고, 이에 따라, 트리거 가중치는 제 1 트리거 가중치 레벨 (1401) 에서 유지될 수도 있다.
도 15a 내지 도 15d 는 학습 디바이스가 다양한 학습 상태들 동안에 정정 패턴들을 획득하는 것에 응답하여 리플렉스의 트리거 가중치에 대한 예시적인 변경들을 예시한다. 특히, 학습 수정자 신호들의 상이한 타입들에 기초하여, 리플렉스의 현재의 트리거 가중치는 상이한 레이트들에서 트리거 가중치 임계 (1506) 미만으로 저항될 수도 있고, 이에 따라, 학습 디바이스는 학습 수정자 신호들에 기초하여 상이한 속력들에서 연관된 액션을 수행하는 것으로부터 디스에이블될 수도 있다.
도 15a 는 디폴트 학습 상태 동안에 수신된 정정 신호들로 인해 트리거 가중치 변경들을 예시한다. 다시 말해서, 학습 디바이스가 학습 수정자 신호들을 수신하지 않을 때 (즉, 학습 수정자 디바이스가 근접성 내에 있지 않음) 에 변경들이 발생할 수도 있다. 학습 디바이스는 트리거 가중치 임계 (1506) 을 초과하는 제 1 트리거 가중치 레벨 (1501) 에서 리플렉스에 대한 트리거 가중치를 초기화할 수도 있다. 제 1 시간 (1510) 에서는, 예컨대, 학습 디바이스가 특정 이벤트 또는 발생 데이터에 관련된 제 1 이벤트 보고 메시지를 수신하는 것에 응답하여, 학습 디바이스가 제 1 정정 패턴 (1511) 을 획득할 수도 있다. 이에 응답하여, 학습 디바이스는 트리거 가중치를, 트리거 가중치 임계 (1506) 을 초과하는 제 2 트리거 가중치 레벨 (1502) 로 감소시킬 수도 있다. 제 2 시간 (1512) 에서는, 예컨대, 학습 디바이스가 특정 이벤트 또는 발생 데이터에 관련된 제 2 이벤트 보고 메시지를 수신하는 것에 응답하여, 학습 디바이스가 제 2 정정 패턴 (1513) 을 획득할 수도 있다. 이에 응답하여, 학습 디바이스는 트리거 가중치를, 트리거 가중치 임계 (1506) 미만인 제 3 트리거 가중치 레벨 (1503) 로 감소시킬 수도 있다. 이에 따라, 그 디폴트 학습 상태에서, 학습 디바이스는 2 개의 정정 패턴들 (1511, 1513) 을 수신한 후에 리플렉스의 액션을 수행하는 것을 정지하도록 구성될 수도 있다.
도 15b 는 증가된 학습 레이트에 의해 정의될 수도 있는 제 1 수정된 학습 상태 동안에 수신된 정정 신호들로 인한 트리거 가중치 변경들을 예시한다. 도 14b 를 참조하여 위에서 설명된 예와 유사하게, 수신된 학습 수정자 신호들 내의 데이터 (예컨대, 승수들, 스칼라들, 부스터들 등) 에 기초하여, 학습 디바이스는 더 고속으로 학습하도록 구성될 수도 있다. 학습 디바이스는 트리거 가중치 임계 (1506) 을 초과하는 제 1 트리거 가중치 레벨 (1501) 에서 리플렉스에 대한 트리거 가중치를 초기화할 수도 있다. 제 1 시간 (1510) 에서, 학습 디바이스는 제 1 정정 패턴 (1511) 을 획득할 수도 있고, 이에 응답하여, 학습 디바이스는 트리거 가중치를, 트리거 가중치 임계 (1506) 미만인 제 3 트리거 가중치 레벨 (1503) 로 감소시킬 수도 있다. 이에 따라, 증가된 학습 레이트를 갖는 제 1 수정된 학습 상태에서, 학습 디바이스는 단지 하나의 정정 패턴 후와 같이, 더 적은 정정 패턴들을 수신한 후에 리플렉스의 액션을 수행하는 것을 정지하도록 구성될 수도 있다.
도 15c 는 감소된 학습 레이트에 의해 정의될 수도 있는 제 2 수정된 학습 상태 동안에 수신된 정정 신호들로 인한 트리거 가중치 변경들을 예시한다. 도 14c 를 참조하여 위에서 설명된 예와 유사하게, 수신된 학습 수정자 신호들 내의 데이터 (예컨대, 승수들, 스칼라들, 부스터들 등) 에 기초하여, 학습 디바이스는 더 저속으로 학습하도록 구성될 수도 있다. 학습 디바이스는 트리거 가중치 임계 (1506) 을 초과하는 제 1 트리거 가중치 레벨 (1501) 에서 리플렉스에 대한 트리거 가중치를 초기화할 수도 있다. 제 1 시간 (1510) 에서, 학습 디바이스는 제 1 정정 패턴 (1511) 을 획득할 수도 있고, 이에 응답하여, 학습 디바이스는 트리거 가중치를, 트리거 가중치 임계 (1506) 을 초과하는 제 4 트리거 가중치 레벨 (1552) 로 감소시킬 수도 있다. 제 2 시간 (1512) 에서, 학습 디바이스는 획득될 수도 있는 제 2 정정 패턴 (1513) 을 획득할 수도 있고, 이에 응답하여, 학습 디바이스는 트리거 가중치를, 트리거 가중치 임계 (1506) 을 초과하는 제 2 트리거 가중치 레벨 (1502) 로 감소시킬 수도 있다. 제 3 시간 (1562) 에서, 학습 디바이스는 획득될 수도 있는 제 3 정정 패턴 (1563) 을 획득할 수도 있고, 이에 응답하여, 학습 디바이스는 트리거 가중치를, 트리거 가중치 임계 (1506) 을 초과하는 제 5 트리거 가중치 레벨 (1554) 로 감소시킬 수도 있다. 제 4 시간 (1564) 에서, 학습 디바이스는 획득될 수도 있는 제 4 정정 패턴 (1565) 을 획득할 수도 있고, 이에 응답하여, 학습 디바이스는 트리거 가중치를, 트리거 가중치 임계 (1506) 미만인 제 3 트리거 가중치 레벨 (1503) 로 감소시킬 수도 있다. 이에 따라, 이 제 2 수정된 학습 상태에서, 학습 디바이스는 4 개의 정정 패턴들과 같은 더 많은 정정 패턴들을 수신한 후에 리플렉스의 액션을 수행하는 것을 정지하도록 구성될 수도 있다.
도 15d 는 디스에이블된 학습 모드에 의해 정의될 수도 있는 제 3 수정된 학습 상태 동안에 수신된 정정 신호들로 인한 트리거 가중치 변경들을 예시한다. 도 14d 에서 설명된 것과 유사하게, 수신된 학습 수정자 신호들 내의 데이터에 기초하여, 학습 디바이스는 학습하지 않도록 구성될 수도 있다 (즉, 제로의 학습 레이트) 학습 디바이스는 트리거 가중치 임계 (1506) 미만인 제 1 트리거 가중치 레벨 (1501) 에서 리플렉스에 대한 트리거 가중치를 초기화할 수도 있다. 그러나, 디스에이블된 학습 모드로 인해, 학습 디바이스는 다양한 시간들 (1510, 1512, 1562, 1564) 에서 정정 신호들 (1511, 1513, 1563, 1565) 을 수신하는 것에 응답하여 트리거 가중치를 제 1 트리거 가중치 임계 (1506) 으로부터 변경하지 않을 수도 있다.
도 16 은 학습 수정자 디바이스에 의해 송신된 신호들 (본원에서 "학습 수정자 신호들" 로서 지칭됨) 내의 데이터를 특징화하기 위해 이용될 수도 있는 데이터 구조 (1600) 를 예시한다. 데이터 구조 (1600) 는 포맷 컴포넌트 (1602), 식별 컴포넌트 (1604), 시간 컴포넌트 (1606), 및 학습 레이트 수정자 값 (1608) 을 포함할 수도 있다. 컴포넌트들 (1602 내지 1606) 은 도 3a 내지 도 3b 에서의 포맷 컴포넌트 (301), 식별 컴포넌트 (302), 및 시간 컴포넌트 (351) 를 참조하여 위에서 설명된 예와 유사할 수도 있다. 특히, 포맷 컴포넌트 (1602) 는, 학습 디바이스들이 프로토콜 버전, 암호화 타입, 시퀀스 번호, 트랜잭션 식별자 (예컨대, 방향, 순서, 또는 시퀀스 표시 없이 다양한 발생 데이터와 그 다음의 것 사이를 구별하기 위해 이용될 수도 있는 정보) 등과 같은, 데이터 구조 (1600) 에서의 데이터의 나머지를 디코딩, 판독, 및/또는 액세스하는 것을 가능하게 하기 위한 데이터 또는 정보를 포함할 수도 있다. 식별 컴포넌트 (1604) 는 발생 데이터를 발신하였던 디바이스 (즉, 학습 수정자 디바이스) 를 표시할 수도 있다. 시간 컴포넌트 (1606) 는 하루 중의 시간, 한 주 중의 요일 등과 같이, 학습 수정자 신호가 송신되었던 시간을 표시할 수도 있다.
학습 레이트 수정자 값 (1608) 은 학습 수정자 신호를 수신하는 학습 디바이스들이 그 학습의 레이트를 증가 또는 감소시켜야 하는지 여부를 표시할 수도 있다. 일부의 실시형태들에서, 학습 레이트 수정자 값 (1608) 은 스칼라 또는 승수 등과 같이, 위에서 설명된 바와 같은 트리거 가중치 계산들에서의 값으로서 이용될 수도 있다. 예를 들어, 값이 '1' 보다 더 클 때, 학습 레이트 수정자 값 (1608) 은 학습 레이트들을 증가시키기 위하여 계산들 동안에 리플렉스들의 트리거 가중치들에 적용된 스칼라일 수도 있다 (즉, 트리거 가중치들은 더욱 급속하게 조절됨). 또 다른 예로서, 값이 '1' 보다 더 작을 때, 학습 레이트 수정자 값 (1608) 은 학습 레이트들을 감소시키기 위하여 계산들 동안에 리플렉스들의 트리거 가중치들에 적용된 스칼라일 수도 있다 (즉, 트리거 가중치들은 더욱 저속으로 조절됨). 일부의 실시형태들에서, 학습 레이트 수정자 값 (1608) 은 위에서 설명된 바와 같은 트리거 가중치 계산들에서 이용된 가산 값일 수도 있다. 예를 들어, 학습 레이트 수정자 값 (1608) 은 리플렉스들에 대한 트리거 가중치들을 계산함에 있어서 이용된 다양한 변수들 (예컨대, 이득들, 바이어스 등) 에 가산될 수도 있다 (또는 그로부터 감산됨).
데이터 구조 (1600) 는 또한, 다양한 선택적인 컴포넌트들 (1610 내지 1616) 을 포함할 수도 있다. 특히, 데이터 구조 (1600) 는 신호 내의 데이터 구조 (1600) 를 수신하는 디바이스들이 인에이블된 학습 모드 (즉, 학습할 수 있음) 또는 디스에이블된 학습 모드 (즉, 학습할 수 없음) 로 되어야 하는지 여부를 표시할 수도 있는 선택적인 학습 모드 활성 세팅 컴포넌트 (1610) 를 포함할 수도 있다. 일부의 실시형태들에서, 학습 레이트 수정자 값 (1608) 은 학습 모드 활성 세팅 (1610) 과 동일한 방식으로 기능하도록 구성될 수도 있다. 예를 들어, 학습 레이트 수정자 값 (1608) 에 대한 제로 값은 학습 디바이스에 의해 계산된 임의의 학습 값들 또는 가중치들을 제로로 하는 승수로서 학습 디바이스에 의해 이용될 수도 있다. 또 다른 예로서, 학습 레이트 수정자 값 (1608) 에 대한 '1' 의 값은 학습 디바이스에 의해 계산된 임의의 정상적인 학습 값들 또는 가중치들을 단지 유지하는 승수로서 학습 디바이스에 의해 이용될 수도 있다.
데이터 구조 (1600) 는 학습 수정자 신호에 의해 영향받을 수도 있는 학습 디바이스의 클래스 또는 타입을 표시할 수도 있는 선택적인 디바이스-타입 컴포넌트 (1612) 를 포함할 수도 있다. 예를 들어, 디바이스-타입 컴포넌트 (1612) 는, 스마트 TV 들, 스마트 스테레오들, 스마트 벽 스위치들, 및/또는 스마트 램프들 중의 임의의 것 또는 전부가 학습 수정자 신호를 수신하는 것에 응답하여 그 개별적인 학습 모드들 및/또는 학습 레이트들을 조절할 수도 있음을 표시할 수도 있다. 일부의 실시형태들에서, 디바이스-타입 컴포넌트 (1612) 는, 예컨대, 대응하는 학습 수정자 디바이스가 근처의 디바이스들의 학습에 무차별적으로 영향을 주도록 구성될 때, 학습 수정자 신호를 수신하는 디바이스들의 전부가 영향받을 수도 있거나 그 디바이스들의 어느 것도 영향받지 않을 수도 있음을 표시할 수도 있다. 일부의 실시형태들에서, 디바이스-타입 컴포넌트 (1612) 는 데이터 구조 (1600) 를 포함하는 학습 수정자 신호들에 의해 영향받을 수도 있는 특정 디바이스 식별자들을 표시할 수도 있다. 예를 들어, 디바이스-타입 컴포넌트 (1612) 는 연관된 학습 수정자 신호들 내의 정보를 사용하도록 구성될 수도 있는 디바이스 식별자들 또는 머신 액세스 제어 (machine access control; MAC) 어드레스들의 범위를 포함할 수도 있다.
데이터 구조 (1600) 는 또한, 학습 수정자 신호들에 의해 영향받을 수도 있는 계산들을 학습하는 특정 타입들을 표시할 수도 있는 선택적인 학습 레이트 수정자-타입 컴포넌트 (1614) 를 포함할 수도 있다. 학습 레이트 수정자 타입 컴포넌트 (1614) 는 보상 패턴들 및/또는 정정 패턴들에 관련된 계산들만이 학습 레이트 수정자 값 (1608) 에 의해 영향받을 수도 있음을 표시할 수도 있다. 예를 들어, 학습 레이트 수정자 타입 (1614) 은, 트리거링된 모드 동안에 보상 패턴들을 수신하는 것에 응답하여, 다양한 리플렉스들에 대한 트리거 가중치들이 조절된 레이트에서 변경되기만 할 수도 있음을 표시할 수도 있다. 또 다른 예로서, 학습 레이트 수정자 타입 컴포넌트 (1614) 는, 트리거링된 모드 동안에 정정 패턴들을 수신하는 것에 응답하여, 다양한 리플렉스들에 대한 트리거 가중치들이 조절된 레이트에서 변경되기만 할 수도 있음을 표시할 수도 있다. 이러한 방법으로, 학습 수정자 신호들은 트리거들에 응답하여 액션들을 수행하는 것을 학습하거나 폐기학습하기 위한 레이트를 수정하기 위하여 송신될 수도 있다.
데이터 구조 (1600) 는 또한, 학습 수정자 디바이스가 학습 수정자 신호들을 얼마나 자주 전송하는지를 표시하는 선택적인 송신 빈도 컴포넌트 (1616) 를 포함할 수도 있다. 이러한 빈도 정보는 학습 디바이스들이 더 이상 학습 수정자 신호들을 수신하지 않는지 (예컨대, 학습 수정자 디바이스의 범위 외부인지, 등) 또는 신호들 사이의 주기 내에 단지 있는지 여부를 결정하기 위하여 학습 디바이스들에 의해 이용될 수도 있다. 예를 들어, 스마트 TV 는, 학습 수정자 신호가 제 1 학습 수정자 신호로부터의 송신 빈도 컴포넌트 (1616) 에 의해 정의된 시간 윈도우 내에서 수신되지 않았을 때에 스마트 TV 가 더 이상 수정된 학습 상태 내에 있지 않을 수도 있는 것으로 결정할 수도 있다.
도 17a 는 학습 수정자 디바이스로부터 신호들을 수신하는 것에 응답하여 학습 디바이스가 그 학습 역량들을 변경하기 위한 일 실시형태의 방법 (1700) 을 예시한다. 특히, 학습 디바이스는 증가되거나 감소된 학습 레이트들의 주기들 및/또는 인에이블된 학습 모드들과 같이, 다양한 학습 상태들에 진입할 것을 학습 디바이스에게 명령하는 정보를 포함하는 착신 학습 수정자 신호들에 대해 수신기 회로를 모니터링할 수도 있다. 위에서 설명된 바와 같이, 학습 디바이스는 예컨대, 제조자 또는 사용자에 의해 정의된 학습 레이트들을 이용함으로써, 디폴트 학습 역량들을 가지는 디폴트 학습 상태에서 동작하도록 구성될 수도 있다. 그러나, 근처의 학습 수정자 디바이스로부터 송신된 학습 수정자 신호들을 수신하는 것에 응답하여, 학습 디바이스는 상이하거나 수정된 학습 역량들을 갖는 수정된 학습 상태에서 동작하도록 구성될 수도 있다. 학습 디바이스가 학습 수정자 신호들을 수신하는 것을 중단할 때, 학습 디바이스는 디폴트 학습 상태에서 동작하는 것을 재개할 수도 있다.
블록 (1701) 에서, 학습 디바이스의 프로세서는 예컨대, 근처의 디바이스들로부터 수신된 새로운 단거리 무선 메시지들 (예컨대, 블루투스 패킷) 을 검출하기 위하여 착신 메시지 버퍼를 모니터링함으로써, 착신 신호들에 대하여 수신기 회로를 모니터링할 수도 있다. 이때, 학습 디바이스는 수정된 학습 역량들을 사용하지 않을 수도 있고, 이에 따라, 디폴트 학습 상태에서 동작하는 것으로 간주될 수도 있다. 결정 블록 (1702) 에서, 학습 디바이스의 프로세서는 수신된 신호가 학습 수정자 신호인지 여부를 결정할 수도 있다. 예를 들어, 학습 디바이스는, 신호가 학습 수정자 디바이스에 의해 송신되었는지, 또는 이와 다르게, 학습 디바이스가 학습하도록 구성되는 방법을 변경할 수도 있는 정보를 포함하는지 여부를 표시할 수도 있는, 수신된 신호에서의 메타데이터, 헤더 정보, 및/또는 임의의 다른 데이터를 이용할 수도 있다. 수신된 신호가 학습 수정자 신호가 아닌 것으로 결정하는 것 (즉, 결정 블록 (1702) = "아니오") 에 응답하여, 학습 디바이스는 블록 (1701) 에서, 동작들을 프로세싱하기 위하여 착신 신호들에 대해 모니터링하는 것을 계속할 수도 있다.
그러나, 수신된 신호가 학습 수정자 신호인 것으로 결정하는 것 (즉, 결정 블록 (1702) = "예") 에 응답하여, 학습 디바이스의 프로세서는 블록 (1704) 에서의 수신된 신호에 기초하여 수정된 학습 상태에서 동작하도록 학습 디바이스의 학습 역량들 중 하나 이상을 수정할 수도 있다. 학습 디바이스는 수정된 학습 상태에 있는 동안에 학습 거동들을 조절하기 위하여 디바이스 상에 저장된 다양한 세팅들, 구성들, 값들, 및 다른 데이터를 변경할 수도 있다. 수정된 학습 역량들의 특정 예들은 도 18a, 도 18b 및 도 19 를 참조하여 이하에서 설명된다. 일부의 실시형태들에서, 학습 디바이스의 현재의 학습 역량들을 정의하기 위해 이용된 변수들, 세팅들, 레지스터 (register) 들, 및/또는 다른 정보의 디폴트 값들은 블록 (1704) 에서의 동작들에서 행해진 조절들에 기초하여 겹쳐쓰기 (overwrite) 될 수도 있다. 예를 들어, 트리거 가중치들을 계산함에 있어서 이용된 디폴트 이득 변수 값 (예컨대, 1 초) 은 수신된 학습 수정자 신호에서 표시된 수정된 이득 값 (예컨대, 1.5 초) 로 겹쳐쓰기 될 수도 있다. 그러나, 이러한 디폴트 정보는 더 이후의 시간에, 예컨대, 학습 디바이스가 더 이상 수정된 학습 상태에 있지 않을 때에 저장되고 재로딩 (reload) 될 수도 있다. 일부의 실시형태들에서, 학습 디바이스는 그것이 수정된 학습 상태에서 동작하고 있는지 여부를 표시하기 위하여 플래그 (flag) 들, 시스템 변수들, 또는 다른 저장된 정보를 사용할 수도 있다.
결정 블록 (1706) 에서, 학습 디바이스의 프로세서는 후속의 학습 수정자 신호들이 수신되는지 여부를 결정할 수도 있다. 예를 들어, 학습 디바이스는, 학습 디바이스가 수신된 학습 수정자 신호들에 기초하여 그 학습 역량들을 수정하였던 (즉, 수정된 학습 상태에 진입하였던) 시간에 후속하여 수신되는 착신 신호들에 대해 수신기 회로를 모니터링할 수도 있다. 학습 디바이스는 후속의 학습 수정자 신호들이 어떤 시간 빈도 내에서, 및/또는 선행하는 학습 수정자 신호의 수신으로부터 어떤 시간 윈도우 내에서 수신되는지 여부를 결정할 수도 있다. 다시 말해서, 후속의 학습 수정자 신호들은 학습 디바이스가 수정된 학습 상태에서 동작하는 것을 유지하기 위해 충분히 근접하게 함께 수신될 필요가 있을 수도 있다. 예를 들어, 학습 디바이스는, 제 2 학습 수정자 신호가 제 1 학습 수정자 신호를 수신한 후의 미리 정의된 시간 주기 (예컨대, 1 초 등) 내에 수신될 때, 제 3 학습 수정자 신호가 제 2 학습 수정자 신호들을 수신한 후의 시간 주기 내에 수신될 때, 및 기타 등등일 때에 수정된 학습 상태에서 동작하도록 구성된 상태로 유지될 수도 있다. 도 17b 를 참조하여 이하에서 설명된 바와 같은 일부의 실시형태들에서, 각각의 후속의 학습 수정자 신호는 학습 디바이스로 하여금 카운트-다운 메커니즘 또는 타이머를 리프레시 또는 재설정하게 할 수도 있다.
후속의 학습 수정자 신호들이 수신되는 것으로 결정하는 것 (즉, 결정 블록 (1706) = "예") 에 응답하여, 학습 디바이스는 수정된 학습 역량들을 갖는 수정된 학습 상태에서 유지될 수도 있고, 결정 블록 (1706) 에서의 동작들을 계속할 수도 있다. 그러나, 후속의 학습 수정자 신호들이 수신되지 않거나, 제 1 학습 수정자 신호가 수신된 후의 특정 시간 주기들 내에 수신되지 않는 것으로 결정하는 것 (즉, 결정 블록 (1706) = "아니오") 에 응답하여, 학습 디바이스의 프로세서는 블록 (1708) 에서, 디폴트 학습 상태에서 동작하도록 학습 디바이스의 학습 역량들을 재설정할 수도 있다. 다시 말해서, 트리거들 및 액션들 사이의 연관성들을 생성 (즉, 리플렉스들을 생성함) 하고 및/또는 학습된 연관성들의 트리거 가중치들을 변경 (즉, 저장된 리플렉스들의 트리거 가중치들을 증가 또는 감소시킴) 하기 위한 계산들, 루틴들, 구성들, 및/또는 다른 기능성들과 연관된 정보 (예컨대, 변수들, 구성들, 모드들, 세팅들 등) 에 대한 임의의 조절들이 있었을 경우, 학습 디바이스는 조절된 정보를 그 디폴트 세팅들, 조건, 컨텐츠 (content), 및/또는 값들로 복귀시킬 수도 있다. 예를 들어, 학습 디바이스는 트리거 가중치들의 계산들을 조절하기 위해 이용되었던 학습 수정자 신호들에서 수신된 승수들을 무효화거나, 제거하거나, 삭감하거나, 또는 이와 다르게 재설정할 수도 있다. 도 18a, 도 18b 및 도 19 는 수정된 학습 상태들을 나가는 것에 응답하여 학습 디바이스가 행할 수도 있는 특정 조절들을 예시한다. 다양한 실시형태들에서, 학습 디바이스가 학습 역량들을 재설정할 때, 학습 디바이스의 메모리 (예컨대, 비휘발성 등) 내에 저장된 세팅들, 구성들, 수식들 등에 대한 디폴트 값들은 학습 수정자 신호들에서 수신된 데이터를 겹쳐쓰기 하기 위하여 메모리로부터 재호출되거나 로딩될 수도 있다. 학습 디바이스는 프로세싱하기 위한 추가적인 신호들에 대해 모니터링하기 위하여 블록 (1701) 에서의 동작들을 계속할 수도 있다.
도 17b 는 학습 수정자 디바이스로부터 신호들을 수신하는 것에 응답하여 학습 디바이스가 그 학습 역량들을 변경하기 위한 일 실시형태의 방법 (1750) 을 예시한다. 방법 (1750) 이 수정된 학습 역량들을 언제 사용할 것인지를 결정하기 위한 추가적인 동작들을 포함할 수도 있다는 것을 제외하고는, 방법 (1750) 은 도 17a 를 참조하여 위에서 설명된 방법 (1700) 과 유사할 수도 있다. 특히, 일단 학습 수정자 신호를 수신하는 것에 응답하여 수정된 학습 상태에 있다면, 학습 디바이스는 후속의 학습 수정자 신호들이 시간 주기 내에서 수신되는지 여부를 결정하기 위하여 타이머 (또는 카운터와 같은 다른 타이밍 메커니즘) 를 계속적으로 평가할 수도 있다. 이러한 후속 신호들이 타이머에 의해 정의된 시간 주기 내에서 수신되지 않을 때, 학습 디바이스는 그 학습 역량들을 그 디폴트 구성들로 복귀시킬 수도 있고, 이에 따라, 이제 더 이상 수정된 학습 상태에서 동작하지 않을 수도 있다.
예시로서, 학습 디바이스는 근처의 학습 수정자 디바이스로부터 수신된 제 1 학습 수정자 신호에 기초하여 학습 역량들 (예컨대, 증가된 학습 레이트 등) 을 수정하는 것에 응답하여 타이머를 시작시킬 수도 있다. 타이머가 경과하기 전에, 학습 디바이스는 제 2 학습 수정자 신호를 수신할 수도 있고 타이머를 재설정할 수도 있다. 사용자가 학습 수정자 디바이스를 학습 수정자 디바이스의 브로드캐스트 범위를 초월하여 (예컨대, 또 다른 룸 또는 건물 내로) 학습 디바이스로부터 멀어지게 이동시킬 때, 학습 디바이스는 후속의 학습 수정자 신호들을 수신하지 않을 수도 있고, 궁극적으로 타이머가 경과할 것이다. 그 결과, 학습 디바이스는 수정된 학습 역량들을 이용하는 것을 중단할 수도 있고 디폴트 학습 상태 (예컨대, 디폴트 학습 레이트 등) 로 복귀할 수도 있다.
일부의 실시형태들에서, 타이머는 모든 학습 디바이스들에 대해 표준적인 주기와 같은, 미리 결정된 시간 주기를 측정하기 위하여 이용될 수도 있다. 일부의 실시형태들에서, 시간 주기는 상이한 학습 디바이스 타입들 (예컨대, 스마트 TV, 스마트 스테레오 등), 제조자들, 및/또는 학습 수정자 디바이스들에 대해 상이할 수도 있다. 일부의 실시형태들에서, 블루투스를 통해 송신된 학습 수정자 신호들에 대한 제 1 시간 주기 및 WiFi 를 통해 송신된 학습 수정자 신호들에 대한 제 2 시간 주기 등과 같은 시간 주기는 학습 수정자 신호들에 대해 이용된 통신 채널 및/또는 통신 프로토콜의 신뢰성에 기초할 수도 있다. 일부의 실시형태들에서, 타이머의 시간 주기는 학습 디바이스에서 수신된 신호들 내의 정보에 기초할 수도 있다. 예를 들어, 타이머의 디폴트 (또는 최대) 값 (즉, 타이머에 의해 표현된 시간 주기) 은 근처의 학습 수정자 디바이스의 브로드캐스트 주파수를 표시하는 학습 수정자 신호로부터의 데이터에 기초하여 설정될 수도 있다.
블록 (1751) 에서, 학습 디바이스의 프로세서는 학습 디바이스가 수정된 학습 상태에서 동작하기 시작할 때에 타이머를 초기화할 수도 있다. 타이머는 만료되었거나 또는 이와 다르게 비활성인 세팅을 가지도록 초기에 설정될 수도 있고, 이에 따라, 학습 디바이스는 그 디폴트 학습 상태에서 동작하고 있고 수정된 학습 상태에서 동작하고 있지 않은 것을 표시할 수도 있다. 이하에서 설명된 바와 같이, 타이머는 학습 수정자 디바이스로부터 학습 수정자 신호들을 수신하는 것에 응답하여 활성화될 수도 있다. 일단 활성화되고 만료되지 않았으면, 타이머는 학습 디바이스에 의해 규칙적으로 조절 (예컨대, 인크리먼트 (increment), 디크리먼트 (decrement) 등) 될 수도 있다. 일부의 실시형태들에서, 타이머는 값에 있어서 최대 값까지 위로 증가하도록 구성될 수도 있거나, 대안적으로, 값에 있어서 최소 값까지 아래로 감소하도록 구성될 수도 있다. 예를 들어, 학습 디바이스는 클록 신호에 기초하여, 매 밀리초 (millisecond), 매 초 (seoncd) 등에 타이머의 값을 인크리먼트 (즉, 카운트 업) 또는 디크리먼트 (즉, 카운트 다운) 할 수도 있다.
일부의 실시형태들에서, 학습 디바이스는 상이한 학습 수정과 각각 연관된 복수의 타이머들을 사용할 수도 있다. 예를 들어, 학습 디바이스는, 학습 디바이스가 제 1 리플렉스에 관련된 수정된 학습 상태에서 동작하고 있는지 여부를 표시하기 위하여 제 1 타이머를, 그리고 학습 디바이스가 제 2 리플렉스에 관련된 수정된 학습 상태에서 동작하고 있는지 여부를 표시하기 위하여 제 2 타이머를 이용할 수도 있다.
결정 블록 (1752) 에서, 학습 디바이스의 프로세서는 타이머가 경과하였는지 여부를 결정할 수도 있다. 예를 들어, 타이머가 최대 값으로 카운트 다운하도록 구성될 때, 학습 디바이스는 타이머의 현재의 값이 최소 값 (예컨대, 제로) 이하일 때에 타이머가 경과한 것으로 결정할 수도 있다. 또 다른 예로서, 타이머가 최대 값까지 카운트 업하도록 구성될 때, 학습 디바이스는 타이머의 현재의 값이 최대 값 이상일 때에 타이머가 경과한 것으로 결정할 수도 있다. 제 1 학습 수정자 신호가 수신되고 학습 디바이스가 수정된 학습 상태에 진입하였을 때까지, 학습 디바이스는 그것이 아직 활성화되어야 할 때에 타이머가 만료된 것으로 항상 결정할 수도 있다.
타이머가 경과한 것으로 결정하는 것 (즉, 결정 블록 (1752) = "예") 에 응답하여, 학습 디바이스의 프로세서는 위에서 설명된 바와 같은 블록 (1708) 에서, 디폴트 학습 상태에서 동작하도록 학습 디바이스의 학습 역량들을 재설정할 수도 있다. 일부의 실시형태들에서, 블록 (1708) 에서의 동작들은 학습 디바이스가 학습 역량들을 수정하였을 때에 수행되기만 할 수도 있다. 다시 말해서, 블록 (1708) 에서의 동작들은 타이머가 활성화되지 않았을 때에 불필요할 수도 있고, 그러므로, 스킵될 수도 있다. 예를 들어, 학습 디바이스가 방법 (1750) 의 동작 루프의 이전의 반복에서 블록 (1708) 에서의 동작들을 이미 수행하였고, 임의의 수정자 신호들을 추후에 수신하지 않았을 때 (즉, 수정된 학습 상태에 진입하지 않았음), 트리거 가중치들을 계산하기 위해 이용된 변수들의 값들은 이미 그 디폴트 값들로 설정될 수도 있고, 이에 따라, 다시 재설정될 필요가 없을 수도 있다.
타이머가 경과되지 않은 것으로 결정하는 것 (즉, 결정 블록 (1752) = "아니오"), 또는 블록 (1708) 에서의 동작들이 수행된 것에 응답하여, 학습 디바이스의 프로세서는 신호가 결정 블록 (1754) 에서 수신되는지 여부를 결정할 수도 있다. 예를 들어, 학습 디바이스는 근처의 디바이스로부터의 새로운 단거리 무선 메시지 (예컨대, 블루투스 패킷) 가 수신된 것인지 여부를 검출하기 위하여 착신 메시지 버퍼를 모니터링할 수도 있다. 신호가 수신되지 않은 것으로 결정하는 것 (즉, 결정 블록 (1754) = "아니오") 에 응답하여, 학습 수정자 디바이스는 결정 블록 (1752) 에서, 타이머를 평가하기 위한 동작들을 계속할 수도 있다.
신호가 수신된 것으로 결정하는 것 (즉, 결정 블록 (1754) = "예") 에 응답하여, 학습 디바이스의 프로세서는 블록 (1756) 에서, 수신된 신호의 소스 및/또는 메시지 타입을 식별하기 위하여 수신된 신호를 평가할 수도 있다. 특히, 학습 디바이스는 도 16 을 참조하여 위에서 설명된 다양한 데이터 엘리먼트들을 식별하기 위하여 수신된 신호 내에서 표현된 데이터를 평가할 수도 있다. 예를 들어, 학습 디바이스는 신호를 송신한 디바이스의 식별정보 (예컨대, 디바이스 식별자 또는 ID 등), 신호의 타입 (예컨대, 이벤트 보고 메시지, 학습 수정자 신호 등) 뿐만 아니라, 다른 기술 속성 (descriptive attribute) 들 (예컨대, 타임스탬프 정보, 포맷팅, 관련된 프로토콜들, 버전들 등) 을 결정하기 위하여 수신된 신호 내의 데이터를 디코딩, 파싱 (parsing), 판독, 및/또는 분석할 수도 있다. 일부의 실시형태들에서, 학습 디바이스는 신호 내에 포함된 헤더 정보 또는 메타데이터에 기초하여 소스 및/또는 메시지 타입을 식별할 수도 있다.
위에서 설명된 바와 같이, 결정 블록 (1702) 에서는, 학습 디바이스의 프로세서가 수신된 신호가 학습 수정자 신호인지 여부를 결정할 수도 있다. 특히, 학습 디바이스는 블록 (1756) 에서의 동작들을 참조하여 위에서 설명된 바와 같은 수신된 신호 (예컨대, 식별된 소스 및/또는 메시지 타입) 의 평가에 기초하여 이 결정을 행할 수도 있다. 예를 들어, 학습 디바이스는 수신된 신호로부터의 디바이스 식별자를 승인된 학습 수정자 디바이스와 연관된 저장된 식별자에 일치시키는 것에 응답하여, 수신된 신호가 학습 수정자 신호인 것으로 결정할 수도 있다. 또 다른 예로서, 학습 디바이스는 학습 수정자 신호에 대응하는 수신된 신호 내의 코드 또는 디스크립터 (descriptor) (예컨대, 학습 수정자 디바이스들과 사전-연관된 신호 타입 코드 등) 를 식별하는 것에 기초하여, 수신된 신호가 학습 수정자 신호인 것으로 결정할 수도 있다. 일부의 실시형태들에서, 학습 디바이스는 이득들에 대한 승수 값들의 존재와 같은 학습 수정을 표시하는 커맨드들, 코드들, 정보 등을 식별하는 것에 응답하여, 수신된 신호가 학습 수정자 신호인 것으로 결정할 수도 있다. 예를 들어, 신호는, 학습 모드를 디스에이블 또는 인에이블하는 것, 및/또는 학습 디바이스 상에 저장된 리플렉스들의 트리거 가중치들을 계산함에 있어서 이용된 변수들의 값들을 변경하는 것과 관련 있는 스크립트 또는 커맨드를 포함할 때에 학습 수정자 신호인 것으로 결정될 수도 있다.
수신된 신호가 학습 수정자 신호가 아닌 것으로 결정하는 것 (즉, 결정 블록 (1702) = "아니오") 에 응답하여, 학습 디바이스의 프로세서는 블록 (1758) 에서, 수신된 신호를 이벤트 보고 메시지로서 프로세싱할 수도 있다. 다시 말해서, 학습 수정자 디바이스는 위에서 설명된 바와 같은 도 11 의 방법 (1100) 에서의 동작들을 수행함으로써 수신된 신호를 처리할 수도 있다. 예를 들어, 학습 디바이스는 이벤트를 획득할 수도 있고, 수신된 신호에 기초한 획득된 이벤트에 기초하여 패턴을 생성할 수도 있다. 학습 수정자 디바이스는 결정 블록 (1752) 에서, 타이머가 만료되었는지 여부를 결정하기 위한 동작들을 계속할 수도 있다. 일부의 실시형태들에서, 학습 디바이스는 수신된 신호가 학습 수정자 신호가 아닌 것으로 결정하는 것 (즉, 결정 블록 (1702) = "아니오") 에 응답하여, 수신된 신호를 무시하거나, 또는 이와 다르게 폐기할 수도 있다.
수신된 신호가 학습 수정자 신호인 것으로 결정하는 것 (즉, 결정 블록 (1702) = "예") 에 응답하여, 학습 디바이스의 프로세서는 선택적인 결정 블록 (1760) 에서, 수신된 학습 수정자 신호가 학습 디바이스에 적용가능한지 여부를 결정할 수도 있다. 선택적인 결정 블록 (1760) 에서의 결정은, 학습 수정자 신호가 임의의 학습 디바이스로 하여금 수정된 학습 상태에 진입하게 할 수도 있는 많은 경우들에서와 같이 선택적일 수도 있다. 그러나, 수신된 학습 수정자 신호와 함께 포함된 정보에 따라, 학습 디바이스는 수신된 학습 수정자 신호가 관련있지 않은 것으로 결정할 수도 있다. 예를 들어, 수신된 학습 수정자 신호에서 표시된 디바이스 타입들 (예컨대, 스마트 TV 들, 스마트 스테레오들 등) 에 기초하여, 학습 디바이스가 표시된 디바이스 타입들 중 하나가 아니므로 (예컨대, 학습 디바이스는 스마트 램프일 수도 있음, 등), 학습 디바이스는 신호가 적용가능하지 않은 것으로 결정할 수도 있다. 또 다른 예로서, 수신된 학습 수정자 신호 내의 시간 또는 포맷팅 정보에 기초하여, 시간이 신호들을 평가하기 위한 학습 디바이스의 시간 윈도우 내에 있지 않고 및/또는 포맷이 학습 디바이스와 호환가능하지 않으므로, 학습 디바이스는 신호가 적용가능하지 않은 것으로 결정할 수도 있다. 또 다른 예로서, 수신된 학습 수정자 신호는 그것이 학습 디바이스 상에 저장된 데이터와 일치하지 않는 비밀 코드 또는 키 (예컨대, 신탁된 코드 (trusted code)) 를 포함할 때에 적용가능하지 않을 수도 있다.
일부의 실시형태들에서, 학습 디바이스는, 디바이스가 수정된 학습 상태에 진입할 수 없을 때에 수신된 학습 수정자 신호가 적용가능하지 않은 것으로 결정할 수도 있다. 예를 들어, 학습 디바이스의 학습 모드와 연관된 물리적 세팅 (예컨대, 토글, 스위치, 레버 등) 을 갖는 학습 디바이스는 물리적 세팅이 '오프' 로 설정될 때에 수정된 학습 상태에 진입할 수 없을 수도 있다.
수신된 학습 수정자 신호가 학습 디바이스에 적용가능하지 않은 것으로 결정하는 것 (즉, 선택적인 결정 블록 (1760) = "아니오") 에 응답하여, 학습 수정자 디바이스는 결정 블록 (1702) 에서, 타이머를 평가하기 위한 동작들을 계속할 수도 있다. 수신된 학습 수정자 신호가 학습 디바이스에 적용가능한 것으로 결정하는 것 (즉, 선택적인 결정 블록 (1760) = "예") 에 응답하여, 학습 디바이스의 프로세서는 위에서 설명된 바와 같은 수신된 신호에 기초하여, 블록 (1704) 에서, 수정된 학습 상태에서 동작하도록 학습 디바이스의 학습 역량들 중 하나 이상을 수정할 수도 있다.
블록 (1762) 에서, 학습 디바이스의 프로세서는 수정된 학습 상태에 대하여 타이머를 활성화 또는 재설정할 수도 있다. 예를 들어, 학습 디바이스는 현재의 타이머 값을 최대 값으로 설정함으로써 계속적으로 카운트 다운하도록 구성된 타이머 메커니즘을 활성화할 수도 있다. 타이머가 방법 (1750) 의 이전의 반복들에 기초하여 이미 활성화되었고 만료되지 않았을 때, 학습 디바이스는 타이머가 시간 경과에 따라 카운트 다운 또는 카운트 업하도록 구성되는지 여부에 따라, 타이머의 현재의 값을 그 최대 값 또는 최소 값으로 재설정할 수도 있다. 예를 들어, 타이머가 계속적으로 카운트 다운하도록 구성되고, 활성화되고, 만료되지 않았을 때 (예컨대, 타이머 값이 제로 값에 도달하지 않았음 등), 학습 디바이스는 타이머의 현재의 값을 최대 값으로 재설정할 수도 있다. 또 다른 예로서, 타이머가 계속적으로 카운트 업하도록 구성되고, 활성화되고, 만료되지 않았을 때 (예컨대, 타이머 값이 최대 또는 천정 값에 도달하지 않았음 등), 학습 디바이스는 타이머의 현재의 값을 그 최저 값 (예컨대, 제로) 으로 재설정할 수도 있다. 학습 수정자 디바이스는 결정 블록 (1702) 에서, 타이머를 평가하기 위한 동작들을 계속할 수도 있다.
일부의 실시형태들에서, 학습 디바이스는 수신된 학습 수정자 신호의 데이터에 기초하여 데이터에 대한 파라미터들을 설정할 수도 있다. 특히, 학습 디바이스는 수신된 학습 수정자 신호들 내에 포함된 송신 빈도 데이터에 기초하여 타이머의 최대 및 최소 값들을 저장할 수도 있다. 다시 말해서, 수신된 학습 수정자 신호를 송신하였던 학습 수정자 디바이스는 다음 교육 수정자 신호를 언제 예상할 것인지를 학습 디바이스에게 교육시킬 수도 있다. 최대 타이머 값은 송신 빈도로 설정될 수도 있고, 최소 타이머 값은 제로 값일 수도 있다. 예를 들어, 제 1 학습 수정자 신호에서 표시된 송신 빈도가 어떤 수의 초 (second) 일 때, 학습 디바이스는 최대 타이머 값을 어떤 수의 초로서 설정할 수도 있어서, 학습 디바이스가 제 1 학습 수정자 신호를 수신하는 것으로부터 그 수의 초 내에서 제 2 학습 수정자 신호를 수신하지 않을 경우에 타이머가 경과될 수도 있고, 학습 디바이스는 디폴트 학습 상태로 복귀할 수도 있다.
도 18a 내지 도 18b 는 학습 수정자 디바이스로부터 신호들을 수신하는 것에 응답하여 학습 디바이스가 학습 모드를 인에이블 또는 디스에이블하기 위한 일 실시형태의 방법들 (1800, 1850) 을 예시한다. 방법들 (1800, 1850) 은 위에서 설명된 방법들 (1700, 1750) 과 유사하고, 특히, 도 18a 내지 도 18b 의 블록들 (1702 및 1751 내지 1762) 에서의 동작들은 도 17a 내지 도 17b 를 참조하여 위에서 설명된 것들과 유사할 수도 있다. 그러나, 방법들 (1800, 1850) 은 학습 디바이스에 의한 학습을 배제하거나 허용하는 동작 모드들을 활성화/비활성화하기 위한 특정 동작들을 포함할 수도 있다. 특히, 학습 디바이스는, (즉, 새로운 리플렉스들을 생성하기 위하여) 학습 디바이스가 수행할 수도 있는 다양한 트리거들 및 액션들 사이의 새로운 연관성들을 학습 디바이스가 학습하는 것을 허용할 수도 있는 학습 모드에서 동작하도록 구성될 수도 있다. 이러한 학습 모드가 활성화되거나 인에이블될 때, 학습은 즉시 수행될 수도 있거나 수행되지 않을 수도 있는 새로운 연관성들을 생성하고 저장할 수도 있다. 예를 들어, 트리거 가중치를 트리거 가중치 임계을 초과하여 상승시키기 위하여 충분한 보상 패턴들이 조우될 때까지, 학습 디바이스가 관련된 액션을 수행하지 않을 수도 있도록, 새로운 리플렉스는 트리거 가중치 임계 미만인 초기 트리거 가중치를 가질 수도 있다. 반대로, 이러한 학습 모드가 디스에이블 또는 비활성화될 때, 학습 디바이스는 새로운 연관성들을 생성할 수 없을 수도 있다 (즉, 새로운 리플렉스들이 생성되지 않고 저장되지 않을 수도 있음).
일부의 실시형태들에서, 학습 모드는 또한, 학습 디바이스가 리플렉스들의 트리거 가중치들을 조절할 수도 있는지 여부를 제어할 수도 있다. 예를 들어, 활성 또는 인에이블된 학습 모드에서 동작할 때, 학습 디바이스는 관련된 보상 패턴들을 수신하는 것에 응답하여 리플렉스의 트리거 가중치를 증가시킬 수도 있고, 및/또는 관련된 정정 패턴들을 수신하는 것에 응답하여 트리거 가중치를 감소시킬 수도 있다. 그러나, 학습 모드가 디스에이블 또는 비활성화될 때, 학습 디바이스는 보상 패턴들 또는 정정 패턴들을 수신하는 것과 관계 없이, 리플렉스의 트리거 가중치를 변화시킬 수 없을 수도 있다. 일부의 실시형태들에서, (예컨대, 인에이블되거나 디스에이블된) 학습 모드의 세팅은, 학습 디바이스가 새로운 리플렉스들을 생성할 수 있는지 여부와, 학습 디바이스가 기존의 리플렉스들의 트리거 가중치들을 조절할 수 있는지 여부의 양자를 표시할 수도 있다.
도 18a 는 근처의 학습 수정자 디바이스로부터 학습 수정자 신호들을 수신할 때에만, 학습할 수 있도록 (즉, 그 학습 모드를 인에이블) 학습 디바이스를 구성하기 위하여 수행될 수도 있다. 다시 말해서, 디폴트로, 학습 디바이스는 새로운 리플렉스들을 학습하지 않을 수도 있고 및/또는 기존의 리플렉스들의 트리거 가중치들을 조절하지 않을 수도 있지만, 이미 학습된 리플렉스들 및/또는 그 이미 확립된 트리거 가중치들을 간단하게 이용할 수도 있다. 예를 들어, 학습 수정자 디바이스가 룸 내로 운반될 때, 룸에서의 스테레오 학습 디바이스는 또한, 학습 모드를 인에이블하도록 구성될 수도 있고, 이에 따라, 스테레오 학습 디바이스가 스마트 벽 스위치 '온' 이벤트 신호를 특정 라디오 방송국으로 튜닝하는 것과 연관시키는 것을 허용할 수도 있다. 그러나, 학습 수정자 디바이스가 룸 외부로 이동될 때, 스테레오 학습 디바이스는 스마트 바닥 램프 '온' 이벤트 신호를 스테레오 상의 음량을 높이는 것과 연관시키는 것을 학습할 수 없을 수도 있다. 또 다른 예로서, 학습 수정자 디바이스가 룸 내로 운반될 때, 스테레오 학습 디바이스는 보상 신호 (예컨대, 사용자가 스테레오 상의 '보상' 버튼을 누른 것을 표시하는 신호, 등) 를 수신하는 것에 응답하여 리플렉스의 트리거 가중치를 증가시킬 수도 있다. 그러나, 학습 수정자 디바이스가 룸 외부로 이동될 때, 스테레오 학습 디바이스는 보상 신호를 수신하는 것에 응답하여 리플렉스의 트리거 가중치를 증가시키지 않을 수도 있다.
도 18a 에서, 블록들 (1702, 1751 내지 1762) 의 동작들은 도 17a 내지 도 17b 를 참조하여 위에서 설명된 바와 같은 것과 유사할 수도 있다. 타이머가 경과한 것으로 결정하는 것 (즉, 결정 블록 1752 = "예") 에 응답하여, 블록 (1802) 에서, 학습 디바이스의 프로세서는 예컨대, 학습 디바이스 상에 저장된 시스템 변수, 플래그, 또는 다른 정보를 설정함으로써 학습 모드를 디스에이블할 수도 있다. 예를 들어, 학습 디바이스는 학습 디바이스가 디폴트 학습 상태에 있음을 표시하는 플래그를 설정할 수도 있고, 이에 따라, 새로운 리플렉스들이 생성되지 않을 수도 있고 및/또는 저장된 리플렉스들의 트리거 가중치들이 조절되지 않을 수도 있다. 일부의 실시형태들에서, 학습 모드가 방법 (1800) 의 이전의 반복들에 기초하여 이미 디스에이블될 때, 학습 디바이스는 블록 (1802) 의 이 동작을 불필요한 것으로서 스킵할 수도 있다. 학습 디바이스는 블록 (1802) 에서의 동작들을 수행하는 것에 응답하여, 또는 타이머가 경과하지 않은 것으로 결정하는 것 (즉, 결정 블록 1752 = "아니오") 에 응답하여 결정 블록 (1754) 에서의 동작들을 수행할 수도 있다.
수신된 학습 수정자 신호가 학습 디바이스에 적용가능한 것으로 결정하는 것 (즉, 선택적인 결정 블록 1760 = "예") 에 응답하여, 학습 디바이스는 블록 (1804) 에서, 예컨대, 학습 디바이스 상에 저장된 시스템 변수, 플래그, 또는 다른 정보를 설정함으로써 학습 모드를 인에이블할 수도 있다. 예를 들어, 학습 디바이스는 학습 디바이스가 수정된 학습 상태에 있음을 표시하는 플래그를 설정할 수도 있고, 이에 따라, 새로운 리플렉스들이 생성될 수도 있고 및/또는 저장된 리플렉스들의 트리거 가중치들이 조절될 수도 있다. 학습 모드를 인에이블하는 것에 응답하여, 방법 (1800) 은 수정된 학습 상태에 대하여 타이머를 활성화 또는 재설정하기 위하여 블록들 (1762) 에서의 동작들을 계속할 수도 있다.
근처의 학습 수정자 디바이스로부터 학습 수정자 신호들을 수신할 때에만 학습할 수 없도록 (즉, 그 학습 모드를 디스에이블함) 학습 디바이스를 구성하기 위하여, 학습 디바이스가 방법 (1850) 을 수행할 수도 있다는 것을 제외하고는, 도 18b 에서 예시된 방법 (1850) 은 도 18a 의 방법 (1800) 과 유사할 수도 있다. 다시 말해서, 디폴트로, 학습 디바이스는 새로운 리플렉스들을 학습하고 및/또는 이미 학습된 리플렉스들의 트리거 가중치들을 변경할 수 있을 수도 있다. 학습 디바이스가 근처의 학습 수정자 디바이스로부터 학습 수정자 신호들을 수신하고 있을 때에만, 학습 디바이스가 학습하는 것으로부터 디스에이블될 수도 있다.
방법 (1850) 에서는, 타이머가 경과한 것으로 결정하는 것 (즉, 결정 블록 1752 = "예") 에 응답하여, 학습 디바이스의 프로세서는 블록 (1804) 에서 그 학습 모드를 인에이블할 수도 있고, 결정 블록 (1754) 에서의 동작들을 수행할 수도 있다. 수신된 학습 수정자 신호가 학습 디바이스에 적용가능한 것으로 결정하는 것 (즉, 선택적인 결정 블록 1760 = "예") 에 응답하여, 학습 디바이스는 블록 (1802) 에서, 학습 모드를 디스에이블할 수도 있고, 블록 (1762) 에서, 수정된 학습 상태에 대하여 타이머를 활성화 또는 재설정할 수도 있다.
도 19 는 학습 수정자 디바이스로부터 신호들을 수신하는 것에 응답하여 트리거 가중치들을 계산함에 있어서 이용된 변수 값들을 조절함으로써, 학습 디바이스가 그 학습 레이트를 변경하기 위한 일 실시형태의 방법 (1900) 을 예시한다. 방법 (1900) 은 위에서 설명된 방법들 (1700, 1750) 과 유사하고, 특히, 도 19 의 블록들 (1702 및 1751 내지 1762) 에서의 동작들은 도 17a 내지 도 17b 를 참조하여 위에서 설명된 것들과 유사할 수도 있다. 그러나, 방법 (1900) 은 리플렉스들의 트리거 가중치들에 대한 수식들 또는 계산들에서 이용된 변수들의 값들을 조절하기 위한 특정 동작들을 포함할 수도 있다. 특히, 타이머가 경과한 것으로 결정하는 것 (즉, 결정 블록 1752 = "예") 에 응답하여, 학습 디바이스의 프로세서는 블록 (1902) 에서, 다시 그 디폴트 값들로의 리플렉스들의 트리거 가중치들을 계산하기 위해 이용된 변수들의 값들을 조절할 수도 있다. 다시 말해서, 학습 디바이스가 학습 수정자 신호들을 수신하는 것에 응답하여 수정된 학습 상태에 진입하는 것으로 인해, 트리거 가중치들 (예컨대, 이득 값들 등) 을 계산하기 위해 이용된 임의의 정보 (예컨대, 변수들, 구성들, 세팅들 등) 가 조절되었을 경우, 학습 디바이스는 조절된 정보를 그 디폴트 조건 (예컨대, 컨텐츠, 값들, 세팅 등) 으로 복귀시킬 수도 있다. 예를 들어, 학습 디바이스는 학습 레이트들을 조절하기 위하여 수식들에 추가된 승수들을 무효화하거나, 제거하거나, 삭감하거나, 또는 이와 다르게 재설정할 수도 있다. 다양한 실시형태들에서, 디폴트 값들은 위에서 설명된 바와 같은 수식들 내에서 이용될 수도 있는 디폴트 또는 원래의 계수들, 변수 값들, 및 다른 데이터일 수도 있다. 학습 디바이스는 블록 (1902) 에서의 동작들을 수행하는 것에 응답하여, 또는 타이머가 경과하지 않은 것으로 결정하는 것 (즉, 결정 블록 1752 = "아니오") 에 응답하여 결정 블록 (1754) 에서의 동작들을 수행할 수도 있다.
수신된 학습 수정자 신호가 학습 디바이스에 적용가능한 것으로 결정하는 것 (즉, 선택적인 결정 블록 (1760) = "예") 에 응답하여, 학습 디바이스는 수정된 학습 상태에 진입할 수도 있다. 이에 따라, 블록 (1904) 에서, 학습 디바이스의 프로세서는 수신된 신호에 기초하여 리플렉스들의 트리거 트리거 가중치들을 계산하기 위해 이용된 변수들의 값들을 조절할 수도 있다. 예를 들어, 학습 레이트 수정자 값 (예컨대, 포지티브 승수, 네거티브 승수, 가산수 (adder) 등) 중 하나를 표시하는 데이터에 기초하여, 학습 디바이스는 변수들을, 트리거 가중치들을 계산하기 위한 수식들에 추가할 수도 있고, 및/또는 학습 디바이스로 하여금 트리거 가중치들을 상이한 방법들로 계산하게 하기 위하여 수식의 사전에 존재하는 변수들의 값들을 변경할 수도 있다. 학습 디바이스가 다양한 리플렉스들에 대한 트리거 가중치들을 계산하는 방법에 대한 이러한 변경들은 다양한 리플렉스들의 학습 레이트를 변화시킬 수도 있다. 예를 들어, 어떤 값들을 증가시키는 것은 학습 디바이스가 트리거와 연관된 액션을 수행하는 것을 학습하는 속력을 증가시킬 수도 있다. 또 다른 예로서, 다른 값들을 감소시키는 것은 학습 디바이스가 트리거와 연관된 액션을 수행하는 것을 학습하는 속력을 느리게 할 수도 있다.
일부의 실시형태들에서, 수신된 학습 수정자 신호에 기초하여, 학습 디바이스는 어떤 타입들의 계산들만이 조절될 수도 있도록 조절들을 행할 수도 있다. 예를 들어, 수신된 학습 수정자 신호는 보상 신호들 및 정정 신호들만이 상이하게 채용되어야 함을 표시하는 학습 레이트 수정자 타입을 포함할 수도 있어서, 학습 디바이스로 하여금 트리거 가중치들을 보상하거나 정정하기 위한 계산들을 조절하게 할 수도 있다. 변수들의 값들을 조절하는 것에 응답하여, 방법 (1900) 은 수정된 학습 상태에 대하여 타이머를 활성화 또는 재설정하기 위하여 블록들 (1762) 에서의 동작들을 계속할 수도 있다.
상기한 방법 설명들 및 프로세스 흐름도들은 예시적인 예들에 불과한 것으로서 제공되고, 다양한 양태들의 단계들이 제시된 순서로 수행되어야 하는 것을 요구하거나 암시하도록 의도된 것이 아니다. 당해 분야의 숙련자에 의해 인식되는 바와 같이, 상기한 양태들에서의 단계들의 순서는 임의의 순서로 수행될 수도 있다. "그 후", "다음으로", "다음" 등과 같은 단어들은 단계들의 순서를 제한하도록 의도된 것이 아니고; 이 단어들은 방법들의 설명을 통해 독자를 안내하기 위하여 간단하게 이용된다. 추가로, 예를 들어, 관사들 "a", "an", 또는 "the" 를 이용하는 단수인 청구항 구성요소들에 대한 임의의 참조는 구성요소를 단수로 제한하는 것으로 해석되지 않아야 한다.
본원에서 개시된 양태들과 관련하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로서 구현될 수도 있다. 하드웨어 및 소프트웨어의 이 교환가능성을 명확하게 예시하기 위하여, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 일반적으로 그 기능성의 측면에서 위에서 설명되었다. 이러한 기능성이 하드웨어 또는 소프트웨어로 구현되는지 여부는 특정 애플리케이션과, 전체 시스템에 부과된 설계 제약들에 의존된다. 숙련된 기술자들은 각각의 특정 애플리케이션을 위한 다양한 방법들로 설명된 기능성을 구현할 수도 있지만, 이러한 구현 판정들은 본 발명의 범위로부터의 이탈을 야기시키는 것으로 해석되지 않아야 한다.
본원에서 개시된 양태들과 관련하여 설명된 다양한 예시적인 로직들, 논리적 블록들, 모듈들, 및 회로들을 구현하기 위하여 이용된, 스마트 박스 (103) 와 같은 하드웨어는 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (application specific integrated circuit; ASIC), 필드 프로그래밍가능한 게이트 어레이 (field programmable gate array; FPGA) 또는 다른 프로그래밍가능한 로직 디바이스, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트들, 또는 본원에서 설명된 기능들을 수행하도록 설계된 그 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 멀티프로세서일 수도 있지만, 대안적으로, 프로세서는 임의의 기존의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 및 멀티프로세서, 복수의 멀티프로세서들, DSP 코어와 함께 하나 이상의 멀티프로세서들, 또는 임의의 다른 이러한 구성의 조합으로서 구현될 수도 있다. 대안적으로, 일부의 단계들 또는 방법들은 주어진 기능에 특정한 회로부에 의해 수행될 수도 있다.
하나 이상의 예시적인 양태들에서는, 설명된 기능들이 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현될 경우, 기능들은 비일시적 컴퓨터-판독가능한 저장 매체, 비일시적 컴퓨터 판독가능한 매체 또는 비일시적 프로세서 판독가능 저장 매체 상에서 하나 이상의 명령들 또는 코드로서 저장될 수도 있다. 본원에서 개시된 방법 또는 알고리즘의 단계들은 비일시적 컴퓨터-판독가능한 또는 프로세서 판독가능 저장 매체 상에서 상주할 수도 있는 프로세서 실행가능 소프트웨어 모듈에서 구체화될 수도 있다. 비일시적 컴퓨터-판독가능한 또는 프로세서 판독가능 저장 매체들은 컴퓨터 또는 프로세서에 의해 액세스될 수도 있는 임의의 저장 매체들일 수도 있다. 제한이 아닌 예로서, 이러한 비일시적 컴퓨터-판독가능한 또는 프로세서 판독가능 매체들은 RAM, ROM, EEPROM, FLASH 메모리, CD-ROM 또는 다른 광학 디스크 저장, 자기 디스크 저장, 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 희망하는 프로그램 코드를 저장하기 위해 이용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 본원에서 이용된 바와 같은 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (compact disc; CD), 레이저 디스크 (laser disc), 광학 디스크 (optical disc), 디지털 다기능 디스크 (digital versatile disc; DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크 (blu-ray disc) 를 포함하고, 여기서, 디스크 (disk) 들은 통상 데이터를 자기적으로 재생하는 반면, 디스크 (disc) 들은 데이터를 레이저들로 광학적으로 재생한다. 상기의 조합들은 또한, 비일시적 컴퓨터-판독가능한 그리고 프로세서 판독가능 매체들의 범위 내에 포함된다. 추가적으로, 방법 또는 알고리즘의 동작들은, 컴퓨터 프로그램 제품 내로 포함될 수도 있는 비일시적 프로세서 판독가능 매체 및/또는 컴퓨터-판독가능한 매체 상에 코드들 및/또는 명령들 중 하나 또는 임의의 조합 또는 세트로서 상주할 수도 있다.
개시된 실시형태들의 선행하는 설명은 당해 분야의 당업자가 본 발명을 제조하거나 이용하는 것을 가능하게 하도록 제공된다. 이 실시형태들에 대한 다양한 수정들은 당해 분야의 당업자들에게 용이하게 명백할 것이고, 본원에서 정의된 일반적인 원리들은 발명의 사상 또는 범위로부터 이탈하지 않으면서 다른 실시형태들에 적용될 수도 있다. 따라서, 본 발명은 본원에서 도시된 실시형태들에 제한되도록 의도된 것이 아니라, 본원에서 다음의 청구항들 및 개시된 원리들 및 신규한 특징들과 일관되는 가장 넓은 범위를 따르도록 하기 위한 것이다.

Claims (30)

  1. 학습 디바이스들의 비집중화된 시스템 내에서 학습 역량들을 수정하기 위한 방법으로서,
    학습 디바이스에서, 근처의 디바이스로부터 신호를 수신하는 단계;
    상기 학습 디바이스에서, 수신된 상기 신호 내의 데이터에 기초하여 상기 수신된 신호가 학습 수정자 신호 (learning modifier signal) 인지 여부를 결정하는 단계; 및
    상기 수신된 신호가 상기 학습 수정자 신호인 것으로 결정하는 것에 응답하여 상기 학습 디바이스의 하나 이상의 학습 역량들을 수정하는 단계를 포함하는, 학습 디바이스들의 비집중화된 시스템 내에서 학습 역량들을 수정하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 학습 디바이스에서, 후속의 학습 수정자 신호들이 수신되는지 여부를 결정하는 단계; 및
    후속의 학습 수정자 신호들이 수신되지 않는 것으로 결정하는 것에 응답하여, 상기 학습 디바이스의 수정된 상기 하나 이상의 학습 역량들을 재설정하는 단계를 더 포함하는, 학습 디바이스들의 비집중화된 시스템 내에서 학습 역량들을 수정하기 위한 방법.
  3. 제 2 항에 있어서,
    상기 학습 디바이스의 상기 하나 이상의 학습 역량들을 수정하는 단계는 상기 학습 디바이스의 학습 모드를 인에이블하는 단계를 포함하며;
    상기 학습 디바이스의 상기 수정된 하나 이상의 학습 역량들을 재설정하는 단계는 상기 학습 디바이스의 상기 학습 모드를 디스에이블하는 단계를 포함하는, 학습 디바이스들의 비집중화된 시스템 내에서 학습 역량들을 수정하기 위한 방법.
  4. 제 2 항에 있어서,
    상기 학습 디바이스의 상기 하나 이상의 학습 역량들을 수정하는 단계는 상기 학습 디바이스의 학습 모드를 디스에이블하는 단계를 포함하며;
    상기 학습 디바이스의 상기 수정된 하나 이상의 학습 역량들을 재설정하는 단계는 상기 학습 디바이스의 상기 학습 모드를 인에이블하는 단계를 포함하는, 학습 디바이스들의 비집중화된 시스템 내에서 학습 역량들을 수정하기 위한 방법.
  5. 제 2 항에 있어서,
    상기 학습 디바이스의 상기 하나 이상의 학습 역량들을 수정하는 단계는 상기 학습 수정자 신호에 기초하여 리플렉스들의 트리거 가중치들을 계산하기 위해 이용된 변수들의 값들을 조절하는 단계를 포함하며;
    상기 학습 디바이스의 상기 수정된 하나 이상의 학습 역량들을 재설정하는 단계는 상기 리플렉스들의 상기 트리거 가중치들을 디폴트 값들로 계산하기 위해 이용된 상기 변수들의 값들을 조절하는 단계를 포함하는, 학습 디바이스들의 비집중화된 시스템 내에서 학습 역량들을 수정하기 위한 방법.
  6. 제 2 항에 있어서,
    상기 학습 디바이스에서 타이머를 초기화하는 단계; 및
    상기 수신된 신호가 상기 학습 수정자 신호인 것으로 결정하는 것 및 상기 후속의 학습 수정자 신호들이 수신되는 것으로 결정하는 것 중 하나에 응답하여, 상기 타이머를 활성화 또는 재설정하는 단계를 더 포함하고,
    상기 학습 디바이스에서, 후속의 학습 수정자 신호들이 수신되는지 여부를 결정하는 단계는, 상기 학습 디바이스에서, 상기 타이머가 만료되기 전에 후속의 학습 수정자 신호들이 수신되는지 여부를 결정하는 단계를 포함하는, 학습 디바이스들의 비집중화된 시스템 내에서 학습 역량들을 수정하기 위한 방법.
  7. 제 6 항에 있어서,
    상기 타이머는 상기 학습 수정자 신호로부터의 데이터에 기초하여 설정되는, 학습 디바이스들의 비집중화된 시스템 내에서 학습 역량들을 수정하기 위한 방법.
  8. 제 1 항에 있어서,
    상기 학습 수정자 신호는, 상기 학습 디바이스가 학습의 레이트를 증가 또는 감소시켜야 하는지 여부를 표시하는 학습 레이트 수정자 값; 상기 학습 수정자 신호에 의해 영향받는 학습 디바이스의 타입을 표시하는 디바이스 타입; 상기 학습 디바이스가 학습 모드를 인에이블 또는 디스에이블해야 하는지 여부를 표시하는 학습 모드 활성 세팅; 학습 수정자 신호들에 의해 영향받는 계산들의 특정 타입들을 표시하는 학습 레이트 수정자 타입; 및 상기 근처의 디바이스가 얼마나 자주 상기 학습 수정자 신호들을 전송할 것인지를 표시하는 송신 빈도 중 하나 이상을 포함하는, 학습 디바이스들의 비집중화된 시스템 내에서 학습 역량들을 수정하기 위한 방법.
  9. 컴퓨팅 디바이스로서,
    학습 디바이스들의 비집중화된 시스템 내에서 근처의 디바이스로부터 신호를 수신하기 위한 수단;
    수신된 상기 신호 내의 데이터에 기초하여 상기 수신된 신호가 학습 수정자 신호인지 여부를 결정하기 위한 수단; 및
    상기 수신된 신호가 상기 학습 수정자 신호인 것으로 결정하는 것에 응답하여 상기 컴퓨팅 디바이스의 하나 이상의 학습 역량들을 수정하기 위한 수단을 포함하는, 컴퓨팅 디바이스.
  10. 제 9 항에 있어서,
    후속의 학습 수정자 신호들이 수신되는지 여부를 결정하기 위한 수단; 및
    상기 후속의 학습 수정자 신호들이 수신되지 않는 것으로 결정하는 것에 응답하여, 상기 컴퓨팅 디바이스의 수정된 상기 하나 이상의 학습 역량들을 재설정하기 위한 수단을 더 포함하는, 컴퓨팅 디바이스.
  11. 제 10 항에 있어서,
    상기 컴퓨팅 디바이스의 상기 하나 이상의 학습 역량들을 수정하기 위한 수단은 상기 컴퓨팅 디바이스의 학습 모드를 인에이블하는 것을 포함하며;
    상기 컴퓨팅 디바이스의 상기 수정된 하나 이상의 학습 역량들을 재설정하기 위한 수단은 상기 컴퓨팅 디바이스의 상기 학습 모드를 디스에이블하는 것을 포함하는, 컴퓨팅 디바이스.
  12. 제 10 항에 있어서,
    상기 컴퓨팅 디바이스의 상기 하나 이상의 학습 역량들을 수정하기 위한 수단은 상기 컴퓨팅 디바이스의 학습 모드를 디스에이블하는 것을 포함하며;
    상기 컴퓨팅 디바이스의 상기 수정된 하나 이상의 학습 역량들을 재설정하기 위한 수단은 상기 컴퓨팅 디바이스의 상기 학습 모드를 인에이블하는 것을 포함하는, 컴퓨팅 디바이스.
  13. 제 10 항에 있어서,
    상기 컴퓨팅 디바이스의 상기 하나 이상의 학습 역량들을 수정하기 위한 수단은 상기 학습 수정자 신호에 기초하여 리플렉스들의 트리거 가중치들을 계산하기 위해 이용된 변수들의 값들을 조절하는 것을 포함하며;
    상기 컴퓨팅 디바이스의 상기 수정된 하나 이상의 학습 역량들을 재설정하기 위한 수단은 상기 리플렉스들의 상기 트리거 가중치들을 디폴트 값들로 계산하기 위해 이용된 상기 변수들의 값들을 조절하는 것을 포함하는, 컴퓨팅 디바이스.
  14. 제 10 항에 있어서,
    타이머를 초기화하기 위한 수단; 및
    상기 수신된 신호가 상기 학습 수정자 신호인 것으로 결정하는 것 및 후속의 학습 수정자 신호들이 수신되는 것으로 결정하는 것 중 하나에 응답하여, 상기 타이머를 활성화 또는 재설정하기 위한 수단을 더 포함하고,
    후속의 학습 수정자 신호들이 수신되는지 여부를 결정하기 위한 수단은 상기 타이머가 만료되기 전에 후속의 학습 수정자 신호들이 수신되는지 여부를 결정하기 위한 수단을 포함하는, 컴퓨팅 디바이스.
  15. 제 14 항에 있어서,
    상기 타이머는 상기 학습 수정자 신호로부터의 데이터에 기초하여 설정되는, 컴퓨팅 디바이스.
  16. 제 9 항에 있어서,
    상기 학습 수정자 신호는, 상기 컴퓨팅 디바이스가 학습의 레이트를 증가 또는 감소시켜야 하는지 여부를 표시하는 학습 레이트 수정자 값; 상기 학습 수정자 신호에 의해 영향받는 학습 디바이스의 타입을 표시하는 디바이스 타입; 상기 컴퓨팅 디바이스가 학습 모드를 인에이블 또는 디스에이블해야 하는지 여부를 표시하는 학습 모드 활성 세팅; 학습 수정자 신호들에 의해 영향받는 계산들의 특정 타입들을 표시하는 학습 레이트 수정자 타입; 및 상기 근처의 디바이스가 얼마나 자주 상기 학습 수정자 신호들을 전송할 것인지를 표시하는 송신 빈도 중 하나 이상을 포함하는, 컴퓨팅 디바이스.
  17. 컴퓨팅 디바이스로서,
    동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성된 프로세서를 포함하고, 상기 동작들은,
    학습 디바이스들의 비집중화된 시스템 내에서 근처의 디바이스로부터 신호를 수신하는 동작;
    수신된 상기 신호 내의 데이터에 기초하여 상기 수신된 신호가 학습 수정자 신호인지 여부를 결정하는 동작; 및
    상기 수신된 신호가 상기 학습 수정자 신호인 것으로 결정하는 것에 응답하여 상기 컴퓨팅 디바이스의 하나 이상의 학습 역량들을 수정하는 동작을 포함하는, 컴퓨팅 디바이스.
  18. 제 17 항에 있어서,
    상기 프로세서는,
    후속의 학습 수정자 신호들이 수신되는지 여부를 결정하는 동작; 및
    후속의 학습 수정자 신호들이 수신되지 않는 것으로 결정하는 것에 응답하여, 상기 컴퓨팅 디바이스의 수정된 상기 하나 이상의 학습 역량들을 재설정하는 동작을 더 포함하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
  19. 제 18 항에 있어서,
    상기 프로세서는,
    상기 컴퓨팅 디바이스의 상기 하나 이상의 학습 역량들을 수정하는 동작이 상기 컴퓨팅 디바이스의 학습 모드를 인에이블하는 동작을 포함하며;
    상기 컴퓨팅 디바이스의 상기 수정된 하나 이상의 학습 역량들을 재설정하는 동작이 상기 컴퓨팅 디바이스의 상기 학습 모드를 디스에이블하는 동작을 포함하도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
  20. 제 18 항에 있어서,
    상기 프로세서는,
    상기 컴퓨팅 디바이스의 상기 하나 이상의 학습 역량들을 수정하는 동작이 상기 컴퓨팅 디바이스의 학습 모드를 디스에이블하는 동작을 포함하며;
    상기 컴퓨팅 디바이스의 상기 수정된 하나 이상의 학습 역량들을 재설정하는 동작이 상기 컴퓨팅 디바이스의 상기 학습 모드를 인에이블하는 동작을 포함하도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
  21. 제 18 항에 있어서,
    상기 프로세서는,
    상기 컴퓨팅 디바이스의 상기 하나 이상의 학습 역량들을 수정하는 동작이 상기 학습 수정자 신호에 기초하여 리플렉스들의 트리거 가중치들을 계산하기 위해 이용된 변수들의 값들을 조절하는 동작을 포함하며;
    상기 컴퓨팅 디바이스의 상기 수정된 하나 이상의 학습 역량들을 재설정하는 동작이 상기 리플렉스들의 상기 트리거 가중치들을 디폴트 값들로 계산하기 위해 이용된 상기 변수들의 값들을 조절하는 동작을 포함하도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
  22. 제 18 항에 있어서,
    타이머를 더 포함하고,
    상기 프로세서는,
    상기 타이머를 초기화하는 동작; 및
    상기 수신된 신호가 상기 학습 수정자 신호인 것으로 결정하는 것 및 후속의 학습 수정자 신호들이 수신되는 것으로 결정하는 것 중 하나에 응답하여, 상기 타이머를 활성화 또는 재설정하는 동작을 더 포함하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되고,
    후속의 학습 수정자 신호들이 수신되는지 여부를 결정하는 것은, 상기 타이머가 만료되기 전에 후속의 학습 수정자 신호들이 수신되는지 여부를 결정하는 것을 포함하는, 컴퓨팅 디바이스.
  23. 제 22 항에 있어서,
    상기 타이머는 상기 학습 수정자 신호로부터의 데이터에 기초하여 설정되는, 컴퓨팅 디바이스.
  24. 제 17 항에 있어서,
    상기 학습 수정자 신호는, 상기 컴퓨팅 디바이스가 학습의 레이트를 증가 또는 감소시켜야 하는지 여부를 표시하는 학습 레이트 수정자 값; 상기 학습 수정자 신호에 의해 영향받는 학습 디바이스의 타입을 표시하는 디바이스 타입; 상기 컴퓨팅 디바이스가 학습 모드를 인에이블 또는 디스에이블해야 하는지 여부를 표시하는 학습 모드 활성 세팅; 학습 수정자 신호들에 의해 영향받는 계산들의 특정 타입들을 표시하는 학습 레이트 수정자 타입; 및 상기 근처의 디바이스가 얼마나 자주 상기 학습 수정자 신호들을 전송할 것인지를 표시하는 송신 빈도 중 하나 이상을 포함하는, 컴퓨팅 디바이스.
  25. 프로세서 실행가능 명령들을 저장한 비일시적 프로세서 판독가능 저장 매체로서,
    상기 프로세서 실행가능 명령들은, 컴퓨팅 디바이스의 프로세서로 하여금,
    학습 디바이스들의 비집중화된 시스템 내에서 근처의 디바이스로부터 신호를 수신하는 동작;
    수신된 상기 신호 내의 데이터에 기초하여 상기 수신된 신호가 학습 수정자 신호인지 여부를 결정하는 동작; 및
    상기 수신된 신호가 상기 학습 수정자 신호인 것으로 결정하는 것에 응답하여 상기 컴퓨팅 디바이스의 하나 이상의 학습 역량들을 수정하는 동작을 포함하는 동작들을 수행하게 하도록 구성되는, 비일시적 프로세서 판독가능 저장 매체.
  26. 제 25 항에 있어서,
    저장된 상기 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스의 상기 프로세서로 하여금,
    후속의 학습 수정자 신호들이 수신되는지 여부를 결정하는 동작; 및
    상기 후속의 학습 수정자 신호들이 수신되지 않는 것으로 결정하는 것에 응답하여, 상기 컴퓨팅 디바이스의 수정된 상기 하나 이상의 학습 역량들을 재설정하는 동작을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시적 프로세서 판독가능 저장 매체.
  27. 제 26 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스의 상기 프로세서로 하여금,
    상기 컴퓨팅 디바이스의 상기 하나 이상의 학습 역량들을 수정하는 동작이 상기 컴퓨팅 디바이스의 학습 모드를 인에이블하는 동작을 포함하며;
    상기 컴퓨팅 디바이스의 상기 수정된 하나 이상의 학습 역량들을 재설정하는 동작이 상기 컴퓨팅 디바이스의 상기 학습 모드를 디스에이블하는 동작을 포함하도록 하는 동작들을 수행하게 하도록 구성되는, 비일시적 프로세서 판독가능 저장 매체.
  28. 제 26 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스의 상기 프로세서로 하여금,
    상기 컴퓨팅 디바이스의 상기 하나 이상의 학습 역량들을 수정하는 동작이 상기 컴퓨팅 디바이스의 학습 모드를 디스에이블하는 동작을 포함하며;
    상기 컴퓨팅 디바이스의 상기 수정된 하나 이상의 학습 역량들을 재설정하는 동작이 상기 컴퓨팅 디바이스의 상기 학습 모드를 인에이블하는 동작을 포함하도록 하는 동작들을 수행하게 하도록 구성되는, 비일시적 프로세서 판독가능 저장 매체.
  29. 제 26 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스의 상기 프로세서로 하여금,
    상기 컴퓨팅 디바이스의 상기 하나 이상의 학습 역량들을 수정하는 동작이 상기 학습 수정자 신호에 기초하여 리플렉스들의 트리거 가중치들을 계산하기 위해 이용된 변수들의 값들을 조절하는 동작을 포함하며;
    상기 컴퓨팅 디바이스의 상기 학습 역량들 중의 상기 수정된 하나 이상을 재설정하는 동작이 상기 리플렉스들의 상기 트리거 가중치들을 디폴트 값들로 계산하기 위해 이용된 상기 변수들의 값들을 조절하는 동작을 포함하도록 하는 동작들을 수행하게 하도록 구성되는, 비일시적 프로세서 판독가능 저장 매체.
  30. 제 26 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스의 상기 프로세서로 하여금,
    상기 타이머를 초기화하는 동작; 및
    상기 수신된 신호가 상기 학습 수정자 신호인 것으로 결정하는 것 및 후속의 학습 수정자 신호들이 수신되는 것으로 결정하는 것 중 하나에 응답하여, 상기 타이머를 활성화 또는 재설정하는 동작을 더 포함하는 동작들을 수행하게 하도록 구성되고,
    후속의 학습 수정자 신호들이 수신되는지 여부를 결정하는 것은, 상기 타이머가 만료되기 전에 후속의 학습 수정자 신호들이 수신되는지 여부를 결정하는 것을 포함하는, 비일시적 프로세서 판독가능 저장 매체.
KR1020157036201A 2013-05-24 2014-05-24 학습 디바이스들의 학습 역량들의 수정 KR20160016875A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361827141P 2013-05-24 2013-05-24
US61/827,141 2013-05-24
US14/286,515 2014-05-23
US14/286,515 US20140351182A1 (en) 2013-05-24 2014-05-23 Modifying Learning Capabilities of Learning Devices
PCT/US2014/039469 WO2014190340A2 (en) 2013-05-24 2014-05-24 Modifying learning capabilities of learning devices

Publications (1)

Publication Number Publication Date
KR20160016875A true KR20160016875A (ko) 2016-02-15

Family

ID=51134267

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157036201A KR20160016875A (ko) 2013-05-24 2014-05-24 학습 디바이스들의 학습 역량들의 수정

Country Status (6)

Country Link
US (1) US20140351182A1 (ko)
EP (1) EP3005252A2 (ko)
JP (1) JP2016524226A (ko)
KR (1) KR20160016875A (ko)
CN (1) CN105359170A (ko)
WO (1) WO2014190340A2 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9747554B2 (en) 2013-05-24 2017-08-29 Qualcomm Incorporated Learning device with continuous configuration capability
US9679491B2 (en) 2013-05-24 2017-06-13 Qualcomm Incorporated Signaling device for teaching learning devices
US9509763B2 (en) 2013-05-24 2016-11-29 Qualcomm Incorporated Delayed actions for a decentralized system of learning devices
US9582080B1 (en) 2014-06-25 2017-02-28 Rithmio, Inc. Methods and apparatus for learning sensor data patterns for gesture-based input
US9898175B2 (en) * 2014-08-05 2018-02-20 Fibar Group S.A. Home network manager for home automation
US20180018565A1 (en) * 2016-07-14 2018-01-18 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device, display system, and electronic device
CN107277055B (zh) * 2017-08-03 2020-01-03 杭州安恒信息技术股份有限公司 一种基于离线缓存的网站防护方法
US11580452B2 (en) * 2017-12-01 2023-02-14 Telefonaktiebolaget Lm Ericsson (Publ) Selecting learning model
US10778147B2 (en) * 2018-12-04 2020-09-15 Nanya Technology Corporation Drive level auto-tuning system, drive level auto-tuning method and non-transitory computer readable medium
KR20200100367A (ko) * 2019-02-18 2020-08-26 삼성전자주식회사 루틴을 제공하기 위한 방법 및 이를 지원하는 전자 장치
WO2020217762A1 (ja) * 2019-04-25 2020-10-29 ソニー株式会社 通信装置、通信方法、及び通信プログラム
CN112270403B (zh) * 2020-11-10 2022-03-29 北京百度网讯科技有限公司 构建深度学习的网络模型的方法、装置、设备和存储介质

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5398302A (en) * 1990-02-07 1995-03-14 Thrift; Philip Method and apparatus for adaptive learning in neural networks
US6834208B2 (en) * 1999-12-30 2004-12-21 Microsoft Corporation Method and apparatus for providing distributed control of a home automation and control system
JP2003340760A (ja) * 2002-05-20 2003-12-02 Sony Corp ロボット装置およびロボット制御方法、記録媒体、並びにプログラム
US7734749B2 (en) * 2002-10-16 2010-06-08 Xerox Corporation Device model agent
CN100592838C (zh) * 2002-12-19 2010-02-24 皇家飞利浦电子股份有限公司 配置无线控制的照明系统的方法
US7113773B2 (en) * 2003-05-16 2006-09-26 Qualcomm Incorporated Reliable reception of broadcast/multicast content
US7039397B2 (en) * 2003-07-30 2006-05-02 Lear Corporation User-assisted programmable appliance control
JP5214968B2 (ja) * 2004-08-24 2013-06-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ オブジェクト発見方法及びシステム、装置制御方法及びシステム及びインターフェース、ポインティング装置
US8156500B2 (en) * 2005-07-01 2012-04-10 Microsoft Corporation Real-time self tuning of planned actions in a distributed environment
US8417481B2 (en) * 2008-09-11 2013-04-09 Diane J. Cook Systems and methods for adaptive smart environment automation
JP5330138B2 (ja) * 2008-11-04 2013-10-30 本田技研工業株式会社 強化学習システム
US8249117B2 (en) * 2009-12-21 2012-08-21 Qualcomm Incorporated Dynamic adjustment of reordering release timer
CN102378394B (zh) * 2010-08-12 2015-04-15 华为技术有限公司 一种网络连接方法和系统
CN202003556U (zh) * 2010-10-13 2011-10-05 蒋水秀 基于智能家居控制系统项目的dsp应用技术教学设备
US9251463B2 (en) * 2011-06-30 2016-02-02 Wsu Research Foundation Knowledge transfer in smart environments
US8622314B2 (en) * 2011-10-21 2014-01-07 Nest Labs, Inc. Smart-home device that self-qualifies for away-state functionality
CN106444471B (zh) * 2011-10-21 2019-04-16 谷歌有限责任公司 智能控制器和用于自动学习控制时间表的方法
US9247549B2 (en) * 2012-01-25 2016-01-26 Electronics And Telecommunications Research Institute Apparatus and method for SHF/EHF band wireless transmission on multi-level cell configuration
US9143402B2 (en) * 2012-02-24 2015-09-22 Qualcomm Incorporated Sensor based configuration and control of network devices
US9357385B2 (en) * 2012-08-20 2016-05-31 Qualcomm Incorporated Configuration of a new enrollee device for use in a communication network
US8620841B1 (en) * 2012-08-31 2013-12-31 Nest Labs, Inc. Dynamic distributed-sensor thermostat network for forecasting external events
US9747554B2 (en) * 2013-05-24 2017-08-29 Qualcomm Incorporated Learning device with continuous configuration capability
US9679491B2 (en) * 2013-05-24 2017-06-13 Qualcomm Incorporated Signaling device for teaching learning devices
US9509763B2 (en) * 2013-05-24 2016-11-29 Qualcomm Incorporated Delayed actions for a decentralized system of learning devices
US20140351181A1 (en) * 2013-05-24 2014-11-27 Qualcomm Incorporated Requesting proximate resources by learning devices
US9438440B2 (en) * 2013-07-29 2016-09-06 Qualcomm Incorporated Proximity detection of internet of things (IoT) devices using sound chirps
US9313320B2 (en) * 2014-02-19 2016-04-12 Qualcomm Incorporated Automatic switching of modes and mode control capabilities on a wireless communication device
US9313863B2 (en) * 2014-06-02 2016-04-12 Qualcomm Incorporated Methods, devices, and systems for controlling smart lighting objects to establish a lighting condition
US20160121487A1 (en) * 2014-11-03 2016-05-05 Qualcomm Incorporated Communicating Configurable Instruction Sets to Robots for Controlling Robot Behavior
US9377525B1 (en) * 2014-12-12 2016-06-28 Qualcomm Incorporated Methods and systems for assisting positioning determination of a mobile device
US9501061B2 (en) * 2015-02-24 2016-11-22 Qualcomm Incorporated Near-flight testing maneuvers for autonomous aircraft
US10250403B2 (en) * 2015-11-23 2019-04-02 International Business Machines Corporation Dynamic control of smart home using wearable device
US9473514B1 (en) * 2016-02-04 2016-10-18 International Business Machines Corporation Efficient sensor data delivery

Also Published As

Publication number Publication date
US20140351182A1 (en) 2014-11-27
CN105359170A (zh) 2016-02-24
JP2016524226A (ja) 2016-08-12
WO2014190340A2 (en) 2014-11-27
EP3005252A2 (en) 2016-04-13
WO2014190340A3 (en) 2015-04-23

Similar Documents

Publication Publication Date Title
KR20160016875A (ko) 학습 디바이스들의 학습 역량들의 수정
US9509763B2 (en) Delayed actions for a decentralized system of learning devices
US9747554B2 (en) Learning device with continuous configuration capability
US9679491B2 (en) Signaling device for teaching learning devices
US10026297B2 (en) Remote alarm hushing with acoustic presence verification
US9635536B2 (en) Remote alarm hushing
US20170078965A1 (en) Low power redundant transmission network
US9059669B2 (en) Sound control for network-connected devices
TW201816423A (zh) 用於自動檢測和啟動行走的系統和方法
US20210306704A1 (en) Methods, apparatus, and machine-readable storage media to monitor a media presentation
US20120173705A1 (en) System and method for consolidated monitoring and managing of network enabled devices
US11177975B2 (en) Movable smart device for appliances
JP2016010051A (ja) 情報設定装置及びそれを用いた情報収集システム
CN117008865A (zh) 播放设置方法及装置、存储介质及电子装置
JP2009506628A (ja) コンテンツ源の電源状態を推定するシステムおよび方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid