KR20200052361A - 클라우드-디바이스 협업적 실시간 사용자 사용 및 성능 비정상 검출을 위한 시스템 및 방법 - Google Patents

클라우드-디바이스 협업적 실시간 사용자 사용 및 성능 비정상 검출을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20200052361A
KR20200052361A KR1020207010478A KR20207010478A KR20200052361A KR 20200052361 A KR20200052361 A KR 20200052361A KR 1020207010478 A KR1020207010478 A KR 1020207010478A KR 20207010478 A KR20207010478 A KR 20207010478A KR 20200052361 A KR20200052361 A KR 20200052361A
Authority
KR
South Korea
Prior art keywords
application
usage
abnormality
data
computing device
Prior art date
Application number
KR1020207010478A
Other languages
English (en)
Other versions
KR102339239B1 (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 KR20200052361A publication Critical patent/KR20200052361A/ko
Application granted granted Critical
Publication of KR102339239B1 publication Critical patent/KR102339239B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

컴퓨팅 디바이스는, 하나 이상의 자원 사용에 대해 하나 또는 복수의 애플리케이션의 이상을 검출하기 위한 하나 이상의 비정상 검출 모델을 원격 디바이스로부터 수신하고, 각각의 애플리케이션과 연관된 자원 사용 데이터를 획득하고, 하나 이상의 비정상 검출 모델을 사용하여, 각각의 애플리케이션이 자원 사용에서 이상을 갖는지를 결정하고, 이에 응답하여 액션을 취한다. 비정상 검출 모델은 다수의 디바이스로부터 수집된 데이터에 기초하여 원격 디바이스에서 머신 러닝 기술을 사용하여 구축된다. 자원 사용 데이터는 컴퓨팅 디바이스에 의해 사용되는 애플리케이션들에 관한 정보 예를 들어, 디바이스 상의 애플리케이션에 의해 액세스된 하나 이상의 하드웨어 컴포넌트 또는 하나 이상의 서비스의 사용 또는 에너지 소비를 포함한다. 비정상 검출 결과는 애플리케이션이 복수의 비정상 레벨에서의 비정상 레벨에 속하는 우도들을 포함할 수 있다.

Description

클라우드-디바이스 협업적 실시간 사용자 사용 및 성능 비정상 검출을 위한 시스템 및 방법
본 출원은 2017년 10월 13일자로 출원되고 발명의 명칭이 "System and Method for Cloud-Device Collaborative Real-Time User Experience Abnormality Detection"인 미국 가특허 출원 일련 번호 제62/572,320호의 우선권을 주장하며, 이는 이로써 그 전체가 참고로 포함된다.
본 개시내용은 일반적으로 애플리케이션 비정상 검출에 관한 것이고, 특정 실시예들에서, 클라우드-디바이스 협력적 실시간 사용자 경험 및 성능 비정상 검출을 위한 시스템 및 방법에 관한 것이다.
컴퓨팅 디바이스들은 사람들의 일상 생활에서 점점 더 중요해지고 있고, 컴퓨팅 디바이스들을 사용하는 다양한 요구들을 수용하기 위해 스마트폰들, 스마트 워치들, 태블릿들, 랩톱들, 컴퓨터들 등과 같은, 다양한 사용자 디바이스들에 대해 점점 더 많은 애플리케이션들 또는 소프트웨어 프로그램들이 개발되었다. 애플리케이션 또는 프로세스는, 컴퓨팅 디바이스에서 비정상적으로 동작할 때, 성능, 전력 또는 에너지 소비, 및 결과적으로 컴퓨팅 디바이스의 사용자 경험에 상당한 영향을 미칠 수 있다. 애플리케이션의 비정상 검출은 비정상적으로 실행하는 애플리케이션의 악영향을 완화하기 위해 적절한 액션들을 선택하고 취하는 것을 도울 수 있다.
본 개시내용의 실시예에 따르면, 컴퓨팅 디바이스에 의해, 원격 디바이스로부터 제1 비정상 검출 모델을 수신하는 단계를 포함하는 방법이 제공된다. 제1 비정상 검출 모델은 자원 사용에서 애플리케이션의 이상을 검출하기 위한 머신 러닝 기술을 사용하여 훈련가능하다. 방법은 또한 제1 비정상 검출 모델에 따라 애플리케이션의 자원 사용 데이터를 획득하는 단계를 포함한다. 자원 사용 데이터는 컴퓨팅 디바이스 상에서 애플리케이션에 의해 액세스되는 하나 이상의 하드웨어 컴포넌트 또는 하나 이상의 서비스의 사용 또는 에너지 소비에 관한 정보를 포함한다. 방법은, 제1 비정상 검출 모델을 사용하여 컴퓨팅 디바이스에 의해, 애플리케이션이 획득된 자원 사용 데이터에 기초하여 자원 사용에서 이상을 갖는지를 결정하고, 자원 사용에서의 애플리케이션의 이상에 대한 결정에 응답하여 액션을 취하는 단계를 추가로 포함한다. 하나 이상의 비정상 검출 모델을 사용함으로써, 컴퓨팅 디바이스의 하나 이상의 애플리케이션의 이상은 하나 이상의 자원 사용에서 검출될 수 있다.
본 개시내용의 다른 실시예에 따르면, 복수의 컴퓨팅 디바이스로부터 애플리케이션에 관련된 데이터 샘플들을 획득하는 단계를 포함하는 컴퓨터로 구현된 방법이 제공된다. 데이터 샘플들은 복수의 컴퓨팅 디바이스 상에서 애플리케이션에 의해 액세스되는 하나 이상의 하드웨어 컴포넌트 또는 하나 이상의 서비스의 사용 또는 에너지 소비에 관한 정보를 포함하고, 각각의 데이터 샘플은 복수의 컴퓨팅 디바이스 중 하나와 연관된다. 방법은 라벨들을 데이터 샘플들에 할당하는 단계를 추가로 포함한다. 각각의 컴퓨팅 디바이스와 연관된 데이터 샘플에 할당된 라벨은 각각의 컴퓨팅 디바이스 상의 제1 자원 사용에서 애플리케이션이 갖는 비정상 레벨들의 세트 내의 비정상 레벨을 나타내고, 제1 자원 사용은 제1 비정상 파라미터에 대응한다. 방법은 또한 라벨링된 데이터 샘플들 및 머신 러닝 기술을 사용하여 비정상 검출 모델을 구축하는 단계를 포함하고, 비정상 검출 모델은 제1 자원 사용에서의 애플리케이션의 이상을 검출한다. 애플리케이션과 연관된 복수의 컴퓨팅 디바이스로부터 획득된 데이터 샘플들에 기초하여, 하나 이상의 비정상 검출 모델이 실시예 방법들을 사용하여 구축될 수 있다. 이러한 비정상 검출 모델들은 각각의 컴퓨팅 디바이스들 상의 애플리케이션의 이상을 검출하기 위해 컴퓨팅 디바이스들에 푸시될 수 있다. 비정상 검출 모델은 하나 이상의 비정상 파라미터에 대한 하나 이상의 애플리케이션의 이상을 검출하기 위해 구축될 수 있다.
본 개시내용의 다른 실시예에 따르면, 애플리케이션에 대해 획득된 자원 사용 데이터에 기초하여 그리고 머신 러닝 기술을 사용하여 구축되는 비정상 검출 모델을 사용하여, 컴퓨팅 디바이스 상에서 실행 중인 애플리케이션이 자원 사용에서 이상을 갖는지를 검출함으로써, 애플리케이션에 대한 비정상 검출 결과를 생성하는 단계; 비정상 검출 결과에 응답하여 애플리케이션의 실행에 대한 액션을 취하는 단계; 시간 기간 동안, 애플리케이션의 비정상 검출 결과들 및 비정상 검출 결과들에 응답하여 취해진 대응하는 액션들에 관한 데이터를 수집하는 단계; 및 수집되는 데이터에 기초하여 적응 또는 맞춤화 모델을 사용하여 비정상 검출 결과에 응답하여 취해질 액션을 조정하는 단계를 포함하는 방법이 제공된다. 이러한 방식으로, 비정상 검출 결과에 응답하여 취해진 액션들은 사용자 거동 및 사용 패턴들에 기초하여 맞춤화되어 사용자 경험 및 디바이스 성능을 개선하는 것을 도울 수 있다.
본 개시내용의 실시예들은 컴퓨팅 디바이스에서 비정상적으로 실행 중인 애플리케이션들에 의해 야기되는 과도한 에너지 소비를 감소시킴으로써 사용자 경험을 개선하는 것을 돕는다. 이 실시예들은 배터리로 동작되는(battery-operated) 컴퓨팅 디바이스들에 대해 더 유용해지고, 따라서 에너지 소스는 커패시티(capacity)로 제한된다. 애플리케이션 또는 프로세스 또는 도구 또는 소프트웨어가 시간 기간 동안 컴퓨팅 디바이스에서 비정상적으로 작동하는 경우, 이것은 배터리가 정상적으로 소모되어야 하는 것보다 배터리가 빠르게 소모되게 하고, 따라서 디바이스의 사용자가 디바이스의 성능 및 효율에 만족되지 않게 할 수 있다. 비정상은 애플리케이션에 의한 하드웨어 컴포넌트들, 서비스들 및 자원들의 사용의 분석으로부터 수집된 데이터를 사용하여 검출된다. 시간 기간 동안에 애플리케이션에 의한 에너지 소비 또는 자원 사용에서의 비정상이 발생하는 경우, 이것은 디바이스의 온도에서 과도한 증가를 야기할 수 있고, 이는 디바이스 또는 그 컴포넌트들에 대한 손상을 야기할 수 있거나, 또는 디바이스 또는 그 컴포넌트들의 성능을 저하시킬 수 있다. 따라서, 실시예들의 비정상 검출은 또한 디바이스의 과도한 가열 또는 열 문제들을 방지할 수 있다. 본 개시내용의 실시예들은 또한 애플리케이션 또는 프로세스들이 컴퓨팅 디바이스에서의 자원, 컴포넌트 또는 서비스를 비정상적으로 사용하는 경우들 또는 이벤트들을 검출할 수 있고, 이것은 애플리케이션이 디바이스의 전체 성능 또는 전체 사용자 경험을 저하시키는 것을 방지하는 것을 돕는다. 자원이 비정상적으로 사용되는 경우, 이것은 자원이 다른 애플리케이션들에 또는 시스템 프로세스들에 할당될 때 자원의 성능을 저하시킬 수 있고, 그 결과, 디바이스는 감소된 성능으로 기능할 수 있다. 본 개시내용의 실시예들은 사용자 경험을 개선하고, 성능을 개선하고, 배터리 수명을 개선하고, 전체 에너지 소비를 감소시키고, 과도한 열 또는 열 문제들을 감소시키고, 컴퓨팅 디바이스에서 이용가능한 자원들 또는 소프트웨어 또는 하드웨어 컴포넌트들의 보다 정상적이고 효율적인 활용을 제공하는 것을 돕는다.
본 개시내용 및 그 이점의 더욱 완벽한 이해를 위해, 이제 이하의 첨부 도면들과 함께 취해지는 다음의 설명들에 대한 참조가 이루어진다.
도 1은 컴퓨팅 디바이스의 실시예 아키텍처의 다이어그램을 도시한다;
도 2는 애플리케이션 이상 검출을 위한 실시예 방법의 흐름도를 도시한다;
도 3은 실시예 비정상 검출 모델의 다이어그램을 도시한다;
도 4는 자원의 실시예 사용 레벨들을 보여주는 다이어그램을 도시한다;
도 5는 애플리케이션 이상 검출의 맞춤화를 위한 실시예 방법의 다이어그램을 도시한다;
도 6은 애플리케이션 이상 검출의 맞춤화를 위한 다른 실시예 방법의 다이어그램을 도시한다;
도 7은 애플리케이션 이상 검출을 위한 실시예 방법의 다이어그램을 도시한다;
도 8은 애플리케이션 이상 검출을 위한 컴퓨팅 디바이스들과 서버 사이의 상호작용을 위한 실시예 방법의 다이어그램을 도시한다;
도 9는 비정상 검출 모델을 구축하기 위한 실시예 방법의 흐름도를 도시한다;
도 10은 비정상 파라미터의 관련된 사용 파라미터에 기초하여 정의된 실시예 사용 그룹들을 보여주는 그래프를 도시한다;
도 11은 도 10에 도시된 각각의 사용 그룹에 대해 정의된 다수의 비정상 레벨 또는 임계값들을 도시하는 다이어그램을 도시한다;
도 12는 애플리케이션 이상 검출을 위한 실시예 시스템의 블록도를 도시한다;
도 13은 애플리케이션 이상 검출을 위한 실시예 방법의 흐름도를 도시한다;
도 14는 비정상 검출 모델을 구축하기 위한 실시예 방법의 흐름도를 도시한다;
도 15는 애플리케이션 이상 검출을 위한 다른 실시예 방법의 흐름도를 도시한다;
도 16은 애플리케이션 이상 검출을 위한 실시예 방법의 흐름도를 도시한다;
도 17은 애플리케이션 이상 검출에 대한 임계값을 결정하기 위한 실시예 방법의 흐름도를 도시한다;
도 18은 애플리케이션 비정상 검출을 위한 다른 실시예 방법의 흐름도를 도시한다;
도 19는 처리 또는 컴퓨팅 시스템의 블록도이다; 그리고
도 20은 송수신기의 블록도이다.
이 개시내용의 실시예들의 제조 및 사용이 하기에 상세하게 논의된다. 그러나, 본 명세서에 개시되는 개념들이 광범위한 특정 상황들에서 구현될 수 있으며, 본 명세서에 논의되는 특정 실시예들이 단지 예시적이며, 청구항들의 범위를 제한하는 역할을 하지 않는다는 것이 인식되어야 한다. 또한, 첨부된 청구항에 의해 정의된 바와 같은 본 개시내용의 사상 및 범위를 벗어나지 않으면서 다양한 변경들, 대체들 및 변형들이 이루어질 수 있음을 이해해야 한다.
본 개시내용의 실시예들은 애플리케이션 이상 검출을 위한 방법들을 제공한다. 디바이스 상에서 비정상적으로 동작하는 애플리케이션들은 성능, 전력 또는 에너지 소비, 및 결과적으로 디바이스의 사용자 경험에 상당히 영향을 미칠 수 있다. 따라서, 디바이스 상에서 실행 중인 하나 이상의 애플리케이션의 이상을 검출할 수 있는 것이 바람직할 것이다. 일부 실시예들에 따르면, 디바이스는 원격 디바이스로부터 비정상 검출 모델을 수신할 수 있다. 비정상 검출 모델은 자원 사용에서 애플리케이션의 이상을 검출하기 위한 머신 러닝 기술을 사용하여 훈련가능하다. 디바이스는 비정상 검출 모델에 따라 애플리케이션의 자원 사용 데이터를 획득할 수 있다. 자원 사용 데이터는 컴퓨팅 디바이스 상의 애플리케이션에 의해 액세스되는 하나 이상의 하드웨어 컴포넌트 또는 하나 이상의 서비스의 사용 또는 에너지 소비에 관한 정보를 포함할 수 있다. 디바이스는, 제1 비정상 검출 모델을 사용하여, 애플리케이션이 획득된 자원 사용 데이터에 기초하여 자원 사용에서 이상을 갖는지를 결정하고, 자원 사용에서 애플리케이션의 이상에 대한 결정에 응답하여 액션을 취할 수 있다. 하나 이상의 비정상 검출 모델을 사용함으로써, 컴퓨팅 디바이스의 하나 이상의 애플리케이션의 이상은 하나 이상의 자원 사용에서 검출될 수 있다.
일부 실시예들에서, 비정상 검출 모델을 구축하기 위한 방법이 제공될 수 있다. 본 방법은 복수의 컴퓨팅 디바이스로부터 애플리케이션에 관련된 데이터 샘플들을 획득할 수 있다. 데이터 샘플들은 복수의 컴퓨팅 디바이스 상에서 애플리케이션에 의해 액세스되는 하나 이상의 하드웨어 컴포넌트 또는 하나 이상의 서비스의 사용 또는 에너지 소비에 관한 정보를 포함하고, 각각의 데이터 샘플은 복수의 컴퓨팅 디바이스 중 하나와 연관된다. 그 다음, 방법은 라벨들을 데이터 샘플들에 할당할 수 있다. 각각의 컴퓨팅 디바이스와 연관된 데이터 샘플에 할당된 라벨은 각각의 컴퓨팅 디바이스 상의 제1 자원 사용에서 애플리케이션이 갖는 비정상 레벨들의 세트 내의 비정상 레벨을 나타내고, 제1 자원 사용은 제1 비정상 파라미터에 대응한다. 이 방법은 레이블링된 데이터 샘플들 및 머신 러닝 기술을 사용하여 비정상 검출 모델을 구축한다. 비정상 검출 모델은 제1 자원 사용에서 애플리케이션의 이상을 검출한다. 애플리케이션과 연관된 복수의 컴퓨팅 디바이스로부터 획득된 데이터 샘플들에 기초하여, 하나 이상의 비정상 검출 모델이 실시예 방법들을 사용하여 구축될 수 있다. 이러한 비정상 검출 모델들은 각각의 컴퓨팅 디바이스들 상의 애플리케이션의 이상을 검출하기 위해 컴퓨팅 디바이스들에 푸시될 수 있다. 비정상 검출 모델은 하나 이상의 비정상 파라미터에 대한 하나 이상의 애플리케이션의 이상을 검출하기 위해 구축될 수 있다.
일부 실시예들에서, 비정상 검출은 특정 디바이스에 대해 맞춤화될 수 있다. 예를 들어, 디바이스는, 애플리케이션에 대해 획득된 자원 사용 데이터에 기초하여 그리고 머신 러닝 기술을 사용하여 구축되는 비정상 검출 모델을 사용하여, 디바이스 상에서 실행 중인 애플리케이션이 자원 사용에서 이상을 갖는지를 검출할 수 있다. 따라서, 비정상 검출 결과가 애플리케이션에 대해 생성된다. 이 디바이스는 비정상 검출 결과에 응답하여 애플리케이션의 실행에 대한 액션을 취할 수 있다. 디바이스는, 시간 기간 동안, 애플리케이션의 비정상 검출 결과들 및 비정상 검출 결과들에 응답하여 취해진 대응하는 액션들에 관한 데이터를 수집하고, 수집되는 데이터에 기초하여 적응 또는 맞춤화 모델을 사용하여 비정상 검출 결과에 응답하여 취해진 액션을 조정할 수 있다. 이러한 방식으로, 비정상 검출 결과에 응답하여 취해진 액션들은 사용자 거동 및 사용 패턴들에 기초하여 맞춤화되어 사용자 경험 및 디바이스 성능을 개선하는 것을 도울 수 있다.
컴퓨팅 디바이스들은 사람들의 일상 생활에서 점점 더 중요해지고 있고, 다양한 요구들 및 요건들을 수용하기 위해 다양한 컴퓨팅 디바이스들에 대해 증가하는 수의 애플리케이션들 또는 소프트웨어가 개발되었다. 본 명세서에서의 컴퓨팅 디바이스는 중앙 처리 유닛(CPU) 또는 다수의 처리 유닛을 사용하여 동작하는 전자 디바이스(또는 장비, 장치)를 지칭할 수 있다. CPU는 하나 또는 하나보다 많은 칩을 가질 수 있다. CPU는 하나 이상의 코어, 마이크로프로세서, 마이크로컨트롤러, 프로세서, 그래픽 처리 유닛(GPU), 뉴럴 네트워크 처리 유닛(NPU), 제어기, 또는 이들의 임의의 조합을 포함할 수 있다. 컴퓨팅 디바이스는 정보를 처리하고/하거나 계산들을 수행하도록 구성된다. 컴퓨팅 디바이스는 수학적 및 논리적 연산들의 시퀀스들을 수행하기 위해 소프트웨어 프로그램을 따른다. 컴퓨팅 디바이스의 예들은 컴퓨터, 랩톱, 태블릿, 스마트폰, 웨어러블 전자 디바이스, 서버, 피트니스 장비, 전자 측정 디바이스, 모니터링 디바이스, 제어 디바이스, 전자 보조 디바이스, 디지털 애완 동물, 자율주행 차량, 내비게이션 디바이스, 드라이빙 디바이스, 로봇 등을 포함할 수 있다.
도 1은 컴퓨팅 디바이스의 실시예 아키텍처(100)의 다이어그램을 도시한다. 아키텍처(100)는 컴퓨팅 디바이스에 포함된 컴포넌트들을 도시한다. 도시된 바와 같이, 컴퓨팅 디바이스는, 디스플레이, GPU, CPU, Wi-Fi 인터페이스, 모뎀, 카메라, 글로벌 내비게이션 디바이스 시스템(GNSS)과 같은 복수의 하드웨어 컴포넌트를 포함한다. 컴퓨팅 디바이스는 또한 블루투스, 입력/출력(IO) 디바이스들, 마이크로-전자-기계 시스템(MEMS), 기계 디바이스들, 액추에이터들, 또는 센서들과 같은 다른 하드웨어 컴포넌트들(102)을 포함할 수 있다. 컴퓨팅 디바이스는 또한 컴퓨팅 디바이스의 동작들을 지원하기 위해 사용되는 소프트웨어 프로그램들 또는 툴들인 운영 체제(OS) 및 서비스들(104)을 포함한다. 도시된 바와 같이, 컴퓨팅 디바이스는 그래픽 라이브러리, 웹 브라우저 엔진 및 미디어 관리자와 같은 서비스들을 포함한다. OS 및 서비스들은 하드웨어 컴포넌트들을 활용하여 대응하는 기능들을 수행한다. 예를 들어, 그래픽 라이브러리는 그래픽 관련 기능을 수행하기 위해 디스플레이, GPU, 및 CPU를 사용한다. 컴퓨팅 디바이스는 또한 하나 이상의 애플리케이션(106)을 포함할 수 있다. 애플리케이션은 컴퓨팅 디바이스 상에서 설치되고 실행가능한 소프트웨어 프로그램으로서 지칭될 수 있다. 애플리케이션은 사용자에 의해 컴퓨팅 디바이스 상에 설치될 수 있거나, 다른 애플리케이션의 설치를 통해 설치될 수 있다. 애플리케이션은 원격 서버 또는 클라우드 서버와 같은 원격 디바이스로부터 다운로딩될 수 있고, 컴퓨팅 디바이스 상에 설치될 수 있다. 애플리케이션은 컴퓨팅 디바이스의 통합 부분으로서 컴퓨팅 디바이스 상에 미리 설치될 수도 있다. 애플리케이션은 백그라운드(background), 포그라운드(foreground), 또는 백그라운드과 포그라운드 둘 다에서 실행하고 있을 수 있다. 도시된 바와 같이, 컴퓨팅 디바이스는 메시지 또는 채팅 애플리케이션, 이메일 애플리케이션, 게이밍 애플리케이션, 내비게이션 또는 지도 애플리케이션, 소셜 미디어 애플리케이션, 및 이미징 또는 카메라 애플리케이션을 포함하는 애플리케이션들을 포함한다. 애플리케이션의 예들은 또한 날씨 보고 애플리케이션, 음악 또는 비디오 재생 애플리케이션, 웹 브라우징 애플리케이션, 통신 애플리케이션, 검색 애플리케이션, 바이러스 스캐닝 애플리케이션, 컴퓨터 툴들 등을 포함할 수 있다. 애플리케이션은 또한 컴퓨팅 디바이스 상에서 실행 중인 프로세스 또는 시스템 툴을 포함할 수 있다. 애플리케이션들은 그의 목적들의 동작들에서 하드웨어 컴포넌트들 및 서비스들 중 하나 이상을 활용할 수 있다. 예를 들어, 게이밍 애플리케이션의 실행은 그래픽 라이브러리, 웹 브라우저 엔진, 미디어 관리자, 및 다른 서비스들을 활용할 수 있다. 컴퓨팅 디바이스는, 애플리케이션에 의해 사용되거나 액세스되는 서비스들 및 하드웨어 컴포넌트들에 기초하여 애플리케이션이 이상을 갖거나 비정상적인 방식으로 동작하는지를 검출하기 위해 사용될 수 있는 비정상 검출기(108)를 또한 포함할 수 있다. 비정상 검출기(108)는 컴퓨팅 디바이스 상에서 실행되는 각각의 애플리케이션에 의해 액세스되거나 사용되는 컴퓨팅 디바이스의 하나 이상의 자원(예컨대, 하나 이상의 하드웨어 컴포넌트 및/또는 하나 이상의 서비스)에 관한 데이터(예를 들어, 사용 데이터)를 수신할 수 있고, 대응하는 애플리케이션에 대해 자원들 각각의 사용을 연관시킬 수 있다. 그 후 비정상 검출기(108)는 애플리케이션에 의한 자원 사용들에 기초하여 애플리케이션의 비정상을 검출할 수 있다.
컴퓨팅 디바이스에서의 애플리케이션은, 설계되거나 예상되는 바와 같이 동작하지 않는 경우(이것은 본 명세서에서 애플리케이션이 비정상적으로 또는 비정상적인 상태로 동작하고 있거나, 또는 애플리케이션이 이상 또는 비정상을 갖는 것으로 지칭됨), 컴퓨팅 디바이스의 성능, 전력 또는 에너지 소비, 및 결과적으로 사용자 경험에 상당히 영향을 미칠 수 있다. 예를 들어, 일부 경우들에서, 비정상 상태에서의 애플리케이션은 정지 또는 상이한 상태로의 변경이 없는 상태에서 계속 실행할 수 있다(또는 반복적인 동작들을 계속 수행할 수 있다). 이것은 애플리케이션이 무한 루프에 들어가고, 예를 들어, 소프트웨어 버그(software bug)로 인해 나올 수 없는 경우일 수 있다. 이것은 또한 애플리케이션이 하나의 동작 모드 또는 상태로부터 다른 동작 모드 또는 상태로 전이하려고 계속 시도하지만 실패하는 경우일 수 있다. 이것은 또한 애플리케이션이 하드웨어 컴포넌트에 액세스하려고 시도하지만 실패하는 경우일 수 있다. 애플리케이션이 계속 실행하는 것은 컴퓨팅 디바이스의 드레인 전력을 훨씬 더 빠르게 유지할 수 있고, 컴퓨팅 디바이스의 과열 및 더 낮은 성능을 야기할 수 있다. 일부 경우들에서, 이것은 또한 컴퓨팅 디바이스에 보안 문제를 야기할 수 있다. 예를 들어, 스마트폰은 높은 기밀성의 회의 동안 무선 접속으로부터 차단될 필요가 있을 수 있지만 그렇게 행해지지 않을 수 있다.
컴퓨팅 디바이스 상에서 실행 중인 애플리케이션의 비정상이 검출될 수 있고, 애플리케이션의 비정상의 영향을 회피하거나 감소시키기 위해, 또는 통지 또는 경고를 사용자들에게 제공하기 위해 대응하는 액션들이 취해질 수 있다는 것이 인식될 것이다. 애플리케이션이 비정상적으로 거동하고 있는 경우, 예를 들어, 많은 에너지를 소비하고 있는 경우, 애플리케이션의 내부에 액세스하여 무엇이 일어나고 있는지를 보고 애플리케이션이 이상을 갖는다고 결정하기 위한 방법이 없다. 애플리케이션의 코드가 이용가능하더라도, 일부 경우들에서는, 애플리케이션의 발견된 버그에 기초하여 애플리케이션이 이상을 갖는 것으로 결정하는 것은 일반적으로 어렵다. 또한 일반적으로 애플리케이션의 이상을 야기하는 애플리케이션의 버그를 발견하거나, 애플리케이션의 이상의 원인, 예를 들어, 에너지 사용에서의 급증을 결정하는 는 것은 어렵다. 그러나, 비정상적으로 실행 중인 애플리케이션은 애플리케이션에 의한 자원 사용에서 반영될 수 있다. 자원 사용은 메모리, 디스플레이, 스피커, 모뎀, 배터리, CPU, GPU, 또는 서비스들, 예를 들어, 매체 관리자 등과 같은 임의의 하드웨어 컴포넌트 및/또는 소프트웨어 컴포넌트의 자원들의 사용을 포함할 수 있다. 예를 들어, 이상을 갖는 애플리케이션은 예상치 못한 양의 배터리 전력을 소비하고, 백그라운드 또는 포그라운드에 대해 CPU의 예상치 못한 사용을 가지며, 예상치 못한 횟수 동안 셀프-리스타트(self-restart)하거나, 모뎀에 액세스하는 데 더 긴 시간을 취하거나, 또는 메모리들의 예상치 못한 사용을 가질 수 있다는 등이다. 애플리케이션에 의한 자원 사용을 모니터링함으로써, 애플리케이션이 비정상적으로 실행 중인지가 검출될 수 있고, 애플리케이션을 실행 중인 것으로부터 프리징하는 것과 같이, 애플리케이션의 비정상을 핸들링하기 위해 액션들이 취해질 수 있다.
본 개시내용의 실시예들은 관련 디바이스 정보, 환경 데이터, 하나 이상의 하드웨어 컴포넌트의 자원 사용들뿐만 아니라 애플리케이션에 의해 사용되는 서비스들을, 예를 들어, 시간 기간 동안 모니터링하고, 애플리케이션이 모니터링된 자원 사용들에 기초하여 이상을 갖는지를 결정하기 위해 하나 이상의 비정상 검출 모델을 활용한다. 하나 이상의 비정상 검출 모델은 복수의 컴퓨팅 디바이스로부터 수집된 자원 사용 데이터에 기초하여, 원격 서버 또는 클라우드 서버와 같은 원격 디바이스에서의 머신 러닝 기술을 사용하여 구축될 수 있고, 애플리케이션 비정상 검출을 위해 컴퓨팅 디바이스 상에 배치될 수 있다. 단일 비정상 검출 모델은 시간 기간 동안 디바이스에 의해 사용되거나 액세스되는 몇몇 애플리케이션들에서의 비정상을 검출하는 것을 지원할 수 있다. 단일 비정상 검출 모델은 또한 비정상 파라미터들 또는 여러 자원 사용에서의 비정상을 동시에 검출할 수 있다.
도 2는 애플리케이션 이상 검출을 위한 실시예 방법 200의 흐름도를 도시한다. 방법 200은 컴퓨팅 디바이스 또는 사용자 디바이스에서 수행되는 동작들을 나타낸다. 도시된 바와 같이, 단계 202에서, 방법 200은 비정상 검출 모델을 수신한다. 비정상 검출 모델은 소프트웨어 프로그램으로서 구현될 수 있다. 일례에서, 방법 200은 원격 서버 또는 클라우드 서버 또는 근처 서버 또는 네트워크 내의 지원 디바이스와 같은 원격 디바이스로부터 비정상 검출 모델을 다운로딩하고, 컴퓨팅 디바이스에서 비정상 검출 모델을 설치 및 실행할 수 있다. 다른 예에서, 비정상 검출 모델은 예를 들어, 원격 디바이스에 의해 컴퓨팅 디바이스에 푸시될 수 있다. 비정상 검출 모델은 컴퓨팅 디바이스에서 실행되고, 항상 컴퓨팅 디바이스에서 실행될 수 있다. 비정상 검출 모델은, 텐서 처리 유닛(TPU), GPU, 뉴럴 처리 유닛(NPU), 또는 별개의 CPU와 같은, 별개의 처리 유닛에 의해 실행될 수 있다. 비정상 검출 모델은 비정상 검출기 또는 예측기로서도 지칭될 수 있다. 비정상 검출 모델은 입력 데이터가 주어지는 경우 비정상 검출의 작업을 수행하기 위해 요구되는 계산들, 수학적 연산들 및/또는 분석을 포함하는 계산 알고리즘일 수 있다. 비정상 검출 모델은 머신 러닝 기술을 사용하여 구축될 수 있다. 예를 들어, 비정상 검출 모델은 분류 모델, 회귀 모델, 딥 뉴럴 네트워크 모델, 베이지안 네트워크, 판단(decision) 네트워크, 판단 트리(decision tree)들의 앙상블을 사용하여 구축된 모델, 정규화된 회귀 모델, 또는 유사한 분류, 예측 또는 회귀 모델들 및 그들의 조합들일 수 있다. 사용될 수 있는 뉴럴 네트워크 모델들의 예들은 다-층 완전 접속 네트워크(multi-layer fully connected network), 컨볼루션 뉴럴 네트워크(CNN 또는 ConvNet), 리커런트 뉴럴 네트워크(recurrent neural network)(RNN), 강화 러닝, 또는 이들의 변동들 또는 조합들을 포함한다. 비정상 검출 모델의 구축은 본 개시내용에서 나중에 설명될 것이다. 비정상 검출 모델은 컴퓨팅 디바이스의 하나 이상의 자원의 자원 사용에서 하나 이상의 애플리케이션의 이상을 검출하도록 구성될 수 있다.
일 실시예에서, 비정상 검출 모델은 비정상 검출 모델을 명시하거나 설명하는 메타데이터와 연관된 소프트웨어 모듈(예를 들어, 라이브러리, 실행가능 또는 다른 적용가능 코드)로서 컴퓨팅 디바이스에 의해 수신될 수 있다. 소프트웨어 모듈은 비정상 검출 모델의 기본 알고리즘(들)의 구현을 포함할 수 있다. 컴퓨팅 디바이스는 연관된 설명들에 따라 구성된 수신된 소프트웨어 모듈을 인스턴스화하거나 로딩하여 검출 동작들을 수행할 수 있다. 일부 다른 실시예들에서, 비정상 검출 모델은 컴퓨팅 디바이스에서 구성되었던, (예를 들어, 훈련가능한 뉴럴 네트워크, 또는 다른 적용가능한 모델들과 같은 검출 동작들을 구현하는 기본 알고리즘에 기초한) 코어 엔진을 포함할 수 있다. 컴퓨팅 디바이스에 의해 수신된 검출 모델은 하나 이상의 파일에서 설정들(예를 들어, 입력들의 수, 모델들의 구조 및 타입들, 계층들의 수, 훈련 사이클들의 수, 다른 디바이스들로부터 수집된 사용 데이터에 의해 훈련된 가중치들 등)을 포함할 수 있다. 컴퓨팅 디바이스는 비정상 검출 동작들을 수행하기 위해 수신된 파일들에 따라 코어 엔진을 동적으로 구성/맞춤화할 수 있다.
일 실시예에서, 비정상 검출기 또는 비정상 검출 모델은, 데이터 수집, 사용자 경험 및 디바이스 성능 모니터링, 각각의 애플리케이션에 의한 각각의 자원의 성능 모니터링, 데이터 전처리, 데이터 분석, 자원 사용 추정, 사용 및 에너지 어카운팅, 데이터베이스 관리, 비정상 검출, 및 맞춤화 또는 적응 알고리즘들을 포함할 수 있는, 하나 이상의 작업을 실행하는 시스템 툴, 소프트웨어 또는 데몬을 포함한다. 비정상 검출 모델은 원격 디바이스 또는 서버로부터의 요건들 및 비정상 검출 결과들에 기초하여 액션들을 취할 수 있다. 자원 계산들 또는 추정은, 각각의 자원의 에너지를 추정하거나, 필요하다면, 이용가능한 기록된 데이터를 사용하여, 각각의 자원의 전력 소비를 모델링하는 것을 포함할 수 있다. 일례에서, 비정상 검출 툴 또는 데몬은 설정(또는 구성) 파일, 및 비정상 검출 모델 파일(또는 예를 들어, 복수의 딥 뉴럴 네트워크 모델을 포함하는 파일들)을 사용할 수 있고, 이 파일들은 비정상 검출 데몬의 제어 파라미터들, 뉴럴 네트워크 모델들의 구조 및 알고리즘들, 관련 알고리즘들의 파라미터 값들, 및 뉴럴 네트워크 모델들의 가중치들을 총괄하여 정의한다. 비정상 검출 모델이 딥 뉴럴 네트워크 알고리즘들에 기초하는 경우, 비정상 검출 툴 또는 데몬은 실행 또는 검출 프로세스를 가속하기 위해, 디바이스 상의 NPU, TPU 또는 GPU 상에서 비정상 검출 모델들을 실행할 수 있다. 시스템 툴 또는 데몬, 구성들, 및 비정상 검출 모델 파일들을 포함하는 비정상 검출 모델의 일부 또는 모든 부분들은 정기적으로 또는 온 디맨드(on demand)로 업데이트되거나 수정될 수 있다. 다른 실시예에서, 비정상 검출 툴 또는 데몬은 원격 디바이스 또는 지원 디바이스 또는 서버에 디바이스 및 자원 사용 데이터를 전송할 수 있고, 비정상 검출 모델은 지원 또는 원격 디바이스 상에서 실행될 수 있고, 그 후 결과들은 추가 액션들을 위해 컴퓨팅 디바이스에 다시 전송될 수 있다.
자원 사용은 실행을 위해 애플리케이션에 의해 사용되거나 액세스되는 자원의 사용 또는 에너지 소비를 지칭할 수 있다. 자원은 애플리케이션에 의해 사용되는 컴퓨팅 디바이스의 하드웨어 컴포넌트 예를 들어, 메모리, 디스플레이, 스피커, 모뎀, 배터리, CPU, GPU, 카메라, 센서들, 플래시라이트, 오디오 등, 또는 애플리케이션에 의해 사용되는 컴퓨팅 디바이스의 소프트웨어 컴포넌트 예를 들어, 서비스를 포함할 수 있다. 따라서, 자원 사용은 특정 자원에 관련된다. 애플리케이션은 컴퓨팅 디바이스의 하나 또는 여러 자원의 자원 사용들에서 이상을 갖는 것으로 결정될 수 있다. 자원의 사용은 (애플리케이션을 실행하기 위해) 자원에 의해 소비되는 에너지의 양, (애플리케이션을 실행하기 위해) 자원이 사용되거나 액세스되는 빈도, (애플리케이션을 실행하기 위해) 자원이 사용되거나 액세스되는 지속기간, 자원의 크기 또는 번호, 또는 (애플리케이션을 실행하기 위해) 사용되는 자원 파라미터 또는 속성, 또는 이들의 임의의 조합을 지칭할 수 있다. 자원 사용들의 예들은 백그라운드(BG)에서의 CPU, 포그라운드(FG)에서의 CPU, Wi-Fi BG, Wi-Fi FG, 모뎀 BG, 모뎀 FG, GPS BG, GPS FG, 카메라 BG, 또는 카메라 FG의 사용 또는 에너지 소비를 포함할 수 있다. 자원 사용들은 또한 웨이크-록(wake-lock) 유지 시간, 애플리케이션의 셀프-스타트들의 수, 알람, IO 디바이스 사용, 총 에너지 사용, 또는 메모리 사용을 포함할 수 있다. 각각의 자원 사용은 관련 파라미터에 대응한다. 파라미터의 값은 대응하는 자원 사용의 측정에 따라 할당될 수 있다. 예를 들어, CPU BG의 에너지 소비는 CPU BG 에너지의 파라미터에 대응하고, IO 디바이스 사용은 IO 디바이스 액세스 레이트의 파라미터에 대응할 수 있고, 모뎀 BG 사용은 BG에서의 모뎀 온-타임(modem on-time)의 파라미터에 대응할 수 있고, Wi-Fi 사용은 Wi-Fi 록(lock) 유지 시간의 파라미터에 대응할 수 있는 등이다. 이러한 파라미터들은 애플리케이션의 어느 이상이 검출되는지에 관하여 비정상 파라미터로서 지칭될 수 있다. 비정상 파라미터는 또한, 디바이스에서 수집되는 몇몇 자원 사용들 또는 다른 관련 데이터의 조합의 일부 형태로부터 추출되거나 계산되는, 더 복합적이거나 이차 파라미터 또는 속성을 포함할 수 있다. 하나 이상의 자원의 자원 사용에서의 애플리케이션의 이상은 하나 이상의 자원의 사용에 대응하는 하나 이상의 비정상 파라미터에 기초하여 결정될 수 있다.
단계 204에서, 방법 200은 애플리케이션에 의해 사용되는 자원들의 자원 사용 데이터를 획득한다. 자원 사용 데이터는 비정상 검출 모델을 사용하여 애플리케이션의 이상을 검출하기 위해 사용될 수 있다. 방법 200은 비정상 검출 모델의 구성에 따라 자원 사용 데이터를 획득할 수 있다. 방법 200은 애플리케이션에 의해 사용되거나 액세스되는 모든 자원의 자원 사용 데이터를 획득할 수 있다. 일례에서, 컴퓨팅 디바이스는 애플리케이션에 의해 사용되는 자원들을 모니터링하고, 비정상 검출 모델의 요건들에 따라 자원들의 자원 사용 데이터를 수집하고, 수집된 자원 사용 데이터를 비정상 검출 모델에 제공할 수 있다. 다른 예에서, 비정상 검출 모델은 애플리케이션에 의해 사용되는 자원들의 자원 사용 데이터를 모니터링하고 수집하도록 구성될 수 있다. 다른 예에서, 비정상 검출 모델은 각각의 자원에 의해 소비되는 에너지의 양을 계산 또는 추정할 수 있거나, 기록된 데이터를 사용하여 각각의 자원에 의해 소비되는 전력의 양을 모델링할 수 있다. 에너지 추정 또는 전력 모델링을 위한 알고리즘들은 복수의 디바이스로부터 획득된 데이터를 사용하거나 또는 각각의 자원에 관한 통찰을 사용하여 훈련되거나 설계될 수 있다. 다른 예에서, 비정상 검출 모델은 디바이스로부터 추출 또는 수집된 로(raw) 데이터 또는 초기 변수들을 사용하여 자원 사용 파라미터들, 정량적 특징들, 이차 또는 더 복합적 파라미터들 또는 속성들의 세트를 계산하거나 생성할 수 있다. 자원 사용 데이터는 컴퓨팅 디바이스의 하나 이상의 하드웨어 컴포넌트 또는 하나 이상의 서비스의 사용 또는 에너지 소비에 관한 정보를 포함할 수 있다. 디바이스는 디바이스 내에서 사용되거나 액세스되는 각각의 그리고 모든 애플리케이션 또는 프로세스에 대응하는 자원 사용 데이터를 모니터링하고 수집할 수 있다.
일부 실시예들에서, 자원 사용 데이터는 애플리케이션의 하나 이상의 실행 조건 하에서 컴퓨팅 디바이스 내의 하드웨어 컴포넌트의 에너지 소비, 사용, 에너지 패턴, 또는 사용 패턴을 포함할 수 있다. 실행 조건은 애플리케이션에 의한 디바이스 내의 자원의 포그라운드 사용, 백그라운드 사용, 스크린-온 사용, 또는 스크린-오프 사용 또는 소비를 포함할 수 있다. 실행 조건은 애플리케이션이 포그라운드에서, 백그라운드에서, 스크린-온으로, 또는 스크린-오프로 실행되는지를 표시할 수 있다. 하드웨어 컴포넌트의 사용 패턴은 시간 기간 동안 하드웨어 컴포넌트의 사용들의 일련의 측정들(즉, 사용들의 시계열 또는 시퀀스들)을 포함할 수 있다. 다른 실시예에서, 사용 패턴은 또한 이 하드웨어 컴포넌트의 사용들의 측정들로부터 수집/식별된 빈도, 평균, 최대, 최소, 레이트, 및/또는 다른 적용가능한 통계들을 포함할 수 있다. 하드웨어 컴포넌트의 에너지 패턴은 시간 기간 동안의 하드웨어 컴포넌트의 일련의 에너지 소비(즉, 에너지 소비의 시계열 또는 시퀀스들)를 포함할 수 있다 . 일례에서, 하드웨어 컴포넌트의 사용 또는 에너지 소비는 시간 기간, 예를 들어, 24시간 동안 하드웨어 컴포넌트에 의해 소비된 총 에너지 또는 총 사용을 포함할 수 있다. 다른 예에서, 하드웨어 컴포넌트의 사용 또는 에너지 소비는 하드웨어 컴포넌트에 의해 최근에(예를 들어, 데이터를 수집하는 최근 5분 동안) 소비된 에너지 또는 사용을 포함할 수 있다. 이 경우, 하드웨어 컴포넌트의 사용 또는 에너지 소비는 디스플레이의 밝기 레벨과 같은 다른 관련 디바이스 속성들의 최신 데이터를 또한 포함할 수 있다. 다른 예에서, 하드웨어 컴포넌트의 사용 또는 에너지 소비는, 예를 들어, 최근 24시간 동안 5분 해상도로(예를 들어, 매 5분마다), 예를 들어, 특정 해상도로 시간 기간 동안 하드웨어 컴포넌트에 의한 사용 또는 에너지 소비의 시퀀스(예를 들어, 시계열로서 사용 및 에너지 소비)를 포함할 수 있다. 각각의 경우에, 예를 들어, 이러한 사용 또는 에너지 소비가 초래되는 조건들을 보여주기 위해, 다른 관련 디바이스 및 환경 데이터, 예컨대 디스플레이 밝기 또는 Wi-Fi 수신 품질이 또한 포함될 수 있다. 자원 데이터는 컴퓨팅 디바이스에서 실행되는 애플리케이션에 의해 사용되는 서비스들, 소프트웨어 컴포넌트들 또는 시스템 툴들의 사용에 관한 데이터를 추가로 포함할 수 있다.
일부 실시예들에서, 자원 사용 데이터는 CPU의 포그라운드 사용, CPU의 백그라운드 사용, 웨이크-록 유지 시간, 셀프-스타트들의 수, 애플리케이션의 온-스크린 시간, 애플리케이션의 오프-스크린 시간, 셀룰러, 통신 또는 모뎀 사용 및 패턴, Wi-Fi 또는 네트워크 사용 및 패턴, 메모리 사용, 멀티미디어 사용 및 패턴, 이미징 센서 또는 카메라 사용 및 패턴, GPU의 사용, 임의의 다른 센서 또는 하드웨어 컴포넌트의 사용 및 패턴, IO 디바이스에 액세스하는 횟수를 포함하는 IO 디바이스 사용, 또는 사용되는 위치 서비스들의 수를 포함하는 위치 서비스 사용 및 패턴을 포함할 수 있다.
일부 실시예들에서, 자원 사용 데이터는 또한 그래픽 처리 서비스들의 사용, 뉴럴 처리 서비스들의 사용, 도착의 통지들의 수, 오디오 서비스들의 사용, 멀티미디어 서비스들의 사용, 블루투스의 사용, Wi-Fi 서비스들의 사용, 통신 서비스들의 사용, 모뎀 또는 라디오 서비스들의 사용, 카메라 서비스들의 사용, 위치 또는 내비게이션 서비스들의 사용, 센서 서비스들의 사용, 메시징 서비스들의 사용, 휴먼 인터페이스 서비스들의 사용, 미디어 매니저 서비스들의 사용, 통지 관리자 서비스들의 사용, 시스템 서비스들 각각의 사용, Wi-Fi 또는 네트워크 액세스 서비스들의 품질, 모뎀 또는 통신 서비스들의 품질, 오디오 볼륨 및 품질, 오디오 경로, 멀티미디어 경로, 주위 광 분포, 디스플레이 밝기 분포, 온도, 습도, 배터리 또는 다른 컴포넌트들의 전류, 배터리 또는 다른 컴포넌트들의 전압, 또는 사용자 데이터에의 액세스의 수를 포함할 수 있다.
일부 실시예들에서, 자원 사용 데이터는 컴퓨팅 디바이스에 관한 정보, 예를 들어, 컴퓨팅 디바이스의 모델, 컴퓨팅 디바이스의 제품 버전, 또는 애플리케이션에 관한 정보, 예를 들어, 애플리케이션의 애플리케이션 이름 또는 애플리케이션 식별자(복수의 애플리케이션 내의 애플리케이션을 식별하기 위해 사용됨), 애플리케이션 버전을 포함할 수 있다. 자원 사용 데이터는 컴퓨팅 디바이스를 사용하는 환경 조건, 예를 들어, 컴퓨팅 디바이스의 위치, 또는 애플리케이션의 실행의 날짜 또는 시간, 또는 컴퓨팅 디바이스의 성능 정보를 추가로 포함할 수 있다.
단계 206에서, 방법 200은 획득된 자원 사용 데이터에 기초하여 비정상 검출 모델을 사용하여 애플리케이션의 비정상을 검출한다. 비정상 검출 모델은 자원 사용 데이터를 입력으로서 취하고, 애플리케이션이 컴퓨팅 디바이스의 하나 이상의 자원의 자원 사용들에서 이상 또는 비정상 파라미터들을 갖는지를 결정할 수 있다. 하나 이상의 자원은 비정상 검출 모델에서 미리 구성될 수 있고, 비정상 검출 모델은 하나 이상의 자원의 자원 사용들에 관한 각각의 비정상 검출 결과들을 출력할 수 있다. 예를 들어, 비정상 검출 모델은, 애플리케이션이 CPU BG, CPU FG, 웨이크-록, 알람, Wi-Fi, 및 모뎀과 같은 자원들의 자원 사용에서 이상을 갖는지를 검출할 수 있다. 비정상 검출 모델은 자원 사용들에서의 다수의 애플리케이션의 이상을 동시에 검출하도록 구성될 수 있다. 비정상 검출 모델은 다수의 자원 사용에서의 비정상 또는 비정상 파라미터들을 동시에 예측하거나 검출할 수 있다. 비정상 검출 모델에 의해 동시에 비정상의 다수의 레벨 또는 클래스가 검출되거나 식별될 수 있다.
도 3은 디바이스에 의해 사용되는 하나 또는 여러 애플리케이션의 이상을 검출하기 위한 실시예 비정상 검출 모델(300)의 다이어그램을 도시한다. 이 예에서 비정상 검출 모델(300)은 딥 러닝 기술을 사용하여 훈련된 딥 뉴럴 네트워크이다. 예시적인 예로서, 비정상 검출 모델(300)에 입력된 자원 사용 데이터는, CPU, Wi-Fi, GPU, GNSS, 디스플레이, BT, 오디오, 플래시라이트, 전방 카메라, 후방 카메라, 및 센서들과 같은, 디바이스의 각각의 그리고 모든 하드웨어 컴포넌트들의 사용 및 에너지 소비를 포함한다. 입력 데이터는 또한, 애플리케이션 이름 또는 애플리케이션 식별자, CPU 웨이크-록, 모뎀 수신 품질, 지리적 영역, 및 날짜와 같은, 다른 관련 디바이스, 성능 또는 애플리케이션 속성들을 포함할 수 있다. 자원 사용 데이터 입력에 의해, 비정상 검출 모델(300)은, 애플리케이션이 CPU BG 이상, CPU FG 이상, 웨이크-록 이상, 알람 이상, 셀프-스타트 이상, Wi-Fi 이상, 모뎀 이상, GPS 이상, 또는 다른 이상을 갖는지를 나타내는 비정상 검출 결과들을 한꺼번에 출력할 수 있다. 비정상 검출 모델(300)은 디바이스에 의해 사용되는 여러 애플리케이션들에서의 비정상을 검출할 수 있고, 여기서 애플리케이션들의 데이터는 데이터의 배치(batch)로서 모델에 입력되고, 각각의 데이터 샘플은 하나의 애플리케이션에 속한다.
비정상 검출 모델(300)은 기록된 모든 자원 사용 및 디바이스 데이터를 사용할 수 있거나, 입력 데이터의 일부를 사용할 수 있다. 비정상 검출 모델에 대한 입력 데이터는 몇몇 자원 사용 파라미터들, 디바이스 또는 환경 데이터 또는 정보의 조합 또는 수학적 매핑의 일부 형태로부터 계산되는 하나 이상의 속성 또는 정량적 특징을 포함할 수 있다. 예를 들어, 비정상 검출 모델(300)로의 입력 데이터의 일부로서 속성들 중 하나는 4개의 자원 사용 데이터 또는 파라미터에 걸쳐 수학적 연산 또는 매핑을 적용하는 것에 의해 추출되어 비정상 검출을 수행하는 데 더 유용한, 더 적절한 또는 더 구별적인 속성을 획득할 수 있다. 입력 파라미터들 또는 속성들의 조합을 사용하는 입력 속성 설계 및 구축은, 복수의 디바이스로부터 수집된 데이터를 사용하여, 예를 들어, 원격 서버에서 수행되는 데이터 분석에 기초하여 결정될 수 있다.
일부 실시예들에서, 비정상 검출 모델(300)은 비정상의 레벨들을 포함하는 비정상 검출 결과들을 생성할 수 있다. 일례에서, 비정상의 레벨들 또는 클래스들은 비정상 없음, 비정상, 높은 비정상, 또는 과도한 비정상을 포함할 수 있다. 다른 예에서, 비정상의 레벨들은 또한 하나 이상의 사용 레벨, 예를 들어, 높은 사용, 또는 과도한 사용을 포함할 수 있다. 예를 들어, 비정상 검출 모델(300)은 애플리케이션이 CPU BG 사용에 대해 높은 비정상을 갖거나, 애플리케이션이 모뎀 사용에 대해 과도한 비정상을 갖거나, 애플리케이션이 CPU FG에 대해 과도한 사용을 갖는다는 것을 검출할 수 있다. 애플리케이션이 갖는 비정상의 레벨을 검출하는 비정상 검출 모델은 이상 레벨 검출 모델로서 지칭될 수 있다. 일부 실시예들에서, 비정상 검출 모델(300)은 또한 애플리케이션이 비정상의 레벨들의 세트에 속하는 확률들(이는 비정상 확률들 또는 우도들로 지칭될 수 있음)의 추정을 생성할 수 있다. 예를 들어, 자원 사용 또는 비정상 파라미터의 경우, 비정상 검출 모델(300)은 애플리케이션이 정상인(또는 비정상을 갖지 않는) P1%의 확률, 자원의 과도한 사용을 갖는 P2%, 비정상인 P3%, 및 높은 비정상인 P4%의 확률을 갖는 것으로 추정할 수 있으며, 여기서 모델이 4개의 비정상의 레벨을 검출하는 경우에 p1 + p2 + p3 + p4 = 100%이다. 애플리케이션이 비정상의 레벨들의 세트에 속하는 추정 확률들을 생성하는 비정상 검출 모델은 비정상 우도 추정 모델로서 지칭될 수 있다.
도 2를 다시 참조하면, 일부 실시예들에서, 단계 206으로 진행하기 전에, 방법 200은 애플리케이션에 의해 사용되는 서비스가 합리적인(sensible) 시나리오인지를 체크할 수 있다. 합리적인 시나리오는 런타임 동안 특정 서비스들(예를 들어, 시스템 서비스)을 호출하기 위해 애플리케이션에 대해 구성된 제약조건들, 특권 및/또는 제한들에 관련될 수 있다. 예를 들어, 방법 200은 소셜 미디어 애플리케이션 또는 메시징 애플리케이션에 의해 백그라운드 상에 음악을 재생하는 것이 허용되고 정상 사용 사례로서 간주되는지를 체크할 수 있다. 서비스의 사용 시나리오가 합리적인 경우, 방법 200은 이러한 서비스에 수반되는 자원의 백그라운드 사용이 비정상인지를 검출하기 위해 비정상 검출 모델을 실행할 필요가 없을 수 있다. 사용 시나리오가 합리적이지 않는 경우, 방법 200은 관련된 사용 및 에너지 소비가 비정상인지를 검출하기 위해 비정상 검출 모델에 획득된 데이터를 공급하고 이를 실행할 수 있다. 일부 실시예들에서, 서비스들의 사용뿐만 아니라 하드웨어 컴포넌트들 및 다른 입력 데이터에 의한 사용 및 에너지 소비는 비정상 검출 모델, 예를 들어, 모델(300) 내로 입력될 수 있다. 비정상 검출 모델은 그 후 다른 입력 및 사용 데이터와 함께 각각의 애플리케이션에 대한 합리적인 시나리오들을 고려하여 비정상 검출 출력들을 자동으로 생성할 수 있다.
단계 208에서, 방법 200은 애플리케이션이 이상을 갖는 것을 검출하는 것에 응답하여 액션을 취한다. 본 명세서에서의 액션을 취하는 것은 특정 동작을 수행하는 것을 지칭할 수 있다. 예를 들어, 컴퓨팅 디바이스가 애플리케이션이 조건 하에서 비정상적으로 동작하고 있거나 이상을 갖는 것으로 결정하면, 컴퓨팅 디바이스는 이에 응답하여 동작을 수행하도록 구성된다. 동작은 미리 구성될 수 있고, 소프트웨어 프로그램의 실행, 디바이스 상의 동작, 및/또는 자원 사용을 제한하거나 비정상적으로 거동하고 있는 것으로 검출되는 애플리케이션에 의한 하나 이상의 자원에의 액세스를 제한하는 것을 수반한다. 애플리케이션의 비정상의 부정적인 영향이 감소되거나 회피되도록 액션이 취해질 수 있다. 일례에서, 비정상 검출 모델은 다수의 비정상 레벨을 검출할 수 있거나 하나 이상의 자원을 사용하는 하나 이상의 애플리케이션의 비정상 또는 자원 사용의 심각성을 추정하고, 각각의 애플리케이션에 대해 응답하여 취해진 액션은 자원 사용의 중요성 및/또는 검출된 비정상 레벨에 의존할 수 있다. 일례에서, 애플리케이션의 실행을 프리즈하기 위해 액션이 취해질 수 있다. 다른 예에서, 시간 기간 동안 애플리케이션을 실행하는 것을 프리즈하기 위해 액션이 취해질 수 있다. 다른 예에서, 애플리케이션에 이용가능한 일부 자원들 및/또는 서비스들을 제한하기 위해 액션이 취해질 수 있다. 다른 예에서, 애플리케이션을 킬링(kill)하기 위해 액션이 취해질 수 있다. 또 다른 예에서, 애플리케이션을 재시작하기 위해 액션이 취해질 수 있다. 또 다른 예에서, 통지, 예를 들어, 비정상 통지(예를 들어, 사용자 인터페이스 팝업 메시지, 사운드 경보, 인스턴트 메시징, 또는 사용자 또는 시스템에 알리기 위한 다른 적용가능한 메커니즘)가 컴퓨팅 디바이스의 사용자 또는 제어기에 주어질 수 있다. 통지는 비정상의 발생을 나타낼 수 있어, 사용자가 이에 응답하여 그 또는 그녀가 적절하다고 생각하는 액션을 취할 수 있게 한다. 통지는 애플리케이션에 대한 비정상 검출 결과를 나타낼 수 있다. 통지는 또한 비정상의 발생에 응답하여 사용자가 선택할 수 있는 액션들의 리스트를 나타낼 수 있다. 일부 경우들에서, 사용자는, 그/그녀의 선호도, 경험 또는 전문 지식에 기초하여, 비정상 통지에 관계없이 아무런 액션도 취할 수 없다.
일부 실시예들에서, 액션들의 리스트는, 각각의 비정상 파라미터에 대해, 추정 확률들에 대응하거나, 상이한 비정상의 레벨들에 대응하여 미리 결정될 수 있다. 예를 들어, 비정상 검출 모델은 정상(비정상이 없음), 과도한 사용, 비정상, 및 높은 비정상을 포함하는 비정상의 레벨들의 세트에 따라 CPU FG 사용에서의 애플리케이션의 이상을 검출한다. 비정상의 레벨들의 세트에 대응하여 미리 결정된 액션들은, 표 1에 도시된 바와 같이, "없음(None)"(즉, 액션이 없음), "통지(Notification)"(즉, 통지를 제공하는 것), "프리즈(Freeze)"(즉, 시간 기간 동안 애플리케이션을 프리즈하거나 정지시키는 것), "재시작(Re-start)"(즉, 애플리케이션을 재시작하는 것)을 각각 포함할 수 있다. 따라서, 컴퓨팅 디바이스는 비정상의 레벨들의 세트와 미리 결정된 액션들 사이의 대응관계에 기초한 비정상 검출 결과에 응답하여 미리 결정된 액션을 선택하고 취할 수 있다. 일부 실시예들에서, 비정상 레벨에 대해 액션들의 조합이 취해질 수 있다. 일부 실시예들에서, 액션은 또한 애플리케이션에서 발생하는 비정상의 지속기간에 기초할 수 있다. 예를 들어, 자원 사용에 대한 애플리케이션의 비정상이 임계값보다 긴 시간 기간 동안 지속되는 경우, 취해질 액션이 변경될 수 있다.
Figure pct00001
단계 210에서, 방법 200은 애플리케이션의 이상 검출에 관련된 데이터를 저장한다. 저장되는 데이터는 단계 204에서 획득된 자원 사용 및 다른 관련 데이터, 단계 206에서 생성된 검출 결과들, 단계 208에서 취해진 액션들, 애플리케이션의 비정상 파라미터들, 애플리케이션의 사용 패턴, 예를 들어, 단계 216에서 수신된 사용자 경험 피드백 또는 사용자 선호들을 포함할 수 있다. 방법 200은 시간 기간 동안 간격을 두고 데이터의 일부 부분 또는 전부를 기록할 수 있는데, 예를 들어, 2개월 동안 매 5분 동안 비정상 검출 결과들을 기록한다. 기록된 데이터를 사용하여, 이 방법은 컴퓨팅 디바이스 상에서 애플리케이션의 사용 패턴 또는 애플리케이션에서의 사용자 거동을 추정할 수 있다. 단계 212에서, 방법 200은 저장되는 데이터를 원격 디바이스에 전송할 수 있다. 저장되는 데이터는 주기적으로 또는 온 디맨드로 원격 디바이스에 전송될 수 있다. 원격 디바이스에 전송되는 저장되는 데이터는 하나 이상의 비정상 검출 모델을 훈련 또는 업데이트하기 위해 사용될 수 있다.
단계 214에서, 방법은 액션들을 맞춤화하거나 적응시킬 수 있다. 일부 실시예들에서, 방법 200은 단계 210에서 기록된 데이터 및 사용자 피드백 정보에 기초하여, 애플리케이션의 비정상 레벨을 검출하는 것에 응답하여 컴퓨팅 디바이스에 의해 취해진 액션들을 조정할 수 있다. 예를 들어, 방법 200은 위의 표 1에 따른 액션들을 취할 수 있다. 방법 200은 시간 기간, 예를 들어, 2주 동안 기록되는 대응하는 취해진 액션들 및 애플리케이션의 비정상 결과들에 기초하여, 비정상 파라미터, 예를 들어, CPU 포그라운드 사용에 대해 애플리케이션의 이상 패턴을 결정할 수 있다. 디바이스의 이상 패턴, 또는 검출된 비정상 레벨들의 히스토그램은, 애플리케이션이 2주 동안 다수의(예를 들어, 임계 수보다 많음) 과도한 사용(예를 들어, 임계 사용량보다 많음)을 갖는 것을 나타내는 한편, 이에 응답하여 사용자에 의해 액션이 취해진 적이 없었다면, 방법 200은 애플리케이션이 실제로 정상적으로 실행하고 있는 것으로 결정하고, 따라서 과도한 사용의 비정상 레벨에 대응하는 액션을 "통지"로부터 "없음"으로 조정할 수 있다. 이것은 본 출원의 CPU 포그라운드 사용의 과도한 사용이 사용자에게 수용 가능하거나 사용자에 의해 정상인 것으로 생각되는 경우일 수 있다. 다른 예에서, 이상 패턴은 애플리케이션이 2주 동안 과도한 사용의 몇 개의 인스턴스(예를 들어, 임계 인스턴스들의 수보다 작음)를 가졌고 비정상 또는 과도한 비정상이 검출되지 않았고, 사용자에 의해 때때로 애플리케이션을 재시작하기 위한 액션들이 취해졌다는 것을 나타낸다. 이 경우, 방법 200은 애플리케이션(및 사용자 또는 디바이스)이 주로 낮은 사용 그룹에 있는 것으로 결정할 수 있고, 과도한 사용은 실제로 이 사용자 또는 디바이스에 대한 비정상으로서 간주된다. 방법 200은 과도한 사용의 비정상 레벨에 대응하는 액션을 "통지"로부터 "프리즈"로 조정(예를 들어, 상이한 동작을 선택)할 수 있다. 또 다른 예에서, 방법 200은 사용자 경험 피드백 정보로 인해 표 1에서의 모든 액션들을 "통지"로 조정할 수 있는데, 예를 들어, 사용자는 비정상 검출 결과들을 고려하여 애플리케이션에 무엇을 해야 할지를 제어하기를 원한다. 예를 들어, 사용자는 시간 기간 동안 높은 비정상이 검출되는 경우 애플리케이션을 프리즈하거나, 시간 기간 동안 애플리케이션의 비정상이 지속되는 경우 애플리케이션을 재시작하기를 원할 수 있다. 이러한 방식으로, 컴퓨팅 디바이스에 의해 취해질 액션들은 컴퓨팅 디바이스의 사용자의 특정 요건들, 요구들 또는 거동에 맞춤화된다. 이력 데이터는 애플리케이션에 대해 생성될 수 있고, 이력 데이터는 애플리케이션의 비정상 검출 결과들, 애플리케이션의 비정상 검출 결과들에 응답하여 취해진 액션들, 애플리케이션의 사용 패턴들, 애플리케이션의 에너지 소비 패턴들, 사용자 피드백, 또는 이들의 임의 조합을 포함할 수 있다. 이력 데이터는 액션이 어떻게 결정되거나 조정될 수 있는지를 결정하기 위해 사용될 수 있다. 액션들은 또한 이력 데이터 및 적응 또는 맞춤화 메커니즘에 기초하여(예를 들어, 맞춤화 알고리즘에 기초하여) 머신 러닝 모델과 같은 모델을 사용하여 맞춤화될 수 있다. 일부 실시예들에서, 시간 기간 내내 관찰된 비정상 검출 결과들의 이력 또는 패턴에 더하여, 자원 사용들의 패턴들, 다른 관련된 디바이스, 또는 위치, 날짜 또는 사용 시간을 포함하는 사용자 정보를 포함하는, 맞춤화 알고리즘에의 입력으로서 다른 관련된 정보가 사용될 수 있다.
일부 실시예들에서, 비정상 검출 모델에 의해 검출된 비정상은 비정상 레벨들로서 지칭되는 다수의 레벨 또는 클래스를 가질 수 있다. 다수의 레벨 또는 클래스는 다수의 비정상 임계값에 기초하여 결정될 수 있다. 도 4는 애플리케이션에 의해 사용되는 자원의 실시예 사용 레벨들을 나타내는 도면을 도시한다. 사용 레벨들은 최저 레벨(예를 들어, 최소 자원 사용이 관찰됨)로부터 최고 레벨(예를 들어, 극한 자원 사용이 관찰됨)로 진행한다. 이 실시예에서, 비정상 임계값들 T1-T7(사용 레벨 임계값들이라고도 지칭될 수 있음)의 세트에 따라 자원의 사용에 대한 애플리케이션의 비정상 검출을 위해 상이한 비정상 레벨들이 정의될 수 있다. 예를 들어, T7보다 높은 자원 사용은 극도로 비정상적인 것으로서 정의될 수 있는데, 예를 들어, 애플리케이션에 의한 자원의 사용이 복수의 디바이스에서의 사용 분포를 고려할 때 디바이스들의 집단(또는 복수의 유사한 디바이스)에서 99% 위이다. 이것은 극도로 드물거나 특이한 사용 경우일 수 있다. T7과 T6 사이의 자원 사용은 과도하게 비정상적인 것으로서 정의될 수 있는데, 예를 들어, 애플리케이션에 의한 자원의 사용이 디바이스들의 집단에서 96%와 99% 사이이다. 이것은 또한 매우 드물거나 특이한 경우일 수 있다. T2와 T1 사이의 자원 사용은 비교적 높은 사용으로 정의될 수 있고, 예를 들어, 애플리케이션에 의한 자원의 사용이 복수의 디바이스의 50%와 65% 사이이다. T1보다 낮은 자원 사용은 정상적인 것으로서 정의될 수 있다. 일부 실시예들에서, 여러 비정상 레벨들이 검출되고 인식될 수 있더라도, 이에 응답하여 취해질 액션들은 2개 또는 3개의 액션으로 제한될 수 있다. 예를 들어, T4보다 작은 자원 사용은 정상적인 것으로 간주될 수 있다(따라서, 액션이 취해지지 않음), T4 위의 자원 사용은 비정상적인 것으로서 간주된다(예를 들어, 자원 사용이 T5, T6, 또는 T7 위에 있는지에 관계없이 애플리케이션이 프리즈되는 것을 의미할 수 있다).
일부 다른 실시예들에서, 애플리케이션의 비정상은 다수의 비정상 레벨 또는 클래스 대신에, 연속적인 비정상 파라미터, 예를 들어, 연속적인 사용 파라미터 또는 속성에 의해 특성화될 수 있다. 이러한 경우에, 컴퓨팅 디바이스 상에서 실행 중인 각각의 애플리케이션에 대해, 비정상 검출 모델은 컴퓨팅 디바이스로부터 수집된 입력 데이터가 주어지는 경우 연속적인 비정상 파라미터를 추정 또는 예측하고, 이에 응답하여 취해진 액션은 추정된 또는 예측된 비정상 파라미터 값 및 임계값들의 세트에 기초할 수 있다. 예를 들어, 연속적인 비정상 파라미터는 임계값들의 세트와 비교될 수 있고, 취할 어떤 액션은 그 후 비교 결과에 기초하여 결정될 수 있다. 이러한 경우에, 비정상 검출 모델은 비정상 추정기(abnormality estimator), 비정상 예측기(abnormality predictor), 또는 자원 사용 레벨 추정기로서 지칭될 수 있다. 사용되는 임계값들의 세트는 컴퓨팅 디바이스 상에서 실행 중인 모든 애플리케이션들에 대해 사용되는 공통적인 임계값들의 세트일 수 있거나, 각각의 애플리케이션은 추정된 비정상 파라미터의 값 또는 범위에 기초하여 어느 액션 또는 액션들을 취할지를 결정하기 위해 사용되는 상이한 임계값들의 세트를 가질 수 있다.
일부 실시예들에서, 애플리케이션 이상 검출은 사용자 피드백, 사용자 경험, 사용 패턴들, 또는 특정 디바이스에서의 애플리케이션의 비정상 패턴들에 기초하여 맞춤화될 수 있다. 예를 들어, 비정상 레벨들을 결정하기 위해 비정상 검출 모델에 의해 사용되는 기준을 조정하기 위해 사용자 피드백 및 제어가 수신될 수 있다. 사용자는 어떤 비정상의 레벨들 또는 임계값들이 애플리케이션의 이상 검출에 적용되어야 하는지에 영향을 미칠 수 있거나, 또는 자원 사용 비정상 검출 및 제어가 얼마나 엄격히 적용되는지를 결정할 수 있다. 도 4를 예시적인 예로서 사용하면, 프리즈 액션을 취할지를 결정하기 위해 비정상 검출 모델에 의해 사용되는 디폴트 경우가 비정상 레벨이 임계값 T4 위일 때인 경우, 사용자는 덜 제한적인 비정상 평가를 사용하기로 결정할 수 있다. 사용자 피드백, 예를 들어, 사용자 명령 또는 설정 제어가 비정상 검출 모델에 제공될 수 있으며, 이는 애플리케이션이 자원 사용에서 비정상인지 여부를 결정하기 위해 T5를 사용하도록(예를 들어, T5보다 높은 자원 사용이 비정상이고, T5보다 낮은 자원 사용이 정상임) 비정상 검출 모델을 시행할 수 있다. 다른 예에서, 사용자가 자원 사용 또는 에너지 소비에 대한 최소 제어를 단지 선호하는 경우, 사용자는 예를 들어, 설정 제어를 통해, 애플리케이션이 자원 사용에서 비정상인지 여부를 검출하기 위해 임계값으로서 더 높은 임계값(예를 들어, T6 또는 T7)을 사용하도록 비정상 검출 모델에 지시할 수 있다.
도 5는 애플리케이션 이상 검출의 맞춤화를 위한 실시예 방법의 다이어그램(500)을 도시한다. 이 예에서, 비정상 임계값들은 자원의 사용 패턴들(또는 비정상 파라미터의 변동 패턴)에 기초하여 맞춤화된다. 도 5는 시간 기간 동안 각각 2개의 상이한 디바이스 또는 사용자, 예를 들어, 디바이스 1 및 디바이스 2에서 동일 애플리케이션의 자원 사용(예를 들어, 에너지 소비)의 그래프들(510 및 520)을 도시한다. y축은 사용 주파수 또는 사용 히스토그램을 나타내고, x축은 자원 사용의 레벨을 나타낸다. 이 예에서, 도 4에 도시된 바와 같은 임계값들은 비정상의 레벨들을 결정하기 위해 사용된다. 동일한 비정상 검출 모델이 2개의 디바이스에 의해 사용된다. 이 예에서, 2개의 비정상 레벨이 사용된다. 즉, 비정상 검출 모델은 회선(530)에 의해 도시된 바와 같이, T4보다 낮은 자원 사용이 정상이고, T4보다 큰 자원 사용이 비정상이라고 결정한다. 그래프들(510 및 520)로부터, 디바이스 1 및 디바이스 2는 상이한 사용 패턴들 또는 사용자 거동들을 가졌다는 것을 알 수 있다. 2개의 디바이스의 자원 사용의 히스토그램은 상이하고, 결과적으로 2개의 디바이스의 비정상 검출 결과들은 상이한 것들을 의미한다. 디바이스 1에서의 애플리케이션은 시간 기간 동안 항상 T2보다 작은 자원 사용을 가졌고, 따라서 시간 기간 동안 항상 정상인 것으로 결정되었던 반면, 디바이스 2에서의 애플리케이션은 현저한 시간의 백분율 동안 T4보다 컸던 자원 사용을 가졌고, 따라서 비정상으로서 여러 번 예측되었거나 분류되었다. 일례에서, 사용 패턴들에 기초하여, 디바이스 1에서의 비정상 검출 모델은 (예를 들어, 단계 214에서 설명된 바와 같은 맞춤화 메커니즘에 의해) 애플리케이션이 디바이스 1에서의 자원 사용에서 비정상인지를 검출하기 위해 T4 대신에, T2(라인(532)에 의해 도시된 바와 같음)를 사용하도록 지시받을 수 있다. 이것은 사용자가 의심스러운 애플리케이션을 실행하는 것을 방지하기를 원할 수 있는 경우일 수 있다. 비정상 검출 모델은 맞춤화 메커니즘에 의해 애플리케이션이 자원 사용에서 비정상인지를 검출하기 위해 T4 대신에, T5(라인(534)로 도시된 바와 같음)를 사용하도록 지시받을 수 있다. 이것은 디바이스 2의 사용자가 디바이스 2 및 애플리케이션이 다량의 자원을 소비하는 것이 정상인 것으로 결정하는 경우일 수 있다. 맞춤화 메커니즘은 애플리케이션이 실제로 정상적으로 실행하고 있는 동안 이상을 나타내는 빈번한 비정상 검출 결과들을 수신하는 것을 회피하기 위해 임계값을 증가시킬 수 있다.
도 6은 애플리케이션 이상 검출을 맞춤화하기 위한 다른 실시예 방법의 다이어그램(600)을 도시한다. 이 예에서, 비정상 레벨들 및/또는 액션들은 비정상 파라미터에 대해 애플리케이션의 비정상 패턴들에 기초하여 맞춤화될 수 있다. 도 6은 시간 기간 동안 2개의 디바이스, 즉 디바이스 1 및 디바이스 2 각각에서의 비정상 파라미터에 대하여 동일한 애플리케이션에 대해 검출된 비정상들의 수를 나타내는 그래프들(610 및 620)을 도시한다. 동일한 비정상 검출 모델이 2개의 디바이스에 의해 사용된다. x축은 비정상 파라미터를 나타내고, y축은 검출된 비정상들의 수를 나타낸다. 시간 기간 동안 검출된 비정상들은 비정상 임계값들 T-T7의 세트에 기초하여 정의된 다수의 비정상 레벨에 속할 수 있다. 예를 들어, 비정상은 비정상 파라미터가 T1보다 작을 때 비정상 레벨 1에, 비정상 파라미터가 T1과 T2 사이에 있을 때 비정상 레벨 2에, 비정상 파라미터가 T2와 T3 사이에 있을 때 비정상 레벨 3에 있을 수 있다. 따라서, 그래프(610 및 620)는 각각 디바이스 1 및 디바이스 2의 비정상 패턴들을 도시한다. 일례에서, 각각의 디바이스에 대한 비정상 검출 결과들의 히스토그램은 시간 기간 동안 계산되고, 각각의 디바이스들에서의 애플리케이션에 대해 각각의 비정상의 레벨이 얼마나 자주 검출되었는지 또는 몇 번 검출되었는지를 나타내기 위해 사용될 수 있다. 이력 데이터, 예를 들어, 도 2의 단계 210에서 기록된 데이터는 히스토그램을 결정하기 위해 사용될 수 있다. 비정상 검출 모델이, 라인 630에 의해 도시된 바와 같이, 애플리케이션이 T4에 기초하여 비정상인지 여부를 결정하는 것으로 가정하면, 2개의 디바이스에 대한 비정상 임계값들은 그들 각각의 비정상 패턴들에 기초하여 조정될 수 있다. 도시된 바와 같이, 디바이스 1에 대해, 비정상 파라미터가 T2 아래일 때(즉, 비정상 레벨들 1 및 2만을 가질 때) 모든 비정상들이 검출되는 것이 발생하고, 더 높은 비정상 레벨이 시간 기간 동안 검출되지 않았다. 일례에서, (라인(632)에 의해 도시된 바와 같은) 임계값 T2는 디바이스 1에 대해 이상을 검출하기 위한 임계값으로서 선택될 수 있고, T2를 초과하는 임의의 자원 사용 레벨은 이 디바이스에 대해 비정상으로서 간주되거나 예기치 않은 것으로 간주된다. 한편, 디바이스 2는 대량의 자원 사용자이고, 비정상 검출 모델은 상이한 비정상 레벨들에서의 비정상들의 많은 인스턴스들을 검출했다. 예를 들어, 과도한 양의 통지를 제공하는 것을 회피하기 위해, 또는 애플리케이션 및 사용자가 디바이스 자원들을 사용하기 위해 더 많은 자유를 허용하기 위해, T4 대신에, 임계값 T5(라인(634)에 의해 도시된 바와 같음)가 애플리케이션이 비정상인지를 검출하기 위해 디바이스 2에 대해 사용될 수 있다. 각각의 비정상 레벨에 대해 취해질 액션이 비정상 패턴들에 기초하여 또한 조정될 수 있다.
도 2를 다시 참조하면, 단계 216에서, 방법 200은 사용자 피드백을 수신할 수 있다. 사용자 피드백은, 예를 들어, 특정 액션을 취하기 위해, 비정상 검출을 위해 더 낮은 비정상 레벨 또는 더 낮은 임계값을 사용하는 것에 의해 더 많은 에너지 절약을 적용하기 위해, 비정상의 레벨에 대한 특정 임계값을 사용하기 위해, 또는 특정 비정상의 레벨을 사용하여 애플리케이션을 라벨링하기 위해, 애플리케이션들이 그것들이 원하는 그러한 자원 사용을 사용하기 위해 더 많거나 더 적은 자유도를 허용하기 위해, 얼마나 자주 통지들을 볼지를 변경하기 위해, 검출되는 비정상의 레벨들, 또는 애플리케이션 이상을 검출하고 적절한 액션들을 취하기 위해 사용될 수 있는 임의의 다른 피드백 정보에 기초하여 액션들을 변경하기 위해 사용자의 명령, 표시, 또는 선택을 포함할 수 있다. 피드백 정보는 또한 단계 210에서 컴퓨팅 디바이스에 의해 저장될 수 있다. 단계 210에서 기록된 데이터는 소프트웨어 및 하드웨어 컴포넌트들을 포함하는, 사용자 경험, 디바이스 성능, 디바이스들의 설계 및 개발, 서비스들 또는 애플리케이션들을 개선하는 것을 돕기 위한 이점들을 제공할 수 있다. 예를 들어, 데이터는 애플리케이션들 또는 프로세스들에서 버그들 또는 성능 문제들을 식별하기 위해 사용될 수 있다. 데이터는 다양한 디바이스 모델들, 상이한 버전들의 소프트웨어 컴포넌트들 또는 하드웨어 컴포넌트들 사이의 성능 및 사용자 경험을 비교하기 위해 사용될 수 있다. 데이터는 또한 현재 및 장래의 제품들에서의 소프트웨어 및 하드웨어 컴포넌트들의 설계 및 성능을 개선하고, 디바이스들에 대한 사용자 만족도를 개선하기 위해 사용될 수 있다.
일부 실시예들에서, 컴퓨팅 디바이스는 하나 이상의 비정상 파라미터에 대해 하나 또는 다수의 애플리케이션의 이상을 검출하기 위한 다수의 비정상 검출 모델을 수신 및 실행할 수 있다. 다수의 비정상 검출 모델 각각은 머신 러닝 기술을 사용하여 구축될 수 있다. 다수의 비정상 검출 모델은 동일한 비정상 파라미터들의 세트 또는 상이한 비정상 파라미터들의 세트에 대해 애플리케이션들의 이상을 검출하도록 구성될 수 있다. 다수의 비정상 검출 모델은 디바이스 내의 상이한 애플리케이션들의 세트에 대해, 또는 동일한 애플리케이션들의 세트의 비정상을 검출하도록 설계될 수 있다. 다수의 비정상 검출 모델은 동일한 입력 데이터의 세트(예를 들어, 자원 사용, 에너지 소비 및 전술한 바와 같은 다른 관련된 애플리케이션 및 디바이스 데이터)를 사용할 수 있거나, 상이한 입력 데이터의 세트들을 사용할 수 있어 디바이스에서 사용되는 하나 또는 복수의 애플리케이션의 비정상을 검출한다. 다수의 비정상 검출 모델은 상이하게 설계되거나 구축되는 다수의 비정상 검출 모델로 인해 예를 들어, 딥 뉴럴 네트워크 모델을 사용하여 훈련될 때 랜덤 초기화로 인해, 또는 이들이 머신 러닝을 사용하여 훈련될 때 상이한 훈련 방법들을 사용하는 것으로 인해, 동일한 비정상 파라미터에 대하여 동일한 애플리케이션에 대해 상이한 비정상 검출 결과들을 생성할 수 있다.
다수의 비정상 검출 모델은 하나 이상의 애플리케이션의 이상을 동시에 검출하기 위해 컴퓨팅 디바이스에 의해 사용될 수 있다. 전체 검출 성능을 개선하기 위해 다수의 비정상 검출 모델이 사용될 수 있다. 도 7은 애플리케이션 이상 검출을 위한 실시예 방법 700의 다이어그램을 도시한다. 이 예에서, 컴퓨팅 디바이스는 M개의 비정상의 파라미터, 즉, para 1, para 2, ..., para M에 대해 하나 이상의 애플리케이션의 이상을 검출하기 위해 다수의 비정상 검출 모델, 즉, 모델 1(702), 모델 2(704), …, 및 모델 K(706)를 사용한다. 예를 들어, 비정상 파라미터들은 CPU FG 에너지, CPU BG 에너지, 및 셀프-스타트의 수일 수 있다. 일부 실시예들에서, 동일한 입력 데이터, 예를 들어, 도 2에 도시된 바와 같은 자원 사용 및 다른 관련 데이터가 모델들 1-K 각각에 입력된다. 그러나, 모델은 애플리케이션 이상 검출을 위해 자원 사용 데이터의 일부만을 사용할 수 있다. 모델들 1-K 각각은 입력 데이터를 수신하고, M개의 비정상 파라미터 각각에 대해 비정상 검출 결과를 생성한다. 일례에서, K개의 모델 각각은 애플리케이션의 비정상의 레벨을 검출하는 이상 레벨 검출 모델일 수 있다. 다른 예에서, 3개의 모델 각각은 애플리케이션이 비정상 레벨들의 세트에 속하는 추정 확률들을 생성하는 이상 우도 추정 모델일 수 있다. 또 다른 예에서, 하나의 모델, 예를 들어, 모델 1은 비정상 레벨 검출 모델이고, 다른 모델들은 이상 우도 추정 모델들이다. 또 다른 예에서, 모델 1은 이상 우도 추정 모델이고, 다른 모델들은 비정상 레벨 검출 모델들이다. 또 다른 예에서, 모델들 1 내지 K의 전부 또는 대부분은 비정상 검출 모델들이지만, 각각은 상이한 머신 러닝 방법을 사용하여 또는 상이한 훈련 알고리즘을 사용하여 훈련된다. 모델 E(708)는 모델들 1-K의 비정상 검출 결과들을 조합하고 M개의 비정상 파라미터 각각에 대해 애플리케이션에 대한 조합된 검출 또는 추정 결과를 생성하기 위해 사용될 수 있다. 모델 E는 또한 컴퓨팅 디바이스에 의해 수신되고 실행될 수 있다. 모델 E는 머신 러닝 기술을 사용하여 구축될 수 있다. 모델 E는 뉴럴 네트워크, 베이지안(Bayesian) 네트워크, 또는 과반수 투표(majority voting) 모델일 수 있다. 모델 E는 모델 1-K의 검출 결과들을 조합하기 위해 다양한 방법들, 예를 들어, 과반수 투표, 또는 가중 합(weighted sum) 등을 사용할 수 있다. K=3이고 M=2인 경우, 예시적인 예로서, 표 2는 모델들 1-3의 비정상 검출 결과들 및 모델 E의 조합된 결과들, 예를 들어, 애플리케이션에 대한 디바이스 상의 시간 기간 동안, 또는 시점에 기록된 데이터를 나타낸다. 이 예에서, 모델 1 및 모델 3은 3개의 비정상의 레벨, 즉, 과도한 사용, 비정상 및 높은 비정상으로 검출 결과들을 생성하는 이상 레벨 검출 모델들이다. 모델 2는 3개의 비정상의 레벨에서의 확률들을 생성하는 이상 우도 추정 모델이다. 용어 "비정상 검출 모델"은 비정상 레벨 검출 모델, 또는 이상 우도 추정 모델, 또는 이들의 조합을 지칭할 수 있다.
Figure pct00002
도 8은 애플리케이션 이상 검출을 위해 컴퓨팅 디바이스들과 서버 사이의 상호작용을 위한 실시예 방법 800의 다이어그램을 도시한다. 컴퓨팅 디바이스(810)는 서버(820)로부터 하나 이상의 비정상 검출 모델을 다운로딩 또는 수신할 수 있고, 하나 이상의 비정상 검출 모델을 실행하고, 하나 이상의 비정상 파라미터에 대해 하나 이상의 애플리케이션의 이상을 검출한다. 컴퓨팅 디바이스(810)는 도 2에 예시된 바와 같은 방법 200을 수행할 수 있다. 컴퓨팅 디바이스(810)는 도 2의 단계 212와 유사하게, 컴퓨팅 디바이스가 시간 기간 동안 기록했던 데이터를 서버(820)에 전송할 수 있다.
서버(820)는 로컬 네트워크 서버, 원격 서버 또는 클라우드 서버일 수 있다. 서버(820)는 복수의 컴퓨팅 디바이스, 예를 들어, 830-834 및 또한 810으로부터 하나 이상의 비정상 검출 모델을 구축하기 위한 데이터를 수집하도록 구성된다. 데이터는 예를 들어, 애플리케이션들의 세트의 성능 및 사용자 경험을 개선하는 것을 돕기 위해 사용자들의 동의 또는 합의에 임의로 선택된 디바이스들의 세트로부터 수집될 수 있다. 랜덤 선택은 사용자들이 지리적으로 다양화된 영역들에서 오고, 세계 주위에 균일하게 분포되도록 프라이버시를 보호하기 위한 것이다. 사용자들을 선택하는 것은 임의의 특정 영역에 초점을 맞추지 않는다는 정책들이 정의할 수 있고, 어떠한 식별가능한 또는 프라이버시 민감한 데이터도 수집될 수 없다. 모든 데이터는 익명이고, 사용자 데이터 프라이버시는 보호되고 사용자 데이터 보안이 보장된다. 서버와 컴퓨팅 디바이스 사이의 통신 또는 상호작용은 양방향이어서 데이터 및 모델들을 전송 및 수신할 수 있다. 서버(820)는 수집된 데이터를 획득하고, 수집된 데이터에 대한 분석을 수행하고, 하나 이상의 비정상 검출 모델을 훈련한다. 서버(820)는 하나 이상의 비정상 검출 모델을 하나 이상의 컴퓨팅 디바이스에 푸시할 수 있다. 서버(820)는 비정상 검출 모델이 다운로딩 또는 업그레이딩을 위해 준비되어 있다는 것을 하나 이상의 컴퓨팅 디바이스에 통지할 수 있다. 서버(820)는 데이터를 주기적으로 수집하고 새롭게 수집된 데이터를 사용하여 모델들을 훈련함으로써 하나 이상의 비정상 검출 모델을 업데이트할 수 있다. 따라서, 하나 이상의 비정상 검출 모델은 환경에서의 변화들 또는 사용자 거동 변화들을 수용하기 위해 업데이트될 수 있다.
도 9는 비정상 검출 모델을 구축하기 위한 실시예 방법 900의 흐름도이다. 방법 900은 도 8의 서버(820)와 같은 서버에 의해 수행되는 동작들을 나타낸다. 방법 900은 하나의 애플리케이션 및 하나의 비정상 파라미터를 예시적인 예로서 사용하여 이하에서 설명된다. 그러나, 방법 900은 하나 이상의 비정상 파라미터에 대해 다수의 애플리케이션의 이상을 검출하기 위한 비정상 검출 모델을 구축하기 위해 사용될 수 있다. 도시된 바와 같이, 단계 902에서, 방법 900은 복수의 컴퓨팅 디바이스 상에서 실행 중인 애플리케이션에 관련된 데이터 샘플들을 획득한다. 다수의 애플리케이션의 경우에, 방법 900은 복수의 컴퓨팅 디바이스 상에서 실행 중인 다수의 애플리케이션에 관련된 데이터 샘플들을 획득할 수 있다. 복수의 컴퓨팅 디바이스 각각으로부터 수집된 데이터 샘플들은 도 2의 단계 212와 관련하여 설명된 바와 같이 컴퓨팅 디바이스에 의해 전송된 데이터를 포함할 수 있다. 예를 들어, 복수의 컴퓨팅 디바이스 각각으로부터 수집된 데이터 샘플들은 애플리케이션의 자원 사용 데이터 예를 들어, 도 2에 대해 설명된 자원 사용 데이터, 애플리케이션에 대해 생성된 예를 들어, 도 2의 단계 206에서 획득된 검출 결과들, 애플리케이션 상에서 취해진 액션들 예를 들어, 도 2의 단계 208에서 취해진 액션들, 애플리케이션의 비정상 파라미터들 예를 들어, CPU BG 에너지, CPU FG 에너지, 웨이크-록 유지 시간, IO 액세스 레이트, 메모리 공간, 전력 소비 등, 애플리케이션의 사용 패턴, 또는 사용자 경험 피드백 예를 들어, 도 2의 단계 216에서 수신된 피드백을 포함할 수 있다. 복수의 컴퓨팅 디바이스 각각으로부터 수집된 데이터 샘플들은 복수의 데이터 샘플 세트를 포함할 수 있고, 각각의 데이터 샘플들의 세트는 특정 타임 스탬프와 연관될 수 있다.
단계 904에서, 방법 900은 비정상 파라미터를 결정한다. 비정상 파라미터는 애플리케이션에 의해 액세스되는 자원의 관련된 자원 사용에 대응한다. 방법 900은 비정상 파라미터에 대해 애플리케이션에 대한 이상을 검출하기 위해 비정상 검출 모델을 훈련시키기 위한 비정상 파라미터를 결정하거나 선택할 수 있다. 비정상 파라미터는 애플리케이션이 정상적으로 실행 중인지를 결정하기 위해 컴퓨팅 디바이스의 어느 자원이 사용될 것인지를 나타낸다. 비정상 파라미터는 전문가들, 설계자들 또는 서비스 제공자들 등으로부터 수신된 입력들에 기초하여 결정될 수 있다. 비정상 파라미터 선택은 설계 목표들, 에너지 절약 요건들, 또는 고객 요건들에 기초할 수 있다. 다수의 비정상 파라미터가 결정될 수 있고, 이들 각각은 하나 이상의 애플리케이션의 이상 검출을 위해 사용된다. 비정상 파라미터는 몇몇 자원 사용 파라미터들에 걸쳐 수학 연산을 조합 또는 수행하는 일부 형태로부터 계산된 조합 파라미터 또는 속성 또는 정량적 특징일 수 있다. 예를 들어, 비정상 파라미터는 Wi-Fi BG 사용, 모뎀 BG 사용 및 블루투스 BG 사용의 가중 합일 수 있다. 다른 예로서, 비정상 파라미터는 후방 카메라 사용, 전방 카메라 사용, 및 멀티미디어 사용의 가중 합일 수 있다.
단계 906에서, 방법 900은 결정된 비정상 파라미터에 대해 생성될 비정상 검출 결과들의 포맷을 결정한다. 예를 들어, 비정상 검출 결과는 애플리케이션이 정상인지 또는 비정상인지를 나타내는 포맷으로 될 수 있다. 다른 예에서, 비정상 검출 결과는 애플리케이션이 비정상 레벨들의 세트 중 하나에 있는 이상을 갖는지를 나타내는 포맷으로 될 수 있다. 다른 예에서, 비정상 검출 결과는 애플리케이션이 비정상 레벨들의 세트 내에 있는 것의 확률들을 나타내는 포맷으로 될 수 있다. 비정상 레벨들의 세트는 도 4에 대해 설명된 바와 같은 비정상의 레벨들을 포함할 수 있다. 방법 900은 또한 조합된 포맷을 사용하기로 결정할 수 있다. 예를 들어, 방법 900은 애플리케이션이 비정상 레벨들의 세트 중 하나에 있는, CPU FG 에너지 소비에 대한 이상을 갖는지를 검출하고, 또한 애플리케이션이 비정상 레벨들의 세트에 속하는 확률들을 추정하기로 결정할 수 있다. 상이한 비정상 파라미터들에 대해, 비정상 검출 결과들 또는 비정상 레벨들의 포맷은 상이할 수 있다. 비정상 검출 결과들 또는 비정상 레벨들 또는 비정상 클래스들의 포맷은 전문 지식 및 경험들, 설계 목표들, 에너지 절약 요건, 또는 고객 요건들에 기초하여 전문가들, 디자이너들 또는 서비스 제공자들에 의해 결정될 수 있다.
단계 908에서, 방법 900은 수집된 데이터 샘플들에 대해 데이터 분석을 수행한다. 데이터 샘플들에 대해 수행되는 데이터 분석은 비정상 파라미터에 관련되거나 그에 종속하는 하나 이상의 파라미터를 식별하기 위해 사용될 수 있다. 상이한 자원 사용들은 서로 관련되거나 종속할 수 있다. 따라서, 제1 자원 사용에서의 이상은 제2 관련 또는 종속 자원 사용을 고려함으로써 결정될 필요가 있을 수 있다. 비정상 파라미터에 대한 관련 또는 종속 파라미터는 사용 파라미터라고도 지칭될 수 있다. 도 10은 제1 비정상 파라미터와 관련 자원 사용 파라미터 또는 속성(예시적인 목적으로 관련 파라미터로서 지칭됨) 사이의 관계를 나타내는 그래프(1000)를 도시한다. 관계는 복수의 사용자 디바이스로부터 수집되고 애플리케이션과 연관된 데이터 샘플들에 기초하여 도시된다. 도 10의 각각의 도트(또는 채워진 작은 원)는 하나의 컴퓨팅 디바이스 또는 하나의 사용 데이터 샘플을 나타낸다. x축은 제1 비정상 파라미터에 매우 관련되거나 또는 이에 종속하는 관련 파라미터(즉, 관련 자원 사용 파라미터 또는 속성)를 나타내고, y축은 제1 비정상 파라미터를 나타낸다. 도시된 바와 같이, 관련 파라미터와 제1 비정상 파라미터 사이에는 상당한 상관관계가 있다. (자원 사용일 수 있는) 제1 비정상 파라미터는 관련 파라미터가 증가함에 따라 증가한다. 예로서, 관련 파라미터(x축)는 사용자 또는 디바이스에 의해 사용되도록 선택되는 능동 또는 자발적 자원 사용의 양을 나타내는 파라미터일 수 있는 반면, 제1 비정상 파라미터(y축)는 사용자에 의한 자원의 능동 사용량에 의해 어떻게든 관련되거나 야기되는 임의적(discretionary) 자원 사용의 양으로서 보여질 수 있다.
CPU BG 사용과 같은 자원 사용일 수 있는 제1 비정상 파라미터에 따른 애플리케이션에서의 이상은 라인(1002)에 의해 도시된 바와 같이 제1 비정상 파라미터가 고정 임계값을 초과하는지를 체크함으로써 결정된다. 제1 비정상 파라미터가 임계값을 초과하는 경우, 애플리케이션은 제1 비정상 파라미터에서 비정상인 것으로 결정된다. 그러나, 일부 경우에, 애플리케이션의 제1 비정상 파라미터의 더 큰 값이 정상일 수 있는데, 그 이유는 그것이 애플리케이션의 관련 자원 사용 파라미터의 더 큰 값에 의해 야기되기 때문이다. 이 경우, 관련 자원 사용 파라미터의 값이 높을 경우에 애플리케이션이 이상을 갖는 것으로 결정되지 않아야 한다.
일 실시예에서, 복수의 컴퓨팅 디바이스의 매우 관련 또는 종속적인 자원 사용 파라미터(도 10의 x축)의 값들이 분석되고, 여러 사용 그룹들, 예를 들어, 1 내지 6으로 카테고리화될 수 있다. 그룹들 1-6 각각은 관련 자원 사용 파라미터의 값들의 범위에 대응한다. 그 다음, 복수의 컴퓨팅 디바이스는 제1 비정상 파라미터와 매우 관련되거나 종속하는 자원 사용 파라미터의 값들에 기초하여 사용 그룹들로 카테고리화된다. 컴퓨팅 디바이스 상의 애플리케이션에 의해 사용되는 관련 자원 사용 파라미터의 값들은 컴퓨팅 디바이스로부터 수집된 데이터 샘플들을 사용하여 생성될 수 있다. 그 후, 각각의 그룹에서의 관련 자원 사용 파라미터에 기초하여, 각각의 사용 그룹에 대해 하나 이상의 비정상 임계값이 계산될 수 있다. 단지 하나의 비정상 레벨을 고려할 때(이는 정상 대 비정상 사용을 식별할 수 있음을 의미함), 라인들(1004-1014)은, 도 10에 도시된 예에서, 통계적 이상 분석, 비정상 평가 또는 비정상 검출 기준에 기초하여, 또는 전문 지식을 사용하여, 또는 애플리케이션 로그들 또는 시스템 로그들을 사용하여, 그룹들 1-6에 대해 각각 계산된 임계값들을 나타낸다. 아래의 표 3은 그룹들 1-6에 대해 계산된 6개의 임계값 (T1,1) 내지 (T1,6)을 나타낸다. (T1, i)는 그룹 i에 대한 임계값 T1을 나타낸다. 임계값들은 각각의 그룹들에서의 관련 자원 사용 파라미터의 영향을 고려하여 계산된다. 결정된 비정상 임계값들을 사용하여, 컴퓨팅 디바이스 상의 애플리케이션이 제1 비정상 파라미터에 대해 이상을 갖는지를 결정할 때, 컴퓨팅 디바이스는 먼저 그것의 연관된 관련 자원 사용 파라미터에 기초하여 그룹들 1-6의 그룹으로 카테고리화될 수 있고, 그 후 그룹에 대한 임계값은 식별되고 애플리케이션의 제1 비정상 파라미터와 비교된다. 애플리케이션의 제1 비정상 파라미터가 식별된 임계값을 초과하면, 애플리케이션은 제1 비정상 파라미터에서 이상을 갖는다고 결정된다. 컴퓨팅 디바이스들을 상이한 사용 그룹들로 카테고리화하고 그룹 특정 임계값들을 사용함으로써, 이상 검출에서의 고장 또는 실수가 감소되거나 회피될 수 있다. 각각의 사용 파라미터에 기초하여 카테고리화된 사용 그룹들은 업데이트되거나 재정의될 수 있고, 대응하는 임계값들은 새롭게 수집된 데이터 샘플들에 기초하여 재계산될 수 있다.
Figure pct00003
일부 실시예들에서, 비정상 파라미터와 다수의 관련 자원 사용 파라미터 사이의 종속 관계가 확립되거나 식별될 수 있다. 다수의 그룹은 다수의 관련 또는 종속 파라미터 각각에 기초하여 정의될 수 있다. 이 경우, 임계값들은 다수의 관련 또는 종속 파라미터의 일부 또는 전부의 조합에 기초하여 정의된 그룹들을 고려하여 계산될 수 있다. 예를 들어, 비정상 파라미터가 식별되어 2개의 상이한 자원 사용 파라미터, 즉 para 1, 및 para 2에 종속된다. para 1 및 para 2의 예들은 온-스크린 시간, Wi-Fi 록 시간, 오디오 사용 시간, 및 멀티미디어 사용 시간을 포함할 수 있다. 예를 들어, 수집된 데이터 샘플들의 데이터 분석에 기초하여, 4개의 그룹이 para 1에 기초하여 정의되고, 2개의 그룹이 para 2에 기초하여 정의된다. 각각의 사용 파라미터에 대한 그룹들은 도 10에 대해 위에서 논의된 것들과 유사하게 정의될 수 있다. 그 후, 관련 파라미터들 전부에 기초하여 정의된 그룹들의 다양한 가능한 조합들에 속하는 컴퓨팅 디바이스의 상황들을 고려하여 임계값들이 계산될 수 있다. 표 4는 이 경우에 대해 계산된 예시적인 임계값들을 나타낸다. 표 4에서, Gki는 para k에 기초하여 정의된 i번째 그룹을 나타내고, 여기서 k=1, 2이고, i=1, 2, 3, 4이다. 8개의 임계값 즉, (T1,1) 내지 (T1,8)은 그룹들의 각각의 조합에 대응하여 결정된다. 예를 들어, 컴퓨팅 디바이스가 para 1 및 para 2에 기초하여 G11 및 G21의 조합에 속하는 경우, 애플리케이션이 비정상 파라미터에서 이상을 갖는지를 결정하기 위해, 임계값 (T1,1)이 비정상 파라미터와 비교하기 위해 사용된다. 컴퓨팅 디바이스가 para 1 및 2에 기초하여 G13 및 G22의 조합에 속하는 경우, 임계값 T1,6이 사용된다. 일부 실시예들에서, 동일한 그룹들의 조합에 속하는 컴퓨팅 디바이스들은 하나의 조합 그룹으로 카테고리화될 수 있다. 표 4에 도시된 바와 같이, G11 및 G21의 조합에 속하는 컴퓨팅 디바이스들은 조합 그룹 CG1 로서 카테고리화되고, G11과 G22의 조합에 속하는 컴퓨팅 디바이스들은 CG2 로서 분류되고, G12와 G21의 조합에 속하는 컴퓨팅 디바이스들은 CG3으로 분류되는 등이다. 따라서, 이 예의 2개의 관련 또는 종속 자원 사용 파라미터 para 1 및 2에 기초하여, 8개 조합 그룹 즉, CG1 내지 CG8이 정의될 수 있고, 각각의 조합 그룹은 임계값 (T1,1) 내지 (T1,8)에 각각 대응한다. 오직 하나의 단일의 관련 또는 종속 파라미터가 비정상 파라미터에 대해 식별되는 경우에, 결과적인 조합 그룹들은 단일의 관련 또는 종속 파라미터에 기초하여 카테고리화된 그룹들과 동일할 것이다. 조합 그룹은 또한, 대응하는 임계값을 갖는 사용 그룹에 기초하여 이상이 검출되기 때문에, 본 개시내용에서의 사용 그룹으로서 지칭될 수 있다.
Figure pct00004
일부 실시예들에서, 도 10에 대해 설명된 바와 같이 각각의 사용 그룹에 대한 단일 비정상 임계값을 사용하는 대신에, 다수의 비정상 레벨, 다수의 비정상 클래스 또는 다수의 비정상 임계값이 각각의 사용 그룹에 대해 식별될 수 있다. 예로서, 도 11은 3개의 비정상 임계값이 있을 때의 경우를 예시하며, 이는 4개의 비정상 클래스(예를 들어, 정상, 과도한 사용, 비정상, 높은 비정상)를 갖는 것으로 해석될 수 있다. 도 11에서, Ti,j는 사용 그룹 j에 대한 임계값 Ti를 나타내고, 여기서 i=1, 2, 3이고, j=1, 2, ..., 6이다. 사용 그룹 1에서의 "정상" 클래스는, 관련 자원 사용 파라미터가 그룹 1에 속하는 경우, 비정상 파라미터의 값이 임계값 (T1,1)보다 작다는 것을 의미한다. 사용 그룹 1의 경우, "높은 비정상"은 비정상 파라미터의 값이 임계값 (T3,1) 위에 있는 것 등을 의미한다.
따라서, 다시 도 9를 참조하면, 단계 908에서 수행된 데이터 분석에 기초하여, 단계 910에서 방법 900은 하나 이상의 관련 또는 종속 파라미터를 비정상 파라미터로 식별한다. 단계 912에서, 방법 900은 하나 이상의 관련 또는 종속 파라미터에 기초하여 다수의 사용 그룹을 결정한다. 단계 914에서, 방법 900은 다수의 사용 그룹 각각에 대한 비정상 레벨들 또는 임계값들을 계산한다. 이것은 통계적 분석 및 비정상 평가 알고리즘에 기초하여 행해질 수 있다. 방법 900은, 다수의 비정상 레벨의 검출을 고려할 때, 도 11에 설명된 바와 같이, 각각의 사용 그룹에 대해 하나의 임계값 대신에 다수의 임계값을 식별할 수 있다. 단계 916에서, 방법 900은 비정상 파라미터에 대해 각각의 컴퓨팅 디바이스로부터의 각각의 데이터 샘플이 속하는 비정상 레벨을 결정한다. 이것은 대응하는 컴퓨팅 디바이스로부터 수집된 데이터 샘플들에 기초하여 그리고 복수의 조합 그룹에 대응하는 생성된 임계값들을 사용하여 결정된다. 예를 들어, 방법 900은 컴퓨팅 디바이스가 어느 조합 그룹 예를 들어, 표 4에서의 CG4에 속하는지를 결정하고, 컴퓨팅 디바이스 상의 애플리케이션의 비정상 파라미터의 값을 결정된 조합 그룹에 대응하는 임계값 즉, (T1,4)와 비교한다. 방법 900은 그 후 대응하는 컴퓨팅 디바이스의 데이터 샘플들에 대응하는 비정상 검출 결과들을 생성한다. 예를 들어, 컴퓨팅 디바이스로부터 수집된 데이터 샘플들이 상이한 시간에 컴퓨팅 디바이스에 의해 기록된 6개의 데이터 샘플 세트를 포함하고, 데이터 샘플들의 각각의 세트가 도 2에 저장된 것과 같은 데이터를 포함하는 경우, 방법은 예로서 표 5에 도시된 바와 같이 6개의 비정상 검출 결과를 생성할 수 있다. 각각의 데이터 샘플은 각각의 샘플이 어느 비정상 클래스에 속하는지를 나타내는 대응하는 비정상 검출 결과를 갖는다.
Figure pct00005
방법 900은 컴퓨팅 디바이스들의 일부에 대한 또는 복수의 컴퓨팅 디바이스 각각의 데이터 샘플들 각각에 대한 비정상 클래스 또는 레벨을 생성할 수 있다. 생성된 클래스 또는 레벨은 기준 비정상 클래스 또는 레벨로서 지칭될 수 있다. 생성된 기준 비정상 클래스 또는 레벨들을 사용하여, 단계 918에서, 방법 900은 비정상 라벨을 각각의 데이터 샘플에 할당한다. 데이터 샘플에 할당된 비정상 라벨은 데이터 샘플에 대응하는 비정상 클래스 또는 레벨을 나타낸다. 표 5를 예로서 사용하여, 데이터 샘플 1은 "정상"의 라벨을 할당받을 수 있고, 데이터 샘플 2는 "과도한 사용"의 라벨을 할당받을 수 있고, 데이터 샘플 3은 "정상"의 라벨을 할당받을 수 있고, 데이터 샘플들 4 및 5는 "비정상"의 라벨을 각각 할당받을 수 있고, 데이터 샘플 6은 "높은 비정상"의 라벨을 할당받을 수 있다. 이러한 방식으로, 수집된 데이터 샘플들의 전부 또는 일부가 라벨링될 수 있다. 단계 920에서, 방법 900은 라벨링된 데이터 샘플들의 일부 또는 전부를 사용하여 비정상 검출 모델을 훈련한다. 비정상 검출 모델은 이 작업에 적용가능하고 효율적인 머신 러닝 기술을 사용하여 훈련될 수 있다. 예를 들어, 비정상 검출 모델은 인공 뉴럴 네트워크, 딥 뉴럴 네트워크, 또는 베이지안 네트워크 등일 수 있다. 단계 922에서, 방법 900은 업데이트된 비정상 검출 모델을 사용자들 또는 디바이스들에 통지할 수 있다. 방법 900은 비정상 검출 모델이 다운로딩 또는 업그레이딩을 위한 준비가 되어 있다는 것을 통지할 수 있다. 단계 924에서, 방법 900은 비정상 검출 모델을 디바이스들에 푸시할 수 있다.
방법 900은 하나 이상의 비정상 검출 모델을 훈련하기 위해 다량의 데이터 샘플들을 수집할 수 있다. 방법 900은 복수의 비정상 파라미터에 기초하여 복수의 애플리케이션의 이상을 검출하기 위한 비정상 검출 모델을 구축하기 위해 사용될 수 있다. 방법 900은 복수의 컴퓨팅 디바이스 상에서 실행 중인 복수의 애플리케이션에 관련된 데이터 샘플들을 획득할 수 있고, 각각의 애플리케이션에 대해, 방법 900의 단계들 904-920이 수행될 수 있다. 그 후, 복수의 애플리케이션 및 복수의 비정상 파라미터 또는 예측 출력들에 대해 즉시 비정상을 검출할 수 있는 하나 이상의 비정상 검출 모델을 구축하기 위해 애플리케이션들 및 비정상 파라미터들의 조합의 라벨링된 데이터가 사용된다.
도 12는 애플리케이션 이상 검출을 위한 실시예 시스템(1200)의 블록도를 도시한다. 도시된 바와 같이, 실시예 시스템(1200)은 컴퓨팅 디바이스(1210) 및 서버(1250)를 포함한다. 컴퓨팅 디바이스(1210)는 모니터링 및 데이터 기록 모듈(1212), 비정상 검출 모듈(1214), 액션 모듈(1216), 송수신기 모듈(1218), 스토리지 또는 메모리(1220), 및 맞춤화 또는 디바이스 적응 모듈(1222)을 포함한다. 서버(1250)는 송수신기 모듈(1252), 데이터 검색 및 데이터 분석 모듈(1254), 머신 러닝 모듈(1256) 및 스토리지 모듈(1258)을 포함한다.
모니터링 모듈(1212)은 컴퓨팅 디바이스(1210) 상의 애플리케이션의 실행 또는 수행 동안 애플리케이션의 자원 사용들을 모니터링하고, 애플리케이션의 자원 사용 데이터뿐만 아니라 다른 관련 디바이스 및 환경 데이터를 획득 및 수집하도록 구성될 수 있다. 모니터링 모듈(1212)에 의해 획득된 데이터는 스토리지(1220)에 저장될 수 있다. 비정상 검출 모듈(1214)은, 예를 들어, 도 2 또는 도 7에 예시된 것과 같은 실시예 방법을 사용하여, 하나 이상의 비정상 검출 모델을 사용하여 컴퓨팅 디바이스(1210) 상에서 실행 중인 하나 이상의 애플리케이션의 비정상을 검출하도록 구성될 수 있다. 액션 모듈(1216)은 비정상 검출 모듈(1214)의 결과에 응답하여 액션을 취하도록 예를 들어, 도 2의 단계 208을 수행하도록 구성될 수 있다. 액션 모듈(1216)은 스토리지(1220)로부터 액션들을 검색하고, 비정상 검출 결과에 대응하는 스토리지(1220)에서 취해진 액션을 기록할 수 있다. 송수신기 모듈(1218)은 스토리지(1220)에 저장된 데이터를 검색하고, 데이터를 서버(1250)에 전송하고, 서버(1250)로부터 하나 이상의 비정상 검출 모델을 수신하도록 구성될 수 있다. 맞춤화 모듈(1222)은 도 2에서 단계 214를 수행하고, 도 4-6에 대하여 전술한 바와 같이 액션들을 취하기 위해 1216에 의해 사용되는 기준을 조정하도록 구성될 수 있다.
송수신기 모듈(1252)은 스토리지(1258)로부터 하나 이상의 비정상 검출 모델을 검색하고, 하나 이상의 비정상 검출 모델을 컴퓨팅 디바이스(1210) 및 다른 컴퓨팅 디바이스들에 전송하도록 구성될 수 있다. 송수신기 모듈(1252)은 또한 컴퓨팅 디바이스(1210) 및 다른 컴퓨팅 디바이스들로부터 데이터를 수신하고, 수신된 데이터를 스토리지(1258)에 저장하도록 구성될 수 있다. 데이터 검색 모듈(1254)은 하나 이상의 비정상 검출 모델을 구축 또는 훈련하기 위해 머신 러닝 모듈(1256)에 대한 스토리지(1258)로부터 데이터를 검색하도록 구성된다. 머신 러닝 모듈(1256)은 908-920의 단계들을 수행하고 하나 이상의 비정상 검출 모델을 구축하고, 설계된 또는 구축된 비정상 검출 모델들을 스토리지(1258)에 저장하도록 구성될 수 있다. 서버(1250)는 복수의 컴퓨팅 디바이스에 접속되고, 복수의 컴퓨팅 디바이스로부터 관련 데이터를 수신하고, 복수의 컴퓨팅 디바이스로부터 수신된 데이터를 사용하여 하나 이상의 비정상 검출 모델을 구축할 수 있다.
일부 실시예들에서, 비정상 검출 모듈(1214)은 디바이스에서 완전히 실행되지 않을 수 있고, 대신에 자원 사용 및 다른 관련 데이터가 비정상 검출을 수행하기 위해 로컬 컴퓨팅 서버 또는 원격 컴퓨팅 서버에 전송될 수 있다. 이것은 디바이스가 모듈(1214)을 갖지 않을 수 있고, 비정상 검출 작업이 디바이스 외부에서 수행될 수 있고, 그 후 검출 결과들이 디바이스에 다시 전송되는 것을 의미한다. 그 후 디바이스는 디바이스에 의해 사용되는 각각의 애플리케이션에 대해 검출된 비정상 레벨에 응답하여 액션을 취할 수 있다. 다른 실시예에서, 비정상 검출 모듈(1214)은 2개의 부분으로 분할될 수 있다. 예를 들어, 속성 또는 사용 자원 파라미터 추출, 데이터 분석, 및 전처리를 포함하는 제1 부분은 디바이스 내부에서 수행될 수 있고, 비정상 검출 프로세스의 나머지는 로컬 또는 원격 컴퓨팅 서버 또는 지원 디바이스 상에서 수행될 수 있고, 그 후 비정상 검출 결과들은 디바이스에 다시 전송된다.
도 13은 애플리케이션 이상 검출을 위한 실시예 방법 1300의 흐름도를 도시한다. 방법 1300은 사용자 디바이스에서 수행되는 동작들을 나타낼 수 있다. 도시된 바와 같이, 단계 1302에서, 방법 1300은 원격 디바이스로부터 제1 비정상 검출 모델을 수신한다. 제1 비정상 검출 모델은 자원 사용에 대해 애플리케이션의 이상을 검출하기 위한 머신 러닝 기술을 사용하여 훈련가능하다. 단계 1304에서, 방법 1300은 애플리케이션의 자원 사용 데이터를 획득한다. 자원 사용 데이터는 제1 비정상 검출 모델에 따라 획득될 수 있다. 자원 사용 데이터는 컴퓨팅 디바이스 상의 애플리케이션에 의해 액세스되는 하나 이상의 서비스 또는 하나 이상의 하드웨어 컴포넌트의 사용 또는 에너지 소비에 관한 정보 및 관련 디바이스 및 환경 데이터를 포함한다. 단계 1306에서, 방법 1300은, 제1 비정상 검출 모델을 사용하여, 획득된 자원 사용 데이터에 기초하여 애플리케이션이 자원 사용에서 이상을 갖는지를 결정한다. 단계 1308에서, 방법 1300은 자원 사용에 대해 애플리케이션의 이상에 대한 결정에 응답하여 액션을 취한다.
도 14는 비정상 검출 모델을 구축하기 위한 실시예 방법 1400의 흐름도를 도시한다. 방법 1400은 로컬 컴퓨팅 서버, 원격 서버 또는 클라우드 서버와 같은 원격 디바이스에서의 동작들을 나타낼 수 있다. 도시된 바와 같이, 단계 1402에서, 방법 1400은 복수의 컴퓨팅 디바이스로부터 애플리케이션과 관련된 데이터 샘플들을 획득한다. 데이터 샘플들은 복수의 컴퓨팅 디바이스 상에서 애플리케이션에 의해 액세스되는 하나 이상의 서비스 또는 하나 이상의 하드웨어 컴포넌트의 사용 또는 에너지 소비에 관한 정보뿐만 아니라 다른 관련 디바이스 및 환경 데이터를 포함할 수 있다. 각각의 데이터 샘플은 복수의 컴퓨팅 디바이스 중 하나와 연관될 수 있다. 단계 1404에서, 방법 1400은 데이터 샘플들에 라벨들을 할당한다. 각각의 컴퓨팅 디바이스와 연관된 데이터 샘플에 할당된 라벨은 각각의 컴퓨팅 디바이스 상의 제1 자원 사용에서 애플리케이션이 갖는 복수의 비정상 레벨에서의 비정상 레벨을 나타낸다. 단계 1406에서, 방법 1400은 라벨링된 데이터 샘플들 및 머신 러닝 기술을 사용하여 비정상 검출 모델을 구축한다. 비정상 검출 모델은 제1 자원 사용에서 애플리케이션의 이상을 검출하도록 구성된다.
애플리케이션의 어느 이상이 검출되는지에 대해, 제1 자원 사용(또는 파라미터, 속성 또는 정량적 파라미터)이 결정될 수 있다. 제1 자원 사용은 제1 비정상 파라미터 또는 속성에 대응한다. 비정상 레벨들의 세트는 제1 자원 사용에서 애플리케이션의 이상의 레벨들을 나타내기 위해 결정될 수 있다. 복수의 컴퓨팅 디바이스 각각에 대해, 애플리케이션이 제1 자원 사용에서 이상을 갖는지는 각각의 컴퓨팅 디바이스들의 데이터 샘플들에 기초하여 검출되거나 결정될 수 있다. 따라서, 복수의 컴퓨팅 디바이스의 데이터 샘플들에 대한 복수의 비정상 평가(또는 검출) 결과들이 생성될 수 있고, 복수의 비정상 평가 결과들 각각은 비정상 레벨들의 세트 내의 비정상 레벨을 나타낸다. 그 후, 데이터 샘플들은 평가 결과들에 기초하여 대응하는 비정상 레벨들로 라벨링될 수 있다.
애플리케이션의 이상은 도 9의 단계 912-916에서 논의된 바와 같은 방법을 사용하여 결정될 수 있다. 일부 실시예들에서, 수집된 데이터 샘플들의 분석에 기초하여 애플리케이션의 이상을 결정하기 위해 다른 방법들이 또한 사용될 수 있다. 예를 들어, 밀도 또는 분포 기반 방법, 거리 기반 방법, 클러스터링 기반 방법, 유사성 기반 방법, 머신 러닝 기반 방법, 또는 재구성 에러에 기초한 방법과 같은 비정상 평가 및 데이터 분석 방법이 데이터 샘플들의 비정상 레벨들을 평가하기 위해 사용될 수 있다. 하나의 애플리케이션과 연관된 데이터 샘플들에 대해, 데이터 샘플들 각각은 그 후 관심 있는 각각의 속성 또는 자원 사용에 대한 대응하는 비정상 라벨을 할당받을 수 있다. 다른 실시예에서, 라벨들 또는 비정상 레벨들의 세트를 데이터 샘플들에 할당하는 대신에, 연속적인 비정상 또는 사용 심각도 값이 각각의 데이터 샘플에 할당되고, 이것은 그 후 자원 사용 및 비정상 레벨을 추정하거나 예측하기 위해 모델을 훈련하기 위해 사용된다. 일부 실시예들에서, 복수의 디바이스로부터 수집된 다량의 데이터에 대한 통계 분석, 비정상 평가 및 데이터 분석을 사용하는 대신에, 애플리케이션이 자원 사용에서 이상을 갖는지를 결정하기 위해, 성능 로그들, 사용 로그들, 사건 보고 또는 사용자 경험 피드백이 사용될 수 있다. 또한, 전문가는, 그/그녀의 경험, 통찰 및 지식에 기초하여, 수집된 데이터 샘플들 및 레코드들을 평가하여, 애플리케이션 이상이 디바이스에서 발생했는지를 결정할 수 있다.
도 15는 애플리케이션 이상 검출을 위한 다른 실시예 방법 1500의 흐름도를 도시한다. 도시된 바와 같이, 단계 1502에서, 방법 1500은 컴퓨팅 디바이스 상에서 실행 중인 애플리케이션이 자원 사용에서 이상을 갖는지를 검출한다. 애플리케이션의 이상은 애플리케이션에 대해 획득된 자원 사용 데이터에 기초하여 그리고 머신 러닝 기술을 사용하여 구축되는 비정상 검출 모델을 사용하여 검출될 수 있다. 방법 1500은 애플리케이션이 복수의 비정상 및 사용 레벨들에서 이상을 갖는지를 검출할 수 있다. 그 후, 애플리케이션에 대한 비정상 검출 결과가 생성될 수 있으며, 이는 하나 이상의 비정상 레벨의 검출 및 각각의 레벨의 우도를 포함할 수 있다. 단계 1504에서, 방법 1500은 비정상 검출 결과에 응답하여 애플리케이션의 실행에 대한 액션을 취한다. 단계 1506에서, 방법 1500은, 시간 기간 동안, 애플리케이션의 비정상 검출 결과들 및 비정상 검출 결과들에 응답하여 취해진 대응하는 액션들에 관한 데이터를 수집한다. 단계 1508에서, 방법 1500은 수집되는 데이터에 기초하여 적응 또는 맞춤화 모델을 사용하여 비정상 검출 결과에 응답하여 취해질 액션을 조정한다. 이것은 컴퓨팅 디바이스의 사용자 경험 또는 성능을 향상시키는 데 도움이 될 수 있다.
본 개시내용의 실시예들은 컴퓨팅 디바이스에서 비정상적으로 실행 중인 애플리케이션들에 의해 야기되는 과도한 에너지 소비를 감소시킴으로써 사용자 경험을 개선하는 것을 돕는다. 실시예들은 배터리로 동작되는(battery-operated) 컴퓨팅 디바이스들에 대해 더 유용해지고, 따라서 에너지 소스는 커패시티로 제한된다. 애플리케이션, 프로세스, 툴 또는 소프트웨어가 시간 기간 동안 디바이스에서 비정상적으로 작동하는 경우, 그것은 배터리가 정상적으로 소모되어야 하는 것보다 빠르게 소모되게 하고, 따라서 디바이스의 사용자가 디바이스의 성능 및 효율에 만족되지 않게 할 수 있다. 비정상은 애플리케이션에 의한 하드웨어 컴포넌트들, 서비스들 및 자원들의 사용의 분석으로부터 수집된 데이터를 사용하여 검출된다. 시간 기간 동안에 애플리케이션에 의한 에너지 소비 또는 자원 사용에서의 비정상이 발생하는 경우, 이것은 디바이스의 온도에서 과도한 증가를 야기할 수 있고, 이는 디바이스 또는 그 컴포넌트들에 대한 손상을 야기할 수 있거나, 또는 디바이스 또는 그 컴포넌트들의 성능을 저하시킬 수 있다. 따라서, 실시예들의 비정상 검출은 또한 디바이스의 과도한 가열 또는 열 문제들을 방지할 수 있다. 본 개시내용의 실시예들은 또한 애플리케이션 또는 프로세스들이 컴퓨팅 디바이스에서의 자원, 컴포넌트 또는 서비스를 비정상적으로 사용하는 경우들 또는 이벤트들을 검출할 수 있고, 이것은 애플리케이션이 디바이스의 전체 성능 또는 전체 사용자 경험을 저하시키는 것을 방지하는 것을 돕는다. 자원이 비정상적으로 사용되는 경우, 이것은 자원이 다른 애플리케이션들에 또는 시스템 프로세스들에 할당될 때 자원의 성능을 저하시킬 수 있고, 그 결과, 디바이스는 감소된 성능으로 기능할 수 있다. 본 개시내용의 실시예들은 사용자 경험을 개선하고, 성능을 개선하고, 배터리 수명을 개선하고, 전체 에너지 소비를 감소시키고, 과도한 열 또는 열 문제들을 감소시키고, 컴퓨팅 디바이스에서 이용가능한 자원들, 예를 들어, 소프트웨어 또는 하드웨어 컴포넌트들의 보다 정상적이고 효율적인 활용을 제공하는 것을 돕는다.
도 16은 컴퓨팅 디바이스 상에서 실행 중인 애플리케이션의 비정상 검출을 위한 실시예 방법 1600의 흐름도를 도시한다. 방법 1600은 애플리케이션의 실행 동안 수집된 데이터에 기초하여 애플리케이션이 실행하고 있는 동안 애플리케이션의 비정상을 검출하여, 실시간 애플리케이션 비정상 검출을 실현한다. 도시된 바와 같이, 단계 1602에서, 방법 1600은 컴퓨팅 디바이스 상에서 실행하고 있는 애플리케이션을 모니터링한다. 일부 실시예들에서, 애플리케이션을 모니터링하는 것은, 하나 이상의 하드웨어, 하나 이상의 서비스, 하나 이상의 소프트웨어 컴포넌트, 또는 애플리케이션의 실행 또는 수행 동안 애플리케이션에 의해 액세스되는 하나 이상의 자원의 사용과 같은, 애플리케이션에 의해 직접 또는 간접적으로 사용되거나 또는 액세스되는 자원들의 사용을 모니터링하는 것을 포함한다. 하드웨어의 사용은 액세스 지속기간, 액세스 레이트, 액세스 시작 시간 및 종료 시간 등과 같은, 하드웨어가 액세스되거나 사용되는 패턴을 포함할 수 있다. 방법 1600은 애플리케이션에 의해 하나 이상의 하드웨어의 사용과 관련된 데이터를 획득, 예를 들어, 수집하거나 수신할 수 있다. 일부 실시예들에서, 하나 이상의 하드웨어의 사용과 관련된 데이터는 CPU의 포그라운드 사용, CPU의 백그라운드 사용, 웨이크-록 유지 시간, 셀프-스타트의 수, 애플리케이션의 온-스크린 시간, 셀룰러 사용 및 패턴(예를 들어, 포그라운드, 및/또는 백그라운드 셀룰러 사용, 및/또는 수신 품질을 포함함), Wi-Fi 사용 및 패턴(예를 들어, 포그라운드, 및/또는 백그라운드 Wi-Fi 사용, 및/또는 수신 품질을 포함함), 메모리 사용, 입력-출력(IO) 디바이스 사용, 또는 로케이션 서비스 사용(예를 들어, 사용되는 로케이션 서비스들의 수), 또는 이들의 임의의 조합을 포함할 수 있다. 일부 실시예들에서, 하나 이상의 하드웨어의 사용에 관련된 데이터는 또한 GPU의 사용(예를 들어, 포그라운드 및/또는 백그라운드 GPU 사용을 포함함), 도착의 통지들의 수, 버전 정보, 오디오 서비스들의 사용(예를 들어, 포그라운드 및/또는 백그라운드 오디오 사용), 또는 사용자-데이터에의 액세스의 수, 또는 이들의 임의의 조합을 포함할 수 있다. 하나 이상의 하드웨어의 사용에 관련된 데이터는 애플리케이션의 실행의 비정상을 검출하기 위해 사용될 것이다. 본 기술분야의 통상의 기술자는 여기에 주어진 하나 이상의 하드웨어의 사용에 관련된 예들이 단지 예시 목적을 위한 것이고, 하드웨어의 사용에 관련된 임의의 데이터가 실시예 방법들에서 적용될 수 있다는 것을 인식할 것이다.
스마트폰에 설치된 "Whatsapp"이라고 하는 소셜 네트워킹 애플리케이션을 예로서 취하면, 하드 디스크에 저장된 음악을 재생하기 위해 스마트폰의 하드 디스크가 액세스될 수 있고, 재생을 위해 음악의 데이터를 임시로 저장하기 위해 메모리 캐시가 사용될 수 있고, 음악의 재생을 디스플레이하기 위해 스마트폰의 스크린이 액세스될 수 있고, 음악을 재생하기 위해 스피커가 액세스될 수 있다. 방법 1600은, Whatsapp에 의해 이 하드웨어들 즉, 하드 디스크, 메모리, 스크린 및 스피커의 사용을 모니터링하고 이에 따라 사용 데이터를 수집할 수 있다. 예를 들어, 사용 데이터는 화면 디스플레이 지속기간, 스피커-온 지속기간, 재생을 위해 사용되는 캐시의 크기, 하드 디스크에의 액세스들의 수를 포함할 수 있다. 데이터는 Whatsapp의 실행에 의해 소비되는 전력(예를 들어, 배터리 전력)을 또한 포함할 수 있다. 데이터는 Whatsapp의 실행 동안 시간 기간 동안의 디스플레이에 의해 소비되는 에너지, Whatsapp의 실행 동안 시간 기간 동안의 CPU에 의해 소비되는 에너지 등을 또한 포함할 수 있다. 일례에서, Whatsapp이 Wi-Fi를 통해 온라인으로 노래를 재생할 때, 방법 1600은 또한 예를 들어, 무선 인터페이스의 사용을 모니터링할 수 있고, Wi-Fi 인터페이스의 사용에 관한 데이터 예를 들어, Wi-Fi 록 유지 시간을 획득한다.
일부 실시예들에서, 방법 1600은 하나 이상의 하드웨어의 사용과 관련된 획득된 데이터를 애플리케이션과 연관시킬 수 있다. 이것은, 애플리케이션에 의해 액세스되는 하드웨어의 사용에 관련된 데이터가 컴퓨팅 디바이스에서의 상이한 프로세스, 또는 컴퓨팅 디바이스의 운영 체제와 같은 애플리케이션과는 상이한 엔티티에 의해 실제로 생성되는 일부 경우들에 대해 유익하지만, 사용의 기여자 즉, 애플리케이션이 식별되지 않는다. 음악 재생을 위한 Whatsapp의 예에서, 스마트폰 내의 오디오 서버 또는 미디어 관리자는 실제로 활성화되어 Whatsapp에 대한 스트리밍 오디오를 전달하고 에너지를 소비한다. 오디오 서버가 Whatsapp의 음악 재생으로 인해 x 에너지량을 소비했다면, x 에너지량은 오디오 서버의 동작들에 대해 기록될 수 있지만, 실제로 소비되는 에너지의 소스 기여자인 Whatsapp과 연관되지 않는다. 하나 이상의 하드웨어의 사용과 관련된 획득된 데이터를 데이터의 소스 기여자 즉, 애플리케이션과 연관시키는 것은 애플리케이션의 실행과 연관된 사용 데이터를 식별하는 것을 도우며, 이는 애플리케이션의 비정상을 결정하기 위해 사용될 것이다. 애플리케이션이 상이한 버전들을 가질 경우, 연관은 애플리케이션의 버전을 식별하는 정보를 포함할 수 있다.
획득된 데이터에 의해, 방법 1600은 애플리케이션이 비정상적으로 실행하고 있는지 또는 비정상이 애플리케이션에 대해 발생하는지를 검출할 수 있다. 방법 1600은, 시간 기간 동안 애플리케이션에 의한 하드웨어, 서비스들 또는 다른 자원들의 사용을 모니터링하고, 관련 데이터를 획득하고, 비정상이 발생하는지를 주기적으로 검출할 수 있다. 비정상이 발생하는지 여부는 다양한 비정상 검출 조건들 또는 요건들에 따라 검출될 수 있다. 비정상 검출 조건 또는 요건은 애플리케이션 비정상의 검출 동작을 트리거링하거나 개시할 수 있다. 예를 들어, 애플리케이션은 그것이 점유하는 메모리 공간이 임계값을 초과하는 경우 비정상을 갖도록 결정될 수 있다. 따라서, 이 경우의 요건 또는 조건은 메모리 공간이 임계값을 초과하는 것이다. 다른 예에서, 애플리케이션은 그것이 임계 전력량보다 많이 소비하는 경우 비정상을 갖도록 결정될 수 있다. 따라서 이 경우의 요건 또는 조건은 임계값 또는 한계를 초과하는 전력 소비이다. 또 다른 예에서, 애플리케이션은 그것의 Wi-Fi 록 지속기간이 임계값을 초과하는 경우 비정상 상태에 있는 것으로 결정될 수 있다. 따라서 이 경우의 요건 또는 조건은 Wi-Fi 록 지속기간이다. 비정상 검출 요건 또는 조건의 예들은 메모리 공간, Wi-Fi 록 유지 시간, 전력, IO 액세스, CPU 사용, GPU 사용, 웨이크-록 유지 시간 등을 포함한다. 본 개시내용 전체에 걸쳐, "비정상 검출 조건" 및 "비정상 검출 요건"의 용어들은 상호교환가능하게 사용된다. 일 실시예에서, 단일 비정상 검출 조건이 만족되는 경우 애플리케이션의 비정상이 검출될 수 있다. 다른 실시예에서, 애플리케이션의 비정상은 다수의 비정상 검출 조건들 또는 요건들이 만족되는 경우에 검출될 수 있다. 상이한 비정상 검출 조건들이 조합되고 애플리케이션의 비정상을 결정하기 위해 사용될 수 있다. 비정상 검출 조건 또는 요건은 또한 애플리케이션의 비정상을 결정하기 위해 사용되는 메모리 공간 크기, 전력 소비량, 또는 Wi-Fi 록 지속기간과 같은 파라미터에 대응하는 것으로 이해될 수 있다. 파라미터는 애플리케이션의 실행 동안 애플리케이션에 의해 액세스된 하드웨어의 사용을 나타낸다. 비정상 검출 조건에 의해 표시된 파라미터에 따라 애플리케이션의 비정상이 검출된다. 파라미터의 예들은 메모리 공간의 평균 크기, IO 디바이스의 액세스 레이트, 평균 웨이크-록 유지 시간, 평균 Wi-Fi 록 유지 시간, GPU 서비스 시간, CPU 서비스 시간, 평균 에너지량, 또는 CPU 백그라운드 실행 시간을 포함할 수 있다. 본 기술분야의 통상의 기술자들은 실시예 방법들에서 적용가능한 다양한 비정상 검출 요건들 및 파라미터들을 인식할 것이다.
도 16에 도시된 바와 같이, 단계 1604에서, 비정상 검출 조건에 따라, 방법 1600은, 하나 이상의 하드웨어의 사용에 관련된 데이터에 기초하여, 비정상 검출 조건에 의해 표시된 파라미터에 대응하는 값을 계산한다. 일부 실시예들에서, 방법 1600은 모델들의 세트를 확립(또는 구성)할 수 있고, 모델들의 세트의 각각은 비정상 검출 조건에 대응하고 있다. 모델들 각각은 하나 이상의 하드웨어의 사용에 관련된 획득된 데이터를 입력으로서 취하고, 비정상 검출 조건에 의해 표시된 파라미터에 대응하는 값을 출력으로서 생성한다. 이러한 모델들은 또한 상이한 비정상 검출 조건들에 대응하는 파라미터 값들을 생성할 수 있는 하나의 단일 모델로 조합될 수 있다. 이 경우, 단일 모델은, 비정상 검출 조건들 중 어느 것이 출력으로서 값을 계산하기 위해 사용되는지를 나타내는 표시뿐만 아니라, 그리고 하나 이상의 하드웨어 또는 서비스의 사용에 관련된 획득된 데이터를 입력으로서 취할 수 있다. 모델은 애플리케이션 비정상 검출에 대해 미리 결정된 수학적 모델일 수 있다. 예를 들어, 수학적 모델은 다음 수학식에 따라 파라미터의 값을 계산할 수 있으며,
Figure pct00006
여기서 ωi는 머신 러닝 기술을 사용하여 훈련된 계수이고, "Tx"는 업로딩된 데이터의 양이고, "Rx"는 다운로딩된 데이터의 양이고, "캐리어"는 서비스 제공자를 지칭하고, "RAT"는 사용되는 무선 기술이고, "f"는 사용되는 무선 채널이고, "MIMO"는 MIMO 모드가 인에이블되는지를 나타내고, "CA"는 캐리어 집성 상태이고, "S"는 신호 강도이고, "이동성"은 디바이스의 이동을 나타내고, "위치"는 디바이스의 서비싱 셀 타워(servicing cell tower)를 나타낸다. 다른 실시예에서, 애플리케이션 비정상 검출을 위한 수학적 모델은, 비정상 파라미터를 추정하기 위해 또는 하나 이상의 애플리케이션에 대한 비정상 조건을 검출하기 위해, 수집된 더 큰 입력 데이터 세트, 입력 데이터의 다양한 조합들, 또는 다양한 이차 또는 상위 레벨 속성들 또는 정량적 특징들을 사용하는 딥 뉴럴 네트워크 또는 베이지안 추정 네트워크와 같은 더 복합적이거나 복잡한 멀티-스테이지 또는 멀티-레벨 모델일 수 있다.
단계 1606에서, 방법은 파라미터의 계산된 값이 비정상 검출 조건/요건에 대응하는 임계값을 초과하는지를 결정한다. 예를 들어, 값이 전력 소비의 파라미터에 대응하고 있는 경우, 임계값은 전력 임계값일 수 있다. 다른 예에서, 값이 CPU 서비스 시간 지속기간의 파라미터에 대응하고 있는 경우, 임계값은 시간 지속기간 임계값일 수 있다. 또 다른 예에서, 값이 IO 액세스 레이트의 파라미터에 대응하고 있는 경우, 임계값은 액세스 레이트 임계값이다. 컴퓨팅 디바이스는 예를 들어, 테이블에서 상이한 비정상 검출 조건들/요건들에 대응하는 임계값들의 리스트를 유지할 수 있다. 애플리케이션에 대해 또는 비정상 검출 조건/요건에 대응하여 정의된 임계값이 존재하지 않는 경우, 방법 1600은 임의의 후속하는 단계들로 진행하지 않고 여기서 정지할 수 있다.
단계 1608에서, 계산된 값이 임계값을 초과하는 경우, 방법 1600은 비정상이 애플리케이션에 대해 발생하는 것으로 결정하고, 이에 응답하여 액션을 취한다. 애플리케이션의 비정상의 부정적인 영향이 감소되거나 회피되도록 액션이 취해질 수 있다. 일례에서, 애플리케이션의 실행을 프리즈하기 위한 액션이 취해진다. 다른 예에서, 애플리케이션을 킬링하기 위한 액션이 취해진다. 또 다른 예에서, 통지 예를 들어, 비정상 통지가 컴퓨팅 디바이스의 사용자에 대해 표시될 수 있다. 통지는 비정상의 발생을 나타낼 수 있어, 사용자가 이에 응답하여 그 또는 그녀가 적절하다고 생각하는 액션을 취할 수 있게 한다. 통지는 비정상을 결정하기 위해 사용되는 임계값 및 계산된 값을 표시할 수 있다. 통지는 또한 비정상의 발생에 응답하여 사용자가 선택할 수 있는 액션들의 리스트를 나타낼 수 있다. 일부 경우들에서, 사용자는, 그/그녀의 경험 또는 전문 지식에 기초하여, 비정상 통지에 관계없이 액션을 취하지 않을 수 있다.
일부 실시예들에서, 방법 1600은 2개 이상의 상이한 비정상 검출 요건의 조합에 기초하여 애플리케이션의 비정상을 검출할 수 있다. 예를 들어, 방법 1600은 하드웨어의 사용에 관련된 데이터에 기초하여 배터리 전력 소비의 값 및 Wi-Fi 록 유지 시간의 값을 계산하고, 값들 각각을 대응하는 임계값과 비교할 수 있다. 비정상이 검출되는지를 결정하기 위해 상이한 기준들이 정의될 수 있다. 예를 들어, 값들 둘 다가 그의 대응하는 임계값들을 초과하는 경우, 방법 1600은 비정상이 검출되는 것을 결정한다. 다른 예에서, 2개의 값 중 어느 하나가 그의 대응하는 임계값을 초과하는 경우, 비정상이 검출되는 것으로 결정된다.
단계 1610에서, 방법 1600은 단계 1606에서의 결정에 기초하여 임계값을 업데이트할 수 있다. 임계값은, 예를 들어, 전력 소비, 과열, 성능, 사용자 경험 등의 관점에서, 컴퓨팅 디바이스가 애플리케이션의 비정상에 의해 부정적으로 영향을 받는 것으로부터 보다 보수적으로 보호하기 위해 업데이트될 수 있다. 예시적인 목적을 위한 예로서 Whatsapp을 취하면, Whatsapp에 의해 소비되는 전력이 10W(즉, Whatsapp에 의해 액세스되는 하드웨어에 관련된 데이터에 기초하여 그리고 모델을 사용하여 계산되는 값)이면서 임계값이 3W인 경우, 방법 1600은 Whatsapp이 비정상적으로 실행하고 있는 것으로 결정하고, Whatsapp를 닫는다. Whatsapp의 비정상의 검출로 인해, 방법 1600은 다음 번에 더 이른 비정상 검출에 대해, 임계값을 예를 들어, 0.5W 더 감소시키기로 결정할 수 있다. 다른 예에서, 사용자가 Whatsapp의 비정상의 검출에 응답하여 어떤 액션도 취하지 않는 경우, 계산된 소비된 전력 즉, 10W가 사용자에 특정한 새로운 임계값으로서 사용될 수 있고, 거기서부터의 전력 소비에 기초하여 비정상의 검출을 위해 사용될 것이고, 다양한 규칙들이 임계값이 업데이트되는지 그리고 임계값이 어떻게 결정되는지를 결정하기 위해 정의될 수 있다. 방법 1600은 비정상이 검출되는 때마다 또는 비정상이 검출되는 미리 결정된 횟수 후에 임계값을 업데이트 또는 조정할 수 있다. 방법 1600은 또한, 임계값이 업데이트될지, 및/또는 임계값이 어떻게 업데이트되는지를 결정하도록 컴퓨팅 디바이스의 사용자에 요청할 수 있다. 단계 1610으로부터 기인한 업데이트된 임계값은 컴퓨팅 디바이스 상에서 실행하고 비정상 검출 조건에 대응하는 애플리케이션에 특정된 임계값이다.
일부 실시예들에서, 임계값 또는 임계값들의 세트는 서버, 예를 들어, 클라우드 서버로부터 컴퓨팅 디바이스에 의해 수신될 수 있다. 서버로부터 수신된 임계값은 비정상 검출 요건에 대해 모든 애플리케이션들 또는 애플리케이션들의 그룹에 적용가능한 공통 임계값으로서 지칭될 수 있다. 컴퓨팅 디바이스는 동일한 공통 임계값을 사용하여 비정상 검출 요건에 따라 임의의 애플리케이션(또는 그룹 내의 임의의 애플리케이션)에 대한 비정상 검출을 수행할 수 있다. 컴퓨팅 디바이스는 비정상 검출 요건들의 세트에 따라 공통 임계값들의 리스트를 서버로부터 수신하고 유지할 수 있다. 컴퓨팅 디바이스는 또한 업데이트된 공통 임계값을 수신하고 대응하는 오래된 공통 임계값을 업데이트된 공통 임계값으로 대체할 수 있다.
일부 실시예들에서, 컴퓨팅 디바이스는 비정상 검출 요건에 대응하는 초기 공통 임계값을 수신할 수 있고, 예를 들어, 비정상 검출 요건에 의해 표시되는 파라미터의 값을 초기 공통 임계값과 비교함으로써, 애플리케이션 비정상을 결정하기 위해 초기 공통 임계값을 사용한다. 컴퓨팅 디바이스는 초기 공통 임계값의 업데이트(제2 공통 임계값)를 나중에 수신하고, 애플리케이션 비정상 검출을 위해 초기 공통 임계값을 업데이트된 공통 임계값으로 대체할 수 있다. 컴퓨팅 디바이스가 도 16의 단계 1610에 예시된 바와 같이 (예를 들어, 제2 공통 임계값을 사용하여) 비정상을 검출한 후 임계값 업데이트를 수행하고, 그에 의해 제3 임계값을 생성하는 경우, 컴퓨팅 디바이스는 제2 업데이트된 공통 임계값을 제3 임계값으로 대체하지 않는다. 대신에, 컴퓨팅 디바이스는 비정상 검출 요건에 대응하는 컴퓨팅 디바이스 상의 애플리케이션에 구체적으로 적용가능한 디바이스-특정 임계값으로서 제3 임계값을 저장할 수 있다. 따라서, 비정상 검출 요건에 대응하여, 컴퓨팅 디바이스는 2개의 임계값 즉, 공통 임계값 및 디바이스-특정 임계값을 가질 수 있다.
일부 실시예들에서, 컴퓨팅 디바이스는 표 6에 도시된 바와 같이, 상이한 비정상 검출 요건에 대응하는 사용자-특정 임계값들의 세트 및 공통 임계값들의 리스트를 가질 수 있다. 표 6은 3개의 비정상 검출 조건 즉, Wi-Fi 록 유지 시간, GPU 서비스 시간, 및 IO 액세스 레이트를 나타내고, 조건들 각각은 공통 임계값 및 디바이스-특정 임계값에 대응한다. 디바이스-특정 임계값은 예를 들어, 애플리케이션의 이름을 사용하여 애플리케이션과 연관될 수 있다. 디바이스-특정 임계값과 애플리케이션의 연관은 애플리케이션의 버전 정보를 또한 포함할 수 있다. 예를 들어, 표 6에 도시된 바와 같이, IO 액세스 레이트에 대응하는 디바이스-특정 임계값은 애플리케이션의 이름 즉, "Whatsapp", 및 Whatsapp의 버전 번호 즉, "1.0.3"을 또한 포함한다.
Figure pct00007
컴퓨팅 디바이스가 비정상 검출 조건에 대응하는 공통 임계값 및 디바이스-특정 임계값을 둘 다 갖는 경우, 컴퓨팅 디바이스는 비정상 검출에 대한 임계값들 중 어느 하나를 사용하기를 선택할 수 있고, 미리 정의된 규칙 또는 기준에 기초할 수 있다. 예를 들어, 공통 임계값 및 디바이스-특정 임계값이 서로 근접할 경우, 예를 들어, 2개의 임계값 간의 차이가 차이 임계값보다 작은 경우, 컴퓨팅 디바이스는 공통 임계값 및 디바이스-특정 임계값 중 하나를 랜덤하게 선택할 수 있다. 그렇지 않으면, 2개의 임계값 간의 차이가 차이 임계값보다 작지 않은 경우, 디바이스-특정 임계값이 사용될 수 있다. 검출된 애플리케이션 비정상에 대해 공통 임계값 또는 디바이스-특정 임계값을 선택하기 위해 다른 기준들이 또한 정의될 수 있다.
단계 1610에서 임계값이 업데이트된 후에, 방법 1600은 그 후 단계 1602로 되돌아가서 애플리케이션을 계속 모니터링하고(애플리케이션이 킬링되거나 프리즈되지 않는 경우), 애플리케이션의 비정상을 검출하거나, 또는 다른 애플리케이션들을 모니터링할 수 있다(애플리케이션이 킬링되거나 프리즈된 경우). 단계 1606에서 파라미터의 계산된 값이 임계값을 초과하지 않는 경우, 방법 1600은 단계 1602로 되돌아간다. 방법 1600은 애플리케이션에 어떠한 액션도 취하지 않고, 애플리케이션은 실행을 유지할 것이다.
방법 1600은 컴퓨팅 디바이스 상에서 실행가능한 별도의 애플리케이션으로서 구현될 수 있다. 방법 1600은 또한 컴퓨팅 디바이스의 백그라운드 상에서 실행 중인 데몬 또는 시스템 프로세스로서 구현될 수 있다. 이러한 경우들 중 어느 하나에서, 실시예 애플리케이션(또는 데몬 프로세스)이 시작되거나 활성화될 때, 실시예 애플리케이션은 애플리케이션의 비정상을 결정하기 위한 파라미터의 값을 계산하기 위한 하나 이상의 모델을 먼저 로딩할 수 있다. 하나 이상의 공통 임계값(및 하나 이상의 디바이스-특정 임계값), 및 하나 이상의 비정상 검출 요건이 또한 로딩될 수 있다. 방법 1600은 컴퓨팅 디바이스 상에서 실행 중인 단일 애플리케이션, 애플리케이션들의 그룹, 또는 각각의 그리고 모든 애플리케이션들의 비정상을 검출할 수 있다.
일부 실시예들에서, 컴퓨팅 디바이스는 상이한 비정상 검출 조건들에 대응하는 임계값들을 결정하고 업데이트하기 위해 클라우드 서버와 같은 서버와 상호작용할 수 있다. 컴퓨팅 디바이스는 유선 또는 무선으로 서버에 접속될 수 있다. 전술한 바와 같이, 컴퓨팅 디바이스는 클라우드 서버로부터 공통 임계값, 및/또는 공통 임계값의 업데이트를 수신할 수 있다. 일부 실시예들에서, 컴퓨팅 디바이스는 컴퓨팅 디바이스 상에서 실행 중인 애플리케이션에 의해 액세스되는 하드웨어 또는 서비스들의 사용에 관련된 데이터(예컨대, 도 16에 대해 위에서 논의된 데이터)를 클라우드 서버에 전송할 수 있다. 컴퓨팅 디바이스는 획득된 이러한 데이터 전부를 클라우드 서버에 주기적으로 업로딩할 수 있다. 컴퓨팅 디바이스는 또한 비정상 검출 조건에 대응하는 공통 임계값 및 디바이스-특정 임계값을 클라우드 서버에 전송할 수 있다. 디바이스-특정 임계값을 전송하는 경우에, 컴퓨팅 디바이스는 대응하는 애플리케이션의 버전 정보 및 대응하는 애플리케이션을 식별하는 정보를 또한 전송할 수 있다. 컴퓨팅 디바이스에 의해 서버에 전송된 데이터/정보는 공통 임계값을 결정하거나 공통 임계값을 업데이트하기 위해 서버에 의해 사용될 수 있다. 일부 실시예들에서, 서버는 공통 임계값 또는 업데이트된 공통 임계값을 하나 이상의 디바이스에 전송하도록 구성될 수 있다. 서버는 공통 임계값을 주기적으로 업데이트하고 하나 이상의 디바이스에 전송할 수 있다. 서버는 상이한 비정상 검출 조건들에 대응하는 하나 이상의 공통 임계값을 결정 및/또는 업데이트하기 위해 하나 이상의 컴퓨팅 디바이스로부터 데이터/정보를 수신하도록 또한 구성될 수 있다. 정보의 예들은 컴퓨팅 디바이스 상의 애플리케이션에 의해 액세스되는 하드웨어 또는 서비스들의 사용에 관련된 데이터, 비정상 검출 조건에 대응하는 공통 임계값, 비정상 검출 조건에 대응하는 디바이스-특정 임계값, 및 애플리케이션 이름, 버전 번호 등과 같은 애플리케이션에 관한 정보를 포함한다.
일부 실시예들에서, 서버 또는 원격 제어 디바이스는 위에서 논의된 바와 같이, 복수의 디바이스로부터 정보를 수신할 수 있고, 수신된 정보에 기초하여 비정상 검출 조건에 대응하는 공통 임계값(또는 업데이트된 공통 임계값)을 결정한다. 도 17은 비정상 검출 조건에 대응하는 공통 임계값을 결정하기 위한 실시예 방법 1700의 흐름도를 도시한다. 방법 1700은 지원 디바이스, 또는 클라우드 서버와 같은 서버에 의해 수행될 수 있다. 도시된 바와 같이, 단계 1702에서, 서버는 복수의 컴퓨팅 디바이스 상에서 실행 중인 하나 이상의 애플리케이션에 관련된 복수의 컴퓨팅 디바이스에 의해 송신되는 정보를, 저장 디바이스로부터, 검색한다. 도 16에 대해 위에서 논의된 바와 같이, 정보는 각각의 컴퓨팅 디바이스들 상의 각각의 애플리케이션들에 의해 액세스되는 하드웨어, 서비스들, 또는 다른 자원들의 사용에 관련된 데이터를 포함할 수 있다. 데이터는 CPU의 포그라운드 사용, CPU의 백그라운드 사용, 웨이크-록 유지 시간, 셀프-스타트의 수, 애플리케이션의 온-스크린 시간, 셀룰러 사용 및 패턴, Wi-Fi 사용 및 패턴, 메모리 사용, IO 디바이스에 액세스하기 위한 횟수, 또는 위치 서비스 사용, GPU 사용, 도착의 통지들의 수, 오디오 서비스들의 사용, 또는 사용자-데이터에의 액세스의 수, 또는 이들의 임의의 조합을 포함할 수 있다. 정보는 애플리케이션의 버전 정보, 및 애플리케이션의 이름 또는 식별자와 같은 애플리케이션 데이터를 또한 포함할 수 있다. 정보는 비정상 검출 조건에 대응하는 컴퓨팅 디바이스에 의해 사용되는 공통 임계값 및/또는 디바이스-특정 임계값을 추가로 포함할 수 있다. 정보는 최종 사용자 라이선스 합의(EULA)에 의해 지정된 고정된 시간량 동안 클라우드 스토리지에 저장될 수 있다. 방법 1700은 클라우드 스토리지로부터 최근의 업로딩된 정보를 주기적으로 검색하고, 필요한 특징들을 추출하고, 분석을 수행하고, 공통 임계값 또는 공통 임계값들의 리스트를 컴파일할 수 있다.
단계 1704에서, 방법 1700은 검색된 정보에 기초하여 비정상 검출 조건에 대응하는 공통 임계값을 생성한다. 방법 1700은 검색된 정보에 기초하여 상이한 비정상 검출 조건들에 대응하는 공통 임계값들을 생성할 수 있다. 일부 실시예들에서, 방법 1700은 정보의 전부 또는 일부를 클라우드측 러닝 모듈에 입력할 수 있으며, 이 클라우드측 러닝 모듈은 비정상 검출 조건에 대응하는 공통 임계값을 출력한다. 클라우드측 러닝 모듈은 입력 정보를 사용하여 러닝 네트워크를 훈련하도록 구성된 머신 러닝 모듈일 수 있다. 예를 들어, 클라우드측 러닝 모듈은 베이지안 추정 모델, 회귀 모델, 컨볼루션 뉴럴 네트워크(CNN), 또는 판단 트리들의 앙상블 등일 수 있지만, 이에 제한되는 것은 아니다. 러닝 네트워크의 예들은 다층 뉴럴 네트워크, 또는 회귀 러닝 네트워크를 포함할 수 있다. 클라우드측 러닝 모듈은 임의의 머신 러닝 메커니즘을 사용하여 컴퓨팅 디바이스로부터 수신된 정보에 기초하여 공통 임계값을 획득할 수 있다.
단계 1706에서, 방법 1700은 생성된 공통 임계값을 검증한다. 예를 들어, 도메인 전문가는 생성된 공통 임계값을 검사하거나, 또는 예를 들어, 시스템 또는 애플리케이션 로그들을 사용하여 그 정확도를 체크할 수 있다. 공통 임계값은 전문가의 입력에 기초하여 변경될 수도 있다. 단계 1708에서, 방법 1700은 생성된 공통 임계값을 컴퓨팅 디바이스에 송신한다. 생성된 공통 임계값은 컴퓨팅 디바이스가 비정상 검출 조건에 따라 애플리케이션의 비정상을 결정하기 위해 사용하는 초기 공통 임계값일 수 있다. 생성된 공통 임계값은 또한 컴퓨팅 디바이스에 대한 업데이트된 공통 임계값일 수 있다. 이 경우, 컴퓨팅 디바이스는 그것의 공통 임계값을 이 업데이트된 공통 임계값으로 대체한다. 방법 1700은 발생된 공통 임계값을 OTA(over-the-air) 푸시 또는 전송을 통해 송신할 수 있다. 방법 1700은 생성된 공통 임계값을 소프트웨어 업데이트에 의해 컴퓨팅 디바이스에 또한 송신할 수 있다. 이 경우, 생성된 공통 임계값은 소프트웨어를 업데이트할 때 시스템 소프트웨어로 번들링되거나, 애플리케이션 스토어로부터 다운로딩될 수 있다.
실시예 방법들에서, 컴퓨팅 디바이스는 클라우드 서버에 의해 제공되는 하나 이상의 공통 임계값 및 애플리케이션의 실행에 관련된 수집된 데이터를 이용하고 하나 이상의 비정상 검출 조건에 따라 애플리케이션의 실행 동안 애플리케이션 비정상을 검출할 수 있고, 클라우드 서버는 컴퓨팅 디바이스 및/또는 애플리케이션 실행에 관련된 다른 컴퓨팅 디바이스들에 의해 제공되는 데이터에 기초하여 하나 이상의 공통 임계값을 결정한다. 컴퓨팅 디바이스 및 클라우드 서버 둘 다는 (클라우드측에서 그리고 컴퓨팅 디바이스 및/또는 다른 컴퓨팅 디바이스들에 의해 제공되는 데이터에 기초하여) 하나 이상의 공통 임계값을 주기적으로 업데이트하고, (디바이스측 상에 그리고 비정상의 검출에 기초하여) 하나 이상의 디바이스-특정 임계값을 생성할 수 있다. 이러한 방식으로, 컴퓨팅 디바이스 및 클라우드 서버는 실시간으로 애플리케이션 비정상의 검출을 협력적으로 구현하고, 결과적으로 컴퓨팅 디바이스의 성능 및 따라서 사용자 경험을 개선한다.
도 18은 애플리케이션 비정상 검출을 위한 실시예 방법 1800의 흐름도를 도시한다. 방법 1800은 컴퓨터로 구현된(computer-implemented) 방법일 수 있다. 방법 1800은 컴퓨팅 디바이스에서의 동작들을 나타낸다. 도시된 바와 같이, 단계 1802에서, 방법 1800은 컴퓨팅 디바이스 상에서 실행 중인 애플리케이션에 의해 하나 이상의 하드웨어의 사용에 관한 데이터를 획득하고, 여기서 애플리케이션은 컴퓨팅 디바이스 상의 애플리케이션의 실행 동안 컴퓨팅 디바이스의 하나 이상의 하드웨어에 액세스한다. 방법 1800은 애플리케이션에 의해 액세스되는 서비스들과 같은 하나 이상의 다른 자원의 사용에 관한 데이터를 획득하고, 애플리케이션의 이상을 검출하기 위한 데이터를 사용할 수 있다. 단계 1804에서, 방법 1800은 비정상 검출 요건에 따라 데이터에 기초하여 애플리케이션이 비정상적으로 실행하고 있는지를 검출한다. 비정상 검출 요건은 애플리케이션의 비정상을 결정하기 위해 사용될 파라미터를 나타낸다. 애플리케이션이 비정상적으로 실행하고 있는지를 검출하는 것은 데이터에 기초하여 계산되는 파라미터의 값을 비정상 검출 요건에 대응하는 임계값과 비교함으로써 수행된다. 단계 1806에서, 방법 1800은 애플리케이션이 비정상적으로 실행하고 있다는 결정에 응답하여 애플리케이션의 실행에 대한 액션을 취한다.
일부 실시예들에서, 하나 이상의 하드웨어의 사용에 관한 데이터는 CPU의 포그라운드 사용, CPU의 백그라운드 사용, 웨이크-록 유지 시간, 셀프-스타트의 수, 애플리케이션의 온-스크린 시간의 수, 셀룰러 사용 및 패턴, Wi-Fi 사용 및 패턴, 메모리 사용, IO 디바이스 사용, 예를 들어, IO 디바이스의 액세스 횟수, 또는 위치 서비스 사용, 예를 들어, 사용되는 로케이션 서비스들의 수를 포함한다.
일부 실시예들에서, 하나 이상의 하드웨어의 사용에 관한 데이터는 그래픽 처리 유닛(GPU)의 사용, 도착들의 통지의 수, 애플리케이션의 버전 정보, 오디오 서비스들의 사용, 또는 사용자-데이터에의 액세스의 수를 추가로 포함할 수 있다.
일부 실시예들에서, 파라미터는 애플리케이션에 의해 취해진 메모리 공간, IO 디바이스의 액세스 레이트, 웨이크-록 유지 시간, Wi-Fi 록 유지 시간, GPU 서비스 시간, CPU 서비스 시간, 또는 CPU 백그라운드 실행 시간을 포함한다.
일부 실시예들에서, 애플리케이션의 실행에 대한 액션을 취하는 것은 애플리케이션의 실행을 프리즈하거나, 애플리케이션을 킬링하는 것을 포함한다.
일부 실시예들에서, 애플리케이션의 실행에 대한 액션을 취하는 것은 애플리케이션이 비정상적으로 실행하고 있는 것을 통지하는 통지를 생성하는 것을 포함한다.
일부 실시예들에서, 방법 1800은 시간 기간 동안 애플리케이션의 실행 동안 하나 이상의 하드웨어의 사용을 모니터링할 수 있다.
일부 실시예들에서, 방법 1800은 획득된 데이터를 애플리케이션과 연관시킬 수 있다.
일부 실시예들에서, 방법 1800은 미리 확립된 모델을 사용하여 파라미터의 값을 계산할 수 있다.
일부 실시예들에서, 방법 1800은 파라미터 값이 임계값을 초과하는 경우 비정상이 애플리케이션에 대해 발생한 것으로 결정할 수 있다.
일부 실시예들에서, 방법 1800은 클라우드 서버로부터 임계값을 수신할 수 있다. 일부 실시예들에서, 수신된 임계값은 상이한 애플리케이션들에 대해 적용가능한 공통 임계값이다.
일부 실시예들에서, 방법 1800은 애플리케이션이 비정상적으로 실행하고 있는 것으로 결정한 후 임계값을 업데이트할 수 있다.
일부 실시예들에서, 업데이트된 임계값은 비정상 검출 요건에 대응하는 컴퓨팅 디바이스 상에서 실행 중인 애플리케이션에 특히 적용가능한 디바이스-특정 임계값이다.
일부 실시예들에서, 방법 1800은 사용 및 임계값에 관한 데이터를 클라우드 서버에 송신할 수 있다.
일부 실시예들에서, 방법 1800은 업데이트된 임계값을 클라우드 서버에 송신할 수 있다. 일부 실시예들에서, 사용 및 임계값에 관한 데이터를 클라우드 서버에 송신하는 것은 주기적으로 수행된다.
일부 실시예들에서, 애플리케이션이 비정상적으로 실행하고 있는지를 검출하는 것은 주기적으로 또는 온 디맨드로 수행된다.
일부 실시예들에서, 방법 1800은 클라우드 서버로부터 업데이트된 임계값을 수신하고, 임계값을 업데이트된 임계값으로 대체할 수 있다.
본 개시내용의 실시예들은 컴퓨터로 구현된 방법들로서 구현될 수 있다. 실시예들은 처리 시스템에 의해 수행될 수 있다. 본 개시내용에서의 실시예 방법들은 비일시적 컴퓨터 판독가능 매체에 저장되고 하나 이상의 프로세서에 의해 실행가능한 컴퓨터 명령어들로서 구현될 수 있다. 컴퓨터 판독가능 비일시적 매체는 자기 저장 매체, 광학 저장 매체, 플래시 매체 및 솔리드 스테이트 저장 매체를 포함하는 모든 유형의 컴퓨터 판독가능 매체를 포함한다. 비정상 검출 모델 및 관련 소프트웨어가 컴퓨팅 디바이스에 미리 설치될 수 있다는 것을 이해해야 한다. 대안적으로, 소프트웨어는, 예를 들어, 소프트웨어 작성자에 의해 소유되는 서버로부터 또는 소프트웨어 작성자에 의해 소유되지 않지만 사용되는 서버로부터, 물리적 매체 또는 배포 시스템을 통해 소프트웨어를 획득하는 것을 포함하여, 컴퓨팅 디바이스 내로 획득되고 로딩될 수 있다. 소프트웨어는 예를 들어, 인터넷을 통한 배포를 위해 서버 상에 저장될 수 있다.
도 19는 본 명세서에 설명된 방법들을 수행하기 위한 실시예 처리 시스템(1900)의 블록도를 도시하며, 이는 호스트 디바이스에 설치될 수 있다. 도시된 바와 같이, 처리 시스템(1900)은 프로세서(1904), 메모리(1906), 및 인터페이스들(1910-1914)을 포함하며, 이들은 도 19에 도시된 바와 같이 배열될 수 있다(또는 배열되지 않을 수 있다). 프로세서(1904)는 계산들 및/또는 다른 처리 관련 작업들을 수행하도록 적응되는 임의의 컴포넌트 또는 컴포넌트들의 집합일 수 있고, 메모리(1906)는 프로세서(1904)에 의한 실행을 위해 프로그래밍 및/또는 명령어들을 저장하도록 적응되는 임의의 컴포넌트 또는 컴포넌트들의 집합일 수 있다. 실시예에서, 메모리(1906)는 비일시적인 컴퓨터 판독가능 매체를 포함한다. 인터페이스들(1910, 1912, 1914)은 처리 시스템(1900)이 다른 디바이스들/컴포넌트들 및/또는 사용자와 통신하는 것을 허용하는 임의의 컴포넌트 또는 컴포넌트들의 집합일 수 있다. 예를 들어, 인터페이스들(1910, 1912, 1914) 중 하나 이상은 데이터, 제어, 또는 관리 메시지들을 프로세서(1904)로부터 호스트 디바이스 및/또는 원격 디바이스 상에 설치되는 애플리케이션들에 통신하도록 적응될 수 있다. 다른 예로서, 인터페이스들(1910, 1912, 1914) 중 하나 이상은 사용자 또는 사용자 디바이스(예를 들어, 개인용 컴퓨터(personal computer)(PC) 등)가 처리 시스템(1900)과 상호작용/통신하는 것을 허용하도록 적응될 수 있다. 처리 시스템(1900)은 도 19에 도시되지 않은 부가적인 컴포넌트들, 예를 들어, 장기 스토리지(예컨대, 비휘발성 메모리 등)를 포함할 수 있다.
일부 실시예들에서, 처리 시스템(1900)은 통신 네트워크에 액세스하거나 그렇지 않으면 통신 네트워크의 일부인 네트워크 디바이스에 포함된다. 일례에서, 처리 시스템(1900)은 기지국, 중계국, 스케줄러, 제어기, 게이트웨이, 라우터, 애플리케이션 서버 또는 통신 네트워크 내의 임의의 다른 디바이스와 같은 무선 또는 유선 통신 네트워크 내의 네트워크측 디바이스 내에 있다. 다른 실시예들에서, 처리 시스템(1900)은 이동국, 사용자 장비(UE), 개인용 컴퓨터(PC), 태블릿, 웨어러블 통신 디바이스(예를 들어, 스마트워치 등), 또는 통신 네트워크에 액세스하도록 적응된 임의의 다른 디바이스와 같은 무선 또는 유선 통신 네트워크에 액세스하는 사용자측 디바이스 내에 있다.
일부 실시예들에서, 인터페이스들(1910, 1912, 1914) 중 하나 이상은 통신 네트워크를 통해 시그널링을 송신 및 수신하도록 적응된 송수신기에 처리 시스템(1900)을 접속시킨다. 도 20은 통신 네트워크를 통해 시그널링을 송신 및 수신하도록 적응된 송수신기(2000)의 블록도를 도시한다. 송수신기(2000)는 호스트 디바이스에 설치될 수 있다. 도시된 바와 같이, 송수신기(2000)는 네트워크측 인터페이스(2002), 결합기(2004), 송신기(2006), 수신기(2008), 신호 프로세서(2010), 및 디바이스측 인터페이스(2012)를 포함한다. 네트워크측 인터페이스(2002)는 무선 또는 유선 통신 네트워크를 통해 시그널링을 송신 또는 수신하도록 적응되는 임의의 컴포넌트 또는 컴포넌트들의 집합을 포함할 수 있다. 결합기(2004)는 네트워크측 인터페이스(2002)를 통해 양방향 통신을 용이하게 하도록 적응되는 임의의 컴포넌트 또는 컴포넌트들의 집합을 포함할 수 있다. 송신기(2006)는 기저대역 신호를 네트워크측 인터페이스(2002)를 통한 송신에 적합한 변조된 캐리어 신호로 변환하도록 적응되는 임의의 컴포넌트 또는 컴포넌트들의 집합(예를 들어, 업 컨버터, 전력 증폭기 등)을 포함할 수 있다. 수신기(2008)는 네트워크측 인터페이스(2002)를 통해 수신된 캐리어 신호를 기저대역 신호로 변환하도록 적응되는 임의의 컴포넌트 또는 컴포넌트들의 집합(예를 들어, 다운 컨버터, 저잡음 증폭기 등)을 포함할 수 있다. 신호 프로세서(2010)는 기저대역 신호를 디바이스측 인터페이스(들)(2012)를 통한 통신에 적합한 데이터 신호로 또는 그 역으로 변환하도록 적응되는 임의의 컴포넌트 또는 컴포넌트들의 집합을 포함할 수 있다. 디바이스측 인터페이스(들)(2012)는 신호 프로세서(2010)와 호스트 디바이스 내의 컴포넌트들(예를 들어, 처리 시스템(1900), 근거리 네트워크(local area network)(LAN) 포트들 등) 사이에서 데이터 신호들을 통신하도록 적응되는 임의의 컴포넌트 또는 컴포넌트들의 집합을 포함할 수 있다.
송수신기(2000)는 임의의 타입의 통신 매체를 통해 시그널링을 송신 및 수신할 수 있다. 일부 실시예들에서, 송수신기(2000)는 무선 매체를 통해 시그널링을 송신 및 수신한다. 예를 들어, 송수신기(2000)는 무선 통신 프로토콜, 예컨대 셀룰러 프로토콜(예를 들어, 롱 텀 에볼루션(LTE) 등), 무선 근거리 네트워크(wireless local area network)(WLAN) 프로토콜(예를 들어, Wi-Fi 등), 또는 임의의 다른 타입의 무선 프로토콜(예를 들어, 블루투스, 근접장 통신(near field communication)(NFC) 등)에 따라 통신하도록 적응되는 무선 송수신기일 수 있다. 그러한 실시예들에서, 네트워크측 인터페이스(2002)는 하나 이상의 안테나/방사 요소를 포함한다. 예를 들어, 네트워크측 인터페이스(2002)는 다층 통신, 예를 들어, 단일 입력 다중 출력(single input multiple output)(SIMO), 다중 입력 단일 출력(multiple input single output)(MISO), 다중 입력 다중 출력(multiple input multiple output)(MIMO) 등을 위해 구성되는, 단일 안테나, 다중 개별 안테나, 또는 멀티-안테나 어레이를 포함할 수 있다. 다른 실시예들에서, 송수신기(2000)는 유선 매체, 예를 들어, 트위스트 페어 케이블, 동축 케이블, 광 섬유 등을 통해 시그널링을 송신하고 수신한다. 특정 처리 시스템들 및/또는 송수신기들은 도시된 컴포넌트들 전부, 또는 컴포넌트들의 서브세트만을 이용할 수 있고, 통합 레벨들은 디바이스마다 다를 수 있다.
본 명세서에서 제공되는 실시예 방법들의 하나 이상의 단계는 대응하는 유닛들 또는 모듈들에 의해 수행될 수 있다는 것을 이해해야 한다. 예를 들어, 신호는 송신 유닛 또는 송신 모듈에 의해 송신될 수 있다. 신호는 수신 유닛 또는 수신 모듈에 의해 수신될 수 있다. 신호는 처리 유닛 또는 처리 모듈에 의해 처리될 수 있다. 다른 단계들은 데이터를 획득하고 비정상 검출 모듈을 획득하기 위한 획득 유닛/모듈, 애플리케이션 또는 프로세스의 비정상을 결정하기 위한 결정 유닛/모듈, 애플리케이션과 연관된 데이터에 비정상 레벨들을 할당하기 위한 할당 유닛/모듈, 계산 유닛/모듈, 액션 테이킹(action taking) 유닛/모듈, 다운로딩 유닛/모듈, 업로딩 유닛/모듈, 비정상 카테고리화 유닛/모듈, 데이터 분석 유닛/모듈, 비정상 검출 유닛/모듈, 맞춤화 유닛/모듈, 데이터 검색 유닛/모듈, 데이터 수집 유닛/모듈, 확률 추정 유닛/모듈, 머신 러닝 유닛/모듈, 검출 결과 조합 유닛/모듈, 식별 유닛/모듈, 훈련 유닛/모듈, 통지 유닛/모듈, 푸시 유닛/모듈, 모델 구축 유닛/모듈, 모니터링 유닛/모듈, 업데이트 유닛/모듈, 및/또는 검출 유닛/모듈에 의해 수행될 수 있다. 각각의 유닛들/모듈들은 하드웨어, 소프트웨어 또는 이들의 조합일 수 있다. 예를 들어, 유닛들/모듈들 중 하나 이상은, FPGA들(field programmable gate arrays) 또는 ASIC들(application-specific integrated circuits)과 같은, 통합 회로일 수 있다.
본 개시내용이 예시적인 실시예들을 참조하여 설명되어 있지만, 이 설명이 제한적인 의미로 해석되도록 의도되는 것은 아니다. 이 개시내용의 예시적인 실시예들뿐만 아니라 다른 실시예들의 다양한 수정들 및 조합들은, 그 설명을 참조할 때 본 기술분야에서의 통상의 기술자에게 명백할 것이다. 따라서 첨부된 청구범위는 임의의 이러한 수정들 또는 실시예들을 포괄하는 것으로 의도된다.

Claims (51)

  1. 방법으로서,
    컴퓨팅 디바이스에 의해, 원격 디바이스로부터 제1 비정상 검출 모델을 수신하는 단계- 상기 제1 비정상 검출 모델은 자원 사용에서 애플리케이션의 이상을 검출하기 위한 머신 러닝 기술을 사용하여 훈련가능함 -;
    상기 제1 비정상 검출 모델에 따라 상기 애플리케이션의 자원 사용 데이터를 획득하는 단계- 상기 자원 사용 데이터는 상기 컴퓨팅 디바이스 상의 상기 애플리케이션에 의해 액세스된 하나 이상의 하드웨어 컴포넌트 또는 하나 이상의 서비스의 사용 또는 에너지 소비에 관한 정보를 포함함 -;
    상기 제1 비정상 검출 모델을 사용하는 상기 컴퓨팅 디바이스에 의해, 상기 애플리케이션이 상기 획득된 자원 사용 데이터에 기초하여 상기 자원 사용에서 이상을 갖는지를 결정하는 단계; 및
    상기 자원 사용에서 상기 애플리케이션의 상기 이상에 대한 결정에 응답하여 액션을 취하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 자원 사용 데이터는, 상기 애플리케이션의 실행 조건 하에서 상기 컴퓨팅 디바이스 내의 하드웨어 컴포넌트의 에너지 소비, 사용, 에너지 패턴, 또는 사용 패턴을 포함하고, 상기 실행 조건은 상기 애플리케이션이 포그라운드에서, 백그라운드에서, 스크린 온으로, 또는 스크린 오프로 실행되고 있는지를 나타내고, 상기 하드웨어 컴포넌트의 사용 패턴은 시간 기간 동안 상기 하드웨어 컴포넌트의 자원 사용들을 나타내는 시계열을 포함하고, 상기 하드웨어 컴포넌트의 상기 에너지 패턴은 시간 기간 동안 상기 하드웨어 컴포넌트의 에너지 소비를 나타내는 시계열을 포함하는 방법.
  3. 제2항에 있어서,
    상기 하드웨어 컴포넌트의 사용은 상기 애플리케이션의 상기 실행 조건 하에서의 시간 기간 동안의 상기 하드웨어 컴포넌트의 총 사용 또는 에너지 소비, 상기 하드웨어 컴포넌트의 가장 최근의 사용 또는 에너지 소비, 또는 상기 하드웨어 컴포넌트의 사용 또는 에너지 소비의 시퀀스를 포함하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 자원 사용 데이터는 CPU의 포그라운드 사용, CPU의 백그라운드 사용, 웨이크-록 유지 시간, 셀프-스타트들의 수, 상기 애플리케이션의 온-스크린 시간, 상기 애플리케이션의 오프-스크린 시간, 셀룰러, 통신 또는 모뎀 사용 및 패턴, Wi-Fi 또는 네트워크 사용 및 패턴, 메모리 사용, 멀티미디어 사용 및 패턴, 이미징 센서 또는 카메라 사용 및 패턴, 그래픽 처리 유닛(GPU)의 사용, 임의의 다른 센서 또는 하드웨어 컴포넌트의 사용 및 패턴, IO 디바이스에 액세스하는 횟수를 포함하는 입력-출력(IO) 디바이스 사용, 또는 사용되는 위치 서비스들의 수를 포함하는 위치 서비스 사용 및 패턴을 포함하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 자원 사용 데이터는 그래픽 처리 서비스들의 사용, 도착의 통지들의 수, 오디오 서비스들의 사용, 멀티미디어 서비스들의 사용, 블루투스의 사용, Wi-Fi 서비스들의 사용, 통신 서비스들의 사용, 모뎀 또는 라디오 서비스들의 사용, 카메라 서비스들의 사용, 위치 또는 내비게이션 서비스들의 사용, 센서 서비스들의 사용, 메시징 서비스들의 사용, 휴먼 인터페이스 서비스들의 사용, 미디어 관리자 서비스들의 사용, 통지 관리자 서비스들의 사용, 시스템 서비스들 각각의 사용, Wi-Fi 또는 네트워크 액세스 서비스들의 품질, 모뎀 또는 통신 서비스들의 품질, 오디오 볼륨 및 품질, 오디오 경로, 멀티미디어 경로, 주변 광 분포, 디스플레이 밝기 분포, 온도, 습도, 배터리 또는 다른 컴포넌트들의 전류, 배터리 또는 다른 컴포넌트들의 전압, 또는 사용자-데이터에의 액세스의 수를 포함하는 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 자원 사용 데이터는 상기 컴퓨팅 디바이스에 관한 정보, 상기 컴퓨팅 디바이스를 사용하는 환경 조건, 또는 상기 컴퓨팅 디바이스의 성능을 포함하는 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 자원 사용 데이터는 상기 컴퓨팅 디바이스의 모델, 상기 컴퓨팅 디바이스의 제품 버전, 상기 애플리케이션의 애플리케이션 이름 또는 애플리케이션 식별자, 애플리케이션 버전, 상기 컴퓨팅 디바이스의 위치, 날짜 또는 시간에 관한 정보를 포함하는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 애플리케이션은 상기 컴퓨팅 디바이스에서 실행 중인 프로세스를 포함하는 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 자원 사용은 CPU 백그라운드(BG), CPU 포그라운드(FG), Wi-Fi BG, Wi-Fi FG, 모뎀 BG, 모뎀 FG, GPS BG, GPS FG, 카메라 BG, 카메라 FG, 웨이크-록 유지 시간, 상기 애플리케이션의 셀프-스타트의 수 또는 알람의 사용 또는 에너지 소비, IO 디바이스 사용, 또는 메모리 사용을 포함하는 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 애플리케이션이 상기 자원 사용에서 이상을 갖는지를 나타내는 비정상 검출 결과가 생성되고, 상기 비정상 검출 결과는 복수의 비정상 레벨에서의 비정상 레벨을 포함하는 방법.
  11. 제10항에 있어서,
    상기 복수의 비정상 레벨은 비정상 없음, 비정상, 높은 비정상, 또는 과도한 비정상을 포함하는 방법.
  12. 제10항 또는 제11항에 있어서,
    상기 복수의 비정상 레벨은 하나 이상의 사용 레벨을 포함하고, 상기 하나 이상의 사용 레벨은 높은 사용, 또는 과도한 사용을 포함하는 방법.
  13. 제10항 내지 제12항 중 어느 한 항에 있어서,
    상기 비정상 검출 결과는 상기 애플리케이션이 상기 복수의 비정상 레벨 중 하나 이상에 속하는 확률을 포함하는 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 애플리케이션의 실행에 대한 상기 액션을 취하는 것은 상기 애플리케이션의 실행을 프리즈하거나, 상기 애플리케이션을 재시작하거나, 또는 상기 애플리케이션을 킬링하는 것을 포함하는 방법.
  15. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 애플리케이션의 실행에 대한 상기 액션을 취하는 것은 상기 애플리케이션이 비정상적으로 실행하고 있는 것을 통지하는 하나 이상의 통지를 통신하거나 생성하는 것을 포함하는 방법.
  16. 제1항 내지 제15항 중 어느 한 항에 있어서,
    시간 기간 동안 상기 애플리케이션의 실행 동안 상기 하나 이상의 하드웨어 컴포넌트 또는 상기 하나 이상의 서비스의 상기 사용 또는 에너지 소비를 모니터링하는 단계를 추가로 포함하는 방법.
  17. 제1항 내지 제16항 중 어느 한 항에 있어서,
    상기 원격 디바이스로부터 상기 제1 비정상 검출 모델을 업데이트하는 단계를 추가로 포함하는 방법.
  18. 제1항 내지 제17항 중 어느 한 항에 있어서,
    상기 애플리케이션의 비정상 검출에 관련된 정보 및 상기 자원 사용 데이터를 상기 원격 디바이스에 송신하는 단계를 추가로 포함하며, 비정상 검출에 관련된 정보는 상기 애플리케이션의 비정상 검출 결과들, 상기 애플리케이션의 성능, 상기 애플리케이션의 사용자 경험 피드백, 상기 자원 사용에 대응하는 비정상 파라미터들 또는 사용 패턴, 또는 상기 애플리케이션의 속성 정보를 포함하는 방법.
  19. 제1항 내지 제18항 중 어느 한 항에 있어서,
    상기 애플리케이션의 상기 비정상 검출에 관련된 상기 정보 및 상기 자원 사용 데이터는 주기적으로 또는 온 디맨드(on demand)로 송신되는 방법.
  20. 제1항 내지 제19항 중 어느 한 항에 있어서,
    상기 애플리케이션이 상기 자원 사용에서 상기 이상을 갖는지는:
    상기 애플리케이션에 의해 사용되는 서비스가 상기 애플리케이션에 의해 허용되는지 또는 정상 사용 사례로서 간주되는지를 결정하는 것을 포함하는 방법.
  21. 제1항 내지 제20항 중 어느 한 항에 있어서,
    상기 애플리케이션이 상기 자원 사용에서 이상을 갖는지를 결정하는 것은:
    상기 애플리케이션이, 획득된 상기 자원 사용 데이터에 기초하여 그리고 머신 러닝 기술을 사용하여 각각이 구축되는 복수의 비정상 검출 모델의 조합을 사용하여 상기 자원 사용에서 이상을 갖는지를 검출하는 것을 포함하는 방법.
  22. 제1항 내지 제21항 중 어느 한 항에 있어서,
    상기 액션은 시간 기간 동안 상기 애플리케이션에 대해 검출된 비정상의 레벨 또는 비정상 레벨들의 패턴에 기초하여 결정되는 방법.
  23. 제1항 내지 제22항 중 어느 한 항에 있어서,
    상기 애플리케이션에 대한 이력 데이터의 세트를 생성하는 단계- 상기 이력 데이터의 세트는 상기 애플리케이션의 비정상 검출 결과들, 상기 제1 애플리케이션의 비정상 검출 결과들에 응답하여 취해진 액션들, 상기 애플리케이션의 사용 패턴들, 또는 상기 애플리케이션의 에너지 소비 패턴들을 포함함 -; 및
    상기 이력 데이터의 세트에 기초하여 비정상 검출 결과에 대응하는 상기 애플리케이션에 대해 취해질 상기 액션을 조정하는 단계를 추가로 포함하는 방법.
  24. 컴퓨터로 구현된 방법으로서,
    복수의 컴퓨팅 디바이스로부터 애플리케이션에 관련된 데이터 샘플들을 획득하는 단계- 상기 데이터 샘플들은 상기 복수의 컴퓨팅 디바이스 상에서 상기 애플리케이션에 의해 액세스된 하나 이상의 하드웨어 컴포넌트 또는 하나 이상의 서비스의 사용 또는 에너지 소비에 관한 정보를 포함하고, 각각의 데이터 샘플은 상기 복수의 컴퓨팅 디바이스 중 하나와 연관됨 -;
    상기 데이터 샘플들에 라벨들을 할당하는 단계- 각각의 컴퓨팅 디바이스와 연관된 데이터 샘플에 할당된 라벨은 상기 각각의 컴퓨팅 디바이스 상의 제1 자원 사용에서 상기 애플리케이션이 갖는 비정상 레벨들의 세트 내의 비정상 레벨을 나타내고, 상기 제1 자원 사용은 제1 비정상 파라미터에 대응함 -; 및
    라벨링된 데이터 샘플들 및 머신 러닝 기술을 사용하여 비정상 검출 모델을 구축하는 단계- 상기 비정상 검출 모델은 상기 제1 자원 사용에서의 상기 애플리케이션의 이상을 검출함 -를 포함하는 컴퓨터로 구현된 방법.
  25. 제24항에 있어서,
    상기 데이터 샘플들에 대한 분석을 수행함으로써, 분석 결과 및 하나 이상의 사용 파라미터를 생성하는 단계- 상기 하나 이상의 사용 파라미터 각각은 상기 제1 비정상 파라미터에 관련되거나 그에 종속함 -;
    상기 하나 이상의 사용 파라미터에 기초하여 복수의 사용 그룹을 정의하는 단계- 상기 복수의 사용 그룹 각각은 상기 하나 이상의 사용 파라미터 각각의 값들의 범위에 대응함 -;
    각각의 컴퓨팅 디바이스가 갖는 상기 하나 이상의 사용 파라미터의 값에 기초하여 상기 복수의 컴퓨팅 디바이스 각각을 상기 복수의 사용 그룹 중 하나로 카테고리화하는 단계; 및
    상기 제1 자원 사용에서 상기 애플리케이션의 이상을 검출하기 위해, 각각이 상기 복수의 사용 그룹 중 하나에 대응하는 임계값들의 세트를 결정하는 단계를 추가로 포함하는 컴퓨터로 구현된 방법.
  26. 제24항 또는 제25항에 있어서,
    상기 복수의 컴퓨팅 디바이스로부터 수집된 상기 애플리케이션에 관련된 업데이트된 데이터 샘플들에 기초하여 상기 비정상 검출 모델을 업데이트하는 단계를 추가로 포함하는 컴퓨터로 구현된 방법.
  27. 제24항 내지 제26항 중 어느 한 항에 있어서,
    상기 비정상 검출 모델은 분류 모델, 회귀 모델, 딥 뉴럴 네트워크 모델, 베이지안 네트워크를 사용하여 구축된 모델, 또는 정규화된 회귀 모델을 포함하는 컴퓨터로 구현된 방법.
  28. 제24항 내지 제27항 중 어느 한 항에 있어서,
    상기 애플리케이션은 상기 복수의 컴퓨팅 디바이스에서 실행 중인 프로세스를 포함하는 컴퓨터로 구현된 방법.
  29. 제24항 내지 제28항 중 어느 한 항에 있어서,
    상기 비정상 레벨들의 세트는 비정상 없음, 비정상, 높은 비정상, 또는 과도한 비정상을 포함하는 컴퓨터로 구현된 방법.
  30. 제24항 내지 제29항 중 어느 한 항에 있어서,
    상기 비정상 레벨들의 세트는 하나 이상의 사용 레벨을 포함하고, 상기 하나 이상의 사용 레벨은 높은 사용 또는 과도한 사용을 포함하는 컴퓨터로 구현된 방법.
  31. 제24항 내지 제30항 중 어느 한 항에 있어서,
    상기 비정상 검출 모델은 상기 애플리케이션이 상기 비정상 레벨들의 세트 중 하나 이상에 있는 확률을 추정하도록 구축되는 컴퓨터로 구현된 방법.
  32. 제24항 내지 제31항 중 어느 한 항에 있어서,
    상기 비정상 검출 모델을 컴퓨팅 디바이스에 푸시하거나 전송하는 단계를 추가로 포함하는 컴퓨터로 구현된 방법.
  33. 제24항 내지 제32항 중 어느 한 항에 있어서,
    상기 비정상 검출 모델을 구축하는 것은:
    복수의 자원 사용들에서 하나 이상의 애플리케이션의 이상을 검출하기 위한 상기 비정상 검출 모델을 구축하는 것을 포함하는 컴퓨터로 구현된 방법.
  34. 제24항 내지 제33항 중 어느 한 항에 있어서,
    상기 애플리케이션에 관련된 상기 데이터 샘플들은 주기적으로 또는 온 디맨드로 획득되는 컴퓨터로 구현된 방법.
  35. 제24항 내지 제34항 중 어느 한 항에 있어서,
    상기 제1 비정상 파라미터는 CPU 백그라운드(BG), CPU 포그라운드(FG), Wi-Fi BG, Wi-Fi FG, 모뎀 BG, 모뎀 FG, GPS BG, GPS FG, 카메라 BG, 카메라 FG, 웨이크-록 유지 시간, 상기 애플리케이션의 셀프-스타트의 수 또는 알람의 사용 또는 에너지 소비를 포함하는 컴퓨터로 구현된 방법.
  36. 제24항 내지 제35항 중 어느 한 항에 있어서,
    상기 데이터 샘플들은 상기 애플리케이션의 실행 조건 하에서 컴퓨팅 디바이스 내의 하드웨어 컴포넌트의 에너지 소비, 사용, 에너지 패턴, 또는 사용 패턴을 포함하고, 상기 실행 조건은 포그라운드, 백그라운드, 스크린 온, 또는 스크린 오프를 포함하고, 상기 하드웨어 컴포넌트의 사용 패턴은 시간 기간 동안 시계열로서 하드웨어 컴포넌트의 사용을 포함하고, 상기 하드웨어 컴포넌트의 에너지 패턴은 시간 기간 동안 시계열로서 상기 하드웨어 컴포넌트의 에너지 소비를 포함하는 컴퓨터로 구현된 방법.
  37. 제36항에 있어서,
    상기 하드웨어 컴포넌트의 사용은 상기 애플리케이션의 상기 실행 조건 하에서 시간 기간 동안 상기 하드웨어 컴포넌트의 전체 사용 또는 에너지 소비, 상기 하드웨어 컴포넌트의 가장 최근의 사용 또는 에너지 소비, 또는 상기 하드웨어 컴포넌트의 사용 또는 에너지 소비의 시퀀스를 포함하는 컴퓨터로 구현된 방법.
  38. 제24항 내지 제37항 중 어느 한 항에 있어서,
    상기 데이터 샘플들은 상기 애플리케이션의 비정상 검출에 관련된 정보를 포함하며, 상기 비정상 검출에 관련된 정보는 상기 애플리케이션의 비정상 검출 결과, 상기 애플리케이션의 성능, 사용자 경험 피드백, 상기 애플리케이션의 비정상 파라미터들, 상기 애플리케이션의 사용 패턴, 상기 애플리케이션의 속성 정보, 상기 애플리케이션과 연관된 서비스들의 사용을 포함하는 컴퓨터로 구현된 방법.
  39. 제24항 내지 제38항 중 어느 한 항에 있어서,
    상기 데이터 샘플들은 CPU의 포그라운드 사용, CPU의 백그라운드 사용, 웨이크-록 유지 시간, 셀프-스타트들의 수, 상기 애플리케이션의 온-스크린 시간, 상기 애플리케이션의 오프-스크린 시간, 셀룰러, 통신 또는 모뎀 사용 및 패턴, Wi-Fi 또는 네트워크 사용 및 패턴, 메모리 사용, 멀티미디어 사용 및 패턴, 이미징 센서 또는 카메라 사용 및 패턴, 그래픽 처리 유닛(GPU)의 사용, 임의의 다른 센서 또는 하드웨어 컴포넌트의 사용 및 패턴, IO 디바이스에 액세스하는 횟수를 포함하는 입력-출력(IO) 디바이스 사용, 또는 사용되는 위치 서비스들의 수를 포함하는 위치 서비스 사용 및 패턴을 포함하는 컴퓨터로 구현된 방법.
  40. 제24항 내지 제39항 중 어느 한 항에 있어서,
    상기 데이터 샘플들은 그래픽 처리 서비스들의 사용, 도착의 통지들의 수, 오디오 서비스들의 사용, 멀티미디어 서비스들의 사용, 블루투스의 사용, Wi-Fi 서비스들의 사용, 통신 서비스들의 사용, 모뎀 또는 라디오 서비스들의 사용, 카메라 서비스들의 사용, 위치 또는 내비게이션 서비스들의 사용, 센서 서비스들의 사용, 메시징 서비스들의 사용, 휴먼 인터페이스 서비스들의 사용, 미디어 관리자 서비스들의 사용, 통지 관리자 서비스들의 사용, 시스템 서비스들 각각의 사용, Wi-Fi 또는 네트워크 액세스 서비스들의 품질, 모뎀 또는 통신 서비스들의 품질, 오디오 볼륨 및 품질, 오디오 경로, 멀티미디어 경로, 주변 광 분포, 디스플레이 밝기 분포, 온도, 습도, 배터리 또는 다른 컴포넌트들의 전류, 배터리 또는 다른 컴포넌트들의 전압, 또는 사용자-데이터에의 액세스의 수를 포함하는 컴퓨터로 구현된 방법.
  41. 제24항 내지 제40항 중 어느 한 항에 있어서,
    상기 데이터 샘플들은 컴퓨팅 디바이스에 관한 정보, 상기 컴퓨팅 디바이스를 사용하는 환경 조건, 또는 상기 컴퓨팅 디바이스의 성능을 포함하는 컴퓨터로 구현된 방법.
  42. 제24항 내지 제41항 중 어느 한 항에 있어서,
    상기 데이터 샘플들은 컴퓨팅 디바이스의 모델, 컴퓨팅 디바이스의 제품 버전, 상기 애플리케이션의 애플리케이션 이름 또는 애플리케이션 식별자, 애플리케이션 버전, 컴퓨팅 디바이스의 위치, 날짜 또는 시간에 관한 정보를 포함하는 컴퓨터로 구현된 방법.
  43. 컴퓨터로 구현된 방법으로서,
    애플리케이션에 대해 획득된 자원 사용 데이터에 기초하여 그리고 머신 러닝 기술을 사용하여 구축되는 비정상 검출 모델을 사용하여, 컴퓨팅 디바이스 상에서 실행 중인 애플리케이션이 자원 사용에서 이상을 갖는지를 검출함으로써, 상기 애플리케이션에 대한 비정상 검출 결과를 생성하는 단계;
    상기 비정상 검출 결과에 응답하여 상기 애플리케이션의 실행에 대한 액션을 취하는 단계;
    시간 기간 동안, 상기 애플리케이션의 비정상 검출 결과들 및 상기 비정상 검출 결과들에 응답하여 취해진 대응하는 액션들에 관한 데이터를 수집하는 단계; 및
    수집되는 상기 데이터에 기초하여 적응 또는 맞춤화 모델을 사용하여 상기 비정상 검출 결과에 응답하여 취해진 상기 액션을 조정하는 단계를 포함하는 컴퓨터로 구현된 방법.
  44. 제43항에 있어서,
    상기 자원 사용 데이터를 획득하는 단계를 추가로 포함하며, 상기 자원 사용 데이터는 상기 애플리케이션에 의해 액세스된 상기 컴퓨팅 디바이스의 하나 이상의 하드웨어 컴포넌트 또는 하나 이상의 서비스의 사용 또는 에너지 소비에 관한 정보를 포함하는 컴퓨터로 구현된 방법.
  45. 제43항 또는 제44항에 있어서,
    상기 애플리케이션에 대한 상기 자원 사용 데이터는 제2항 내지 제8항 중 어느 한 항에서와 같은 자원 사용 데이터를 포함하는 컴퓨터로 구현된 방법.
  46. 제43항 내지 제45항 중 어느 한 항에 있어서,
    상기 비정상 검출 결과는 복수의 비정상 레벨에서의 비정상 레벨을 포함하는 컴퓨터로 구현된 방법.
  47. 제46항에 있어서,
    상기 복수의 비정상 레벨은 비정상 없음, 비정상, 높은 비정상, 또는 과도한 비정상을 포함하는 컴퓨터로 구현된 방법.
  48. 제46항 또는 제47항에 있어서,
    상기 복수의 비정상 레벨은 높은 사용, 또는 과도한 사용을 포함하는 하나 이상의 사용 레벨을 포함하는 컴퓨터로 구현된 방법.
  49. 제43항 내지 제48항 중 어느 한 항에 있어서,
    상기 애플리케이션의 실행에 대해 취해진 상기 액션은 제14항 또는 제15항에서와 같은 액션을 포함하는 컴퓨터로 구현된 방법.
  50. 장치로서,
    명령어들을 포함하는 비-일시적인 메모리 스토리지; 및
    상기 메모리 스토리지와 통신하는 하나 이상의 프로세서를 포함하며, 상기 하나 이상의 프로세서는 제1항 내지 제49항 중 어느 한 항에서와 같은 방법을 수행하기 위해 상기 명령어들을 실행하는 장치.
  51. 비일시적 컴퓨터 판독가능 매체로서,
    하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금 제1항 내지 제49항 중 어느 한 항에 따른 방법을 수행하게 하는 컴퓨터 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체.
KR1020207010478A 2017-10-13 2018-10-12 클라우드-디바이스 협업적 실시간 사용자 사용 및 성능 비정상 검출을 위한 시스템 및 방법 KR102339239B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762572320P 2017-10-13 2017-10-13
US62/572,320 2017-10-13
PCT/US2018/055710 WO2019075399A1 (en) 2017-10-13 2018-10-12 SYSTEM AND METHOD FOR COLLABORATIVE REAL TIME USER USE OF CLOUD DEVICE AND DETECTION OF PERFORMANCE ANOMALY

Publications (2)

Publication Number Publication Date
KR20200052361A true KR20200052361A (ko) 2020-05-14
KR102339239B1 KR102339239B1 (ko) 2021-12-14

Family

ID=64051811

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207010478A KR102339239B1 (ko) 2017-10-13 2018-10-12 클라우드-디바이스 협업적 실시간 사용자 사용 및 성능 비정상 검출을 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US11321210B2 (ko)
EP (1) EP3673375B1 (ko)
JP (1) JP7120708B2 (ko)
KR (1) KR102339239B1 (ko)
CN (1) CN111527478B (ko)
WO (1) WO2019075399A1 (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10558809B1 (en) 2017-04-12 2020-02-11 Architecture Technology Corporation Software assurance system for runtime environments
US10868825B1 (en) 2018-08-14 2020-12-15 Architecture Technology Corporation Cybersecurity and threat assessment platform for computing environments
JP6724960B2 (ja) * 2018-09-14 2020-07-15 株式会社安川電機 リソース監視システム、リソース監視方法、及びプログラム
US11212303B1 (en) * 2018-12-28 2021-12-28 Snap Inc. Detecting anomalous resources and events in social data
RU2739865C2 (ru) * 2018-12-28 2020-12-29 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного файла
US10949338B1 (en) * 2019-02-07 2021-03-16 Architecture Technology Corporation Automated software bug discovery and assessment
US11715051B1 (en) * 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
US11630684B2 (en) 2019-07-26 2023-04-18 Microsoft Technology Licensing, Llc Secure incident investigation workspace generation and investigation control
US11212300B2 (en) 2019-07-26 2021-12-28 Microsoft Technology Licensing, Llc Secure incident investigation event capture
US11153321B2 (en) 2019-07-26 2021-10-19 Microsoft Technology Licensing, Llc Secure investigations platform
WO2021019893A1 (ja) * 2019-07-31 2021-02-04 日本電気株式会社 異常検知システム、異常検知方法、および、異常検知プログラム
US11755884B2 (en) 2019-08-20 2023-09-12 Micron Technology, Inc. Distributed machine learning with privacy protection
US11636334B2 (en) * 2019-08-20 2023-04-25 Micron Technology, Inc. Machine learning with feature obfuscation
US11281522B2 (en) 2019-08-30 2022-03-22 Microsoft Technology Licensing, Llc Automated detection and classification of dynamic service outages
US11216268B2 (en) 2019-09-20 2022-01-04 International Business Machines Corporation Systems and methods for updating detection models and maintaining data privacy
US11188320B2 (en) 2019-09-20 2021-11-30 International Business Machines Corporation Systems and methods for updating detection models and maintaining data privacy
US11157776B2 (en) 2019-09-20 2021-10-26 International Business Machines Corporation Systems and methods for maintaining data privacy in a shared detection model system
US11080352B2 (en) * 2019-09-20 2021-08-03 International Business Machines Corporation Systems and methods for maintaining data privacy in a shared detection model system
CN111813587B (zh) * 2020-05-28 2024-04-26 国网山东省电力公司 一种软件接口评估及故障预警方法及系统
CN111738413B (zh) * 2020-06-04 2021-04-20 东华大学 基于特征自匹配迁移学习的纺纱全流程能耗监测方法
US11709953B2 (en) 2020-06-19 2023-07-25 Acronis International Gmbh Systems and methods for executing data protection policies specific to a classified organizational structure
US11513878B2 (en) * 2020-06-26 2022-11-29 Acronis International Gmbh Systems and methods for detecting behavioral anomalies in applications
US11675687B2 (en) * 2020-09-01 2023-06-13 Bmc Software, Inc. Application state prediction using component state
US11418459B1 (en) 2020-12-14 2022-08-16 Cigna Intellectual Property, Inc. Anomaly detection for packet loss
CN112799932B (zh) * 2021-03-29 2021-07-06 中智关爱通(南京)信息科技有限公司 用于预测应用的健康级别的方法、电子设备和存储介质
CN113114705B (zh) * 2021-06-15 2021-09-21 杭州海康威视数字技术股份有限公司 可信可编排的视频物联网终端内生安全检测方法及装置
US11860759B2 (en) * 2021-07-12 2024-01-02 Capital One Services, Llc Using machine learning for automatically generating a recommendation for a configuration of production infrastructure, and applications thereof
US20230039566A1 (en) * 2021-07-28 2023-02-09 Infosys Limited Automated system and method for detection and remediation of anomalies in robotic process automation environment
CN113760596B (zh) * 2021-09-10 2022-06-17 深圳市晶联讯电子有限公司 一种控制液晶显示屏显示方法、装置及介质
CN113554128B (zh) * 2021-09-22 2022-03-15 中国光大银行股份有限公司 一种非常规异常检测方法、系统及存储介质
US11838171B2 (en) * 2021-10-12 2023-12-05 Cerner Innovation, Inc. Proactive network application problem log analyzer
CN116723384B (zh) * 2022-02-28 2024-04-19 荣耀终端有限公司 进程的控制方法、电子设备及可读存储介质
KR102534924B1 (ko) * 2022-05-30 2023-05-30 주식회사 삼보컴퓨터 컴퓨팅 기기의 전력을 관리하는 방법 및 장치
EP4319048A1 (en) * 2022-08-05 2024-02-07 Nokia Technologies Oy Abnormal model behavior detection
CN115203292B (zh) * 2022-09-15 2022-11-25 昆仑智汇数据科技(北京)有限公司 一种工业设备的数据处理方法、装置及设备
CN115603999A (zh) * 2022-10-12 2023-01-13 中国电信股份有限公司(Cn) 容器安全防护方法、装置、设备及存储介质
CN115640285B (zh) * 2022-10-24 2023-10-27 北京国电通网络技术有限公司 电力异常信息发送方法、装置、电子设备和介质
CN115514614B (zh) * 2022-11-15 2023-02-24 阿里云计算有限公司 基于强化学习的云网络异常检测模型训练方法及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011138484A (ja) * 2009-12-30 2011-07-14 Nec (China) Co Ltd マルチレベル分類モデルを構築する方法とシステム
US20160337390A1 (en) * 2015-05-11 2016-11-17 Qualcomm Incorporated Methods and Systems for Behavior-Specific Actuation for Real-Time Whitelisting
WO2016191639A1 (en) * 2015-05-28 2016-12-01 Oracle International Corporation Automatic anomaly detection and resolution system
KR20160142853A (ko) * 2014-04-08 2016-12-13 퀄컴 인코포레이티드 이동 디바이스에서 거동 분석 동작들을 수행함으로써 애플리케이션 상태들을 추론하기 위한 방법 및 시스템

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711662B2 (en) * 2003-01-15 2010-05-04 Bracco Imaging S.P.A. System and method for optimization of a database for the training and testing of prediction algorithms
US20070289013A1 (en) * 2006-06-08 2007-12-13 Keng Leng Albert Lim Method and system for anomaly detection using a collective set of unsupervised machine-learning algorithms
WO2012132101A1 (ja) * 2011-03-29 2012-10-04 オムロン株式会社 情報処理装置、および障害対応プログラム
JP5768503B2 (ja) * 2011-05-26 2015-08-26 富士通株式会社 情報処理装置、ログ記憶制御プログラムおよびログ記憶制御方法
US8554703B1 (en) * 2011-08-05 2013-10-08 Google Inc. Anomaly detection
US10599506B2 (en) * 2011-10-10 2020-03-24 Hewlett Packard Enterprise Development Lp Methods and systems for identifying action for responding to anomaly in cloud computing system
US9672242B2 (en) * 2012-12-24 2017-06-06 Korea Institute Of Science & Technology Information System for automatically detecting abnormalities statistical data on usage, method therefor, and apparatus applied to same
US9652354B2 (en) * 2014-03-18 2017-05-16 Microsoft Technology Licensing, Llc. Unsupervised anomaly detection for arbitrary time series
JP2016173782A (ja) * 2015-03-18 2016-09-29 エヌ・ティ・ティ・コミュニケーションズ株式会社 故障予測システム、故障予測方法、故障予測装置、学習装置、故障予測プログラム及び学習プログラム
US9665460B2 (en) * 2015-05-26 2017-05-30 Microsoft Technology Licensing, Llc Detection of abnormal resource usage in a data center
US9699205B2 (en) * 2015-08-31 2017-07-04 Splunk Inc. Network security system
EP3171272A1 (en) * 2015-11-22 2017-05-24 Strato Scale Ltd. Identification of cross-interference between workloads in compute-node clusters
US9361175B1 (en) * 2015-12-07 2016-06-07 International Business Machines Corporation Dynamic detection of resource management anomalies in a processing system
US10459827B1 (en) * 2016-03-22 2019-10-29 Electronic Arts Inc. Machine-learning based anomaly detection for heterogenous data sources
US11467300B2 (en) * 2016-08-03 2022-10-11 Schlumberger Technology Corporation Multi-scale deep network for fault detection
US20180096261A1 (en) * 2016-10-01 2018-04-05 Intel Corporation Unsupervised machine learning ensemble for anomaly detection
US10635557B2 (en) * 2017-02-21 2020-04-28 E.S.I. Software Ltd System and method for automated detection of anomalies in the values of configuration item parameters
CN108596434B (zh) * 2018-03-23 2019-08-02 卫盈联信息技术(深圳)有限公司 欺诈检测和风险评估方法、系统、设备及存储介质
CN112640380B (zh) * 2018-08-27 2022-08-19 华为云计算技术有限公司 用于对事件的输入流进行异常检测的设备和方法
US11443166B2 (en) * 2018-10-29 2022-09-13 Oracle International Corporation Datacenter level utilization prediction without operating system involvement
US10802942B2 (en) * 2018-12-28 2020-10-13 Intel Corporation Methods and apparatus to detect anomalies of a monitored system
US11132584B2 (en) * 2019-05-20 2021-09-28 Adobe Inc. Model reselection for accommodating unsatisfactory training data
US11436473B2 (en) * 2019-09-11 2022-09-06 Intuit Inc. System and method for detecting anomalies utilizing a plurality of neural network models

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011138484A (ja) * 2009-12-30 2011-07-14 Nec (China) Co Ltd マルチレベル分類モデルを構築する方法とシステム
KR20160142853A (ko) * 2014-04-08 2016-12-13 퀄컴 인코포레이티드 이동 디바이스에서 거동 분석 동작들을 수행함으로써 애플리케이션 상태들을 추론하기 위한 방법 및 시스템
US20160337390A1 (en) * 2015-05-11 2016-11-17 Qualcomm Incorporated Methods and Systems for Behavior-Specific Actuation for Real-Time Whitelisting
WO2016191639A1 (en) * 2015-05-28 2016-12-01 Oracle International Corporation Automatic anomaly detection and resolution system

Also Published As

Publication number Publication date
US11321210B2 (en) 2022-05-03
KR102339239B1 (ko) 2021-12-14
CN111527478A (zh) 2020-08-11
US20200371892A1 (en) 2020-11-26
EP3673375A1 (en) 2020-07-01
WO2019075399A1 (en) 2019-04-18
JP2020537215A (ja) 2020-12-17
JP7120708B2 (ja) 2022-08-17
EP3673375B1 (en) 2022-04-06
CN111527478B (zh) 2022-08-09

Similar Documents

Publication Publication Date Title
KR102339239B1 (ko) 클라우드-디바이스 협업적 실시간 사용자 사용 및 성능 비정상 검출을 위한 시스템 및 방법
US11237898B2 (en) Automatic model-based computing environment performance monitoring
US11616707B2 (en) Anomaly detection in a network based on a key performance indicator prediction model
EP2850865B1 (en) Minimizing latency of behavioral analysis using signature caches
US9372898B2 (en) Enabling event prediction as an on-device service for mobile interaction
US10860410B2 (en) Technique for processing fault event of IT system
US11805005B2 (en) Systems and methods for predictive assurance
EP3231199B1 (en) Notifications on mobile devices
US10313219B1 (en) Predictive intelligent processor balancing in streaming mobile communication device data processing
US11722380B2 (en) Utilizing machine learning models to determine customer care actions for telecommunications network providers
US11743237B2 (en) Utilizing machine learning models to determine customer care actions for telecommunications network providers
US20230060307A1 (en) Systems and methods for processing user concentration levels for workflow management
US11652699B2 (en) Computerized system and method for an improved self organizing network
US20200167652A1 (en) Implementation of incremental ai model for edge system
CN117151669A (zh) 基于工作流引擎执行时间的提醒方法及装置、电子设备
US11601155B2 (en) System and method for optimized thermal management of a WWAN modem
US11985048B2 (en) Computerized system and method for an improved self organizing network
US20240036999A1 (en) System and method for predicting and avoiding hardware failures using classification supervised machine learning
US20240073713A1 (en) Mobile Network Anomaly Classification Using Multi-Domain Data Correlation
US20230359539A1 (en) Improved software monitoring of real-time services
Ebert et al. Context-, Resource-, and User-Aware Provision of Services on Mobile Devices
CN117215812A (zh) 硬盘故障预测方法、装置、设备及存储介质
WO2023031650A1 (en) Methods and apparatuses for selecting fault management models
Ebert et al. Emma: A context-aware middleware for energy management on mobile devices

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