KR20220136009A - 입력 데이터를 분류하는 방법과 장치 및 입력 데이터의 도용 여부를 분류하는 방법 - Google Patents

입력 데이터를 분류하는 방법과 장치 및 입력 데이터의 도용 여부를 분류하는 방법 Download PDF

Info

Publication number
KR20220136009A
KR20220136009A KR1020210066728A KR20210066728A KR20220136009A KR 20220136009 A KR20220136009 A KR 20220136009A KR 1020210066728 A KR1020210066728 A KR 1020210066728A KR 20210066728 A KR20210066728 A KR 20210066728A KR 20220136009 A KR20220136009 A KR 20220136009A
Authority
KR
South Korea
Prior art keywords
embedding vector
embedding
input
adaptive
vector
Prior art date
Application number
KR1020210066728A
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 US17/569,914 priority Critical patent/US20220318351A1/en
Publication of KR20220136009A publication Critical patent/KR20220136009A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1382Detecting the live character of the finger, i.e. distinguishing from a fake or cadaver finger
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1365Matching; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/40Spoof detection, e.g. liveness detection

Abstract

일 실시예에 따른 입력 데이터를 분류하는 방법 및 장치는 사용자의 생체 정보를 포함하는 입력 데이터로부터 생체 정보의 특징을 포함하는 입력 임베딩 벡터를 추출하고, 등록 데이터들에 기초한 복수의 등록 임베딩 벡터들의 조합에 기초하여 입력 임베딩 벡터에 적응적인 임베딩 벡터를 결정하며, 입력 임베딩 벡터와 적응적인 임베딩 벡터 간의 유사도에 기초하여 입력 데이터를 분류한다.

Description

입력 데이터를 분류하는 방법과 장치 및 입력 데이터의 도용 여부를 분류하는 방법{METHOD AND APPARATUS OF CLASSIFYING INPUT DATA AND METHOD OF CLASSIFYING WHETHER INPUT DATA HAS BEEN SPOOFED}
아래의 실시예들은 입력 데이터를 분류하는 방법과 장치 및 입력 데이터의 도용 여부를 분류하는 방법에 관한 것이다.
스마트폰 및 다양한 모바일/웨어러블 기기의 발전으로 생체 정보의 보안 인증 기술에 대한 중요성이 증대되고 있다. 생체 정보를 통한 인증 방식의 편리성과 접근성에 의해 다양한 분야에서 생체 인증이 도입되고 있다. 생체 인증 시에 입력 데이터의 특징 벡터와 등록 데이터베이스에 저장된 등록 특징 벡터 간의 유사도에 의해 생체 인증을 수행하거나 또는 입력 데이터의 도용 여부를 결정하는 것이 일반적이다. 이때, 등록 데이터베이스에 저장된 등록 특징 벡터들의 개수 및/또는 등록 특징 벡터의 높은 차원 수로 인해 발생하는 성김(Sparsity)으로 인해 유사도 산출 시에 오류가 발생할 수 있다. 하지만, 등록 임베딩 벡터의 차원 수를 줄이는 것은 일반화(Generalization)의 용량(Capacity)을 감소시킬 수 있고, 등록 데이터베이스 내의 등록 특징 벡터의 개수를 늘리는 것은 물리적 한계가 존재할 수 있다.
일 실시예에 따르면, 입력 데이터를 분류하는 방법은 사용자의 생체 정보를 포함하는 입력 데이터로부터 상기 생체 정보의 특징을 포함하는 입력 임베딩 벡터(embedding vector)를 추출하는 단계; 등록 데이터들에 기초한 복수의 등록 임베딩 벡터들의 조합에 기초하여, 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 결정하는 단계; 및 상기 입력 임베딩 벡터와 상기 적응적인 임베딩 벡터 간의 유사도에 기초하여 상기 입력 데이터를 분류하는 단계를 포함한다.
상기 적응적인 임베딩 벡터를 결정하는 단계는 상기 복수의 등록 임베딩 벡터들 중 상기 입력 임베딩 벡터에 적응적인 등록 임베딩 벡터들을 조합하여 조합 임베딩 벡터를 결정하는 단계; 및 상기 조합 임베딩 벡터와 상기 입력 임베딩 벡터 간의 손실 함수(loss function)에 기초하여 상기 조합 임베딩 벡터를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계를 포함할 수 있다.
상기 적응적인 임베딩 벡터를 생성하는 단계는 상기 손실 함수가 제1 값에 수렴하도록 반복적으로(Iteratively) 상기 조합 임베딩 벡터를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계를 포함할 수 있다.
상기 적응적인 임베딩 벡터를 생성하는 단계는 선형 보간(linear interpolation)에 의해 상기 복수의 등록 임베딩 벡터들 중 상기 입력 임베딩 벡터에 적응적인 등록 임베딩 벡터들을 조합함으로써 상기 조합 임베딩 벡터를 결정하는 단계; 상기 조합 임베딩 벡터에 상기 선형 보간을 위한 가중치(weight)를 적용하여 상기 조합 임베딩 벡터를 갱신하는 단계; 및 상기 갱신된 조합 임베딩 벡터와 상기 입력 임베딩 벡터 간의 오차(error)에 기초하여 상기 가중치를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계를 포함할 수 있다.
상기 입력 데이터를 분류하는 방법은 상기 가중치가 갱신되는 정도를 나타내는 하이퍼 파라미터(hyper-parameter)를 수신하는 단계를 더 포함하고, 상기 적응적인 임베딩 벡터를 생성하는 단계는 상기 오차에 상기 하이퍼 파라미터를 적용하여 상기 가중치를 갱신하는 단계; 및 상기 갱신된 가중치를 적용한 상기 갱신된 조합 임베딩 벡터와 상기 입력 임베딩 벡터 간의 손실 함수에 기초하여 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계를 포함할 수 있다.
상기 적응적인 임베딩 벡터를 생성하는 단계는 상기 갱신된 가중치를 적용한 상기 갱신된 조합 임베딩 벡터와 상기 입력 임베딩 벡터 간의 상기 손실 함수가 제1 값에 수렴하도록 반복적으로 상기 가중치를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계를 포함할 수 있다.
상기 입력 데이터를 분류하는 방법은 파워 이터레이션 알고리즘(power iteration algorithm)을 이용하여 상기 가중치가 갱신되는 정도를 나타내는 하이퍼 파라미터를 도출하는 단계를 더 포함하고, 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계는 상기 오차에 상기 하이퍼 파라미터를 적용하여 상기 가중치를 반복적으로 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계를 포함할 수 있다.
상기 하이퍼 파라미터를 도출하는 단계는 상기 복수의 등록 임베딩 벡터들에 대응하는 상관 행렬(correlation matrix)를 산출하는 단계; 및 상기 상관 행렬을 기초로, 상기 하이퍼 파라미터를 도출하는 단계를 포함할 수 있다.
상기 상관 행렬을 기초로, 상기 하이퍼 파라미터를 도출하는 단계는 상기 파워 이터레이션 알고리즘을 사용하여 상기 상관 행렬에 대응하는 고유 값(eigen value)을 결정하는 단계; 및 상기 고유 값에 기초하여 상기 하이퍼 파라미터를 도출하는 단계를 포함할 수 있다.
상기 고유 값을 결정하는 단계는 상기 파워 이터레이션 알고리즘을 사용하여 상기 상관 행렬에 대응하는 고유 벡터(eigen vector)를 결정하는 단계; 상기 고유 벡터가 수렴할 때까지 반복적으로 상기 고유 벡터를 갱신하는 단계; 및 상기 갱신된 고유 벡터에 대응하는 상기 고유 값을 산출하는 단계를 포함할 수 있다.
상기 가중치를 반복적으로 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계는 상기 가중치를 반복적으로 갱신할 때마다 상기 하이퍼 파라미터를 상이하게 스케줄링(Scheduling)하는 단계; 및 상기 상이하게 스케줄링된 하이퍼 파라미터에 의해 상기 가중치를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계를 포함할 수 있다.
상기 입력 데이터를 분류하는 단계는 상기 유사도에 기초하여, 상기 입력 데이터를 인증하는 단계; 및 상기 유사도에 기초하여, 상기 입력 데이터의 도용 여부를 결정하는 단계 중 어느 하나를 포함할 수 있다.
일 실시예에 따르면, 입력 데이터의 도용 여부를 분류하는 방법은 사용자의 생체 정보를 포함하는 입력 영상으로부터 상기 생체 정보의 특징을 포함하는 입력 임베딩 벡터를 추출하는 단계; 선형 보간에 의해 등록 영상들에 기초한 클러스터 내에 포함된 복수의 등록 임베딩 벡터들 중 상기 입력 임베딩 벡터에 적응적인 등록 임베딩 벡터들을 조합하여 조합 임베딩 벡터를 결정하는 단계; 상기 조합 임베딩 벡터에 상기 선형 보간을 위한 가중치를 적용하여 갱신된 조합 임베딩 벡터와 상기 입력 임베딩 벡터 간의 오차를 산출하는 단계; 상기 복수의 등록 임베딩 벡터들에 대응하는 상관 행렬을 기초로, 상기 가중치가 갱신되는 정도를 나타내는 하이퍼 파라미터를 도출하는 단계; 상기 오차에 상기 하이퍼 파라미터를 적용하여 상기 가중치를 반복적으로 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계; 및 상기 입력 임베딩 벡터와 상기 적응적인 임베딩 벡터 간의 유사도에 기초하여 상기 입력 데이터의 도용 여부를 분류하는 단계를 포함한다.
상기 가중치를 반복적으로 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계는 상기 가중치를 반복적으로 갱신하는 시점 별로 상기 하이퍼 파라미터를 상이하게 스케줄링하는 단계; 및 상기 상이하게 스케줄링된 하이퍼 파라미터에 의해 상기 가중치를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계를 포함할 수 있다.
일 실시예에 따르면, 입력 데이터를 분류하는 장치는 사용자의 생체 정보를 포함하는 입력 데이터를 캡쳐하는 센서; 등록 데이터들에 기초한 복수의 등록 임베딩 벡터들을 포함하는 클러스터를 저장하는 메모리; 및 상기 입력 데이터로부터 상기 생체 정보의 특징을 포함하는 입력 임베딩 벡터를 추출하고, 상기 복수의 등록 임베딩 벡터들의 조합에 기초하여 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 결정하고, 상기 입력 임베딩 벡터와 상기 적응적인 임베딩 벡터 간의 유사도에 기초하여 상기 입력 데이터를 분류하는 프로세서를 포함한다.
상기 프로세서는 상기 복수의 등록 임베딩 벡터들 중 상기 입력 임베딩 벡터에 적응적인 등록 임베딩 벡터들을 조합하여 조합 임베딩 벡터를 결정하고, 상기 조합 임베딩 벡터와 상기 입력 임베딩 벡터 간의 손실 함수에 기초하여 상기 조합 임베딩 벡터를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성할 수 있다.
상기 프로세서는 상기 손실 함수가 제1 값에 수렴하도록 반복적으로 상기 조합 임베딩 벡터를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성할 수 있다.
상기 프로세서는 선형 보간에 의해 상기 복수의 등록 임베딩 벡터들 중 상기 입력 임베딩 벡터에 적응적인 등록 임베딩 벡터들을 조합함으로써 상기 조합 임베딩 벡터를 결정하고, 상기 조합 임베딩 벡터에 상기 선형 보간을 위한 가중치를 적용하여 상기 조합 임베딩 벡터를 갱신하며, 상기 갱신된 조합 임베딩 벡터와 상기 입력 임베딩 벡터 간의 오차에 기초하여 상기 가중치를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성할 수 있다.
상기 프로세서는 상기 복수의 등록 임베딩 벡터들에 대응하는 상관 행렬을 기초로, 상기 가중치가 갱신되는 정도를 나타내는 하이퍼 파라미터를 도출하고, 상기 오차에 상기 하이퍼 파라미터를 적용하여 상기 가중치를 반복적으로 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성할 수 있다.
도 1은 일 실시예에 따라 입력 데이터를 분류하는 환경을 도시한 도면.
도 2는 일 실시예에 따라 등록을 시도하는 임베딩 벡터들로부터 조합된 임베딩 벡터와 인증을 시도하는 입력 임베딩 벡터 간의 관계를 예시적으로 표현한 3차원 모식도.
도 3은 일 실시예에 따라 입력 데이터를 분류하는 방법을 개념적으로 설명하기 위한 도면.
도 4는 일 실시예에 따라 생성된 조합 임베딩 벡터를 도시한 도면.
도 5는 일 실시예에 따라 입력 데이터를 분류하는 방법을 나타낸 흐름도.
도 6 내지 도 7은 실시예들에 따라 입력 데이터를 분류하는 방법을 나타낸 흐름도.
도 8은 도 7의 실시예에 따라 조합 임베딩 벡터를 갱신하는 과정을 도시한 도면.
도 9는 다른 실시예에 따라 입력 데이터를 분류하는 방법을 나타낸 흐름도.
도 10은 도 9의 실시예에 따라 조합 임베딩 벡터를 갱신하는 과정을 도시한 도면.
도 11은 다른 실시예에 따라 입력 데이터는 분류하는 방법을 나타낸 흐름도.
도 12는 일 실시예에 따라 입력 데이터의 도용 여부를 분류하는 과정을 도시한 도면.
도 13은 일 실시예에 따라 입력 데이터의 도용 여부를 분류하는 방법을 나타낸 흐름도.
도 14는 일 실시예에 따라 입력 데이터를 분류하는 장치의 블록도.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 일 실시예에 따른 생체 정보의 도용 여부를 검출하는 환경을 도시한 도면이다. 도 1을 참조하면, 일 실시예에 따라 사용자의 생체 정보(예를 들어, 지문)를 센싱하는 센서(110)를 포함하는 분류 장치(100) 및 등록 지문 영상들(121, 122, 123)을 포함하는 등록 지문 데이터베이스(120)가 도시된다. 이하에서는 설명의 편의를 위하여 사용자의 생체 정보가 지문인 경우를 일 예로 들어 설명하지만, 반드시 이에 한정되는 것은 아니다. 생체 정보는 지문 이외에도 홍채, 손금, 및 얼굴 등 다양한 정보를 포함할 수 있다.
분류 장치(100)는 센서(110)를 통하여 사용자의 지문이 나타난 입력 지문 영상(115)을 획득할 수 있다. 센서(110)는 예를 들어, 사용자의 지문을 캡쳐하는 초음파 지문 센서, 광학 지문 센서, 정전 방식의 지문 센서, 또는 이미지 센서일 수 있으며, 반드시 이에 한정되지는 않는다.
지문 인식을 위해 지문 등록이 수행될 수 있다. 등록 지문 영상들(121, 122, 123)은 지문 등록 과정을 거쳐 등록 지문 데이터베이스(120)에 미리 저장될 수 있다. 개인 정보 보호를 위하여, 등록 지문 데이터베이스(120)는 등록 지문 영상들(121, 122, 123)을 그대로 저장하는 대신, 등록 지문 영상들(121, 122, 123)로부터 추출된 특징들을 저장할 수 있다. 등록 지문 데이터베이스(120)는 분류 장치(100)에 포함된 메모리(미도시)에 저장되거나, 분류 장치(100)와 통신할 수 있는 서버 또는 로컬 캐시(local cache) 등과 같은 외부 장치(미도시)에 저장될 수 있다.
인증을 위한 입력 지문 영상(115)이 수신되면, 분류 장치(100)는 입력 지문 영상(115)에 나타난 지문(이하, '입력 지문'이라고 함)과 등록 지문 영상들(121 내지 123)에 나타난 등록 지문들 간의 유사도에 의해 입력 지문 영상(115)의 사용자를 인증할 수도 있고, 또는 입력 지문 영상(115)의 도용(spoofing) 여부를 검출할 수 있다. 여기서, '도용'은 실제(live) 생체 정보가 아닌 가짜(fake) 생체 정보를 의미하는 것으로서, 예를 들어, 생체 정보의 복제, 위조 및 변조를 모두 포함하는 의미로 이해될 수 있다.
아래에서 상세히 설명하겠지만, 일 실시예에 따른 분류 장치(100)는 미리 구비된 불특정 다수의 실제 지문 특징들, 미리 구비된 불특정 다수의 위조 지문 특징들 및/또는 기기 사용자의 등록 지문 특징들을 이용하여 입력 지문에 대한 인증 또는 위조 여부 등을 결정할 수 있다.
도 2는 일 실시예에 따라 등록을 시도하는 임베딩 벡터들로부터 조합된 임베딩 벡터와 인증을 시도하는 입력 임베딩 벡터 간의 관계를 예시적으로 표현한 3차원 모식도이다. 도 2를 참조하면, 입력 임베딩 벡터(210), 임베딩 클러스터 내의 등록 임베딩 벡터들(230), 및 등록 임베딩 벡터들(230)의 조합에 의해 결정된 입력 임베딩 벡터(210)에 대해 적응적인(Adaptive) 임베딩 벡터(250)가 도시된다.
예를 들어, 등록 데이터들에 기초한 임베딩 클러스터(Embedding Cluster)에 포함된 복수의 임베딩 벡터들(230)이 성기게(sparse) 배치되었다고 하자. 이 경우, 임베딩 클러스터 내에서 입력 임베딩 벡터(210)와 가장 가까운 어느 하나의 등록 임베딩 벡터와의 유사도, 또는 임베딩 클러스터 내에 포함된 등록 임베딩 벡터들(230)의 평균값 등과 같은 통계적인 대표 임베딩 벡터와의 유사도는 실제 유사도와 다른 결과를 나타낼 수 있다.
입력 임베딩 벡터(210)와 가장 가까운 어느 하나의 등록 임베딩 벡터와의 유사도는 임베딩 공간 상에서 성긴 등록 임베딩 벡터의 분포로 인해 사각이 존재할 수 있다. 또한, 통계적인 대표 임베딩 벡터와의 유사도는 임베딩 클러스터 내의 개별 등록 임베딩 벡터들의 의미를 희석시킬 수 있다.
일 실시예에서는 복수의 등록 임베딩 벡터들(230)의 조합을 통해 입력 임베딩 벡터(210)에 대해 적응적인 임베딩 벡터(250)를 구성함으로써 임베딩 공간 상에서의 사각을 해소하는 한편, 개별 임베딩 벡터들의 의미가 희석되지 않도록 할 수 있다. 여기서, '적응적인 임베딩 벡터'(250)는 임베딩 클러스터 내 등록 임베딩 벡터들(230)의 조합들 중 입력 임베딩 벡터(210)와 가장 유사한 임베딩 벡터에 해당할 수 있다. 이때, 등록 임베딩 벡터들(230)의 조합들 중 입력 임베딩 벡터(210)와 유사한 임베딩 벡터를 조합 임베딩 벡터라고 부를 수 있다. 조합 임베딩 벡터는 적응적인 임베딩 벡터(250)의 후보(들)에 해당할 수 있다. 예를 들어, 조합 임베딩 벡터들 중 최종적으로 결정된 조합 임베딩 벡터가 적응적인 임베딩 벡터(250)가 될 수 있다. 조합 임베딩 벡터가 하나인 경우, 해당 조합 임베딩 벡터가 적응적인 임베딩 벡터(250)가 될 수 있다.
일 실시예에서는 임베딩 클러스터 내에 포함된 등록 임베딩 벡터들(230)의 조합 및/또는 보간을 이용하여 임베딩 클러스터 내에의 물리적인 성김(Sparsity)을 해결할 수 있다. 이때, 등록 임베딩 벡터들(230)의 조합 방식에 따라 많은 실시예가 존재할 수 있다. 예를 들어, 등록 임베딩 벡터들(230)의 임의의 조합 f에 의한 조합 임베딩 벡터를
Figure pat00001
로 나타내면, 구하고자 하는 최적의 조합
Figure pat00002
는 아래의 수학식 1과 같이 표현할 수 있다.
Figure pat00003
여기서,
Figure pat00004
는 입력 임베딩 벡터(210)를 나타내고,
Figure pat00005
는 임베딩 클러스터를 구성하는 등록 임베딩 벡터들(230)을 나타낼 수 있다. 조합 임베딩 벡터
Figure pat00006
이고,
Figure pat00007
는 임베딩 벡터
Figure pat00008
Figure pat00009
간의 유사도를 나타낼 수 있다.
Figure pat00010
는 유사도에 관련된 손실 함수(loss function)를 나타낼 수 있다.
일 실시예에서는 수학식 1에서와 같이, 입력 임베딩 벡터(
Figure pat00011
)(210)와 임베딩 클러스터에서 조합된 조합 임베딩 벡터(
Figure pat00012
) 간의 손실 함수 L 과 조합 함수 f에 대한 정의를 통해 적절하게 조합된 적응적인 임베딩 벡터(250)를 찾아냄으로써 입력 임베딩 벡터(210)와 임베딩 클러스터 내에 포함된 등록 임베딩 벡터들(230) 간의 적절한 유사도를 구할 수 있다.
도 3은 일 실시예에 따라 입력 데이터를 분류하는 방법을 개념적으로 설명하기 위한 도면이다. 도 3을 참조하면, 일 실시예에 따른 분류 장치가 입력 임베딩 벡터(310)와 임베딩 클러스터(320) 내에 포함된 등록 임베딩 벡터들 간의 유사도를 측정하는 과정이 도시된다.
분류 장치는 예를 들어, 심층 신경망(Deep Neural Network; DNN)을 이용하여 입력 데이터에 대한 입력 임베딩 벡터(310)를 추출할 수 있다. 분류 장치는 입력 임베딩 벡터(310)를 유사도 측정 및 조합 방식을 최적화하는 최적화 알고리즘(330)의 인자(Argument)로 사용할 수 있다. 이때, 최적화 알고리즘(330)은 입력 임베딩 벡터에 적응적인 임베딩 벡터를 조합한다는 점에서 '적응적 알고리즘'이라고도 불릴 수 있다.
분류 장치는 임베딩 클러스터(320) 내에 포함된 등록 데이터들을 심층 신경망에 의해 등록 임베딩 벡터들로 변환될 수 있다. 등록 임베딩 벡터들 또한 최적화 알고리즘 및 조합 방식의 인자로 사용될 수 있다.
분류 장치는 입력 임베딩 벡터(310)와 임베딩 클러스터(320) 내의 등록 임베딩 벡터들에 대해 최적화 알고리즘(330)을 적용하고, 최적화 알고리즘(330)의 적용 결과에 따라 최적의 조합 방식을 도출(340)할 수 있다. 분류 장치는 입력 임베딩 벡터에 대해 적응적으로 클러스터링된 임베딩 벡터의 조합을 통해 유사도 계산 상 오류를 덜 일으킬 수 있는 조합 임베딩 벡터를 생성할 수 있다. 분류 장치가 입력 임베딩 벡터(310)와 임베딩 클러스터(320) 내의 등록 임베딩 벡터들에 대해 최적화 알고리즘(330)을 적용하는 다양한 실시예들은 아래의 도 6, 도 7, 도 9 및 도 11을 참조하여 보다 구체적으로 설명한다.
분류 장치는 도출된 최적의 조합 방식에 따라 조합된 조합 임베딩 벡터와 입력 임베딩 벡터(310) 간의 유사도를 측정(350)할 수 있다. 분류 장치는 측정된 유사도 그 자체를 이용하거나, 또는 측정된 유사도를 유사도 스코어(360) 형태로 변환하여 이용할 수 있다.
일 실시예에서 심층 신경망은 선 형태의 에지들(edges)로 연결된 많은 수의 인공 뉴런들을 포함할 수 있다. 인공 뉴런은 노드(node)라고 지칭될 수 있다. 인공 뉴런들은 연결 가중치(connection weight)를 가지는 에지들을 통해 상호 연결될 수 있다. 연결 가중치는 에지들이 갖는 특정한 값으로, 시냅스 가중치(synapse weight) 또는 연결 강도라고 지칭될 수 있다. 심층 신경망은 예를 들어, 입력 레이어(input layer), 히든 레이어(hidden layer), 및 출력 레이어(output layer)를 포함할 수 있다. 입력 레이어, 히든 레이어, 및 출력 레이어는 복수 개의 노드들을 포함할 수 있다. 입력 레이어에 포함된 노드는 입력 노드(input node)라고 지칭되고, 히든 레이어에 포함된 노드는 히든 노드(hidden node)라고 지칭되며, 출력 레이어에 포함된 노드는 출력 노드(output node)라고 지칭될 수 있다.
입력 레이어는 트레이닝 또는 인식을 수행하기 위한 입력을 수신하여 히든 레이어에 전달할 수 있다. 출력 레이어는 히든 레이어로부터 수신한 신호에 기초하여 심층 신경망의 출력을 생성할 수 있다. 히든 레이어는 입력 레이어와 출력 레이어 사이에 위치하고, 입력 레이어를 통해 전달된 트레이닝 데이터의 트레이닝 입력을 예측하기 쉬운 값으로 변화시킬 수 있다. 입력 레이어에 포함된 입력 노드들과 히든 레이어에 포함된 히든 노드들은 연결 가중치를 가지는 연결선들을 통해 서로 연결될 수 있다. 히든 레이어에 포함된 히든 노드들과 출력 레이어에 포함된 출력 노드들은 연결 가중치를 가지는 연결선들을 통해 서로 연결될 수 있다.
분류 장치는 이전 히든 레이어에 포함된 이전 히든 노드들의 출력들을 연결 가중치를 가지는 연결선들을 통해 해당 히든 레이어에 입력할 수 있다. 분류 장치는 이전 히든 노드들의 출력들에 연결 가중치가 적용된 값들 및 활성화 함수(activation function)에 기초하여, 히든 레이어에 포함된 히든 노드들의 출력을 생성할 수 있다. 일 예시에 따르면, 활성화 함수의 결과가 현재 히든 노드의 임계 값을 초과하는 경우, 다음 히든 노드로 출력이 발화될 수 있다. 이 경우, 현재 히든 노드는 입력 벡터들을 통하여 특정 임계 활성화 강도에 도달하기 전에는 다음 히든 노드로 신호를 발화하지 않고, 비활성화 상태를 유지할 수 있다.
일 실시예에 따른 분류 장치는 지도 학습(supervised learning)을 통해 심층 신경망을 트레이닝시킬 수 있다. 분류 장치는 소프트웨어 모듈, 하드웨어 모듈, 또는 이들의 조합으로 구현될 수 있다. 지도 학습은 트레이닝 데이터의 트레이닝 입력 및 그에 대응하는 트레이닝 출력을 함께 심층 신경망(에 입력하고, 트레이닝 데이터의 트레이닝 출력에 대응하는 출력 데이터가 출력되도록 연결선들의 연결 가중치를 업데이트하는 기법이다. 트레이닝 데이터는 트레이닝 입력 및 트레이닝 출력의 쌍을 포함하는 데이터일 수 있다.
도 4는 일 실시예에 따라 생성된 조합 임베딩 벡터를 도시한 도면이다. 일 실시예에서는 클러스터링된 임베딩 벡터들을 선형 보간(Linear Interpolation)한 결과 역시 임베딩 클러스터에 포함된 임베딩 벡터들의 성질과 유사하다는 가정 하에, 조합 방식을 선형 보간으로 가정할 수 있다. 이때 클러스터링된 임베딩 벡터들로부터 조합된 조합 임베딩 벡터는 클러스터 내 임베딩 벡터들 중 입력 임베딩 벡터와 가장 유사한 임베딩 벡터를 생성하는 것을 의미할 수 있다. 일 실시예에 따른 조합 임베딩 벡터는 예를 들어, 도 4의 도면(430) 또는 도면(470)과 같이 생성될 수 있다.
예를 들어, 임베딩 클러스터 내에 포함된 임베딩 벡터들이 성기게 배치된 경우, 도 4의 도면(410)과 같이 입력 임베딩 벡터가 임베딩 클러스터와 분포 상 근접하더라도 임베딩 클러스터 내에 포함된 임베딩 벡터들과의 적절한 유사도를 산출할 수 없는 경우가 존재할 수 있다. 이 경우, 분류 장치는 해당 임베딩 공간 상에서 선형 보간을 활용하여 도면(430)과 같이 입력 임베딩 벡터와 가장 유사하게 조합된 임베딩 벡터('조합 임베딩 벡터')를 새로이 생성함으로써 임베딩 클러스터와의 의도된 유사도를 산출할 수 있다.
이와 달리, 입력 임베딩 벡터가 도면(450)과 같이 임베딩 클러스터 내의 특정 임베딩 벡터(x)와 매우 유사한 경우, 분류 장치는 도면(470)과 같이 특정 임베딩 벡터(x) 또는 특정 임베딩 벡터(x)에 매우 근접한 임베딩 벡터를 조합 임베딩 벡터로 결정할 수 있다. 이 경우, 분류 장치는 임베딩 클러스터 내에 포함된 임베딩 벡터들 중 입력 임베딩 벡터와 가장 유사한 임베딩 벡터를 조합 임베딩 벡터로 선택하는 것과 같은 결과를 가질 수 있다.
도 5는 일 실시예에 따라 입력 데이터를 분류하는 방법을 나타낸 흐름도이다. 이하, 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
도 5를 참조하면, 일 실시예에 따른 분류 장치가 단계(510) 내지 단계(530)를 통해 입력 데이터를 분류하는 과정이 도시된다.
단계(510)에서, 분류 장치는 사용자의 생체 정보를 포함하는 입력 데이터로부터 생체 정보의 특징을 포함하는 입력 임베딩 벡터를 추출한다. 입력 데이터는 영상 데이터일 수도 있고, 또는 음성 데이터일 수도 있으며, 반드시 이에 한정되지는 않는다.
분류 장치는 다양한 센서(들)에 의해 사용자부터 센싱되는 생체 정보를 포함하는 입력 데이터를 수신하여 생체 정보의 특징을 추출하는 뉴럴 네트워크(Neural Network)에 입력할 수 있다. 뉴럴 네트워크는 생체 정보의 특징 또는 특징 벡터를 추출하도록 트레이닝된 것일 수 있다. 뉴럴 네트워크에 의하여 추출되는 입력 임베딩 벡터는 생체 정보의 특징(예를 들어, 생체 정보의 위조 여부를 검출하기에 적합한 특징)을 내포(embed)하며, 임베딩 벡터는 '특징 벡터(feature vector)'로 지칭될 수도 있다. 뉴럴 네트워크는 예를 들어, 심층 신경망(DNN)일 수도 있고, 또는 컨볼루션 뉴럴 네트워크(Convolution Neural Network; CNN)일 수도 있으며, 반드시 이에 한정되지 않는다.
센서(들)는 예를 들어, 초음파 지문 센서, 광학 지문 센서, 정전 방식 지문 센서, 깊이 센서, 홍채 센서, 이미지 센서, 및 사운드 센서 등을 포함할 수 있으며, 반드시 이에 한정되지는 않는다. 센서는 이들 중 어느 하나가 사용될 수도 있고, 또는 둘 이상이 사용될 수도 있다. 입력 데이터는 예를 들어, 도 1에 도시된 입력 지문 영상(115)일 수도 있고, 홍채 영상 또는 얼굴 영상일 수도 있으며, 음성 파일일 수도 있다.
단계(520)에서, 분류 장치는 등록 데이터들에 기초한 복수의 등록 임베딩 벡터들의 조합에 기초하여, 입력 임베딩 벡터에 적응적인 임베딩 벡터를 결정한다. 분류 장치는 예를 들어, 도 3을 통해 전술한 최적화 알고리즘(330)에 따라 다양한 조합 방식으로 입력 임베딩 벡터에 적응적인 임베딩 벡터를 결정할 수 있다. 여기서, '입력 임베딩 벡터에 적응적인 임베딩 벡터'는 입력 임베딩 벡터와 가장 유사하게 조합된 임베딩 벡터에 해당할 수 있다. 또한, '입력 임베딩 벡터에 적응적인 임베딩 벡터를 결정한다'는 것은 입력 임베딩 벡터에 대해 적응적으로 클러스터링 된 임베딩 벡터들의 조합을 통해 유사도 계산 상 오류를 덜 일으킬 수 있는 임베딩 벡터를 생성한다는 의미를 포함하는 것으로 이해될 수 있다.
단계(520)에서, 분류 장치는 복수의 등록 임베딩 벡터들 중 입력 임베딩 벡터에 적응적인 등록 임베딩 벡터들을 조합하여 조합 임베딩 벡터를 결정할 수 있다. 분류 장치는 조합 임베딩 벡터와 입력 임베딩 벡터 간의 손실 함수(loss function)에 기초하여 조합 임베딩 벡터를 갱신함으로써 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성할 수 있다. 분류 장치는 조합 임베딩 벡터와 입력 임베딩 벡터 간의 손실 함수를 최소화하는 조합 임베딩 벡터를 적응적인 임베딩 벡터로 결정할 수 있다. 분류 장치가 다양한 조합 방식들을 통해 입력 임베딩 벡터에 적응적인 임베딩 벡터를 결정하는 방법은 아래의 도 6 내지 도 11을 참조하여 보다 구체적으로 설명한다.
단계(530)에서, 분류 장치는 단계(510)에서 추출한 입력 임베딩 벡터와 단계(520)에서 결정한 적응적인 임베딩 벡터 간의 유사도에 기초하여 입력 데이터를 분류한다. 분류 장치는 예를 들어, 손실 함수를 최소화하는 최적의 조합에 대해, 조합 임베딩 벡터와 입력 임베딩 벡터 간의 유사도를 산출함으로써 입력 데이터를 분류할 수 있다.
단계(530)에서, 분류 장치는 입력 임베딩 벡터와 적응적인 임베딩 벡터 간의 유사도에 기초하여, 입력 데이터를 인증할 수도 있고, 또는 입력 데이터의 도용 여부를 결정할 수도 있다.
도 6은 다른 실시예에 따라 입력 데이터를 분류하는 방법을 나타낸 흐름도이다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
도 6을 참조하면, 일 실시예에 따른 분류 장치가 최적화 알고리즘(330)에 따라 단계(610) 내지 단계(620)를 통해 조합 방식을 변경하는 과정이 도시된다. 도 3에서와 마찬가지로, 최적화 알고리즘(330)은 입력 임베딩 벡터(310)와 임베딩 클러스터(320)에 포함된 등록 임베딩 벡터들을 입력으로 받아 최적의 조합 방식을 도출(340)할 수 있다.
단계(610)에서, 분류 장치는 최적화 알고리즘(330)에 따라 입력 임베딩 벡터(310)와 임베딩 클러스터(320) 간에 정의된 손실 함수를 산출할 수 있다. 이때, 손실 함수는 입력 임베딩 벡터(310)와 임베딩 클러스터(320) 내에 포함된 등록 임베딩 벡터들 간의 손실 함수일 수도 있고, 또는 전술한 수학식 1과 같이 입력 임베딩 벡터(310)와 임베딩 클러스터(320) 내 등록 임베딩 벡터들의 일차적 조합 간의 손실 함수일 수도 있다. 이때, 일차적 조합은 단계(340)에서 도출되는 조합 방식과 상이할 수 있다.
단계(620)에서, 분류 장치는 단계(610)에서 산출된 손실 함수를 최소화하는 최적의 조합 방식을 갱신할 수 있다. 분류 장치는 예를 들어, 반복적으로(Iteratively) 조합 방식을 갱신함으로써 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성할 수 있다. 분류 장치가 반복적인 갱신을 통해 적응적인 임베딩 벡터를 생성하는 과정은 아래의 도 7 및 도 8을 참조하여 보다 구체적으로 설명한다.
또는 분류 장치는 전술한 것과 같이 임베딩 클러스터 내의 임베딩 벡터 간의 선형 보간 결과는 해당 임베딩 클러스터의 성질과 유사하다는 가정을 기초로 임베딩 벡터 간의 선형 보간을 가능한 조합으로 고려하여 입력 임베딩 벡터에 적응적인 임베딩 벡터를 결정할 수도 있다. 분류 장치가 선형 보간을 통해 입력 임베딩 벡터에 적응적인 임베딩 벡터를 결정하는 방법은 아래의 도 9 및 도 12를 참조하여 보다 구체적으로 설명한다.
분류 장치는 최종적으로 갱신된 조합 방식을 도출(340)하여 입력 임베딩 벡터에 적응적인 임베딩 벡터를 결정할 수 있다.
도 7은 다른 실시예에 따라 입력 데이터를 분류하는 방법을 나타낸 흐름도이다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
도 7을 참조하면, 분류 장치가 단계(710) 내지 단계(750)를 통해 입력 데이터의 분류를 위한 조합 방식을 도출하는 과정이 도시된다.
분류 장치는 최적화 알고리즘에 대한 구체화로서, 반복적인 조합 방식 갱신을 통해 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성할 수 있다. 분류 장치는 손실 함수가 특정 값에 수렴하도록 하는 반복적인 갱신 방식을 사용함으로써 손실 함수를 명시적으로(Explicitly) 최적화하는 방식에 비해 계산량, 계산 시간, 및 메모리 사용량 상의 이점을 가질 수 있다. 이러한 반복적인 갱신 방식은 임베딩 클러스터에 포함된 임베딩 벡터들과의 유사도를 필요로 하는 어떠한 응용 분야에도 적용될 수 있다.
단계(710)에서, 분류 장치는 임베딩 클러스트(320)에 포함된 등록 임베딩 벡터들을 조합하여 일차적으로 등록 임베딩 벡터들의 임의의 조합을 생성할 수 있다.
단계(720)에서, 분류 장치는 단계(710)에서 조합된 임베딩 벡터('조합 임베딩 벡터')와 입력 임베딩 벡터(310) 간의 손실 함수를 산출할 수 있다. 손실 함수는 예를 들어, 전술한 수학식 1과 같이 입력 임베딩 벡터와 조합 임베딩 벡터에 대해 정의된 것일 수 있다.
단계(730)에서, 분류 장치는 단계(720)에서 산출된 손실 함수가 원하는 값에 수렴하는지 여부를 판단할 수 있다. 예를 들어, 단계(730)에서 손실 함수가 수렴하지 않는다고 하자. 이 경우, 분류 장치는 손실 함수가 원하는 값으로 안정화될 수 있도록, 조합 방식을 갱신하고, 갱신된 조합 방식에 따라 조합된 임베딩 벡터와 입력 임베딩 벡터 간의 손실 함수가 제1 값(ex. '0')에 수렴할 때까지 단계(720) 내지 단계(740)을 반복적으로 수행할 수 있다.
보다 구체적으로, 단계(730)에서 손실 함수가 수렴하지 않는 경우, 분류 장치는 단계(740)에서 손실 함수가 제1 값(ex. '0')에 수렴하도록 조합 방식을 갱신하고, 단계(720)에서 갱신된 조합 방식에 따라 새로이 조합된 임베딩 벡터와 입력 임베딩 벡터 간의 손실 함수를 산출할 수 있다. 단계(730)에서 분류 장치는 새로이 조합된 임베딩 벡터와 입력 임베딩 벡터 간의 손실 함수가 제1 값에 수렴하는지를 다시 판단할 수 있다.
단계(730)에서 손실 함수가 수렴하는 경우, 단계(750)에서 분류 장치는 손실 함수가 수렴한 경우의 조합 방식을 도출할 수 있다. 분류 장치는 단계(750)에서 도출된 조합 방식에 따라 결정된 적응적인 임베딩 벡터와 입력 임베딩 벡터(310) 간의 유사도에 기초하여 입력 데이터를 분류할 수 있다.
도 8은 도 7의 실시예에 따라 조합 임베딩 벡터를 갱신하는 과정을 도시한 도면이다. 도 8을 참조하면, 임베딩 클러스터 내의 임베딩 벡터들의 조합에 해당하는 조합 임베딩 벡터를 반복적으로 갱신하는 과정을 나타낸 모식도가 도시된다.
분류 장치는 임베딩 클러스트에 포함된 등록 임베딩 벡터들(820)을 조합하여 일차적으로 임의의 임베딩 벡터(830-1)를 조합할 수 있다.
분류 장치는 조합된 임베딩 벡터('조합 임베딩 벡터')(830-1)와 입력 임베딩 벡터(
Figure pat00013
)(810) 간의 손실 함수를 산출할 수 있다. 분류 장치는 손실 함수가 원하는 값(ex. '0')으로 수렴되지 않는 경우, 반복적으로 조합 방식을 갱신하고, 갱신된 조합 방식에 따라 새로이 조합된 임베딩 벡터(830-2)와 입력 임베딩 벡터 간의 손실 함수를 산출할 수 있다. 새로이 조합된 임베딩 벡터(830-2)와 입력 임베딩 벡터(810) 간의 손실 함수가 원하는 값으로 수렴되지 않는 경우, 분류 장치는 다시 조합 방식을 갱신하고, 갱신된 조합 방식에 따라 새로이 조합된 임베딩 벡터(830-3)와 입력 임베딩 벡터(810) 간의 손실 함수를 산출할 수 있다. 분류 장치는 손실 함수가 원하는 값으로 수렴될 때까지 전술한 과정을 반복할 수 있다.
손실 함수가 원하는 값으로 수렴하는 경우, 분류 장치는 손실 함수가 수렴한 경우의 조합 방식에 따라 조합된 임베딩 벡터(예를 들어, 조합된 임베딩 벡터(
Figure pat00014
)(840))를 입력 임베딩 벡터(810)에 적응적인 임베딩 벡터로 결정할 수 있다.
도 9는 다른 실시예에 따라 입력 데이터를 분류하는 방법을 나타낸 흐름도이다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
예를 들어, 분류 장치는 클러스터링된 임베딩 벡터들 간을 선형 보간한 결과가 임베딩 클러스터의 성질과 유사하다는 가정 하에, 임베딩 클러스터(320)에 포함된 등록 임베딩 벡터들의 조합 방식을 컨벡스 컴비네이션(Convex Combination)과 같은 선형 보간(Linear Interpolation) 방식으로 제한함으로써 조합 방식을 도출하는 과정을 예를 들어, 아래의 수학식 2와 같이 제한된 최적화(Constrained Optimization) 문제로 표현할 수 있다.
Figure pat00015
수학식 2의 제한된 최적화 문제는 입력 임베딩 벡터(310)와 조합된 임베딩 벡터(또는 적응적인 임베딩 벡터) 간의 유사도를 유클라디언(Euclidean) 거리 상에서 가까운 정도로 상정하고, 도 7의 손실 함수를 유클라디언 거리로 가정한 후, 도 7과 같은 반복적인 과정을 통해 해결할 수 있다.
분류 장치는 예를 들어, 적응적 필터링(Adaptive Filtering) 기법 중 하나인 비음수 최소 평균 제곱(Non-negative Least-Mean-Square) 방식과 선형 제약 최소 평균 제곱(Linearity-Constrained Least-Mean Square) 방식을 혼합하여, 아래의 수학식 3과 같이 가중치 w의 갱신을 통해 제한된 최적화 문제를 해결할 수 있다.
Figure pat00016
여기서,
Figure pat00017
이고,
Figure pat00018
이며,
Figure pat00019
일 수 있다. 또한,
Figure pat00020
이고,
Figure pat00021
이며,
Figure pat00022
일 수 있다.
Figure pat00023
는 스텝 사이즈(step-size), 다시 말해 가중치가 한 번에 갱신되는 정도를 나타내는 하이퍼 파라미터(Hyper parameter)일 수 있다. k는 가중치 갱신의 반복 횟수를 나타내고,
Figure pat00024
는 단위 행렬(Identity matrix)을 나타낼 수 있다.
수학식 3의 도출 과정은 다음과 같다.
예를 들어, 선형 제약 최소 평균 제곱(Linearity-Constrained Least-Mean Square)에 의해 최적으로 조합된 임베딩 벡터(혹은 입력 임베딩 벡터에 적응적인 임베딩 벡터)
Figure pat00025
를 수학식 4와 같이 표현한다고 하자.
Figure pat00026
선형 제약의 경우, 라그랑주 승수(Lagrange multiplier)
Figure pat00027
를 사용하는 최적의 지점들에서 가중치 에 대한 기울기는 0 이어야 하고, 이는 아래의 수학식 5와 같이 표현될 수 있다.
Figure pat00028
이 경우, 가중치 갱신은 아래의 수학식 6과 같이 표현할 수 있다.
Figure pat00029
가중치를 갱신하려면 제약 조건이
Figure pat00030
이 충족되어야 하고, 이를 적용하면 수학식 6은 아래의 수학식 7과 같이 표현될 수 있다.
Figure pat00031
여기서, 결과 Lambda (
Figure pat00032
)를 수학식 6으로 대체하면, 수학식 7은 아래의 수학식 8과 같이 표현될 수 있다.
Figure pat00033
여기서,
Figure pat00034
일 수 있다.
예를 들어, 가중치 비-음수 최소 평균 제곱(Non-negative Least-Mean-Square) 방식의 경우 스텝 사이즈(step-size)에 따라 민감하게 작동할 수 있으며, 예를 들어, 아래의 수학식 9는
Figure pat00035
에 의한 그라데이션 과장(Gradient Exaggeration)으로 인해 작동하지 않을 수 있다.
Figure pat00036
여기서,
Figure pat00037
는 대각 요소들이 인자(argument)에 대응되는 대각 행렬(diagonal matrix)을 나타낼 수 있다.
이 경우, 수학식 9는 그리디 방식(greedy way)에 따라 전술한 수학식 3과 같이 표현될 수 있다. 수학식 3은 명시적으로 가중치와 선형 제약을 유지될 수 있다.
수학식 3을 통해 갱신되는 가중치 w에 의해 조합 방식이 갱신될 수 있으며, 이에 따라 임베딩 클러스터에 포함된 등록 임베딩 벡터들로부터 조합되는 조합 임베딩 벡터 또한 갱신될 수 있다.
일 실시예에서는 가중치 갱신 시에 가중치의 비-음성(Non-negativity)이 보장되도록 수학식 9를 수학식 3과 같이 변형하여 사용할 수 있다.
수학식 9에서
Figure pat00038
는 음성(Negativity)을 피해갈 수 있게 만드는 역할을 하지만, 양성 가중치(Positive Weight)에 대해 오류를 일으킬 수 있고, 하이퍼 파라미터의 민감도(Sensitivity) 관점에서 취약할 수 있다. 따라서, 수학식 3에서는 음성 가중치(Negative Weight)를 0으로 치환할 수 있다.
이 때문에 수학식 2의 제약 조건에 영향을 줄 수 있으므로, 분류 장치는 수학식 3에서 가장 아랫 줄(
Figure pat00039
)의 갱신을 추가로 실시함으로써 조합 임베딩 벡터를 갱신할 수 있다.
도 9를 참조하면, 분류 장치가 단계(910) 내지 단계(960)를 통해 입력 데이터의 분류를 위한 가중치를 도출하는 과정이 도시된다.
단계(910)에서, 분류 장치는 선형 보간을 위한 가중치(weight)를 초기화할 수 있다. 이때, 분류 장치는 예를 들어, 컨벡스 컴비네이션(convex combination)과 같은 선형 보간(linear interpolation)에 의해 복수의 등록 임베딩 벡터들 중 입력 임베딩 벡터에 적응적인 등록 임베딩 벡터들을 조합함으로써 조합 임베딩 벡터를 결정할 수 있다. 분류 장치는 조합 임베딩 벡터에 가중치를 적용하여 조합 임베딩 벡터를 갱신할 수 있다.
단계(915)에서, 분류 장치는 가중치가 갱신되는 정도를 나타내는 하이퍼 파라미터(hyper-parameter)를 수신할 수 있다.
단계(920)에서, 분류 장치는 갱신된 조합 임베딩 벡터와 입력 임베딩 벡터(310) 간의 오차(error)를 산출할 수 있다.
단계(930)에서, 분류 장치는 단계(920)에서 산출한 오차에 단계(915)에서 수신한 하이퍼 파라미터를 적용하여 가중치를 갱신할 수 있다.
분류 장치는 갱신된 가중치를 적용한 갱신된 조합 임베딩 벡터와 입력 임베딩 벡터 간의 손실 함수에 기초하여 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성할 수 있다.
보다 구체적으로, 단계(940)에서, 분류 장치는 단계(930)에서 갱신된 가중치를 적용한 갱신된 조합 임베딩 벡터와 입력 임베딩 벡터 간의 손실 함수가 원하는 값(예를 들어, 제1 값)에 수렴하는지 여부를 결정할 수 있다. 분류 장치는 손실 함수가 원하는 값으로 수렴할 때까지 갱신된 조합 임베딩 벡터와 입력 임베딩 벡터 간의 오차(error)를 계산할 수 있다. 예를 들어, 단계(940)에서 손실 함수가 제1 값에 수렴하지 않는다고 하자. 이 경우, 분류 장치는 손실 함수가 제1 값에 수렴하도록 단계(920) 내지 단계(940)의 과정을 통해 반복적으로 가중치를 갱신하는 과정을 통해 가중치를 확정할 수 있다.
또는 단계(940)에서 손실 함수가 제1 값에 수렴한다고 하자. 이 경우, 단계(950)에서, 분류 장치는 손실 함수가 수렴하도록 최종적으로 확정된 가중치를 도출할 수 있다.
분류 장치는 단계(950)에서 도출된 가중치에 대응하는 조합 임베딩 벡터를 입력 임베딩 벡터에 적응적인 임베딩 벡터로 결정하고, 입력 임베딩 벡터와 적응적인 임베딩 벡터 간의 유사도에 기초하여 입력 데이터를 분류할 수 있다.
도 10은 도 9의 실시예에 따라 조합 임베딩 벡터를 갱신하는 과정을 도시한 도면이다. 도 10을 참조하면, 임베딩 클러스터에 포함된 등록 임베딩 벡터들의 조합을 선형 보간으로 가정하여 등록 임베딩 벡터들로부터 조합된 조합 임베딩 벡터가 반복적으로 갱신되는 과정이 도시된다.
분류 장치는 도 9를 통해 전술한 것과 같이, 손실 함수가 원하는 값으로 수렴할 때까지 갱신된 조합 임베딩 벡터들(1030-1, 1030-2, 1030-3, ..)와 입력 임베딩 벡터(1010) 간의 오차(error) e 를 계산할 수 있다. 분류 장치는 예를 들어, 전술한 수학식 9와 같이 오차에 기초하여 가중치를 반복적으로 갱신하는 과정을 통해 가중치를 확정할 수 있다.
분류 장치는 조합 임베딩 벡터에 선형 보간을 위한 가중치(weight)를 적용하여 반복적으로 갱신된 조합 임베딩 벡터들(1030-1, 1030-2, 1030-3, ..)을 결정함으로써 입력 임베딩 벡터(1010)에 적응적인 임베딩 벡터(1040)를 생성할 수 있다.
도 11은 다른 실시예에 따라 입력 데이터는 분류하는 방법을 나타낸 흐름도이다. 도 11은 도 9의 실시예를 보다 구체화한 것으로서, 스텝 사이즈를 나타내는 하이퍼 파라미터 μ를 자동으로 도출하는 과정을 더 포함할 수 있다. 도 11에서 단계(1110) 내지 단계(1140)에 해당하는 1st 부분은 하이퍼 파라미터를 자동으로 도출하는 과정에 해당하고, 단계(1150) 내지 단계(1190)은 도 9를 통해 전술한 것과 같이 가중치를 도출하는 과정에 해당할 수 있다.
스텝 사이즈(Step-Size)는 조합 대상의 상관 행렬에 대한 고유 값들 중 최대값의 역수를 최적으로 하며, 시스템에 따라 다른 민감도를 가질 수 있다. 이에 따라, 일 실시예에서는 파워 이터레이션 알고리즘 (power iteration algorithm)을 이용하여 가중치가 갱신되는 정도, 다시 말해 스텝 사이즈를 나타내는 하이퍼 파라미터를 도출할 수 있다.
보다 구체적으로, 분류 장치는 파워 이터레이션 알고리즘을 이용하여 조합 대상의 상관 행렬에 대응하는 고유 값을 구한 후, 고유 값에 기초하여 하이퍼 파라미터를 도출할 수 있다.
파워 이터레이션 알고리즘은 예를 들어, 아래의 수학식 10과 같이 구체화될 수 있다.
Figure pat00040
수학식 10에서
Figure pat00041
는 고유 벡터를 갱신하는 수식에 해당하고,
Figure pat00042
는 고유 값을 계산하는 수식에 해당할 수 있다.
도 11의 단계(1110) 내지 단계(1140)에 해당하는 1st 부분의 수행 방법은 다음과 같다.
단계(1110)에서, 분류 장치는 고유 값을 구할 행렬, 다시 말해, 조합 대상이 되는 임베딩 클러스터 내의 복수의 등록 임베딩 벡터들에 대응하는 상관 행렬(correlation matrix)
Figure pat00043
를 산출할 수 있다. 아래에서 보다 구체적으로 설명하겠지만, 분류 장치는 상관 행렬을 기초로 하이퍼 파라미터를 도출할 수 있다.
단계(1115)에서, 분류 장치는 고유 벡터(Eigenvector) b를 초기화할 수 있다. 분류 장치는 예를 들어, 파워 이터레이션 알고리즘(power iteration algorithm)을 사용하여 상관 행렬에 대응하는 고유 벡터(eigen vector)를 결정할 수 있다. 분류 장치는 해당 고유 벡터가 수렴할 때까지 수학식 10을 통해 고유 벡터의 갱신을 반복할 수 있다.
단계(1120)에서, 분류 장치는 수학식 10의
Figure pat00044
에 의해 고유 벡터를 갱신할 수 있다. 분류 장치는 고유 벡터가 수렴할 때까지 반복적으로 고유 벡터를 갱신하고, 갱신된 고유 벡터에 대응하는 고유 값을 산출할 수 있다.
단계(1125)에서 분류 장치는 단계(1120)에서 갱신한 고유 벡터가 수렴하는지 여부를 판단할 수 있다. 예를 들어, 단계(1125)에서 고유 벡터가 수렴하지 않는 경우, 분류 장치는 단계(1120)을 통해 고유 벡터를 다시 갱신할 수 있다.
이와 달리, 단계(1125)에서 고유 벡터가 수렴하는 경우, 단계(1130)에서 분류 장치는 수렴하는 고유 벡터에 대응하는 고유 값을 결정할 수 있다. 분류 장치는 예를 들어, 수학식 10의
Figure pat00045
에 의해 고유 값을 산출할 수 있다.
단계(1135)에서, 분류 장치는 단계(1130)에서 산출한 고유 값에 기초하여 하이퍼 파라미터(μ)를 도출할 수 있다.
단계(1140)에서, 분류 장치는 단계(1135)에서 도출된 하이퍼 파라미터를 스케줄링할 수 있다. 분류 장치는 단계(1135)에서 도출된 하이퍼 파라미터를 기반으로, 도 11의 단계(1150) 내지 단계(1190)에 해당하는 2nd 부분에서 가중치를 반복적으로 갱신할 때마다 하이퍼 파라미터를 상이하게 스케줄링할 수 있다. 분류 장치는 가중치의 갱신 시마다 서로 다른 하이퍼 파라미터를 적용함으로써 손실 함수의 수렴 속도를 높이는 한편, 손실 함수가 안정적으로 수렴되도록 할 수 있다.
분류 장치는 예를 들어, 가중치 갱신 초기에는 하이퍼 파라미터 보다 높은 값을 적용하여 손실 함수가 빠르게 수렴하도록 할 수 있다. 분류 장치는 가중치 갱신 횟수가 반복될수록 하이퍼 파라미터보다 작은 값을 적용하여 손실 함수가 안정적으로 작은 값에 수렴하도록 할 수 있다. 이와 같이, 분류 장치가 하이퍼 파라미터를 크게 또는 작게 조정하는 과정을 '스케줄링' 과정이라 부를 수 있다.
분류 장치는 단계(1140)를 통해 상이하게 스케줄링된 하이퍼 파라미터에 의해 가중치를 갱신함으로써 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성할 수 있다.
보다 구체적으로, 단계(1150)에서, 분류 장치는 선형 보간을 위한 가중치를 초기화할 수 있다. 이때, 분류 장치는 예를 들어, 컨벡스 컴비네이션과 같은 선형 보간에 의해 복수의 등록 임베딩 벡터들 중 입력 임베딩 벡터에 적응적인 등록 임베딩 벡터들을 조합함으로써 조합 임베딩 벡터를 결정할 수 있다. 분류 장치는 조합 임베딩 벡터에 가중치를 적용하여 조합 임베딩 벡터를 갱신할 수 있다.
단계(1160)에서, 분류 장치는 갱신된 조합 임베딩 벡터와 입력 임베딩 벡터(310) 간의 오차를 산출할 수 있다.
단계(1170)에서, 분류 장치는 단계(1160)에서 산출한 오차에 단계(1140)를 통해 스케줄링된 하이퍼 파라미터를 적용하여 가중치를 갱신할 수 있다. 분류 장치는 갱신된 가중치를 적용한 갱신된 조합 임베딩 벡터와 입력 임베딩 벡터 간의 손실 함수에 기초하여 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성할 수 있다.
단계(1180)에서, 분류 장치는 단계(1170)에서 갱신된 가중치를 적용한 갱신된 조합 임베딩 벡터와 입력 임베딩 벡터 간의 손실 함수가 원하는 값(예를 들어, 제1 값)에 수렴하는지 여부를 결정할 수 있다. 분류 장치는 손실 함수가 원하는 값으로 수렴할 때까지 갱신된 조합 임베딩 벡터와 입력 임베딩 벡터 간의 오차를 계산할 수 있다. 예를 들어, 단계(1180)에서 손실 함수가 제1 값에 수렴하지 않는다고 하자. 이 경우, 분류 장치는 손실 함수가 제1 값에 수렴하도록 단계(1160) 내지 단계(1180)의 과정을 통해 반복적으로 가중치를 갱신하는 과정을 통해 가중치를 확정할 수 있다.
또는 단계(1180)에서 손실 함수가 제1 값에 수렴한다고 하자. 이 경우, 단계(1190)에서, 분류 장치는 손실 함수가 수렴하도록 최종적으로 확정된 가중치를 도출할 수 있다.
분류 장치는 단계(1190)에서 도출된 가중치에 대응하는 조합 임베딩 벡터를 입력 임베딩 벡터에 적응적인 임베딩 벡터로 결정하고, 입력 임베딩 벡터와 적응적인 임베딩 벡터 간의 유사도에 기초하여 입력 데이터를 분류할 수 있다.
도 12는 일 실시예에 따라 입력 데이터의 도용 여부를 분류하는 과정을 도시한 도면이다. 도 12를 참조하면, 일 실시예에 따른 분류 장치가 복수의 지문 영상들로부터 유사도 스코어를 산출하여 지문 인식 시 위조 지문 여부를 판단하는 과정이 도시된다.
예를 들어, 진짜 지문과 위조 지문을 구별하기 위한 알고리즘의 경우, 인식 기기, 지문의 습도, 지문 취득 온도 등 환경적 요인과 인적 요인에 의해 변화하는 진짜 지문과, 다양한 재질로 이루어진 위조 지문을 구별해야 한다. 따라서, 진짜 지문의 변화 요인을 최소화하고자 등록으로 이용된 지문과의 유사도를 활용하여 위조 지문 검출의 강건성을 확보할 수 있다.
단계(1210)에서, 분류 장치는 등록 시도 지문 영상들을 수신하고, 단계(1240)에서 등록 시도 지문 영상들을 심층 신경망에 인가하여 등록 임베딩 벡터들을 추출할 수 있다.
단계(1250)에서, 분류 장치는 등록 임베딩 벡터들을 임베딩 클러스터에 저장할 수 있다.
단계(1220)에서, 분류 장치는 인증 시도 지문 영상을 수신하고, 단계(1230)에서 지문 영상을 수신할 수 있다.
단계(1260)에서, 분류 장치는 인증 시도 지문 영상과 지문 영상을 심층 신경망에 인가할 수 있다. 이때, 인증 시도 지문 영상과 지문 영상은 서로 다른 지문 영상일 수 있다. 분류 장치는 인증 시도 지문 영상과 지문 영상 간의 다이나믹스(dynamics)를 활용하여 지문 영상의 도용 여부를 검출할 수 있다.
단계(1270)에서, 분류 장치는 심층 신경망에서 인증 시도 임베딩 벡터를 추출할 수 있다. 이때, 심층 신경망은 예를 들어, 인증 시도 지문 영상과 지문 영상 각각에 대응하는 심층 신경망(제1 신경망 및 제2 신경망)을 포함할 수 있다. 분류 장치는 예를 들어, 제1 신경망 및 제2 신경망의 중간 레이어로부터 인증 시도 임베딩 벡터를 추출할 수 있다.
분류 장치는 임베딩 클러스터에 저장된 등록 임베딩 벡터들과 인증 시도 임베딩 벡터 간의 유사도에 기초하여 인증 시도 지문 영상의 도용 여부를 검출할 수 있다.
보다 구체적으로, 단계(1280)에서, 분류 장치는 임베딩 클러스터에 저장된 등록 임베딩 벡터들과 인증 시도 임베딩 벡터에 대해 최적화 알고리즘을 적용하고, 최적화 알고리즘의 적용 결과에 따라 최적의 조합 방식을 도출할 수 있다.
단계(1290)에서, 분류 장치는 단계(1280)에서 도출된 최적의 조합 방식에 따라 조합된 인증 시도 임베딩 벡터(1270)에 적응적인 임베딩 벡터와 인증 시도 임베딩 벡터(1270) 간의 유사도를 유사도 스코어 형태로 산출할 수 있다. 분류 장치는 단계(1290)에서 산출된 유사도 스코어에 의해 인증 시도 지문 영상(1220)의 도용 여부를 검출할 수 있다.
도 13은 일 실시예에 따라 입력 데이터의 도용 여부를 분류하는 방법을 나타낸 흐름도이다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
도 13을 참조하면, 분류 장치가 단계(1310) 내지 단계(1360)를 통해 입력 데이터의 도용 여부를 분류하는 과정이 도시된다.
단계(1310)에서, 분류 장치는 사용자의 생체 정보를 포함하는 입력 영상으로부터 생체 정보의 특징을 포함하는 입력 임베딩 벡터를 추출할 수 있다.
단계(1320)에서, 분류 장치는 선형 보간에 의해 등록 영상들에 기초한 클러스터 내에 포함된 복수의 등록 임베딩 벡터들 중 입력 임베딩 벡터에 적응적인 등록 임베딩 벡터들을 조합하여 조합 임베딩 벡터를 결정할 수 있다.
단계(1330)에서, 분류 장치는 조합 임베딩 벡터에 선형 보간을 위한 가중치를 적용하여 갱신된 조합 임베딩 벡터와 입력 임베딩 벡터 간의 오차를 산출할 수 있다.
단계(1340)에서, 분류 장치는 복수의 등록 임베딩 벡터들에 대응하는 상관 행렬을 기초로, 가중치가 갱신되는 정도를 나타내는 하이퍼 파라미터를 도출할 수 있다.
단계(1350)에서, 분류 장치는 오차에 하이퍼 파라미터를 적용하여 가중치를 반복적으로 갱신함으로써 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성할 수 있다. 분류 장치는 예를 들어, 가중치를 반복적으로 갱신할 때마다 하이퍼 파라미터를 상이하게 스케줄링할 수 있다. 분류 장치는 상이하게 스케줄링된 하이퍼 파라미터에 의해 가중치를 갱신함으로써 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성할 수 있다.
단계(1360)에서, 분류 장치는 입력 임베딩 벡터와 적응적인 임베딩 벡터 간의 유사도에 기초하여 입력 데이터의 도용 여부를 분류할 수 있다.
도 14는 일 실시예에 따라 입력 데이터를 분류하는 장치의 블록도이다. 도 14를 참조하면, 일 실시예에 따른 입력 데이터를 분류하는 장치('분류 장치')(1400)는 센서(1410), 메모리(1430), 프로세서(1450), 및 통신 인터페이스(1470)를 포함한다. 센서(1410), 메모리(1430), 프로세서(1450), 및 통신 인터페이스(1470)는 통신 버스(1405)를 통해 서로 연결될 수 있다.
센서(1410)은 사용자의 생체 정보를 포함하는 입력 데이터를 감지한다. 입력 데이터는 예를 들어, 영상 데이터일 수도 있고, 음성 데이터일 수도 있다. 센서(1410)은 예를 들어, 초음파 지문 센서, 광학 지문 센서, 정전 방식의 지문 센서, 깊이 센서, 이미지 센서, 및 사운드 센서 중 적어도 하나를 포함할 수 있으며, 반드시 이에 한정되지는 않는다. 생체 정보는 예를 들어, 사용자의 지문, 홍채, 얼굴, 및 음성 중 어느 하나를 포함할 수 있으며, 반드시 이에 한정되지는 않는다.
메모리(1430)는 등록 데이터들에 기초한 복수의 등록 임베딩 벡터들을 포함하는 클러스터를 저장한다. 메모리(1430)는 센서들(1410)에 의해 감지된 사용자의 생체 정보를 저장할 수 있다. 또한, 메모리(1430)는 프로세서(1450)에 의해 결정된 적응적 임베딩 벡터 및/또는 프로세서(1450)에 의해 분류된 입력 데이터를 저장할 수 있다.
또한, 메모리(1430)는 상술한 프로세서(1450)의 처리 과정에서 생성되는 다양한 정보들을 저장할 수 있다. 이 밖에도, 메모리(1430)는 각종 데이터와 프로그램 등을 저장할 수 있다. 메모리(1430)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 메모리(1430)는 하드 디스크 등과 같은 대용량 저장 매체를 구비하여 각종 데이터를 저장할 수 있다.
프로세서(1450)는 센서(1410)가 감지한 입력 데이터로부터 생체 정보의 특징을 포함하는 입력 임베딩 벡터를 추출한다. 프로세서(1450)는 복수의 등록 임베딩 벡터들의 조합에 기초하여 입력 임베딩 벡터에 적응적인 임베딩 벡터를 결정한다. 프로세서(1450)는 입력 임베딩 벡터와 적응적인 임베딩 벡터 간의 유사도에 기초하여 입력 데이터를 분류한다. 다만, 프로세서(1450)의 동작을 상술한 바로 한정하는 것은 아니고, 프로세서(1450)는 도 1 내지 도 13을 통해 전술한 동작들 중 적어도 하나와 함께 상술한 동작을 수행할 수도 있다.
프로세서(1450)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 신경망 또는 분류 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 분류 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(Central Processing Unit; CPU), 그래픽 처리 장치(Graphic Processing Unit; GPU), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array), NPU(Neural Processing Unit) 등을 포함할 수 있다.
프로세서(1450)는 프로그램을 실행하고, 분류 장치(1400)를 제어할 수 있다. 프로세서(1450)에 의하여 실행되는 프로그램 코드는 메모리(1430)에 저장될 수 있다.
통신 인터페이스(1470)는 프로세서(1450)가 입력 데이터를 분류한 결과(예를 들어, 입력 데이터의 도용 여부)를 분류 장치(1400)의 외부로 출력할 수 있다. 또는 통신 인터페이스(1470)는 프로세서(1450)에 의한 입력 데이터의 분류 결과를 해당 입력 데이터와 함께 다른 장치로 전송할 수 있다. 이때, 생체 정보의 도용 여부와 해당 생체 정보는 서로 매칭된 형태일 수 있다.
또는 실시예에 따라서, 통신 인터페이스(1470)는 사용자의 생체 정보를 포함한 입력 데이터(예를 들어, 영상 데이터)를 분류 장치(1400)의 외부로부터 수신하여 프로세서(1450)에게 전달할 수도 있다.
도면에 도시하지 않았으나, 분류 장치(1400)는 출력 장치를 더 포함할 수 있다. 출력 장치는 프로세서(1450)에 의한 입력 데이터의 분류 결과를 출력할 수 있다. 출력 장치는 예를 들어, 디스플레이, 알람, 스피커 또는 그 밖에 입력 데이터의 분류 결과를 사용자에게 알릴 수 있는 다양한 형태의 출력 장치를 포함할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 사용자의 생체 정보를 포함하는 입력 데이터로부터 상기 생체 정보의 특징을 포함하는 입력 임베딩 벡터(embedding vector)를 추출하는 단계;
    등록 데이터들에 기초한 복수의 등록 임베딩 벡터들의 조합에 기초하여, 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 결정하는 단계; 및
    상기 입력 임베딩 벡터와 상기 적응적인 임베딩 벡터 간의 유사도에 기초하여 상기 입력 데이터를 분류하는 단계
    를 포함하는, 입력 데이터를 분류하는 방법.
  2. 제1항에 있어서,
    상기 적응적인 임베딩 벡터를 결정하는 단계는
    상기 복수의 등록 임베딩 벡터들 중 상기 입력 임베딩 벡터에 적응적인 등록 임베딩 벡터들을 조합하여 조합 임베딩 벡터를 결정하는 단계; 및
    상기 조합 임베딩 벡터와 상기 입력 임베딩 벡터 간의 손실 함수(loss function)에 기초하여 상기 조합 임베딩 벡터를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계
    를 포함하는, 입력 데이터를 분류하는 방법.
  3. 제2항에 있어서,
    상기 적응적인 임베딩 벡터를 생성하는 단계는
    상기 손실 함수가 제1 값에 수렴하도록 반복적으로(Iteratively) 상기 조합 임베딩 벡터를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계
    를 포함하는, 입력 데이터를 분류하는 방법.
  4. 제2항에 있어서,
    상기 적응적인 임베딩 벡터를 생성하는 단계는
    선형 보간(linear interpolation)에 의해 상기 복수의 등록 임베딩 벡터들 중 상기 입력 임베딩 벡터에 적응적인 등록 임베딩 벡터들을 조합함으로써 상기 조합 임베딩 벡터를 결정하는 단계;
    상기 조합 임베딩 벡터에 상기 선형 보간을 위한 가중치(weight)를 적용하여 상기 조합 임베딩 벡터를 갱신하는 단계; 및
    상기 갱신된 조합 임베딩 벡터와 상기 입력 임베딩 벡터 간의 오차(error)에 기초하여 상기 가중치를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계
    를 포함하는, 입력 데이터를 분류하는 방법.
  5. 제4항에 있어서,
    상기 가중치가 갱신되는 정도를 나타내는 하이퍼 파라미터(hyper-parameter)를 수신하는 단계
    를 더 포함하고,
    상기 적응적인 임베딩 벡터를 생성하는 단계는
    상기 오차에 상기 하이퍼 파라미터를 적용하여 상기 가중치를 갱신하는 단계; 및
    상기 갱신된 가중치를 적용한 상기 갱신된 조합 임베딩 벡터와 상기 입력 임베딩 벡터 간의 손실 함수에 기초하여 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계
    를 포함하는, 입력 데이터를 분류하는 방법.
  6. 제5항에 있어서,
    상기 적응적인 임베딩 벡터를 생성하는 단계는
    상기 갱신된 가중치를 적용한 상기 갱신된 조합 임베딩 벡터와 상기 입력 임베딩 벡터 간의 상기 손실 함수가 제1 값에 수렴하도록 반복적으로 상기 가중치를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계
    를 포함하는, 입력 데이터를 분류하는 방법.
  7. 제4항에 있어서,
    파워 이터레이션 알고리즘(power iteration algorithm)을 이용하여 상기 가중치가 갱신되는 정도를 나타내는 하이퍼 파라미터를 도출하는 단계
    를 더 포함하고,
    상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계는
    상기 오차에 상기 하이퍼 파라미터를 적용하여 상기 가중치를 반복적으로 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계
    를 포함하는, 입력 데이터를 분류하는 방법.
  8. 제7항에 있어서,
    상기 하이퍼 파라미터를 도출하는 단계는
    상기 복수의 등록 임베딩 벡터들에 대응하는 상관 행렬(correlation matrix)를 산출하는 단계; 및
    상기 상관 행렬을 기초로, 상기 하이퍼 파라미터를 도출하는 단계
    를 포함하는, 입력 데이터를 분류하는 방법.
  9. 제8항에 있어서,
    상기 상관 행렬을 기초로, 상기 하이퍼 파라미터를 도출하는 단계는
    상기 파워 이터레이션 알고리즘을 사용하여 상기 상관 행렬에 대응하는 고유 값(eigen value)을 결정하는 단계; 및
    상기 고유 값에 기초하여 상기 하이퍼 파라미터를 도출하는 단계
    를 포함하는, 입력 데이터를 분류하는 방법.
  10. 제9항에 있어서,
    상기 고유 값을 결정하는 단계는
    상기 파워 이터레이션 알고리즘을 사용하여 상기 상관 행렬에 대응하는 고유 벡터(eigen vector)를 결정하는 단계;
    상기 고유 벡터가 수렴할 때까지 반복적으로 상기 고유 벡터를 갱신하는 단계; 및
    상기 갱신된 고유 벡터에 대응하는 상기 고유 값을 산출하는 단계
    를 포함하는, 입력 데이터를 분류하는 방법.
  11. 제7항에 있어서,
    상기 가중치를 반복적으로 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계는
    상기 가중치를 반복적으로 갱신할 때마다 상기 하이퍼 파라미터를 상이하게 스케줄링(Scheduling)하는 단계; 및
    상기 상이하게 스케줄링된 하이퍼 파라미터에 의해 상기 가중치를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계
    를 포함하는, 입력 데이터를 분류하는 방법.
  12. 제1항에 있어서,
    상기 입력 데이터를 분류하는 단계는
    상기 유사도에 기초하여, 상기 입력 데이터를 인증하는 단계; 및
    상기 유사도에 기초하여, 상기 입력 데이터의 도용 여부를 결정하는 단계
    중 어느 하나를 포함하는, 입력 데이터를 분류하는 방법.
  13. 사용자의 생체 정보를 포함하는 입력 영상으로부터 상기 생체 정보의 특징을 포함하는 입력 임베딩 벡터를 추출하는 단계;
    선형 보간에 의해 등록 영상들에 기초한 클러스터 내에 포함된 복수의 등록 임베딩 벡터들 중 상기 입력 임베딩 벡터에 적응적인 등록 임베딩 벡터들을 조합하여 조합 임베딩 벡터를 결정하는 단계;
    상기 조합 임베딩 벡터에 상기 선형 보간을 위한 가중치를 적용하여 갱신된 조합 임베딩 벡터와 상기 입력 임베딩 벡터 간의 오차를 산출하는 단계;
    상기 복수의 등록 임베딩 벡터들에 대응하는 상관 행렬을 기초로, 상기 가중치가 갱신되는 정도를 나타내는 하이퍼 파라미터를 도출하는 단계;
    상기 오차에 상기 하이퍼 파라미터를 적용하여 상기 가중치를 반복적으로 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계; 및
    상기 입력 임베딩 벡터와 상기 적응적인 임베딩 벡터 간의 유사도에 기초하여 상기 입력 데이터의 도용 여부를 분류하는 단계
    를 포함하는, 입력 데이터의 도용 여부를 분류하는 방법.
  14. 제13항에 있어서,
    상기 가중치를 반복적으로 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계는
    상기 가중치를 반복적으로 갱신하는 시점 별로 상기 하이퍼 파라미터를 상이하게 스케줄링하는 단계; 및
    상기 상이하게 스케줄링된 하이퍼 파라미터에 의해 상기 가중치를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는 단계
    를 포함하는, 입력 데이터를 분류하는 방법.
  15. 하드웨어와 결합되어 제1항 내지 제14항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
  16. 사용자의 생체 정보를 포함하는 입력 데이터를 캡쳐하는 센서;
    등록 데이터들에 기초한 복수의 등록 임베딩 벡터들을 포함하는 클러스터를 저장하는 메모리; 및
    상기 입력 데이터로부터 상기 생체 정보의 특징을 포함하는 입력 임베딩 벡터를 추출하고, 상기 복수의 등록 임베딩 벡터들의 조합에 기초하여 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 결정하고, 상기 입력 임베딩 벡터와 상기 적응적인 임베딩 벡터 간의 유사도에 기초하여 상기 입력 데이터를 분류하는 프로세서
    를 포함하는, 입력 데이터를 분류하는 장치.
  17. 제16항에 있어서,
    상기 프로세서는
    상기 복수의 등록 임베딩 벡터들 중 상기 입력 임베딩 벡터에 적응적인 등록 임베딩 벡터들을 조합하여 조합 임베딩 벡터를 결정하고, 상기 조합 임베딩 벡터와 상기 입력 임베딩 벡터 간의 손실 함수에 기초하여 상기 조합 임베딩 벡터를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는,
    를 포함하는, 입력 데이터를 분류하는 장치.
  18. 제17항에 있어서,
    상기 프로세서는
    상기 손실 함수가 제1 값에 수렴하도록 반복적으로 상기 조합 임베딩 벡터를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는,
    입력 데이터를 분류하는 장치.
  19. 제17항에 있어서,
    상기 프로세서는
    선형 보간에 의해 상기 복수의 등록 임베딩 벡터들 중 상기 입력 임베딩 벡터에 적응적인 등록 임베딩 벡터들을 조합함으로써 상기 조합 임베딩 벡터를 결정하고, 상기 조합 임베딩 벡터에 상기 선형 보간을 위한 가중치를 적용하여 상기 조합 임베딩 벡터를 갱신하며, 상기 갱신된 조합 임베딩 벡터와 상기 입력 임베딩 벡터 간의 오차에 기초하여 상기 가중치를 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는,
    입력 데이터를 분류하는 장치.
  20. 제19항에 있어서,
    상기 프로세서는
    상기 복수의 등록 임베딩 벡터들에 대응하는 상관 행렬을 기초로, 상기 가중치가 갱신되는 정도를 나타내는 하이퍼 파라미터를 도출하고, 상기 오차에 상기 하이퍼 파라미터를 적용하여 상기 가중치를 반복적으로 갱신함으로써 상기 입력 임베딩 벡터에 적응적인 임베딩 벡터를 생성하는,
    입력 데이터를 분류하는 장치.
KR1020210066728A 2021-03-31 2021-05-25 입력 데이터를 분류하는 방법과 장치 및 입력 데이터의 도용 여부를 분류하는 방법 KR20220136009A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/569,914 US20220318351A1 (en) 2021-03-31 2022-01-06 Method and apparatus with input data classification

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210041865 2021-03-31
KR20210041865 2021-03-31

Publications (1)

Publication Number Publication Date
KR20220136009A true KR20220136009A (ko) 2022-10-07

Family

ID=83595748

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210066728A KR20220136009A (ko) 2021-03-31 2021-05-25 입력 데이터를 분류하는 방법과 장치 및 입력 데이터의 도용 여부를 분류하는 방법

Country Status (1)

Country Link
KR (1) KR20220136009A (ko)

Similar Documents

Publication Publication Date Title
KR102564857B1 (ko) 데이터 인식 및 트레이닝 장치 및 방법
US11366978B2 (en) Data recognition apparatus and method, and training apparatus and method
KR102564855B1 (ko) 표정 변화에 강인한 객체 및 표정 인식 장치 및 방법, 객체 및 표정 트레이닝 장치 및 방법
KR102308871B1 (ko) 객체의 속성에 기반하여 객체를 인식 및 트레이닝하는 방법 및 장치
EP3382598A2 (en) Liveness test method and apparatus
KR102486699B1 (ko) 영상 인식 방법, 영상 검증 방법, 장치, 및 영상 인식 및 검증에 대한 학습 방법 및 장치
US11423702B2 (en) Object recognition method and apparatus
US20180157892A1 (en) Eye detection method and apparatus
US11403878B2 (en) Apparatus and method with user verification
US20220318354A1 (en) Anti-spoofing method and apparatus
US11775851B2 (en) User verification method and apparatus using generalized user model
KR20200083119A (ko) 사용자 인증 장치 및 방법
KR20200110064A (ko) 변환 모델을 이용한 인증 방법 및 장치
Altun A combination of genetic algorithm, particle swarm optimization and neural network for palmprint recognition
US11335117B2 (en) Method and apparatus with fake fingerprint detection
US20210174138A1 (en) Device and method with sensor-specific image recognition
KR20220136009A (ko) 입력 데이터를 분류하는 방법과 장치 및 입력 데이터의 도용 여부를 분류하는 방법
KR20220136017A (ko) 스푸핑 방지 방법 및 장치
US20220004904A1 (en) Deepfake detection models utilizing subject-specific libraries
US11900246B2 (en) Method and apparatus for recognizing user based on on-device training
US11574641B2 (en) Method and device with data recognition
US20220318351A1 (en) Method and apparatus with input data classification
US20240135177A1 (en) Method and apparatus for recognizing user based on on-device training
KR20230119574A (ko) 뉴럴 네트워크의 동작 방법, 뉴럴 네트워크의 트레이닝 방법, 뉴럴 네트워크를 이용하여 생체 정보의 위조 여부를 검출하는 방법 및 그 전자 장치
KR20220136005A (ko) 생체 정보의 도용 여부를 검출하는 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination