KR20210107288A - 전자 장치 및 그 제어 방법 - Google Patents

전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR20210107288A
KR20210107288A KR1020200022062A KR20200022062A KR20210107288A KR 20210107288 A KR20210107288 A KR 20210107288A KR 1020200022062 A KR1020200022062 A KR 1020200022062A KR 20200022062 A KR20200022062 A KR 20200022062A KR 20210107288 A KR20210107288 A KR 20210107288A
Authority
KR
South Korea
Prior art keywords
data
artificial intelligence
intelligence model
raw data
electronic device
Prior art date
Application number
KR1020200022062A
Other languages
English (en)
Inventor
허준호
김동욱
이충훈
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200022062A priority Critical patent/KR20210107288A/ko
Priority to EP21760057.6A priority patent/EP4099231A4/en
Priority to PCT/KR2021/000465 priority patent/WO2021172749A1/ko
Publication of KR20210107288A publication Critical patent/KR20210107288A/ko
Priority to US17/894,586 priority patent/US20220405430A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/251Fusion techniques of input or preprocessed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Neurology (AREA)
  • Bioethics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Databases & Information Systems (AREA)
  • Image Analysis (AREA)

Abstract

전자 장치가 개시된다. 본 전자 장치는 복수의 신경망 레이어를 통해 연산을 수행하는 인공 지능 모델(Artificial Intelligence Model)과 관련된 정보를 저장하는 메모리 및 로우 데이터를 전처리하고 전처리된 데이터를 인공 지능 모델에 입력하여 출력 데이터를 획득하는 프로세서를 포함하고, 로우 데이터의 전처리에 이용되는 제1 데이터 및 복수의 신경망 레이어 중 일부 레이어에서 이용되는 제2 데이터는 메모리의 보안 영역에 저장되고, 복수의 신경망 레이어 중 나머지 레이어에서 이용되는 제3 데이터는 메모리의 비보안 영역에 저장된다.

Description

전자 장치 및 그 제어 방법 { ELECTRONIC APPARATUS AND CONTROL METHOD THEREOF }
본 개시는 전자 장치 및 그 제어 방법에 대한 것으로, 더욱 상세하게는 인공 지능 모델(Artificial Intelligence Model)을 저장하고, 저장된 인공 지능 모델을 통해 출력 데이터를 획득하는 전자 장치 및 그 제어 방법에 대한 것이다.
최근 인공 지능 모델(Artificial Intelligence Model)은 서버 비용, 빠른 응답, 프라이버시 문제 등을 고려하여 서버가 아닌 온-디바이스(on-device) 상에서 구동되고 있다. 이 경우, 경쟁 업체 등이 온-디바이스에 저장된 인공 지능 모델을 무단으로 사용하는 문제가 발생할 수 있다.
이를 방지하기 위해 인공 지능 모델을 암호화할 수 있으나, 암호화 키(encryption key)의 보안 문제가 또다른 문제가 될 수 있다.
또한, 인공 지능 모델을 암호화하더라도, 인공 지능 모델을 실행하는 경우 암호화된 인공 지능 모델을 복원하여 메모리에 로딩하게 되는데, 이 경우에도 인공 지능 모델이 유출될 가능성이 있다.
또는, 인공 지능 모델을 트러스트 존(trust zone)에서 실행시킬 수도 있으나, 일반적으로 인공 지능 모델은 상당한 용량을 차지하는 반면, 트러스트 존에는 상대적으로 작은 용량만이 할당되는 문제가 있다.
그에 따라, 인공 지능 모델의 유출을 방지하기 위한 기술이 개발될 필요가 있다.
본 개시는 상술한 필요성에 따른 것으로, 본 개시의 목적은 인공 지능 모델(Artificial Intelligence Model)의 유출을 방지하는 전자 장치 및 그 제어 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 전자 장치는 복수의 신경망 레이어를 통해 연산을 수행하는 인공 지능 모델(Artificial Intelligence Model)과 관련된 정보를 저장하는 메모리 및 로우 데이터를 전처리하고 상기 전처리된 데이터를 상기 인공 지능 모델에 입력하여 출력 데이터를 획득하는 프로세서를 포함하고, 상기 로우 데이터의 전처리에 이용되는 제1 데이터 및 상기 복수의 신경망 레이어 중 일부 레이어에서 이용되는 제2 데이터는 상기 메모리의 보안 영역에 저장되고, 상기 복수의 신경망 레이어 중 나머지 레이어에서 이용되는 제3 데이터는 상기 메모리의 비보안 영역에 저장될 수 있다.
또한, 상기 제1 데이터는 복수의 로우 데이터 중 상기 인공 지능 모델에 입력될 로우 데이터의 필터링에 이용되는 데이터 또는 로우 데이터를 상기 인공 지능 모델에 입력될 입력 데이터로 변환하기 위해 이용되는 데이터 중 적어도 하나를 포함할 수 있다.
그리고, 상기 제2 데이터는 상기 복수의 신경망 레이어 중 마지막 레이어에서 이용되는 파라미터에 대한 정보를 포함할 수 있다.
또한, 상기 프로세서는 시큐어 월드(Secure World)로 동작하며 상기 비보안 영역에 저장된 상기 로우 데이터를 상기 독출하고, 상기 제1 데이터에 기초하여 상기 로우 데이터를 전처리할 수 있다.
그리고, 상기 제3 데이터는 상기 복수의 신경망 레이어 중 상기 마지막 레이어를 제외한 나머지 레이어에서 이용되는 파라미터에 대한 정보를 포함하며, 상기 프로세서는 노멀 월드(Normal World)로 동작하며 상기 제3 데이터에 기초하여 상기 전처리된 데이터에 대한 연산을 수행하고, 상기 마지막 레이어의 이전 레이어에서 출력되는 피쳐 맵 정보를 획득할 수 있다.
또한, 상기 프로세서는 상기 시큐어 월드로 동작하며 상기 제2 데이터에 기초하여 상기 피쳐 맵 정보에 대한 연산을 수행하고, 상기 마지막 레이어에서 출력되는 데이터를 상기 출력 데이터로 획득할 수 있다.
그리고, 상기 제2 데이터는 상기 복수의 레이어 각각에서 이용되는 파라미터 정보의 크기에 기초하여 결정된 적어도 하나의 레이어에서 이용되는 파라미터를 포함할 수 있다.
또한, 상기 메모리는 상기 보안 영역으로 이용되는 제1 메모리 및 상기 비보안 영역으로 이용되는 제2 메모리를 포함할 수 있다.
그리고, 센서를 더 포함하며, 상기 프로세서는 상기 센서를 통해 적어도 하나의 로우 데이터가 획득되면, 상기 제1 데이터에 기초하여 상기 획득된 로우 데이터를 필터링하고 상기 필터링된 로우 데이터를 상기 인공 지능 모델에 입력될 입력 데이터로 변환할 수 있다.
한편, 본 개시의 일 실시 예에 따르면, 전자 장치의 제어 방법은 상기 전자 장치에 포함된 메모리의 보안 영역에 저장된 제1 데이터에 기초하여 로우 데이터를 전처리하는 단계 및 인공 지능 모델(Artificial Intelligence Model)의 복수의 신경망 레이어 중 일부 레이어에서 이용되며 상기 보안 영역에 저장된 제2 데이터, 및 상기 복수의 신경망 레이어 중 나머지 레이어에서 이용되며 상기 메모리의 비보안 영역에 저장된 제3 데이터에 기초하여 상기 전처리된 로우 데이터가 상기 인공 지능 모델에 적용된 출력 데이터를 획득하는 단계를 포함할 수 있다.
또한, 상기 제1 데이터는 복수의 로우 데이터 중 상기 인공 지능 모델에 입력될 로우 데이터의 필터링에 이용되는 데이터 또는 로우 데이터를 상기 인공 지능 모델에 입력될 입력 데이터로 변환하기 위해 이용되는 데이터 중 적어도 하나를 포함할 수 있다.
그리고, 상기 제2 데이터는 상기 복수의 신경망 레이어 중 마지막 레이어에서 이용되는 파라미터에 대한 정보를 포함할 수 있다.
또한, 상기 전처리하는 단계는 전자 장치가 시큐어 월드(Secure World)로 동작하며 상기 비보안 영역에 저장된 상기 로우 데이터를 독출하고, 상기 제1 데이터에 기초하여 상기 로우 데이터를 전처리할 수 있다.
그리고, 상기 제3 데이터는 상기 복수의 신경망 레이어 중 상기 마지막 레이어를 제외한 나머지 레이어에서 이용되는 파라미터에 대한 정보를 포함하며, 상기 획득하는 단계는 상기 전자 장치가 노멀 월드(Normal World)로 동작하며 상기 제3 데이터에 기초하여 상기 전처리된 데이터에 대한 연산을 수행하고, 상기 마지막 레이어의 이전 레이어에서 출력되는 피쳐 맵 정보를 획득할 수 있다.
또한, 상기 획득하는 단계는 상기 전자 장치가 상기 노멀 월드로 동작하며 상기 제2 데이터에 기초하여 상기 피쳐 맵 정보에 대한 연산을 수행하고, 상기 마지막 레이어에서 출력되는 데이터를 상기 출력 데이터로 획득할 수 있다.
그리고, 상기 제2 데이터는 상기 복수의 레이어 각각에서 이용되는 파라미터 정보의 크기에 기초하여 결정된 적어도 하나의 레이어에서 이용되는 파라미터를 포함할 수 있다.
또한, 상기 메모리는 상기 보안 영역으로 이용되는 제1 메모리 및 상기 비보안 영역으로 이용되는 제2 메모리를 포함할 수 있다.
그리고, 상기 전자 장치에 포함된 센서를 통해 적어도 하나의 로우 데이터를 획득하는 단계를 더 포함하며, 상기 전처리하는 단계는 상기 제1 데이터에 기초하여 상기 획득된 로우 데이터를 필터링하고 상기 필터링된 로우 데이터를 상기 인공 지능 모델에 입력될 입력 데이터로 변환할 수 있다.
한편, 본 개시의 일 실시 예에 따르면, 전자 장치의 동작 방법을 실행하기 위한 프로그램이 저장된 비일시적 컴퓨터 판독가능 기록매체에 있어서, 상기 동작 방법은 상기 전자 장치에 포함된 메모리의 보안 영역에 저장된 제1 데이터에 기초하여 로우 데이터를 전처리하는 단계 및 인공 지능 모델(Artificial Intelligence Model)의 복수의 신경망 레이어 중 일부 레이어에서 이용되며 상기 보안 영역에 저장된 제2 데이터, 및 상기 복수의 신경망 레이어 중 나머지 레이어에서 이용되며 상기 메모리의 비보안 영역에 저장된 제3 데이터에 기초하여 상기 전처리된 로우 데이터가 상기 인공 지능 모델에 적용된 출력 데이터를 획득하는 단계를 포함한다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 전자 장치는 인공 지능 모델(Artificial Intelligence Model)의 동작에 필요한 일부 데이터를 보안 영역에 저장함에 따라 인공 지능 모델이 유출되는 것을 방지할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블럭도이다.
도 2는 본 개시의 일 실시 예에 따른 프로세서의 실행 모드를 도시한 도면이다.
도 3은 본 개시의 일 실시 예에 따른 보안 영역 및 비보안 영역에 저장되는 데이터를 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시 예에 따른 인공 지능 모델의 연산 과정을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 바이오 인증 예를 설명하기 위한 도면이다.
도 6은 본 개시의 다른 실시 예에 따른 오디오 분석 방법을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
이하에서, 첨부된 도면을 이용하여 본 개시의 다양한 실시 예들에 대하여 구체적으로 설명한다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블럭도이다.
도 1에 따르면, 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함한다.
여기서, 전자 장치(100)는 인공 지능 모델(Artificial Intelligence Model)을 저장하고, 저장된 인공 지능 모델을 통해 출력 데이터를 획득하는 장치일 수 있다. 예를 들어, 전자 장치(100)는 사용자 단말 장치, 디스플레이 장치, 셋톱 박스(set-top box), 태블릿 PC(tablet personal computer), 스마트 폰(smart phone), 전자책 리더기(e-book reader), 데스크탑 PC (desktop PC), 랩탑 PC(laptop PC), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어 등과 같은 다양한 형태의 디바이스로 구현될 수 있다. 다만, 이는 일 실시 예이며, 전자 장치(100)는 네비게이션(navigation) 장치, 자동차 인포테인먼트(infotainment) 장치, 각종 의료기기, 사물 인터넷 장치(internet of things) 등과 같은 장치일 수 있으며, 인공 지능 모델을 저장하고, 저장된 인공 지능 모델을 통해 출력 데이터를 획득하는 장치라면 어떠한 장치라도 무방하다.
메모리(110)는 전자 장치(100)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 예를 들어, 메모리(110)는 운영 체제(OS, Operating System) 및 운영 체제 상에서 실행되는 응용 프로그램이 저장되어 있을 수 있다.
메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SSD) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱) 등으로 구현될 수 있으며, 전자 장치(100)의 제조사 또는 사용자의 조작에 따라 운영 체제 및 응용 프로그램이 메모리(110)에 저장될 수 있다.
여기서, 운영 체제는 일반적으로 사용되는 범용 운영 체제를 의미하고, 운영 체제 상에서 실행되는 응용 프로그램은 범용 운영 체제의 지원에 의해 실행될 수 있는 일반적인 프로그램을 의미할 수 있다.
메모리(110)는 보안 영역(111) 및 비보안 영역(112)을 포함할 수 있다. 보안 영역(111)은 권한이 있는 경우에만 액세스가 가능한 영역이고, 비보안 영역(112)은 권한과 무관하게 액세스가 가능한 영역일 수 있다.
보안 영역(111) 및 비보안 영역(112)은 소프트웨어적으로 구현될 수 있다. 예를 들어, 프로세서(120)는 보안 운영 체제가 실행되는 동안에는 보안 영역(111) 및 비보안 영역(112)에 액세스할 수 있고, 범용 운영 체제가 실행되는 동안에는 비보안 영역(112)에 액세스할 수 있다.
또는, 보안 영역(111) 및 비보안 영역(112)은 하드웨어적으로 구분된 형태로 구현될 수도 있다. 예를 들어, 메모리(110)는 보안 영역으로 이용되는 제1 메모리(111) 및 비보안 영역으로 이용되는 제2 메모리(112)를 포함할 수도 있다. 여기서, 제1 메모리(111)는 트러스트 존(trust zone) 또는 TPM(trusted platform module)과 같은 장치로 보호되는 저장소 메커니즘이 이용될 수 있다.
이 경우, 제1 메모리(111)에 하드웨어적으로 연결된 유닛만이 제1 메모리(111)에 액세스할 수 있다. 제1 메모리(111)에 하드웨어적으로 연결된 유닛은 프로세서(120)에 포함된 제1 유닛일 수도 있고, 프로세서(120)와 별개의 제2 유닛일 수도 있다.
메모리(110)는 복수의 신경망 레이어를 통해 연산을 수행하는 인공 지능 모델과 관련된 정보를 저장할 수 있다. 특히, 메모리(110)는 보안 영역(111) 및 비보안 영역(112)에 인공 지능 모델과 관련된 정보를 분할 저장함에 따라 인공 지능 모델의 유출을 방지할 수 있다.
예를 들어, 로우 데이터(raw data)의 전처리에 이용되는 제1 데이터 및 복수의 신경망 레이어 중 일부 레이어에서 이용되는 제2 데이터는 메모리(110)의 보안 영역(111)에 저장되고, 복수의 신경망 레이어 중 나머지 레이어에서 이용되는 제3 데이터는 메모리(110)의 비보안 영역(112)에 저장될 수 있다. 여기서, 로우 데이터는 전처리 과정을 거친 후 인공 지능 모델에 입력될 수 있다.
프로세서(120)는 전자 장치(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(120)는 전자 장치(100)의 각 구성과 연결되어 전자 장치(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(120)는 메모리(110)와 연결되어 전자 장치(100)의 동작을 제어할 수 있다.
일 실시 예에 따라 프로세서(120)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(120)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
특히, 프로세서(120)는 "트러스트 존(Trust zone)" 유형의 보안 구조의 아키텍처를 갖는 형태로 구현될 수 있다. 이 경우, 트러스트 존 기술은 하나의 프로세서(120)를 노멀 월드(Normal World) 및 시큐어 월드(Secure World)의 2개의 가상 공간으로 분할하여 관리할 수 있다. 노멀 월드는 범용 운영 체제에 의해 구동되는 시스템 환경이고, 시큐어 월드는 보안 운영 체제에 의해 구동되는 시스템 환경일 수 있다. 즉, 프로세서(120)가 노멀 월드(Normal World)로 동작하는 경우, 보안 영역(111)에 접근할 수 없으나, 프로세서(120)가 시큐어 월드(Secure World)로 동작하는 경우, 보안 영역(111)에 접근할 수 있다. 이에 대한 구체적인 설명은 도면을 통해 후술한다.
프로세서(120)는 로우 데이터를 전처리하고 전처리된 데이터를 인공 지능 모델에 입력하여 출력 데이터를 획득할 수 있다. 예를 들어, 로우 데이터의 전처리에 이용되는 제1 데이터 및 복수의 신경망 레이어 중 일부 레이어에서 이용되는 제2 데이터가 보안 영역(111)에 저장되고, 복수의 신경망 레이어 중 나머지 레이어에서 이용되는 제3 데이터가 비보안 영역(112)에 저장된 경우, 프로세서(120)는 보안 영역(111) 및 비보안 영역(112)에 저장된 제1 내지 제3 데이터를 이용하여 출력 데이터를 획득할 수 있다. 여기서, 제1 데이터는 복수의 로우 데이터 중 인공 지능 모델에 입력될 로우 데이터의 필터링에 이용되는 데이터 또는 로우 데이터를 인공 지능 모델에 입력될 입력 데이터로 변환하기 위해 이용되는 데이터 중 적어도 하나를 포함할 수 있다.
좀더 구체적인 예를 들면, 제2 데이터는 복수의 신경망 레이어 중 마지막 레이어에서 이용되는 파라미터에 대한 정보를 포함하고, 제3 데이터는 복수의 신경망 레이어 중 마지막 레이어를 제외한 나머지 레이어에서 이용되는 파라미터에 대한 정보를 포함할 수 있다. 여기서, 파라미터는 복수의 신경망 레이어 각각에 포함된 엘리먼트(weight)일 수 있다.
프로세서(120)는 시큐어 월드로 동작하며 비보안 영역(112)에 저장된 로우 데이터를 독출하고, 제1 데이터에 기초하여 로우 데이터를 전처리할 수 있다.
그리고, 프로세서(120)는 노멀 월드로 동작하며 제3 데이터에 기초하여 전처리된 데이터에 대한 연산을 수행하고, 마지막 레이어의 이전 레이어에서 출력되는 피쳐 맵 정보를 획득할 수 있다.
그리고, 프로세서(120)는 시큐어 월드로 동작하며 제2 데이터에 기초하여 피쳐 맵 정보에 대한 연산을 수행하고, 마지막 레이어에서 출력되는 데이터를 출력 데이터로 획득할 수 있다.
즉, 인공 지능 모델을 구동하기 위한 데이터 중 일부를 메모리(110)의 보안 영역(111)에 저장하고, 프로세서(120)가 시큐어 월드로 동작하며 보안 영역(111)에 접근하여 인공 지능 모델과 관련된 연산을 수행할 수 있으며, 그에 따라 보안 영역(111)에 저장된 데이터의 보안이 강화될 수 있다.
이상에서는 설명의 편의를 위해, 제2 데이터가 복수의 신경망 레이어 중 마지막 레이어에서 이용되는 파라미터에 대한 정보를 포함하는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 제2 데이터는 복수의 신경망 레이어 각각에서 이용되는 파라미터 정보의 크기에 기초하여 결정된 적어도 하나의 레이어에서 이용되는 파라미터를 포함할 수도 있다. 또는, 제2 데이터는 복수의 신경망 레이어 중 마지막 레이어에서 이용되는 파라미터 중 일부에 대한 정보만을 포함할 수도 있다.
또한, 이상에서는 설명의 편의를 위해, 하나의 프로세서(120)가 노멀 월드 또는 시큐어 월드로 동작하는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 프로세서(120)는 노멀 월드로 동작하는 제1 프로세서 및 시큐어 월드로 동작하는 제2 프로세서를 포함할 수도 있다. 여기서, 제1 프로세서 및 제2 프로세서는 하드웨어적으로 별개의 구성일 수 있다.
한편, 전자 장치(100)는 센서를 더 포함하며, 프로세서(120)는 센서를 통해 적어도 하나의 로우 데이터가 획득되면, 제1 데이터에 기초하여 획득된 로우 데이터를 필터링하고 필터링된 로우 데이터를 인공 지능 모델에 입력될 입력 데이터로 변환할 수 있다.
예를 들어, 전자 장치(100)는 휘도 센서를 더 포함하며, 프로세서(120)는 센서를 통해 기설정된 시간 간격의 복수의 휘도 값을 획득할 수 있다. 여기서, 복수의 휘도 값은 로우 데이터이다.
그리고, 프로세서(120)는 제1 데이터에 기초하여 복수의 휘도 값 중 임계 휘도 값 이상의 값만을 필터링할 수 있다. 그리고, 프로세서(120)는 필터링된 휘도 값을 양자화하여 인공 지능 모델에 입력할 수 있다.
이상에서는 설명의 편의를 위하여 휘도 센서를 예로 들었으나, 이에 한정되는 것은 아니다. 예를 들어, 프로세서(120)는 적외선 센서, 터치 센서, 중력 센서, 가속도 센서, 자이로 센서 등으로부터 로우 데이터를 획득할 수도 있다. 또한, 프로세서(120)는 센서가 아닌 통신 인터페이스, 마이크, 카메라 등으로부터 획득된 데이터를 로우 데이터로 이용할 수도 있다.
여기서, 통신 인터페이스는 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 장치와 통신을 수행하는 구성이다. 통신 인터페이스는 와이파이 모듈, 블루투스 모듈, 적외선 통신 모듈 및 무선 통신 모듈 등을 포함한다. 여기서, 각 통신 모듈은 적어도 하나의 하드웨어 칩 형태로 구현될 수 있다.
프로세서(120)는 통신 인터페이스를 이용하여 각종 외부 장치와 통신을 수행할 수 있다. 여기서, 외부 장치는 외부 서버, 블루투스 이어폰 등을 포함할 수 있다.
와이파이 모듈, 블루투스 모듈은 각각 WiFi 방식, 블루투스 방식으로 통신을 수행한다. 와이파이 모듈이나 블루투스 모듈을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다.
적외선 통신 모듈은 시 광선과 밀리미터파 사이에 있는 적외선을 이용하여 근거리에 무선으로 데이터를 전송하는 적외선 통신(IrDA, infrared Data Association)기술에 따라 통신을 수행한다.
무선 통신 모듈은 상술한 통신 방식 이외에 지그비(zigbee), 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), LTE-A(LTE Advanced), 4G(4th Generation), 5G(5th Generation)등과 같은 다양한 무선 통신 규격에 따라 통신을 수행하는 적어도 하나의 통신 칩을 포함할 수 있다.
그 밖에 통신 인터페이스는 LAN(Local Area Network) 모듈, 이더넷 모듈, 또는 페어 케이블, 동축 케이블 또는 광섬유 케이블 등을 이용하여 통신을 수행하는 유선 통신 모듈 중 적어도 하나를 포함할 수 있다.
통신 인터페이스는 입출력 인터페이스를 더 포함할 수 있다. 입출력 인터페이스는 HDMI(High Definition Multimedia Interface), MHL (Mobile High-Definition Link), USB (Universal Serial Bus), DP(Display Port), 썬더볼트(Thunderbolt), VGA(Video Graphics Array)포트, RGB 포트, D-SUB(D-subminiature), DVI(Digital Visual Interface) 중 어느 하나의 인터페이스일 수 있다.
입출력 인터페이스는 오디오 및 비디오 신호 중 적어도 하나를 입출력 할 수 있다.
구현 예에 따라, 입출력 인터페이스는 오디오 신호만을 입출력하는 포트와 비디오 신호만을 입출력하는 포트를 별개의 포트로 포함하거나, 오디오 신호 및 비디오 신호를 모두 입출력하는 하나의 포트로 구현될 수 있다.
마이크는 사용자 음성이나 기타 소리를 입력받아 오디오 데이터로 변환하기 위한 구성이다. 마이크는 활성화 상태에서 사용자의 음성을 수신할 수 있다. 예를 들어, 마이크는 전자 장치(100)의 상측이나 전면 방향, 측면 방향 등에 일체화된 일체형으로 형성될 수 있다. 마이크는 아날로그 형태의 사용자 음성을 수집하는 마이크, 수집된 사용자 음성을 증폭하는 앰프 회로, 증폭된 사용자 음성을 샘플링하여 디지털 신호로 변환하는 A/D 변환회로, 변환된 디지털 신호로부터 노이즈 성분을 제거하는 필터 회로 등과 같은 다양한 구성을 포함할 수 있다.
카메라는 정지 영상 또는 동영상을 촬상하기 위한 구성이다. 카메라는 특정 시점에서의 정지 영상을 촬영할 수 있으나, 연속적으로 정지 영상을 촬영할 수도 있다.
한편, 전자 장치(100)는 사용자에게 출력 데이터를 제공하기 위한 구성을 더 포함할 수 있다. 예를 들어, 전자 장치(100)는 디스플레이 또는 스피커 중 적어도 하나를 더 포함하고, 출력 데이터를 디스플레이하거나 사운드로서 사용자에게 제공할 수 있다.
여기서, 디스플레이는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이는 터치 센서와 결합된 터치 스크린, 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display) 등으로 구현될 수 있다.
스피커는 입출력 인터페이스에서 처리된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지 등을 출력하는 구성 요소일 수 있다.
한편, 본 개시에 따른 인공 지능과 관련된 기능은 프로세서(120)와 메모리(110)를 통해 동작된다.
프로세서(120)는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공 지능 전용 프로세서일 수 있다.
하나 또는 복수의 프로세서는, 메모리에 저장된 기 정의된 동작 규칙 또는 인공 지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공 지능 전용 프로세서인 경우, 인공 지능 전용 프로세서는, 특정 인공 지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다. 기 정의된 동작 규칙 또는 인공 지능 모델은 학습을 통해 만들어진 것을 특징으로 한다.
여기서, 학습을 통해 만들어진다는 것은, 기본 인공 지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공 지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공 지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다.
인공 지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공 지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공 지능 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다.
인공 신경망은 심층 신경망(DNN:Deep Neural Network)를 포함할 수 있으며, 예를 들어, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 또는 심층 Q-네트워크 (Deep Q-Networks) 등이 있으나, 전술한 예에 한정되지 않는다.
이상과 같이 전자 장치(100)는 인공 지능 모델의 동작에 필요한 일부 데이터를 보안 영역(111)에 저장함에 따라 메모리 공격에 의한 인공 지능 모델이 유출되는 것을 방지할 수 있다. 특히, 인공 지능 모델에 포함된 대부분의 레이어가 비보안 영역(112)에 저장되어, 보안 영역에서 과도한 로드(load)가 발생하는 문제도 해결 가능하다. 또한, 인공 지능 모델에 입력되는 데이터를 전처리하기 위한 데이터도 보안 영역(111)에 저장되기 때문에, 전처리 과정에 대한 보안도 유지될 수 있다.
이하에서는 도 2 내지 도 5를 통해 전자 장치(100)의 동작을 좀더 구체적으로 설명한다. 도 2 내지 도 5에서는 설명의 편의를 위해 개별적인 실시 예에 대하여 설명한다. 다만, 도 2 내지 도 5의 개별적인 실시 예는 얼마든지 조합된 상태로 실시될 수도 있다.
도 2는 본 개시의 일 실시 예에 따른 프로세서(120)의 실행 모드를 도시한 도면이다.
본 개시의 일 실시 예에 따라 프로세서(120)는 제1 실행 모드 및 제2 실행 모드 중 하나로 선택적으로 동작할 수 있다. 여기서, 제1 실행 모드는 범용 운영 체제를 기반으로 하는 실행 모드이고, 제2 실행 모드는 보안 운영 체제를 기반으로 하는 실행 모드이다. 제1 실행 모드 및 제2 실행 모드는 각각 노멀 월드 및 시큐어 월드로 표현될 수 있으며, 노멀 월드는 일반적인 데이터 처리 아키텍처, 시큐어 월드는 보안성을 확보한 데이터 처리 아키텍처를 의미할 수 있다.
일 실시 예로, 프로세서(120)는 "트러스트 존 아키텍처(Trust zone Architecture)"가 사용될 수 있다. "트러스트 존 아키텍처(Trust zone Architecture)"는 두 개로 분할된 런타임-아키텍처를 포함하는 마이크로 프로세스를 공지하고 있다. 두 개의 런타임-아키텍처 중 하나인 비보안 런타임-아키텍처는 "노멀 존(Normal Zone)" 또는 "노멀 월드(Normal World)"로 지칭될 수 있다. 비보안 런타임-아키텍처는 범용 운영 체제를 기반으로 동작할 수 있다. 다른 하나는 보안 런타임-아키텍처이고, "트러스트 존(Trust zone)", "트러스티드 월드(Trusted World)" 또는 "시큐어 월드(Secure World)”로 지칭될 수 있다. 보안 런타임-아키텍처는 보안 운영 체제를 기반으로 동작할 수 있다.
여기서, 범용 운영 체제는 예를 들어, 안드로이드, 윈도우, 심비안 등과 같은 통상적이고, 일반적인 운영 체제일 수 있다. 보안 운영 체제는 예를 들어, MOBICORE, RedCastle 등과 같이 기존의 운영 체제에 보안 기능이 통합된 보안 커널(security kernel)을 삽입한 운영 체제일 수 있다. 트러스트 존에 따르면, 상술한 비보안 런타임-아키텍처 및 보안 런타임-아키텍처는 각각 가상의 제1 실행 모드 및 제2 실행 모드로 정의될 수 있다.
본 개시의 일 실시 예에 따른 프로세서(120)는 범용 운영 체제 또는 보안 운영 체제 중 어느 하나가 디폴트로 설정이 되어 있을 수 있다. 일 예로, 범용 운영 체제가 디폴트로 설정되어 있으면, 프로세서(120)는 범용 운영 체제를 기반으로 하는 제1 실행 모드에서 동작하고 기설정된 이벤트가 발생하면, 프로세서(120)는 제2 실행 모드로 전환할 수 있다. 이 경우, 제2 실행 모드에서는 보안 운영 체제가 실행될 수 있다. 여기서, 기설정된 이벤트는 사용자의 모드 선택 명령, 스위칭 코드 수신 여부, 모드 전환 명령어 발생 여부 등이 될 수 있다.
일 예로, 기설정된 이벤트가 스위칭 코드 수신 여부이면, 프로세서(120)는 운영 체제의 커널로부터 모드 전환을 위한 스위칭 코드가 수신되면 제1 실행 모드에서 제2 실행 모드로 전환할 수 있다. 여기서, 스위칭 코드는 사용자 레벨이 아닌 운영 체제의 커널 레벨에서 발생되므로 악의적인 해킹 또는 비정상정인 액세스 등에 의해 스위칭 코드가 발생되는 위험을 줄일 수 있다.
여기서, 스위칭 코드는 운영 체제의 커널에서 실행되는 SMC 명령어일 수 있다. SMC 명령어는 가상 모니터 모듈(Virtual Monitor Module)로 전송되고, 가상 모니터 모듈은 제1 실행 모드를 제2 실행 모드로 전환할 수 있다. 실행 모드가 제2 실행 모드일 때, SMC 명령어가 수신되면, 가상 모니터 모듈이 제2 실행 모드를 제1 실행 모드로 전환할 수도 있다.
프로세서(120)는 Secure Configuration Register(SCR)를 포함할 수 있으며, 현재 실행 모드에 대한 정보는 SCR에 NS-bit로서 저장될 수 있다. 가령, 제1 실행 모드는 NS-bit가 1로서 저장되고, 제2 실행 모드는 NS-bit가 0으로서 저장될 수 있다. 그리고, 가상 모니터 모듈은 시큐어 월드에서 동작하며, NS-bit의 값을 변경하여 실행 모드를 전환할 수 있다.
한편, SMC 명령어를 사용하는 경우 외에도 프로세서(120)는 IRQ(Interrupt Request) 또는 FIQ(Fast Interrupt Request)를 이용하여 현재 실행되는 모드를 가상 모니터 모드로 변경할 수도 있다. 일반적으로 IRQ는 제1 실행 모드의 인터럽트로 사용되며, FIQ는 제2 실행 모드의 인터럽트로 사용될 수 있다.
다른 실시 예로, 실행 모드 선택을 위한 사용자 명령이 수신되면, 프로세서(120)는 사용자 명령에 대응되는 실행 모드로 전환할 수도 있다. 예를 들어, 범용 운영 체제를 기반으로 동작하는 제1 실행 모드에서 제2 실행 모드로 전환하기 위한 사용자 명령이 수신되면, 프로세서(120)는 제2 실행 모드로 전환할 수 있다.
또 다른 실시 예로, 프로세서(120)가 제1 실행 모드에서 범용 운영 체제가 실행되고 있는 경우, 전자 장치(100)를 종료한 후 재부팅하여 보안 운영 체제를 실행하고, 프로세서(120)는 보안 운영 체제를 기반으로 하는 제2 실행 모드로 동작할 수도 있다.
가상 모니터 모듈은 실행 모드가 전환되는 경우, 현재 실행되는 실행 모드의 컨텍스트를 저장하고, 새로운 실행 모드의 컨텍스트를 복원할 수 있다. 예를 들어, 노멀 월드에서 시큐어 월드로 변경되는 경우, 노멀 월드의 실행 환경이 모니터 모드에 저장될 수 있다. 그리고, 시큐어 월드에서 다시 노멀 월드로 변경되는 경우, 이전에 저장되었던 노멀 월드의 환경에서 프로그램이 실행될 수 있다.
한편, 상술한 실시 예에서, 제1 실행 모드 및 제2 실행 모드는 각각의 실행 모드에 대응되는 운영 체제를 실행하는 것으로 이해될 수도 있으나, 프로세서(120)는 범용 운영 체제 및 범용 운영 체제 상에서 동작하는 응용 프로그램을 실행하는 도중에, 보안이 요구되는 데이터를 생성한 경우, 해당 데이터를 제2 실행 모드 및 보안 운영 체제로 전달할 수도 있다.
예를 들어, 프로세서(120)가 범용 운영 체제에서 동작하는 응용 프로그램을 실행하기 위해 메모리(110)의 특정 주소에 액세스하고, 해당 주소에 대응되는 데이터가 보안 운영 체제를 기반으로 하는 제2 실행 모드인 경우, 프로세서(120)는 제1 실행 모드에서 생성된 데이터를 제2 실행 모드로 전달하고, 보안 운영 체제에서 동작할 수 있다.
또는, 프로세서(120)는 각 동작의 수행 후에 모드를 전환하라는 명령어에 따라 모드를 변경할 수도 있다. 예를 들어, 인공 지능 모델을 실행하는 모듈은 전처리가 완료된 후 모드를 전환하는 명령어 및 복수의 신경망 레이어의 일부에 대한 연산이 수행된 후 모드를 전환하는 명령어를 포함할 수 있다. 프로세서(120)는 각 명령어에 따라 모드를 변경하며, 모드 변경 전의 연산 결과를 변경된 모드로 전달할 수 있다.
제2 실행 모드는 보안성을 강화하기 위하여 제1 실행 모드와 별개로 네트워크 드라이버 모듈, TCP/IP 모듈 등과 같은 각종 소프트웨어를 포함할 수 있다. 또한, 제2 실행 모드는 제1 실행 모드와 독립된 하드웨어로 구현될 수도 있다. 예를 들어, 제1 실행 모드는 제2 실행 모드와 서로 다른 SoC(System on Chip) 또는 서로 다른 프로세서로 구현될 수도 있다. 다만 이에 한정되는 것은 아니며, 하나의 프로세서를 논리적, 가상적으로 구분한 두 개의 영역 각각에서 구현될 수도 있음은 물론이다.
도 2에서는 프로세서(120)의 모드에 대한 일반적인 동작을 설명하였다. 이하에서는 인공 지능 모델의 보안 강화를 위한 프로세서(120)의 동작을 좀더 구체적인 예를 통해 설명한다. 설명에 앞서, 먼저 도 3에서는 보안 영역(111) 및 비보안 영역(112)에 저장되는 데이터를 설명한다. 또한, 제1 실행 모드 및 제2 실행 모드를 각각 노멀 월드 및 시큐어 월드로서 설명한다.
도 3은 본 개시의 일 실시 예에 따른 보안 영역(111) 및 비보안 영역(112)에 저장되는 데이터를 설명하기 위한 도면이다. 도 3에서는 설명의 편의를 위해, 인공 지능 모델에 포함된 복수의 신경망 레이어의 도시는 생략하였고, 각 레이어에 의해 처리되는 데이터를 도시하였다. 즉, 입력 데이터가 인공 지능 모델에 포함된 복수의 신경망 레이어를 통해 연산되며, 도 3에는 복수의 신경망 레이어 각각의 출력을 도시하였다.
먼저, 인공 지능 모델에는 전처리된 로우 데이터가 입력될 수 있다. 이때, 도 3의 Raw data processing, Feature extraction과 같은 로우 데이터를 전처리하기 위한 데이터(310)는 제1 데이터로서 보안 영역(111)에 저장될 수 있다.
여기서, 제1 데이터는 복수의 로우 데이터 중 인공 지능 모델에 입력될 로우 데이터의 필터링에 이용되는 데이터 또는 로우 데이터를 인공 지능 모델에 입력될 입력 데이터로 변환하기 위해 이용되는 데이터 중 적어도 하나를 포함할 수 있다. 예를 들어, 프로세서(120)는 복수의 이미지 데이터 중 기설정된 해상도 이상의 이미지만을 필터링하고, 필터링된 이미지를 주파수 성분을 나타내는 데이터로 변환하며, 변환된 데이터를 인공 지능 모델에 입력할 수 있다.
다만, 이는 일 실시 예에 불과하며, 전처리 방법은 얼마든지 다양할 수 있다. 예를 들어, 프로세서(120)는 이미지의 해상도를 변경하거나, 오디오에서 노이즈를 제거하는 방법으로 로우 데이터를 전처리할 수도 있으며, 전처리 방법은 인공 지능 모델에 따라 다를 수 있다.
한편, 인공 지능 모델에 포함된 복수의 신경망 레이어 중 일부 레이어에서 이용되는 제2 데이터 역시 보안 영역(111)에 저장될 수 있다. 예를 들어, 도 3의 복수의 신경망 레이어 중 마지막 레이어에서 이용되는 파라미터에 대한 정보(320)가 보안 영역(111)에 저장될 수 있다. 여기서, 복수의 신경망 레이어 중 마지막 레이어는 Fully Connected Layer일 수 있다.
일반적으로 복수의 신경망 레이어 각각의 출력은 연산이 진행될수록 크기가 작아질 수 있으며, 그에 따라 신경망 레이어의 크기도 작아질 수 있다. 보안 영역(111)의 용량에도 한계가 있는 이상, 복수의 신경망 레이어 전체를 저장하는 것보다는 복수의 신경망 레이어 중 데이터의 크기가 작은 신경망 레이어를 저장하는 것이 효율적일 수 있다.
즉, 보안 영역(111)에 저장되는 제2 데이터는 복수의 레이어 각각에서 이용되는 파라미터 정보의 크기에 기초하여 결정된 적어도 하나의 레이어에서 이용되는 파라미터를 포함할 수 있다.
다만, 이는 일 실시 예에 불과하며, 보안 영역(111)의 용량이 허용하는 한, 얼마든지 다른 신경망 레이어가 저장될 수도 있다. 예를 들어, 보안 영역(111)에 저장될 제2 데이터는 복수의 신경망 레이어 중 중간 레이어에서 이용되는 파라미터에 대한 정보 및 복수의 신경망 레이어 중 마지막 레이어에서 이용되는 파라미터에 대한 정보(220)를 포함할 수도 있다.
비보안 영역(112)에는 복수의 신경망 레이어 중 제2 데이터를 제외한 나머지 데이터가 제3 데이터로서 저장될 수 있다. 제3 데이터는 Convolution Layer 및 Fully Connected Layer 등과 같은 다양한 형태의 복수의 신경망 레이어를 포함하나, 마지막 레이어만을 포함하지 않는다.
한편, 도 3에서는 로우 데이터를 전처리하기 위한 데이터(310) 및 복수의 신경망 레이어 중 마지막 레이어에서 이용되는 파라미터에 대한 정보(320)가 보안 영역(111)에 저장되는 것으로 설명하였으나, 이에 한정되는 것은 아니다.
예를 들어, 로우 데이터를 전처리하기 위한 데이터(310)만이 보안 영역(111)에 저장될 수도 있고, 복수의 신경망 레이어 중 마지막 레이어에서 이용되는 파라미터에 대한 정보(320)만이 보안 영역(111)에 저장될 수도 있다.
도 4는 본 개시의 일 실시 예에 따른 인공 지능 모델의 연산 과정을 설명하기 위한 도면이다. 도 4에서는 설명의 편의를 위해, 도 3의 로우 데이터를 전처리하기 위한 데이터(310) 및 복수의 신경망 레이어 중 마지막 레이어(Last FC layer)에서 이용되는 파라미터에 대한 정보(320)가 각각 제1 데이터(400-1) 및 제2 데이터(400-2)로서 보안 영역(111)에 저장되고, 복수의 신경망 레이어 중 마지막 레이어를 제외한 나머지 레이어에서 이용되는 파라미터에 대한 정보가 제3 데이터(ML Engine(except Last FC layer), 400-3)로서 비보안 영역(112)에 저장된 것을 가정하였다.
먼저, 프로세서(120)는 인공 지능 모델을 실행하는 모듈의 실행에 따라 노멀 월드로 동작하며, 비보안 영역(Untrusted Zone, 112)에 저장된 로우 데이터를 독출하고, 모드를 변경하며 독출된 로우 데이터를 시큐어 월드로 전달할 수 있다(S410). 여기서, 인공 지능 모델을 실행하는 모듈은 로우 데이터가 독출되면, 독출된 로우 데이터를 시큐어 월드로 전달하라는 명령어를 포함할 수 있다.
그리고, 프로세서(120)는 시큐어 월드로 동작하며 제1 데이터(400-1)에 기초하여 로우 데이터를 전처리하고, 모드를 변경하며 전처리된 데이터를 노멀 월드로 전달할 수 있다(S420). 여기서, 전처리 동작은 Data processing, Feature extraction과 같은 동작일 수 있다. Data processing은 복수의 로우 데이터 중 인공 지능 모델에 입력될 로우 데이터를 필터링하는 동작이고, Feature extraction은 로우 데이터를 인공 지능 모델에 입력될 입력 데이터로 변환하는 동작일 수 있다. 그리고, 인공 지능 모델을 실행하는 모듈은 로우 데이터가 전처리되면, 전처리된 로우 데이터를 노멀 월드로 전달하라는 명령어를 포함할 수 있다.
프로세서(120)는 노멀 월드로 동작하며 제3 데이터(400-3)에 기초하여 전처리된 데이터에 대한 연산을 수행하고, 모드를 변경하며 마지막 레이어의 이전 레이어에서 출력되는 피쳐 맵 정보를 시큐어 월드로 전달할 수 있다(S430). 여기서, 인공 지능 모델을 실행하는 모듈은 제3 데이터(400-3)에 기초한 연산이 완료되면, 연산 결과인 피쳐 맵 정보를 시큐어 월드로 전달하라는 명령어를 포함할 수 있다.
그리고, 프로세서(120)는 시큐어 월드로 동작하며 제2 데이터(400-2)에 기초하여 피쳐 맵 정보에 대한 연산을 수행하고, 마지막 레이어에서 출력되는 데이터를 출력 데이터로 획득할 수 있다. 프로세서(120)는 모드를 변경하며 출력 데이터를 노멀 영역으로 제공할 수 있다(S440).
이상에서 각 모드가 변경되는 동작은 인공 지능 모델을 실행하는 모듈에 포함된 모드 변경 명령어에 의한 동작일 수 있다.
다만, 이에 한정되는 것은 아니며, 보안 영역(111) 및 비보안 영역(112)에 모드를 변경하는 시점에 대한 데이터가 더 저장된 상태일 수도 있다. 예를 들어, 보안 영역(111)에는 로우 데이터의 전처리가 완료되면, 모드를 변경하는 명령어가 저장될 수 있다. 또한, 보안 영역(111)에는 제2 데이터(400-2)에 기초하여 피쳐 맵 정보에 대한 연산이 완료되면, 모드를 변경하는 명령어가 저장될 수 있다. 그리고, 비보안 영역(112)에는 모드를 변경하는 명령어가 저장될 수 있다. 또한, 보안 영역(111) 및 비보안 영역(112)에는 모드가 변경됨에 따라 변경 전까지의 연산 데이터를 다른 모드로 제공하라는 명령어가 더 저장될 수 있다.
한편, 이상에서는 로우 데이터의 전처리에 이용되는 제1 데이터(400-1) 및 복수의 신경망 레이어 중 마지막 레이어에서 이용되는 제2 데이터(400-2)가 보안 영역(111)에 저장되고, 복수의 신경망 레이어 중 마지막 레이어를 제외한 나머지 레이어에서 이용되는 제3 데이터(400-3)는 비보안 영역(112)에 저장된 것으로 설명하였으나, 얼마든지 다른 데이터가 보안 영역(111)에 저장될 수도 있으며, 이 경우 프로세서(120)의 연산 과정도 얼마든지 달라질 수 있다. 즉, 프로세서(120)는 보안 영역에 저장된 데이터에 기초하여 연산을 수행할 수 있다.
도 5는 본 개시의 일 실시 예에 따른 바이오 인증 예를 설명하기 위한 도면이다. 여기서, 바이오 인증은 지문 정보, 홍채 정보, 음성 정보 등과 같이 사용자의 생체 정보를 통해 인증을 수행하는 것을 의미하며, 도 5의 바이오 인증은 인공 지능 모델을 통해 수행될 수 있다. 그리고, 보안 영역(111)에는 생체 정보를 전처리하기 위한 데이터 및 바이오 인증을 위한 인공 지능 모델의 복수의 신경망 레이어 중 마지막 레이어에서 이용되는 파라미터에 대한 정보가 각각 제1 데이터 및 제2 데이터로서 저장되고, 비보안 영역(112)에는 복수의 신경망 레이어 중 마지막 레이어를 제외한 나머지 레이어에서 이용되는 파라미터에 대한 정보가 제3 데이터로서 저장된 상태를 가정하였다. 또한, 설명의 편의를 위해 이하에서는 사용자 얼굴 이미지를 생체 정보로서 바이오 인증을 수행하는 것으로 설명한다.
먼저, 전자 장치(100)는 센서(Sensor)를 통해 바이오 정보를 센싱할 수 있다. 예를 들어, 전자 장치(100)는 카메라를 구비하고, 카메라를 통해 촬영된 사용자 얼굴 이미지를 바이오 정보로 이용할 수 있다.
노멀 월드(NWD)로 동작하는 상태인 경우, 프로세서(120)는 IME를 통해 인증이 시도되고 있다는 정보를 수신할 수 있다. 이 경우, 바이오 정보가 프로세서(120)에 제공되지는 않으며, 이를 통해 보안이 강화될 수 있다. 그리고, 프로세서(120)는 인증이 시도되고 있다는 정보가 수신되면, 모드를 변경할 수 있다. 예를 들어, 카메라에 의해 사용자 얼굴 이미지가 획득되더라도, 노멀 월드(NWD)로 동작하는 상태라면 사용자 얼굴 이미지는 프로세서(120)로 제공되지 않고, 사용자 얼굴 이미지가 획득되었다는 통지만이 제공될 수도 있다.
시큐어 월드(SWD)로 동작하는 상태이거나, 인증이 시도되고 있다는 정보에 따라 시큐어 월드로 모드가 변경된 경우, 프로세서(120)는 Secure IME(input method editor)를 통해 바이오 정보를 수신할 수 있다. 예를 들어, 카메라에 의해 사용자 얼굴 이미지가 획득되고 시큐어 월드로 동작 중이라면, 사용자 얼굴 이미지는 프로세서(120)로 제공될 수 있다. 또는, 카메라에 의해 사용자 얼굴 이미지가 획득되고 노멀 월드로 동작 중이더라도, 모드가 시큐어 월드로 변경되면, 사용자 얼굴 이미지는 프로세서(120)로 제공될 수 있다.
프로세서(120)는 Partial Auth. Agent를 통해 바이오 정보에 대한 Data Processing 및 Feature Extraction 등과 같은 전처리를 수행하고, 모드를 변경하여 전처리된 바이오 정보를 노멀 월드로 전달할 수 있다. 여기서, Data Processing 및 Feature Extraction 등은 제1 데이터에 포함된 정보이다.
예를 들어, 프로세서(120)는 사용자 얼굴 이미지의 크기를 기설정된 크기로 변경하고, 사용자 얼굴 이미지로부터 주요 부위에 대한 특징을 추출하는 등과 같은 전처리를 수행할 수 있다. 이러한 전처리 동작은 인공 지능 모델의 입력 데이터의 형태에 기초할 수 있다.
프로세서(120)는 Bio Auth. Agent를 통해 전처리된 바이오 정보를 인공 지능 모델에 포함된 Convolution Layer 및 Fully Connected Layer로 처리함으로써 피쳐 맵 정보를 획득하고, 모드를 변경하여 피쳐 맵 정보를 시큐어 월드로 제공할 수 있다. 여기서, 인공 지능 모델에 포함된 Convolution Layer 및 Fully Connected Layer 등은 제3 데이터에 포함된 정보이다.
프로세서(120)는 Partial Auth. Agent를 통해 피쳐 맵 정보를 Last FC Layer로 처리함으로써 출력 데이터를 획득하고, 모드를 변경하여 출력 데이터를 노멀 월드로 제공할 수 있다. 예를 들어, 프로세서(120)는 전처리된 사용자 얼굴 이미지에 인공 지능 모델을 적용하여 사용자가 기등록된 사용자인지 여부를 식별하고, 식별 결과를 노멀 월드로 제공할 수 있다.
프로세서(120)는 Bio Auth. Agent를 통해 출력 데이터를 IME로 제공할 수 있다. 그리고, 프로세서(120)는 출력 데이터에 기초하여 인공 지능 모델에 포함된 파라미터를 업데이트하도록 Model Updater를 제어할 수 있다.
이상과 같은 과정을 통해, 전자 장치(100)는 바이오 정보의 인증 여부를 식별할 수 있다.
도 6은 본 개시의 다른 실시 예에 따른 오디오 분석 방법을 설명하기 위한 도면이다. 도 6의 오디오 분석 방법은 인공 지능 모델을 통해 수행될 수 있다. 그리고, 보안 영역(111)에는 사용자 음성과 같은 오디오 신호를 전처리하기 위한 데이터 및 오디오 분석을 위한 인공 지능 모델의 복수의 신경망 레이어 중 마지막 레이어에서 이용되는 파라미터에 대한 정보가 각각 제1 데이터 및 제2 데이터로서 저장되고, 비보안 영역(112)에는 복수의 신경망 레이어 중 마지막 레이어를 제외한 나머지 레이어에서 이용되는 파라미터에 대한 정보가 제3 데이터로서 저장된 상태를 가정하였다.
프로세서(120)는 노멀 월드로 동작하며 비보안 영역(untrusted memory & disk, 112)에 저장된 사용자 음성과 같은 로우 데이터를 독출할 수 있다(S610).
프로세서(120)는 로우 데이터가 독출되면, 로우 데이터를 전처리하기 위해 시큐어 월드로 모드를 변경하고, 로우 데이터를 시큐어 월드로 전달할 수 있다.
프로세서(120)는 시큐어 월드로 동작하며 보안 영역(trusted(protected) memory & disk, 111)에 저장된 데이터에 기초하여 로우 데이터를 전처리할 수 있다. 예를 들어, 프로세서(120)는 로우 데이터에서 임계 진폭 이하의 사운드를 제거하고, 노멀라이제이션(normalization)을 수행하는 등의 전처리를 수행할 수 있다.
그리고, 프로세서(120)는 전처리된 로우 데이터로부터 특징(feature)을 추출할 수 있다(S630). 예를 들어, 프로세서(120)는 로우 데이터로부터 CQT(Constant-Q Transform), STFT(Short-Time Fourier Transform) 등과 같은 주파수 특징을 추출할 수 있다.
프로세서(120)는 로우 데이터로부터 특징이 추출되면, 노멀 월드로 모드를 변경하고, 추출된 특징을 노멀 월드로 전달할 수 있다(S635).
프로세서(120)는 노멀 월드로 동작하며 비보안 영역(112)에 저장된 인공 지능 모델을 독출할 수 있다(S640). 예를 들어, 프로세서(120)는 노멀 월드로 동작하며 비보안 영역(112)에 저장된 Void(Voice Liveness Detection) LCNN(Lookup-based Convolutional Neural Network) 모델을 독출할 수 있다. 다만, 여기서 인공 지능 모델은 마지막 레이어가 제외된 인공 지능 모델일 수 있다.
그리고, 프로세서(120)는 노멀 월드로 동작하는 동안, 추출된 특징을 인공 지능 모델에 적용할 수 있다(S650). 인공 지능 모델은 마지막 레이어가 제외된 상태이므로, 적용 결과로서 피쳐 맵 정보가 출력될 수 있다.
프로세서(120)는 노멀 월드로 동작하는 동안 피쳐 맵 정보가 출력되면, 시큐어 월드로 모드를 변경하고, 피쳐 맵 정보를 시큐어 월드로 전달할 수 있다(S655).
프로세서(120)는 시큐어 월드로 동작하며, 보안 영역(111)으로부터 인공 지능 모델의 마지막 레이어를 독출하고, 피쳐 맵 정보를 마지막 레이어에 적용하여 binary classification을 수행할 수 있다(S660). 도 6에서는 인공 지능 모델이 binary classification을 수행하는 것으로 도시하였으나, 얼마든지 다른 인공 지능 모델이 이용될 수도 있다.
프로세서(120)는 시큐어 월드로 동작하는 동안 binary classification 결과가 획득되면, 노멀 모드로 모드를 변경하고, binary classification 결과를 노멀 모드로 전달할 수 있다(S665).
프로세서(120)는 노멀 월드로 동작하며, binary classification 결과를 사용자에게 제공하거나, binary classification 결과에 기초하여 동작을 수행할 수 있다(S670).
이상과 같이 인공 지능 모델을 적용하기 위한 데이터 중 일부를 보안 영역(111)에 저장함에 따라 인공 지능 모델의 보안을 향상시킬 수 있다.
도 7은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
먼저, 전자 장치에 포함된 메모리의 보안 영역에 저장된 제1 데이터에 기초하여 로우 데이터를 전처리한다(S710).
그리고, 인공 지능 모델(Artificial Intelligence Model)의 복수의 신경망 레이어 중 일부 레이어에서 이용되며 보안 영역에 저장된 제2 데이터, 및 복수의 신경망 레이어 중 나머지 레이어에서 이용되며 메모리의 비보안 영역에 저장된 제3 데이터에 기초하여 전처리된 로우 데이터가 인공 지능 모델에 적용된 출력 데이터를 획득한다(S720).
여기서, 제1 데이터는 복수의 로우 데이터 중 인공 지능 모델에 입력될 로우 데이터의 필터링에 이용되는 데이터 또는 로우 데이터를 인공 지능 모델에 입력될 입력 데이터로 변환하기 위해 이용되는 데이터 중 적어도 하나를 포함할 수 있다.
그리고, 제2 데이터는 복수의 신경망 레이어 중 마지막 레이어에서 이용되는 파라미터에 대한 정보를 포함할 수 있다.
또한, 전처리하는 단계(S710)는 전자 장치가 시큐어 월드(Secure World)로 동작하며 비보안 영역에 저장된 로우 데이터를 보안 영역으로 독출하고, 제1 데이터에 기초하여 로우 데이터를 전처리할 수 있다.
여기서, 제3 데이터는 복수의 신경망 레이어 중 마지막 레이어를 제외한 나머지 레이어에서 이용되는 파라미터에 대한 정보를 포함하며, 획득하는 단계(S62)는 전자 장치가 노멀 월드(Normal World)로 동작하며 제3 데이터에 기초하여 전처리된 데이터에 대한 연산을 수행하고, 마지막 레이어의 이전 레이어에서 출력되는 피쳐 맵 정보를 획득할 수 있다.
그리고, 획득하는 단계(S720)는 전자 장치가 노멀 월드로 동작하며 제2 데이터에 기초하여 피쳐 맵 정보에 대한 연산을 수행하고, 마지막 레이어에서 출력되는 데이터를 출력 데이터로 획득할 수 있다.
한편, 제2 데이터는 복수의 레이어 각각에서 이용되는 파라미터 정보의 크기에 기초하여 결정된 적어도 하나의 레이어에서 이용되는 파라미터를 포함할 수 있다.
그리고, 메모리는 보안 영역으로 이용되는 제1 메모리 및 비보안 영역으로 이용되는 제2 메모리를 포함할 수 있다.
한편, 전자 장치에 포함된 센서를 통해 적어도 하나의 로우 데이터를 획득하는 단계를 더 포함하며, 전처리하는 단계(S710)는 제1 데이터에 기초하여 획득된 로우 데이터를 필터링하고 필터링된 로우 데이터를 인공 지능 모델에 입력될 입력 데이터로 변환할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 전자 장치는 인공 지능 모델(Artificial Intelligence Model)의 동작에 필요한 일부 데이터를 보안 영역에 저장함에 따라 인공 지능 모델이 유출되는 것을 방지할 수 있다. 또한, 일부 데이터만이 보안 영역에 저장되기 때문에 보안 영역의 용량이 작더라도 본 개시와 같은 방법으로 인공 지능 모델이 유출되는 것을 방지할 수 있다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 다양한 실시 예들에 따른 기기의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 기기에서의 처리 동작을 특정 기기가 수행하도록 한다. 비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 전자 장치 110 : 메모리
111 : 보안 영역 112: 비보안 영역
120 : 프로세서

Claims (19)

  1. 전자 장치에 있어서,
    복수의 신경망 레이어를 통해 연산을 수행하는 인공 지능 모델(Artificial Intelligence Model)과 관련된 정보를 저장하는 메모리; 및
    로우 데이터를 전처리하고 상기 전처리된 데이터를 상기 인공 지능 모델에 입력하여 출력 데이터를 획득하는 프로세서;를 포함하고,
    상기 로우 데이터의 전처리에 이용되는 제1 데이터 및 상기 복수의 신경망 레이어 중 일부 레이어에서 이용되는 제2 데이터는 상기 메모리의 보안 영역에 저장되고,
    상기 복수의 신경망 레이어 중 나머지 레이어에서 이용되는 제3 데이터는 상기 메모리의 비보안 영역에 저장되는, 전자 장치.
  2. 제1항에 있어서,
    상기 제1 데이터는,
    복수의 로우 데이터 중 상기 인공 지능 모델에 입력될 로우 데이터의 필터링에 이용되는 데이터 또는 로우 데이터를 상기 인공 지능 모델에 입력될 입력 데이터로 변환하기 위해 이용되는 데이터 중 적어도 하나를 포함하는, 전자 장치.
  3. 제1항에 있어서,
    상기 제2 데이터는,
    상기 복수의 신경망 레이어 중 마지막 레이어에서 이용되는 파라미터에 대한 정보를 포함하는, 전자 장치.
  4. 제3항에 있어서,
    상기 프로세서는,
    시큐어 월드(Secure World)로 동작하며 상기 비보안 영역에 저장된 상기 로우 데이터를 독출하고, 상기 제1 데이터에 기초하여 상기 로우 데이터를 전처리하는, 전자 장치.
  5. 제4항에 있어서,
    상기 제3 데이터는,
    상기 복수의 신경망 레이어 중 상기 마지막 레이어를 제외한 나머지 레이어에서 이용되는 파라미터에 대한 정보를 포함하며,
    상기 프로세서는,
    노멀 월드(Normal World)로 동작하며 상기 제3 데이터에 기초하여 상기 전처리된 데이터에 대한 연산을 수행하고, 상기 마지막 레이어의 이전 레이어에서 출력되는 피쳐 맵 정보를 획득하는, 전자 장치.
  6. 제5항에 있어서,
    상기 프로세서는,
    상기 시큐어 월드로 동작하며 상기 제2 데이터에 기초하여 상기 피쳐 맵 정보에 대한 연산을 수행하고, 상기 마지막 레이어에서 출력되는 데이터를 상기 출력 데이터로 획득하는, 전자 장치.
  7. 제1항에 있어서,
    상기 제2 데이터는,
    상기 복수의 레이어 각각에서 이용되는 파라미터 정보의 크기에 기초하여 결정된 적어도 하나의 레이어에서 이용되는 파라미터를 포함하는, 전자 장치.
  8. 제1항에 있어서,
    상기 메모리는,
    상기 보안 영역으로 이용되는 제1 메모리; 및
    상기 비보안 영역으로 이용되는 제2 메모리;를 포함하는, 전자 장치.
  9. 제1항에 있어서,
    센서;를 더 포함하며,
    상기 프로세서는,
    상기 센서를 통해 적어도 하나의 로우 데이터가 획득되면, 상기 제1 데이터에 기초하여 상기 획득된 로우 데이터를 필터링하고 상기 필터링된 로우 데이터를 상기 인공 지능 모델에 입력될 입력 데이터로 변환하는, 전자 장치.
  10. 전자 장치의 제어 방법에 있어서,
    상기 전자 장치에 포함된 메모리의 보안 영역에 저장된 제1 데이터에 기초하여 로우 데이터를 전처리하는 단계; 및
    인공 지능 모델(Artificial Intelligence Model)의 복수의 신경망 레이어 중 일부 레이어에서 이용되며 상기 보안 영역에 저장된 제2 데이터, 및 상기 복수의 신경망 레이어 중 나머지 레이어에서 이용되며 상기 메모리의 비보안 영역에 저장된 제3 데이터에 기초하여 상기 전처리된 로우 데이터가 상기 인공 지능 모델에 적용된 출력 데이터를 획득하는 단계;를 포함하는, 제어 방법.
  11. 제10항에 있어서,
    상기 제1 데이터는,
    복수의 로우 데이터 중 상기 인공 지능 모델에 입력될 로우 데이터의 필터링에 이용되는 데이터 또는 로우 데이터를 상기 인공 지능 모델에 입력될 입력 데이터로 변환하기 위해 이용되는 데이터 중 적어도 하나를 포함하는, 제어 방법.
  12. 제10항에 있어서,
    상기 제2 데이터는,
    상기 복수의 신경망 레이어 중 마지막 레이어에서 이용되는 파라미터에 대한 정보를 포함하는, 제어 방법.
  13. 제12항에 있어서,
    상기 전처리하는 단계는,
    상기 전자 장치가 시큐어 월드(Secure World)로 동작하며 상기 비보안 영역에 저장된 상기 로우 데이터를 독출하고, 상기 제1 데이터에 기초하여 상기 로우 데이터를 전처리하는, 제어 방법.
  14. 제13항에 있어서,
    상기 제3 데이터는,
    상기 복수의 신경망 레이어 중 상기 마지막 레이어를 제외한 나머지 레이어에서 이용되는 파라미터에 대한 정보를 포함하며,
    상기 획득하는 단계는,
    상기 전자 장치가 노멀 월드(Normal World)로 동작하며 상기 제3 데이터에 기초하여 상기 전처리된 데이터에 대한 연산을 수행하고, 상기 마지막 레이어의 이전 레이어에서 출력되는 피쳐 맵 정보를 획득하는, 제어 방법.
  15. 제14항에 있어서,
    상기 획득하는 단계는,
    상기 전자 장치가 상기 노멀 월드로 동작하며 상기 제2 데이터에 기초하여 상기 피쳐 맵 정보에 대한 연산을 수행하고, 상기 마지막 레이어에서 출력되는 데이터를 상기 출력 데이터로 획득하는, 제어 방법.
  16. 제10항에 있어서,
    상기 제2 데이터는,
    상기 복수의 레이어 각각에서 이용되는 파라미터 정보의 크기에 기초하여 결정된 적어도 하나의 레이어에서 이용되는 파라미터를 포함하는, 제어 방법.
  17. 제10항에 있어서,
    상기 메모리는,
    상기 보안 영역으로 이용되는 제1 메모리; 및
    상기 비보안 영역으로 이용되는 제2 메모리;를 포함하는, 제어 방법.
  18. 제10항에 있어서,
    상기 전자 장치에 포함된 센서를 통해 적어도 하나의 로우 데이터를 획득하는 단계;를 더 포함하며,
    상기 전처리하는 단계는,
    상기 제1 데이터에 기초하여 상기 획득된 로우 데이터를 필터링하고 상기 필터링된 로우 데이터를 상기 인공 지능 모델에 입력될 입력 데이터로 변환하는, 제어 방법.
  19. 전자 장치의 동작 방법을 실행하기 위한 프로그램이 저장된 비일시적 컴퓨터 판독가능 기록매체에 있어서,
    상기 동작 방법은,
    상기 전자 장치에 포함된 메모리의 보안 영역에 저장된 제1 데이터에 기초하여 로우 데이터를 전처리하는 단계; 및
    인공 지능 모델(Artificial Intelligence Model)의 복수의 신경망 레이어 중 일부 레이어에서 이용되며 상기 보안 영역에 저장된 제2 데이터, 및 상기 복수의 신경망 레이어 중 나머지 레이어에서 이용되며 상기 메모리의 비보안 영역에 저장된 제3 데이터에 기초하여 상기 전처리된 로우 데이터가 상기 인공 지능 모델에 적용된 출력 데이터를 획득하는 단계;를 포함하는, 기록 매체.
KR1020200022062A 2020-02-24 2020-02-24 전자 장치 및 그 제어 방법 KR20210107288A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200022062A KR20210107288A (ko) 2020-02-24 2020-02-24 전자 장치 및 그 제어 방법
EP21760057.6A EP4099231A4 (en) 2020-02-24 2021-01-13 ELECTRONIC DEVICE AND CONTROL METHOD THEREOF
PCT/KR2021/000465 WO2021172749A1 (ko) 2020-02-24 2021-01-13 전자 장치 및 그 제어 방법
US17/894,586 US20220405430A1 (en) 2020-02-24 2022-08-24 Electronic device and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200022062A KR20210107288A (ko) 2020-02-24 2020-02-24 전자 장치 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20210107288A true KR20210107288A (ko) 2021-09-01

Family

ID=77491308

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200022062A KR20210107288A (ko) 2020-02-24 2020-02-24 전자 장치 및 그 제어 방법

Country Status (4)

Country Link
US (1) US20220405430A1 (ko)
EP (1) EP4099231A4 (ko)
KR (1) KR20210107288A (ko)
WO (1) WO2021172749A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023085866A1 (ko) * 2021-11-12 2023-05-19 삼성전자 주식회사 디스플레이 장치 및 그의 동작 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116897537A (zh) * 2022-02-08 2023-10-17 辉达公司 使用神经网络的图像生成

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018008605A1 (ja) * 2016-07-04 2018-01-11 株式会社Seltech 人工知能を有するシステム
US10242443B2 (en) * 2016-11-23 2019-03-26 General Electric Company Deep learning medical systems and methods for medical procedures
KR102452953B1 (ko) * 2017-10-30 2022-10-11 삼성전자주식회사 뉴럴 네트워크의 컨볼루션 연산을 수행하는 방법 및 장치
US11526745B2 (en) * 2018-02-08 2022-12-13 Intel Corporation Methods and apparatus for federated training of a neural network using trusted edge devices
GB2574891B (en) * 2018-06-22 2021-05-12 Advanced Risc Mach Ltd Data processing
US11443182B2 (en) * 2018-06-25 2022-09-13 International Business Machines Corporation Privacy enhancing deep learning cloud service using a trusted execution environment
CN110148935B (zh) * 2019-05-10 2021-12-28 东北电力大学 基于长短期记忆神经网络的电网静态安全裕度评估方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023085866A1 (ko) * 2021-11-12 2023-05-19 삼성전자 주식회사 디스플레이 장치 및 그의 동작 방법

Also Published As

Publication number Publication date
EP4099231A1 (en) 2022-12-07
US20220405430A1 (en) 2022-12-22
EP4099231A4 (en) 2023-08-02
WO2021172749A1 (ko) 2021-09-02

Similar Documents

Publication Publication Date Title
US20220405430A1 (en) Electronic device and control method thereof
US20230325538A1 (en) Method and apparatus for processing biometric information in electronic device
EP3692461B1 (en) Removing personally identifiable data before transmission from a device
US10565418B2 (en) Fingerprint reader on a portion of a device for changing the configuration of the device
EP3312759B1 (en) Secure element (se), a method of operating the se, and an electronic device including the se
KR102572446B1 (ko) 도어의 개폐 상태를 감지하기 위한 센싱 장치 및 그 센싱 장치를 제어하는 방법
CN111742315A (zh) 安全红-黑气隙便携式计算机
US10664578B2 (en) Security information inputting/outputting method and electronic device adapted to the method
US20190058596A1 (en) Electronic device for including signature in electronic document and method of controlling the same
KR20190074782A (ko) 생체 정보와 관련된 이미지의 품질에 따라, 이미지를 지정된 방식으로 처리하여 인증하는 방법 및 이를 수행하는 전자 장치
JP7164561B2 (ja) プロセッサチップ及びその制御方法
US10621431B2 (en) Camera that uses light from plural light sources disposed on a device
US20200266992A1 (en) Electronic device and control method thereof
US9477272B2 (en) Prevention of removal of solid state drive from computer housing with data being accessible thereon
US20220414198A1 (en) Systems and methods for secure face authentication
KR20200055433A (ko) 전자 장치 및 이의 제어 방법
US11798252B2 (en) Electronic device and control method therefor
US11090564B1 (en) Using sensor statistics for player authentication
US20210097160A1 (en) Sound-based user liveness determination
TW202113639A (zh) 裝置安全性之增強
US11374761B2 (en) Selective device connection
KR102539947B1 (ko) 사용자를 인식하는 전자 장치 및 그 전자 장치를 제어하는 방법
WO2023216088A1 (en) Privacy control of images based on content
KR20180044173A (ko) 시큐어 엘리먼트, 시큐어 엘리먼트의 동작 방법 및 시큐어 엘리먼트를 포함하는 전자 장치
KR20230122376A (ko) 전자 장치 및 그 제어 방법