KR20190087635A - 자동화된 의사 결정을 위한 방법 및 장치 - Google Patents

자동화된 의사 결정을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20190087635A
KR20190087635A KR1020197020085A KR20197020085A KR20190087635A KR 20190087635 A KR20190087635 A KR 20190087635A KR 1020197020085 A KR1020197020085 A KR 1020197020085A KR 20197020085 A KR20197020085 A KR 20197020085A KR 20190087635 A KR20190087635 A KR 20190087635A
Authority
KR
South Korea
Prior art keywords
data structure
states
decision
machine learning
data
Prior art date
Application number
KR1020197020085A
Other languages
English (en)
Other versions
KR102621640B1 (ko
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 KR20190087635A publication Critical patent/KR20190087635A/ko
Application granted granted Critical
Publication of KR102621640B1 publication Critical patent/KR102621640B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/045Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Manipulator (AREA)
  • Computer And Data Communications (AREA)
  • Selective Calling Equipment (AREA)

Abstract

자동화된 의사 결정을 위한 방법 및 장치가 개시된다.
제 1 전자 장치를 위한 방법은 머신 러닝 데이터 구조를 사용하여 의사 결정 데이터 구조를 생성하는 단계; 제 2 전자 장치에 상기 의사 결정 데이터 구조를 송신하는 단계; 상기 의사 결정 데이터 구조로부터 선택되는 동작을 수행한 결과에 관한 결과 데이터를 상기 전자 장치로부터 수신하는 단계; 및 상기 결과 데이터를 이용하여 상기 머신 러닝 데이터 구조를 업데이트하는 단계를 포함한다.

Description

자동화된 의사 결정을 위한 방법 및 장치
본 발명은 인공 지능 기술에 관한 것이며, 보다 구체적으로는 자동화된 의사 결정(decision-making)을 위한 방법 및 장치에 관한 것이다.
인공 지능(artificial intelligence, AI) 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이다. 종래의 규칙-기반 스마트 시스템과 달리, AI는 학습하고 판단하며 스마트해지는 시스템이다. 인공 지능을 사용하여 인식률 및 사용자 기호에 대한 이해가 보다 정확하게 이루어짐에 따라, 기존의 규칙-기반 스마트 시스템들은 점차적으로 심층-기반 인공 지능 시스템들로 대체되고 있다.
인공 지능 기술은 머신 러닝(딥 러닝) 및 머신 러닝을 사용하는 요소 기술(element technology)로 구성된다.
머신 러닝(machine learning, ML)은 입력 데이터의 특징을 스스로 분류/학습하는 알고리즘 기술이다. 요소 기술은 딥 러닝과 같은 머신 러닝 알고리즘들을 사용하여 인식 및 판단과 같은 인간의 뇌 기능들을 시뮬레이션하는 기술로서, 언어 이해, 시각적 이해, 추론/예측, 지식 표현 및 동작 제어와 같은 기술 분야로 구성된다.
인공 지능 기술이 적용되는 다양한 분야는 다음과 같다. 언어 이해는 인간의 언어/문자를 인식, 적용/처리하는 기술이며, 자연 언어 처리, 기계 번역, 대화 시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 인간의 시각으로 사물을 인식하고 처리하는 기술이며, 물체 인식, 물체 추적, 이미지 탐색, 인간 인식, 장면 이해, 공간 이해 및 이미지 증강을 포함한다. 추론/예측은 정보를 판단하고 논리적으로 추론하고 예측하는 기술이며, 지식/확률 기반 추론, 최적화 예측, 선호 기본 계획(preference base planning), 및 권장을 포함한다. 지식 표현은 인간 경험 정보를 지식 데이터로 자동화하는 기술이며, 지식 구축(데이터 생성/분류) 및 지식 관리(데이터 활용)를 포함한다. 모션 제어는 차량의 자율 주행 및 로봇의 모션을 제어하는 기술이며, 모션 제어(내비게이션, 충돌, 주행), 동작 제어(행동 제어) 등을 포함한다.
본 발명은 자동화된 의사 결정(decision-making)을 위한 방법 및 장치를 제공한다.
본 발명의 일 양태에 따르면, 제 1 전자 장치를 위한 방법은 머신 러닝 데이터 구조를 사용하여 의사 결정(decision-making) 데이터 구조를 생성하는 단계; 제 2 전자 장치에 상기 의사 결정 데이터 구조를 송신하는 단계; 상기 의사 결정 데이터 구조로부터 선택되는 동작을 수행한 결과에 관한 결과 데이터를 상기 전자 장치로부터 수신하는 단계; 및 상기 결과 데이터를 사용하여 머신 러닝 데이터 구조를 업데이트하는 단계를 포함한다.
본 발명의 다른 양태에 따르면, 제 1 전자 장치 장치로서, 머신 러닝 데이터 구조를 저장하는 메모리; 송수신기; 및 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는, 상기 머신 러닝 데이터 구조를 사용하여 의사 결정 데이터 구조를 생성하고, 상기 제 2 전자 장치에 상기 의사 결정 데이터 구조를 송신하도록 상기 송수신기를 제어하고, 상기 의사 결정 데이터 구조로부터 선택되는 동작을 수행한 결과에 관한 결과 데이터를 상기 제 2 전자 장치로부터 수신하도록 상기 송수신기를 제어하며, 또한 상기 결과 데이터를 사용하여 상기 메모리에 저장된 머신 러닝 데이터 구조를 업데이트하도록 구성된다.
본 발명의 다른 양태에 따르면, 제 2 전자 장치 장치로서, 메모리; 적어도 하나의 센서; 송수신기; 및 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는, 제 1 전자 장치로부터 의사 결정 데이터 구조를 수신하도록 상기 송수신기를 제어하고, 상기 상기 제 2 전자 장치의 현재 상태에 대한 상태 정보를 획득하도록 상기 적어도 하나의 센서를 제어하고, 상기 상태 정보를 사용하여 상기 의사 결정 데이터 구조로부터 일 동작을 선택하고, 상기 선택된 동작을 수행하고, 또한 상기 선택된 동작을 수행한 결과에 관한 결과 데이터를 상기 제 1 전자 장치에 송신하게 상기 송수신기를 제어하도록 구성되며, 상기 의사 결정 데이터 구조는 머신 러닝 데이터 구조를 사용하여 생성된다.
본 발명의 다양한 실시 예들은 개선된 시스템 성능을 제공한다.
도 1은 본 발명의 다양한 실시 예들에 따른 자동화된 의사 결정(decision-making) 시스템을 도시한 것이다.
도 2는 본 발명의 다양한 실시 예들에 따른 자동화된 의사 결정 시스템의 서버를 도시한 것이다.
도 3은 본 발명의 다양한 실시 예들에 따른 자동화된 의사 결정 시스템의 클라이언트 장치를 도시한 것이다.
도 4는 본 발명의 다양한 실시 예들에 따른 서버의 동작에 대한 흐름도이다.
도 5는 본 발명의 다양한 실시 예들에 따른 클라이언트 장치의 동작에 대한 흐름도이다.
도 6은 종래의 Q-러닝 시스템에 의해 수행되는 단계들을 개략적으로 도시한 흐름도이다.
도 7은 클라이언트 장치들 및 클라우드-기반 서버를 포함하는 예시적인 실시 예에 따른 자동화된 의사 결정 시스템의 블록도이다.
도 8은 실시 예들에 의해 사용되는 예시적인 데이터 구조들을 도시한 것이다.
도 9는 실시 예들에 의해 사용되는 다른 예시적인 데이터 구조들을 도시한 것이다.
도 10은 일 실시 예를 구현할 경우 클라이언트 장치에 의해 수행되는 예시적인 단계들을 도시하는 흐름도이다.
도 11은 모바일 장치의 공지된 Q-러닝 기반 전력 관리 방법에 의해 수행되는 동작들을 개략적으로 도시한 것이다.
도 12는 모바일 장치의 전력 관리를 위해 구성되는 일 실시 예에 의해 수행되는 동작들을 개략적으로 도시한 것이다.
이하, 본 발명의 다양한 실시 예들에서는, 일 예로서 하드웨어 접근 방식을 설명할 것이다. 그러나, 본 발명의 다양한 실시 예들은 하드웨어 및 소프트웨어 모두를 사용하는 기술을 포함하며, 따라서 본 발명의 다양한 실시 예들은 소프트웨어의 관점을 배제하지 않을 수도 있다.
머신 러닝(machine learning, ML)은 컴퓨터에 명시적으로 프로그래밍하지 않고 올바른 결정을 학습할 수 있는 기능을 제공하는 인공 지능(Artificial Intelligence; AI)의 한 형태이다. ML 알고리즘들은 통상적으로 샘플 입력들로부터 구축된 모델을 사용하여 결정을 내린다(make data driven decisions). ML은 이미지/비디오 프로세싱, 텍스트/음성 인식, 검색 엔진, 보안, 로봇 공학, 자율 주행 차량 및 기타 여러 분야에서 광범위하게 사용된다.
Google DeepMind?, Advanced Robotics 등의 애플리케이션들에서 사용되는 공지 타입의 ML은 Q-러닝이다(예를 들어, Christopher JCH Watkins and Peter Dayan. Q-Learning. Machine Learning, 8(3-4): 279-292, 1992 참조). Q-러닝은 적응적 ML 휴리스틱을 기반으로 하며, 경험 및 시행 착오를 기초로 하여 학습한다. Q-러닝의 이점은 이전에 생성된 트레이닝 데이터가 필요 없다는 점이다. 이 Q-러닝은 시스템이 이전에 생성된 트레이닝 세트 없이 자동으로 학습하고 자체 조정해야 하는 시나리오에서 사용될 수 있는 "의사 결정(decision-making)" 및 "업데이트" ML 알고리즘이다.
Q-러닝은 이전 경험들에 기초하여 결정들 또는 "동작들"을 취하여, 특정 목표에 도달하거나 근접하기 위해 최선의 결정을 선택한다. 동작들은 시스템 "상태들"의 변경을 초래한다. 경험이 존재하지 않을 경우에는, 무작위적으로 선택된 동작이 수행된다. 양호한 동작들에는 높은 "보상"이 주어지며, 양호하지 못한 동작들에는 0 또는 낮은 값의 보상이 주어진다. 경험들은 "Q-테이블(Q-Table)"이라고 불려지는 데이터 구조에 저장된다. Q-테이블은 환경에서 새로운 경험들이 얻어질 때에 업데이트된다. 이러한 피드백 루프는 보상과 동작에 의해서 시스템이 "학습"할 수 있게 한다.
정적인 다른 ML 휴리스틱(heuristics)(예컨대, 뉴럴 네트워크(Neural Networks))과는 달리 Q-러닝은 실시간으로 적응할 수 있다. 또한, 업데이트 및 의사 결정이 비교적 간단한 동작들이기 때문에 통상적으로 CPU 리소스들을 적게 사용한다.
그러나, Q-러닝과 같은 ML 알고리즘은 경우에 따라 느리거나 시간이 오래 걸릴 수 있다. 특히, 러닝 레이트(learning rate)는 입력으로 공급되는 레이트 및 관련 변수의 개수에 의존한다. ML은 낮은 학습을 갖거나 처음 시작 시에 무작위한(random)(또는 부정확한) 결정을 내리기 때문에 몇몇 경우들에 있어서는 비효과적일 수 있다. 또한, 생성되는 러닝 정보 데이터 구조/Q-테이블들은 매우 클 수 있다. 러닝 시간(learning time)은 Q-테이블 내의 상태들의 양에 선형적이며, 메모리 사용은 Q-테이블 내의 상태들의 양에 선형적이다. Q-테이블 크기(상태들 또는 동작들)를 단순화하거나 감소시키는 것이 항상 가능하지는 않는다. 또한, 수 개의 독립적인 장치들에 배치될 경우, 러닝 정보가 공유되지 않는다.
분산형 Q-러닝은 종래의 Q-러닝의 단점 중 일부를 해결하는 공지된 변형 예이다. 분산형 Q-러닝은 다수의 "클라이언트들"을 사용하여 병렬적으로 학습함으로써 느린 학습을 해결한다. 각 클라이언트는 중앙에 저장된 Q-테이블을 비동기식으로 업데이트하므로, 클라이언트 수만큼 러닝 시간이 선형적으로 감소한다. 따라서, 이 알고리즘은 통상적으로 클라이언트들의 수에 비례하여 더 빨리 학습한다.
그러나, 분산형 Q-러닝은 Q-러닝이 클라이언트들 자체에 의해 수행되지 않기 때문에 기능을 수행하기 위해서는 Q-테이블을 저장하는 중앙 서버와의 지속적인 통신을 필요로 한다. 따라서, 네트워크가 끊어지면 클라이언트 장치들이 응답하지 않게 될 수도 있다. 또한, 네트워크 대기 시간의 증가로 인해 클라이언트 장치들의 의사 결정 속도가 느려질 수 있으며(단 10ms 시간대에서의 결정이 필요한 일부 시나리오의 경우, 시스템은 잘못된 결정들을 내릴 수도 있음), 지속적인 네트워크 액세스는 자금, 전력 등의 측면에서 비용이 많이 들 수 있다.
본 발명의 실시 예들은 다중, 예를 들어 수백만 개의 장치들/소스들로부터 학습하는 클라우드-기반 ML 휴리스틱을 제공할 수 있으며, 그것 자체 및 그것 아래의 장치들을 최적화할 수 있다(itself and the devices under it). 실시 예들은 널리 수용되는 Q-러닝(강화 학습) 휴리스틱 또는 다른 타입의 ML에 기반하는 것일 수 있다. 실시 예들은 클라우드 운영을 위해 가벼우면서 최적화되도록 설계될 수 있으며, 또한 네트워크 사용성 및 의존성을 최소화할 수 있다. 실시 예들은 모바일 장치들 또는 저전력 장치들에 특히 적합하다.
예시적인 실시 예들에서, 클라이언트 장치들은 예를 들어 서버 상에 또는 클라우드에 원격으로 저장되는 전체(full) Q-테이블과 같은 전체 ML 데이터 구조를 더 이상 바로 업데이트하지 않는다. 클라이언트 장치들은 서버와 같은 원격 소스에 의해 제공되는 토탈 ML 학습 정보(즉, Q-테이블)의 단순화 버전인 로컬 저장된 판독 전용 결정 룩업 테이블(Decision Look-up Table; DLUT)을 사용하여 의사 결정을 행할 수 있다. 통상적인 실시 예들에서, 클라이언트 장치들은 DLUT를 직접 업데이트하지 않는다. 경우에 따라, 예를 들어, 네트워크 연결이 가능할 때, 클라이언트 장치는 최신 DLUT 버전으로 업데이트될 수 있다. 따라서 서버는 클라이언트 장치들에 대한 DLUT를 생성하며, 또한 클라이언트들로부터 전송된 데이터를 처리하여 서버의 전체 ML 시스템(Q-테이블) 내에 추가할 수 있다. 클라이언트 장치들은 적어도 일부 결정들을 실행한 결과를 로컬 파일/테이블에 저장할 수 있다. 네트워크 연결이 가능할 때, 클라이언트 장치들은 해당 데이터 중 적어도 일부를 서버/클라우드로 전송할 수 있다. 이러한 동작들은 이전 DLUT 버전을 클라이언트들에게 제공하면서 비동기적으로 수행될 수 있다. DLUT 액세스는 대기 시간 제한이 없으므로, 표준 분산형 Q-러닝보다 빠른 동작이 가능하다.
실시 예들은 클라이언트 장치들의 수에 비례하는 방식으로 트레이닝 시간을 감소시킬 수 있다. 실시 예들은 (예를 들어, 서버 또는 클라우드에서) 전체 학습된 데이터(Q-테이블)를 원격으로 저장함으로써 ML에 있어서의 큰 데이터 크기 문제를 처리할 수 있으며, 장치에 특정한 "단순화된" 테이블만이 클라이언트 장치에 로컬로 저장될 수 있다. 실시 예들은 빠른 트레이닝 시간으로 인해 보다 복잡한 Q-러닝 솔루션들을 허용하는 클라우드 기반 솔루션을 제공할 수 있다. 각 상황에 맞는 트레이닝(예를 들어, 특정 소프트웨어 애플리케이션/게임을 실행하는 동안의 전력 최적화)이 가능하다.
예시적인 실시 예들은 모바일 장치들에서의 전력 관리에 적용될 수 있다. 또한, 클라우드-기반 자기 학습 인프라스트럭처(Cloud-based self learning infrastructure)를 포함할 수 있는 실시 예들이, 모바일 장치 애플리케이션들을 포함하는 다수의 다른 복잡한 애플리케이션들을 작동시키는데 사용될 수 있다.
도 1은 본 발명의 다양한 실시 예들에 따른 자동화된 의사 결정 시스템을 도시한 것이다. 도 1을 참조하면, 자동화된 의사 결정 시스템(100)은 서버(110) 및 적어도 하나의 클라이언트 장치(120)를 포함한다. 클라이언트 장치(120)는 사용자에 의해 사용되는 장치며, 통신 네트워크를 사용하여 서버(110)와 통신한다.
예시적인 실시 예에서, 서버(110)는 클라우드 서비스의 일부로서 기능하는 컴퓨터이다. 그러나, 서버에 의해 수행되는 것으로 본 명세서에서 설명되는 임의의 단계(또는 그것에 의해 저장/처리되는 임의의 데이터)는 클라우드를 통해 다른 장치들에 의해 수행/저장될 수 있다. 본 예시적인 실시 예는 명확한 제한이 아니며 많은 변형예들이 가능하다. 예를 들어, 서버(110)는 유선 통신 네트워크를 통해 하나 이상의(동일하거나 상이한 타입의) 랩탑 또는 데스크탑 컴퓨터들과 연결되는 서버를 포함할 수 있다. 컴퓨터의 일반적인 구성요소들, 예를 들어 사용자 입/출력 유닛 등은 당업자에게 공지되어 있으며 여기서는 상세하게 도시되거나 설명되지 않는다.
클라이언트 장치(120)는 단말기, 사용자 장비(UE), 이동국, 가입자국, 원격 단말기, 무선 단말기, 단말기 또는 사용자 장치 또는 동등한 기술적 의미를 갖는 다른 용어일 수 있다. 몇몇 경우들에 있어서, 클라이언트 장치(120)는 MTC(machine type communication)를 수행하며 사용자가 휴대하지 않을 수도 있는 장치다. 간략화를 위해, 경우에 따라 클라이언트 장치들 중 하나에 의해 수행되는 동작들만을 설명할 것이다. 그러나, 이러한 동작들은 임의의 수의 클라이언트 장치들에 의해 수행될 수 있으며 이들 모두가 서버와 데이터를 교환할 수 있다는 것을 이해해야 한다.
도 2는 본 발명의 다양한 실시 예들에 따른 자동화된 의사 결정 시스템의 서버를 도시한 것이다. 도 2에 예시된 구조는, 서버(110)의 구조로서 이해될 수 있다. 이하에서 사용되는 "-모듈", "-유닛", 또는 "-기"라는 용어는 적어도 하나의 기능 또는 동작을 처리하기 위한 유닛을 지칭할 수 있으며, 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다.
도 2를 참조하면, 서버(110)는 송수신기(210), 적어도 하나의 프로세서(220) 및 메모리(230)를 포함할 수 있다.
일 실시 예에 따르면, 메모리(230)는 머신 러닝 데이터 구조를 저장하며, 적어도 하나의 프로세서(220)는 머신 러닝 데이터 구조를 사용하여 의사 결정 데이터 구조를 생성하고, 의사 결정 데이터 구조를 클라이언트 장치(12)로 송신하도록 송수신기(210)를 제어하고, 의사 결정 데이터 구조에서 선택되는 동작을 수행한 결과에 관한 결과 데이터를 클라이언트 장치(120)로부터 수신하도록 송수신기(210)를 제어하고, 결과 데이터를 사용하여 메모리(230)에 저장된 머신 러닝 데이터 구조를 업데이트하도록 구성된다.
도 3은 본 발명의 다양한 실시 예들에 따른 자동화된 의사 결정 시스템의 클라이언트 장치를 도시한 것이다. 도 3에 예시된 구조는 클라이언트 장치(120)의 구조로서 이해될 수 있다. 이하에서 사용되는 "-모듈", "-유닛", 또는 "-기"라는 용어는 적어도 하나의 기능 또는 동작을 처리하기 위한 유닛을 지칭할 수 있으며, 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다.
도 3을 참조하면, 클라이언트 장치(120)는 송수신기(310), 적어도 하나의 프로세서(320), 메모리(330) 및 적어도 하나의 센서(340)를 포함할 수 있다.
일 실시 예에 따르면, 적어도 하나의 프로세서는 서버(110)로부터 의사 결정 데이터 구조를 수신하도록 송수신기(310)를 제어하고, 클라이언트 장치(120)의 현재 상태에 대한 상태 정보를 획득하도록 적어도 하나의 센서(304)를 제어하고, 상태 정보를 사용하여 의사 결정 데이터 구조로부터 동작을 선택하고, 선택된 동작을 수행하고, 선택된 동작을 수행한 결과에 관한 결과 데이터를 서버(110)로 송신하게 송수신기(330)를 제어하도록 구성된다. 그리고, 이 의사 결정 데이터 구조는 머신 러닝 데이터 구조를 사용하여 생성된다.
도 4는 본 발명의 다양한 실시 예들에 따른 서버의 동작에 대한 흐름도를 도시한 것이다.
일 실시 예에 따르면, 서버(110)의 동작은 머신 러닝 데이터 구조를 사용하여 의사 결정 데이터 구조를 생성하는 동작(401); 의사 결정 데이터 구조를 제 2 전자 장치로 송신하는 동작(403); 의사 결정 데이터 구조로부터 선택되는 동작을 수행한 결과에 관한 결과 데이터를, 전자 장치로부터 수신하는 동작(405); 및 결과 데이터를 사용하여 머신 러닝 데이터 구조를 업데이트하는 동작(407)을 포함할 수 있다.
도 5는 본 발명의 다양한 실시 예들에 따른 클라이언트 장치의 동작에 대한 흐름도를 도시한 것이다.
일 실시 예에 따르면, 클라이언트 장치(120)의 동작은 제 1 전자 장치로부터 의사 결정 데이터 구조를 수신하는 동작(501); 제 2 전자 장치의 현재 상태에 대한 상태 정보를 획득하는 동작(503); 상태 정보를 사용하여 의사 결정 데이터 구조로부터 동작을 선택하는 동작(505); 선택된 동작을 수행하는 동작(507); 및 선택된 동작을 수행한 결과에 관한 결과 데이터를 제 1 전자 장치로 송신하는 동작(509)을 포함하며, 여기서 의사 결정 데이터 구조는 머신 러닝 데이터 구조를 사용하여 생성된다.
도 6은 종래의 Q-러닝 프로세스에 의해 통상적으로 수행되는 단계들을 도시한 것이다. "에이전트(agent)"라고도 불리는 컴퓨터 장치는 Q-러닝 프로세스를 수행하도록 구성되며, 이전 경험들을 사용하여 생성/업데이트되는 Q-테이블(606)로 알려진 데이터 구조에 저장된 정보와 조합하여 시스템/환경(604)의 현재 상태에 기초하여 "동작들"을 결정/선택한다(602).
본 발명의 실시 예들과 같이, Q-러닝 프로세스의 "상태들" 및 "동작들"은 크게 달라질 수 있으며 광범위하게 해석되어야 한다. 예를 들어, 상태는 (에이전트의 내부 또는 외부에 있을 수 있는) 하드웨어 또는 소프트웨어 구성요소의 조건, 예를 들어 구성요소 또는 외부 환경의 온도; 프로세서의 부하; 레지스터 또는 다른 데이터 저장소에 저장된 값(예를 들어, 애플리케이션에 의해 사용되는 변수) 등과 관련될 수 있다. 상태는 (예를 들어, 그것의 저장소로부터 데이터를 판독/처리함으로써) 에이전트에 의해 직접 획득/계산될 수 있거나, 적어도 하나의 센서, 네트워크 연결 등의 이용을 포함할 수 있다. 또한 동작은 에이전트의 내부 또는 외부에 있을 수 있는 하드웨어 또는 소프트웨어 구성요소와 관련될 수 있다. 예를 들어, 동작은 구성요소 또는 장치를 스위치 온/오프하거나; 레지스터 또는 다른 데이터 저장소에 저장된 값(예를 들어, 애플리케이션에 의해 사용되는 변수)을 변경하거나; 장치 설정(예를 들어, 화면 밝기, GPS 온/오프)을 변경하거나; 특정 방향으로 로봇을 이동시키는 등의 것일 수 있다.
간단한 예시적 Q-테이블의 각 라인/엔트리의 포맷은 다음과 같다:
(상태, 동작) Q-값
Q-러닝 프로세스는 특정 목표에 도달하거나 근접하는 것을 목적으로 환경의 현재 상태에 기초하여 최적의 동작을 선택한다. 주어진 상태에 대해 선택될 동작은 다양한 방식들로 결정될 수 있으며, 예를 들어 다음과 같은 공지된 알고리즘 온도 함수(Algorithmic Temperature Function) 또는 볼츠만 확률(Boltzmann Probability)을 사용하여 결정될 수 있다:
Figure pct00001
Q-테이블에 저장된 관련 경험이 존재하지 않는 경우, 무작위적 선택 동작이 수행될 수 있다.
동작들을 수행하면 시스템/환경 상태들이 변경된다. 직접적으로 또는 간접적으로 이러한 새로운 시스템 상태는 동작이 취해진 결과이다. Q-테이블(606)은 환경에서 새로운 경험들이 얻어질 때 업데이트된다. 만족도 공식(satisfaction formula)(608)에 기초하여 보상 값(reward value)이 각 상태에 대해 계산될 수 있다. 실제에 있어서 이러한 보상은 주어진 동작의 결과들에 따라 결정된다. 양호한 결과에는 높은 보상이 주어지며, 양호하지 못한 결과들에는 0 또는 낮은 보상이 주어진다. 예를 들어, AI 자동차 운전자 애플리케이션에서, 보상은 연료 사용, 원활한 운전 등에 기초할 수 있다. 만족도 공식은 시스템에 의해 획득될 이상적인 결과들을 나타낸다. 업데이트 공식(610)은 만족도 공식으로부터 획득되는 새로운 데이터로 Q-값들을 업데이트한다.
Q-러닝 시스템을 설정하기 위한 요구 사항은 일반적으로 다음과 같다:
1. 동작들(a) 정의
(1) 동작들은 에이전트가 그 환경에서 수행하는 작업임
(2) 예: 특정 장치를 이동, 판매, 구매, 업데이트하거나 애플리케이션 설정 등
2. 만족도 또는 보상 공식(r) 정의
(1) 결과가 양호한지 양호하지 못한지를 나타내는 보상들
(2) 보상들은 러닝 알고리즘에게 동작들의 결과를 나타냄
(3) 예: 로봇에게 직선으로 움직이는 것에 대해 긍정적 보상을 주고 벽에 부딪치는 것에 대해 부정적 보상을 주는 것; 로봇은 직선으로 움직이면서 벽을 피하는 법을 학습하게 됨
3. 상태들(s) 정의
(1) 상태들은 임의의 주어진 시간(t)에서 시스템 상태를 나타냄
(2) 예: 로봇의 현재 공간 위치, 주행 자동차의 속도 등
(3) 상태들은 또한 계산된 값들일 수 있음; 예를 들어 자동차의 평균 속도, 자동차의 평균 연료 소비량, 로봇의 배터리 레벨 등
4. 러닝 레이트(α) 및 디스카운트 팩터(γ) 정의
(1) 러닝 레이트(α)는 에이전트가 얼마나 빨리 학습하는지를 정의함(더 긴 학습은 더 정확할 수 있으며 그 반대도 가능함)
(2) 디스카운터 팩터(γ)는 미래 보상에 부여되는 중요도를 정의함 - 에이전트가 미래의 높은 보상을 기대해야 하는지 아니면 보다 작은(smaller) 보상을 기대해야 하는지?
Q-테이블을 업데이트하기 위한 예시적인 함수는 다음과 같다:
Figure pct00002
상기한 공식은 방향성이 있으며 대안의 Q-러닝 구현들이 이 공식에 대한 다수의 상이한 변형들을 가질 수 있다는 것을 당업자는 이해할 것이다. 획득된 보상 값을 사용하는 적절한 공식에 의해서 동작의 Q-값이 업데이트되면, 여전히 Q-러닝 구현이 될 수 있다.
본 발명의 실시 예들은 종래의 Q-러닝 프로세스를 수정하는 것에 기초할 수 있다. 그러나, 당업자는 대안적인 실시 예들이 뉴럴 네트워크(Neural Network)들과 같은 다른 ML 기술들에 기초할 수 있음을 인식할 것이며, 여기서 입력들은 한정된 상태들로 정의될 수 있으며 제한된 출력 동작 세트가 존재한다.
도 7은 Q-러닝에 기반하여 본 발명의 실시 예들을 실행할 수 있는 예시적인 시스템(100)을 개략적으로 도시한 것이다. 예시적인 시스템(100)은 제 1 컴퓨터, 즉 서버(110) 및 적어도 하나의 원격 컴퓨터, 즉 적어도 하나의 클라이언트 장치(120)를 포함한다. 각 클라이언트 장치(120)는 통신 네트워크를 통한 기능적 연결이 장치들(예를 들어 무선 인터넷 연결, 셀룰러 네트워크 연결 등) 사이에 존재할 경우에 서버(110)와 통신할 수 있다.
공지된 분산형 Q-러닝에서, 클라이언트 장치들(120)은 서버(110)와 통신함으로서, 그들의 현재 상태들에 기초하여 Q-러닝 결정을 획득하고, 또한 동작을 취한 이후 Q-테이블을 업데이트하기 위한 결과 정보를 전송하게 된다. 그러나, 이러한 종래의 Q-러닝 시스템들과는 대조적으로, 본 발명의 실시 예들에서, 클라이언트 장치들은 서버에 의해 유지되는 전체 Q-테이블을 직접 업데이트하지 않는다. 오히려, 클라이언트 장치들은 전체 Q-테이블로부터 서버에 의해 도출되는 로컬 저장 의사 결정 데이터 구조를 사용하여 의사 결정을 수행한다. 일부 실시 예들에서, 이 로컬 데이터 구조는 판독 전용 결정 룩업 테이블(Decision look-up Table; DLUT)을 포함할 수 있다. 또한, 클라이언트 장치들은 로컬 저장소(예를 들어, 파일 또는 테이블) 및 적절한 접속점(juncture)에 결과 데이터를 저장할 수 있으며, 예를 들어, 저비용의 네트워크 연결(예를 들어, WiFi?)이 가능할 경우, 결과 데이터를 서버에 전송함으로써 그것의 전체 Q-테이블을 업데이트하고 이를 사용하여 업데이트된 DLUT를 생성할 수 있다.
도 7에 나타낸 바와 같이, 서버(110)는 종래의 전체 Q-테이블(703)을 저장 및 유지한다. 이것으로부터, 단순화 프로세스(704)는 전체 Q-테이블을 DLUT로 변환한다. 이 프로세스는 최적의 Q-값들을 찾아내고, 그 최적의 값들과 관련된 동작만을 저장하며, 또한 클라이언트 동작과 관련될 수 있는 몇몇 다른 추가 정보도 저장한다. 이것은 클라이언트들로부터 획득된 모든 새로운 데이터에 대하여 서버 자체에 의해 생성되거나 비동기적으로 배치(batch)될 수 있다. 이것은 또한 (예를 들어, 클라우드 서비스를 통해) 서버와 통신하는 적어도 하나의 원격 컴퓨팅 장치에 의해 수행된 다음 서버(110)로 전송될 수 있다.
도 8은 전체 Q-테이블(703)의 일 예의 일부를 도시한 것이다. Q-테이블은 상태들을 포함하는 제 1 열(801) 및 해당 상태에 있을 때 취해질 수 있고 각 동작에 대한 Q-값을 포함하는 가능한 동작들을 나타내는 적어도 하나의 추가 열(8021 - 802N)을 포함한다. 예를 들어, 제 1 상태 (0, 1, 5, 6, 8)의 경우, 제 1 동작은 프로세서 주파수를 X MHz로 설정하고 그 동작에 대한 Q-값은 32.6이며; 제 2 동작은 프로세서 주파수를 Y MHz로 설정하고 그 동작에 대한 Q-값은 25.5이고, 나머지도 이와 같다.
도 8은 전체 Q-테이블(703)로부터 도출된 예시적인 DLUT(705)의 일부를 도시한 것이다. 예시적인 DLUT는 두 개의 열로 구성된다. 제 1 열(811)은 상태들을 포함하고 제 2 열(812)은 (클라이언트 장치가 그 행의 상태에 있는 경우) 선택될 동작을 포함한다. 각 행의 동작은 최고/최적 Q-값을 갖는 해당 상태에 대한 전체 Q-Table의 동작에 해당한다. 예를 들어, 도 8의 예시적인 전체 Q-테이블에서, 동작 0(열 8021)이 상태 (0, 1, 5, 6, 8)에 대한 행의 최고 Q-값 (32.6)을 가지므로, DLUT에서 해당 상태 (0, 1, 5, 6, 8)의 행에 대한 동작은 동작 0이다. 따라서, DLUT의 각 행에는 상태(State) -> 동작(Action) 쌍이 포함되어 있으므로, 모든 상태에 대해 클라이언트 장치가 취할 수 있는 최적의 동작을 매우 간단하고 효율적으로 나타낸다. 통상적으로, DLUT는 Q-테이블과 같이, 부족한(sparse) 테이블이 아닌 완전한 테이블이며, 각 가능한 상태에 대한 동작 값을 포함한다. 이렇게 하면 첫 번째 열이 필요하지 않으므로(상태들을 미리 알 수 있고 상태들이 오름차순 또는 내림차순으로 나열되어 있으므로) DLUT의 저장이 더 간단해진다.
DLUT(705)는 대응하는 전체 Q-테이블(703)과 비교하여 실질적인 크기 감소를 나타낸다. 전체 Q-테이블의 크기는 NStates * NActions * QValueSize이며, 통상적으로 Q-값 크기는 정수 또는 부동 소수점 값(4Bytes)이다. 대조적으로, 대응하는 DLUT의 크기는
Figure pct00003
이다.
따라서, DLUT는
Figure pct00004
배 더 작다.
4 바이트 Q-값들 및 5개의 동작들을 갖는 샘플 Q-테이블에 대해 DLUT를 계산할 때 다음과 같은 이점들을 확인할 수 있다: 크기가 32배 감소; 로컬 룩업 테이블의 경우 5비트/상태 및 전체 Q-테이블의 경우 160비트/상태.
대안적인 실시 예들은 클라이언트 장치(120)의 (입력을 나타내는) 현재 상태에 기초한 동작을 획득/출력하기 위해 룩업 테이블들 이외의 (하나 이상의) 데이터 구조들, 바람직하게는 적은 스토리지 및 작은 양의 프로세싱 능력을 필요로 하는 간단한 것들(예를 들어, 어레이들 또는 리스트들)을 사용할 수 있음을 이해할 것이다. 예를 들어, 메모리가 문제가 될 수 있는 경우, 의사 결정 트리들(decisions trees)과 같은 다른 구조들이 룩업 테이블에 대한 적절한 대체가 될 수 있다. 또한, 더 많은 계산 능력을 필요로 하지만 메모리 스토리지를 저장할 수 있는 등가의 수학 공식이 사용될 수 있다.
도 7을 참조하면, DLUT의 사본(705')이 클라이언트 장치(120) 상에 로컬로 저장될 수 있다. 서버(110)는 DLUT 데이터를 적절한 접속점에서 클라이언트 장치로 전송하게 된다. 예를 들어, 서버는 서버와 클라이언트 장치 사이에 기능적 네트워크 연결(functional network connection)이 있는 경우 또는 전송을 수행하는데 비용(네트워크 비용, 배터리 비용 등)이 들지 않을 때에만 DLUT가 생성/업데이트된 이후에 즉시/곧 DLUT 데이터를 클라이언트 장치로 전송할 수 있다. 추가적으로 또는 대안적으로, DLUT는 주기적으로; 이벤트-기반(event-basis: 예를 들어, 클라이언트 장치가 업데이트를 요청할 경우)으로; 연결 해제 또는 전원 오프 이벤트 다음에 기능적 네트워크 연결이 재확립된 이후에 전송될 수 있다. 서버는 DLUT 데이터를 동시에 또는 배치 시(in batches) 등에 모든 관련 클라이언트 장치들로 전송할 수 있다. DLUT는 추가 데이터, 예를 들어 서버를 식별하는 데이터; Q-러닝과 관련된 애플리케이션을 식별하는 데이터; DLUT에 대한 버전 번호 및/또는 시간/날짜 스탬프 등과 함께 전송될 수 있다. 클라이언트들은 업데이트가 필요하지 않을 경우 비용 발생을 방지하기 위해 이 추가 정보를 사용할 수 있다.
클라이언트 장치(120)는 DLUT(705')를 사용하여 그것의 현재 상태에 대응하는 DLUT로부터 동작을 선택/검색하여 의사 결정을 행한다. 해당 동작을 실행하면 클라이언트 장치의 상태/환경(714)이 변경된다. 일부 실시 예들에서, (모든 또는 일부) 동작들을 실행한 결과(716)에 관한 데이터가 클라이언트 장치에 의해 로컬로 저장될 수 있다. 이 결과 데이터는 예를 들어 수행된 동작을 나타내는 데이터뿐만 아니라, 동작을 수행함으로써 초래된 클라이언트 장치의 업데이트된 상태를 포함할 수 있다. 일부 실시 예들에서, 클라이언트 장치는 적절한 접속점에서 (모든 또는 일부) 결과 데이터를 서버(110)로 전송할 수 있다. 예를 들어, 서버와 클라이언트 장치 사이에 기능적 네트워크 연결이 있는 경우 또는 전송을 수행하는 비용(네트워크 비용, 배터리 비용 등)이 없을 때에만, 결과 데이터가 생성된 이후에 즉시/곧 결과 데이터가 전송될 수 있다. 추가적으로 또는 대안적으로, 결과 데이터는 주기적으로, 배치 시(in batches)에(예를 들어, X개의 결과가 생성된 이후에), 및/또는 이벤트-기반(event-basis: 예를 들어, 서버가 그것을 요청하는 경우)으로; 연결 해제 또는 전원 오프 이벤트 다음에 기능적 네트워크 연결이 재확립된 이후에 전송될 수 있다. 전송되는 결과 데이터는 클라이언트 장치의 식별자와 같은 추가적인 정보; 결과들을 생성하는데 사용되는 DLUT에 대한 버전 식별자 및/또는 시간/날짜 스탬프 등을 포함할 수 있다. 결과 데이터는 임의의 적절한 포맷일 수 있으며, 추가 처리를 위해 서버에 의해 수신된 이후에 수정될 수 있다.
일부 실시 예들에서, 서버(110)는 수신된 결과 데이터의 사본(716')을 저장한다. 서버는 이 저장된 결과 데이터를 사용하여, 예를 들어 적절한 접속점에서 만족도 공식/공식 업데이트를 실행하는 소프트웨어 구성요소(708)에 의해 전체 Q-테이블을 업데이트할 수 있다. 이것은 예를 들어, 결과 데이터의 수신 시에 즉시; 배치 시(in batches)에(예를 들어, X개의 결과가 수신된 이후에); 주기적으로; 서버 사용자가 요청할 때 등의 이벤트-기반(event-basis)으로 수행될 수 있다. 일부 실시 예들에서, 소프트웨어 구성요소(708)의 업데이트는 예를 들어 클라우드 서비스를 통해 액세스되는 서버로부터 원격일 수 있다.
적절한 접속점에서, 시스템(예를 들어, 서버(110) 및/또는 다른 컴퓨팅 장치들)은 DLUT(705)를 재-생성/업데이트할 수 있다. 예를 들어, 이것은 전체 Q-테이블(703)의 각 업데이트 이후에; 주기적으로; 전체 Q-테이블에 대한 일정 수의 업데이트들이 완료된 이후에; 소프트웨어/하드웨어 구성요소 등에 의한 요청 시에 수행될 수 있다. 따라서, 서버는 클라이언트 장치들에 대한 DLUT를 생성할 뿐만 아니라 클라이언트들로부터의 결과 데이터를 처리하여 서버에 저장된 전체 Q-테이블 내에 추가하는 것을 수행한다. 이 모든 것은 비동기식으로 계산될 수 있으며 클라이언트 장치들은 그들의 현재-저장된 버전의 DLUT를 사용하여 계속 작동할 수 있다.
도 9는 다른 실시 예에 따른 전체 (표준) Q-테이블(903)의 다른 예의 일부, 및 전체 Q-테이블(903)로부터 도출된 예시적인 DLUT(905)의 일부를 도시한 것이다. 이 예시적인 DLUT(905)에서, 제 1 열(908)은 상태들을 포함하고 제 2 열(909)은 (클라이언트 장치가 해당 행의 상태에 있는 경우) 선택될 동작을 포함한다. 따라서, 제 1 및 제 2 열들은 도 8에 나타낸 실시 예의 DLUT(705)의 제 1 열(811) 및 제 2 열(812)과 실질적으로 동일하다. 그러나, 도 9의 이 대안의 예시적인 DLUT(905)는 저렴한 정보(inexpensive intelligence)를 DLUT에 추가하기 위한 "힌트들"을 제공하는데 사용될 수 있는 2개의 추가 열을 포함한다.
일부 경우들에 있어서, 주어진 상태에 대한 데이터가 어떤 동작이 최선인지 결정을 내리기에 충분한 데이터가 아닐 수 있다. 종래의 Q-러닝에서는 상태가 학습되었는지 여부에 관한 정보가 존재하지 않는다. 그러나, 일부 고급 ML 기술은 상태를 몇 번 방문했는지 카운터를 가지며, 또한 모든 빈 상태를 엠프티 값(empty value)으로 설정하여 빈 상태들을 인식함으로써 학습되지 않은 상태들과 학습된 상태들을 구별할 수 있다. 실시 예들은 상태에 관한 데이터가 "완전한(complete)" 것인지 여부 및/또는 결과를 향상시키기 위해 "추가 데이터(more data)"가 필요한지 여부를 나타내는 추가 정보를 사용하여 종래 Q-러닝의 이러한 단점을 해결할 수 있다.
따라서, 실시 예들은 다음을 포함하는 적어도 일부 상태들에 대한 데이터 완전성/확실성의 4가지 "레벨"을 처리할 수 있다:
1) 상태에 대한 데이터가 없음(예를 들어, DLUT(905)의 행(924) 참조).
2) 데이터가 있지만 완전하지 않음(예를 들어, 행(923)) - ML 시스템은 지금까지 최선의 동작으로 간주된 동작이 가능한 최선의 동작인지 여부가 전혀 확실하지 않음.
3) 완전한 데이터가 있지만 추가 데이터가 필요함(예를 들어, 행(922)) - ML 시스템은 지금까지 최선의 동작이 전반적인 최선의 동작이라고 확신하지만, 확인을 위해 추가 데이터가 수집되어야 함.
4) 완전한 데이터가 있으며, 추가 데이터가 필요하지 않음(예를 들어, 행(921)).
실시 예들은 DLUT(905)에서 2개의 추가 비트/값을 사용하여 상기 케이스 1) - 4) 중 어느 것이 원래의 전체 Q-테이블(903)의 대응하는 행에 적용되는지를 나타낼 수 있다. 추가 동작 값(도 9의 예시적인 DLUT의 제 2 열(909)에서의 "?")이 이러한 케이스 1)에 대한 "널(null)/데이터 없음"을 나타내는데 사용될 수 있다. DLUT(905)의 "완전(Complete)" 비트/열(910)은 데이터가 이 상태에 대해 완전한지 여부를 나타내는데 사용될 수 있다. DLUT의 "추가 데이터(More data)" 비트/열(911)은 예를 들어 전체 Q-테이블을 더 업데이트하도록 서버로 전송하기 위해, 결과를 저장할지 여부를 결정하는데 사용될 수 있다. 대안적인 실시 예들에서는, 이들 비트를 모두 단일 값으로 패킹함으로써 1 비트의 공간을 절약하는 것이 가능하다. 또한, 다른 데이터 포맷/구조가 각 상태에 대한 데이터의 완전성 레벨을 나타내는데 사용될 수 있으며, 즉 상태에 대한 데이터가 완전한지 및/또는 전체 Q-테이블에 대해 추가 데이터가 필요한지 여부를 나타내는데 사용될 수 있다는 것이 이해될 것이다.
추가 동작 값을 사용하면 테이블이 약간 커지지만 전체 Q-테이블과 비교하면 여전히 작을 수 있다:
Figure pct00005
앞서의 계산에 따르면, 이것은 예시적인 대안의 DLUT가 22.8배 더 작다는 것을 의미한다.
도 10은 클라이언트 장치(120)에 의해 수행될 수 있는 예시적인 단계들을 도시하는 흐름도이다. 통상의 실시 예들에서, 몇몇 클라이언트 장치들은 이러한 단계들을 독립적으로 수행할 수 있으며 필요한 경우 동일한 서버(및/또는 동일하거나 상이한 클라우드 서비스 내의 적어도 하나의 다른 서버)와 통신할 수 있음을 이해할 것이다. 또한 대안적인 실시 예들에서, 본 명세서의 흐름도의 하나 이상의 단계들이 재-순서화되거나 생략될 수 있으며 및/또는 추가의 단계들이 수행될 수도 있음을 인식할 것이다. 또한, 단계들이 도면들에서 순차적으로 수행되는 것으로 도시되었지만, 대안적인 실시 예들에서는 이들 중 적어도 일부가 동시에 수행될 수도 있다. 또한, 실시 예들은 상세한 예들에서 나타나 있는 특정 장치/구성요소에 의해 수행되는 특정 단계들로 제한되지 않는다. 예를 들어, 서버 또는 클라이언트 장치는 특정 단계 또는 단계들을 수행하도록 (예를 들어 클라우드 서비스를 통해) 다른 컴퓨터에 지시(또는 협력)할 수 있다. 또한 본 명세서에 설명되는 방법들은 임의의 적절한 프로그래밍 언어/수단 및/또는 데이터 구조들을 사용하여 구현될 수 있음을 이해할 것이다. 일부 실시 예들에서, 클라이언트 장치는 하나 이상의 의사 결정 방법(decision-making method)을 실행할 수 있으며, 각 방법은 자체 의사 결정 테이블/DLUT(및 연관된 서버 방법 및 전체 ML 데이터 구조)를 갖는다. 예를 들어, 의사 결정 방법들은 클라이언트 장치에서 실행되는 하나보다 많은 애플리케이션을 최적화하기 위해; 클라이언트 장치의(또는 클라이언트 장치에 의해 제어되는) 하나보다 많은 하드웨어 구성요소를 최적화하기 위해 제공될 수 있다.
일반적으로, 클라이언트 장치(120)는 아래에서 상세히 설명되는 바와 같이, 자신의 현재 상태/환경(1004)에 기초하여 로컬 DLUT(705)에 따라 "최적의" 결정들(1002)을 행하도록 의도되며, 또한 결과 데이터(통상적으로 새로운 경험들에 관한 결과들)를 저장할지(1008)의 여부를 결정할 수 있다(1006). 일부 실시 예들에서, DLUT의 "완전" 비트 및 "추가 데이터" 비트는 현재 상태에 대해 DLUT에서 지정된 동작 대신에 무작위로(random) 선택된 동작이 취해질 것인지 여부를 결정하는데 사용될 수 있다. 무작위 동작이 수행될 경우, 이것은 시스템이 수행할 수 있는 모든 가능한 동작들 중에서 선택되며; 이 데이터는 그 동작들이 의미하는 바와 그 수가 얼마나 많은지를 알아야하기 때문에 클라이언트에 의해 선험적으로(a priori) 알려져 있다. 따라서, DLUT의 데이터는 의사 결정 프로세스의 무작위성에 영향을 줄 수 있다. 시스템의 사용자/설계자는 추가 데이터가 필요할 경우 시스템이 새로운 동작들을 수행한 결과를 계속 학습할 수 있게 하면서, 무작위 동작 수행의 사용자/시스템 영향을 줄이거나 최소화하도록 레벨을 선택/수정할 수 있다(예컨대, X%, Y% 확률 레벨).
일반적으로 어떤 동작을 취할 것인지/어떤 의사 결정을 할 것인지를 결정할 수 있는 다음과 같은 4 가지 가능한 클라이언트 장치 시나리오가 존재한다:
● 로컬 DLUT(705)에 현재 상태에 대한 데이터가 없음:
- 무작위 동작 수행
- 무작위 동작을 수행한 결과를 저장, 예를 들어 상태 + 동작 = 업데이트된 상태
● 로컬 DLUT(705)에 현재 상태에 대한 데이터가 있지만, 완전하지 않음:
- 지정된 X%(예를 들어, 60%) 확률 레벨에 기초하여: 무작위 동작을 수행하거나; 그렇지 않으면, 그 상태에 대한 DLUT에 저장된 동작을 수행
- 선택된 동작을 수행한 결과를 저장, 예를 들어 상태 + 동작 = 업데이트된 상태
● 로컬 DLUT(705)에 현재 상태에 대한 데이터가 있지만, 추가 데이터가 서버(110)에 필요함:
- 지정된 Y%(통상적으로 X%보다 낮음, 예를 들어 5%) 확률 레벨에 기초하여: 무작위 동작을 수행하거나; 그렇지 않으면, 그 상태에 대한 DLUT에 저장된 동작을 수행
- 선택된 동작을 수행한 결과를 저장, 예를 들어 상태 + 동작 = 업데이트된 상태
● 로컬 DLUT에 현재 상태에 대한 데이터가 있으며, 추가 데이터가 필요하지 않음:
- 그 상태에 대한 DLUT에서 지정된 동작을 수행
- 동작을 수행한 결과를 저장하지 않음
전술한 바와 같이, 클라이언트 장치(120)는 저장된 결과 데이터를 적절한 접속점에서 서버(110)로 전송할 수 있다. 그 후, 서버(110)는 하나 이상의 클라이언트 장치들에 의해 수신된 결과 데이터를 사용하여 자신의 전체 Q-테이블을 업데이트할 수 있다. 이 업데이트는 다양한 방법들로 수행될 수 있으며, 예를 들어 임의의 클라이언트 장치로부터 새로운 결과 데이터를 수신한 이후 즉시; 모든/일부 클라이언트 장치들에 기초하여 배치 시에; 주기적으로; 사용자 명령/요청 시 등에 수행될 수 있다.
일부 실시 예들은 "콜드-스타트(cold-start)" 문제를 처리하도록 구성될 수 있다. 콜드 스타트란 시스템에 경험이나 학습 데이터가 없으며 의사 결정을 하기 이전에 학습해야 할 때이다. 통상적으로 콜드-부트(cold-boot) 중에, 클라이언트 장치(120)가 처음으로 실행될 경우, 기존의 데이터는 존재하지 않는다. 일부 실시 예들에서, 클라이언트 장치는 이 문제를 해결하기 위해 보조 데이터 구조, 예를 들어 "디폴트(default)" 룩업 테이블(1010)을 사용할 수 있다. 디폴트 테이블은 주어진 상태에 대하여 또는 다른 지식 소스에서 최적의 동작을 결정하는 핸드메이드 함수를 사용하여 계산될 수 있다. ML이 해결해야 하는 일정 레벨의 문제를 처리하는 것으로 알려진 수학 공식에 따라 테이블을 생성할 수 있다; 예를 들어 상태들에 기반하는 동작들을 수행하는 if/else 조건들. 또한, 다른 애플리케이션들, 조건들 또는 장치들을 위해 수집된 데이터를 재사용하여 테이블을 생성할 수도 있다. 충분한 데이터가 서버(110)에 의해 수집된 경우, 외삽(extrapolation)을 사용하여 디폴트 테이블이 또한 계산될 수 있다. 시스템의 대부분의 상태들이 전혀 탐색되지 않으므로 가장 일반적인 데이터를 외삽하여 테이블을 채우는 것은 논리적인 해결책이다. 예를 들어, 장치의 온도 상태가 70℃일 때 최적의 동작이 성능을 저하시키는 것일 경우, 성능을 저하시키는 동작을 72℃, 74℃ 및 기타 모든 상위 온도 상태들에 외삽할 수 있다. 디폴트 테이블은 통상적으로 ML 프로세스의 대상인 개별 애플리케이션들/상황들에 커스터마이징되지 않는다.
디폴트 테이블은 이용 가능한 경우에만 제공될 수 있으므로 통상적으로 학습 시스템을 전문화해야 하는 경우에 사용된다. 예를 들어, 시스템은 전화기에 설치된 각각의 여러 게임들을 잘 수행하는 방법을 학습하려는 의도일 수도 있다. 모든 게임들에 대한 트레이닝을 포함하는 일반 디폴트 테이블로 시작하면 시스템은 각 게임에 특화된 테이블들을 생성하기 위해 그 위에서(on top of that) 트레이닝하게 된다. 그러나, 디폴트 테이블은 트레이닝이 0인 경우 적용될 수 없다.
전술한 바와 같이, 일 공식을 사용하여 콜드 스타트를 위한 솔루션으로서 사용될 디폴트 테이블을 생성할 수 있다. 예를 들어 전화기 클라이언트 장치의 경우, 프로세서 부하가 100%이면 주파수를 높이고 그렇지 않은 경우에는 감소시키거나; 온도가 X도 보다 큰 경우 최대 프로세서 주파수를 줄이는 등의 공식이 작성될 수 있다. 이러한 공식은 서버가 첫 번째 DLUT를 트레이닝 및 생성하기 위한 초기 데이터 세트를 생성하게 된다. 그러나 이 공식도 또한 학습을 유도하는데 사용해야 하며; 그렇지 않으면 시스템이 이 공식의 경계를 넘어서 탐색하지 않게 된다.
다양한 방법으로 공식들을 작성할 수 있다. 서버는 주기적으로 공식을 조정할 수 있다. 예를 들어, 초기 공식은 다음과 같을 수 있다: 온도가 한계를 초과하면 프로세서 주파수를 증가시키지 않음. 나중 단계에서는 이 한계가 변경될 수 있다. 또한 이 한계는 각 장치마다 다를 수도 있다(예컨대, 대부분의 장치들에서 이 공식은 X를 넘는 온도를 허용하지 않을 수 있음). 그러나, 그러한 경우 시스템은 X를 넘어서는 상태를 결코 경험하지 않으므로 온도 X를 넘을 수 없으며, 따라서 몇몇 장치(예컨대, 1000개마다 1개)에 대해서 X 한계를 X+10으로 증가시킬 수 있다.
일부 실시 예들에서, 장치들은 트레이닝을 위해 "벌룬티어(volunteered)"되며, 예를 들어 서버에서 장치들로 전송되는 DLUT의 비트는 그 장치들이 무제한 트레이닝을 위해(하나 이상의 상태에 대해) 인에이블되는지 또는 공식에 기반하여서만 실행되도록 인에이블되는지 여부를 나타낼 수 있다. 또한, 이러한 벌룬티어 장치들에는 많은 변수가 있을 수 있다. 예를 들어, 장치가 항상 공식을 기반으로 실행되지만 특정 게임에 대해서는 하루에 10분 동안만 탐색한다거나; 처리 부하가 주어진 임계값 미만일 경우 등. 일부 실시 예들은 서버 측으로부터 이들 변수를 설정 및 조정할 수 있다.
일부 실시 예들에서, 서버는 트레이닝을 위한 특정 명령들을 제공할 수 있다. 예를 들어, 에이전트/장치가 특정 상태에서 직접 찾아내는 경우, 공식 기반 제어로 다시 되돌려질 때까지 특정 동작 세트를 취하거나, 일정 기간(예를 들면, 1 분) 동안 동일한 동작을 반복할 수 있다. 이것에 기초하여, 더 많은 그라운드를 커버하도록 콜드 스타트를 확장할 수 있다.
사용 시에, 클라이언트 장치(120)는 로컬 DLUT(705) 대신에 디폴트 테이블(1010)을 언제 사용할지를 결정하도록 구성될 수 있으며, 예를 들어 의사 결정 프로세스의 적어도 하나의 초기 반복을 위해 디폴트 테이블을 사용하거나; DLUT에 특정 양보다 적은 데이터가 포함되어 있는 경우(예컨대, 특정 수의 상태들에 대한 동작이 없는 경우) 디폴트 테이블을 사용하거나; DLUT에 저장된 특정 수의 상태들보다 적은 경우에 디폴트 테이블을 사용하거나, 최근에 충분한 무작위 동작들이 수행되었을 경우에 디폴트 DLUT를 사용하는 등일 수 있다.
콜드 스타트 시, 또는 이전에 마주치지 않은 새로운 시나리오/상태 시에는, 클라이언트 장치(120)에 의해 취해지는 하위-최적 동작들의 수를 감소시킬 필요가 있다. 예를 들어, 클라이언트 장치가 알려지지 않은 상태에 직면할 경우, 예를 들어 새로운 애플리케이션을 실행할 경우, 다수의 무작위 동작들을 수행할 수 있다. 결과적으로 이 무작위 동작은 애플리케이션 자체의 느린 실행 및/또는 다른 소프트웨어/네트워크 문제와 같은 성능을 저하시킬 수 있다.
따라서, 일부 실시 예들은 취해질 무작위 결정들의 수에 상한 임계값을 설정할 수 있다. 예를 들어, 실시 예들은 특정 시간 주기(예를 들어 시간당 100회의 결정) 동안 최대, N, 무작위 결정의 수를 설정할 수 있다. 일부 실시 예들에서는, 수행되는 동작들의 수가 (예를 들어, 사용자-설정) 임계값 미만이 될 때까지 무작위 동작들이 취해지지 않는다. 무작위 동작들의 선택은 다른 요인들에 기초할 수도 있다는 것을 이해할 것이다. 예를 들어, 특정 애플리케이션들/이벤트들이 클라이언트 장치에 의해 실행될 경우 무작위 동작들의 수는 클라이언트 장치의 현재 부하에 기초하여 제한될 수 있다. 취해질 무작위 동작들의 수를 제어하기 위한 규칙을 포함하는 데이터가 각 클라이언트 장치(120)에 의해 로컬로 저장될 수 있다. 이 데이터는 적절한 접속점에서, 예를 들어 DLUT 데이터 업데이트와 동시에; 새로운 애플리케이션이 클라이언트 장치 상에 설치될 때; 주기적으로 서버(110)로부터 수신되거나/서버(110)에 의해 업데이트될 수 있다.
도 11은 Q-러닝에 기초한 공지된 지능형 전력 관리(ntelligent Power Management; IPM) 접근 방식을 개략적으로 도시한 것이다. 이 접근 방식은 이동 전화(1102)와 같은 모바일 장치에서 사용될 수 있다. 모바일 장치는 장치의 전력 관리를 수행하도록 구성되는 로직을 실행/저장하는 프로세서 및 메모리를 갖는다.
요컨대, 도 11의 공지된 IPM 방법은 컴퓨터 장치의 인식 성능을 나타내는 데이터를 획득하는 단계; 적어도 인식 성능을 나타내는 데이터 및 컴퓨터 장치의 현재 부하를 입력들로 나타내는 데이터를 사용하는 전력 관리 알고리즘을 실행하는 단계; 및 전력 관리 알고리즘의 출력에 기초하여 컴퓨터 장치의 하드웨어 구성요소를 구성하는 단계를 포함할 수 있다. 인식 성능을 나타내는 데이터는 컴퓨터 장치의 프로세싱 파이프의 단부에서의 성능을 나타내며, 예를 들어 이 성능의 추정은 구성요소에 의해 처리되는 부하를 담당하는 적어도 하나의 애플리케이션을 실행하는 사용자에게 제공되거나 사용자에 의해서 경험된다. 전력 추정 알고리즘은 다음을 포함하는 상태들의 세트 및 동작들의 세트를 나타내는 Q-테이블을 사용하는 머신 러닝 프로세스를 포함할 수 있다: 컴퓨터 장치/구성요소의 현재 상태를 판독하는 단계; 현재 상태에 기초하여 Q-테이블로부터 동작을 선택하고 수행하는 단계; 동작의 결과와 피드백 또는 보상 파라미터를 체크하는 단계; 및 동작과 피드백 또는 보상 파라미터 사이의 새로운 학습된 관계를 반영하도록 상태를 계산하고 업데이트하는 단계. 컴퓨터 장치/구성요소의 현재 상태는 통상적으로 FPS, GPU 주파수, GPU 부하, 열, 배터리 레벨 및/또는 전력 사용을 포함하는 상태들의 세트 중 일 상태를 포함한다. 동작들은 통상적으로 구성요소의 동작 주파수 증가, 구성요소의 동작 주파수 감소, 구성요소의 동작 주파수 유지 또는 구성요소의 동작 주파수를 지정된 값으로 변경을 포함하는 동작들의 세트로부터 선택된다. 머신 러닝 프로세스의 목표는 구성요소의 특정 열 점(specific thermal point), 구성요소의 가능한 최고 성능 및/또는 구성요소의 높은 부하를 포함할 수 있다.
통상적으로 모바일 장치(1102) 상에서 실행되는 도 11의 IPM 로직은 전력을 관리하기 위해 동작들(예를 들어, CPU 또는 GPU 주파수를 증가 또는 감소)에 기초하여 장치의 주파수 제어기들과 같은 구성요소들과 상호작용한다. 예시적인 적절한 Q-테이블의 포맷은 다음과 같다:
Figure pct00006
도 11의 공지된 방법에서, 동작들(Actions)은 장치의 현재 상태(예를 들어, 온도, 프레임/초 및 CPU/GPU 부하)에 기초하여 로컬로 저장된 전체 Q-테이블을 사용하여 종래의 Q-러닝 기술들에 따라 선택된다. 그 다음 로직은 선택된 동작의 결과, 예를 들어 성능 또는 온도의 변화를 관찰하고 낮은 성능에 대하여 부정적인 보상/높은 성능에 대하여 긍정적인 보상을 계산한다. 그 결과는 종래의 방식으로 로컬 Q-테이블을 업데이트하는데 사용된다. 통상적인 예에서, Q-테이블은 약 30,000개의 테이블 엔트리들을 가질 수 있다. 로직은 그것의 현재 상태에 따라 로컬 Q-테이블의 값들에 기초하여 다음 "최적의 동작"을 계속 찾는다. 예를 들어, 최적의 동작은 GPU 주파수를 높이는 것일 수 있다. 그 다음 로직은 종래의 Q-러닝 방식으로 이러한 작업들을 반복한다.
도 11의 일부 버전의 IPM에 대한 운영 수학식들은 다음과 같다:
Figure pct00007
여기서 P는 전력을 나타내고, T는 온도를 나타내고, F는 FPS를 나타내고, Gload는 부하를 나타내고, w는 파라미터들에 대하여 더 크거나 더 작은 중요도를 부여하는 구성 가능한 "웨이트(weight)" 파라미터들을 나타낸다.
예시적인 보상 공식은 다음을 포함한다:
Figure pct00008
Figure pct00009
그러나, 도 11에 도시된 공지된 IPM 방법과 관련된 제약들이 존재한다. 특히 확장성이 문제이다. 예를 들어, 10개의 상태들마다 2개의 새로운 변수(예컨대, 전류 소모 및 배터리 레벨)를 추가하면 그 각각이 상태들의 수를 3 백만개 이상으로 증가시킬 수 있다. 따라서, 저장을 위해 대용량 메모리가 필요하게 된다(3 백만개의 상태 -> Q-값당 4 바이트 * 5개의 동작 * 3 백만 = 60Mb). 또한 개별 장치/애플리케이션/상황에 특정한 트레이닝은 각 장치/애플리케이션/상황별로 60Mb 테이블을 필요로 한다. 대형 테이블은 또한 긴 트레이닝 시간을 초래한다. 예를 들어, 하나의 버전에서 30,000개 상태들을 갖는 트레이닝은 약 4 시간이다. 3 백만개 상태들에서 개별 애플리케이션들에 대해 트레이닝하면 트레이닝 시간이 상당히 증가하게 된다. 또한, 공지된 방법에서는 다수의 장치들에 대한 트레이닝이 공유되지 않는다. 또한, 속도/스토리지 제한으로 인해, 여러 가지 다른 애플리케이션들/상황들에 맞는 학습을 수행하는 것이 현실적이지 않다.
도 12는 도 11의 공지된 전력 관리 방법의 제한들의 적어도 일부를 극복할 수 있는 새로운 Q-러닝 기반 접근 방식의 일 실시 예를 개략적으로 도시한 것이다. 도 12의 방법은 전술한 일반적인 실시 예들의 원리들을 사용하여 동작할 수 있지만 특히 모바일 장치들의 IPM을 위해 설계된다. 도 11의 공지된 방법과 유사한 방식으로, 본 실시 예는 프로세서 주파수 등을 설정함으로써 전력을 관리할 수 있다.
복수의 클라이언트 장치들(120) 각각은 로컬로 저장된 DLUT(705)를 사용하여 그것의 현재 상태(예를 들어, 그것의 현재 CPU/GPU 부하, FPS, 온도 등)에 기초하여 (예를 들어, 프로세서 주파수를 설정하는 형태로) 동작(1202)을 결정한다. DLUT는 전술한 실시 예들과 유사한 방식으로 서버(110)에 의해 수행 처리되는 Q-러닝에 의해서 결정된 모든 주어진 상태들에 대한 최적의 동작을 포함한다. 모바일 장치의 현재 상태에 관한 정보는 온도 센서에 의해 제공되는 정보 등으로부터 도출될 수 있다. 선택된 동작들을 취하면 성능, 전력, 온도(1206) 등을 변경할 수 있는 새로운 모바일 장치 상태(1204)를 초래하게 된다. 이 단계들이 적절하게 반복될 수 있다. 일부 실시 예들에서, 각 클라이언트 장치는 선택된 동작을 취하는 결과(예를 들어, 성능, 온도 등의 변경)를 로컬 데이터 저장소/데이터베이스(1208)에 기록할 수 있다. 전술한 바와 같이, 클라이언트 장치(120)는 저장된 결과 데이터를 적절한 접속점에서 서버(110)로 전송/업로드할 수 있다(1210).
서버(110)에 의해 수행되는 동작들은 클라이언트 장치들(120)로부터 결과 데이터를 수집하는 것을 포함한다(1220). 또한 서버는 적절한 접속점에서, 예를 들어 일정량의 결과 데이터가 수신된 이후에; 주기적으로; 소프트웨어/하드웨어 구성요소 등에 의한 요청 시에 수신된 결과 데이터에 기초하여 자신의 전체 Q-테이블을 재계산한다(1222). 전술한 바와 같이, 서버는 각 클라이언트 장치에 대한 DLUT(705)를 생성하고 클라이언트 장치들에게 사본을 전송할 수 있다(1224). 일부 예시적인 실시 예들에서, Q-테이블 재계산 및 DLUT 생성은 초기에는 하루에 한번, 그 다음 며칠/주마다 한번씩일 수 있다.
일부 실시 예들에서, 서버/클라우드 측 프로세싱은 모든 사용자들/장치들에 의한 사용을 위한 단일 Q-테이블이 아니라, 상이한 사용자/클라이언트 장치들에 대한 개별 Q-테이블들을 생성할 수 있다. 트레이닝 정보가 다양한 타입의 사용자들/클라이언트 장치들로부터 수집될 수 있으며, 이 데이터는 상이한 지리적 영역들, 장치들(예를 들어, 전화기), 애플리케이션들(예를 들어, 게임들) 등과 연관된 패턴을 찾기 위해 프로세싱될 수 있다. 예를 들어, 장치 국가에 따라 요구 사항이 다를 수도 있으며; 더운 국가에 있는 장치들은 추운 국가에 있는 장치들과 다르게 학습할 수 있다. 또한, 실시 예들은 다수의 상이한 장치들을 지원할 수 있으며, 비록 그들이 모두 동일한 동작들/상태들을 사용하더라도, 클라이언트 장치들을 카테고리들로 분리할 수 있고; 이 학습은 상이한 구성, 위치, 사용자 유형 등을 갖는 장치들에 의해 학습된 상이한 거동으로 인해 서로 다를 수 있다. 실시 예들은 공지된 K-평균 클러스터링 방법과 같은 기술들을 사용하여 다차원 데이터에 대한 공통 클러스터들을 생성할 수 있다.
따라서, 일부 실시 예들에서, Q-테이블과 같은 상이한 ML 데이터 구조 및 이들로부터 도출된 단순화된 의사 결정 데이터 구조들, 예를 들어 DLUT들은 상이한 용도/상황들에 맞게 생성 및 조정될 수 있다. 실시 예들은 공통된 데이터 패턴들을 가진 것에 기초하여 클라이언트 장치들의 클러스터들을 식별할 수 있다. 이러한 데이터 패턴들은 위치, 사용자 아이덴티티, 하드웨어 및/또는 소프트웨어 기능들 등과 같은 다양한 요소들에 기초할 수 있다. 예를 들어, Q-테이블은 상이한 지리적 영역들에 대해 생성될 수 있다. 일부 실시 예들에서, 개별적인 장치들 및/또는 위치, OS, 애플리케이션/게임 및 프로파일에 대해 맞춤화된 Q-테이블을 생성하여, 기능적 인터넷 연결이 있을 때 장치/전화기에 배치될 수 있다. 이러한 레벨의 미세 조정은 공지된 솔루션들에서 가능하지 않거나 실현되지 않는다. 장치, 예를 들어 전화기가 인터넷에 연결되지 않은 경우에는, 디폴트 테이블들을 사용하여 작동할 수 있다(미세 조정 테이블들만이 부족할 수 있음).
일부 실시 예들에서, 각각의 (또는 적어도 일부) 클라이언트 장치는 자신의 로컬 DLUT에 상이한 상태-동작 맵핑들을 가지게 된다. 예를 들어, 최신 버전의 모바일 장치는 열 관리가 더 좋을 수 있으며, 따라서 600Mhz 주파수 GPU는 이전 버전과 비교하여 온도가 낮아진다. 서버는 장치의 각 버전/릴리스에 대해 상이한 Q-테이블 및 도츨된 DLUT들을 생성할 수 있다.
일부 실시 예들에서는, 동일한 클라이언트 장치가 운영 체제 버전에 따라 상이한 성능 속성을 가질 수 있다. 예를 들어, 특정 버전의 Android?는 배경 프로그램들이 적을 수 있으므로, 다른 버전에 비해 애플리케이션/게임의 주파수가 낮아야 한다. 따라서, 동일한 모델의 클라이언트 장치에 대해 서버는 상이한(또는 모든) Android? OS 버전들에 대해 상이한 Q-테이블들 및 도출된 DLUT들을 생성할 수 있다. 실시 예들이 매우 빠른 트레이닝을 제공할 수 있기 때문에, 이러한 조합들이 가능하다.
일부 실시 예들에서, 특히 게임과 같은 높은 처리 요구를 갖는 애플리케이션들에 대해, 개별 애플리케이션들에 맞춤화된 Q-테이블들 및 도출된 DLUT들이 생성될 수 있다. 이로 인해 결정의 정확도가 높아지고 전력/성능 값들이 향상될 수 있다. 서버에 전송되는 트레이닝 데이터에는 특정 애플리케이션/게임/패키지 이름으로 태그가 지정될 수 있다. 이렇게 하면, 서버가 애플리케이션당 하나의 Q-테이블/DLUT를 생성하는 것이 가능하게 된다.
추운 국가에 있는 장치들은 더운 국가에 비해 자연적으로 차가워진다. 따라서, 실시 예들은 특히 추운 국가에 있는 클라이언트 장치들로 전송될, (보다 차가운 장치들이므로) 더 높은 FPS를 허용하는 IPM 테이블들을 생성할 수 있으며, 보다 따듯한 국가에 있는 장치들로 전송되는 테이블들에는 보다 어그레시브한 FPS 스로틀(throttle)이 지정될 수 있다.
빠른 트레이닝 속도로 인하여, IPM을 수행하도록 구성된 일부 실시 예들은 통상적으로 지원되는 IPM 프로파일들의 총 수(예를 들어, 4-매우 높음, 높음, 중간 및 낮음)보다 더 많은 프로파일들(예를 들어, 10)을 제공할 수 있다. 각 프로파일은 본 발명의 실시 예들을 사용하여 달성될 수 있는 자신의 특정 FPS, 온도, 전력 목표 등에 대한 트레이닝을 필요로 할 수 있다.
실시 예들은 계층화된 Q-러닝을 제공할 수 있으며, 여기서 제 1 레벨은 (사용자들/클라이언트 장치들로부터 데이터를 수집하고 Q-테이블(들) 및 DLUT(들)를 생성하는) 클라우드 서버를 포함하고, 제 2 레벨은 (서버에 학습을 업로드하고 새로운 DLUT(들)를 다운로드하며, 이미 공지된 경험으로 오프라인으로도 동작할 수 있는) 사용자/클라이언트 장치들을 포함한다.
대안적인 실시 예들은 테이블 또는 유사한 데이터 구조 상에서 동작하는 일반적인 Q-러닝과 유사한 알고리즘을 사용하여 동작할 수 있다. 다른 실시 예들은 유사한 방식으로 최적화될 수 있는 뉴럴 네트워크(Neural Network, NN) 알고리즘 등을 사용하여 동작할 수 있다. 예를 들어, 실시 예들은 양자화된 입력 레벨들 및 양자화된 출력 레벨들을 갖는 NN을 Q-테이블과 동등한 블랙박스로서 사용할 수 있으므로, 상태들의 입력 시에, NN은 최적의 동작들을 출력한다. 예를 들어, 서버 장치는 출력 값 및 신뢰 값을 제공할 수 있는 뉴럴 네트워크/도출된 데이터 구조(테이블 대신)를 사용할 수 있다. 신뢰도가 낮은 값을 사용하여, 새로운 결과 데이터를 기록하여 서버로 전송해야 하는지를 결정할 수 있다. 서버는 수신된 결과 데이터를 사용하여 전체 네트워크 데이터 구조를 재계산하며, 일부 실시 예들에서는 클라이언트 장치들에 의해 사용하기 위해 전송되는 뉴럴 네트워크 도출된 데이터 구조를 생성할 수 있다. 실시 예들은 그래프들/공식들/테이블들(임의의 타입이 하나에서 다른 것으로 변환될 수 있음)에 기초한 다른 타입의 ML을 사용하여 동작할 수 있다. 임의의 의사 결정 애플리케이션/시스템에 이점들을 제공하는 실시 예들이 생성될 수 있으며, 여기서 이미지/비디오 프로세싱, 텍스트/음성 인식, 검색 엔진, 보안, 로봇 공학, 자율주행 차량 등을 포함하지만 이에 제한되지 않는 ML이 사용될 수 있다.
본 발명의 청구 범위 및/또는 명세서들에서 언급된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다.
본 방법들이 소프트웨어에 의해 구현될 경우, 하나 이상의 프로그램들(소프트웨어 모듈들)을 저장하기 위한 컴퓨터 판독가능 저장 매체가 제공될 수 있다. 컴퓨터 판독가능 저장 매체에 저장된 하나 이상의 프로그램들은 전자 장치 내의 하나 이상의 프로세서들에 의한 실행을 위해 구성될 수 있다. 적어도 하나의 프로그램은 전자 장치로 하여금 첨부된 청구 범위에 의해 정의되고/되거나 본 명세서에 개시된 바와 같은 본 발명의 다양한 실시 예들에 따른 방법들을 수행하게 하는 명령들을 포함할 수 있다.
프로그램(소프트웨어 모듈 또는 소프트웨어)은 랜덤 액세스 메모리 및 플래시 메모리, 판독 전용 메모리(ROM), 전기적 소거가능 프로그래머블 판독 전용 메모리(EEPROM), 자기 디스크 저장 장치, CD-ROM(Compact Disk-ROM), DVD(Digital Versatile Disc) 또는 다른 유형의 광학 저장 장치 또는 자기 카세트를 포함하는 비휘발성 메모리에 저장될 수 있다. 대안적으로는, 프로그램의 일부 또는 전부의 임의의 조합이 프로그램이 저장된 메모리를 형성할 수 있다. 또한, 복수의 이러한 메모리가 전자 장치에 포함될 수도 있다.
또한, 프로그램은 인터넷, 인트라넷, LAN(local area network), WAN(wide area network) 및 SAN(storage area network)와 같은 통신 네트워크, 또는 이들의 조합을 통해 액세스 가능한 탈착식 저장 장치에 저장될 수도 있다. 이러한 저장 장치는 외부 포트를 통해 전자 장치에 액세스할 수 있다. 또한, 통신 네트워크 상의 개별 저장 장치가 휴대용 전자 장치에 액세스할 수도 있다.
상술한 본 발명의 상세한 실시 예들에서는, 본 발명에 포함되는 구성요소가 제시된 상세한 실시 예에 따라 단수 또는 복수로 표현되어 있다. 그러나, 제시된 상황에 적합한 설명의 편의를 위해 단수 형태 또는 복수 형태가 선택된 것이며, 본 발명의 다양한 실시 예들은 그것의 단일 요소 또는 복수 요소로 제한되지 않는다. 또한, 설명에서 표현된 복수의 요소 중 하나가 단일 요소로 구성될 수 있거나 또는 설명 내의 단일 요소가 복수의 요소로 구성될 수도 있다.
본 발명에 대하여 본 발명의 특정 실시 예들을 참조하여 도시되고 설명되었지만, 본 발명의 범주를 일탈하지 않는 범위 내에서는 형태 및 세부 사항에서 다양한 변화가 이루어질 수 있음을 당업자는 이해할 것이다. 따라서, 본 발명의 범위는 실시 예들에 한정되는 것으로서 정의되어서는 안되며, 첨부된 청구 범위 및 그 등가물에 의해 정의되어야 한다.
본 발명에 대하여 예시적인 실시 예를 이용하여 설명되었지만, 다양한 변경 및 수정이 당업자에게 제안될 수 있다. 본 발명은 첨부된 청구 범위의 범주 내에 있는 그러한 변경 및 수정을 포함하는 것으로 의도된다.

Claims (15)

  1. 제 1 전자 장치의 동작 방법에 있어서,
    머신 러닝 데이터 구조를 사용하여 의사 결정(decision-making) 데이터 구조를 생성하는 과정과,
    제 2 전자 장치에 상기 의사 결정 데이터 구조를 송신하는 단계;
    상기 의사 결정 데이터 구조로부터 선택되는 동작을 수행한 결과에 관한 결과 데이터를 상기 전자 장치로부터 수신하는 단계; 및
    상기 결과 데이터를 사용하여 머신 러닝 데이터 구조를 업데이트하는 단계를 포함하는 방법.
  2. 청구항 1에 있어서,
    상기 머신 러닝 데이터 구조는 복수의 상태들에 관한 데이터 및 상기 복수의 상태들 각각에 대한 복수의 가능한 동작들에 관한 데이터를 포함하며,
    상기 의사 결정 데이터 구조는 상기 복수의 상태들에 관한 데이터 및 상기 복수의 상태들 각각에 대한 하나의 동작에 관한 데이터를 포함하는 방법.
  3. 청구항 2에 있어서,
    상기 머신 러닝 데이터 구조는 상기 복수의 상태들 각각에 대한 상기 복수의 가능한 동작들 각각과 관련된 레이팅 값(rating value)을 더 포함하며,
    상기 의사 결정 데이터 구조 내의 상기 복수의 상태들 각각에 대한 상기 하나의 동작은 상기 머신 러닝 데이터 구조 내의 상기 복수의 상태들 각각에 대한 상기 복수의 가능한 동작들 중 가장 높은 레이팅 값을 갖는 동작에 대응하는 방법.
  4. 청구항 3에 있어서,
    상기 머신 러닝 데이터 구조는 상기 복수의 상태들 각각에 대한 상기 복수의 가능한 동작들 각각의 Q-값에 관한 Q-테이블을 더 포함하며,
    상기 의사 결정 데이터 구조 내의 상기 복수의 상태들 각각에 대한 상기 하나의 동작은 상기 Q-테이블 내의 상기 복수의 상태들 각각에 대해 가장 높은 Q-값을 갖는 동작에 대응하는 방법.
  5. 청구항 4에 있어서,
    상기 의사 결정 데이터 구조는 상기 복수의 상태들 각각 및 상기 가장 높은 Q-값을 갖는 동작에 관한 룩업 테이블(look-up table)을 더 포함하는 방법.
  6. 제 1 전자 장치에 있어서,
    머신 러닝 데이터 구조를 저장하는 메모리;
    송수신기; 및
    적어도 하나의 프로세서를 포함하며,
    상기 적어도 하나의 프로세서는,
    상기 머신 러닝 데이터 구조를 사용하여 의사 결정 데이터 구조를 생성하고,
    제 2 전자 장치에 상기 의사 결정 데이터 구조를 송신하도록 상기 송수신기를 제어하고,
    상기 의사 결정 데이터 구조로부터 선택되는 동작을 수행한 결과에 관한 결과 데이터를 상기 제 2 전자 장치로부터 수신하도록 상기 송수신기를 제어하며,
    상기 결과 데이터를 사용하여 상기 메모리에 저장된 머신 러닝 데이터 구조를 업데이트하도록 구성되는 장치.
  7. 청구항 6에 있어서,
    상기 머신 러닝 데이터 구조는 복수의 상태들에 관한 데이터 및 상기 복수의 상태들 각각에 대한 복수의 가능한 동작들에 관한 데이터를 포함하며,
    상기 의사 결정 데이터 구조는 상기 복수의 상태들에 관한 데이터 및 상기 복수의 상태들 각각에 대한 하나의 동작에 관한 데이터를 포함하는 장치.
  8. 청구항 7에 있어서,
    상기 머신 러닝 데이터 구조는 상기 복수의 상태들 각각에 대한 상기 복수의 가능한 동작들 각각과 관련된 레이팅 값을 더 포함하며,
    상기 의사 결정 데이터 구조 내의 상기 복수의 상태들 각각에 대한 상기 하나의 동작은 상기 머신 러닝 데이터 구조 내의 상기 복수의 상태들 각각에 대한 상기 복수의 가능한 동작들 중 가장 높은 레이팅 값을 갖는 동작에 대응하는 장치.
  9. 청구항 8에 있어서,
    상기 머신 러닝 데이터 구조는 상기 복수의 상태들 각각에 대한 상기 복수의 가능한 동작들 각각의 Q-값에 관한 Q-테이블을 더 포함하며,
    상기 의사 결정 데이터 구조 내의 상기 복수의 상태들 각각에 대한 상기 하나의 동작은 상기 Q-테이블 내의 상기 복수의 상태들 각각에 대해 가장 높은 Q-값을 갖는 동작에 대응하는 장치.
  10. 청구항 9에 있어서,
    상기 의사 결정 데이터 구조는 상기 복수의 상태들 각각 및 상기 가장 높은 Q-값을 갖는 동작에 관한 룩업 테이블을 더 포함하는 장치.
  11. 제 2 전자 장치에 있어서,
    메모리;
    적어도 하나의 센서;
    송수신기; 및
    적어도 하나의 프로세서를 포함하며,
    상기 적어도 하나의 프로세서는,
    제 1 전자 장치로부터 의사 결정 데이터 구조를 수신하도록 상기 송수신기를 제어하고,
    상기 상기 제 2 전자 장치의 현재 상태에 대한 상태 정보를 획득하도록 상기 적어도 하나의 센서를 제어하고,
    상기 상태 정보를 사용하여 상기 의사 결정 데이터 구조로부터 일 동작을 선택하고,
    상기 선택된 동작을 수행하고,
    상기 선택된 동작을 수행한 결과에 관한 결과 데이터를 상기 제 1 전자 장치에 송신하게 상기 송수신기를 제어하도록 구성되며,
    상기 의사 결정 데이터 구조는 머신 러닝 데이터 구조를 사용하여 생성되는 장치.
  12. 청구항 11에 있어서,
    상기 머신 러닝 데이터 구조는 복수의 상태들에 관한 데이터 및 상기 복수의 상태들 각각에 대한 복수의 가능한 동작들에 관한 데이터를 포함하며,
    상기 의사 결정 데이터 구조는 상기 복수의 상태들에 관한 데이터 및 상기 복수의 상태들 각각에 대한 하나의 동작에 관한 데이터를 포함하는 장치.
  13. 청구항 12에 있어서,
    상기 머신 러닝 데이터 구조는 상기 복수의 상태들 각각에 대한 상기 복수의 가능한 동작들 각각과 관련된 레이팅 값을 더 포함하며,
    상기 의사 결정 데이터 구조 내의 상기 복수의 상태들 각각에 대한 상기 하나의 동작은 상기 머신 러닝 데이터 구조 내의 상기 복수의 상태들 각각에 대한 상기 복수의 가능한 동작들 중 가장 높은 레이팅 값을 갖는 동작에 대응하는 장치.
  14. 청구항 13에 있어서,
    상기 머신 러닝 데이터 구조는 상기 복수의 상태들 각각에 대한 상기 복수의 가능한 동작들 각각의 Q-값에 관한 Q-테이블을 더 포함하며,
    상기 의사 결정 데이터 구조 내의 상기 복수의 상태들 각각에 대한 상기 하나의 동작은 상기 Q-테이블 내의 상기 복수의 상태들 각각에 대해 가장 높은 Q-값을 갖는 동작에 대응하는 장치.
  15. 청구항 14에 있어서,
    상기 의사 결정 데이터 구조는 상기 복수의 상태들 각각 및 상기 가장 높은 Q-값을 갖는 동작에 관한 룩업 테이블을 더 포함하는 장치.
KR1020197020085A 2016-12-15 2017-12-14 자동화된 의사 결정을 위한 방법 및 장치 KR102621640B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1621347.2A GB2557674B (en) 2016-12-15 2016-12-15 Automated Computer Power Management System, Apparatus and Methods
GB1621347.2 2016-12-15
PCT/KR2017/014672 WO2018110985A1 (en) 2016-12-15 2017-12-14 Method and apparatus for automated decision making

Publications (2)

Publication Number Publication Date
KR20190087635A true KR20190087635A (ko) 2019-07-24
KR102621640B1 KR102621640B1 (ko) 2024-01-05

Family

ID=58284495

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197020085A KR102621640B1 (ko) 2016-12-15 2017-12-14 자동화된 의사 결정을 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US11983647B2 (ko)
EP (1) EP3516600B1 (ko)
KR (1) KR102621640B1 (ko)
GB (1) GB2557674B (ko)
WO (1) WO2018110985A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102257082B1 (ko) 2020-10-30 2021-05-28 주식회사 애자일소다 의사결정 에이전트 생성 장치 및 방법
KR20220082521A (ko) 2020-12-10 2022-06-17 이윤서 RPA(Robotic Process Automation)기술을 이용한 주차번호판 인식

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190042979A1 (en) * 2018-06-28 2019-02-07 Intel Corporation Thermal self-learning with reinforcement learning agent
US10576380B1 (en) * 2018-11-05 2020-03-03 Sony Interactive Entertainment LLC Artificial intelligence (AI) model training using cloud gaming network
JP7341315B2 (ja) 2019-08-14 2023-09-08 グーグル エルエルシー ディープニューラルネットワークに関する基地局とユーザ機器とのメッセージング
EP3808024B1 (en) 2019-09-04 2022-03-16 Google LLC Neural network formation configuration feedback for wireless communications
US11886991B2 (en) 2019-11-27 2024-01-30 Google Llc Machine-learning architectures for broadcast and multicast communications
US11689940B2 (en) 2019-12-13 2023-06-27 Google Llc Machine-learning architectures for simultaneous connection to multiple carriers
US11586490B2 (en) * 2020-03-31 2023-02-21 Hewlett Packard Enterprise Development Lp System and method of identifying self-healing actions for computing systems using reinforcement learning
US11663472B2 (en) 2020-06-29 2023-05-30 Google Llc Deep neural network processing for a user equipment-coordination set
CN114326749B (zh) * 2022-01-11 2023-10-13 电子科技大学长三角研究院(衢州) 一种基于Deep Q-Learning的集群区域覆盖方法
US20230310995A1 (en) * 2022-03-31 2023-10-05 Advanced Micro Devices, Inc. Detecting personal-space violations in artificial intelligence based non-player characters

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4825270B2 (ja) 2006-03-29 2011-11-30 インテル・コーポレーション 強化学習及び伝播によるネットワークプロトコルオプションの最適化
US8347384B1 (en) * 2007-07-31 2013-01-01 Hewlett-Packard Development Company, L.P. Methods and systems for using incremental operation for processing regular expressions in intrusion-prevention systems
KR20100048127A (ko) 2008-10-30 2010-05-11 한국전자통신연구원 사용자 서비스 이용 패턴 모델링 장치 및 방법
US20130176146A1 (en) * 2010-06-15 2013-07-11 The Provost, Fellows And Scholars Of The College Of The Holy & Undivided Trinity Of Queen Elizabeth Decentralised Autonomic System and Method for Use in an Urban Traffic Control Environment
US8909590B2 (en) * 2011-09-28 2014-12-09 Nice Systems Technologies Uk Limited Online asynchronous reinforcement learning from concurrent customer histories
GB201122206D0 (en) * 2011-12-22 2012-02-01 Vodafone Ip Licensing Ltd Sampling and identifying user contact
GB2502300A (en) * 2012-05-22 2013-11-27 Ibm Customisation of client service data exchange and communication to provide/communicate only data relevant to a requested service
US9069737B1 (en) * 2013-07-15 2015-06-30 Amazon Technologies, Inc. Machine learning based instance remediation
US10091785B2 (en) * 2014-06-11 2018-10-02 The Board Of Trustees Of The University Of Alabama System and method for managing wireless frequency usage

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Shiwen Nie et al., "Q-Learning Based Power Control Algorithm for D2D Communication," 2016 IEEE 27th Annual IEEE International Symposium on Personal, Indoor and Mobile Radio Communications (2016.09.04.)* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102257082B1 (ko) 2020-10-30 2021-05-28 주식회사 애자일소다 의사결정 에이전트 생성 장치 및 방법
KR20220082521A (ko) 2020-12-10 2022-06-17 이윤서 RPA(Robotic Process Automation)기술을 이용한 주차번호판 인식

Also Published As

Publication number Publication date
EP3516600A4 (en) 2019-11-06
EP3516600B1 (en) 2024-04-10
US11983647B2 (en) 2024-05-14
WO2018110985A1 (en) 2018-06-21
GB201621347D0 (en) 2017-02-01
EP3516600A1 (en) 2019-07-31
GB2557674A (en) 2018-06-27
US20190318254A1 (en) 2019-10-17
GB2557674B (en) 2021-04-21
KR102621640B1 (ko) 2024-01-05

Similar Documents

Publication Publication Date Title
KR102621640B1 (ko) 자동화된 의사 결정을 위한 방법 및 장치
CN109816116B (zh) 机器学习模型中超参数的优化方法及装置
Zhao et al. Where to go next: A spatio-temporal LSTM model for next POI recommendation
US11683831B2 (en) Systems and methods for providing resource analysis for autonomous mobility on demand
CA3058373A1 (en) Data learning server and method for generating and using learning model thereof
CN110832509B (zh) 使用神经网络的黑盒优化
JP2020154785A (ja) 予測方法、予測プログラムおよびモデル学習方法
KR20210067605A (ko) 인공 지능을 이용한 상업용 세탁기의 제어 방법 및 그 시스템
CN112930541A (zh) 通过最小化妄想影响来确定控制策略
CN115905687A (zh) 基于元学习图神经网络面向冷启动的推荐系统及方法
Deng et al. Toward smart multizone HVAC control by combining context-aware system and deep reinforcement learning
Chen et al. Context-aware online offloading strategy with mobility prediction for mobile edge computing
CN116500896B (zh) 智能网联汽车域控制器多虚拟cpu任务智能实时调度模型和方法
Khargharia et al. Probabilistic analysis of context caching in Internet of Things applications
CN112749617A (zh) 通过聚集父实例确定输出信号
WO2020098822A2 (en) Determining action selection policies of an execution device
EP4339843A1 (en) Neural network optimization method and apparatus
WO2020098821A2 (en) Determining action selection policies of an execution device
CN108476084B (zh) Q学习中调整状态空间边界的方法和装置
US20230075551A1 (en) Data transmission using data prioritization
CN113552802B (zh) 重卡智能空调控制方法及系统
US20230177794A1 (en) Electronic device and method of inferring object in image
US11983404B2 (en) Deep causal learning for data storage and processing power management
KR102093090B1 (ko) 레이블 데이터를 이용한 생성적 적대 신경망 기반의 분류 시스템 및 방법
US20230145386A1 (en) Model learning system and model learning device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant