KR20230103577A - 전자 장치 및 그의 동작 방법 - Google Patents

전자 장치 및 그의 동작 방법 Download PDF

Info

Publication number
KR20230103577A
KR20230103577A KR1020210194551A KR20210194551A KR20230103577A KR 20230103577 A KR20230103577 A KR 20230103577A KR 1020210194551 A KR1020210194551 A KR 1020210194551A KR 20210194551 A KR20210194551 A KR 20210194551A KR 20230103577 A KR20230103577 A KR 20230103577A
Authority
KR
South Korea
Prior art keywords
information
electronic device
machine learning
application
learning model
Prior art date
Application number
KR1020210194551A
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 삼성전자주식회사
Priority to KR1020210194551A priority Critical patent/KR20230103577A/ko
Priority to PCT/KR2022/021728 priority patent/WO2023128701A1/ko
Priority to US18/105,320 priority patent/US20230213896A1/en
Publication of KR20230103577A publication Critical patent/KR20230103577A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

개시된 실시예에 따른 전자 장치의 동작 방법은 전자 장치에서 제공 가능한 적어도 하나의 어플리케이션 중 제1 어플리케이션에 대한 제어를 요청하는 명령을 수신하는 단계; 상기 적어도 하나의 어플리케이션 및 상기 적어도 하나의 어플리케이션 각각의 실행을 지원하는 적어도 하나의 지원 요소에 대한 사용 이력에 대응되는 제1 정보에 기초하여 어플리케이션 및 지원 요소에 대한 이용 가능성을 예측하는 기계 학습 모델(Machine learning model)에서 출력되는, 제2 정보를 획득하는 단계; 및 상기 제1 어플리케이션에 대응되는 적어도 하나의 지원 요소인 제1 지원 요소에 대한 이용 가능성인 제1 이용 가능성을 포함하는 상기 제2 정보에 기초하여, 상기 명령에 대응하는 기능을 실행하는 단계를 포함한다.

Description

전자 장치 및 그의 동작 방법{ELECTRONIC APPARATUS AND OPERATING METHOD FOR THE ELECTRONIC APPARATUS}
다양한 기능을 수행할 수 있는 전자 장치 및 그의 동작 방법에 대한 것이다.
구체적으로, 다양한 기능을 수행하기 위한 다양한 어플리케이션을 실행할 수 있는 전자 장치 및 그의 동작 방법에 대한 것이다.
컴퓨터, 스마트 폰, 태블릿 PC, PDA 등과 같은 전자 장치들이 사용자와 밀접하게 이용되고 있다. 사용자가 개인적으로 이용하는 전자 장치가 널리 보급 및 이용되면서, 전술한 전자 장치는 다양한 기능 또는 서비스를 사용자에게 제공하도록 개발되고 있다.
예를 들어, 전자 장치에 적용되는 통신 기술 또는 통신 연결 기능이 개발됨에 따라서, 디스플레이 장치가 외부 장치와 유무선의 통신을 통하여 다양한 기능 또는 서비스를 제공할 수 있도록, 전자 장치가 개발되고 있다. 예를 들어, 전자 장치는 외부 장치(예를 들어, 게임 콘솔 장치, 컨텐츠 제공 서버 등)와 유무선의 통신으로 연결되고, 전술한 유무선의 통신을 통하여 외부 장치로부터 컨텐츠(예를 들어, 게임 컨텐츠, 영화 컨텐츠, 또는 기타 동영상 컨텐츠 등)를 제공받을 수 있다.
전술한 바와 같이, 전자 장치가 제공할 수 있는 다양한 기능 또는 서비스들 중에서, 사용자가 원하는 서비스 또는 사용자가 원하지 않는 서비스가 존재할 수 있다. 예를 들어, 전자 장치의 정당한 사용자(예를 들어, 소유자, 등록된 사용자 등)가 원하지 않는 서비스의 실행이 요청된 경우, 상기 요청에 따른 동작을 수행하지 않는 것이 사용자의 의도에 부합할 수 있다. 따라서, 사용자의 의도에 부합하는 방향으로, 전자 장치에서 수행될 수 있는 소정 서비스의 실행을 제어할 수 있는 장치 및 방법을 제공할 필요가 있다.
개시된 실시예는, 전자 장치의 사용자의 의도에 부합하는 방향으로, 요청된 서비스의 실행을 제어할 수 있는 전자 장치 및 그의 동작 방법의 제공을 목적으로 한다.
예를 들어, 개시된 실시예는, 전자 장치의 사용 이력에 기초하여 요청된 서비스의 실행을 제어함으로써, 전자 장치의 사용자의 의도에 부합하는 방향으로, 요청된 서비스의 실행을 제어할 수 있는 전자 장치 및 그의 동작 방법의 제공을 목적으로 한다.
개시된 실시예에 따른 전자 장치의 동작 방법은, 전자 장치에서 제공 가능한 적어도 하나의 어플리케이션 중 제1 어플리케이션에 대한 제어를 요청하는 명령을 수신하는 단계; 상기 적어도 하나의 어플리케이션 및 상기 적어도 하나의 어플리케이션 각각의 실행을 지원하는 적어도 하나의 지원 요소에 대한 사용 이력에 대응되는 제1 정보에 기초하여 어플리케이션 및 지원 요소에 대한 이용 가능성을 예측하는 기계 학습 모델(Machine learning model)에서 출력되는, 제2 정보를 획득하는 단계; 및 상기 제1 어플리케이션에 대응되는 적어도 하나의 지원 요소인 제1 지원 요소에 대한 이용 가능성인 제1 이용 가능성을 포함하는 상기 제2 정보에 기초하여, 상기 명령에 대응하는 기능을 실행하는 단계를 포함한다.
예를 들어, 상기 기계 학습 모델은 시계열 데이터인 상기 제1 정보에 시간 윈도우(time window)를 적용하여 획득되는 복수개의 학습 데이터에 기초하여 상기 이용 가능성을 예측하도록 훈련(training)된 기계 학습 모델이 될 수 있다.
예를 들어, 상기 명령에 대응하는 기능을 실행하는 단계는 상기 제1 이용 가능성을 제1 값과 비교한 결과에 기초하여, 상기 명령에 대응하는 기능을 실행하는 단계를 포함할 수 있다.
예를 들어, 상기 명령에 대응하는 기능을 실행하는 단계는 상기 제1 이용 가능성이 제1 값 이하이면, 상기 전자 장치에 등록된 사용자 정보를 확인하기 위한 제1 사용자 인터페이스 화면을 제공하는 단계; 및 상기 제1 사용자 인터페이스 화면을 통하여 수신되는 사용자 입력에 기초하여, 상기 명령에 대응하는 기능을 실행하는 단계를 포함할 수 있다.
예를 들어, 상기 제2 정보를 획득하는 단계는 상기 제1 정보에 포함되는, 상기 명령이 수신되는 시점 이전의 제1 기간 동안에 획득된 적어도 하나의 데이터를 상기 기계 학습 모델로 입력하고, 상기 기계 학습 모델에서 출력되는 출력 데이터를 상기 제2 정보로 획득할 수 있다.
예를 들어, 개시된 실시예에 따른 전자 장치의 동작 방법은 상기 제2 정보에 기초한 자동 제어를 수행할지 여부를 식별하는 단계; 및 상기 자동 제어에 대응한 기능을 미수행하는 것으로 식별되면, 상기 명령이 수신되면 상기 명령에 대응한 기능을 실행하는 단계를 더 포함할 수 있다.
예를 들어, 상기 제1 정보를 획득하는 단계는 제1 기간 동안에 상기 적어도 하나의 어플리케이션 각각과 그에 대응되는 적어도 하나의 지원 요소에 대한 사용 빈도 및 사용 시간 중 적어도 하나에 대한 정보를 상기 제1 정보로 획득하는 단계를 포함할 수 있다.
예를 들어, 상기 제2 정보를 획득하는 단계는 상기 기계 학습 모델로, 상기 명령이 수신되는 시점에 대응되어 상기 제1 정보 상에 설정된 상기 시간 윈도우에 포함되는 데이터를 입력하는 단계; 및 상기 데이터의 입력에 대응하여 상기 기계 학습 모델에서 출력되는 출력 데이터를 상기 제2 정보로 획득하는 단계를 포함할 수 있다.
예를 들어, 개시된 실시예에 따른 전자 장치의 동작 방법은 상기 적어도 하나의 어플리케이션 및 상기 적어도 하나의 지원 요소에 대한 사용 이력이 새롭게 발생하면, 상기 새롭게 발생된 사용 이력에 기초하여 상기 제1 정보를 업데이트하는 단계를 더 포함할 수 있다.
예를 들어, 개시된 실시예에 따른 전자 장치의 동작 방법은 제1 정보가 업데이트되면, 상기 업데이트된 제1 정보에 기초하여 상기 기계 학습 모델을 훈련시키는 단계를 더 포함할 수 있다.
개시된 실시예에 따른 전자 장치는 적어도 하나의 인스트럭션을 저장하는 메모리; 및 상기 적어도 하나의 인스트럭션을 실행하는 프로세서를 포함한다. 상기 프로세서는 상기 적어도 하나의 인스트럭션을 실행하여, 전자 장치에서 제공 가능한 적어도 하나의 어플리케이션 중 제1 어플리케이션에 대한 제어를 요청하는 명령을 수신하고, 상기 적어도 하나의 어플리케이션 및 상기 적어도 하나의 어플리케이션 각각의 실행에 이용되는 적어도 하나의 지원 요소에 대한 사용 이력에 대응되는 제1 정보에 기초하여 어플리케이션 및 지원 요소에 대한 이용 가능성을 예측하는 기계 학습 모델(Machine learning model)에서 출력되는, 제2 정보를 획득하며, 상기 제1 어플리케이션 및 상기 제1 어플리케이션의 실행에 이용되는 제1 지원 요소에 대한 이용 가능성인 제1 이용 가능성을 나타내는 상기 제2 정보에 기초하여, 상기 명령에 대응하는 기능을 실행한다.
예를 들어, 상기 기계 학습 모델은 시계열 데이터인 상기 제1 정보에 시간 윈도우(time window)를 적용하여 획득되는 복수개의 학습 데이터에 기초하여 상기 이용 가능성을 예측하도록 훈련(training)된 기계 학습 모델이 될 수 있다.
예를 들어, 상기 프로세서는 상기 제1 이용 가능성을 제1 값과 비교한 결과에 기초하여, 상기 명령에 대응하는 기능을 실행할 수 있다.
예를 들어, 개시된 실시예에 따른 전자 장치는 디스플레이; 및 사용자 인터페이스를 더 포함할 수 있다. 예를 들어, 상기 프로세서는 상기 제1 이용 가능성이 제1 값 이하이면, 상기 디스플레이 상으로 상기 전자 장치에 등록된 사용자 정보를 확인하기 위한 제1 사용자 인터페이스 화면이 출력되도록 제어하며, 상기 사용자 인터페이스를 통하여 수신되는 사용자 입력에 기초하여, 상기 명령에 대응하는 기능을 실행할 수 있다.
예를 들어, 상기 프로세서는 상기 제1 정보에 포함되는, 상기 명령이 수신되는 시점 이전의 제1 기간 동안에 획득된 적어도 하나의 데이터를 상기 기계 학습 모델로 입력하고, 상기 기계 학습 모델에서 출력되는 출력 데이터를 상기 제2 정보로 획득할 수 있다.
예를 들어, 상기 프로세서는 상기 제2 정보에 기초한 자동 제어를 수행할지 여부를 식별하고, 상기 자동 제어에 대응한 기능을 미수행하는 것으로 식별되면, 상기 명령이 수신되면 상기 명령에 대응한 기능을 실행할 수 있다.
예를 들어, 상기 프로세서는 제1 기간 동안에 상기 적어도 하나의 어플리케이션 각각과 그에 대응되는 적어도 하나의 지원 요소에 대한 사용 빈도 및 사용 시간 중 적어도 하나에 대한 정보를 상기 제1 정보로 획득할 수 있다.
예를 들어, 상기 프로세서는 상기 기계 학습 모델로, 상기 명령이 수신되는 시점에 대응되어 상기 제1 정보 상에 설정된 상기 시간 윈도우에 포함되는 데이터를 입력하고, 상기 데이터의 입력에 대응하여 상기 기계 학습 모델에서 출력되는 출력 데이터를 상기 제2 정보로 획득할 수 있다.
예를 들어, 상기 프로세서는 상기 적어도 하나의 어플리케이션 및 상기 적어도 하나의 지원 요소에 대한 사용 이력이 새롭게 발생하면, 상기 새롭게 발생된 사용 이력에 기초하여 상기 제1 정보를 업데이트할 수 있다.
예를 들어, 상기 프로세서는 제1 정보가 업데이트되면, 상기 업데이트된 제1 정보에 기초하여 상기 기계 학습 모델을 훈련시킬 수 있다.
개시된 실시예에 따른 전자 장치 및 그의 동작 방법은 전자 장치의 사용자의 의도에 부합하는 방향으로, 요청된 명령의 실행을 자동으로 제어할 수 있다. 그에 따라서, 개시된 실시예에 따른 전자 장치 및 그의 동작 방법은 사용자 조작 편리성 및 만족도를 증가시킬 수 있다.
도 1은 개시된 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 2는 개시된 실시예에 따른 전자 장치를 나타내는 일 블록도이다.
도 3은 개시된 실시예에 따른 전자 장치를 나타내는 다른 블록도이다.
도 4는 개시된 실시예에 따른 전자 장치를 나타내는 다른 블록도이다.
도 5는 개시된 실시예에 따른 전자 장치를 나타내는 다른 블록도이다.
도 6은 개시된 실시예에 따른 전자 장치를 나타내는 또 다른 블록도이다.
도 7은 개시된 실시예에 따른 전자 장치의 동작 방법을 나타내는 일 플로우차트이다.
도 8은 개시된 실시예에 따른 전자 장치에서 제공 가능한 지원 요소들을 설명하기 위한 일 도면이다.
도 9는 개시된 실시예에 따른 전자 장치에서 제공 가능한 지원 요소들을 설명하기 위한 다른 도면이다.
도 10은 개시된 실시예에 따른 전자 장치에서 제공 가능한 지원 요소들을 설명하기 위한 다른 도면이다.
도 11은 개시된 실시예에 따른 전자 장치에서 제공 가능한 지원 요소들을 설명하기 위한 다른 도면이다.
도 12는 개시된 실시예에서 획득되는 제1 정보를 설명하기 위한 일 도면이다.
도 13은 개시된 실시예에서 획득되는 제1 정보를 설명하기 위한 다른 도면이다.
도 14는 개시된 실시예에서 획득되는 제1 정보를 설명하기 위한 또 다른 도면이다.
도 15는 개시된 실시예에서 이용되는 기계 학습 모델의 훈련 동작을 설명하기 위한 일 도면이다.
도 16은 개시된 실시예에서 이용되는 기계 학습 모델의 훈련 동작을 설명하기 위한 다른 도면이다.
도 17은 개시된 실시예에서 이용되는 기계 학습 모델을 설명하기 위한 일 도면이다.
도 18은 개시된 실시예에서 이용되는 기계 학습 모델을 설명하기 위한 다른 도면이다.
도 19는 개시된 실시예에서 이용되는 기계 학습 모델을 설명하기 위한 또 다른 도면이다.
도 20은 개시된 실시예에서 획득되는 제2 정보를 설명하기 위한 일 도면이다.
도 21a은 개시된 실시예에 따른 전자 장치의 동작 방법을 나타내는 다른 플로우차트이다.
도 21b는 도 21a에 도시된 전자 장치의 동작 방법에서 수행되는 동작을 설명하기 위한 일 도면이다.
도 21c는 도 22a에 도시된 전자 장치의 동작 방법에서 수행되는 동작을 설명하기 위한 다른 도면이다.
도 22a는 개시된 실시예에 따른 전자 장치의 동작 방법을 나타내는 다른 플로우차트이다.
도 22b는 도 22a에 도시된 전자 장치의 동작 방법에서 수행되는 동작을 설명하기 위한 일 도면이다.
도 22c는 도 22a에 도시된 전자 장치의 동작 방법에서 수행되는 동작을 설명하기 위한 다른 도면이다.
도 23은 개시된 실시예에 따른 전자 장치의 동작 방법을 나타내는 다른 플로우차트이다.
도 24는 개시된 실시예에 따른 전자 장치의 동작 방법을 나타내는 다른 플로우차트이다.
도 25는 개시된 실시예에 따른 전자 장치의 동작 방법을 나타내는 다른 플로우차트이다.
도 26은 서버와 통신하는 전자 장치를 나타내는 도면이다.
도 27은 개시된 실시예에 따른 전자 장치와 통신하는 서버를 나타내는 블록도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 또한, 도면 전체에 있어서, 동일한 구성에 대하여는 동일한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서 다양한 곳에 등장하는 "일부 실시예에서" 또는 "일 실시예에서" 등의 어구는 반드시 모두 동일한 실시예를 가리키는 것은 아니다.
일부 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 프로세서 또는 마이크로프로세서들에 의해 구현되거나, 의도하는 기능을 수행하기 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립트 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. 모듈 및 구성등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.
또한, 'A, B, 및 C 중 적어도 하나'라는 기재는 'A', 'B', 'C', 'A 및 B', 'A 및 C', 'B 및 C', 및 'A, B, 및 C' 중 어느 하나가 될 수 있음을 의미한다.
도 1은 개시된 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
개시된 실시예에 따른 전자 장치는, 다양한 기능 또는 서비스를 제공할 수 있는 컴퓨팅 장치로, TV, 디지털 TV(또는, 스마트 TV), 셋 톱 박스(STB: set top box), 휴대폰, 태블릿 PC, 컨텐츠 재생 장치, 디지털 카메라, 캠코더, 노트북 컴퓨터(laptop computer), 태블릿 PC, 데스크탑, 전자책 단말기, 디지털 방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 착용형 장치(wearable device), 시계 등과 같은 다양한 형태로 구현될 수 있다. 또한, 개시된 실시예에 따른 전자 장치는 냉장고, 공기 청정기, 세탁기, 건조기, 청소기, 난방 장치, 시계, 알람 장치 등의 생활 가전(DA: Digital Appliance)이 될 수 있다. 또한, 전자 장치는 고정된 위치에 배치되는 고정형 전자 장치 또는 휴대 가능한 형태를 갖는 이동형 전자 장치일 수 있으며, 디지털 방송 수신이 가능한 디지털 방송 수신기일 수 있다.
전자 장치의 기술 개발로 인하여, 다양한 기능 또는 서비스를 구현할 수 있는 디스플레이 장치들이 개발되고 있다. 예를 들어, 디지털 TV는 대표적인 기능인 방송 수신에 따른 방송 컨텐츠 제공 기능 이외에도, 다양한 기능 또는 서비스를 사용자에게 제공할 수 있다. 예를 들어, 디지털 TV는 게임 기능, 영상 통화 기능, 홈 트레이닝 서비스, 동영상 컨텐츠 제생 서비스 제공할 수 있다.
전술한 바와 같이, 전자 장치가 제공할 수 있는 다양한 기능 또는 서비스들 중에서, 사용자가 원하는 서비스 또는 사용자가 원하지 않는 서비스가 존재할 수 있다.
또는, 전자 장치에서 일 서비스를 제공하고 있는 도중에 다른 서비스가 요청되는 경우, 이러한 제어 요청이 전자 장치에 대하여 정당한 권한 또는 우선 권한을 가지는 사용자가 의도하지 않는 경우가 존재할 수 있다.
예를 들어, 이하에서는, 전자 장치에 대하여 제어 또는 관리 권한, 정당한 이용 권한 또는 우선 이용 권한을 가진 사용자를 설명의 편의 상 '등록 사용자'라 칭하도록 한다.
도 1을 참조하면, 개시된 실시예에 따른 전자 장치가 디스플레이를 포함하여 영상 데이터를 시각적으로 출력하는 디스플레이 장치(예를 들어, 디지털 TV)인 경우를 예로 들어서 도시 및 설명하였다.
도 1을 참조하면, 전자 장치(100)가 디스플레이(120)를 포함하는 디지털 TV 인 경우, 전자 장치(100)는 방송 컨텐츠 제공 기능, 동영상 재생 기능, 게임 기능 등의 다양한 기능을 수행할 수 있다.
예를 들어, 전자 장치(100)는 등록 사용자가 시청각 자료를 시청하는 중일 수 있다. 등록 사용자가 동영상 컨텐츠를 시청하는 도중에, 등록 사용자가 아닌 사용자가 전자 장치(100)를 제어할 수 있는 원격 제어 장치(101)를 이용하여 동영상 컨텐츠의 재생을 중단하려고 할 수 있다.
전술한 예시에서, 원격 제어 장치(101)로부터 수신되는 명령을 전자 장치(100)를 수신하고, 수신된 명령을 실행하여 동영상 컨텐츠의 재생을 중단하는 경우, 등록 사용자의 의도와 무관하게 전자 장치(100)가 동작하게 된다. 따라서, 전자 장치(100)의 등록 사용자에게 불편함을 줄 수 있다.
또 다른 예로, 전자 장치(100)는 등록 사용자가 게임 컨트롤러(102)를 이용하여 게임 컨텐츠를 이용하는 중일 수 있다. 즉, 전자 장치(100)는 게임 기능을 수행 중에 있다. 등록 사용자가 게임을 하는 도중에, 등록 사용자가 아닌 사용자가 전자 장치(100)를 제어할 수 있는 원격 제어 장치(101)를 이용하여 게임 재생을 중단시키고, 방송 컨텐츠를 시청하기 위한 명령을 전자 장치(100)로 입력할 수 있다.
전술한 예시에서, 원격 제어 장치(101)로부터 수신되는 명령을 실행하여 게임 재생을 중단하는 경우, 등록 사용자의 의도와 무관하게 전자 장치(100)가 동작하게 된다. 따라서, 전자 장치(100)의 등록 사용자에게 불편함을 줄 수 있다.
전술한 예시에서와 같이, 다양한 기능을 제공하는 전자 장치(100)가 정당한 이용 권한을 갖는 사용자(예를 들어, '등록 사용자')의 의도와 무관하게 동작하는 경우, 전술한 불편함을 방지하여 등록 사용자에게 불편함을 주지 않도록 할 필요가 있다.
이하에서는, 도 2 내지 도 27을 참조하여, 등록 사용자의 의도에 부합하는 방향으로, 수신되는 명령에 대한 동작 수행을 자동으로 제어함으로써, 전자 장치가 정당한 이용 권한을 갖는 사용자의 의도에 부합하는 방향으로 동작할 수 있도록 하는, 개시된 실시예에 따른 전자 장치 및 그의 동작 방법을 상세히 설명한다.
도 2는 개시된 실시예에 따른 전자 장치를 나타내는 일 블록도이다. 도 2에 도시된 전자 장치(200)는 도 1에서 설명한 전자 장치(100)에 대응될 수 있다. 따라서, 도 1에서와 중복되는 설명은 생략한다.
도 2를 참조하면, 전자 장치(200)는 적어도 하나의 인스트럭션을 저장하는 메모리(215), 및 상기 적어도 하나의 인스트럭션을 실행하는 프로세서(210)를 포함한다.
예를 들어, 프로세서(210)는 적어도 하나의 인스트럭션을 수행하여, 의도하는 동작이 수행되도록 제어할 수 있다. 여기서, 적어도 하나의 인스트럭션은 프로세서(210) 내에 포함되는 내부 메모리(미도시) 또는 프로세서(210)와 별도로 전자 장치(200) 내에 포함되는 메모리(215)에 저장되어 있을 수 있다.
구체적으로, 프로세서(210)는 적어도 하나의 인스트럭션을 수행하여, 의도하는 동작이 수행되도록 전자 장치(200) 내부에 포함하는 적어도 하나의 구성들을 제어할 수 있다. 따라서, 프로세서(210)가 소정 동작들을 수행하는 경우를 예로 들어 설명하더라도, 프로세서(210)가 소정 동작들이 수행되도록 전자 장치(200) 내부에 포함하는 적어도 하나의 구성들을 제어하는 것을 의미할 수 있을 것이다.
또한, 프로세서(210)는 하나의 프로세서로 형성되는 경우를 예로 들어 설명 및 도시하였으나, 복수개의 프로세서들이 포함되는 형태로 형성될 수도 있다.
예를 들어, 프로세서(210)는 전자 장치(200)의 외부에서부터 입력되는 신호 또는 데이터를 저장하거나, 전자 장치(200)에서 수행되는 다양한 작업에 대응되는 저장 영역으로 사용되는 RAM(미도시), 전자 장치(200)의 제어를 위한 제어 프로그램, 소정 기능 또는 서비스를 제공하기 위한 어플리케이션, 및/또는 복수개의 인스트럭션이 저장된 ROM(미도시) 및 적어도 하나의 프로세서 (Processor)(미도시)를 포함할 수 있다. 프로세서(미도시)는 비디오에 대응되는 그래픽 처리를 위한 그래픽 프로세서(Graphic Processing Unit, 미도시)를 포함할 수 있다. 프로세서(미도시)는 코어(core, 미도시)와 GPU(미도시)를 통합한 SoC(System On Chip)로 구현될 수 있다. 또한, 프로세서(210)는 싱글 코어 이상의 멀티 코어를 포함할 수 있다. 예를 들어, 프로세서(210)는 듀얼 코어, 트리플 코어, 쿼드 코어, 헥사 코어, 옥타 코어, 데카 코어, 도데카 코어, 헥사 데시멀 코어 등을 포함할 수 있다.
메모리(215)는 적어도 하나의 인스트럭션, 데이터, 정보, 및/또는 어플리케이션 등을 저장할 수 있다. 예를 들어, 메모리(215)는 프로세서(210)가 실행하는 적어도 하나의 인스트럭션을 저장하고 있을 수 있다. 예를 들어, 메모리(215)는 프로세서(210)가 실행하는 적어도 하나의 프로그램을 저장하고 있을 수 있다. 예를 들어, 메모리(215)는 소정 서비스를 제공하기 위한 어플리케이션을 저장하고 있을 수 있다.
예를 들어, 메모리(215)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
개시된 실시예에서, 전자 장치(200)의 프로세서(210)는 적어도 하나의 인스트럭션을 실행하여, 이하의 동작들이 수행되도록 제어한다. 구체적으로, 프로세서(210)는 전자 장치(200)에서 제공 가능한 적어도 하나의 어플리케이션 중 제1 어플리케이션에 대한 제어를 요청하는 명령을 수신한다. 그리고, 상기 적어도 하나의 어플리케이션 및 상기 적어도 하나의 어플리케이션 각각의 실행에 이용되는 적어도 하나의 지원 요소에 대한 사용 이력에 대응되는 제1 정보에 기초하여 어플리케이션 및 지원 요소에 대한 이용 가능성을 예측하는 기계 학습 모델(Machine learning model)에서 출력되는, 제2 정보를 획득한다. 그리고, 상기 제1 어플리케이션 및 상기 제1 어플리케이션의 실행에 이용되는 제1 지원 요소에 대한 이용 가능성인 제1 이용 가능성을 나타내는 상기 제2 정보에 기초하여, 상기 명령에 대응하는 기능을 실행한다.
예를 들어, 프로세서(210)는 제2 정보에 기초하여 수신된 명령의 실행을 제어할 수 있다. 예를 들어, 프로세서(210)는 제2 정보에 기초하여 수신된 명령을 실행하거나 실행하지 않을 수 있다. 여기서, 명령을 실행한다는 것은, 명령에 대응되는 기능이 실행되도록 적어도 하나의 지원 요소를 구동, 연결, 활성화 및/또는 이용하는 것을 포함할 수 있다. 예를 들어, 스크린 미러링 서비스의 실행을 요청하는 명령이 수신되고, 프로세서(210)가 제2 정보에 근거하여 명령에 대응하는 기능을 실행하기로 결정한 경우, 프로세서(210)는 스크린 미러링 서비스의 실행에 필요한 지원 요소, 예를 들어, 와이파이 모듈 등을 이용할 수 있다. 그에 따라서, 와이파이 모듈을 통하여 수신되는 미러링 데이터에 근거하여 스크린 미러링 서비스를 제공할 수 있다.
예를 들어, 명령에 대응하는 기능을 실행하는 것은, 수신되는 명령에서 요청되는 서비스, 또는 명령에서 요청되는 어플리케이션의 실행 등을 포함할 수 있다. 또는, 명령에 대응하는 기능을 실행하는 것은, 수신되는 명령에 대응되는 어플리케이션에 대응되는 적어도 하나의 지원 요소를 이용하여, 해당 어플리케이션이 실행되도록 제어하는 것을 의미할 수 있다.
예를 들어, 전술한 기계 학습 모델은 어플리케이션 및 그에 대응되는 적어도 하나의 지원 요소에 대한 사용 이력으로부터 전자 장치(200)에 대한 사용 패턴을 예측(prediction)하도록 학습 또는 훈련되는 기계 학습 모델이 될 수 있다. 예를 들어, 전자 장치(200)에 대한 사용 패턴은, 전자 장치(200)의 적법한 사용자 또는 정당한 사용자의 의도에 가장 부합하도록, 어플리케이션 및 그에 대응되는 적어도 하나의 지원 요소가 사용될 가능성을 의미할 수 있다.
예를 들어, 전자 장치(200)는 소정 서비스, 기능 또는 특정 동작을 수행하는 어플리케이션을 적어도 하나 저장할 수 있다. 그에 따라서, 전자 장치(200)는 적어도 하나의 서비스, 기능 또는 특정 동작을 사용자에게 제공할 수 있다.
예를 들어, 어플리케이션(application)은 서비스, 기능, 또는 특정 동작을 수행하는 프로그램 또는 프로세서를 의미할 수 있다. 구체적으로, 어플리케이션은 서비스, 기능, 또는 특정 동작을 수행하는 적어도 하나의 인스트럭션으로 형성될 수 있다. 또한, 어플리케이션은 전자 장치(200)에 포함되는 프로세서(210) 또는 메모리(215) 내에 저장될 수 있다. 예를 들어, 전자 장치(200)에 포함 또는 저장될 수 있는 어플리케이션은, 방송 컨텐츠 재생 어플리케이션, 동영상 컨텐츠 제공 어플리케이션, 화상 회의 어플리케이션 어플리케이션은 영상 통화 어플리케이션, 화상 교육 어플리케이션, 미러링 어플리케이션, 게임 어플리케이션 등을 예로 들 수 있다.
예를 들어, 어플리케이션은 전자 장치(200)의 제조사에서 제작되어 전자 장치(200)에 저장되어 있을 수 있다. 또는, 어플리케이션은 어플리케이션 제공자 또는 컨텐츠 제공자에 의해서 제작 또는 배포될 수 있다.
예를 들어, 어플리케이션은 어플리케이션 스토어(예를 들어, 갤럭시 스토어 등)를 통해 온라인으로 배포(예를 들어, 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버 등을 통하여 배포될 수 있을 것이다.
어플리케이션이 수행되면 의도하는 동작이 수행되도록 하는 적어도 하나의 태스크들이 수행될 수 있다. 즉, 어플리케이션의 실행은 적어도 하나의 태스크의 수행을 수반할 수 있다. 구체적으로, 하나의 어플리케이션의 실행이 하나의 태스크 수행을 동반할 수 있으며, 또는 하나의 어플리케이션의 실행이 복수개의 태스크의 수행을 동반할 수 있다.
예를 들어, 어플리케이션이 실행되기 위해서 또는 어플리케이션의 실행에 수반되는 태스크가 수행되기 위해서, 전자 장치(200) 내의 적어도 하나의 지원 요소들의 동작이 요구될 수 있다. 예를 들어, 지원 요소는 전자 장치(200)에서 소정 동작, 가능, 서비스, 또는 어플리케이션이 수행되도록 하기 위해서 필요한 하드웨어 자원, 모듈, 및 시스템 중 적어도 하나, 및/또는 소프트웨어 자원, 모듈 및 시스템 중 적어도 하나를 의미할 수 있다. 예를 들어, 지원 요소는 전자 장치(200)에서 어플리케이션이 수행될 때 이용되는 하드웨어 자원 및/또는 소프트웨어 자원을 의미할 수 있다.
여기서, 전자 장치(200)에서 제공 가능한 지원 요소는 이하에서 도 8 내지 도 11을 참조하여 상세히 설명한다.
또한, 개시된 실시예에 따른 전자 장치(200)에서 획득되는 제1 정보는 이하에서 도 12 내지 도 14를 참조하여 상세히 설명한다.
또한, 개시된 실시예에 따른 전자 장치(200)에서 이용되는 기계 학습 모델은 이하에서 도 15 내지 도 19를 참조하여 상세히 설명한다.
또한, 개시된 실시예에 따른 전자 장치(200)에서 획득되는 제2 정보는 이하에서 도 17 내지 도 20을 참조하여 상세히 설명한다.
도 3은 개시된 실시예에 따른 전자 장치를 나타내는 다른 블록도이다. 도 3에 도시된 전자 장치(300)는 도 1 또는 도 2에서 설명한 전자 장치(100 또는 200)에 대응될 수 있다. 또한, 도 3에 도시된 구성들에 있어서, 도 2에서와 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다. 따라서, 도 1 및 도 2에서와 중복되는 설명은 생략한다.
도 3을 참조하면, 전자 장치(300)는 디스플레이(200)를 포함하여 영상 데이터를 시각적으로 출력하는 디스플레이 장치가 될 수 있다. 즉, 전자 장치(300)는 프로세서(210), 메모리(215) 및 디스플레이(220)를 포함할 수 있다.
예를 들어, 전자 장치(300)가 디스플레이(220)를 포함하여, 적어도 하나의 컨텐츠를 디스플레이 할 수 있다. 예를 들어, 전자 장치(300)는 TV, 디지털 TV, 디지털 방송용 단말기, 태블릿 PC, 스마트 폰, 모바일 폰, 컴퓨터, 노트북 등과 같이 다양한 형태로 존재할 수 있다. 여기서, 디지털 TV는 스마트 TV로 호칭 될 수도 있다.
디스플레이(220)는 프로세서(210)의 제어에 따라서, 이미지를 화면 상으로 출력할 수 있다. 예를 들어, 프로세서(210)는 의도하는 이미지가 디스플레이(220) 상으로 출력되도록 디스플레이(220)를 제어할 수 있다.
디스플레이(220)는 이미지를 화면 상으로 출력한다. 예를 들어, 디스플레이(220)는 비디오 데이터를 사용자가 시각적으로 인식할 수 있도록, 내부적으로 포함되는 디스플레이 패널(미도시)을 통하여, 비디오 데이터에 대응되는 이미지를 출력할 수 있다. 구체적으로, 컨텐츠를 형성하는 동영상 데이터는 복수개의 프레임 이미지들을 포함할 수 있으며, 디스플레이(220)는 프로세서(210)의 제어에 따라서 복수개의 프레임 이미지들을 연속적으로 표시함으로써, 동영상 컨텐츠를 재생할 수 있다.
예를 들어, 디스플레이(220)는 프로세서(210)의 제어에 따라서 동영상 컨텐츠에 대응되는 컨텐츠 이미지를 화면 상으로 출력할 수 있다.
도 4는 개시된 실시예에 따른 전자 장치를 나타내는 다른 블록도이다. 도 4에 도시된 전자 장치(400)는 도 1 내지 도 3에서 설명한 전자 장치(100, 200 또는 300)에 대응될 수 있다. 또한, 도 4에 도시된 구성들에 있어서, 도 2에서와 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다. 따라서, 도 1 내지 도 3에서와 중복되는 설명은 생략한다.
도 4를 참조하면, 전자 장치(400)는 프로세서(210), 메모리(215) 및 통신 인터페이스(230)를 포함할 수 있다.
통신 인터페이스(230)는 적어도 하나의 외부 장치와 통신을 수행할 수 있다.
여기서, '통신'은 데이터, 신호, 요청, 및/또는 명령 등을 송신 및/또는 수신하는 동작을 의미할 수 있다.
통신 인터페이스(230)는 적어도 하나의 외부 장치와 유선 또는 무선 통신을 수행할 수 있다. 예를 들어, 외부 장치는 외부 디스플레이(410)가 될 수 있다. 다른 예로, 외부 장치(미도시)는 컨텐츠를 제공할 수 있는 소스 장치, 서버, 저장 장치 등이 될 수 있다. 또는, 외부 장치(미도시)는 컨텐츠를 제공할 수 있는 인터넷 서버 등이 될 수 있다. 또는, 외부 장치(미도시)는 데이터를 처리하거나 제공할 수 있는 전자 장치 또는 서버 등이 될 수 있다.
예를 들어, 통신 인터페이스(230)는 적어도 하나의 외부 장치와 유선 또는 무선 통신 통신을 수행하기 위한 통신 모듈, 통신 회로, 통신 장치, 입/출력 포트, 및 입/출력 플러그 중 적어도 하나를 포함할 수 있다.
예를 들어, 통신 인터페이스(230)는 외부 장치, 예를 들어, 제어 장치와 무선 통신을 수행하는 적어도 하나의 무선 통신 모듈, 무선 통신 회로, 또는 무선 통신 장치를 포함할 수 있다.
예를 들어, 통신 인터페이스(230)는 근거리에 위치하는 원격 제어 장치(remote controller)(미도시)로부터 제어 명령을 수신할 수 있는 근거리 통신 모듈, 예를 들어, IR(infrared) 통신 모듈 등을 포함할 수 있다. 이 경우, 통신 인터페이스(230)는 원격 제어 장치(미도시)로부터 제어 신호를 수신할 수 있다.
또 다른 예로, 통신 인터페이스(230)는 블루투스, 와이파이, BLE(Bluetooth Low Energy), NFC/RFID, 와이파이 다이렉트(Wifi Direct), UWB, 또는 ZIGBEE 등의 무선 통신 규격에 따른 통신을 수행하는 적어도 하나의 통신 모듈(미도시)을 포함할 수 있다. 또는, 통신 인터페이스(230)는 원거리 통신 규격에 따라서 원거리 통신을 지원하기 위한 서버(미도시)와 통신을 수행하는 통신 모듈(미도시)을 더 포함할 수 있다. 예를 들어, 통신 인터페이스(230)는 인터넷 통신을 위한 네트워크를 통하여 통신을 수행하는 통신 모듈(미도시)을 포함할 수 있다. 또한, 통신 인터페이스(230)는 3G, 4G, 5G 및/또는 6G 등의 통신 규격에 따르는 통신 네트워크를 통하여 통신을 수행하는 통신 모듈(미도시)를 포함할 수 있다.
또 다른 예로, 통신 인터페이스(230)는 외부 장치와 유선으로 통신하기 위해서, 외부 장치와 유선 케이블로 연결되기 위한 적어도 하나의 포트(미도시)를 포함할 수 있다. 예를 들어, 통신 인터페이스(230)는 HDMI 포트(High-Definition Multimedia Interface port), 컴포넌트 잭(component jack), PC 포트(PC port), 및 USB 포트(USB port) 중 적어도 하나를 포함할 수 있다. 그에 따라서, 통신 인터페이스(230)는 적어도 하나의 포트(미도시)를 통하여 유선 연결된 외부 장치와 통신을 수행할 수 있다. 여기서, 포트는 케이블, 통신선, 또는 플러그 등을 연결 또는 삽입할 수 있는 물리적 장치 구성을 의미할 수 있다.
전술한 바와 같이, 통신 인터페이스(230)는 전자 장치(400)와 외부 장치 간의 통신을 지원하기 위한 적어도 하나의 지원 요소들을 포함할 수 있다. 여기서, 지원 요소는 전술한, 통신 모듈, 통신 회로, 통신 장치, (데이터의 입/출력을 위한) 포트, (데이터의 입/출력을 위한) 케이블 포트, (데이터의 입/출력을 위한) 플러그 등을 포함할 수 있다. 예를 들어, 통신 인터페이스(230)에 포함되는 적어도 하나의 지원 요소는, 이더넷(Ethernet) 통신 모듈, 와이파이 통신 모듈, 블루투스 통신 모듈, IR 통신 모듈, USB 포트, 튜너(또는, 방송 수신기), HDMI 포트, DP(display port), DVI(digital visual interface) 포트 등을 예로 들 수 있다. 또는, 전술한 적어도 하나의 지원 요소들이 통신 인터페이스(230)를 형성할 수 있다.
도 4를 참조하면, 전자 장치(400)와 연결되는 외부 장치가 외부 디스플레이(410)인 경우를 예로 들어서 도시 및 설명된다. 전자 장치(400)와 외부 디스플레이(410)는 유선 또는 무선으로 연결될 수 있다. 예를 들어, 전자 장치(400)와 외부 디스플레이(410)는 통신 인터페이스(230)에 포함되는 HDMI 포트를 통하여 연결 및 통신할 수 있다. 또 다른 예로, 전자 장치(400)와 외부 디스플레이(410)는 통신 인터페이스(230)에 포함되는 와이파이 모듈을 통하여 통신할 수 있다.
도 4를 참조하면, 전자 장치(400)는 내부에 디스플레이를 포함하지 않는 전자 장치가 될 수 있다. 예를 들어, 전자 장치(400)는 셋톱박스(STB)가 될 수 있다. 또 다른 예로, 전자 장치(400)는 컨텐츠 제공 장치, 컨텐츠 재생 장치가 될 수 있다.
또는, 전자 장치(400)는 내부에 디스플레이(미도시)를 포함하나, 내부의 디스플레이 대신에 통신 인터페이스(230)를 통하여 연결되는 외부 디스플레이(410)를 통하여 전자 장치(400)로 수신되거나 전자 장치(400)가 저장하고 있는 컨텐츠가 디스플레이되도록 제어할 수 있다. 예를 들어, 프로세서(210)는 자체적으로 저장하거나 통신 인터페이스(230)를 통하여 수신되는 컨텐츠가 외부 디스플레이(410)로 전송되도록 통신 인터페이스(230)를 제어할 수 있다. 예를 들어, 통신 인터페이스(230)는 프로세서(210)의 제어에 따라서, 컨텐츠를 외부 디스플레이(410)로 전송할 수 있다. 그러면, 외부 디스플레이(410)는 수신되는 컨텐츠를 내부적으로 포함되는 디스플레이 패널(미도시)를 통하여 출력할 수 있다. 그에 따라서, 사용자는 외부 디스플레이(410)를 통하여 출력되는 컨텐츠를 시각적으로 인식할 수 있다.
도 5는 개시된 실시예에 따른 전자 장치를 나타내는 다른 블록도이다.
도 5에 도시된 구성들에 있어서, 도 2 내지 도 4에 도시된 구성들과 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다. 도 5에 도시된 전자 장치(500)는 도 1 내지 도 4에서 설명한 전자 장치(100, 200, 300 또는 400)에 대응될 수 있다. 따라서, 디스플레이 장치(500)를 설명하는데 있어서, 도 1 내지 도 4에서와 중복되는 설명은 생략한다.
도 5를 참조하면, 전자 장치(500)는 도 2에 도시된 디스플레이 장치(300)에 비하여, 디스플레이(220), 영상 처리부(225), 오디오 처리부(240), 오디오 출력부(250), 메모리(215) 및 사용자 인터페이스(270) 중 적어도 하나를 더 포함할 수 있다.
예를 들어, 디스플레이 장치(500)는 도 2에 도시된 디스플레이 장치(200)에 비하여, 영상 처리부(225) 및 오디오 처리부(240)를 더 포함할 수 있다.
또한, 디스플레이 장치(500)는 도 2에 도시된 디스플레이 장치(200)에 비하여, 디스플레이(220), 영상 처리부(225) 및 오디오 처리부(240), 및 오디오 출력부(250)를 더 포함할 수 있다. 또한, 디스플레이 장치(500)는 도 2에 도시된 디스플레이 장치(200)에 비하여, 메모리(215) 및 사용자 인터페이스(270) 중 적어도 하나를 더 포함할 수 있다.
통신 인터페이스(230)는 프로세서(210)의 제어에 따라 소스 장치로부터 수신되는 영상 데이터 및 오디오 데이터를 연결된 프로토콜에 따라 수신하여 이를 영상 처리부(225) 및 오디오 처리부(240)로 출력할 수 있다.
통신 인터페이스(230)는 외부 장치(미도시)와 데이터, 신호, 및 명령 중 적어도 하나를 송수신하는 적어도 하나의 통신 모듈, 및 적어도 하나의 포트 중 적어도 하나를 포함할 수 있다. 구체적으로, 통신 인터페이스(230)는 통신부(232) 및 입/출력부(231)를 포함할 수 있다.
입/출력부(231)는 외부 장치로부터 신호 또는 데이터를 입력받기 위한 모듈 및 신호 또는 데이터를 외부 장치로 출력(또는 전송)하기 위한 모듈 중 적어도 하나를 포함할 수 있다.
예를 들어, 입/출력부(231)는 HDMI 포트(High-Definition Multimedia Interface port, 미도시), 컴포넌트 잭(component jack, 미도시), PC 포트(PC port, 미도시), DP(display port), DVI(digital visual interface), 썬더볼트, S/PDIF(Sony/Philips Digital Interface) 포트 및 USB 포트(USB port, 미도시) 등에 있어서, 이들 중 적어도 하나를 포함할 수 있다. 또한, 입/출력부(231)는 HDMI 포트, 컴포넌트 잭, PC 포트, DP(display port), DVI(digital visual interface), 썬더볼트, S/PDIF 포트 및 USB 포트의 조합을 포함할 수 있다. 예를 들어, 입/출력부(231)는 디스플레이 장치(500)에 재생될 동영상 데이터(예를 들어, 게임 컨텐츠)를 HDMI 포트, 컴포넌트 잭, PC 포트, 또는 USB 포트 등을 통하여 직접 수신할 수 있다.
예를 들어, 입/출력부(231)는 외부 디스플레이(예를 들어, 도 4의 410)와 HDMI 포트를 이용하여 유선 연결될 수 있다. 또 다른 예로, 입/출력부(231)는 소스 장치(미도시)와 HDMI 포트를 이용하여 유선 연결될 수 있다.
통신부(232)는 적어도 하나의 유선 또는 무선 통신 네트워크를 통해서 외부 장치와 통신을 수행한다. 예를 들어, 통신부(232)는 소스 장치(501)와 통신할 수 있다. 구체적으로, 통신부(232)는 적어도 하나의 통신 모듈, 통신 회로 등을 포함하는 형태로 형성될 수 있으며, 통신 모듈 및/또는 통신 회로를 통하여 외부 장치와 데이터를 송수신할 수 있다.
구체적으로, 통신부(232)는 블루투스, 와이파이, BLE(Bluetooth Low Energy), NFC/RFID, 와이파이 다이렉트(Wifi Direct), UWB, 또는 ZIGBEE 등의 통신 규격에 따른 통신을 수행하는 적어도 하나의 통신 모듈(미도시)를 포함할 수 있다. 또한, 통신부(232)는 인터넷 통신을 위한 네트워크를 통하여 통신을 수행하는 통신 모듈(미도시)를 포함할 수 있다. 또한, 통신부(232)는 3G, 4G, 5G, 및/또는 6G 등의 이동 통신 규격에 따르는 통신 네트워크를 포함할 수 있다.
예를 들어, 통신부(232)는 근거리에 위치하는 원격 제어 장치(remote controller)(미도시)로부터 제어 신호 또는 제어 명령을 수신할 수 있는 통신 모듈, (예를 들어, IR(infrared) 통신 모듈 등)을 포함할 수 있다. 이 경우, 통신부(232)는 원격 제어 장치(미도시)로부터 제어 명령을 수신할 수 있다.
예를 들어, 통신부(232)는 컨텐츠 제공 서버로부터 컨텐츠를 수신할 수 있다. 또 다른 예로, 통신부(232)는 디스플레이 장치(500)를 통하여 컨텐츠가 재생되는 동안에, 컨텐츠의 재생을 제어하기 위한 제어 신호를 원격 제어 장치(미도시)로부터 수신할 수 있다.
개시된 실시예에서, 통신부(232)는 이하에서 도 7을 참조하여 설명할 '제어 명령'을 수신할 수 있다. 예를 들어, 제어 명령은 이하에서 설명한 음성 제어 기능에 대응되는 오디오 데이터의 형태로 수신될 수 있다.
예를 들어, 전자 장치(500)와 통신하는 원격 제어 장치(미도시)는 사용자로부터 음성을 수신하기 위한 마이크를 포함할 수 있다. 구체적으로, 사용자에게 음성 제어 기능을 제공하기 위해서, 원격 제어 장치는 내장 마이크를 통하여 사용자의 음성을 수신할 수 있다. 이 경우, 원격 제어 장치(미도시)는 수신된 음성에 대응되는 오디오 데이터를 통신부(232)로 전송할 수 있다. 그러면, 통신부(232)는 원격 제어 장치로부터 수신되는 오디오 데이터를 전송받을 수 있다. 예를 들어, 오디오 데이터는, 사용자의 음성 명령에 대응될 수 있으며, 디지털 신호 또는 아날로그 신호의 형태를 가질 수 있다. 예를 들어, 상기 오디오 데이터는 블루투스 모듈, 또는 와이파이 모듈을 통하여 수신될 수 있다. 전술한 예시에서, 프로세서(210)는 수신된 오디오 데이터에 기초하여, 전자 장치(500)가 수신된 오디오 데이터에 대응되는 동작을 수행하도록 제어할 수 있다.
또 다른 예로, 전자 장치(500)를 제어하기 위한 외부 장치로, 원격 제어 장치, 모바일 기기(예를 들어, 스마트 폰, AI 스피커 등, 음성 인식 어플리케이션이 설치되어 있는 단말기 등)이 존재할 수 있다. 예를 들어, 전자 장치(500)와 모바일 기기는 통신부(232)에 포함되는 IR 모듈, 블루투스 모듈, 또는 와이파이 모듈 등을 통하여 데이터를 송수신할 수 있다. 전자 장치(500)가 모바일 기기와 통신하는 경우, 사용자는 스마트 폰에 내장되어 있는 마이크를 통하여 음성을 입력할 수 있다. 스마트 폰은 수신된 음성에 대응되는 오디오 데이터를 통신부(232)로 전송할 수 있다. 전술한 예시에서, 프로세서(210)는 수신된 오디오 데이터에 기초하여, 전자 장치(500)가 수신된 오디오 데이터에 대응되는 동작을 수행하도록 제어할 수 있다.
영상 처리부(225)는 프로세서(210)의 제어에 따라, 컨텐츠에 대응되는 영상 데이터를 처리하여 디스플레이(220)로 출력할 수 있다. 예를 들어, 영상 처리부(225)는 프로세서(210)의 제어에 따라, 통신 인터페이스(230)를 통하여 수신되는 컨텐츠에 대응되는 영상 데이터를 처리하여 디스플레이(220)로 출력할 수 있다.
예를 들어, 영상 처리부(225)는 프로세서(210)의 제어에 따라, 컨텐츠에 대응되는 영상 데이터를 디코딩하여 디스플레이(220) 상으로 출력될 수 있는 이미지 데이터를 생성하고, 생성된 이미지 데이터를 디스플레이(220)로 전송할 수 있다.
또 다른 예로, 영상 처리부(225)는 프로세서(210)의 제어에 따라, 사용자 인터페이스 화면을 생성할 수 있다.
디스플레이(220)는 영상 처리부(225)로부터 수신된 영상 데이터를 화면에 표시할 수 있다. 예를 들어, 디스플레이(220)는 게임 컨텐츠의 재생 화면(예를 들어, 게임 이미지를 포함하는 화면)이 출력될 수 있다.
오디오 처리부(240)는 프로세서(210)의 제어에 따라, 통신 인터페이스(230)로부터 수신되는 오디오 데이터를 아날로그 오디오 데이터로 변환하여 오디오 출력부(250)로 출력할 수 있다.
오디오 출력부(250)는 수신되는 아날로그 오디오 데이터를 스피커를 통해 출력할 수 있다.
메모리(215)는 전자 장치(500)의 동작에 관련된 프로그램, 전자 장치(500)의 동작 중에 발생하는 각종 데이터를 저장할 수 있다. 또는, 메모리(215)는 외부 장치로부터 수신되는 콘텐츠를 저장할 수 있다. 또는, 메모리(215)는 전자 장치(500)의 동작에 필요한 데이터 또는 정보를 저장할 수 있다.
메모리(215)는 적어도 하나의 메모리를 포함할 수 있다. 여기서, 적어도 하나의 메모리는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
사용자 인터페이스(270)는 전자 장치(500)를 제어하기 위한 사용자 입력을 수신할 수 있다. 사용자 인터페이스(270)는 사용자의 터치를 감지하는 터치 패널, 사용자의 푸시 조작을 수신하는 버튼, 사용자의 회전 조작을 수신하는 휠, 키보드(key board), 및 돔 스위치 (dome switch) 등을 포함하는 사용자 입력 디바이스를 포함할 수 있으나 이에 제한되지 않는다.
또한, 사용자 인터페이스(270)는 음성 인식을 위한 음성 인식 장치(미도시)를 포함할 수 있다. 예를 들어, 음성 인식 장치는 마이크가 될 수 있으며, 음성 인식 장치는 사용자의 음성 명령 또는 음성 요청을 수신할 수 있다. 그에 따라서, 프로세서(210)는 음성 명령 또는 음성 요청에 대응되는 동작이 수행되도록 제어할 수 있다.
또한, 사용자 인터페이스(270)는 모션 감지 센서(미도시)를 포함할 수도 있다. 예를 들어, 모션 감지 센서(미도시)는 디스플레이 장치(500)의 움직임을 감지하고, 감지된 움직임을 사용자 입력으로 수신할 수 있다. 또한, 전술한 음성 인식 장치(미도시/ 예를 들어, 마이크) 및 모션 감지 센서(미도시)는 사용자 인터페이스(270) 내에 포함되는 형태가 아니라, 사용자 인터페이스(270)와는 독립적인 모듈로 디스플레이 장치(500) 내에 포함될 수 있을 것이다.
예를 들어, 프로세서(210)는 디스플레이 장치(500)의 전반적인 동작을 제어하며, 컨텐츠에 대응되는 영상 데이터 및 오디오 데이터를 처리하여 디스플레이(220)에 표시하고, 오디오 출력부(250)를 통해 출력되도록 제어할 수 있다. 예를 들어, 프로세서(210)는 컨텐츠 재생 어플리케이션을 저장 및 실행할 수 있다. 또 따른 예로, 컨텐츠 재생 어플리케이션이 메모리(215)에 저장되는 경우, 프로세서(210)는 메모리(215)에 저장되는 컨텐츠 재생 어플리케이션을 실행시켜 컨텐츠가 사용자에게 제공될 수 있도록 제어할 수 있다.
도 6은 개시된 실시예에 따른 전자 장치를 나타내는 또 다른 블록도이다. 도 6에 도시된 디스플레이 장치(600)는 도 1 내지 도 5에 도시된 디스플레이 장치(100, 200, 300, 400 또는 500)에 대응될 수 있다. 따라서, 디스플레이 장치(600)를 설명하는데 있어서, 도 1 내지 도 5에서와 중복되는 설명은 생략한다.
도 5를 참조하면, 디스플레이 장치(600)는 비디오 처리부(610), 디스플레이(615), 오디오 처리부(620), 오디오 출력부(625), 전원부(630), 튜너부(640), 통신부(650), 감지부(미도시), 입/출력부(670), 프로세서(680), 및 메모리(690)를 포함한다.
디스플레이 장치(600)의 통신부(650), 디스플레이(615), 입/출력부(670), 프로세서(680), 비디오 처리부(610), 오디오 처리부(620), 오디오 출력부(625) 및 메모리(690)는 각각 도 2 내지 도 5에서 도시 및 설명한 통신부(232), 디스플레이(220), 입/출력부(231), 프로세서(210), 비디오 처리부(225), 오디오 처리부(240, 오디오 출력부(250) 및 메모리(215)에 대응될 수 있다. 그러므로, 디스플레이 장치(600)를 설명하는데 있어서, 도 2 및 도 5에서와 중복되는 설명은 생략한다.
비디오 처리부(610)는, 디스플레이 장치(600)가 수신한 비디오 데이터에 대한 처리를 수행한다. 비디오 처리부(610)에서는 비디오 데이터에 대한 디코딩, 스케일링, 노이즈 필터링, 프레임 레이트 변환, 해상도 변환 등과 같은 다양한 이미지 처리를 수행할 수 있다.
디스플레이(615)는 프로세서(680)의 제어에 의해 튜너부(640)를 통해 수신된 방송 신호에 포함된 비디오를 화면에 표시할 수 있다. 또한, 디스플레이(615)는 통신부(650) 또는 입/출력부(670)를 통해 입력되는 컨텐츠(예를 들어, 동영상)를 표시할 수 있다.
또한, 디스플레이(615)는 프로세서(680)의 제어에 의해 메모리(690)에 저장된 영상을 출력할 수 있다. 또한, 디스플레이(615)는 음성 인식에 대응되는 음성 인식 태스크를 수행하기 위한 음성 UI(User Interface: 예를 들어, 음성 명령어 가이드를 포함하는) 또는 모션 인식에 대응되는 모션 인식 태스크를 수행하기 위한 모션 UI(예를 들어, 모션 인식을 위한 사용자 모션 가이드를 포함)를 표시할 수 있다.
오디오 처리부(620)는 오디오 데이터에 대한 처리를 수행한다. 오디오 처리부(620)에서는 오디오 데이터에 대한 디코딩이나 증폭, 노이즈 필터링 등과 같은 다양한 처리가 수행될 수 있다. 한편, 오디오 처리부(620)는 복수의 컨텐츠에 대응되는 오디오를 처리하기 위해 복수의 오디오 처리 모듈을 구비할 수 있다.
오디오 출력부(625)는 프로세서(680)의 제어에 의해 튜너부(640)를 통해 수신된 방송 신호에 포함된 오디오를 출력한다. 오디오 출력부(625)는 통신부(650) 또는 입/출력부(670)를 통해 입력되는 오디오(예를 들어, 음성, 사운드)를 출력할 수 있다. 또한, 오디오 출력부(625)는 프로세서(680)의 제어에 의해 메모리(690)에 저장된 오디오를 출력할 수 있다. 오디오 출력부(625)는 스피커(626), 또는 헤드폰 출력 단자(627) 중 적어도 하나를 포함할 수 있다. 오디오 출력부(625)는 스피커(626), 헤드폰 출력 단자(627) 및 S/PDIF 출력 단자(628)의 조합을 포함할 수 있다.
전원부(630)는 프로세서(680)의 제어에 의해 디스플레이 장치(600) 내부의 구성 요소들(610 내지 690)로 외부의 전원 소스에서부터 입력되는 전원을 공급한다. 또한, 전원부(630)는 프로세서(680)의 제어에 의해 디스플레이 장치(600) 내부에 위치하는 하나 또는 둘 이상의 배터리(미도시)에서부터 출력되는 전원을 내부의 구성 요소들(610 내지 690)에게 공급할 수 있다.
튜너부(640)은 유선 또는 무선으로 수신되는 방송 신호를 증폭(amplification), 혼합(mixing), 공진(resonance)등을 통하여 많은 전파 성분 중에서 디스플레이 장치(600)에서 수신하고자 하는 채널의 주파수 만을 튜닝(tuning)시켜 선택할 수 있다. 방송 신호는 오디오(audio), 비디오(video) 및 부가 정보(예를 들어, EPG(Electronic Program Guide))를 포함한다.
튜너부(640)는 사용자 입력(예를 들어, 외부의 제어 장치(미도시), 예를 들어, 원격 제어기(remote controller)로부터 수신되는 제어 신호, 예컨대, 채널 번호 입력, 채널의 업다운(up-down) 입력 및 EPG 화면에서 채널 입력)에 따라 채널 번호(예를 들어, 케이블 방송 506번)에 대응되는 주파수 대역에서 방송 신호를 수신할 수 있다.
튜너부(640)은 지상파 방송, 케이블 방송, 위성 방송, 인터넷 방송 등과 같이 다양한 소스로부터 방송 신호를 수신할 수 있다. 튜너부(640)는 아날로그 방송 또는 디지털 방송 등과 같은 소스로부터 방송 신호를 수신할 수 도 있다. 튜너부(640)를 통해 수신된 방송 신호는 디코딩(decoding, 예를 들어, 오디오 디코딩, 비디오 디코딩 또는 부가 정보 디코딩)되어 오디오, 비디오 및/또는 부가 정보로 분리된다. 분리된 오디오, 비디오 및/또는 부가 정보는 프로세서(680)의 제어에 의해 메모리(690)에 저장될 수 있다.
디스플레이 장치(600)의 튜너부(640)는 하나이거나 복수일 수 있다. 일 실시예에 따라서 튜너부(640)가 복수 개로 이루어지는 경우, 디스플레이(615)에 제공되는 멀티 윈도우 화면을 이루는 복수개의 윈도우에 복수개의 방송 신호를 출력할 수 있을 것이다.
튜너부(640)는 디스플레이 장치(600)와 일체형(all-in-one)으로 구현되거나 또는 디스플레이 장치(600)와 전기적으로 연결되는 튜너부를 가지는 별개의 장치(예를 들어, 셋탑박스(set-top box, 미도시), 입/출력부(670)에 연결되는 튜너부(미도시))로 구현될 수 있다.
통신부(650)는 프로세서(680)의 제어에 의해 디스플레이 장치(600)를 외부 장치(예를 들어, 외장 카메라, 스마트 폰, 오디오 장치 등)와 연결할 수 있다. 프로세서(680)는 통신부(650)를 통해 연결된 외부 장치로 컨텐츠를 송/수신, 외부 장치에서부터 어플리케이션(application)을 다운로드 하거나 또는 웹 브라우징을 할 수 있다. 구체적으로, 통신부(650)는 네트워크에 접속하여 외부 장치(미도시)에서 컨텐츠를 수신할 수 있다.
전술한 바와 같이 통신부(650)는 근거리 통신 모듈(미도시), 유선 통신 모듈(미도시), 및 이동 통신 모듈(미도시) 중 적어도 하나를 포함할 수 있다.
도 6에서는 통신부(650)가 무선 랜(651), 블루투스 통신부(652), 및 유선 이더넷(Ethernet, 553) 중 하나를 포함하는 경우를 예로 들어 도시하였다.
또한, 통신부(650)은 무선랜(651), 블루투스 통신부(652), 및 유선 이더넷(Ethernet, 653) 중 어느 하나 이상을 포함하는 모듈 조합을 포함할 수 있다. 또한, 통신부(650)는 프로세서(680)의 제어에 의해 제어 장치(미도시)의 제어 신호를 수신할 수 있다. 제어 신호는 블루투스 타입, RF 신호 타입 또는 와이파이 타입으로 구현될 수 있다.
통신부(650)는 블루투스 외에 다른 근거리 통신(예를 들어, NFC(near field communication, 미도시), 별도의 BLE 모듈(bluetooth low energy, 미도시)을 더 포함할 수 있다.
감지부(660)는 사용자의 음성, 사용자의 영상 또는 사용자의 인터랙션을 감지한다.
개시된 실시예에서, 감지부(660)는 사용자의 제스처를 식별하기 위한 데이터를 획득할 수 있다. 구체적으로, 감지부(660)는 카메라부(662)를 포함하여, 카메라부(662)를 이용하여 사용자의 제스처를 식별하기 위한 데이터(예를 들어, 사용자의 제스처를 나타내는 이미지)를 획득할 수 있다. 그리고, 감지부(660)는 마이크(661) 및 광 수신부(663) 중 적어도 하나를 더 포함할 수 있다.
마이크(661)는 사용자의 발화(utterance)된 음성을 수신한다. 마이크(661)는 수신된 음성을 전기 신호로 변환하여 프로세서(680)로 출력할 수 있다. 사용자 음성은 예를 들어, 디스플레이 장치(600)의 메뉴 또는 기능에 대응되는 음성을 포함할 수 있다. 예를 들어, 마이크(661)의 인식 범위는 마이크(661)에서부터 사용자 위치까지 설정된 거리(예를 들어, 4 m) 이내를 권장하며, 마이크(661)의 인식 범위는 사용자 목소리의 크기와 주변 환경(예를 들어, 스피커 소리, 주변 소음)에 대응하여 달라질 수 있다.
마이크(661)는 디스플레이 장치(600)와 일체형 또는 분리형으로 구현될 수 있다. 분리된 마이크(661)는 통신부(650) 또는 입/출력부(670)를 통해 디스플레이 장치(600)와 전기적으로 연결될 수 있다.
디스플레이 장치(600)의 성능 및 구조에 따라 마이크(661)가 제외될 수 있다는 것은 당해 기술 분야에서 통상의 지식을 가진 자에게 용이하게 이해될 것이다.
카메라부(662)는 카메라 인식 범위에서 제스처를 포함하는 사용자의 모션에 대응되는 영상(예를 들어, 연속되는 프레임)을 수신한다. 예를 들어, 카메라부(662)의 인식 범위는 카메라부(662)에서부터 사용자까지 0.1 ~ 5 m 이내 거리가 될 수 있다. 사용자 모션은 예를 들어, 사용자의 얼굴, 표정, 손, 주먹, 손가락과 같은 사용자의 신체 일부분 또는 사용자 일부분의 모션 등을 포함할 수 있다. 카메라부(662)는 프로세서(680)의 제어에 따라 수신된 영상을 전기 신호로 변환하여 프로세서(680)로 출력할 수 있다.
프로세서(680)는 수신된 모션의 인식 결과를 이용하여 디스플레이 장치(600)에 표시되는 메뉴를 선택하거나 모션 인식 결과에 대응되는 제어를 할 수 있다. 예를 들어, 채널 조정, 볼륨 조정, 지시자 이동을 포함할 수 있다.
카메라부(662)는 렌즈(미도시) 및 이미지 센서(미도시)로 구성될 수 있다. 카메라부(662)는 복수의 렌즈와 이미지 프로세싱을 이용하여 광학 줌(optical zoom) 또는 디지털 줌(digital zoom)을 지원할 수 있다. 카메라부(662)의 인식 범위는 카메라의 각도 및 주변 환경 조건에 따라 다양하게 설정될 수 있다. 카메라부(662)가 복수개의 카메라로 구성되는 경우, 복수의 카메라를 이용하여 3차원 정지 이미지 또는 3차원 모션을 수신할 수 있다.
카메라부(662)는 디스플레이 장치(600)와 일체형 또는 분리형으로 구현될 수 있다. 분리된 카메라부(662)를 포함하는 별도의 장치(미도시)는 통신부(650) 또는 입/출력부(670)를 통해 디스플레이 장치(600)와 전기적으로 연결될 수 있다.
디스플레이 장치(600)의 성능 및 구조에 따라 카메라부(662)가 제외될 수 있다는 것은 당해 기술 분야에서 통상의 지식을 가진 자에게 용이하게 이해될 것이다.
광 수신부(663)는 외부의 제어 장치(미도시)에서부터 수신되는 광 신호(제어 신호를 포함)를 디스플레이(615)의 베젤의 광창(미도시) 등을 통해 수신한다. 광 수신부(663)는 제어 장치(미도시)로부터 사용자 입력(예를 들어, 터치, 눌림, 터치 제스처, 음성, 또는 모션)에 대응되는 광 신호를 수신할 수 있다. 수신된 광 신호로부터 프로세서(680)의 제어에 의해 제어 신호가 추출될 수 있다.
예를 들어, 광 수신부(663)는 제어 장치(미도시)의 포인팅 위치에 대응하는 신호를 수신하고 이를 프로세서(680)로 전송할 수 있다. 예를 들어, 디스플레이(615)를 통하여 사용자로부터 데이터 또는 명령을 입력받기 위한 사용자 인터페이스 화면이 표시되었으며, 제어 장치(미도시)를 통하여 사용자가 데이터 또는 명령을 디스플레이 장치(600)로 입력하고자 하는 경우, 광 수신부(663)는 사용자가 제어 장치(미도시)에 마련된 터치 패드(미도시)에 손가락을 접촉한 상태에서 제어 장치(미도시)를 움직이면 이 제어 장치(미도시)의 움직임에 대응하는 신호를 수신하고 이를 프로세서(680)로 전송할 수 있다. 또한, 광 수신부(663)는 제어 장치(미도시)에 마련된 특정한 버튼이 눌려졌음을 나타내는 신호를 수신하고 이를 프로세서(680)로 전송할 수 있다. 예를 들어 광수신부(663)는 사용자가 제어 장치(미도시)에 버튼식으로 마련된 터치 패드(미도시)를 손가락으로 누르면, 이러한 버튼식 터치 패드(미도시)이 눌려졌다는 신호를 수신하고 이를 프로세서(680)로 전송할 수 있다. 예를 들어, 버튼식 터치 패드(미도시)가 눌려졌다는 신호는 아이템들 중의 하나를 선택하기 위한 신호로 이용할 수 있다.
입/출력부(670)는 프로세서(680)의 제어에 의해 디스플레이 장치(600)의 외부에서부터 비디오(예를 들어, 동영상 등), 오디오(예를 들어, 음성, 음악 등) 및 부가 정보(예를 들어, EPG 등) 등을 수신한다. 입/출력부(670)는 HDMI 포트(High-Definition Multimedia Interface port, 671), 컴포넌트 잭(component jack, 672), PC 포트(PC port, 673), USB 포트(USB port, 674), S/PDIF 포트(675), 및 썬더볼트(thunderbolt)_ 포트(676) 중 하나를 포함할 수 있다. 입/출력부(670)는 HDMI 포트(671), 컴포넌트 잭(672), PC 포트(673), USB 포트(674), S/PDIF 포트(675), 및 썬더볼트 포트(676)의 조합을 포함할 수 있다.
또 다른 예로, S/PDIP 포트(675)는 오디오 데이터의 출력 인터페이싱을 위한 단자이므로, 오디오 출력부(625)에 포함되는 구성으로 볼 수도 있다.
입/출력부(670)의 구성 및 동작은 본 발명의 실시예에 따라 다양하게 구현될 수 있다는 것은 당해 기술 분야의 통상의 지식을 가진 자에게 용이하게 이해될 것이다.
프로세서(680)는 디스플레이 장치(600)의 전반적인 동작 및 디스플레이 장치(600)의 내부 구성요소들(미도시)사이의 신호 흐름을 제어하고, 데이터를 처리하는 기능을 수행한다. 프로세서(680)는 사용자의 입력이 있거나 기 설정되어 저장된 조건을 만족하는 경우, 프로세서(680)는 메모리(690)에 저장된 OS(Operation System) 및 다양한 애플리케이션을 실행할 수 있다.
프로세서(680)는 디스플레이 장치(600)의 외부에서부터 입력되는 신호 또는 데이터를 저장하거나, 디스플레이 장치(600)에서 수행되는 다양한 작업에 대응되는 저장 영역으로 사용되는 RAM(미도시), 디스플레이 장치(600)의 제어를 위한 제어 프로그램이 저장된 ROM(미도시) 및 프로세서(Processor)(미도시)를 포함할 수 있다.
프로세서(미도시)는 비디오에 대응되는 그래픽 처리를 위한 그래픽 프로세서(Graphic Processing Unit, 미도시)를 포함할 수 있다. 프로세서(미도시)는 코어(core, 미도시)와 GPU(미도시)를 통합한 SoC(System On Chip)로 구현될 수 있다. 프로세서(미도시)는 싱글 코어, 듀얼 코어, 트리플 코어, 쿼드 코어 및 그 배수의 코어를 포함할 수 있다.
또한, 프로세서(미도시)는 복수의 프로세서를 포함할 수 있다. 예를 들어, 프로세서(미도시)는 메인 프로세서(main processor, 미도시) 및 슬립 모드(sleep mode)에서 동작하는 서브 프로세서(sub processor, 미도시)로 구현될 수 있다.
그래픽 처리부(미도시)는 연산부(미도시) 및 렌더링부(미도시)를 이용하여 아이콘, 이미지, 텍스트 등과 같은 다양한 객체를 포함하는 화면을 생성한다. 연산부는 감지부(미도시)를 통해 감지된 사용자 인터랙션을 이용하여 화면의 레이아웃에 따라 각 객체들이 표시될 좌표값, 형태, 크기, 컬러 등과 같은 속성값을 연산한다. 렌더링부는 연산부에서 연산한 속성값에 기초하여 객체를 포함하는 다양한 레이아웃의 화면을 생성한다. 렌더링부에서 생성된 화면은 디스플레이(615)의 디스플레이 영역 내에 표시된다.
이하에서는, 도 7 내지 도 28을 참조하여, 개시된 실시예에 따른 전자 장치(100, 200, 300, 400, 500 또는 600)에서 수행되는 동작들 또는 전자 장치(100, 200, 300, 400, 500 또는 600)에서 수행되는 제어 동작들을 상세히 설명한다.
도 7은 개시된 실시예에 따른 전자 장치의 동작 방법을 나타내는 일 플로우차트이다. 도 7에 도시된 전자 장치의 동작 방법 (700)은 도 1 내지 도 6을 참조하여 설명한 개시된 실시예에 따른 전자 장치(100, 200, 300, 400, 500 또는 600)에서 수행되는 동작들을 나타내는 흐름도가 될 수 있다. 따라서, 전자 장치의 동작 방법(700)에 포함되는 동작들을 설명함에 있어서, 도 1 내지 도 6을 참조하여 설명한 디스플레이 장치(100, 200, 300, 400, 500 또는 600)의 수행 동작들과 중복되는 설명은 생략한다.
이하에서는, 설명의 편의 상 전자 장치의 동작 방법(700)에서 포함되는 동작들이, 도 5에서 설명한 전자 장치(500)를 통하여 수행되는 경우를 예로 들어 설명하도록 하겠다. 또한, 이하에서는, 도 5에서 설명한 전자 장치(500)를 예시적으로 참조하여, 전자 장치의 동작 방법(700)의 구체적인 구성들을 설명하기 위해서 참조되는 도 8 내지 도 24에 도시된 구성들을 설명하도록 한다.
도 7을 참조하면, 전자 장치의 동작 방법(700)은 전자 장치(500)에서 제공 가능한 적어도 하나의 어플리케이션 중 제1 어플리케이션에 대한 제어를 요청하는 명령을 수신한다(S710). S710 단계에서 수신되는 '제1 어플리케이션에 대한 제어를 요청하는 명령'을 이하에서는 설명의 편의 상 '제어 명령'이라 칭하도록 한다.
개시된 실시예에서, 전자 장치(500)는 다양한 기능 또는 서비스를 제공할 수 있는 컴퓨팅 장치로, 복수개의 서비스들을 제공하기 위한 복수개의 어플리케이션을 실행할 수 있다. 예를 들어, 프로세서(210) 및 메모리(215) 중 적어도 하나에 저장되어 있을 수 있다.
사용자는, 전자 장치(500)에서 제공 가능한 복수개의 서비스들 중 어느 하나를 제공받거나, 제공받고 있는 서비스의 실행을 조작(예를 들어, 중단, 종료, 녹화, 녹음 등)하고자 하는 경우, 그에 대응되는 명령을 전자 장치(500)로 입력할 수 있다.
예를 들어, S710의 동작은 프로세서(210)의 제어에 따라서 통신 인터페이스(230)에서 수행될 수 있다. 예를 들어, 전자 장치(500)를 조작하기 위한 외부 장치(예를 들어, 원격 제어 장치, 모바일 기기 등)가 전자 장치(500)와 무선 연결되어 있는 경우, 사용자는 전술한 외부 장치를 조작하여 제어 명령을 전자 장치(500)로 입력할 수 있다. 전술한 예시에서, 전자 장치(500)는 통신부(232)를 통하여 외부 장치로부터 전송되는 제어 명령을 수신할 수 있다. 여기서, 제어 명령은 외부 장치에 형성된 버튼, 터치 패드 등의 물리적 조작에 대응하여 생성될 수 있으며, 외부 장치에서 수신되는 사용자 음성에 대응되는 오디오 데이터에 기초하여 생성될 수도 있을 것이다. 외부 장치에서 생성된 제어 명령은 통신부(232)를 통하여 수신될 수 있다.
또 다른 예로, S710의 동작은 프로세서(210)의 제어에 따라서 사용자 인터페이스(270)에서 수행될 수 있다.
사용자 인터페이스(270)는 전자 장치(700)를 전자 장치(500)를 제어하기 위한 사용자 입력을 수신할 수 있다. 예를 들어, 사용자 입력은 사용자가 요청하는 제어에 대응되며, 전술한 '제어 명령'에 대응될 수 있다. 예를 들어, 프로세서(210)는 사용자 입력에 기초하여 제어 명령을 식별할 수 있다. 예를 들어, 사용자 인터페이스(270)가 모션 감지 센서를 포함하는 경우, 모션 감지 센서는 사용자의 모션을 감지하고, 프로세서(210)는 감지된 모션에 기초하여 제어 명령을 식별할 수 있다.
이외에도, 제어 명령은 다양한 방식으로 생성 및 수신될 수 있다.
예를 들어, 전자 장치(500)는 제1 어플리케이션과 다른 어플리케이션을 실행하고 있는 도중에 제1 어플리케이션에 대한 제어 명령을 수신할 수 있다. 또는, 전자 장치(500)는 제1 어플리케이션을 실행하고 있는 도중에 제1 어플리케이션에 대한 제어 명령을 수신할 수 있다. 전자 장치(500)는 대기 상태에서 제1 어플리케이션의 실행을 개시하기 위한 제어 명령을 수신할 수 있다.
계속하여, 전자 장치의 동작 방법(700)은 상기 적어도 하나의 어플리케이션 및 상기 적어도 하나의 어플리케이션 각각의 실행에 이용되는 적어도 하나의 지원 요소에 대한 사용 이력에 대응되는 제1 정보에 기초하여 어플리케이션 및 지원 요소에 대한 이용 가능성을 예측하는 기계 학습 모델(Machine learning model)에서 출력되는, 제2 정보를 획득한다(S720). S720 단계는 프로세서(210)에 의해서 수행될 수 있다. 개시된 실시예에서, 제1 정보를 획득하기 위해서 이용되는 기계 학습 모델은, 훈련이 완료된 기계 학습 모델이 될 수 있다. 예를 들어, 기계 학습 모델은 제1 정보에 포함되는 적어도 하나의 데이터에 근거하여 훈련된 기계 학습 모델이 될 수 있다.
계속하여, 전자 장치의 동작 방법(700)은 상기 제1 어플리케이션 및 상기 제1 어플리케이션의 실행에 이용되는 제1 지원 요소에 대한 이용 가능성인 제1 이용 가능성을 나타내는 상기 제2 정보에 기초하여, 상기 명령에 대응하는 기능을 실행한다(S730). S730 단계는 프로세서(210)에 의해서 수행될 수 있다.
예를 들어, S710 단계에서 수신되는 제어 명령에 따라서 제어가 요청되는 어플리케이션이 제1 어플리케이션인 경우, 제1 이용 가능성은 제1 어플리케이션에 대응되는 적어도 하나의 지원 요소인 제1 지원 요소에 대한 이용 가능성이 될 수 있다. 또한, 제1 지원 요소는, 제1 어플리케이션의 실행을 지원하기 위해서 또는 제1 어플리케이션의 실행에 이용되는, 적어도 하나의 지원 요소를 지칭할 수 있다.
먼저, 이하에서 도 8 내지 도 11을 참조하여, 전술한 '지원 요소'에 대하여 상세히 설명한다.
예를 들어, 지원 요소는 전자 장치(500)가 제공할 수 있는 기능, 서비스, 및/또는 어플리케이션의 실행을 위하여 필요한 하드웨어(HW) 또는 소프트웨어(SW) 자원, 모듈, 및/또는 시스템을 의미할 수 있다. 예를 들어, 지원 요소는 전자 장치(200)에서 소정 동작, 가능, 서비스, 또는 어플리케이션이 수행되도록 하기 위해서 필요한 하드웨어 자원, 모듈, 및 시스템 중 적어도 하나, 및/또는 소프트웨어 자원, 모듈 및 시스템 중 적어도 하나를 의미할 수 있다.
예를 들어, 동영상 컨텐츠를 제공하기 위한 어플리케이션(이하, '동영상 제공 어플리케이션')이 전자 장치(500)에 설치되어 있는 경우, 동영상 컨텐츠 어플리케이션이 동영상 컨텐츠를 제공하기 위해서는, 외부의 장치들로부터 동영상 컨텐츠를 수신하여야 할 필요가 있다. 여기서, 동영상 컨텐츠는 다양한 자원, 모듈 및 시스템을 통하여 수신될 수 있다. 예를 들어, 동영상 컨텐츠는 외부의 서버와 무선 통신 네트워크를 통하여 통신을 수행할 수 있는 무선 통신 모듈(예를 들어, 도 5의 통신부(232)에 포함되는 인터넷 통신 모듈, 블루투스 모듈, 와이파이 모듈, 이동 통신 모듈 등)을 통하여 수신될 수 있다. 또는, 동영상 컨텐츠는 도 5의 입/출력부(231)에 포함되는 HDMI 포트, 컴포넌트 잭, PC 포트, DP(display port), DVI(digital visual interface), 썬더볼트 및 USB 포트 중 적어도 하나를 통하여 수신될 수 있다. 여기서, 전술한 무선 통신 모듈 및 입/출력을 위한 포트 등이, 동영상 제공 어플리케이션에 대응되는 지원 요소가 될 수 있다.
지원 요소는 전자 장치(500) 내에 형성 또는 설치될 수 있다.
개시된 실시예에서, 전자 장치(500) 내에 형성 또는 설치되는 지원 요소는 상위 지원 요소 하위 지원 요소 등과 같이 계층화하여 표현할 수 있다.
여기서, 상위 지원 요소는 상위 개념으로 분류되는 기능, 모듈, 또는 시스템을 의미할 수 있으며, 하위 지원 요소는 상위 지원 요소에 포함되는 하위 개념으로 분류되는 기능, 모듈 또는 시스템을 의미할 수 있다.
도 8은 개시된 실시예에 따른 전자 장치에서 제공 가능한 지원 요소들을 설명하기 위한 일 도면이다.
전자 장치(500)에 포함 또는 설치되는 복수개의 어플리케이션들 각각은 지원 요소들을 이용하여 의도하는 동작을 수행할 수 있다.
도 8을 참조하면, 어플리케이션들이 실행하기 위해서 이용되거나 또는 필요한 기능 요소들은 상위 개념에 대응되는 기능들(801) 및 상위 개념 기능들 각각에 대응되는 하위 기능 요소들(802)로 분류될 수 있다.
예를 들어, 어플리케이션들이 실행하기 위해서 이용되거나 또는 필요한 기능들은 상위 개념으로, 네트워크(810), 기기 연결(820), 주변 장치(830), 입력 장치(840) 및 컨텐츠 공유(850) 등으로 분류될 수 있다.
예를 들어, 어플리케이션들이 실행하기 위해서 이용되거나 또는 필요한 기능들은 크게 하드웨어적으로 구현되는 기능 및 소프트웨어적으로 구현되는 기능으로 분류될 수 있다. 예를 들어, 네트워크(810), 기기 연결(820), 주변 장치(830), 입력 장치(840)는 하드웨어적인 요소로 구현되는 기능이 될 수 있으며, 컨텐츠 공유(850)는 소프트웨어적인 요소로 구현되는 기능이 될 수 있다.
도 8을 참조하면, 네트워크(810)는, 전자 장치(500)가 통신 네트워크에 연결될 수 있도록 지원하는 기능, 모듈 또는 시스템으로, 전자 장치(500)가 유선 네트워크에 접속하기 위해 필요한 지원 요소들(811)를 포함할 수 있다. 예를 들어, 네트워크(810)에 대응되는 하위 지원 요소들(811)은, 유선 통신 모듈(예를 들어, 이더넷 모듈)(812), 무선 통신 모듈(예를 들어, 와이파이 모듈)(813) 등을 포함할 수 있다. 도시된 구성들 이외에도, 도 5의 통신부(232)에서 설명한 통신 모듈들 중 적어도 하나를 포함할 수 있다.
기기 연결(820)은, 전자 장치(500)가 가까이 위치하는(예를 들어, 소정 거리 내에 위치하는)과 무선 연결될 수 있도록 지원하는 기능, 모듈 또는 시스템으로, 지원 요소들(821)를 포함할 수 있다. 예를 들어, 기기 연결(820)에 대응되는 하위 지원 요소들(821)은, 블루투스 모듈(822), 적외선(IR) 통신 모듈 등을 포함할 수 있다. 도시된 구성들 이외에도, 도 5의 통신부(232)에서 설명한 통신 모듈들 중 적어도 하나를 포함할 수 있다.
주변 장치(830)는 전자 장치(500)와 연결되는 입출력 장치 또는 보조 기억 장치 등과 연결될 수 있도록 지원하는 기능, 모듈 또는 시스템으로, 지원 요소들을 포함할 수 있다. 예를 들어, 주변 장치(830)에 대응되는 하위 지원 요소들은, USB(831) 등을 포함할 수 있다.
입력 장치(840)는 전자 장치(500)가 외부 장치로부터 데이터를 입력받기 위해서 필요한 기능, 모듈 또는 시스템으로, 지원 요소들(841)를 포함할 수 있다. 예를 들어, 입력 장치(840)대응되는 하위 지원 요소들(841)은, 튜너(842), HDMI 포트(842), DP 포트(844), DVI 포트(845), 마이크(846), 카메라(847) 등을 포함할 수 있다.
컨텐츠 공유(850)는 전자 장치(500)가 외부 장치에서 제공되고 있는 컨텐츠를 공유하기 위해서 필요한 기능, 모듈 또는 시스템으로, 지원 요소들(851)를 포함할 수 있다. 예를 들어, 영상 데이터를 공유하기 위한 기능을 지원하는 스크린 미러링 기능(852), 사운드 데이터를 공유하기 위한 기능을 지원하는 사운드 미러링 기능(853), 앱 캐스팅(App casting) 기능(854), DLNA(Digital Living Network Alliance) 기능(855) 등을 포함할 수 있다.
도 8의 802 블록에 도시된 바와 같이, 전자 장치(500)에서 지원 가능한 물리적인(하드웨어적인) 또는 소프트웨어적인 장치, 모듈, 시스템 등을 상위 개념(801) 및 하위 개념(802)으로 구별하여 리스팅(listing)할 수 있다.
다시 도 7을 참조하면, S710 단계에서 기재한 '지원 요소'는 하위 개념(802)으로 분류되는 지원 요소를 의미할 수 있다. 또는, S710 단계에서 기재한 '지원 요소'는 상위 개념(801)으로 분류되는 기능을 의미할 수도 있다.
도 9는 개시된 실시예에 따른 전자 장치에서 제공 가능한 지원 요소들을 설명하기 위한 다른 도면이다. 도 9에 도시된 구성들 중 도 8에서와 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다. 따라서, 중복되는 설명은 생략한다.
도 9를 참조하면, 도 8에서 설명한 하위 개념(802)으로 분류되는 지원 요소들 중 적어도 하나는 각각 최하위 개념들의 지원 요소들을 포함할 수 있다.
도 9에 도시된 기재들 중 'Mounting(마운팅)'은 장치의 삽입 및 삽입된 장치에 대한 인식 기능을 의미할 수 있다. 그리고, '전원'은 전원 공급 기능을 의미할 수 있다. 그리고, 'Hot Plug(핫 플러그)'는 전원을 끄지 않은 상태에서 바로 장착하여 이용할 수 있도록 하는 기능을 의미할 수 있다.
도 9를 참조하면, USB(831)에 포함되는 하위 지원 요소들(910), 튜너(842)에 포함되는 하위 지원 요소들(920), HDMI 포트(843)에 포함되는 하위 지원 요소들(930), DP(844)에 포함되는 하위 지원 요소들(940), DVI (845)에 포함되는 하위 지원 요소들(950)의 예들이 도시된다.
예를 들어, USB(831)는 USB 장치 삽입 및 삽입된 USB 장치의 인식을 위한 USB 마운팅 기능(911), USB 포트를 통한 전력 공급을 위한 USB 전원(912) 및 USB 포트를 통한 핫 플러그 기능을 구현하기 위한 USB Hot Plug(913)를 포함할 수 있다.
튜너(842)에 포함되는 하위 지원 요소들(920), HDMI 포트(843)에 포함되는 하위 지원 요소들(930), DP(844)에 포함되는 하위 지원 요소들(940), DVI (845)에 포함되는 하위 지원 요소들(950) 각각은 하위 지원 요소들(910)에서 설명한 바와 유사하게, 해당 포트 또는 해당 기능을 이용한 마운팅, 전원 및 핫 플러그 기능을 지원하기 위한 지원 요소들을 포함할 수 있다.
도 10은 개시된 실시예에 따른 전자 장치에서 제공 가능한 지원 요소들을 설명하기 위한 다른 도면이다. 도 10에 도시된 구성들 중 도 8 및 도 9에서와 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다. 따라서, 중복되는 설명은 생략한다.
도 10을 참조하면, 전자 장치(500)에서 지원되는 기능 또는 서비스 등은 도시된 바와 같이 상위 개념(801), 하위 개념(802) 및 최하위 개념(803)으로 계층화될 수 있다.
도 8 내지 도 10에서는, 전자 장치(500)에서 지원 가능한 기능들 중 동일 또는 유사한 요소들을 상위 개념으로 분류하고, 해당 상위 개념에 종속적인 하위 개념들로 분류하는 방식으로, 지원 요소들을 계층화하여 리스팅(listing) 하는 경우를 예로 들어서 도시하였다.
도 11은 개시된 실시예에 따른 전자 장치에서 제공 가능한 지원 요소들을 설명하기 위한 다른 도면이다. 도 11에 도시된 구성들 중 도 8 내지 도 10에서와 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다. 따라서, 중복되는 설명은 생략한다.
도 11을 참조하면, 도 10에 도시된 구성들에 비하여, 기능 요소들(1110) 및 기능 요소들(1121)이 추가적으로 포함될 수 있다.
예를 들어, 컨텐츠 공유(850)에 있어서, 스크린 미러링 기능(852)을 구현하기 위해서 필요한 하드웨어 자원을 더욱 세분화하여, 기능 요소들을 분류할 수 있다. 예를 들어, 스크린 미러링 기능(852)은 유선 통신 모듈 및 무선 통신 모듈 중 적어도 하나를 지원 요소로 포함할 수 있다. 예를 들어, 스크린 미러링 기능(852)은 유선 통신 모듈 또는 무선 통신 모듈 중 어느 하나를 이용하여 제공될 수 있으므로, 스크린 미러링 기능(852)에 종속적인 하위 지원 요소들로 유선 통신 모듈 또는 무선 통신 모듈이 리스팅 될 수 있다. 예를 들어, 스크린 미러링 기능(852)이 와이파이(wifi) 통신을 통하여 제공되는 경우, 스크린 미러링 기능(852)의 하위 지원 요소로 와이파이(812)가 리스팅될 수 있다. 또 다른 예로, 스크린 미러링 기능(852)이 DVI(digital visual interface) 인터페이스를 통하여 제공되는 경우, 스크린 미러링 기능(852)의 하위 지원 요소로 DVI(845)가 리스팅될 수 있다.
또 다른 예로, 오디오 컨텐츠의 공유에 있어서, 사운드 미러링 기능(853)을 구현하기 위해서 필요한 하드웨어 자원을 더욱 세분화하여, 기능 요소들을 분류할 수 있다. 예를 들어, 사운드 미러링 기능(853)는 유선 통신 모듈 및 무선 통신 모듈 중 적어도 하나를 지원 요소로 포함할 수 있다. 예를 들어, 사운드 미러링 기능(853)은 유선 통신 모듈 또는 무선 통신 모듈 중 어느 하나를 이용하여 제공될 수 있으므로, 사운드 미러링 기능(853)에 종속적인 하위 지원 요소들로 유선 통신 모듈 또는 무선 통신 모듈이 리스팅 될 수 있다. 예를 들어, 사운드 미러링 기능(853)이 와이파이(wifi) 통신을 통하여 제공되는 경우, 사운드 미러링 기능(853)의 하위 지원 요소로 와이파이(812)가 리스팅될 수 있다. 또 다른 예로, 스크린 미러링 기능(852)이 블루투스 통신을 통하여 제공되는 경우, 사운드 미러링 기능(853)의 하위 지원 요소로 블루투스(822)가 리스팅될 수 있다.
개시된 실시예는, 전자 장치(500)가 제공하는 복수개의 어플리케이션들에 대한 사용 이력을 파악하는데 있어서, 어플리케이션에 대응되는 지원 요소의 사용 이력을 어플리케이션의 사용 이력과 연관시켜서 고려할 수 있다. 예를 들어, 개시된 실시예는, 사용자가 소정 서비스를 제공받기 위해서 소정 어플리케이션의 실행을 요청하였고, 그에 대응하여 소정 어플리케이션이 실행되었을 때, 소정 어플리케이션의 실행에 이용되거나 소정 어플리케이션의 실행을 지원하기 위해서 어떠한 지원 요소가 사용되었는지를 나타내는 제1 정보를 획득한다.
예를 들어, 제1 정보는 전자 장치에서 제공 가능한 적어도 하나의 어플리케이션 각각의 실행을 지원하는 적어도 하나의 지원 요소에 대한 사용 이력에 대한 정보를 포함할 수 있다. 예를 들어, '사용 이력에 대한 정보'는 사용된 시간, 사용된 시점, 사용된 빈도(또는 횟수), 사용 간격 등에 대한 정보를 포함할 수 있다.
예를 들어, 제1 정보는 제1 기간 동안에 상기 적어도 하나의 어플리케이션 각각과 그에 대응되는 적어도 하나의 지원 요소에 대한 사용 빈도 및 사용 시간 중 적어도 하나에 대한 정보를 포함할 수 있다. 여기서, 제1 기간은 시간 구간을 의미할 수 있으며, 또는 이용 횟수, 이용 빈도수 등을 의미할 수도 있다.
이하에서, 도 12 내지 도 14를 참조하여, 제1 정보를 상세히 설명한다.
도 12는 개시된 실시예에서 획득되는 제1 정보를 설명하기 위한 일 도면이다.
개시된 실시예는, 전자 장치(500)가 제공하는 복수개의 어플리케이션 각각에 대한 사용 이력을 나타내는 제1 정보를 이용할 수 있다.
예를 들어, 제1 정보는 어플리케이션 각각에 대응되는 적어도 하나의 지원 요소에 대한 사용 이력을 나타내는 정보가 될 수 있다. 예를 들어, 제1 정보는 어플리케이션(App1)이 실행될 때, 어떠한 지원 요소들이 이용 및/또는 제공되었는지에 대한 사용 이력을 나타낼 수 있다.
도 12를 참조하면, 어플리케이션(App1)이 소정 기간 동안에 사용되었던 이력의 예시가 도시된다. 예를 들어, 제1 정보는 정보(1200)를 포함할 수 있다. 예를 들어, 도 12는, 전자 장치(500)가 제공하는 복수개의 어플리케이션 중 제1 어플리케이션(App1) 대응되는 사용 이력을 나타내는 정보가 되는 경우를 예로 들어서 도시하였다.
예를 들어, 제1 정보는 시간의 흐름 또는 시간 구간 동안에 수집되는 정보로 '시계열 데이터'의 형식으로 표현될 수 있다. 예를 들어, 사용 이력은 소정 기간 동안에 수집될 수 있다. 도 12에서는, 소정 기간이, 빈도 1(1221)부터 빈도 10(1223)을 포함하여 총 10 회 또는 빈도 10에 대응되는 시간을 포함하는 경우를 예로 들어서 도시하였다.
예를 들어, 빈도 소정 기간, 소정 시간(예를 들어, 1시간 간격, 1일 간격, 등), 또는 어플리케이션의 실행이 개시된 시점부터 종료된 시점까지 등으로 표현될 수 있다. 예를 들어, 1시간 간격을 빈도 1로 카운팅할 수 있다. 또는, 어플리케이션의 실행이 개시된 시점부터 종료된 시점까지를 사용 빈도 1 또는 사용 이력 1회로 카운팅할 수 있다.
어플리케이션(App1)이 실행되는 동안에 이용되는 지원 요소들에 대한 사용 이력이 각각이 제1 정보에 포함될 수 있다. 지원 요소들 각각의 사용 이력은, 사용 빈도 1에서의 해당 지원 요소의 사용 시간을 빈도 1의 전체 사용 시간으로 나눈 값으로 표현할 수 있다.
예를 들어, 어플리케이션(App1)의 사용 이력의 빈도 1이 어플리케이션의 실행 개시부터 종료까지의 시간에 대응될 수 있다. 상기 예에서, 1회차 사용 이력에서 어플리케이션(App1)이 100분 동안 사용되었다고 하자. 그리고, 1회차 사용이력에서 지원 요소 1이 15분 동안 사용되었다고 하자. 그러면, 사용 이력을 0.15(1231)로 표현할 수 있다.
예를 들어, 도 12에 도시된 제1 정보에 포함되는 정보(1200)에 열(column)에 리스팅되는 지원 요소들(1210)은 도 8 내지 도 11을 참조하여 설명한 상위 개념(801)에 포함되는 기능들 각각이 될 수 있다. 또는, 정보(1200)에 열(column)에 리스팅되는 지원 요소들(1210)은 도 8 내지 도 11을 참조하여 설명한 하위 개념(802)에 포함되는 기능들 각각이 될 수 있다. 또는, 정보(1200)에 열(column)에 리스팅되는 지원 요소들(1210)은 도 8 내지 도 11을 참조하여 설명한 최하위 개념(803)에 포함되는 기능들 각각이 될 수 있다.
예를 들어, 제1 정보에 포함되는 정보(1200)에 열(column)에 리스팅되는 지원 요소들(1210)은 해당 어플리케이션(App1)의 실행에 이용되는 지원 요소들만을 포함할 수 있다.
또는, 정보(1200)에 열(column)에 리스팅되는 지원 요소들(1210)은 전자 장치(500)에서 제공 가능한 전체 기능들에 대응되는 지원 요소들이 모두 리스팅 될 수도 있다.
도 13은 개시된 실시예에서 획득되는 제1 정보를 설명하기 위한 다른 도면이다.
도 13을 참조하면, 어플리케이션(App2)이 소정 기간 동안에 사용되었던 이력의 예시가 도시된다. 예를 들어, 제1 정보는 정보(1300)를 포함할 수 있다.
도 12 및 도 13을 참조하여 설명한 바와 같이, 제1 정보는 전자 장치(500)가 제공할 수 있는 어플리케이션들 각각에 대하여 지원 요소와 연관된 사용 이력을 나타내는 정보들(1200, 1300)을 포함할 수 있다.
도 14는 개시된 실시예에서 획득되는 제1 정보를 설명하기 위한 또 다른 도면이다.
도 14를 참조하여, 제1 정보(1400)는 도시된 형태로 표현될 수 있다. 예를 들어, 제1 정보(1400)는 전자 장치(500)가 제공할 수 있는 어플리케이션들인 App1 내지 App N 각각에서의, 대응되는 지원 요소들에 대한 사용 이력을 나타내는 정보를 포함할 수 있다.
예를 들어, 제1 정보는 현재 시점을 기준으로 이전의 소정 기간, 소정 사용 횟수, 소정 사용 시간 동안에 수집될 수 있다. 예를 들어, 제1 정보는 S710 단계의 제어 명령이 수신되는 시점을 기준으로 1달 이내에 수집되는 정보가 될 수 있다.
또 다른 예로, 제1 정보는 일정 간격으로 업데이트 될 수 있다. 예를 들어, 제1 정보는 주(week) 간격, 월(month) 간격, 등으로 수집되며, 전술한 기간 마다 업데이트될 수 있다.
또 다른 예로, 제1 정보는 일정 이용 횟수 간격으로 업데이트 될 수 있다. 예를 들어, 제1 정보는 어플리케이션의 10회, 20회 등의 이용 횟수마다 수집될 수 있다.
또 다른 예로, 제1 정보는 사용자의 요청에 따라서 누적되어 수집되며, 사용자의 요청에 따라서 업데이트될 수 있다.
개시된 실시예에서, 제2 정보는 제1 정보에 기초하여 어플리케이션 및 지원 요소에 대한 이용 가능성을 예측하는 기계 학습 모델(Machine learning model)에서 출력되는 정보가 될 수 있다.
전술한 제2 정보 및 기계 학습 모델은 이하에서 도 15 내지 도 20을 참조하여 상세히 설명한다.
기계 학습(machine learning)은 컴퓨팅 연산을 통하여 데이터를 분석하고 의미 있는 결과를 출력하는 기술이다. 예를 들어, 기계 학습은 인공 지능(AI: Artificial Intelligent)에 기초하여 기계가 데이터를 학습하여 목적하는 결과물을 도출하는 기술이 될 수 있다.
인공지능(Artificial Intelligence, AI) 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 Rule 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 Rule 기반 스마트 시스템은 점차 딥러닝 기반 인공지능 시스템으로 대체되고 있다.
인공지능 기술은 기계학습(딥러닝) 및 기계학습을 활용한 요소 기술들로 구성될 수 있다. 기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성될 수 있다.
개시된 실시예에서, 인공 지능 기술에 포함되는 추론 예측 기술을 구현하는 기계 학습 기술이 이용될 수 있다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함할 수 있다.
인공지능과 관련된 기능은 프로세서(210)와 메모리(215)를 통해 동작될 수 있다. 프로세서(210)는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서일 수 있다. 하나 또는 복수의 프로세서는, 메모리에 저장된 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공지능 전용 프로세서인 경우, 인공지능 전용 프로세서는, 특정 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다.
개시된 실시예에 있어서, 전술한 기계 학습 모델은 어플리케이션 및 그에 대응되는 적어도 하나의 지원 요소에 대한 사용 이력으로부터 전자 장치(200)에 대한 사용 패턴을 예측(prediction)하도록 학습 또는 훈련되는 기계 학습 모델이 될 수 있다. 예를 들어, 전자 장치(200)에 대한 사용 패턴은, 전자 장치(200)의 적법한 사용자 또는 정당한 사용자의 의도에 가장 부합하도록, 어플리케이션 및 그에 대응되는 적어도 하나의 지원 요소가 사용될 가능성을 의미할 수 있다.
예를 들어, 기계 학습 모델은 제1 정보를 학습하는 훈련(training) 과정을 통해 만들어 질 수 있다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 훈련(또는, 학습)됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미할 수 있다.
이러한 학습은 전자 장치(500) 자체에서 이루어질 수도 있고, 전자 장치(500)와 물리적으로 구별되는 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다.
개시된 실시예서 이용되는 기계 학습 모델은 제1 정보에 기초하여 어플리케이션 및 지원 요소에 대한 이용 가능성을 예측하도록 훈련(training)된 기계 학습 모델이 될 수 있다.
예를 들어, 기계 학습 모델은 시계열 데이터인 제1 정보에 시간 윈도우(time window)를 적용하여 획득되는 복수개의 학습 데이터에 기초하여, 상기 이용 가능성을 예측하도록 훈련(training)된 기계 학습 모델이 될 수 있다. 예를 들어, 기계 학습 모델은 시계열 데이터인 상기 제1 정보에 시간 윈도우(time window)를 적용하여 획득되는 복수개의 학습 데이터를 입력받고, 상기 복수개의 학습 데이터에 기초하여 상기 이용 가능성을 예측하도록 훈련(training)될 수 있다.
제1 어플리케이션 및 그와 연관되는 지원 요소에 대한 이용 가능성을 예측하기 위해서, 먼저 기계 학습 모델은 제1 어플리케이션 및 그와 연관되어 이용되는 지원 요소들에 대한 사용 이력을 학습할 수 있다. 도 15를 참조하면, 정보(1510)는 제1 어플리케이션의 사용 이력을 나타내는 정보로 제1 정보에 포함될 수 있다. 도 15에서는, 제1 어플리케이션이 실행되는데 있어서 이용되는 지원 요소가 1개 뿐인 경우를 예로 들어서 도시하였다.
도 15를 참조하면, 제1 어플리케이션에 대한 사용 이력을 나타내는 정보(1510)는 시간(또는 시간에 따른 빈도)의 흐름에 따라서 수집되는 시계열 데이터이며, 도시된 바와 같이 표현될 수 있다.
기계 학습 모델의 훈련은 제1 정보에 시간 윈도우를 적용하여 획득되는 복수개의 학습 데이터를 이용하여 이뤄질 수 있다.
예를 들어, 시간 윈도우는 설정된 시간 또는 설정된 빈도에 대응되는 데이터를 추출할 수 있다. 예를 들어, 이용 횟수(또는 이용 빈도수)가 4회 포함되도록 하는 시간 윈도우가 설정될 수 있다. 첫 번째로 적용되는 시간 윈도우는 이용 횟수 1 내지 4까지의 데이터를 추출하며, 두 번째로 적용되는 시간 윈도우는 빈도수가 1회 이동하여, 이용 횟수 2 내지 5까지의 데이터를 추출할 수 있다. 그리고, 세 번째로 시간 윈도우는 빈도수가 1회 이동하여, 이용 횟수 3 내지 6까지의 데이터를 추출할 수 있다.
예를 들어, 기계 학습 모델이 지도형 학습(supervised learning)으로 훈련되는 경우, 기계 학습 모델은 첫번째 시간 윈도우에 해당하는 이용 횟수 1 내지 4까지의 데이터(x1)을 입력값(1520)으로 입력받고, 대응 되는 출력 값(1530)으로 y1(구체적으로, 이용 횟수 5에 해당하는 데이터 값)을 제공받을 수 있다. 그리고, 입력된 데이터 x1 으로부터 출력 값 y1이 도출되도록 학습될 수 있다. 계속하여, 기계 학습 모델은 두번째 시간 윈도우에 해당하는 이용 횟수 2 내지 5까지의 데이터(x2)을 입력받고, 대응 되는 출력 값으로 y2(구체적으로, 이용 횟수 6에 해당하는 데이터 값)을 제공받을 수 있다. 그리고, 입력된 데이터 x2 으로부터 출력 값 y2이 도출되도록 학습될 수 있다. 계속하여, 기계 학습 모델은 세번째 시간 윈도우에 해당하는 이용 횟수 3 내지 6까지의 데이터(x3)을 입력받고, 대응 되는 출력 값으로 y3(구체적으로, 이용 횟수 7에 해당하는 데이터 값)을 제공받을 수 있다. 그리고, 입력된 데이터 x3 으로부터 출력 값 y3이 도출되도록 학습될 수 있다.
예를 들어, 기계 학습 모델은, 소정 시점을 기준으로 이전에 어떠한 사용 이력을 가지는 경우, 소정 시점 이후에 사용 이력은 어떻게 표현될 수 있는지를 학습할 수 있다.
전술한 방식으로 학습이 완료된 기계 학습 모델은 '훈련된 기계 학습 모델' 또는 '학습된 기계 학습 모델'이라 칭할 수 있다.
기계 학습 모델은, 제1 정보에 기초하여, 현재 시점(예를 들어, 제어 명령이 입력된 시점, 또는 제어 명령이 입력된 시점에 근접한 시점 등)에서의 소정 어플리케이션 및 그에 연관되는 지원 요소의 이용 가능성을 나타내는 정보를 출력값으로 출력할 수 있다. 예를 들어, S720 단계에서 언급된 '이용 가능성'은 예측값 'y'로 표현될 수 있다. 훈련된 기계 학습 모델은 현재 시점에 대응되는 시간 윈도우에 대응되는 데이터(예를 들어, 이용 횟수 4 내지 7까지의 데이터(x))를 입력받고, 입력된 데이터를 처리하여 목적하는 값인 해당 어플리케이션과 연관된 지원 요소의 이용 가능성을 출력값 y 로써 출력할 수 있다. 여기서, y 값이 S720 단계에서 획득되는 제2 정보에 포함될 수 있다. y 값은 S710 단계에서 수신되는 제어 명령에 대응되는 어플리케이션 및 지원 요소에 대한 이용 가능성을 나타내는 정보를 포함할 수 있다.
도 16은 개시된 실시예에서 이용되는 기계 학습 모델의 훈련 동작을 설명하기 위한 다른 도면이다.
도 16을 참조하면, 정보(1610)는 제1 어플리케이션의 사용 이력을 나타내는 정보로 제1 정보에 포함될 수 있다. 정보(1610)는 도 15에 도시된 정보(1510)에 비하여, 지원 요소2에 대한 사용 이력을 더 포함할 수 있다. 도 16에서는, 제1 어플리케이션이 실행되는데 있어서 이용되는 지원 요소가 지원 요소1 및 지원 요소 2인 경우를 예로 도시하였다. 정보(1610)에 적용되는 시간 윈도우는 도 15에서 설명한 바와 동일하며, 정보(1610)을 이용하여 훈련되는 기계 학습 모델도 도 15에서 설명한 바와 동일하므로, 중복되는 설명은 생략한다.
어플리케이션의 실행에 대응하여 이용 또는 지원되는 지원 요소가 복수개인 경우, 기계 학습 모델의 훈련을 위하여 입력되는 입력 값(1610)은 다차원 값으로 표현될 수 있다. 예를 들어, 도시된 바와 같이, 지원 요소 1에 대응되는 값을 x 값으로, 지원 요소 2에 대응되는 값을 y 값으로 표현할 수 있다. 또한, 입력 값(1610)은 다차원에 대응되는 벡터 값으로 표현될 수 도 있다.
기계 학습 모델은 입력 값(1610)에 대응되는 출력값(1630)을 예측하도록 훈련될 수 있다.
도 15 및 도 16을 참조하여 설명한 바와 같이, 도 7에 도시한 S720 단계는, 훈련된 상기 기계 학습 모델로, S710 단계의 명령이 수신되는 시점에 대응되어 상기 제1 정보 상에 설정된 상기 시간 윈도우에 포함되는 데이터를 입력하는 단계, 및 상기 데이터의 입력에 대응하여 훈련된 상기 기계 학습 모델에서 출력되는 출력 데이터를 상기 제2 정보로 획득하는 단계를 포함할 수 있다.
기계 학습 모델은 개시된 실시예에 따른 전자 장치(100, 200, 300, 400, 500 또는 600) 내에 탑재 또는 저장될 수 있다. 기계 학습 모델이 전자 장치(100, 200, 300, 400, 500 또는 600) 내에 탑재되는 경우, 해당 기계 학습 모델을 온 디바이스(On-device) 모델이라 칭할 수 있다.
예를 들어, 프로세서(210) 및 메모리(215) 중 적어도 하나는 기계 학습 모델을 저장할 수 있다. 프로세서(210) 및 메모리(215) 중 적어도 하나에 저장되는 기계 학습 모델은 학습이 완료된(즉, 훈련된) 기계 학습 모델이 될 수 있다. 예를 들어, 프로세서(210)는 제1 정보를 획득하도록 제어하고, 획득된 제1 정보에 기초하여 기계 학습 모델의 훈련 동작이 수행되도록 제어할 수 있다.
프로세서(210)는 내부적으로 저장되며 훈련이 완료된 기계 학습 모델로, 제1 정보에 포함되는 적어도 일부 데이터를 기계 학습 모델로 입력하고, 그에 대응되는 출력값을 제2 정보로 획득할 수 있다.
또 다른 예로, 기계 학습 모델은 전자 장치(500) 내에 저장되어 있지 않을 수 있다. 이 경우, 프로세서(210)는 외부 장치에 저장되어 있는 기계 학습 모델에서 제2 정보가 출력되도록 요청하고, 요청에 대응하여 외부 장치에서 전송되는 제2 정보가 수신되도록 통신 인터페이스(230)를 제어할 수도 있을 것이다. 기계 학습 모델이 외부 장치에 저장되어 있는 실시예는 이하에서 도 25 내지 도 28을 참조하여 설명한다.
개시된 실시예에서, 기계 학습 모델은 입력된 데이터에 기초하여 출력 데이터를 예측하도록 연산을 수행하는 트리 기반 알고리즘(tree-based algorithm), 연속된 학습을 진행하고 에러(error)가 발생하면 그 에러를 반영하여 학습을 다시 수행하는(예를 들어, 에러가 발생한 부분에 대응되는 가중치를 조절하여 학습을 수행하는) 부스팅 알고리즘(boosting algorithm) 등이 이용될 수 있다.
예를 들어, 기계 학습 모델은 Decision Tree, Random Forest, GBM (Gradient Boosting Machine), XGBoost (Extreme Gradient Boosting), AdaBoost (Adaptive Boosting), Light GBM (Light Gradient Boosting Machine), 및 CatBoost(Category + Boosting) 알고리즘 중 적어도 하나를 포함할 수 있다. 여기서, Random Forest 알고리즘은 트리 기반 알고리즘의 일 예이다. 그리고, XGBoost 알고리즘은 부스팅 알고리즘의 일 예이다.
예를 들어, 기계 학습 모델은 Decision Tree, Random Forest, GBM (Gradient Boosting Machine), XGBoost (Extreme Gradient Boosting), AdaBoost (Adaptive Boosting), Light GBM (Light Gradient Boosting Machine), 및 CatBoost(Category + Boosting) 중 적어도 두개가 병렬 연결되며, 상기 병렬 연결되는 적어도 두 개의 모델들 각각의 출력에 기초하여 최종 출력 데이터를 출력하는 앙상블(ensemble) 모델이 될 수 있다.
도 17은 개시된 실시예에서 이용되는 기계 학습 모델을 설명하기 위한 일 도면이다.
도 17에서는, 기계 학습 모델로 XGBoost (Extreme Gradient Boosting) 모델이 이용되는 경우를 예로 들어 도시하였다.
XGBoost 모델(1720)은 확장 가능한 Tree Boosting 시스템(A scalable tree boosting system)으로, 최적화된 GBM 을 활성화하는 구현 모델이라 할 수 있다. 구체적으로, XGBoost 모델은 GBM에서 문제되는 과적합(overfitting) 이슈를 방지할 수 있도록 regularization term 을 추가하여 형성한 모델이다. XGBoost 모델은 의사결정나무(decision tree) 내에서 목적하는 결과를 예측하기 위해서 가장 정확한 분기(split)를 찾을 수 있어서, 높은 출력 정확도를 가질 수 있다.
도 17을 참조하면, 제1 정보 중 하나의 어플리케이션에 대한 사용 이력을 나타내는 정보(1710)가 기계 학습 모델(1710)로 입력되고, 그에 대응하여 해당 어플리케이션에 대응되는 기능 요소들(Func a, Func b, Func c, Func d)에 대한 이용 가능성을 나타내는 출력값(1730)이 출력될 수 있다. 여기서, 출력값(1730)은 제2 정보에 포함되는 이용 가능성을 나타내는 정보가 될 수 있다.
도 18은 개시된 실시예에서 이용되는 기계 학습 모델을 설명하기 위한 다른 도면이다.
도 18에서는, 기계 학습 모델로 Random Forest 모델이 이용되는 경우를 예로 들어 도시하였다. 도 18에 도시된 구성들 중 도 17에서와 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다.
Random Forest 모델(1820)은 확장 가능한 분류 및 회귀 분석에 사용되는 기계 학습 모델로, 다수의 결정 트리로부터 분류 또는 평균 예측치를 출력함으로써 동작할 수 있다. Random Forest 모델은 대용량 데이터의 처리가 용이하며, 과적합(overfitting) 이슈를 방지할 수 있다는 장점이 있다.
도 18을 참조하면, 제1 정보 중 하나의 어플리케이션에 대한 사용 이력을 나타내는 정보(1710)가 기계 학습 모델(1810)로 입력되고, 그에 대응하여 해당 어플리케이션에 대응되는 기능 요소들(Func a, Func b, Func c, Func d)에 대한 이용 가능성을 나타내는 출력값(1830)이 출력될 수 있다. 여기서, 출력값(1830)은 제2 정보에 포함되는 이용 가능성을 나타내는 정보가 될 수 있다.
도 17 및 도 18에서는, 기계 학습 모델로 입력되는 입력 데이터가, 하나의 어플리케이션에 대한 사용 이력을 나타내는 정보인 경우를 예로 들어서 도시 및 설명하였으나, 전자 장치(500)가 제공할 수 있는 복수개의 어플리케이션들 각각에 대한 사용 이력을 나타내는 제1 정보를 순차적으로 또는 동시에 입력받고, 복수개의 어플리케이션들 각각에 대응되는 제2 정보를 획득할 수 있다.
도 19는 개시된 실시예에서 이용되는 기계 학습 모델을 설명하기 위한 또 다른 도면이다. 도 19에 도시된 구성들 중 도 17 및 도 18에서와 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다.
도 19를 참조하면, 기계 학습 모델(1910)은 복수개의 기계 학습 모델이 결합된 앙상블 모델로 형성될 수 있다. 예를 들어, 기계 학습 모델은 Decision Tree, Random Forest, GBM (Gradient Boosting Machine), XGBoost (Extreme Gradient Boosting), AdaBoost (Adaptive Boosting), Light GBM (Light Gradient Boosting Machine), 및 CatBoost(Category + Boosting) 중 적어도 두개가 병렬 연결되며, 상기 병렬 연결되는 적어도 두 개의 모델들 각각의 출력에 기초하여 최종 출력 데이터를 출력하는 앙상블(ensemble) 모델이 될 수 있다.
도 19에서는, 기계 학습 모델(1910)이 XGBoost 모델(1720) 및 Random Forest 모델(1820)이 병렬 연결되는 앙상블 모델인 경우를 예로 들어서 도시하였다.
도 19를 참조하면, 기계 학습 모델(1910)에 포함되는 XGBoost 모델(1720) 및 Random Forest 모델(1820) 각각은 제1 정보에 포함되는 정보(1710)을 입력받고, 그에 대응되는 출력 값을 출력할 수 있다.
그리고, 기계 학습 모델(1910)은, XGBoost 모델(1720) 및 Random Forest 모델(1820) 각각을 가중 평균 처리(1930)하여 최종 결과값(1950)을 출력할 수 있다.
전술한 바와 같이, 앙상블 모델을 이용하는 경우, 단일 기계 학습 모델에 비하여 결과 값의 분산을 감소시킬 수 있다. 그에 따라서, 결과의 정확도 및/또는 신뢰도를 증가시킬 수 있다.
또한, 기계 학습 모델(1910)에 포함되는 XGBoost 모델(1720) 및 Random Forest 모델(1820) 각각에, 서로 다른 가중치를 적용하여 최종 결과 값을 출력할 수도 있을 것이다.
도 20은 개시된 실시예에서 획득되는 제2 정보를 설명하기 위한 일 도면이다.
도 20을 참조하면, 도 17 내지 도 19를 참조하여 설명한 기계 학습 모델(1720, 1820 또는 1910)을 통하여 출력되는, 어플리케이션들 각각에 대응되는 적어도 하나의 지원 요소 별 이용 가능성에 대한 정보(2000)가 도시된다. 예를 들어, 정보(2000)는 제2 정보가 될 수 있다.
개시된 실시예에서, 프로세서(210)는 제2 정보를 미리 획득하여 이용할 수 있다. 또는, 프로세서(210)는 S710 단계의 제어 요청이 수신되는 것에 기초하여, 제2 정보를 획득할 수 있다.
다시 도 7을 참조하면, 프로세서(210)는 S720 단계에서 획득되는 제2 정보에 기초하여, S710 단계에서 수신되는 제어 명령을 실행을 자동으로 제어할 수 있다(S730).
프로세서(210)는 제2 정보에 기초하여, 제어 명령이 실행되도록 제어하는 경우, 제어 명령의 요구하는 어플리케이션의 실행에 대응되는 적어도 하나의 지원 요소의 이용을 허용할 수 있다. 그에 따라서, 적어도 하나의 지원 요소를 통하여 해당 어플리케이션이 실행될 수 있다.
프로세서(210)는 제2 정보에 기초하여, 제어 명령이 실행되지 않도록 제어하는 경우, 제어 명령의 요구하는 어플리케이션의 실행에 대응되는 적어도 하나의 지원 요소의 기능이 이용(또는, 지원)되지 않도록 제어할 수 있다. 예를 들어, 프로세서(210)는 제2 정보에 기초하여, 제어 명령이 실행되지 않도록 제어하는 경우, 제어 명령의 요구하는 어플리케이션의 실행에 대응되는 적어도 하나의 지원 요소를 차단 또는 비활성화할 수 있다. 예를 들어, 지원 요소의 차단은 계층적으로 차단될 수 있다. 예를 들어, 지원 요소의 계층적 차단은, 해당 지원 요소에 대한 연결을 원천적으로 차단, 해당 지원 요소의 연결은 허용하나 해당 지원 요소를 통하여 데이터는 송수신 되지 않도록 차단, 또는 해당 지원 요소의 연결은 허용하고 해당 지원 요소를 통하여 데이터는 송수신 되나, 송수신된 데이터가 출력되지 않도록 차단 하는 등과 같이, 차단의 정도를 조절하는 것을 의미할 수 있다.
예를 들어, 전자 장치에 강의 어플리케이션를 탑재하고 있을 수 있다. 강의 어플리케이션이 실행되면, 이더넷을 통하여 연결되는 외부 장치 또는 외부 서버로부터 동영상 강의 컨텐츠를 수신하고, 수신된 동영상 강의 컨텐츠가 재생될 수 있다.
도 7 및 전술한 예시를 모두 참조하면, 제1 어플리케이션이 '강의 어플리케이션'이 될 수 있고, 제1 어플리케이션의 실행에 이용되는 지원 요소는 '이더넷 모듈'(예를 들어, 도 8에 도시된 유선 통신 모듈(예를 들어, 이더넷 모듈)(812))이 될 수 있다.
S710 단계에서 설명한 '제어 요청'이 이더넷 모듈을 통한 제1 어플리케이션(예를 들어, 강의 어플리케이션)에 대한 실행 명령인 경우를 예로 들자. 그리고, 제1 정보는 제1 어플리케이션(예를 들어, 강의 어플리케이션)의 실행에 필요한 지원 요소인 이더넷 모듈(812)가 될 수 있다.
개시된 실시예 이용되는 기계 학습 모델은, 전자 장치에서 제공되는 제1 어플리케이션에 대한 사용 이력을 나타내는 제1 정보에 기초하여 학습된 후, 제1 어플리케이션에 대응되는 지원 요소의 이용 가능성을 출력할 수 있다.
예를 들어, 제2 정보가 기계 학습 모델에서 제1 어플리케이션의 실행시 이용되는 지원 요소인 이더넷 모듈의 이용 가능성이 낮은 것을 나타내는 경우, 개시된 실시예는 전자 장치(500)의 사용자가 해당 기능을 이용하지 않을 의도가 높다고 인식하고, 이더넷 모듈을 통한 제1 어플리케이션(예를 들어, 강의 어플리케이션)에 대한 실행 명령인 제어 명령이 수신되어도, 그에 대응되는 동작을 수행하지 않을 수 있다. 예를 들어, 이더넷 모듈을 통한 통신 연결 자체를 거부할 수 있다. 또는, 이더넷 모듈을 통한 통신 연결을 수립하더라도, 강의 컨텐츠가 수신되지 않도록 블록킹(blocking)할 수 있다.
또 다른 예로, 제2 정보가 기계 학습 모델에서 제1 어플리케이션의 실행시 이용되는 지원 요소인 이더넷 모듈의 이용 가능성이 높은 것을 나타내는 경우, 개시된 실시예는 전자 장치(500)의 사용자가 해당 기능을 이용할 가능성이 높다고 인식하고, 이더넷 모듈을 통한 제1 어플리케이션(예를 들어, 강의 어플리케이션)에 대한 실행 명령인 제어 명령이 수신되면, 그에 대응되는 동작을 수행할 수 있다.
전술한 바와 같이, 개시된 실시예는, 어플리케이션 및 그에 대응되는 적어도 하나의 지원 요소들을 연관시켜 그에 대한 사용 이력을 나타내는 제1 정보를 수집하고, 제1 정보에 기초하여 어플리케이션 및 대응되는 지원 요소의 이용 가능성을 포함하는 제2 정보를 출력하도록 학습된 기계 학습 모델을 이용한다. 그에 따라서, 전자 장치에서의 어플리케이션 및 그에 대응되는 적어도 하나의 지원 요소들에 대한 이용 가능성을 포함하는 정보(구체적으로, 전술한 제2 정보)에 기초하여, 사용자의 의도에 더욱 부합하는 방향으로 수신되는 제어 명령을 실행하거나 그에 대응되는 동작들 중 적어도 하나의 실행을 거부할 수 있다.
따라서, 복잡한 설정이나, 지원 요소 단위의 선택적인 차단(blocking) 설정을 하지 않더라도, 사용자의 의도에 부합하는 방향으로 탄력적으로 지원 요소의 이용 또는 제어할 수 있다. 그러므로, 사용자의 조작 편리성 및 조작 용이성을 증가시킬 수 있다.
도 21a은 개시된 실시예에 따른 전자 장치의 동작 방법을 나타내는 다른 플로우차트이다. 도 21a에 도시된 전자 장치의 동작 방법 (2100)은 도 1 내지 도 6을 참조하여 설명한 개시된 실시예에 따른 전자 장치(100, 200, 300, 400, 500 또는 600)에서 수행되는 동작들을 나타내는 흐름도가 될 수 있다. 또한, 도 21a에 도시된 전자 장치의 동작 방법(2100)에 있어서, 도 7에 도시된 전자 장치의 동작 방법(700)과 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다. 그러므로, 전자 장치의 동작 방법(700)에 대한 설명들과 중복되는 설명은 생략한다.
이하에서는, 설명의 편의 상 전자 장치의 동작 방법(2100)에서 포함되는 동작들이, 도 5에서 설명한 전자 장치(500)를 통하여 수행되는 경우를 예로 들어 설명하도록 하겠다.
도 21a을 참조하면, S720 단계에 후속하여, 전자 장치의 동작 방법(2100)은 제1 이용 가능성을 제1 값과 비교할 수 있다(S731). S731 단계는 프로세서(210)에 의해서 수행될 수 있다.
예를 들어, 프로세서(210)는 제1 이용 가능성이 제1 값 이상이 되는지 판단할 수 있다(S731). 또는, 프로세서(210)는 제1 이용 가능성이 제1 값을 초과하는지 판단할 수 있다(S731).
예를 들어, S710 단계에서 수신된 제어 명령이 전자 장치(500)에서 제공 가능한 복수개의 어플리케이션 중 제1 어플리케이션(App1)에 대한 제어를 요청하는 명령이 될 수 있다. 예를 들어, 제1 이용 가능성은 도 12에 도시된 제1 어플리케이션에 대응되는 사용 이력을 나타내는 정보(1200)를 포함하는 제1 정보에 기초하여 학습된 기계 학습 모델에서 출력되는 출력 값에 대응되는 값이 될 수 있다. 다시 도 20에 예시된 정보(2000)를 참조하면, 제1 이용 가능성은 정보(2000)에 포함되는, 제1 어플리케이션(App1)에 대응되는 적어도 하나의 지원 요소에 대한 이용 가능성을 나타내는 값이 될 수 있다. 정보(2000)를 참조하면, 제1 이용 가능성은 '제1 어플리케이션이 실행되는 동안에, 지원 요소 1의 이용가능성은 0.2, 지원 요소 2의 이용 가능성은 0.4, 지원 요소 3의 이용 가능성은 0.5 '와 같이 표현될 수 있다.
예를 들어, 제1 값은 설정된 값이 될 수 있다. 예를 들어, 제1 값을 기설정값이 될 수 있다. 구체적으로, 제1 값은 프로세서(210)에 의해서 최적화되어 기설정되는 값이 될 수 있다. 또는, 제1 값은 사용자에 의해서 기설정되는 값이 될 수 있다.
예를 들어, 제1 값은, 해당 지원 요소가 이용되는 것으로 판단할 수 있는 기준 값을 의미할 수 있다. 예를 들어, 지원 요소가 아주 짧은 시간 또는 짧은 빈도로 이용 가능성이 있는 경우, 어플리케이션을 실행하기 위해서 해당 지원 요소가 이용되었다고 보기 어렵다. 따라서, 제1 값은 어플리케이션에 대응되는 지원 요소가 이용되는 것으로 판단할 수 있는 값으로, 최적화하여 설정될 수 있다. 예를 들어, 제1 값은 반복 실험을 통하여 최적화된 값으로 설정될 수 있다.
예를 들어, 도 20에 예시된 정보(2000)에 대응하여, 제1 값은 0.1 등과 같은 값으로 설정될 수 있다.
또한, '제1 값'은 특정 순서, 또는 특정 순위의 값을 나타내는 값이 아니며, 전술한 기준값 또는 설정값을 지칭하는 값을 의미할 수 있다.
S731 단계의 비교 결과에 기초하여, S710 단계에서 수신된 명령에 대응되는 기능을 실행할 수 있다(S735). 예를 들어, S731 단계의 비교 결과에 기초하여, S710 단계에서 수신된 명령의 실행을 제어할 수 있다(S735). S731 단계는 프로세서(210)에 의해서 수행될 수 있다. 예를 들어, '명령의 실행'은 명령에 대응되는 기능을 실행'하는 것을 의미할 수 있다.
예를 들어, 프로세서(210)는 제1 이용 가능성이 제1 값 이상(또는, 초과)이 되면, 제1 어플리케이션에 대한 제어를 요청하는 명령(예를 들어, S710 단계에서 수신된 제어 명령)을 실행하여, 그에 대응되는 동작들이 수행되도록 제어할 수 있다(S732).
또한, S732 단계에 있어서, 명령의 실행을 알리는 안내 메시지를 출력하는 단계를 더 포함할 수 있다(단계 미도시).
예를 들어, 안내 메시지는 '입력하신 요청을 실행하겠습니다', '요청 실행 중', '요청 실행 중입니다. 잠시만 기다려 주세요', '요청 실행 중/ 활성화 모듈:xxx' 등과 같은 메시지를 포함할 수 있다. 메시지는 시각적 또는 청각적 메시지가 될 수 있다.
예를 들어, 안내 메시지는 디스플레이(220)를 통하여 시각적으로 출력될 수 있다. 예를 들어, 프로세서(210)는 안내 메시지가 디스플레이(220)의 적어도 일부 영역 상에 출력되도록 제어할 수 있다.
또 다른 예로, 안내 메시지는 프로세서(210)의 제어에 따라서, 청각적 메시지로 출력될 수 있다. 예를 들어, 프로세서(210)는 안내 메시지가 사용자에게 청각적 메시지로 전달되도록, 안내 메시지에 대응되는 오디오 데이터가 생성되도록 제어하고, 생성된 오디오 데이터가 전자 장치(500)의 오디오 출력부(250)로 출력되도록 제어할 수 있다. 또는, 프로세서(210)는 안내 메시지가 사용자가 이용하는 다른 전자 기기(구체적으로, 전자 장치(500)와 통신할 수 있는)를 통하여 사용자에게 청각적 메시지로 전달되도록, 안내 메시지에 대응되는 오디오 데이터가 생성되도록 제어하고, 생성된 오디오 데이터가 다른 전자 기기로 전송되도록 통신부(232)를 제어할 수 있다. 그에 따라서, 다른 전자 기기는 안내 메시지에 대응되는 오디오를 사용자에게 제공할 수 있다.
출력되는 안내 메시지는 이하에서 도 21b 및 도 21c를 참조하여 상세히 설명한다. 도 21b 및 도 21c는 안내 메시지가 시각적 메시지로 출력되는 경우를 예로 들어서 설명한다.
또한, 안내 메시지는 전자 장치(500)가 디스플레이(220)를 포함하는 경우 디스플레이(220)를 통하여 출력될 수 있다.
또는, 개시된 실시예에 따른 전자 장치가 도 2 또는 도 4에 도시된 전자 장치(200, 400)에서와 같이 디스플레이를 포함하고 있지 않는 경우, 프로세서(210)는 안내 메시지가 전자 장치(200)에서 제공되는 영상 데이터를 출력하는 외부 디스플레이(410)를 통하여 출력되도록 제어 제어할 수 있다. 이 경우, 프로세서(210)는 안내 메시지를 포함하는 영상 데이터를 생성하고, 통신부(232)를 제어하여 생성된 영상 데이터가 외부 디스플레이(410)로 전송할 수 있다.
도 21b는 도 21a에 도시된 전자 장치의 동작 방법에서 수행되는 동작을 설명하기 위한 일 도면이다.
도 21c는 도 22a에 도시된 전자 장치의 동작 방법에서 수행되는 동작을 설명하기 위한 다른 도면이다.
도 21b를 참조하면, 안내 메시지(2151)은 전자 장치(500)에서 출력되는 화면(2150) 상에 도시된 바와 같이 표시될 수 있다.
도 21c를 참조하면, 안내 메시지(2161)은 전자 장치(500)에서 출력되는 화면(2160) 상에 도시된 바와 같이 표시될 수 있다. 예를 들어, 안내 메시지(2161)은 명령을 수행함에 따라서 실행되는 어플리케이션에 대응되는 적어도 하나의 지원요소, 즉 활성화되는 지원 요소에 대한 정보를 포함할 수 있다. 예를 들어, 요청의 실행에 따라서 소정 어플리케이션을 실행시키고, 소정 어플리케이션의 실행을 지원하기 위해서 와이파이 모듈을 활성화시키는 경우, '활성화 모듈: wifi' 와 같은 정보를 안내 메시지(2161)에 포함할 수 있다.
예를 들어, 기계 학습 모델이 제1 정보에 기초하여 어플리케이션에 대응되는 지원 요소에 대한 사용 패턴을 학습하였으므로, 기계 학습 모델에서 출력되는 제2 정보에 포함되는 제1 이용 가능성이 제1 값 이상이 된다는 것은, 제1 어플리케이션에 대응되는 제1 지원 요소를 사용자가 사용할 가능성이 있는 것을 의미할 수 있다. 따라서, 제1 이용 가능성이 제1 값 이상이 되면, 수신된 제어 명령을 그대로 실행하는 것이 사용자의 의도에 부합할 수 있다. 그러므로, 사용자의 의도에 부합하도록, 제1 제어 명령을 자동으로 실행할 수 있다.
예를 들어, 프로세서(210)는 제1 이용 가능성이 제1 값 미만(또는, 이하)이 되면, 제1 어플리케이션에 대한 제어를 요청하는 명령(예를 들어, S710 단계에서 수신된 제어 명령)을 실행하지 않을 수 있다(S733).
예를 들어, 기계 학습 모델이 제1 정보에 기초하여 어플리케이션에 대응되는 지원 요소에 대한 사용 패턴을 학습하였으므로, 기계 학습 모델에서 출력되는 제2 정보에 포함되는 제1 이용 가능성이 제1 값 미만이 된다는 것은, 제1 어플리케이션에 대응되는 제1 지원 요소를 사용자가 사용할 가능성이 없거나 낮다는 것을 의미할 수 있다. 따라서, 제1 이용 가능성이 제1 값 미만이 되면, 수신된 제어 명령을 실행하지 않는 거이 사용자의 의도에 부합할 수 있다. 그러므로, 사용자의 의도에 부합하도록, 제1 제어 명령을 무시할 수 있다.
또한, S733 단계에 있어서, 명령을 실행하지 않는다는 것을 알리는 안내 메시지를 출력하는 단계를 더 포함할 수 있다(단계 미도시).
예를 들어, 안내 메시지는 '입력한 요청을 실행하지 않습니다', '요청 실행 X', '차단된 기능입니다', '차단된 기능이니 사용을 원하시면 설정에서 차단 해제를 해주세요' 등과 같은 메시지를 포함할 수 있다. 안내 메시지는 시각적 또는 청각적 메시지가 될 수 있다. 안내 메시지가 시각적 또는 청각적으로 출력되는 구성은 이상에서 S732 단계에서 설명한 안내 메시지의 출력 구성과 동일하므로, 상세 설명은 생략한다.
도 22a는 개시된 실시예에 따른 전자 장치의 동작 방법을 나타내는 다른 플로우차트이다. 도 22a에 도시된 전자 장치의 동작 방법 (2200)은 도 1 내지 도 6을 참조하여 설명한 개시된 실시예에 따른 전자 장치(100, 200, 300, 400, 500 또는 600)에서 수행되는 동작들을 나타내는 흐름도가 될 수 있다. 또한, 도 22a에 도시된 전자 장치의 동작 방법(2200)에 있어서, 도 7 및 도 21a에 도시된 전자 장치의 동작 방법(700, 2100)과 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다. 그러므로, 전자 장치의 동작 방법(700)에 대한 설명들과 중복되는 설명은 생략한다.
이하에서는, 설명의 편의 상 전자 장치의 동작 방법(2200)에서 포함되는 동작들이, 도 5에서 설명한 전자 장치(500)를 통하여 수행되는 경우를 예로 들어 설명하도록 하겠다.
도 22a를 참조하면, 전자 장치의 동작 방법(2200)은 제1 이용 가능성이 제1 값 미만(또는, 이하)이 되면, S740 단계의 동작을 수행할 수 있다. S740 단계는 프로세서(210)에 의해서 수행될 수 있다.
예를 들어, 프로세서(210)는 제1 이용 가능성이 제1 값 미만(또는, 이하)이 되는 것에 기초하여, 전자 장치(500)에 등록된 사용자 정보를 확인하기 위한 제1 사용자 인터페이스 화면을 제공할 수 있다(S741). S741 단계는 프로세서(210)의 제어에 따라서 디스플레이(220)에서 수행될 수 있다. 또는, 제1 사용자 인터페이스 화면이 도 4에서 설명한 외부 디스플레이(410)에서 출력되도록 하기 위해서, 프로세서(210)는 통신 인터페이스(230)를 제어하여, 제1 사용자 인터페이스 화면에 대응되는 영상 데이터가 외부 디스플레이(410)로 전송되도록 제어할 수 있다.
예를 들어, 사용자 정보는, 전자 장치(500)에 대하여 제어 또는 관리 권한, 정당한 이용 권한 또는 우선 이용 권한을 가지는 사용자를 확인하기 위한 정보가 될 수 있다. 예를 들어, 사용자 정보는 전술한 등록 사용자에 대한 정보가 될 수 있다.
예를 들어, 등록 사용자는 전자 장치(500)의 이용, 조작 또는 관리할 권한을 가지는 사용자가 될 수 있다. 예를 들어, 전자 장치가 학교의 교실에 설치된 디지털 TV 일 수 있다. 이 경우, 디지털 TV 는 학교 수업의 학습용으로 이용될 목적으로 설치된 전자 장치로, 해당 반의 선생님에 디지털 TV 에 대한 관리 권한을 가질 수 있다. 따라서, 등록 사용자는 선생님이 될 수 있으며, 선생님은 디지털 TV 의 사용을 제한 또는 관리하기 위해서 사용자 정보를 전자 장치(500)에 초기 설정 또는 초기 등록할 수 있다.
또 다른 예로, 전자 장치가 디지털 TV 인 경우, 다수인이 이용할 수 있는 특성으로 인하여, 정당한 권한 또는 우선 권한을 가진 사용자 이외에도 다수의 이용자가 존재할 수 있다. 예를 들어, 정당한 권한 또는 우선 권한을 가진 사용자로는, 디지털 TV의 소유주, 디지털 TV 가 위치하는 가정 내의 가족 구성원들 등이 있다. 전자 장치(500)는 등록 사용자에게 우선적인 사용 권한이 있을 수 있다.
전술한 바와 같이, 전자 장치에 대한 등록 사용자를 확인하기 위해서, 전자 장치는 초기의 1회 또는 설정된 주기 간격으로, 등록 사용자로부터 사용자 정보를 입력 또는 설정받을 수 있다.
예를 들어, 사용자 정보는 PIN 정보, ID, 초기 설정된 비밀 번호, 패턴, 및 사용자 생체 정보 중 적어도 하나를 포함할 수 있다.
S741 단계에서 출력되는 사용자 인터페이스 화면은 S710 단계에서 수신되는 제어 명령이 등록 사용자가 요청한 것인지를 확인받기 위해서 출력되는 화면으로, 'PIN 번호를 입력하여 주세요', '명령 실행을 위해서 PIN 번호 입력이 필요합니다.', 'PIN 번호 입력' 등과 같은 메시지를 포함할 수 있다.
또한, 상기 메지시는 오디오 메시지로 출력될 수도 있다.
또한, S741 단계에서 출력되는 UI 는 전자 장치(500)가 디스플레이(220)를 포함하는 경우 디스플레이(220)를 통하여 출력될 수 있다.
또는, 개시된 실시예에 따른 전자 장치가 도 2 또는 도 4에 도시된 전자 장치(200, 400)에서와 같이 디스플레이를 포함하고 있지 않는 경우, 프로세서(210)는 S741 단계에서 출력되는 UI 가, 전자 장치(200)에서 제공되는 영상 데이터를 출력하는 외부 디스플레이(410)를 통하여 출력되도록 제어 제어할 수 있다. 이 경우, 프로세서(210)는 상기 UI 에 대응되는 영상 데이터를 생성하고, 통신부(232)를 제어하여 생성된 영상 데이터가 외부 디스플레이(410)로 전송할 수 있다.
S741 단계에서 출력되는 UI 는 이하에서 도 22b 및 도 22c를 참조하여 설명한다.
도 22b는 도 22a에 도시된 전자 장치의 동작 방법에서 수행되는 동작을 설명하기 위한 일 도면이다.
도 22c는 도 22a에 도시된 전자 장치의 동작 방법에서 수행되는 동작을 설명하기 위한 다른 도면이다.
도 22b를 참조하면, 안내 메시지(2251)은 전자 장치(500)에서 출력되는 화면(2250) 상에 도시된 바와 같이 표시될 수 있다.
도 22c를 참조하면, 안내 메시지(2261)은 전자 장치(500)에서 출력되는 화면(2260) 상에 도시된 바와 같이 표시될 수 있다.
도 21a의 S733 단계에서 설명한 바와 같이, 제1 이용 가능성이 제1 값 미만이 된다는 것은, 제1 어플리케이션에 대응되는 제1 지원 요소를 사용자가 사용할 가능성이 없거나 낮다는 것을 의미할 수 있다. 그러나, 제1 이용 가능성이 제1 값 미만이 되더라도, S710 단계에서 수신된 명령이 등록 사용자가 요청한 것일 수 있다. 이 경우, 제어 명령을 실행하지 않는다면, 이는 등록된 사용자의 의도에 부합하지 않는다. 그러므로, 이러한 경우에는 등록 사용자임을 확인하기 위한 사용자 인터페이스(UI) 화면을 출력하여, 등록 사용자임을 확인할 수 있다.
S741 단계에서 출력되는 제1 사용자 인터페이스 화면을 통하여 사용자 입력이 수신되는 것에 기초하여, S710 단계에서 수신된 명령의 실행을 제어할 수 있다(S7410).
예를 들어, 프로세서(210)는 등록 사용자에 대응되는 사용자 정보가 입력되면, S710 단계에서 수신된 명령을 그대로 실행할 수 있다. 그리고, 프로세서(210)는 등록 사용자에 대응되는 사용자 정보가 입력되지 않으면, S710 단계에서 수신된 명령을 실행하지 않을 수 있다.
전술한 바와 같이, 제1 이용 가능성이 제1 값 미만이 된다는 것은, 제1 어플리케이션에 대응되는 제1 지원 요소를 사용자가 사용할 가능성이 없거나 낮다는 것으로 판단되는 경우에도, 등록 사용자임을 확인하는 과정을 통하여, 등록 사용자의 의도에 부합하는 방향으로 S710 단계에서 수신된 제어 명령이 수행되거나 수행되지 않을 수 있다.
도 23은 개시된 실시예에 따른 전자 장치의 동작 방법을 나타내는 다른 플로우차트이다. 도 23에 도시된 전자 장치의 동작 방법 (2300)은 도 1 내지 도 6을 참조하여 설명한 개시된 실시예에 따른 전자 장치(100, 200, 300, 400, 500 또는 600)에서 수행되는 동작들을 나타내는 흐름도가 될 수 있다. 또한, 도 23에 도시된 전자 장치의 동작 방법(2300)에 있어서, 도 7 및 도 21a에 도시된 전자 장치의 동작 방법(700, 2100)과 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다. 그러므로, 전자 장치의 동작 방법(700, 2100)에 대한 설명들과 중복되는 설명은 생략한다.
이하에서는, 설명의 편의 상 전자 장치의 동작 방법(2300)에서 포함되는 동작들이, 도 5에서 설명한 전자 장치(500)를 통하여 수행되는 경우를 예로 들어 설명하도록 하겠다.
도 23을 참조하면, 전자 장치의 동작 방법(2300)은 자동 제어를 수행할 것인지 판단할 수 있다(S701). S701 단계는 프로세서(210)에 의해서 수행될 수 있다. 자동 제어 수행 여부는 초기 설정을 통하여 설정되어 있을 수 있다. 또는, 자동 제어 수행이 오프셋 설정으로 설정되어 있을 수 있다.
예를 들어, 자동 제어는, 도 7에 도시된 바와 같이, 제2 정보에 기초하여 수신된 제어 명령의 실행 여부를 결정하는 방식을 의미할 수 있다. 예를 들어, 자동 제어는, 사용자가 지원 요소들의 차단 또는 허용을 개별적으로 설정하지 않더라도, 제2 정보에 기초하여, 수신된 제어 명령의 실행 여부를 자동으로 결정하여, 지원 요소를 허용하여 해당 어플리케이션에 대한 제어를 수행하거나, 지원 요소를 차단하여 해당 어플리케이션이 실행되지 않도록 제어하는 방식을 의미할 수 있다.
S701 단계의 판단 결과 자동 제어를 수행하는 것으로 판단되면, 전자 장치의 동작 방법(2300)은 S710 단계의 동작을 수행할 수 있다.
S701 단계의 판단 결과 자동 제어에 대응한 기능을 미수행하는 것으로 식별되면, 전자 장치의 동작 방법(2300)은 S702 단계의 동작을 수행할 수 있다.
예를 들어, 전자 장치의 동작 방법(2300)은 제어 명령을 수신할 수 있다(S702). S702 는 전술한 S710 단계에 동일 대응되므로, 상세 설명은 생략한다.
계속하여, 전자 장치의 동작 방법(2300)은 S702 단계에서 수신된 제어 명령에 대응한 기능을 실행할 수 있다(S704). 예를 들어, 전자 장치의 동작 방법(2300)은 S702 단계에서 수신된 제어 명령을 그대로 수행할 수 있다(S704).
도 24는 개시된 실시예에 따른 전자 장치의 동작 방법을 나타내는 다른 플로우차트이다. 도 24에 도시된 전자 장치의 동작 방법 (2400)은 도 1 내지 도 6을 참조하여 설명한 개시된 실시예에 따른 전자 장치(100, 200, 300, 400, 500 또는 600)에서 수행되는 동작들을 나타내는 흐름도가 될 수 있다. 또한, 도 24에 도시된 전자 장치의 동작 방법(2400)에 있어서, 도 7에 도시된 전자 장치의 동작 방법(700)과 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다. 그러므로, 전자 장치의 동작 방법(700)에 대한 설명들과 중복되는 설명은 생략한다.
이하에서는, 설명의 편의 상 전자 장치의 동작 방법(2400)에서 포함되는 동작들이, 도 5에서 설명한 전자 장치(500)를 통하여 수행되는 경우를 예로 들어 설명하도록 하겠다.
도 24를 참조하면, 전자 장치의 동작 방법(2400)은 도 7에 도시된 전자 장치의 동작 방법(700)에 비하여 S705 및 S706 단계를 더 포함할 수 있다.
전자 장치의 동작 방법(2400)은 전자 장치(500) 내에서 제1 정보의 획득 및 기계 학습 모델의 훈련(또는 학습) 동작을 내부적으로 수행할 수 있다.
전자 장치의 동작 방법(2400)은 제1 정보를 획득할 수 있다(S705).
전자 장치(500)는 소정 기간 동안에 제1 정보를 획득할 수 있다. 예를 들어, 전자 장치(500)는 제어 명령이 수신되어 어플리케이션이 실행될 때마다 그에 대응되는 사용 이력을 제1 정보에 반영할 수 있다.
예를 들어, 전자 장치(500)는 적어도 하나의 어플리케이션 및 상기 적어도 하나의 지원 요소에 대한 사용 이력이 새롭게 발생하면, 상기 새롭게 발생된 사용 이력에 기초하여 상기 제1 정보를 업데이트할 수 있다. 예를 들어, 업데이트는 소정 시간 간격, 또는 사용 이력이 발생할 때마다 이뤄질 수 있다.
프로세서(210)는 제1 정보가 메모리(215)에 저장 및 업데이트되도록 제어할 수 있다.
전자 장치의 동작 방법(2400)은 S705 단계에서 획득된 제1 정보에 기초하여 기계 학습 모델을 훈련할 수 있다(S706). 예를 들어, S706 단계는 프로세서(210)에 의해서 수행될 수 있다.
기계 학습 모델은 개시된 실시예에 따른 전자 장치(100, 200, 300, 400, 500 또는 600) 내에 탑재 또는 저장될 수 있다. 기계 학습 모델이 전자 장치(100, 200, 300, 400, 500 또는 600) 내에 탑재되는 경우, 해당 기계 학습 모델을 온 디바이스(On-device) 모델이라 칭할 수 있다.
예를 들어, 프로세서(210) 및 메모리(215) 중 적어도 하나는 기계 학습 모델을 저장할 수 있다. 프로세서(210) 및 메모리(215) 중 적어도 하나에 저장되는 기계 학습 모델은 학습이 완료된(즉, 훈련된) 기계 학습 모델이 될 수 있다. 예를 들어, 프로세서(210)는 제1 정보를 획득하도록 제어하고, 획득된 제1 정보에 기초하여 기계 학습 모델의 훈련 동작이 수행되도록 제어할 수 있다.
프로세서(210)는 내부적으로 저장되며 훈련이 완료된 기계 학습 모델로, 제1 정보에 포함되는 적어도 일부 데이터를 기계 학습 모델로 입력하고, 그에 대응되는 출력값을 제2 정보로 획득할 수 있다.
예를 들어, 프로세서(210)는 어플리케이션 및 그에 대응되는 적어도 하나의 지원 요소에 대한 사용 이력으로부터 전자 장치에서 제공되는 복수개의 어플리케이션들 각각에 대한 사용 패턴을 예측(prediction)하도록, 기계 학습 모델을 훈련시킬 수 있다. 예를 들어, 전자 장치(500)에 대한 사용 패턴은, 전자 장치(500)의 적법한 사용자 또는 정당한 사용자의 의도에 가장 부합하도록, 어플리케이션 및 그에 대응되는 적어도 하나의 지원 요소가 사용될 가능성을 의미할 수 있다.
예를 들어, 프로세서(210)는 소정 주기 간격으로, 기계 학습 모델의 훈련 동작을 실시할 수 있다. 예를 들어, 프로세서(210)는 제1 정보가 업데이트되면, 업데이트된 제1 정보에 기초하여 기계 학습 모델의 훈련 동작을 다시 실시할 수 있다.
도 25는 개시된 실시예에 따른 전자 장치의 동작 방법을 나타내는 다른 플로우차트이다. 도 25에 도시된 전자 장치의 동작 방법 (2500)은 도 1 내지 도 6을 참조하여 설명한 개시된 실시예에 따른 전자 장치(100, 200, 300, 400, 500 또는 600)에서 수행되는 동작들을 나타내는 흐름도가 될 수 있다. 또한, 도 25에 도시된 전자 장치의 동작 방법(2500)에 있어서, 도 7 및 도 24에 도시된 전자 장치의 동작 방법(700, 2400)과 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다. 그러므로, 전자 장치의 동작 방법(700, 2400)에 대한 설명들과 중복되는 설명은 생략한다.
이하에서는, 설명의 편의 상 전자 장치의 동작 방법(2500)에서 포함되는 동작들이, 도 5에 도시된 전자 장치(500)를 통하여 수행되는 경우를 예로 들어 설명하도록 하겠다.
전자 장치의 동작 방법(2500)은 S705 단계에서 획득된 제1 정보를 외부 장치(예를 들어, 서버)로 전송할 수 있다(S707). S707 단계의 동작은 프로세서(210)의 제어에 따라서 통신부(232)에서 수행될 수 있다. 여기서, 외부 장치는 기계 학습 모델을 탑재 또는 저장하고 있는 모든 컴퓨팅 장치가 될 수 있다.
예를 들어, 제1 정보는 전자 장치(500)에서의 사용 이력을 나타내는 정보이므로, 전자 장치(500)내에서 소정 기간 동안에 획득되는 정보가 될 수 있다. 프로세서(210)는 제1 정보를 메모리(215)에 저장하고, 저장된 제1 정보를 독출할 수 있다. 그리고, 독출된 제1 정보가 통신부(232)를 통하여 외부 장치로 전송되도록 제어할 수 있다.
예를 들어, 기계 학습 모델은 전자 장치(500) 내에 저장되어 있지 않을 수 있다. 이 경우, 프로세서(210)는 제1 정보를 외부 장치로 전송하고, 제1 정보를 전송받은 외부 장치가 기계 학습 모델을 통하여 제2 정보를 출력하도록 요청할 수 있다. 그리고, 프로세서(210)는 상기 요청에 대응하여 외부 장치에서 전송되는 제2 정보가 수신되도록 통신 인터페이스(230)를 제어할 수 있다. 기계 학습 모델이 외부 장치에 저장되어 있는 실시예는 이하에서 도 25 내지 도 28을 참조하여 설명한다.
먼저, 도 26 및 도 27을 참조하여, 기계 학습 모델을 저장하고 있는 외부 장치에 대하여 설명한다.
도 26은 서버와 통신하는 전자 장치를 나타내는 도면이다.
도 26에 도시된 전자 장치(2600)는 도 1 내지 도 6을 참조하여 설명한 개시된 실시예에 따른 전자 장치(100, 200, 300, 400, 500 또는 600)에 대응될 수 있다. 따라서, 전자 장치(2600)에 대한 상세 설명은 생략한다.
예를 들어, 기계 학습 모델을 저장 및/또는 학습할 외부 장치는 전자 장치(500)와 네트워크(2601)를 통하여 통신을 수행할 수 있는 서버, 외부 전자 장치, 외부 단말 등이 될 수 있다. 네트워크(2601)은 유선 또는 무선의 통신 네트워크가 될 수 있다.
도 26 및 도 27에서는, 외부 장치가 전자 장치(2600)와 무선 통신 네트워크를 통하여 연결되는 서버(2600)인 경우를 예로 들어서 도시 및 설명한다.
도 26을 참조하면, 서버(2600)는 기계 학습에 따른 연산을 수행할 수 있다. 그리고, 전자 장치(500) 및 서버(2650)는, 기계 학습에 따른 연산을 수행한 결과, 훈련된 기계 학습 모델, 기계 학습 모델을 훈련시키기 위해서 필요한 데이터(예를 들어, 학습 데이터)(예를 들어, 제1 정보), 기계 학습 모델이 결과를 출력하기 위해서 필요한 데이터 등을 송수신할 수 있다. 또한, 서버(2600)는 기계 학습 모델에서 출력되는 출력 데이터를 전자 장치(2600)로 전송할 수 있다.
도 27은 개시된 실시예에 따른 전자 장치와 통신하는 서버를 나타내는 블록도이다.
도 27을 참조하면, 서버(2650)는, DB(2710), 통신부(2720), 및 프로세서(2730)를 포함할 수 있다. 서버(2650)는 개시된 실시예에 따른 디스플레이 장치와 연동하여 동작할 수 있으며, 기계 학습 모델에 따른 연산을 수행하여 입력 데이터 분석, 분류, 예측, 및 결과 데이터 출력 중 어도 하나의 동작을 수행할 수 있다.
DB(database)(1710)는 메모리(미도시)를 포함할 수 있으며, 메모리(미도시) 내에 서버(2650)가 소정 동작을 수행하기 위해서 필요한 적어도 하나의 인스트럭션, 프로그램, 데이터 중 적어도 하나를 저장할 수 있다.
또한, DB(database)(1710)는 서버(2650)가 기계 학습 모델에 따른 연산을 수행하기 위해서 필요한 데이터들을 저장할 수 있다. 구체적으로, DB(database)(1710)는 기계 학습 모델을 훈련시키기 위해서 필요한 학습 데이터 셋(예를 들어, 제1 정보)를 저장할 수 있다. 또한, DB(2710)는 복수개의 기계 학습 모델들을 저장할 수 있다. 예를 들어, DB(2710)는 S705 단계에서 획득된 제1 정보를 저장할 수 있다.
통신부(2720)는 전자 장치(2600)와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 통신부(2720)의 구체적인 구성은, 도 5에서 설명한 통신부(232)의 구성과 동일 대응되므로, 상세한 설명은 생략한다.
프로세서(2730)는 서버(2650)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(2730)는, 서버(2650)의 DB(2710)에 저장된 프로그램들을 실행함으로써, DB(2710) 및 통신부(2720) 등을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(2730)는 DB(2710)에 저장된 프로그램들을 실행함으로써, 기계 학습 모델의 훈련, 데이터 입/출력을 제어할 수 있다.
프로세서(2730)는, 기계 학습 모델에서 출력되는 출력 데이터를 전자 장치(2600)로 전송하기 위해 필요한 동작, 또는 전자 장치(2600)와의 데이터 송수신을 위해서 필요한 동작을 수행할 수 있다. 예를 들어, 프로세서(2730)은 기계 학습 모델에서 출력되는 제1 이용 가능성을 포함하는 정보(예를 들어, 제2 정보)를 전자 장치(2600)로 전송할 수 있다.
다시 도 25를 참조하면, 전자 장치의 동작 방법 (2500)은 S710 수신되는 제어 명령에 기초하여 외부 장치로 제2 정보의 전송을 요청하고, 그에 대응하여 제2 정보를 외부 장치로부터 수신할 수 있다(S721). S721 단계는 도 7에 도시된 S720 단계에 대응될 수 있다.
예를 들어, 프로세서(210)는 제어 명령의 수신에 대응하여, 서버(2650)로 제2 정보의 전송을 요청하는 요청 신호를 전송하도록 통신부(232)를 제어할 수 있다. 그러면, 서버(2650)는 수신되는 요청 신호에 기초하여, 기계 학습 모델에서 제1 이용 가능성을 포함하는 제2 정보를 획득할 수 있을 것이다. 또는, 서버(2650)는 제1 정보에 기초하여 기계 학습 모델에서 미리 제2 정보를 획득하여 저장하고 있을 수 있다. 예를 들어, 서버(2650)는 도 20에 도시된 제2 정보를 미리 저장하고 있을 수 있다. 이 경우, 서버(2650)는 요청 신호가 수신되면, 저장되어 있는 제2 정보에서 제1 어플리케이션에 대응되는 적어도 하나의 지원 요소에 대한 제1 이용 가능성을 나타내는 정보를 독출하고, 독출된 정보를 통신부(2720)를 통하여 전자 장치(500)로 전송할 수 있을 것이다.
개시된 실시예에 따른 전자 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 또한, 개시된 실시예는, 전자 장치의 동작 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체가 될 수 있다.
상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
여기서, 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.

Claims (20)

  1. 전자 장치에서 제공 가능한 적어도 하나의 어플리케이션 중 제1 어플리케이션에 대한 제어를 요청하는 명령을 수신하는 단계;
    상기 적어도 하나의 어플리케이션 및 상기 적어도 하나의 어플리케이션 각각의 실행을 지원하는 적어도 하나의 지원 요소에 대한 사용 이력에 대응되는 제1 정보에 기초하여 어플리케이션 및 지원 요소에 대한 이용 가능성을 예측하는 기계 학습 모델(Machine learning model)에서 출력되는, 제2 정보를 획득하는 단계; 및
    상기 제1 어플리케이션에 대응되는 적어도 하나의 지원 요소인 제1 지원 요소에 대한 이용 가능성인 제1 이용 가능성을 포함하는 상기 제2 정보에 기초하여, 상기 명령에 대응하는 기능을 실행하는 단계를 포함하는, 전자 장치의 동작 방법.
  2. 제1항에 있어서, 상기 기계 학습 모델은
    시계열 데이터인 상기 제1 정보에 시간 윈도우(time window)를 적용하여 획득되는 복수개의 학습 데이터에 기초하여 상기 이용 가능성을 예측하도록 훈련(training)된 기계 학습 모델인, 전자 장치의 동작 방법.
  3. 제1항에 있어서, 상기 명령에 대응하는 기능을 실행하는 단계는
    상기 제1 이용 가능성을 제1 값과 비교한 결과에 기초하여, 상기 명령에 대응하는 기능을 실행하는 단계를 포함하는, 전자 장치의 동작 방법.
  4. 제1항에 있어서, 상기 명령에 대응하는 기능을 실행하는 단계는
    상기 제1 이용 가능성이 제1 값 이하이면, 상기 전자 장치에 등록된 사용자 정보를 확인하기 위한 제1 사용자 인터페이스 화면을 제공하는 단계; 및
    상기 제1 사용자 인터페이스 화면을 통하여 수신되는 사용자 입력에 기초하여, 상기 명령에 대응하는 기능을 실행하는 단계를 포함하는, 전자 장치의 동작 방법.
  5. 제1항에 있어서, 상기 제2 정보를 획득하는 단계는
    상기 제1 정보에 포함되는, 상기 명령이 수신되는 시점 이전의 제1 기간 동안에 획득된 적어도 하나의 데이터를 상기 기계 학습 모델로 입력하고, 상기 기계 학습 모델에서 출력되는 출력 데이터를 상기 제2 정보로 획득하는, 전자 장치의 동작 방법.
  6. 제1항에 있어서,
    상기 제2 정보에 기초한 자동 제어를 수행할지 여부를 식별하는 단계; 및
    상기 자동 제어에 대응한 기능을 미수행하는 것으로 식별되면,
    상기 명령이 수신되면 상기 명령에 대응한 기능을 실행하는 단계를 더 포함하는, 전자 장치의 동작 방법.
  7. 제1항에 있어서, 상기 제1 정보를 획득하는 단계는
    제1 기간 동안에 상기 적어도 하나의 어플리케이션 각각과 그에 대응되는 적어도 하나의 지원 요소에 대한 사용 빈도 및 사용 시간 중 적어도 하나에 대한 정보를 상기 제1 정보로 획득하는 단계를 포함하는, 전자 장치의 동작 방법.
  8. 제7항에 있어서, 상기 제2 정보를 획득하는 단계는
    상기 기계 학습 모델로, 상기 명령이 수신되는 시점에 대응되어 상기 제1 정보 상에 설정된 상기 시간 윈도우에 포함되는 데이터를 입력하는 단계; 및
    상기 데이터의 입력에 대응하여 상기 기계 학습 모델에서 출력되는 출력 데이터를 상기 제2 정보로 획득하는 단계를 포함하는, 전자 장치의 동작 방법.
  9. 제1항에 있어서,
    상기 적어도 하나의 어플리케이션 및 상기 적어도 하나의 지원 요소에 대한 사용 이력이 새롭게 발생하면, 상기 새롭게 발생된 사용 이력에 기초하여 상기 제1 정보를 업데이트하는 단계를 더 포함하는, 전자 장치의 동작 방법.
  10. 제9항에 있어서,
    제1 정보가 업데이트되면, 상기 업데이트된 제1 정보에 기초하여 상기 기계 학습 모델을 훈련시키는 단계를 더 포함하는, 전자 장치의 동작 방법.
  11. 적어도 하나의 인스트럭션을 저장하는 메모리; 및
    상기 적어도 하나의 인스트럭션을 실행하는 프로세서를 포함하며,
    상기 프로세서는
    상기 적어도 하나의 인스트럭션을 실행하여,
    전자 장치에서 제공 가능한 적어도 하나의 어플리케이션 중 제1 어플리케이션에 대한 제어를 요청하는 명령을 수신하고,
    상기 적어도 하나의 어플리케이션 및 상기 적어도 하나의 어플리케이션 각각의 실행에 이용되는 적어도 하나의 지원 요소에 대한 사용 이력에 대응되는 제1 정보에 기초하여 어플리케이션 및 지원 요소에 대한 이용 가능성을 예측하는 기계 학습 모델(Machine learning model)에서 출력되는, 제2 정보를 획득하며,
    상기 제1 어플리케이션 및 상기 제1 어플리케이션의 실행에 이용되는 제1 지원 요소에 대한 이용 가능성인 제1 이용 가능성을 나타내는 상기 제2 정보에 기초하여, 상기 명령에 대응하는 기능을 실행하는, 전자 장치.
  12. 제11항에 있어서, 상기 기계 학습 모델은
    시계열 데이터인 상기 제1 정보에 시간 윈도우(time window)를 적용하여 획득되는 복수개의 학습 데이터에 기초하여 상기 이용 가능성을 예측하도록 훈련(training)된 기계 학습 모델인, 전자 장치.
  13. 제11항에 있어서, 상기 프로세서는
    상기 제1 이용 가능성을 제1 값과 비교한 결과에 기초하여, 상기 명령에 대응하는 기능을 실행하는, 전자 장치.
  14. 제11항에 있어서,
    디스플레이; 및
    사용자 인터페이스를 더 포함하며,
    상기 프로세서는
    상기 제1 이용 가능성이 제1 값 이하이면, 상기 디스플레이 상으로 상기 전자 장치에 등록된 사용자 정보를 확인하기 위한 제1 사용자 인터페이스 화면이 출력되도록 제어하며,
    상기 사용자 인터페이스를 통하여 수신되는 사용자 입력에 기초하여, 상기 명령에 대응하는 기능을 실행하는, 전자 장치.
  15. 제11항에 있어서, 상기 프로세서는
    상기 제1 정보에 포함되는, 상기 명령이 수신되는 시점 이전의 제1 기간 동안에 획득된 적어도 하나의 데이터를 상기 기계 학습 모델로 입력하고, 상기 기계 학습 모델에서 출력되는 출력 데이터를 상기 제2 정보로 획득하는, 전자 장치.
  16. 제11항에 있어서, 상기 프로세서는
    상기 제2 정보에 기초한 자동 제어를 수행할지 여부를 식별하고,
    상기 자동 제어에 대응한 기능을 미수행하는 것으로 식별되면, 상기 명령이 수신되면 상기 명령에 대응한 기능을 실행하는, 전자 장치.
  17. 제11항에 있어서, 상기 프로세서는
    제1 기간 동안에 상기 적어도 하나의 어플리케이션 각각과 그에 대응되는 적어도 하나의 지원 요소에 대한 사용 빈도 및 사용 시간 중 적어도 하나에 대한 정보를 상기 제1 정보로 획득하는, 전자 장치.
  18. 제17항에 있어서, 상기 프로세서는
    상기 기계 학습 모델로, 상기 명령이 수신되는 시점에 대응되어 상기 제1 정보 상에 설정된 상기 시간 윈도우에 포함되는 데이터를 입력하고,
    상기 데이터의 입력에 대응하여 상기 기계 학습 모델에서 출력되는 출력 데이터를 상기 제2 정보로 획득하는, 전자 장치.
  19. 제11항에 있어서, 상기 프로세서는
    상기 적어도 하나의 어플리케이션 및 상기 적어도 하나의 지원 요소에 대한 사용 이력이 새롭게 발생하면, 상기 새롭게 발생된 사용 이력에 기초하여 상기 제1 정보를 업데이트하는, 전자 장치.
  20. 제19항에 있어서, 상기 프로세서는
    제1 정보가 업데이트되면, 상기 업데이트된 제1 정보에 기초하여 상기 기계 학습 모델을 훈련시키는, 전자 장치.
KR1020210194551A 2021-12-31 2021-12-31 전자 장치 및 그의 동작 방법 KR20230103577A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210194551A KR20230103577A (ko) 2021-12-31 2021-12-31 전자 장치 및 그의 동작 방법
PCT/KR2022/021728 WO2023128701A1 (ko) 2021-12-31 2022-12-30 전자 장치 및 그의 동작 방법
US18/105,320 US20230213896A1 (en) 2021-12-31 2023-02-03 Electronic device and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210194551A KR20230103577A (ko) 2021-12-31 2021-12-31 전자 장치 및 그의 동작 방법

Publications (1)

Publication Number Publication Date
KR20230103577A true KR20230103577A (ko) 2023-07-07

Family

ID=86999781

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210194551A KR20230103577A (ko) 2021-12-31 2021-12-31 전자 장치 및 그의 동작 방법

Country Status (2)

Country Link
KR (1) KR20230103577A (ko)
WO (1) WO2023128701A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101813889B1 (ko) * 2010-11-11 2018-01-04 삼성전자 주식회사 휴대단말기의 경보 제어 장치 및 방법
US9015313B2 (en) * 2013-03-14 2015-04-21 Google Inc. Providing actionable content to a computing device based on user actions
KR102160650B1 (ko) * 2013-08-26 2020-09-28 삼성전자주식회사 사용자의 의도를 자동으로 인지하여 정보를 제공하는 모바일 장치 및 그의 동작 방법
US10970646B2 (en) * 2015-10-01 2021-04-06 Google Llc Action suggestions for user-selected content
KR101766847B1 (ko) * 2017-01-24 2017-08-11 (주)지란지교소프트 사용자 행위에 기반한 프로세스 평가 방법

Also Published As

Publication number Publication date
WO2023128701A1 (ko) 2023-07-06

Similar Documents

Publication Publication Date Title
US20200118010A1 (en) System and method for providing content based on knowledge graph
US11170201B2 (en) Method and apparatus for recognizing object
US20220147870A1 (en) Method for providing recommended content list and electronic device according thereto
EP3690644B1 (en) Electronic device and operation method therefor
US11189278B2 (en) Device and method for providing response message to user input
KR102606287B1 (ko) 애플리케이션의 번역 정보를 제공하는 디바이스 및 방법
US20180137550A1 (en) Method and apparatus for providing product information
KR20200142374A (ko) 입력 데이터에 근거한 ai 모델 선택 방법 및 그에 따른 방법을 수행하는 디스플레이 장치
KR20180055708A (ko) 이미지를 처리하는 전자 장치 및 방법
US11514150B2 (en) Video display device and operating method therefor
KR102531654B1 (ko) 음성 입력 인증 디바이스 및 그 방법
US11481551B2 (en) Device and method for providing recommended words for character input
US20200372911A1 (en) Speech recognition device and method
US11170778B2 (en) Conversational control system and method for registering external device
US11474780B2 (en) Method of providing speech recognition service and electronic device for same
US11412308B2 (en) Method for providing recommended channel list, and display device according thereto
KR102535152B1 (ko) 디스플레이 장치 및 디스플레이 장치의 제어 방법
US20190163702A1 (en) Image display apparatus and method of operating the same
US11249871B2 (en) Device and method for providing response to device usage inquiry
KR20200080387A (ko) 디스플레이 장치 및 그 제어 방법
US11341965B2 (en) System for processing user utterance and operating method thereof
US20210004702A1 (en) System and method for generating information for interaction with a user
KR20230103577A (ko) 전자 장치 및 그의 동작 방법
US20230213896A1 (en) Electronic device and operating method thereof
US11675973B2 (en) Electronic device and operation method for embedding an input word using two memory operating speeds