KR20230119574A - Method of operating neural network, training method of neural network, method of detecting whether biometruc information is spoofed using neural network, and electric devece thereof - Google Patents
Method of operating neural network, training method of neural network, method of detecting whether biometruc information is spoofed using neural network, and electric devece thereof Download PDFInfo
- Publication number
- KR20230119574A KR20230119574A KR1020220041081A KR20220041081A KR20230119574A KR 20230119574 A KR20230119574 A KR 20230119574A KR 1020220041081 A KR1020220041081 A KR 1020220041081A KR 20220041081 A KR20220041081 A KR 20220041081A KR 20230119574 A KR20230119574 A KR 20230119574A
- Authority
- KR
- South Korea
- Prior art keywords
- activation function
- neural network
- function
- output
- biometric information
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
일 실시예에 따르면, 입력 레이어, 복수의 중간 레이어들, 및 출력 레이어를 포함하는 뉴럴 네트워크의 동작 방법은 복수의 중간 레이어들 중 입력 레이어에 인접한 임의의 제1 중간 레이어에 속한 제1 노드들에게 제1 활성화 함수를 적용하여 제1 중간 벡터를 생성하고, 제1 중간 벡터를, 중간 레이어들 중 출력 레이어에 인접한 제2 중간 레이어에 속한 제2 노드들에게 전달하고, 제2 노드들에게 제2 활성화 함수를 적용하여 제2 중간 벡터를 생성하며, 제2 중간 벡터를 출력 레이어에 인가하며, 제2 활성화 함수는 제2 활성화 함수의 피크 값이 고정되도록 제2 활성화 함수의 승수가 제2 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터 및 제2 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터에 의해 결정된다.According to an embodiment, a method of operating a neural network including an input layer, a plurality of intermediate layers, and an output layer provides first nodes belonging to an arbitrary first intermediate layer adjacent to an input layer among a plurality of intermediate layers. A first intermediate vector is generated by applying a first activation function, the first intermediate vector is transferred to second nodes belonging to a second intermediate layer adjacent to an output layer among intermediate layers, and the second intermediate vector is transmitted to the second nodes. An activation function is applied to generate a second intermediate vector, the second intermediate vector is applied to an output layer, and the multiplier of the second activation function is such that the peak value of the second activation function is fixed. It is determined by a first hyperparameter associated with the rising slope of and a second hyperparameter associated with the falling slope of the second activation function.
Description
아래의 개시는 뉴럴 네트워크의 동작 방법, 뉴럴 네트워크의 트레이닝 방법, 뉴럴 네트워크를 이용하여 생체 정보의 위조 여부를 검출하는 방법 및 그 전자 장치에 관한 것이다.The following disclosure relates to a method of operating a neural network, a method of training a neural network, a method of detecting forgery of biometric information using a neural network, and an electronic device thereof.
신경망은 현대 기계 학습의 필수 구성 요소가 되고 있다. 신경망의 매개변수에 대한 확률 분포를 가정함으로써 신경망의 입력에서 출력으로 분포가 유도될 수 있다. 사용자는 신경망이 보다 유연하게 모델링되기는 희망하지만, 신경망은 예를 들어, 트레이닝되지 않은 영역에 대해 제대로 판단할 수 없는 것이 일반적이다.Neural networks are becoming an essential component of modern machine learning. Distributions can be derived from inputs to outputs of a neural network by assuming probability distributions for the parameters of the neural network. Users want the neural network to be modeled more flexibly, but it is common for the neural network to be unable to make good judgments about untrained regions, for example.
일 실시예에 따르면, 입력 레이어(input layer), 복수의 중간 레이어들, 및 출력 레이어(out layer)를 포함하는 뉴럴 네트워크의 동작 방법은 상기 복수의 중간 레이어들 중 상기 입력 레이어에 인접한 임의의 제1 중간 레이어에 속한 제1 노드들에게 제1 활성화 함수를 적용하여 제1 중간 벡터를 생성하는 단계; 상기 제1 중간 벡터를, 상기 중간 레이어들 중 상기 출력 레이어에 인접한 제2 중간 레이어에 속한 제2 노드들에게 전달하는 단계; 상기 제2 노드들에게 제2 활성화 함수를 적용하여 제2 중간 벡터를 생성하는 단계; 및 상기 제2 중간 벡터를 상기 출력 레이어에 인가하는 단계를 포함하고, 상기 제2 활성화 함수는 상기 제2 활성화 함수의 피크(peak) 값이 고정되도록 상기 제2 활성화 함수의 승수(multiplier)가 상기 제2 활성화 함수의 상승 슬로프(ascending slope)와 연관된 제1 하이퍼 파라미터 및 상기 제2 활성화 함수의 하강 슬로프(descending slope)와 연관된 제2 하이퍼 파라미터에 의해 결정될 수 있다. According to an embodiment, a method of operating a neural network including an input layer, a plurality of intermediate layers, and an out layer includes any one of the plurality of intermediate layers adjacent to the input layer. generating a first intermediate vector by applying a first activation function to first nodes belonging to 1 intermediate layer; transferring the first intermediate vector to second nodes belonging to a second intermediate layer adjacent to the output layer among the intermediate layers; generating a second intermediate vector by applying a second activation function to the second nodes; and applying the second intermediate vector to the output layer, wherein a multiplier of the second activation function is set such that a peak value of the second activation function is fixed. It may be determined by a first hyper parameter associated with an ascending slope of a second activation function and a second hyper parameter associated with a descending slope of the second activation function.
상기 제2 활성화 함수의 상기 동적 범위는 [0, 1]으로 제한될 수 있다. The dynamic range of the second activation function may be limited to [0, 1].
상기 제2 활성화 함수()는 다음의 수학식으로 표현되고, The second activation function ( ) is expressed by the following equation,
, ,
여기서, 상기 a는 상기 제2 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터를 나타내고, 상기 b는 상기 제2 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터를 나타내며, 상기 는 오일러 넘버를 나타내며, 상기 x는 상기 제2 노드들의 입력을 나타내며, 상기 는 상기 x가 0보다 작을 때에 상기 제2 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝(Heaviside Step) 함수를 나타낼 수 있다. Here, a represents a first hyperparameter associated with an ascending slope of the second activation function, and b represents a second hyperparameter associated with a descending slope of the second activation function, denotes an Euler number, the x denotes the input of the second nodes, may represent a Heaviside Step function that makes an output of the second activation function 0 when the x is less than 0.
상기 제1 활성화 함수는 계단 함수(Step function), 시그모이드 함수(Sigmoid function), 하이퍼볼릭 탄젠트 함수(Hyperbolic tangent function), 렐루(ReLU) 함수, 및 리키 렐루(Leaky ReLU) 함수 중 어느 하나를 포함할 수 있다. The first activation function is any one of a step function, a sigmoid function, a hyperbolic tangent function, a ReLU function, and a leaky ReLU function can include
상기 뉴럴 네트워크는 CNN(Convolution Neural Network), 및 DNN(Deep Neural Network) 중 어느 하나를 포함할 수 있다. The neural network may include any one of a Convolution Neural Network (CNN) and a Deep Neural Network (DNN).
일 실시예에 따르면, 입력 레이어, 복수의 중간 레이어들, 및 출력 레이어를 포함하는 뉴럴 네트워크의 트레이닝 방법은 상기 복수의 중간 레이어들 각각에 속한 중간 노드들에 제1 활성화 함수를 적용한 제1 결과값을 추출하는 단계; 상기 복수의 중간 레이어들 중 하나 이상의 임의의 레이어에 속한 중간 노드들에 연결된 추가 노드들에 상기 제1 활성화 함수와 상이한 제2 활성화 함수를 적용하여 제2 결과값을 추출하는 단계; 및 상기 제1 결과 값과 상기 제2 결과값 간의 차이에 기초하여, 상기 뉴럴 네트워크를 트레이닝하는 단계를 포함한다. According to an embodiment, a method for training a neural network including an input layer, a plurality of intermediate layers, and an output layer is a first result value obtained by applying a first activation function to intermediate nodes belonging to each of the plurality of intermediate layers. Extracting; extracting a second result value by applying a second activation function different from the first activation function to additional nodes connected to intermediate nodes belonging to at least one arbitrary layer among the plurality of intermediate layers; and training the neural network based on the difference between the first result value and the second result value.
상기 제2 활성화 함수는 상기 제2 활성화 함수의 피크 값이 고정되도록 상기 제2 활성화 함수의 승수가 상기 제2 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터 및 상기 제2 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터에 의해 결정될 수 있다. The second activation function is such that a multiplier of the second activation function is associated with a first hyperparameter associated with an ascending slope of the second activation function and a descending slope of the second activation function such that a peak value of the second activation function is fixed. It can be determined by the second hyperparameter.
상기 추가 노드들의 개수는 상기 중간 노드들의 개수 -1 개이고, 상기 추가 노드들과 상기 중간 노드들은 완전 연결(fully connected)될 수 있다. The number of additional nodes is equal to the number of intermediate nodes -1, and the additional nodes and the intermediate nodes may be fully connected.
상기 제2 활성화 함수()는 다음의 수학식으로 표현되고, The second activation function ( ) is expressed by the following equation,
, ,
여기서, 상기 a는 상기 제2 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터를 나타내고, 상기 b는 상기 제2 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터를 나타내며, 상기 는 오일러 넘버를 나타내며, 상기 x는 상기 추가 노드들에 대한 입력을 나타내고, 상기 는 상기 x가 0보다 작을 때에 상기 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝 함수를 나타낼 수 있다. Here, a represents a first hyperparameter associated with an ascending slope of the second activation function, and b represents a second hyperparameter associated with a descending slope of the second activation function, denotes an Euler number, where x denotes an input to the additional nodes, may represent a Heaviside step function that makes the output of the activation function 0 when the x is less than 0.
상기 제2 활성화 함수의 상기 동적 범위는 [0, 1]으로 제한될 수 있다. The dynamic range of the second activation function may be limited to [0, 1].
상기 제1 활성화 함수는 계단 함수, 시그모이드 함수, 하이퍼볼릭 탄젠트 함수, 렐루 함수, 및 리키 렐루 함수 중 어느 하나를 포함할 수 있다. The first activation function may include any one of a step function, a sigmoid function, a hyperbolic tangent function, a relu function, and a ricky relu function.
일 실시예에 따르면, 입력 레이어, 복수의 중간 레이어들, 및 출력 레이어를 포함하는 뉴럴 네트워크의 트레이닝 방법은 상기 입력 레이어에 입력된 학습 데이터를, 상기 중간 레이어들 중 상기 입력 레이어에 인접한 제1 중간 레이어에 속하며 제1 활성화 함수에 따라 동작하는 제1 노드들에 전파하여 제1 특징 벡터를 생성하는 단계; 상기 제1 특징 벡터와 상기 학습 데이터에 대응하는 정답 벡터 간의 차이에 기초하여, 상기 뉴럴 네트워크를 1차 트레이닝하는 단계; 상기 제1 특징 벡터를, 상기 1차 트레이닝된 뉴럴 네트워크의 중간 레이어들 중 상기 출력 레이어에 인접한 제2 중간 레이어에 속하며 제2 활성화 함수에 따라 동작하는 제2 노드들에 전파하여 제2 특징 벡터를 생성하는 단계; 및 상기 제2 임베딩 벡터를 상기 출력 레이어를 통해 출력한 출력값과 상기 학습 데이터에 대응하는 정답값 간의 차이에 기초하여, 상기 제1 트레이닝된 뉴럴 네트워크를 2차 트레이닝하는 단계를 포함한다. According to an embodiment, a method for training a neural network including an input layer, a plurality of intermediate layers, and an output layer includes learning data input to the input layer, and a first intermediate layer adjacent to the input layer among the intermediate layers. generating a first feature vector by propagating to first nodes belonging to the layer and operating according to a first activation function; primary training of the neural network based on a difference between the first feature vector and the correct answer vector corresponding to the learning data; The first feature vector is propagated to second nodes belonging to a second intermediate layer adjacent to the output layer among intermediate layers of the first-trained neural network and operating according to a second activation function to obtain a second feature vector. generating; and performing secondary training on the first trained neural network based on a difference between an output value obtained by outputting the second embedding vector through the output layer and a correct answer value corresponding to the learning data.
상기 제2 활성화 함수는 상기 제2 활성화 함수의 피크 값이 고정되도록 상기 제2 활성화 함수의 승수가 상기 제2 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터 및 상기 제2 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터에 의해 결정될 수 있다. The second activation function is such that a multiplier of the second activation function is associated with a first hyperparameter associated with an ascending slope of the second activation function and a descending slope of the second activation function such that a peak value of the second activation function is fixed. It can be determined by the second hyperparameter.
상기 제2 활성화 함수()는 다음의 수학식으로 표현되고, The second activation function ( ) is expressed by the following equation,
[수학식][mathematical expression]
, ,
여기서, 상기 a는 상기 제2 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터를 나타내고, 상기 b는 상기 제2 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터를 나타내며, 상기 는 오일러 넘버를 나타내며, 상기 x는 상기 제2 특징 벡터를 나타내고, 상기 는 상기 x가 0보다 작을 때에 상기 제2 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝 함수를 나타낼 수 있다. Here, a represents a first hyperparameter associated with an ascending slope of the second activation function, and b represents a second hyperparameter associated with a descending slope of the second activation function, denotes an Euler number, the x denotes the second feature vector, and may represent a Heaviside step function that makes an output of the second activation function 0 when the x is less than 0.
상기 제2 활성화 함수의 상기 동적 범위는 [0, 1]으로 제한될 수 있다. The dynamic range of the second activation function may be limited to [0, 1].
상기 제1 활성화 함수는 계단 함수, 시그모이드 함수, 하이퍼 볼릭탄젠트 함수, 및 렐루 함수, 및 리키 렐루 함수 중 어느 하나를 포함할 수 있다. The first activation function may include any one of a step function, a sigmoid function, a hyperbolic tangent function, a relu function, and a ricky relu function.
일 실시예에 따르면, 뉴럴 네트워크를 이용하여 생체 정보의 위조 여부를 검출하는 방법은 사용자의 생체 정보를 포함하는 입력 데이터로부터 상기 생체 정보의 위조(spoof) 여부를 검출하는 상기 뉴럴 네트워크의 복수의 중간 레이어들로부터, 미리 트레이닝된 하나 이상의 제1 분류기를 이용하여, 하나 이상의 제1 특징 벡터를 추출하는 단계; 상기 하나 이상의 제1 특징 벡터에 기초하여, 상기 생체 정보의 제1 위조 여부를 검출하는 단계; 상기 제1 위조 여부가 검출되는지 여부에 따라, 상기 출력 레이어로부터 출력되는 출력 벡터를 미리 트레이닝된 제2 분류기에 인가하여 제2 스코어를 산출하는 단계; 및 상기 하나 이상의 제1 특징 벡터에 기초하여 산출된 제1 스코어 및 상기 제2 스코어를 융합한 스코어에 의해 상기 생체 정보의 제2 위조 여부를 검출하는 단계를 포함하고, 상기 하나 이상의 제1 분류기 및 상기 제2 분류기 중 적어도 하나는 상기 뉴럴 네트워크를 위한 활성화 함수의 피크 값이 고정되도록 상기 활성화 함수의 승수가 상기 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터 및 상기 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터에 의해 결정된 상기 활성화 함수에 의해 트레이닝된 것일 수 있다. According to an embodiment, a method of detecting whether biometric information is forged or not using a neural network includes a plurality of middle points of the neural network that detects whether or not the biometric information is spoofed from input data including the user's biometric information. extracting one or more first feature vectors from the layers using one or more pretrained first classifiers; detecting whether the biometric information is first forged based on the one or more first feature vectors; calculating a second score by applying an output vector output from the output layer to a pretrained second classifier according to whether the first forgery is detected; and detecting whether the biometric information is second forged or not by a fusion score of the first score calculated based on the one or more first feature vectors and the second score, wherein the one or more first classifiers and In at least one of the second classifiers, a multiplier of the activation function is a first hyperparameter associated with an ascending slope of the activation function and a second hyperparameter associated with a descending slope of the activation function such that a peak value of the activation function for the neural network is fixed. It may be trained by the activation function determined by hyperparameters.
상기 활성화 함수의 상기 동적 범위는 [0, 1]으로 제어될 수 있다. The dynamic range of the activation function may be controlled as [0, 1].
상기 활성화 함수()는 다음의 수학식으로 표현되고, The activation function ( ) is expressed by the following equation,
[수학식][mathematical expression]
여기서, 상기 a는 상기 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터를 나타내고, 상기 b는 상기 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터를 나타내며, 상기 는 오일러 넘버를 나타내며, 상기 x는 상기 입력 데이터는 나타내고, 상기 는 상기 x가 0보다 작을 때에 상기 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝 함수를 나타낼 수 있다. Here, a represents a first hyperparameter associated with an ascending slope of the activation function, and b represents a second hyperparameter associated with a descending slope of the activation function. represents the Euler number, the x represents the input data, and the may represent a Heaviside step function that makes the output of the activation function 0 when the x is less than 0.
상기 하나 이상의 제1 특징 벡터를 추출하는 단계는 상기 하나 이상의 제1 분류기 중 제1-1 분류기를 이용하여 상기 복수의 중간 레이어들 중 제1 중간 레이어로부터 제1-1 특징 벡터를 추출하는 단계; 상기 하나 이상의 제1 분류기 중 제1-2 분류기를 이용하여 상기 제1 중간 레이어 이후의 제2 중간 레이어로부터 제1-2 특징 벡터를 추출하는 단계; 및 상기 제1-1 특징 벡터 및 상기 제1-2 특징 벡터를 조합한 특징 벡터를 추출하는 단계를 포함할 수 있다. The extracting of the one or more first feature vectors may include extracting a 1-1 feature vector from a first intermediate layer among the plurality of intermediate layers by using a 1-1 classifier among the one or more first classifiers; extracting 1-2 feature vectors from a second intermediate layer after the first intermediate layer by using a 1-2 classifier among the one or more first classifiers; and extracting a feature vector obtained by combining the 1-1 feature vector and the 1-2 feature vector.
상기 생체 정보의 제1 위조 여부를 검출하는 단계는 미리 구비된 등록 특징 벡터 및 위조 특징 벡터 중 적어도 하나와 상기 조합한 특징 벡터 간의 유사도에 기초하여 상기 제1 스코어를 산출하는 단계; 및 상기 하나 이상의 제1 분류기를 이용하여 상기 제1 스코어가 위조 정보로 판단되는 스코어인지 또는 실제 정보로 판단되는 스코어인지를 분류하는 단계를 포함할 수 있다. The step of detecting whether the biometric information is first forged includes: calculating the first score based on a similarity between at least one of a previously prepared registered feature vector and a fake feature vector and the combined feature vector; and classifying whether the first score is a score determined as fake information or a score determined as real information using the one or more first classifiers.
상기 생체 정보는 상기 사용자의 지문, 홍채, 및 얼굴 중 어느 하나를 포함할 수 있다. The biometric information may include any one of the user's fingerprint, iris, and face.
일 실시예에 따르면, 뉴럴 네트워크를 이용하여 생체 정보의 위조 여부를 검출하는 전자 장치는 사용자의 상기 생체 정보를 포함하는 입력 데이터를 캡쳐하는 센서; 상기 입력 데이터로부터 상기 생체 정보의 위조 여부를 검출하는 상기 뉴럴 네트워크의 복수의 중간 레이어들로부터, 미리 트레이닝된 하나 이상의 제1 분류기를 이용하여, 하나 이상의 제1 특징 벡터를 추출하고, 상기 하나 이상의 제1 특징 벡터에 기초하여, 상기 생체 정보의 제1 위조 여부를 검출하고, 상기 제1 위조 여부가 검출되는지 여부에 따라, 상기 출력 레이어로부터 출력되는 출력 벡터를 미리 트레이닝된 제2 분류기에 인가하여 제2 스코어를 산출하며, 상기 하나 이상의 제1 특징 벡터에 기초하여 산출된 제1 스코어 및 상기 제2 스코어를 융합한 스코어에 의해 상기 생체 정보의 제2 위조 여부를 검출하는 프로세서; 및 상기 제1 위조 여부 및 상기 제2 위조 여부 중 적어도 하나를 출력하는 출력 장치를 포함하고, 상기 하나 이상의 제1 분류기 및 상기 제2 분류기 중 적어도 하나는 상기 뉴럴 네트워크를 위한 활성화 함수의 피크 값이 고정되도록 상기 활성화 함수의 승수가 상기 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터 및 상기 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터에 의해 결정되는 상기 활성화 함수에 기초하여 트레이닝된다. According to an embodiment, an electronic device that detects whether biometric information is forged using a neural network includes a sensor that captures input data including the biometric information of a user; From the input data, one or more first feature vectors are extracted from a plurality of intermediate layers of the neural network that detects whether the biometric information is forged or not, using one or more first classifiers trained in advance, and the one or more first feature vectors are extracted. Based on 1 feature vector, whether the biometric information is first forged or not is detected, and according to whether the first forgery or not is detected, an output vector output from the output layer is applied to a pre-trained second classifier to generate a second classifier. a processor that calculates two scores and detects whether the biometric information is second forged or not based on a fusion score of the first score calculated based on the one or more first feature vectors and the second score; and an output device outputting at least one of the first falsification status and the second falsification status, wherein at least one of the one or more first classifiers and the second classifier has a peak value of an activation function for the neural network A multiplier of the activation function to be fixed is trained based on the activation function determined by a first hyperparameter associated with a rising slope of the activation function and a second hyperparameter associated with a falling slope of the activation function.
상기 활성화 함수()는 다음의 수학식으로 표현되고, The activation function ( ) is expressed by the following equation,
[수학식][mathematical expression]
여기서, 상기 a는 상기 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터를 나타내고, 상기 b는 상기 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터를 나타내며, 상기 는 오일러 넘버를 나타내며, 상기 x는 상기 추가 노드들에 대한 입력을 나타내고, 상기 는 상기 x가 0보다 작을 때에 상기 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝 함수를 나타낼 수 있다.Here, a represents a first hyperparameter associated with an ascending slope of the activation function, and b represents a second hyperparameter associated with a descending slope of the activation function. denotes an Euler number, where x denotes an input to the additional nodes, may represent a Heaviside step function that makes the output of the activation function 0 when the x is less than 0.
도 1은 일 실시예에 따른 뉴럴 네트워크를 포함하는 전자 장치가 사용되는 환경을 도시한 도면이다.
도 2는 일 실시예에 따른 뉴럴 네트워크의 동작 방법을 나타낸 흐름도이다.
도 3은 일 실시예에 따른 뉴럴 네트워크의 구조를 도시한 도면이다.
도 4는 일 실시예에 따른 뉴럴 네트워크가 위조 정보 및 실제 정보를 구분하는 영역을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 뉴럴 네트워크의 각 레이어들에 적용되는 활성화 함수를 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 뉴럴 네트워크의 트레이닝 방법을 나타낸 흐름도이다.
도 7은 도 6의 트레이닝 방법을 설명하기 위한 도면이다.
도 8은 다른 실시예에 따른 뉴럴 네트워크의 트레이닝 방법을 나타낸 흐름도이다.
도 9는 도 8의 트레이닝 방법을 설명하기 위한 도면이다.
도 10은 일 실시예에 따른 뉴럴 네트워크를 이용하여 생체 정보의 위조 여부를 검출하는 방법을 나타낸 흐름도이다.
도 11은 도 10의 뉴럴 네트워크의 구조 및 동작을 설명하기 위한 도면이다.
도 12는 일 실시예에 따른 뉴럴 네트워크를 이용하여 생체 정보의 위조 여부를 검출하는 전자 장치의 블록도이다.1 is a diagram illustrating an environment in which an electronic device including a neural network according to an exemplary embodiment is used.
2 is a flowchart illustrating a method of operating a neural network according to an exemplary embodiment.
3 is a diagram illustrating the structure of a neural network according to an embodiment.
4 is a diagram for explaining a region in which a neural network distinguishes fake information and real information according to an exemplary embodiment.
5 is a diagram for explaining an activation function applied to each layer of a neural network according to an exemplary embodiment.
6 is a flowchart illustrating a method for training a neural network according to an exemplary embodiment.
FIG. 7 is a diagram for explaining the training method of FIG. 6 .
8 is a flowchart illustrating a method for training a neural network according to another embodiment.
FIG. 9 is a diagram for explaining the training method of FIG. 8 .
10 is a flowchart illustrating a method of detecting forgery of biometric information using a neural network according to an embodiment.
FIG. 11 is a diagram for explaining the structure and operation of the neural network of FIG. 10 .
12 is a block diagram of an electronic device that detects forgery of biometric information using a neural network according to an exemplary embodiment.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for illustrative purposes only, and may be changed and implemented in various forms. Therefore, the form actually implemented is not limited only to the specific embodiments disclosed, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical idea described in the embodiments.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Although terms such as first or second may be used to describe various components, such terms should only be construed for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.It should be understood that when an element is referred to as being “connected” to another element, it may be directly connected or connected to the other element, but other elements may exist in the middle.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 동작, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 동작, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "comprise" or "have" are intended to designate that the described feature, number, operation, operation, component, part, or combination thereof exists, but one or more other features or numbers, It should be understood that the presence or addition of an operation, operation, component, part, or combination thereof is not precluded.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in this specification, it should not be interpreted in an ideal or excessively formal meaning. don't
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. In the description with reference to the accompanying drawings, the same reference numerals are given to the same components regardless of reference numerals, and overlapping descriptions thereof will be omitted.
도 1은 일 실시예에 따른 뉴럴 네트워크를 포함하는 전자 장치가 사용되는 환경을 도시한 도면이다. 도 1을 참조하면, 일 실시예에 따라 사용자의 생체 정보(예를 들어, 지문)를 센싱하는 센서(110)를 포함하는 전자 장치(100) 및 등록 지문 영상들(121, 122, 123)을 포함하는 등록 지문 데이터베이스(120)가 도시된다. 이하에서는 설명의 편의를 위하여 사용자의 생체 정보가 지문 영상인 경우를 일 예로 들어 설명하지만, 반드시 이에 한정되는 것은 아니다. 생체 정보는 지문 영상 이외에도 홍채 영상, 손금 영상, 및 얼굴 영상 등 다양한 정보를 포함할 수 있다. 1 is a diagram illustrating an environment in which an electronic device including a neural network according to an exemplary embodiment is used. Referring to FIG. 1 , an
전자 장치(100)는 센서(110)를 통하여 사용자의 지문이 나타난 입력 지문 영상(115)을 획득할 수 있다. 센서(110)는 예를 들어, 사용자의 지문을 캡쳐(capture)하는 초음파 지문 센서, 광학 지문 센서, 정전 방식의 지문 센서, 또는 이미지 센서일 수 있으며, 반드시 이에 한정되지는 않는다. 센서(110)는 예를 들어, 도 12의 센서(1210)일 수 있다. The
지문 인식을 위해 지문 등록이 수행될 수 있다. 등록 지문 영상들(121, 122, 123)은 지문 등록 과정을 거쳐 등록 지문 데이터베이스(120)에 미리 저장될 수 있다. 개인 정보 보호를 위하여, 등록 지문 데이터베이스(120)는 등록 지문 영상들(121, 122, 123)을 그대로 저장하는 대신, 등록 지문 영상들(121, 122, 123)로부터 추출된 특징들 또는 특징 벡터들을 저장할 수도 있다. 등록 지문 데이터베이스(120)는 전자 장치(100)에 포함된 메모리(예: 도 12의 메모리(1270))에 저장되거나, 전자 장치(100)와 통신할 수 있는 서버, 로컬 캐시(local cache) 또는 클라우드 서버(cloud server) 등과 같은 외부 장치(미도시)에 저장될 수 있다.Fingerprint registration may be performed for fingerprint recognition. The registered
인증을 위한 입력 지문 영상(115)이 수신되면, 전자 장치(100)는 입력 지문 영상(115)에 나타난 입력 지문과 등록 지문 영상들(121 내지 123)에 나타난 등록 지문들 간의 유사도에 의해 입력 지문 영상(115)의 사용자를 인증할 수도 있고, 또는 입력 지문 영상(115)의 위조(spoofing) 여부를 검출할 수 있다. 여기서, '위조'은 실제(live) 생체 정보가 아닌 가짜(fake) 생체 정보를 의미하는 것으로서, 예를 들어, 생체 정보의 복제, 위조 및 변조를 모두 포함하는 의미로 이해될 수 있다.When the
아래에서 상세히 설명하겠지만, 일 실시예에 따른 전자 장치(100)는 미리 구비된 불특정 다수의 실제 지문 특징들, 미리 구비된 불특정 다수의 위조 지문 특징들 및/또는 기기 사용자의 등록 지문 특징들을 이용하여 입력 지문에 대한 인증 또는 위조 여부 등을 결정할 수 있다.As will be described in detail below, the
도 2는 일 실시예에 따른 뉴럴 네트워크의 동작 방법을 나타낸 흐름도이다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.2 is a flowchart illustrating a method of operating a neural network according to an exemplary embodiment. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, or at least two operations may be performed in parallel.
도 2를 참조하면, 일 실시예에 따른 입력 레이어(input layer), 복수의 중간 레이어들, 및 출력 레이어(out layer)를 포함하는 뉴럴 네트워크는 단계(210) 내지 단계(240)를 수행할 수 있다. 뉴럴 네트워크는 예를 들어, CNN(Convolution Neural Network), 및 DNN(Deep Neural Network) 중 어느 하나를 포함할 수 있으며, 반드시 이에 한정되지는 않는다. Referring to FIG. 2 , a neural network including an input layer, a plurality of intermediate layers, and an out layer according to an embodiment may perform
단계(210)에서, 뉴럴 네트워크는 복수의 중간 레이어들 중 입력 레이어에 인접한 임의의 제1 중간 레이어에 속한 제1 노드들에게 제1 활성화 함수를 적용하여 제1 중간 벡터를 생성한다. 제1 활성화 함수는 예를 들어, 계단 함수(Step function), 시그모이드 함수(Sigmoid function), 하이퍼볼릭 탄젠트 함수(Hyperbolic tangent function), 렐루(ReLU) 함수, 및 리키 렐루(Leaky ReLU) 함수 중 어느 하나를 포함할 수 있으며, 반드시 이에 한정되지는 않는다. In
뉴럴 네트워크의 구조 및 동작은 아래의 도 3 내지 도 5를 참조하여 보다 구체적으로 설명한다. The structure and operation of the neural network will be described in more detail with reference to FIGS. 3 to 5 below.
단계(220)에서, 뉴럴 네트워크는 제1 중간 벡터를, 중간 레이어들 중 출력 레이어에 인접한 제2 중간 레이어에 속한 제2 노드들에게 전달한다. In
단계(230)에서, 뉴럴 네트워크는 제2 노드들에게 제2 활성화 함수를 적용하여 제2 중간 벡터를 생성한다. 제2 활성화 함수에 대하여는 아래의 도 5를 통해 보다 구체적으로 설명한다. In
단계(240)에서, 뉴럴 네트워크는 제2 중간 벡터를 출력 레이어에 인가한다. At
도 3은 일 실시예에 따른 뉴럴 네트워크의 구조를 도시한 도면이다. 3 is a diagram illustrating the structure of a neural network according to an embodiment.
도 3을 참조하면, 뉴럴 네트워크의 일 예시에 해당하는 심층 신경망(Deep Neural Network; DNN)(300)의 개략적인 구조가 도시된다. 심층 신경망(300)은 딥 러닝(deep learning)을 통해 트레이닝될 수 있다. Referring to FIG. 3 , a schematic structure of a deep neural network (DNN) 300 corresponding to an example of a neural network is shown. The deep
심층 신경망(300)은 복수의 노드들로 구성되는 복수의 레이어들(310, 320, 330)을 포함할 수 있다. 심층 신경망(300)은 복수의 레이어들(310, 320, 330) 각각에 포함된 복수의 노드들을 다른 레이어에 포함된 노드에 연결시키는 연결 가중치들을 포함할 수 있다. 전자 장치는 심층 신경망(300)을 메모리(예를 들어, 아래 도 12의 메모리(1270) 참조)에 저장된 내부 데이터베이스로부터 획득하거나, 출력 장치(예를 들어, 도 12의 출력 장치(1250) 참조)를 통해 외부 서버로부터 수신하여 획득할 수 있다.The deep
예를 들어, 심층 신경망(300)은 선 형태의 에지들(edges)로 연결된 많은 수의 인공 뉴런들을 포함할 수 있다. 인공 뉴런은 도 3에서 원형의 도형으로 표시되며, 노드(node)라고 지칭될 수 있다. 인공 뉴런들은 연결 가중치(connection weight)를 가지는 에지들을 통해 상호 연결될 수 있다. 연결 가중치는 에지들이 갖는 특정한 값으로, '시냅스 가중치(synapse weight)', '가중치', 또는 '연결 강도'라고 지칭될 수 있다.For example, the deep
심층 신경망(300)은 예를 들어, 입력 레이어(input layer)(310), 히든 레이어(hidden layer)(320), 출력 레이어(output layer)(330)을 포함할 수 있다. 입력 레이어(310), 히든 레이어(320) 및 출력 레이어(330)는 복수 개의 노드들을 포함할 수 있다. 입력 레이어(110)에 포함된 노드는 입력 노드(input node)라고 지칭되고, 히든 레이어(320)에 포함된 노드는 히든 노드(hidden node)라고 지칭될 수 있다. 히든 레이어(320)는 입력 레이어(310)와 출력 레이어(330)의 중간에 위치한다는 점에서 '중간 레이어'라고 지칭할 수도 있다. 이하, '히든 레이어'와 '중간 레이어'는 동일한 의미로 이해될 수 있다.The deep
출력 레이어(330)에 포함된 노드는 출력 노드(output node)라고 지칭될 수 있다.A node included in the
입력 레이어(310)는 트레이닝 또는 인식을 수행하기 위한 입력 데이터를 수신하여 히든 레이어(320)에 전달할 수 있다. 출력 레이어(330)는 히든 레이어(320)로부터 수신한 신호에 기초하여 심층 신경망(300)의 출력을 생성할 수 있다. 히든 레이어(320)는 입력 레이어(310)와 출력 레이어(330) 사이에 위치하고, 입력 레이어(310)를 통해 전달된 트레이닝 데이터의 트레이닝 입력을 예측하기 쉬운 값으로 변화시킬 수 있다. 입력 레이어(310)에 포함된 입력 노드들과 히든 레이어(320)에 포함된 히든 노드들은 연결 가중치를 가지는 연결선들을 통해 서로 연결될 수 있다. 히든 레이어(320)에 포함된 히든 노드들과 출력 레이어(330)에 포함된 출력 노드들은 연결 가중치를 가지는 연결선들을 통해 서로 연결될 수 있다.The
히든 레이어(320)는 복수 개의 레이어들(320-1, .. , 320-N)을 포함할 수 있다. 예를 들어, 히든 레이어(320)에 제1 히든 레이어, 제2 히든 레이어, 및 제3 히든 레이어가 포함되는 경우를 가정하면, 제1 히든 레이어에 속한 히든 노드의 출력은 제2 히든 레이어에 속한 히든 노드들에 연결될 수 있다. 제2 히든 레이어에 속한 히든 노드의 출력은 제3 히든 레이어에 속한 히든 노드들에 연결될 수 있다. The
전자 장치는 이전 히든 레이어에 포함된 이전 히든 노드들의 출력들을 연결 가중치를 가지는 연결선들을 통해 해당 히든 레이어에 입력할 수 있다. 전자 장치는 이전 히든 노드들의 출력들에 연결 가중치가 적용된 값들 및 활성화 함수(activation function)에 기초하여, 히든 레이어에 포함된 히든 노드들의 출력을 생성할 수 있다. 일 예시에 따르면, 활성화 함수의 결과가 현재 히든 노드의 임계 값을 초과하는 경우, 다음 히든 노드로 출력이 발화될 수 있다. 이 경우, 현재 히든 노드는 입력 벡터들을 통하여 특정 임계 활성화 강도에 도달하기 전에는 다음 히든 노드로 신호를 발화하지 않고, 비활성화 상태를 유지할 수 있다.The electronic device may input outputs of previous hidden nodes included in the previous hidden layer to the corresponding hidden layer through connection lines having connection weights. The electronic device may generate outputs of hidden nodes included in the hidden layer based on values to which connection weights are applied to outputs of previous hidden nodes and an activation function. According to an example, when a result of the activation function exceeds a threshold value of the current hidden node, output may be ignited to the next hidden node. In this case, the current hidden node may maintain an inactive state without igniting a signal to the next hidden node until a specific threshold activation strength is reached through input vectors.
일 실시예에 따른 전자 장치는 지도 학습(supervised learning)을 통해 심층 신경망(300)을 트레이닝시킬 수 있다. 전자 장치는 소프트웨어 모듈, 하드웨어 모듈, 또는 이들의 조합으로 구현될 수 있다. 지도 학습은 트레이닝 데이터의 트레이닝 입력 및 그에 대응하는 트레이닝 출력을 함께 심층 신경망(300)에 입력하고, 트레이닝 데이터의 트레이닝 출력에 대응하는 출력 데이터가 출력되도록 연결선들의 연결 가중치를 업데이트하는 기법이다. 트레이닝 데이터는 트레이닝 입력 및 트레이닝 출력의 쌍을 포함하는 데이터이다. An electronic device according to an embodiment may train the deep
도 3은 심층 신경망(300)의 구조를 노드 구조로 표현하였으나, 실시예들은 이러한 노드 구조에 국한되지 않는다. 메모리에 뉴럴 네트워크를 저장하기 위하여 다양한 데이터 구조가 이용될 수 있다.3 represents the structure of the deep
일 실시예에 따르면, 전자 장치는 심층 신경망(300)에 역전파되는 손실 및 심층 신경망(300)에 포함된 노드들의 출력 값에 기초한 기울기 하강(gradient descent) 기법을 통하여, 노드들의 파라미터를 결정할 수 있다.According to an embodiment, the electronic device may determine parameters of nodes through a gradient descent technique based on a loss backpropagated to the deep
예를 들어, 전자 장치는 손실 역전파 학습(loss back-propagation learning)을 통해 노드들 사이의 연결 가중치를 업데이트할 수 있다. 손실 역전파 학습은, 주어진 트레이닝 데이터에 대해 포워드 계산(forward computation)을 통하여 손실을 추정한 후, 출력 레이어(330)에서 시작하여 히든 레이어(320) 및 입력 레이어(110)를 향하는 역 방향으로 추정한 손실을 전파하면서, 손실을 줄이는 방향으로 연결 가중치를 업데이트하는 방법이다. For example, the electronic device may update connection weights between nodes through loss back-propagation learning. Loss backpropagation learning, after estimating the loss through forward computation for given training data, is estimated starting from the
심층 신경망(300)의 처리는 입력 레이어(310), 히든 레이어(320), 및 출력 레이어(330)의 방향으로 진행되지만, 손실 역 전파 트레이닝에서 연결 가중치의 업데이트 방향은 출력 레이어(330), 히든 레이어(320), 및 입력 레이어(310)의 방향으로 진행될 수 있다. 하나 또는 그 이상의 프로세서는 뉴럴 네트워크를 원하는 방향으로 처리하기 위하여, 레이어 또는 일련의 계산 데이터를 저장하는 버퍼 메모리(buffer)를 이용할 수도 있다.The processing of the deep
전자 장치는 현재 설정된 연결 가중치들이 얼마나 최적에 가까운지를 측정하기 위한 목적 함수(objective function)를 정의하고, 목적 함수의 결과에 기초하여 연결 가중치들을 계속 변경하고, 트레이닝을 반복적으로 수행할 수 있다. 예를 들어, 목적 함수는 심층 신경망(300)이 트레이닝 데이터의 트레이닝 입력에 기초하여 실제 출력한 출력 값과 출력되기로 원하는 기대 값 사이의 손실을 계산하기 위한 손실 함수일 수 있다. 전자 장치는 손실 함수의 값을 줄이는 방향으로 연결 가중치들을 업데이트할 수 있다.The electronic device may define an objective function for measuring how close to optimum the currently set connection weights are, continuously change the connection weights based on the result of the objective function, and repeatedly perform training. For example, the objective function may be a loss function for calculating a loss between an output value actually output by the deep
일 실시예에 따른 심층 신경망(300)은 네트워크를 통해 실제 정보 또는 위조 정보를 판단하도록 트레이닝되며, 최종 출력 레이어의 출력이 최적의 결과를 도출하도록 트레이닝되지만, 트레이닝 과정에서 출력 레이어 이외에도 네트워크를 구성하는 각 중간 레이어 역시 실제 정보와 위조 정보를 판단하는 구분력을 가질 수 있다. 중간 레이어의 출력 역시 구분력을 가질 수 있으므로 이를 활용한다면 최종 출력 레이어(330)까지 가기 전에 생체 정보의 위조 여부를 도출할 수 있어 수행 시간 단축이 가능하다. The deep
일 실시예에 따른 전자 장치는 심층 신경망(300)이 최종 결과를 도출하기 이전 단계에서 구분력을 가지는 중간 레이어를 활용하여 위조 검출 정확도의 저하를 최소화하면서도 위조 여부의 검출 속도를 향상시킬 수 있다. 또한, 전자 장치는 중간 레이어의 출력을 활용함에 따른 정확도 측면의 저하를 보완하기 위해 서로 다른 영상들을 입력으로 수신하는 네트워크들의 결과를 활용하여 정확도 저하를 최소화할 수 있다.An electronic device according to an embodiment may improve detection speed of whether or not to be counterfeit while minimizing degradation in counterfeit detection accuracy by utilizing an intermediate layer having discrimination power in a step before the deep
도 4는 일 실시예에 따른 뉴럴 네트워크가 위조 정보 및 실제 정보를 구분하는 영역을 설명하기 위한 도면이다. 도 4를 참조하면, 일 실시예에 따른 뉴럴 네트워크가 분류한 특징 분포에 따른 영역들(410, 420, 430, 440)을 구분한 데이터그램(400)이 도시된다. 4 is a diagram for explaining a region in which a neural network distinguishes fake information and real information according to an exemplary embodiment. Referring to FIG. 4 , a
뉴럴 네트워크는 불특정 다수의 실제 생체 정보와 불특정 다수의 위조 생체 정보를 이용하여 학습된 것일 수 있다. 뉴럴 네트워크에 의하여 생성되는 벡터는 생체 정보의 특징 정보를 내포(embed)하며, '임베딩 벡터(embedding vector)' 또는 '특징 벡터(feature vector)'로 지칭될 수 있다.The neural network may be learned using an unspecified number of real biometric information and an unspecified number of counterfeit biometric information. A vector generated by a neural network embeds feature information of biometric information and may be referred to as an 'embedding vector' or a 'feature vector'.
도 4에 도시된 특징 분포에서 제1 영역(410)은 입력 데이터로부터 추출된 특징 또는 특징 벡터가 실제 정보(live information)로 분류되는 영역에 해당하고, 제2 영역(420)은 입력 데이터로부터 추출된 특징 또는 특징 벡터가 위조 정보(spoof information)로 분류되는 영역에 해당할 수 있다. In the feature distribution shown in FIG. 4, the
또한, 제1 영역(410)과 제2 영역(420) 사이의 제3 영역(430)은 실제 정보와 위조 정보 사이의 구분력을 결정 짓는 부분에 해당할 수 있다. 제3 영역(430)은 정규화(generalization) 성능을 위해서, 오버 피팅(over-fitting)이 일어나지 않도록 오류를 일부 허용하는 부분에 해당할 수 있다. 제3 영역(430)은 뉴럴 네트워크에 의해 산출된 입력 데이터에 대응하는 스코어('제1 스코어')가 실제(live) 정보에 해당하는 스코어인지 아니면 위조(spoof) 정보에 해당하는 스코어인지를 명확하게 구분할 수 있는 임계 범위를 포함할 수 있다. 임계 범위는 제1 스코어의 확률 분포에서 예를 들어, 제1 스코어가 위조 정보로 판단될 최대 확률에 대응하는 제1 임계치 및 제1 스코어가 실제 정보로 판단될 최소 확률에 대응하는 제2 임계치에 기초하여 결정될 수 있다.In addition, the
제1 영역(410), 제2 영역(420), 및 제3 영역(430)은 신경망이 트레이닝한 데이터 또는 특징 벡터에 대응하는 특징 분포의 내부(In-distribution) 영역에 해당할 수 있다. The
또한, 데이터그램(400)에서 특징 분포의 외부(Out-Of-Distribution; OOD) 영역에 해당하는 제4 영역(440)은 뉴럴 네트워크가 본 적 없는 데이터(unseen data), 다시 말해, 뉴럴 네트워크가 학습한 적 없는 특징에 대응하는 영역에 해당할 수 있다. 이 경우, 뉴럴 네트워크는 제4 영역(440)에 속한 특징에 대해 위조 정보인지 또는 실제 정보인지를 판단하기 어려울 수 있다. In addition, in the
제4 영역(440)에 대한 판단을 위해 증강(augmentation) 또는 정규화를 이용할 수도 있으나, 어떠한 위조 지문이라도 잘 판단하기 위해서는 뉴럴 네트워크가 제4 영역(440)이 불명확한 영역(uncertain area)이라는 정도의 판단은 하도록 하는 것이 바람직할 수 있다. Augmentation or normalization may be used to determine the
분포의 외부(ODD) 영역에 해당하는 제4 영역(440)에 해당하는 입력을 감지하는 대부분의 방법들이 분포의 외부(ODD) 영역에 대한 지식 또는 거부 클래스로 분류기를 보강하여 문제를 공식화하거나, 또는 특정한 가정에 의존하는 반면, 일 실시예에서는 뉴럴 네트워크의 활성화 함수를 변경하여 분포의 외부(ODD) 영역에 해당하는 입력을 처리할 수 있다. Most methods for detecting an input corresponding to the
도 5는 일 실시예에 따른 뉴럴 네트워크의 각 레이어들에 적용되는 활성화 함수를 설명하기 위한 도면이다. 도 5를 참조하면, 일 실시예에 따른 뉴럴 네트워크(500)를 나타낸 도면이 도시된다. 5 is a diagram for explaining an activation function applied to each layer of a neural network according to an exemplary embodiment. Referring to FIG. 5 , a diagram illustrating a
일 실시예에서는 뉴럴 네트워크(500)의 복수의 중간 레이어들 중 입력 레이어(510)에 인접한 임의의 제1 중간 레이어(520)에 속한 제1 노드들에게 제1 활성화 함수를 적용하여 제1 중간 벡터를 생성할 수 있다. 이때, 제1 활성화 함수는 예를 들어, 계단 함수(Step function), 시그모이드 함수(Sigmoid function), 하이퍼볼릭 탄젠트 함수(Hyperbolic tangent function), 렐루(ReLU) 함수, 및 리키 렐루(Leaky ReLU) 함수 중 어느 하나를 포함할 수 있으며, 반드시 이에 한정되지는 않는다. In an embodiment, a first intermediate vector is obtained by applying a first activation function to first nodes belonging to an arbitrary first
뉴럴 네트워크(500)는 제1 중간 레이어(520)에 의해 생성된 제1 중간 벡터를, 전파를 통해 중간 레이어들 중 출력 레이어(540)에 인접한 제2 중간 레이어(530)에 속한 제2 노드들에게 전달하고, 제2 노드들에게 제2 활성화 함수를 적용하여 제2 중간 벡터를 생성할 수 있다. 뉴럴 네트워크는 제2 중간 레이어(530)에서 생성된 제2 중간 벡터를 출력 레이어(540)에 인가하여 추정 결과를 출력할 수 있다. The
특정 가정 하에서 적어도 하나의 중간 레이어를 가진 임의의 뉴럴 네트워크는 무한 너비의 한계에서 가우시안 프로세스(Gaussian Process; GP)로 수렴할 수 있다. 가우시안 프로세스(GP) 모델에서 널리 사용되는 마테른 커널(Matιrn Kernel)에 의해 유도된 속성을 모방하는 새로운 비선형 신경망을 위한 마테른 활성화 함수를 이용할 수 있다. Under certain assumptions, any neural network with at least one intermediate layer can converge to a Gaussian Process (GP) in the limit of infinite width. A Mattern activation function is available for new nonlinear neural networks that mimics the properties derived by the widely used Matιrn Kernel in the Gaussian Process (GP) model.
마테른 활성화 함수는 가우시안 프로세스(GP) 모델의 활성화 함수와 유사한 속성을 가질 수 있다. 마테른 활성화 함수는 제한된 평균 제곱 미분성과 함께 로컬 고정 속성이 베이지안 딥 러닝 작업에서 우수한 성능과 불확실성 보정 능력을 보여줄 수 있다. 특히, 국부적 정상성(local stationarity)은 분포 외(OOD) 영역의 불확실성을 보정하는 데 도움이 될 수 있다. The Maternian activation function may have similar properties to the activation function of the Gaussian Process (GP) model. The local fixed properties of the Maternian activation function together with the limited mean square derivative can show excellent performance and uncertainty correction ability in Bayesian deep learning tasks. In particular, local stationarity can help correct for uncertainty in the out-of-distribution (OOD) region.
일 실시예에서는 예를 들어, 가우시안 프로세서(Gaussian Process; GP)에서 사용되는 마테른 커널(Matιrn Kernel)로부터 유도된 마테른 활성화 함수를 개선한 활성화 함수('제2 활성화 함수')를 사용할 수 있다. In one embodiment, for example, an activation function ('second activation function') obtained by improving the Mattern activation function derived from the Matιrn Kernel used in a Gaussian Process (GP) can be used. .
우선, 마테른 커널로부터 유도된 마테른 활성화 함수()는 비선형 함수로서, 예를 들어, 아래의 수학식 1과 같이 표현될 수 있다. First, the Matern activation function derived from the Matern kernel ( ) is a non-linear function, and may be expressed as, for example,
여기서, Γ(·)는 감마(Gamma) 함수를 나타내고, q는 상수이며, ν와 는 하이퍼 파라미터(hyper parameter)일 수 있다. Here, Γ(·) represents the Gamma function, q is a constant, and ν and may be a hyper parameter.
예를 들어, ν > 1/2인 경우, 수학식 1에 따른 비선형 함수는 매끄럽고 연속적이며, 연속 미분 가능할 수 있다. 이와 달리, ν ≤ 1/2인 경우, 수학식 1에 따른 비선형 함수는 기하급수적으로 감소하는 스텝 함수의 형태를 취하므로 매끄럽지 않으며, 마테른 커널의 속성과 일치할 수 있다. For example, when ν > 1/2, the nonlinear function according to
또한, 는 입력(x)이 0보다 작을 때에 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝(Heaviside Step) 함수를 나타낼 수 있다. 수학식 1에서 는 마테른 활성화 함수의 형태(shape)를 나타내는 부분에 해당할 수 있다. also, may represent a Heaviside Step function that makes the output of the activation function 0 when the input (x) is less than 0. in
수학식 1에 따른 마테른 활성화 함수()는, 베이지안 뉴럴 네트워크(Bayesian Neural Network)에 대해 다른 활성화 함수보다 고정성(Stationarity) 관점에서 향상된 것으로서, 승수(Multiplier)에 대한 제약이 없을 수 있다. The Matern activation function according to Equation 1 ( ) is improved in terms of stationarity compared to other activation functions for the Bayesian Neural Network, and there may be no restrictions on multipliers.
수학식 1의 승수 는 복잡한 수식 전개를 통해 유도되지만, 예를 들어, 논리 전개의 중간에 등장하는 백색 잡음(White Noise)에 대한 승수, 또는 푸리에 변환(Fourier Transform) 시 사용된 승수 등에서 그 자유도가 증가할 수 있으므로 수식 전개 상 수학식 1의 승수는 임의의 상수로 고정될 수도 있고, 또는 고정되지 않을 수도 있다. 다시 말해, 수학식 1의 승수 는 가변성이 충분히 있는 부분에 해당할 수 있다. Multiplier of
가변성이 있는 승수 부분을 상수로 나타내는 경우, 배치 정규화(batch normalization), 및/또는 가중치(weight)에 대한 정규화 속성(normalization property)에 의해서 뉴럴 네트워크의 다이나믹스(dynamics)가 어느 정도 고정될 수 있다. 하지만, 뉴럴 네트워크에 대해 미세 조정(fine tuning)을 하는 경우, 승수 부분이 대폭 수정되어야 하고, 승수 부분이 수정되지 않는다면, 활성화 함수의 동적 범위가 0 ~ 1 사이에 존재하기 어려울 수 있다. When the variable multiplier part is expressed as a constant, the dynamics of the neural network can be fixed to some extent by batch normalization and/or normalization properties for weights. However, when fine-tuning the neural network, the multiplier part must be significantly modified, and if the multiplier part is not modified, it may be difficult for the dynamic range of the activation function to exist between 0 and 1.
일 실시예에서는 수학식 1의 승수 와 하이퍼 파라미터에 대한 자유도를 뉴럴 네트워크의 관점에서 고려하여 수학식 1을 아래의 수학식 2과 같이 표현되는 활성화 함수('제2 활성화 함수') 로 수정할 수 있다. In one embodiment, the multiplier of
여기서, a는 제2 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터를 나타내고, b는 제2 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터를 나타낼 수 있다. 하이퍼 파라미터 a,b > 0이며, 사용자에 의해 정의될 수 있다. Here, a may represent a first hyperparameter associated with an ascending slope of the second activation function, and b may represent a second hyperparameter associated with a descending slope of the second activation function. Hyperparameters a,b > 0, and can be defined by the user.
는 오일러(Euler) 넘버를 나타낼 수 있다. x는 활성화 함수에 대한 입력(예: 제2 노드들의 입력)을 나타낼 수 있다. 는 입력(x)이 0보다 작을 때에 제2 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝(Heaviside Step) 함수를 나타낼 수 있다. may represent an Euler number. x may represent an input to an activation function (eg, an input of second nodes). may represent a Heaviside Step function that makes the output of the second activation function 0 when the input (x) is less than 0.
일 실시예에 따른 제2 활성화 함수 는 제2 활성화 함수의 피크(peak) 값이 고정되도록 제2 활성화 함수의 승수(multiplier)가 제2 활성화 함수의 상승 슬로프(ascending slope)와 연관된 제1 하이퍼 파라미터(a) 및 제2 활성화 함수의 하강 슬로프(descending slope)와 연관된 제2 하이퍼 파라미터(b)에 의해 결정된다. 제2 활성화 함수의 피크(peak) 값은 예를 들어, '1'로 고정되고, 제2 활성화 함수의 동적 범위는 [0, 1]으로 제한될 수 있다. 여기서, [0, 1]는 0에서 1 사이의 값을 나타낼 수 있다. Second activation function according to an embodiment is a multiplier of the second activation function so that the peak value of the second activation function is fixed, of the first hyperparameter a and the second activation function associated with the ascending slope of the second activation function. It is determined by the second hyperparameter (b) associated with the descending slope. A peak value of the second activation function may be fixed to '1', and a dynamic range of the second activation function may be limited to [0, 1]. Here, [0, 1] may represent a value between 0 and 1.
수학식 2에서는 활성화 함수의 최대 값이 1이 되도록 승수를 제한하여 정규화(Normalize) 하여 수학식 1에서 ν 와 λ 로서 표현된 하이퍼 파라미터를 a와 b로 표현할 수 있다. 이러한 정규화를 통해 수학식 2에 따른 제2 활성화 함수를 사용하는 경우, 수학식 1에 따른 활성화 함수를 사용하는 것에 비해 다음과 같은 이점을 가질 수 있다. In Equation 2, the hyperparameters expressed as ν and λ in
i) 뉴럴 네트워크(500)의 특성에 따라 이전 레이어에서 출력되는 특징 벡터(또는 특징)의 동적 범위(dynamic range)를 고려할 때, 제2 활성화 함수의 동적 범위를 [0, 1]으로 고정하여 사용하는 것은 다음 레이어로의 안정적인 입력을 제공할 수 있다. 뿐만 아니라, ii) 제2 활성화 함수에 의해 정규화된 안정적인 동적 범위의 입력을 통해 뉴럴 네트워크가 빠른 수렴률(convergence rate) 또는 빠른 수렴 속도를 나타낼 수 있어 뉴럴 네트워크(500)의 처리 속도를 개선할 수 있다. i) Considering the dynamic range of the feature vector (or feature) output from the previous layer according to the characteristics of the
이 밖에도, 수학식 2에 따른 제2 활성화 함수는 제1 활성화 함수에 비해 예를 들어, 도 4의 제4 영역(440)에 해당하는 분포의 외부(ODD) 영역에 속한 입력에 대한 불확실한 결정(uncertain decision)을 제공함으로써 뉴럴 네트워크(500)가 분포의 외부(ODD) 영역에 속한 입력에 대해 오류를 출력할 가능성을 낮출 수 있다. In addition, compared to the first activation function, the second activation function according to Equation 2 makes an uncertain decision about an input belonging to the outer (ODD) region of the distribution corresponding to the
도 6은 일 실시예에 따른 뉴럴 네트워크의 트레이닝 방법을 나타낸 흐름도이고, 도 7은 도 6의 트레이닝 방법을 설명하기 위한 도면이다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.6 is a flowchart illustrating a method for training a neural network according to an exemplary embodiment, and FIG. 7 is a diagram for explaining the training method of FIG. 6 . In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, or at least two operations may be performed in parallel.
도 6 및 도 7을 참조하면, 일 실시예에 따른 트레이닝 장치는 단계(610) 내지 단계(630)을 통해 뉴럴 네트워크(700)를 트레이닝할 수 있다. Referring to FIGS. 6 and 7 , the training apparatus according to an embodiment may train the
단계(610)에서, 트레이닝 장치는 뉴럴 네트워크(700)의 복수의 중간 레이어들(720 및/또는 730) 각각에 속한 중간 노드들에 제1 활성화 함수를 적용한 제1 결과값을 추출한다. 제1 활성화 함수는 예를 들어, 계단 함수, 시그모이드 함수, 하이퍼볼릭 탄젠트 함수, 렐루 함수, 및 리키 렐루 함수 중 어느 하나를 포함할 수 있으며, 반드시 이에 한정되지는 않는다. In
단계(620)에서, 트레이닝 장치는 복수의 중간 레이어들 중 하나 이상의 임의의 레이어(710 및/또는 740)에 속한 중간 노드들(711 및/또는 741)에 연결된 추가 노드들(715 및/또는 745)에 제1 활성화 함수와 상이한 제2 활성화 함수를 적용하여 제2 결과값을 추출한다. 이때, 추가 노드들(715 및/또는 745)의 개수는 (추가 노드들(715 및/또는 745)에 연결된 중간 노드들(711 및/또는 741)의 개수 - 1) 개이고, 추가 노드들(715 및/또는 745)과 중간 노드들(711 및/또는 741)은 완전 연결(fully connected)될 수 있다. In
제2 활성화 함수는 제2 활성화 함수의 피크 값이 예를 들어, '1'로 고정되도록 제2 활성화 함수의 승수가 제2 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터 및 제2 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터에 의해 결정될 수 있다. 제2 활성화 함수는 예를 들어, 전술한 수학식 2와 같이 나타낼 수 있으며, x는 추가 노드들(715 및/또는 745)에 대한 입력을 나타내고, 는 입력(x)이 0보다 작을 때에 제2 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝 함수를 나타낼 수 있다. 제2 활성화 함수의 동적 범위는 예를 들어, [0, 1]으로 제한될 수 있다. The second activation function is such that the multiplier of the second activation function is fixed to '1', for example, the first hyperparameter associated with the rising slope of the second activation function and the falling of the second activation function so that the peak value of the second activation function is fixed at '1'. It may be determined by a second hyperparameter associated with the slope. The second activation function can be expressed, for example, as in Equation 2 above, where x represents an input to the
단계(630)에서, 트레이닝 장치는 단계(610)에서 추출한 제1 결과 값과 단계(620)에서 추출한 제2 결과값 간의 차이에 기초하여, 뉴럴 네트워크를 트레이닝한다. 트레이닝 장치는 제1 결과값과 제2 결과값 간의 차이가 최소화되도록 뉴럴 네트워크를 트레이닝할 수 있다. In
일 실시예에서는 뉴럴 네트워크(700)의 중간 레이어들 중 하나 이상의 임의의 레이어(710 및/또는 740)에 대해 추가적인 결정 뉴런(Decision Neuron)에 해당하는 추가 노드들(715 및/또는 745)을 연결하여 제2 활성화 함수를 적용하고, 제1 활성화 함수를 적용한 제1 결과값과 제2 활성화 함수를 적용한 제2 결과값 간의 결정 로스(Decision Loss)를 적용하는 방식으로 뉴럴 네트워크(700)를 트레이닝할 수 있다. 이때, 뉴럴 네트워크(700)의 하나 이상의 임의의 레이어(710 및/또는 740)에 추가 노드들(715 및/또는 745)을 연결하여 추가적인 결정 로스를 설계하는 것은 하나 이상의 임의의 레이어(710 및/또는 740)에 직접적으로 제2 활성화 함수를 적용한 그래디언트(gradient)를 가하는 것과 같은 결과를 얻을 수 있다. In an embodiment,
도 8은 다른 실시예에 따른 뉴럴 네트워크의 트레이닝 방법을 나타낸 흐름도이고, 도 9는 도 8의 트레이닝 방법을 설명하기 위한 도면이다. 8 is a flowchart illustrating a method for training a neural network according to another embodiment, and FIG. 9 is a diagram for explaining the training method of FIG. 8 .
이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, or at least two operations may be performed in parallel.
도 8 및 도 9를 참조하면, 일 실시예에 따른 트레이닝 장치는 단계(810) 내지 단계(840)을 통해 뉴럴 네트워크(900)를 트레이닝할 수 있다. 도 9에서 점선 위쪽에 도시된 뉴럴 네트워크(900)는 제1 활성화 함수로 트레이닝된 네트워크에 해당하고, 점선 아래쪽에 도시된 뉴럴 네트워크(900-1)는 제1 활성화 함수 중 일부를 제2 활성화 함수로 바꾸어 미세 조정(fine-tuning)한 뉴럴 네트워크(900-1)에 해당할 수 있다. Referring to FIGS. 8 and 9 , the training apparatus according to an embodiment may train a
단계(810)에서, 트레이닝 장치는 뉴럴 네트워크(900)의 입력 레이어(910)에 입력된 학습 데이터(905)를, 중간 레이어들 중 입력 레이어(910)에 인접한 제1 중간 레이어(923)에 속하며 제1 활성화 함수에 따라 동작하는 제1 노드들에 전파하여 제1 특징 벡터를 생성한다. 제1 활성화 함수는 예를 들어, 계단 함수, 시그모이드 함수, 하이퍼볼릭 탄젠트 함수, 및 렐루 함수, 및 리키 렐루 함수 중 어느 하나를 포함할 수 있다. In
단계(820)에서, 트레이닝 장치는 제1 특징 벡터와 학습 데이터(905)에 대응하는 정답 벡터 간의 차이에 기초하여, 뉴럴 네트워크(900)를 1차 트레이닝한다. 여기서, 1차 트레이닝은 "프리-트레이닝(Pre-training)"이라 부를 수 있다. In
단계(830)에서, 트레이닝 장치는 제1 특징 벡터를, 1차 트레이닝된 뉴럴 네트워크(900-1)의 중간 레이어들(920) 중 출력 레이어(930)에 인접한 제2 중간 레이어(926)에 속하며 제2 활성화 함수에 따라 동작하는 제2 노드들에 전파하여 제2 특징 벡터를 생성한다. 제2 활성화 함수는 전술한 수학식 2로 표현될 수 있으며, x는 제2 특징 벡터를 나타내고, 는 제2 특징 벡터(x)가 0보다 작을 때에 제2 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝 함수를 나타낼 수 있다. 제2 활성화 함수의 동적 범위는 [0, 1]으로 제한될 수 있다. In
단계(840)에서, 트레이닝 장치는 제2 중간 레이어(926)에 생성된 제2 임베딩 벡터를 출력 레이어(930)를 통해 출력한 출력값(940)과 학습 데이터(905)에 대응하는 정답값 간의 차이에 기초하여, 제1 트레이닝된 뉴럴 네트워크(900-1)를 2차 트레이닝한다. 여기서, 2차 트레이닝은 "미세 조정(Fine-tuning)"이라 부를 수 있다. In
뉴럴 네트워크(900)는 학습 데이터(905)를 순방향(forward direction)으로 전파한 결과에 해당하는 출력값(940)을 출력하고, 뉴럴 네트워크(900)의 예상 출력에 해당하는 학습 데이터(905)에 대응하는 정답값과 실제 출력값(940) 간의 차이를 산출할 수 있다. 트레이닝 장치는 정답값과 출력 값(940) 간의 차이를 역방향(backward direction)으로 전파하여 차이가 최소화하도록 뉴럴 네트워크(900)의 가중치들을 조정함으로써 뉴럴 네트워크(900)를 트레이닝할 수 있다. The
일 실시예에 따르면, 일반적인 뉴럴 네트워크에 대해서도 출력 레이어에 인접한 레이어에 속한 노드들에 대해 비선형성(non-linearity)를 제안하는 제2 활성화 함수를 적용하여 미세 조정함으로써 태스크(task)를 위해 뉴럴 네트워크를 새롭게 트레이닝하지 않고도 뉴럴 네트워크의 정확도를 개선할 수 있다. According to an embodiment, a neural network for a task is fine-tuned by applying a second activation function that proposes non-linearity to nodes belonging to a layer adjacent to an output layer even for a general neural network. It is possible to improve the accuracy of the neural network without retraining.
도 10은 일 실시예에 따른 뉴럴 네트워크를 이용하여 생체 정보의 위조 여부를 검출하는 방법을 나타낸 흐름도이고, 도 11은 도 10의 뉴럴 네트워크의 구조 및 동작을 설명하기 위한 도면이다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.10 is a flowchart illustrating a method of detecting forgery of biometric information using a neural network according to an embodiment, and FIG. 11 is a diagram for explaining the structure and operation of the neural network of FIG. 10 . In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, or at least two operations may be performed in parallel.
도 10 및 도 11을 참조하면, 일 실시예에 따른 뉴럴 네트워크(1100)를 이용하여 생체 정보의 위조 여부를 검출하는 전자 장치는 단계(1010) 내지 단계(1040)를 통해 생체 정보의 위조 여부를 검출할 수 있다. 뉴럴 네트워크(1100)는 예를 들어, 컨볼루션 신경망(Convolution Neural Network; Conv) 또는 심층 신경망(Deep neural network)일 수 있으며, 반드시 이에 한정되지는 않는다. 뉴럴 네트워크(1100)는 적어도 일부의 중간 레이어에 제2 활성화 함수를 적용하여 생체 정보의 위조 여부를 검출하도록 트레이닝된 것일 수 있다. Referring to FIGS. 10 and 11 , an electronic device that detects forgery of biometric information using a
단계(1010)에서, 전자 장치는 사용자의 생체 정보를 포함하는 입력 데이터(1105)로부터 생체 정보의 위조(spoof) 여부를 검출하는 뉴럴 네트워크(1100)의 복수의 중간 레이어들(1101,1102,1103)로부터, 미리 트레이닝된 하나 이상의 제1 분류기(1120)를 이용하여, 하나 이상의 제1 특징 벡터를 추출한다. 생체 정보는 예를 들어, 사용자의 지문, 홍채, 및 얼굴 중 어느 하나를 포함할 수 있으며, 반드시 이에 한정되지는 않는다. 복수의 중간 레이어들(1101,1102,1103)은 예를 들어, 컨볼루션 레이어에 해당할 수 있으며, 반드시 이에 한정되지는 않는다. In
전자 장치는 예를 들어, 하나 이상의 제1 분류기(1120) 중 제1-1 분류기(1120-1)를 이용하여 복수의 중간 레이어들(1101,1102,1103) 중 제1 중간 레이어(1101)로부터 제1-1 특징 벡터를 추출할 수 있다. 전자 장치는 하나 이상의 제1 분류기(1120) 중 제1-2 분류기(1120-2)를 이용하여 제1 중간 레이어(1101) 이후의 제2 중간 레이어(1102)로부터 제1-2 특징 벡터를 추출할 수 있다. 전자 장치는 제1-1 특징 벡터 및 제1-2 특징 벡터를 조합한 제1 특징 벡터(1140)를 추출할 수 있다. The electronic device, for example, from the first
또는, 전자 장치는 하나 이상의 제1 분류기(1120) 중 제1-3 분류기(1120-3)를 이용하여 제2 중간 레이어(1102) 이후의 제3중간 레이어(1103)로부터 제1-3 특징 벡터를 추출할 수 있다. 전자 장치는 제1-1 특징 벡터, 제1-2 특징 벡터, 및 제1-3 특징 벡터를 조합한 제1 특징 벡터(1140)를 추출할 수도 있다. Alternatively, the electronic device may use the 1-3 classifiers 1120-3 of the one or more
단계(1020)에서, 전자 장치는 단계(1010)에서 획득한 하나 이상의 제1 특징 벡터에 기초하여, 생체 정보의 제1 위조 여부를 검출할 수 있다. 전자 장치는 예를 들어, 데이터베이스(1150)에 미리 구비된 등록 특징 벡터 및 위조 특징 벡터 중 적어도 하나와 단계(1010)에서 획득한 하나 이상의 제1 특징 벡터 또는 단계(1010)에서 조합한 특징 벡터 간의 유사도에 기초하여 제1 스코어를 산출할 수 있다. 여기서, '유사도'는 입력 데이터(1105)가 얼마나 실제 생체 정보와 가까운지를 나타내는 지표로, 유사도 값이 높을수록 실제 생체 정보(예: 지문, 또는 홍채)일 확률이 높을 수 있다. In
제1 스코어는 사용자에 대응하여 트레이닝된 결과에 의해 결정된다는 점에서 "사용자 의존적 유사도 점수(User-dependent similarity score)"라고 불릴 수도 있다. 전자 장치는 하나 이상의 제1 분류기(1120)를 이용하여 제1 스코어가 위조 정보로 판단되는 스코어인지 또는 실제 정보로 판단되는 스코어인지를 분류할 수 있다. 전자 장치는 데이터베이스(1150)에 미리 구비된 등록 특징 벡터 및 위조 특징 벡터와 같은 분포 내(In-distribution) 데이터를 이용하여 각 유사도 간의 비율에 따라 제1 스코어를 산출하므로 위조 여부의 판단에 대해 강건성(robustness)을 확보할 수 있다. The first score may be called a “user-dependent similarity score” in that it is determined by a result of training corresponding to a user. The electronic device may classify whether the first score is a score determined as fake information or a score determined as real information using one or more
예를 들어, 제1 스코어가 생체 정보가 실제 정보로 판단되는 범위에 속하는지, 또는 생체 정보가 위조 정보로 판단되는 범위에 속하는지 여부를 명확하게 판단할 수 있는 영역(예: 도 4의 제1 영역(410) 및/또는 제2 영역(420))에 속한 특징에 대응하는 경우, 전자 장치는 제1 스코어에 의해 제1 위조 여부를 바로 결정할 수 있다. 전자 장치는 입력 데이터(1105)를 바로 '실제 정보' 또는 '위조 정보'로 조기 판단(Early Decision; ED)할 수 있다. 이와 달리, 제1 스코어가 생체 정보가 어디에 속하는지 명확하게 판단할 수 없는 영역(예: 도 4의 제3 영역(430) 및/또는 제4 영역(440))에 속한 특징에 대응하는 경우, 전자 장치는 제1 스코어에 의해 제1 위조 여부를 바로 결정하지 않고, 제1 스코어와 제2 스코어의 융합을 통해 위조 여부('제2 위조 여부')를 결정할 수 있다. For example, an area where the first score can clearly determine whether or not the biometric information falls within a range where the biometric information is determined to be real information or whether the biometric information falls within a range where the biometric information is determined to be fake information (e.g., in FIG. 4 ). If the feature corresponds to the
통상적인 심층 신경망의 분류기가 엔드-투-엔드(End-to-End) 구조로 구성되는 것과 달리, 하나 이상의 제1 분류기(1120)는 생체 정보를 포함하는 입력 데이터(1105)로부터 네트워크 추론을 수행하는 도중에 뉴럴 네트워크(1100)의 중간 레이어들(1101,1102,1103)로부터 추출한 특징 벡터들로부터 생체 정보의 위조 여부를 분류할 수 있다. 하나 이상의 제1 분류기(1120)는 특징 벡터들을 기반으로 입력된 영상을 분류하도록 트레이닝된 분류기일 수 있다. 하나 이상의 제1 분류기(1120)는 예를 들어, 심층 신경망 보다 계산량이 적은 쉘로우 심층 신경망들(Shallow DNN)으로 구성될 수 있으며, 중간 레이어에서의 조기 판단으로 인한 오버헤드(overhead)가 작아 속도 저하 없이 제1 위조 여부를 빠르게 검출할 수 있다. Unlike conventional deep neural network classifiers that are configured in an end-to-end structure, one or more
전자 장치는 출력 레이어(1104)로부터 출력 벡터를 도출하기 전에 조기 판단을 수행하는 하나 이상의 제1 분류기(1120)를 통해 생체 정보의 제1 위조 여부가 검출되는 경우, 출력 벡터를 이용하지 않고도 바로 위조 여부를 검출할 수 있으므로 생체 정보의 위조 여부 판단을 수행하는 시간을 단축할 수 있다. When the first forgery of biometric information is detected through one or more
생체 정보의 위조 여부를 판단하는 경우, 판단의 정확도와 위조 여부를 검출하는 속도는 트레이드-오프(Trade-off) 관계에 해당할 수 있다. 전자 장치는 빠른 판단을 위해 하나 이상의 제1 분류기(1120)를 순차적으로 이용하되, 하나 이상의 제1 분류기(1120)의 검출 신뢰도가 높은 경우, 제1 위조 여부를 바로 활용하고, 검출 신뢰도가 낮은 경우, 제2 분류기(1130)에 의해 출력 벡터로부터 산출된 제2 스코어를 함께 이용하여 생체 정보의 위조 여부(제2 위조 여부)를 판단할 수 있다. When determining whether biometric information is forged or not, the accuracy of determination and the speed of detecting forgery may correspond to a trade-off relationship. The electronic device sequentially uses one or more
단계(1030)에서, 전자 장치는 단계(1020)에서 제1 위조 여부가 검출되는지 여부에 따라, 출력 레이어(1104)로부터 출력되는 출력 벡터를 미리 트레이닝된 제2 분류기(1130)에 인가하여 제2 스코어를 산출한다. 제2 스코어는 영상에 기반하여 결정된 스코어라는 점에서 "영상-의존 결정 스코어(Image-dependent Decision Score)"라고 불릴 수도 있다. 제2 스코어만으로 위조 여부를 결정하는 경우, 도 4의 제4 영역(440)과 같이 처음 보는(unseen) 데이터에 대한 비정상성(non-stationarity)로 인해 에러 발생 확률이 매우 높을 수 있다. 따라서, 전자 장치는 제1 스코어와 제2 스코어를 함께 사용하여 생체 정보의 위조 여부('제2 위조 여부')를 결정할 수 있다. In
예를 들어, 제1 스코어에 의해 위조 여부('제1 위조 여부')가 검출된 경우, 전자 장치는 단계(1030)를 수행하지 않고 동작을 종료할 수도 있다. 이와 달리, 제1 스코어에 대응하는 특징이 예를 들어, 도 4의 제3 영역(430) 및/또는 제4 영역(440)에 포함되어 실제 정보에 해당하는지, 아니면 위조 정보에 해당하는지를 명확하게 판단할 수 없는 경우, 전자 장치는 제1 스코어에 의해 위조 여부를 바로 결정할 수 없다. 제1 스코어에 의해 위조 여부를 바로 결정할 수 없는 경우, 전자 장치는 출력 벡터로부터 산출된 제2 스코어와 단계(1020)에서 산출된 제1 스코어를 함께 이용하여 위조 여부('제2 위조 여부')를 결정할 수 있다. For example, if forgery status ('first forgery status') is detected by the first score, the electronic device may end the operation without performing
단계(1030)에서, 하나 이상의 제1 분류기(1120) 및 제2 분류기(1130) 중 적어도 하나는 뉴럴 네트워크(1100)를 위한 활성화 함수의 피크 값이 고정되도록 활성화 함수의 승수가 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터 및 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터에 의해 결정된 활성화 함수에 의해 트레이닝된 것일 수 있다. 하나 이상의 제1 분류기(1120) 및 제2 분류기(1130)는 예를 들어, 완전 연결된 레이어(FC(Fully-Connected) layer)로 구성될 수 있으며, 반드시 이에 한정되지는 않는다. 이때, 활성화 함수의 동적 범위는 예를 들어, [0, 1]으로 제한될 수 있다. 활성화 함수는 예를 들어, 전술한 수학식 2로 나타낼 수 있다. 이때, 수학식 2에서 x는 입력 데이터(1105)는 나타내고, 는 입력 데이터(x)가 0보다 작을 때에 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝 함수를 나타낼 수 있다. In
단계(1040)에서, 전자 장치는 하나 이상의 제1 특징 벡터에 기초하여 산출된 제1 스코어 및 제2 스코어를 융합한 스코어에 의해 생체 정보의 제2 위조 여부를 검출한다. 전자 장치는 예를 들어, 제1 스코어와 제2 스코어를 가중합(weighted sum)에 의해 융합한 스코어를 산출할 수 있다. 융합한 스코어가 제2 여부의 검출을 위한 임계값 보다 클 경우, 전자 장치는 입력 데이터(1105)를 '실제 정보'로 결정할 수 있다. 이와 달리, 융합한 스코어가 제2 위조 여부 검출을 위한 임계값 보다 작거나 같은 경우, 전자 장치는 입력 데이터(1105)를 '위조 정보'로 결정할 수 있다. 전자 장치는 입력 데이터(1105)에 대한 결정에 의해 제2 위조 여부를 검출할 수 있다. In
생체 정보의 위조 여부를 검출하는 전자 장치에서는 위조 정보에 해당하는 분포 외(ODD) 입력이 자주 발생할 수 있다. 전자 장치는 위조 정보에 해당하는 분포 외(ODD) 입력에 대해 안정적으로 '위조 정보'라는 결정을 내려야 하지만, 분포 외(ODD) 입력이 뉴럴 네트워크에 의해 전혀 트레이닝되지 않은 처음 보는 데이터 임에도 불구하고 마치 트레이닝 되었던 것과 같이 뉴럴 네트워크가 과신(Over-confident)하여 판단하는 과신 오류가 발생할 수 있다. 이와 같이, 뉴럴 네트워크에 분포 외(ODD) 입력이 인가되는 경우, 위조 여부에 대해 잘못된 결정을 내리기 보다는 분포 외(ODD) 입력에 대해 '판단되지 않음(not decided)'과 같이 불확실하게 결정하는 것이 더 나을 수 있다. In an electronic device that detects whether biometric information is forged or not, an out-of-distribution (ODD) input corresponding to forged information may frequently occur. The electronic device must reliably make a decision that it is 'false information' for out-of-distribution (ODD) inputs corresponding to spurious information, but it is as if the out-of-distribution (ODD) input is new data that has not been trained by the neural network at all. An over-confidence error may occur in which the neural network is over-confident and judges as it was trained. As such, when an out-of-distribution (ODD) input is applied to a neural network, it is better to make an uncertain decision, such as 'not decided', for an out-of-distribution (ODD) input than to make an incorrect decision about whether it is falsified or not. Could be better.
일 실시예에서는 뉴럴 네트워크에 제2 활성화 함수를 적용함으로써 분포 외(ODD) 입력에 대한 출력의 불확실성을 높일 수 있다. In an embodiment, the uncertainty of an output for an out-of-distribution (ODD) input may be increased by applying the second activation function to the neural network.
전자 장치는 인증 시도 시에 생성된 영상을 포함하는 입력 데이터(1105)와 데이터베이스(1150)에 미리 구비된 등록 특징 벡터 및 위조 특징 벡터 간의 유사도 비교를 통해 얻은 제1 스코어를 제2 스코어와 함께 활용하여 최종 결정 스코어(Decision Score)를 출력함으로써 오류를 줄일 수 있다. The electronic device utilizes the first score obtained by comparing the similarity between the
보다 구체적으로, 분포 외(ODD) 입력이 뉴럴 네트워크에 입력되면, 전술한 방식에 따라 유사도 계산 방식에서 강인(Robust)하므로 제1 스코어가 합리적인 스코어로 산출될 수 있지만, 순수하게 뉴럴 네트워크(1100)의 출력만을 사용하여 산출된 제2 스코어에서는 과신 오류가 발생할 가능성이 높아 뉴럴 네트워크(1100)에서 최종적으로 출력되는 결정 스코어 역시 오류가 많아질 수 있다. More specifically, if an out-of-distribution (ODD) input is input to the neural network, the first score can be calculated as a reasonable score because it is robust in the similarity calculation method according to the above-described method, but the
이러한 상황에서 불확실성을 부여한 제2 활성화 함수를 뉴럴 네트워크에 적용하면, 분포 외(OOD) 입력에 대해 과신 오류를 일으키지 않게 되며, 제1 스코어에서의 기여가 더 높아져 상대적으로 최종 결정 스코어에서 오류가 덜 발생할 수 있다.In this situation, when the second activation function with uncertainty is applied to the neural network, overconfidence errors for out-of-distribution (OOD) inputs do not occur, and the contribution in the first score is higher, resulting in relatively less error in the final decision score. can happen
도 12는 일 실시예에 따른 뉴럴 네트워크를 이용하여 생체 정보의 위조 여부를 검출하는 전자 장치의 블록도이다. 도 12를 참조하면, 일 실시예에 따른 전자 장치(1200)는 센서(1210), 프로세서(1230), 출력 장치(1250), 및 메모리(1270)를 포함할 수 있다. 센서(1210), 프로세서(1230), 출력 장치(1250), 및 메모리(1270)는 통신 버스(1205)를 통해 서로 연결될 수 있다. 12 is a block diagram of an electronic device that detects forgery of biometric information using a neural network according to an exemplary embodiment. Referring to FIG. 12 , an
전자 장치(1200)는 예를 들어, 이동 전화, 스마트 폰, PDA, 넷북, 태블릿 컴퓨터, 랩톱 컴퓨터 등과 같은 모바일 장치, 스마트 워치, 스마트 밴드, 스마트 안경 등과 같은 웨어러블 디바이스, 데스크탑, 서버 등과 같은 컴퓨팅 장치, 텔레비전, 스마트 텔레비전, 냉장고 등과 같은 가전 제품, 도어 락 등과 같은 보안 장치, 의료 장치, 로보틱스, IoT(Internet of Things) 디바이스, 스마트 차량의 적어도 일부로 구현될 수 있으나, 이에 제한되지 않고 다양한 종류의 디바이스들에 해당될 수 있다.The
센서(1210)는 사용자의 생체 정보를 포함하는 입력 데이터를 캡쳐한다. 사용자의 생체 정보는 예를 들어, 사용자의 홍채, 지문, 및 얼굴을 포함할 수 있으며, 반드시 이에 한정되지는 않는다. 센서(1210)는 예를 들어, 초음파 지문 센서, 광학 지문 센서, 정전 방식 지문 센서, 깊이 센서, 홍채 센서, 이미지 센서 등을 포함할 수 있으며, 반드시 이에 한정되지는 않는다. 센서(1210)는 이들 중 어느 하나가 사용될 수도 있고, 또는 둘 이상이 사용될 수도 있다. 센서(1210)에 의해 감지되는 생체 정보는 예를 들어, 도 1에 도시된 입력 지문 영상(115)일 수도 있고, 홍채 영상 또는 얼굴 영상일 수도 있다.
프로세서(1230)는 입력 데이터로부터 생체 정보의 위조 여부를 검출하는 뉴럴 네트워크의 복수의 중간 레이어들로부터, 미리 트레이닝된 하나 이상의 제1 분류기를 이용하여, 하나 이상의 제1 특징 벡터를 추출한다. 프로세서(1230)는 하나 이상의 제1 특징 벡터에 기초하여, 생체 정보의 제1 위조 여부를 검출한다. 프로세서(1230)는 제1 위조 여부가 검출되는지 여부에 따라, 출력 레이어로부터 출력되는 출력 벡터를 미리 트레이닝된 제2 분류기에 인가하여 제2 스코어를 산출한다. 프로세서(1230)는 하나 이상의 제1 특징 벡터에 기초하여 산출된 제1 스코어 및 제2 스코어를 융합한 스코어에 의해 생체 정보의 제2 위조 여부를 검출한다. 이때, 하나 이상의 제1 분류기 및 상기 제2 분류기 중 적어도 하나는 뉴럴 네트워크를 위한 활성화 함수의 피크 값이 고정되도록 활성화 함수의 승수가 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터 및 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터에 의해 결정되는 활성화 함수에 기초하여 트레이닝된 것일 수 있다. 활성화 함수는 예를 들어, 전술한 수학식 2로 표현될 수 있다. 수학식 2에서 x는 추가 노드들에 대한 입력을 나타내고, 는 추가 노드들에 대한 입력(x)가 0보다 작을 때에 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝 함수를 나타낼 수 있다. The
프로세서(1230)는 메모리(1270)에 포함된 실행가능한 명령어들을 실행한다. 프로세서(1230)는 프로그램을 실행하고, 전자 장치(1200)를 제어할 수 있다. 프로세서(1230)에 의하여 실행되는 프로그램 코드는 메모리(1270)에 저장될 수 있다.
출력 장치(1250)는 프로세서(1230)가 검출한 제1 위조 여부 및 제2 위조 여부 중 적어도 하나를 출력한다. The
메모리(1270)는 센서(1210)가 캡쳐한 입력 데이터를 저장할 수 있다. 메모리(1270)는 프로세서(1230)가 추출한 제1 특징 벡터, 제1 스코어, 및/또는 제2 스코어를 저장할 수 있다. 메모리(1270)는 출력 벡터를 저장할 수 있다. 메모리(1250)는 프로세서(1230)가 검출한 제1 위조 여부, 및/또는 제2 위조 여부를 저장할 수 있다. The
메모리(1270)는 프로세서(1230)의 처리 과정에서 생성되는 다양한 정보를 저장할 수 있다. 이 밖에도, 메모리(1270)는 각종 데이터와 프로그램 등을 저장할 수 있다. 메모리(1270)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 메모리(1270)는 하드 디스크 등과 같은 대용량 저장 매체를 구비하여 각종 데이터를 저장할 수 있다.The
또한, 프로세서(1230)는 도 1 내지 도 11을 통해 전술한 적어도 하나의 방법 또는 적어도 하나의 방법에 대응되는 기법을 수행할 수 있다. 프로세서(1230)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 전자 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 전자 장치(1200)는 마이크로프로세서(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) 등을 포함할 수 있다.Also, the
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, the devices, methods and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). array), programmable logic units (PLUs), microprocessors, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. You can command the device. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on computer readable media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination, and the program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in the art of computer software. may be Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.
위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware device described above may be configured to operate as one or a plurality of software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited drawings, those skilled in the art can apply various technical modifications and variations based on this. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.
1200: 전자 장치
1205: 통신 버스
1210: 센서
1230: 프로세서
1250: 출력 장치
1270: 메모리1200: electronic device
1205: communication bus
1210: sensor
1230: processor
1250: output device
1270: memory
Claims (25)
상기 복수의 중간 레이어들 중 상기 입력 레이어에 인접한 임의의 제1 중간 레이어에 속한 제1 노드들에게 제1 활성화 함수를 적용하여 제1 중간 벡터를 생성하는 단계;
상기 제1 중간 벡터를, 상기 중간 레이어들 중 상기 출력 레이어에 인접한 제2 중간 레이어에 속한 제2 노드들에게 전달하는 단계;
상기 제2 노드들에게 제2 활성화 함수를 적용하여 제2 중간 벡터를 생성하는 단계; 및
상기 제2 중간 벡터를 상기 출력 레이어에 인가하는 단계
를 포함하고,
상기 제2 활성화 함수는
상기 제2 활성화 함수의 피크(peak) 값이 고정되도록 상기 제2 활성화 함수의 승수(multiplier)가 상기 제2 활성화 함수의 상승 슬로프(ascending slope)와 연관된 제1 하이퍼 파라미터 및 상기 제2 활성화 함수의 하강 슬로프(descending slope)와 연관된 제2 하이퍼 파라미터에 의해 결정되는, 뉴럴 네트워크의 동작 방법.A method of operating a neural network including an input layer, a plurality of intermediate layers, and an out layer,
generating a first intermediate vector by applying a first activation function to first nodes belonging to a first intermediate layer adjacent to the input layer among the plurality of intermediate layers;
transferring the first intermediate vector to second nodes belonging to a second intermediate layer adjacent to the output layer among the intermediate layers;
generating a second intermediate vector by applying a second activation function to the second nodes; and
applying the second intermediate vector to the output layer;
including,
The second activation function is
A multiplier of the second activation function is a ratio of a first hyperparameter associated with an ascending slope of the second activation function and the second activation function so that the peak value of the second activation function is fixed. A method of operating a neural network, determined by a second hyperparameter associated with a descending slope.
상기 제2 활성화 함수의 동적 범위는 [0, 1]으로 제한되는, 뉴럴 네트워크의 동작 방법.According to claim 1,
The method of operating a neural network, wherein the dynamic range of the second activation function is limited to [0, 1].
상기 제2 활성화 함수()는 다음의 수학식으로 표현되고,
[수학식]
,
여기서, 상기 a는 상기 제2 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터를 나타내고, 상기 b는 상기 제2 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터를 나타내며, 상기 는 오일러 넘버를 나타내며, 상기 x는 상기 제2 노드들의 입력을 나타내며, 상기 는 상기 x가 0보다 작을 때에 상기 제2 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝(Heaviside Step) 함수를 나타내는, 뉴럴 네트워크의 동작 방법.According to claim 1,
The second activation function ( ) is expressed by the following equation,
[mathematical expression]
,
Here, a represents a first hyperparameter associated with an ascending slope of the second activation function, and b represents a second hyperparameter associated with a descending slope of the second activation function, denotes an Euler number, the x denotes the input of the second nodes, represents a Heaviside Step function that makes an output of the second activation function 0 when the x is less than 0, the neural network operating method.
상기 제1 활성화 함수는
계단 함수(Step function), 시그모이드 함수(Sigmoid function), 하이퍼볼릭 탄젠트 함수(Hyperbolic tangent function), 렐루(ReLU) 함수, 및 리키 렐루(Leaky ReLU) 함수 중 어느 하나를 포함하는, 뉴럴 네트워크의 동작 방법.According to claim 1,
The first activation function is
of a neural network, including any one of a Step function, a Sigmoid function, a Hyperbolic tangent function, a ReLU function, and a Leaky ReLU function how it works.
상기 뉴럴 네트워크는
CNN(Convolution Neural Network), 및 DNN(Deep Neural Network), RNN(Recurrent Neural Network) 중 어느 하나를 포함하는, 뉴럴 네트워크의 동작 방법.According to claim 1,
The neural network is
A method of operating a neural network, including any one of a Convolution Neural Network (CNN), a Deep Neural Network (DNN), and a Recurrent Neural Network (RNN).
상기 복수의 중간 레이어들 각각에 속한 중간 노드들에 제1 활성화 함수를 적용한 제1 결과값을 추출하는 단계;
상기 복수의 중간 레이어들 중 하나 이상의 임의의 레이어에 속한 중간 노드들에 연결된 추가 노드들에 상기 제1 활성화 함수와 상이한 제2 활성화 함수를 적용하여 제2 결과값을 추출하는 단계; 및
상기 제1 결과 값과 상기 제2 결과값 간의 차이에 기초하여, 상기 뉴럴 네트워크를 트레이닝하는 단계
를 포함하는, 뉴럴 네트워크의 트레이닝 방법.A method for training a neural network including an input layer, a plurality of intermediate layers, and an output layer,
extracting a first result value obtained by applying a first activation function to intermediate nodes belonging to each of the plurality of intermediate layers;
extracting a second result value by applying a second activation function different from the first activation function to additional nodes connected to intermediate nodes belonging to at least one arbitrary layer among the plurality of intermediate layers; and
training the neural network based on the difference between the first result value and the second result value;
Including, a training method of a neural network.
상기 제2 활성화 함수는
상기 제2 활성화 함수의 피크 값이 고정되도록 상기 제2 활성화 함수의 승수가 상기 제2 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터 및 상기 제2 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터에 의해 결정되는, 뉴럴 네트워크의 트레이닝 방법.According to claim 6,
The second activation function is
The multiplier of the second activation function is determined by a first hyper parameter associated with the rising slope of the second activation function and a second hyper parameter associated with the falling slope of the second activation function so that the peak value of the second activation function is fixed. Determined, the training method of the neural network.
상기 추가 노드들의 개수는 상기 중간 노드들의 개수 -1 개이고,
상기 추가 노드들과 상기 중간 노드들은 완전 연결되는(fully connected), 뉴럴 네트워크의 트레이닝 방법.According to claim 6,
The number of additional nodes is the number of intermediate nodes -1,
The method of training a neural network, wherein the additional nodes and the intermediate nodes are fully connected.
상기 제2 활성화 함수()는 다음의 수학식으로 표현되고,
[수학식]
,
여기서, 상기 a는 상기 제2 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터를 나타내고, 상기 b는 상기 제2 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터를 나타내며, 상기 는 오일러 넘버를 나타내며, 상기 x는 상기 추가 노드들에 대한 입력을 나타내고, 상기 는 상기 x가 0보다 작을 때에 상기 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝 함수를 나타내는, 뉴럴 네트워크의 트레이닝 방법.According to claim 6,
The second activation function ( ) is expressed by the following equation,
[mathematical expression]
,
Here, a represents a first hyperparameter associated with an ascending slope of the second activation function, and b represents a second hyperparameter associated with a descending slope of the second activation function, denotes an Euler number, where x denotes an input to the additional nodes, represents a Heaviside step function that makes the output of the activation function 0 when the x is less than 0, a neural network training method.
상기 제2 활성화 함수의 동적 범위는 [0, 1]으로 제한되는, 뉴럴 네트워크의 트레이닝 방법.According to claim 6,
The method of training a neural network, wherein the dynamic range of the second activation function is limited to [0, 1].
상기 제1 활성화 함수는
계단 함수, 시그모이드 함수, 하이퍼볼릭 탄젠트 함수, 렐루 함수, 및 리키 렐루 함수 중 어느 하나를 포함하는, 뉴럴 네트워크의 트레이닝 방법.According to claim 6,
The first activation function is
A method for training a neural network, including any one of a step function, a sigmoid function, a hyperbolic tangent function, a relu function, and a ricky relu function.
상기 입력 레이어에 입력된 학습 데이터를, 상기 중간 레이어들 중 상기 입력 레이어에 인접한 제1 중간 레이어에 속하며 제1 활성화 함수에 따라 동작하는 제1 노드들에 전파하여 제1 특징 벡터를 생성하는 단계;
상기 제1 특징 벡터와 상기 학습 데이터에 대응하는 정답 벡터 간의 차이에 기초하여, 상기 뉴럴 네트워크를 1차 트레이닝하는 단계;
상기 제1 특징 벡터를, 상기 1차 트레이닝된 뉴럴 네트워크의 중간 레이어들 중 상기 출력 레이어에 인접한 제2 중간 레이어에 속하며 제2 활성화 함수에 따라 동작하는 제2 노드들에 전파하여 제2 특징 벡터를 생성하는 단계; 및
상기 제2 임베딩 벡터를 상기 출력 레이어를 통해 출력한 출력값과 상기 학습 데이터에 대응하는 정답값 간의 차이에 기초하여, 상기 제1 트레이닝된 뉴럴 네트워크를 2차 트레이닝하는 단계
를 포함하는, 뉴럴 네트워크의 트레이닝 방법.A method for training a neural network including an input layer, a plurality of intermediate layers, and an output layer,
generating a first feature vector by propagating learning data input to the input layer to first nodes belonging to a first intermediate layer adjacent to the input layer among the intermediate layers and operating according to a first activation function;
primary training of the neural network based on a difference between the first feature vector and the correct answer vector corresponding to the learning data;
The first feature vector is propagated to second nodes belonging to a second intermediate layer adjacent to the output layer among intermediate layers of the first-trained neural network and operating according to a second activation function to obtain a second feature vector. generating; and
Secondary training of the first trained neural network based on a difference between an output value of the second embedding vector output through the output layer and a correct answer value corresponding to the training data
Including, a training method of a neural network.
상기 제2 활성화 함수는
상기 제2 활성화 함수의 피크 값이 고정되도록 상기 제2 활성화 함수의 승수가 상기 제2 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터 및 상기 제2 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터에 의해 결정되는, 뉴럴 네트워크의 트레이닝 방법.According to claim 12,
The second activation function is
The multiplier of the second activation function is determined by a first hyper parameter associated with the rising slope of the second activation function and a second hyper parameter associated with the falling slope of the second activation function so that the peak value of the second activation function is fixed. Determined, the training method of the neural network.
상기 제2 활성화 함수()는 다음의 수학식으로 표현되고,
[수학식]
,
여기서, 상기 a는 상기 제2 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터를 나타내고, 상기 b는 상기 제2 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터를 나타내며, 상기 는 오일러 넘버를 나타내며, 상기 x는 상기 제2 특징 벡터를 나타내고, 상기 는 상기 x가 0보다 작을 때에 상기 제2 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝 함수를 나타내는, 뉴럴 네트워크의 트레이닝 방법.According to claim 12,
The second activation function ( ) is expressed by the following equation,
[mathematical expression]
,
Here, a represents a first hyperparameter associated with an ascending slope of the second activation function, and b represents a second hyperparameter associated with a descending slope of the second activation function, denotes an Euler number, the x denotes the second feature vector, and represents a Heaviside step function that makes an output of the second activation function 0 when the x is less than 0, the neural network training method.
상기 제2 활성화 함수의 동적 범위는 [0, 1]으로 제한되는, 뉴럴 네트워크의 트레이닝 방법.According to claim 12,
The method of training a neural network, wherein the dynamic range of the second activation function is limited to [0, 1].
상기 제1 활성화 함수는
계단 함수, 시그모이드 함수, 하이퍼볼릭 탄젠트 함수, 렐루 함수, 및 리키 렐루 함수 중 어느 하나를 포함하는, 뉴럴 네트워크의 트레이닝 방법.According to claim 12,
The first activation function is
A method for training a neural network, including any one of a step function, a sigmoid function, a hyperbolic tangent function, a relu function, and a ricky relu function.
사용자의 생체 정보를 포함하는 입력 데이터로부터 상기 생체 정보의 위조(spoof) 여부를 검출하는 상기 뉴럴 네트워크의 복수의 중간 레이어들로부터, 미리 트레이닝된 하나 이상의 제1 분류기를 이용하여, 하나 이상의 제1 특징 벡터를 추출하는 단계;
상기 하나 이상의 제1 특징 벡터에 기초하여, 상기 생체 정보의 제1 위조 여부를 검출하는 단계;
상기 제1 위조 여부가 검출되는지 여부에 따라, 상기 뉴럴 네트워크의 출력 레이어로부터 출력되는 출력 벡터를 미리 트레이닝된 제2 분류기에 인가하여 제2 스코어를 산출하는 단계; 및
상기 하나 이상의 제1 특징 벡터에 기초하여 산출된 제1 스코어 및 상기 제2 스코어를 융합한 스코어에 의해 상기 생체 정보의 제2 위조 여부를 검출하는 단계
를 포함하고,
상기 하나 이상의 제1 분류기 및 상기 제2 분류기 중 적어도 하나는
상기 뉴럴 네트워크를 위한 활성화 함수의 피크 값이 고정되도록 상기 활성화 함수의 승수가 상기 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터 및 상기 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터에 의해 결정된 상기 활성화 함수에 의해 트레이닝된 것인, 생체 정보의 위조 여부를 검출하는 방법.A method for detecting forgery of biometric information using a neural network,
One or more first features, using one or more first classifiers trained in advance, from a plurality of intermediate layers of the neural network that detects whether the biometric information is spoofed from input data including the user's biometric information. extracting vectors;
detecting whether the biometric information is first forged based on the one or more first feature vectors;
calculating a second score by applying an output vector output from an output layer of the neural network to a pretrained second classifier according to whether the first forgery is detected; and
Detecting whether the biometric information is second forged or not by a fusion score of the first score calculated based on the one or more first feature vectors and the second score
including,
At least one of the one or more first classifiers and the second classifier
The activation function multiplier is determined by a first hyperparameter associated with an ascending slope of the activation function and a second hyperparameter associated with a descending slope of the activation function such that a peak value of the activation function for the neural network is fixed. A method for detecting forgery of biometric information, which is trained by
상기 활성화 함수의 동적 범위는 [0, 1]으로 제어되는, 생체 정보의 위조 여부를 검출하는 방법.According to claim 17,
The dynamic range of the activation function is controlled to [0, 1], a method for detecting whether biometric information is forged or not.
상기 활성화 함수()는 다음의 수학식으로 표현되고,
[수학식]
여기서, 상기 a는 상기 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터를 나타내고, 상기 b는 상기 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터를 나타내며, 상기 는 오일러 넘버를 나타내며, 상기 x는 상기 입력 데이터는 나타내고, 상기 는 상기 x가 0보다 작을 때에 상기 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝 함수를 나타내는, 생체 정보의 위조 여부를 검출하는 방법.According to claim 17,
The activation function ( ) is expressed by the following equation,
[mathematical expression]
Here, a represents a first hyperparameter associated with an ascending slope of the activation function, and b represents a second hyperparameter associated with a descending slope of the activation function. represents the Euler number, the x represents the input data, and the represents a Heaviside step function that makes the output of the activation function 0 when the x is less than 0, and detects whether biometric information is forged.
상기 하나 이상의 제1 특징 벡터를 추출하는 단계는
상기 하나 이상의 제1 분류기 중 제1-1 분류기를 이용하여 상기 복수의 중간 레이어들 중 제1 중간 레이어로부터 제1-1 특징 벡터를 추출하는 단계;
상기 하나 이상의 제1 분류기 중 제1-2 분류기를 이용하여 상기 제1 중간 레이어 이후의 제2 중간 레이어로부터 제1-2 특징 벡터를 추출하는 단계; 및
상기 제1-1 특징 벡터 및 상기 제1-2 특징 벡터를 조합한 특징 벡터를 추출하는 단계
를 포함하는, 생체 정보의 위조 여부를 검출하는 방법.According to claim 17,
Extracting the one or more first feature vectors
extracting a 1-1 feature vector from a first intermediate layer among the plurality of intermediate layers by using a 1-1 classifier among the one or more first classifiers;
extracting 1-2 feature vectors from a second intermediate layer after the first intermediate layer by using a 1-2 classifier among the one or more first classifiers; and
Extracting a feature vector obtained by combining the 1-1 feature vector and the 1-2 feature vector
Including, a method for detecting whether the biometric information is forged.
상기 생체 정보의 제1 위조 여부를 검출하는 단계는
미리 구비된 등록 특징 벡터 및 위조 특징 벡터 중 적어도 하나와 상기 조합한 특징 벡터 간의 유사도에 기초하여 상기 제1 스코어를 산출하는 단계; 및
상기 하나 이상의 제1 분류기를 이용하여 상기 제1 스코어가 위조 정보로 판단되는 스코어인지 또는 실제 정보로 판단되는 스코어인지를 분류하는 단계
를 포함하는, 생체 정보의 위조 여부를 검출하는 방법.According to claim 20,
The step of detecting whether the biometric information is first forged or not
calculating the first score based on a degree of similarity between at least one of a previously provided registered feature vector and a fake feature vector and the combined feature vector; and
Classifying whether the first score is a score determined as fake information or a score determined as real information using the one or more first classifiers
Including, a method for detecting whether the biometric information is forged.
상기 생체 정보는
상기 사용자의 지문, 홍채, 및 얼굴 중 어느 하나를 포함하는, 생체 정보의 위조 여부를 검출하는 방법.According to claim 17,
The biometric information
A method for detecting whether biometric information including any one of the user's fingerprint, iris, and face is forged.
사용자의 상기 생체 정보를 포함하는 입력 데이터를 캡쳐하는 센서;
상기 입력 데이터로부터 상기 생체 정보의 위조 여부를 검출하는 상기 뉴럴 네트워크의 복수의 중간 레이어들로부터, 미리 트레이닝된 하나 이상의 제1 분류기를 이용하여, 하나 이상의 제1 특징 벡터를 추출하고, 상기 하나 이상의 제1 특징 벡터에 기초하여, 상기 생체 정보의 제1 위조 여부를 검출하고, 상기 제1 위조 여부가 검출되는지 여부에 따라, 상기 뉴럴 네트워크의 출력 레이어로부터 출력되는 출력 벡터를 미리 트레이닝된 제2 분류기에 인가하여 제2 스코어를 산출하며, 상기 하나 이상의 제1 특징 벡터에 기초하여 산출된 제1 스코어 및 상기 제2 스코어를 융합한 스코어에 의해 상기 생체 정보의 제2 위조 여부를 검출하는 프로세서; 및
상기 제1 위조 여부 및 상기 제2 위조 여부 중 적어도 하나를 출력하는 출력 장치
를 포함하고,
상기 하나 이상의 제1 분류기 및 상기 제2 분류기 중 적어도 하나는
상기 뉴럴 네트워크를 위한 활성화 함수의 피크 값이 고정되도록 상기 활성화 함수의 승수가 상기 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터 및 상기 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터에 의해 결정되는 상기 활성화 함수에 기초하여 트레이닝된 것인, 전자 장치.An electronic device for detecting forgery of biometric information using a neural network,
a sensor that captures input data including the biometric information of a user;
From the input data, one or more first feature vectors are extracted from a plurality of intermediate layers of the neural network that detects whether the biometric information is forged or not, using one or more first classifiers trained in advance, and the one or more first feature vectors are extracted. Based on 1 feature vector, whether the biometric information is first forged or not is detected, and according to whether the first forgery or not is detected, the output vector output from the output layer of the neural network is passed to a pretrained second classifier. a processor that calculates a second score by applying a second score, and detects whether the biometric information is second forged or not based on a fusion score of the first score calculated based on the one or more first feature vectors and the second score; and
An output device outputting at least one of the first forgery status and the second forgery status
including,
At least one of the one or more first classifiers and the second classifier
The activation function multiplier is determined by a first hyperparameter associated with a rising slope of the activation function and a second hyperparameter associated with a falling slope of the activation function such that a peak value of the activation function for the neural network is fixed. An electronic device that is trained based on a function.
상기 활성화 함수()는 다음의 수학식으로 표현되고,
[수학식]
여기서, 상기 a는 상기 활성화 함수의 상승 슬로프와 연관된 제1 하이퍼 파라미터를 나타내고, 상기 b는 상기 활성화 함수의 하강 슬로프와 연관된 제2 하이퍼 파라미터를 나타내며, 상기 는 오일러 넘버를 나타내며, 상기 x는 상기 추가 노드들에 대한 입력을 나타내고, 상기 는 상기 x가 0보다 작을 때에 상기 활성화 함수의 출력을 0으로 만들어 주는 헤비사이드 스텝 함수를 나타내는, 전자 장치.According to claim 24,
The activation function ( ) is expressed by the following equation,
[mathematical expression]
Here, a represents a first hyperparameter associated with an ascending slope of the activation function, and b represents a second hyperparameter associated with a descending slope of the activation function. denotes an Euler number, where x denotes an input to the additional nodes, represents a Heaviside step function that makes an output of the activation function 0 when the x is less than 0, the electronic device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/982,618 US20230252283A1 (en) | 2022-02-07 | 2022-11-08 | Method and device with neural network |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20220015462 | 2022-02-07 | ||
KR1020220015462 | 2022-02-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230119574A true KR20230119574A (en) | 2023-08-16 |
Family
ID=87848476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220041081A KR20230119574A (en) | 2022-02-07 | 2022-04-01 | Method of operating neural network, training method of neural network, method of detecting whether biometruc information is spoofed using neural network, and electric devece thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230119574A (en) |
-
2022
- 2022-04-01 KR KR1020220041081A patent/KR20230119574A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102564855B1 (en) | Device and method to recognize object and face expression, and device and method to train obejct and face expression robust to facial change | |
KR102308871B1 (en) | Device and method to train and recognize object based on attribute of object | |
US11423702B2 (en) | Object recognition method and apparatus | |
US20220318354A1 (en) | Anti-spoofing method and apparatus | |
KR102570070B1 (en) | Method and apparatus for user verification using generalized user model | |
US20220327189A1 (en) | Personalized biometric anti-spoofing protection using machine learning and enrollment data | |
US20200210685A1 (en) | Apparatus and method with user verification | |
KR102483650B1 (en) | User verification device and method | |
Vinay et al. | Deep learning on binary patterns for face recognition | |
KR20200110064A (en) | Authentication method and apparatus using transformation model | |
KR20200020107A (en) | Method and system for authenticating stroke-based handwritten signature using machine learning | |
Chawla et al. | Finger vein recognition using deep learning | |
US11335117B2 (en) | Method and apparatus with fake fingerprint detection | |
EP3832542A1 (en) | Device and method with sensor-specific image recognition | |
KR20210145458A (en) | Fake fingerprint detection device and model update method for fake fingerprint prevention | |
KR20230119574A (en) | Method of operating neural network, training method of neural network, method of detecting whether biometruc information is spoofed using neural network, and electric devece thereof | |
KR20220136017A (en) | Method and apparatus for anti-spoofing | |
Rai et al. | Handwritten signature verification using TensorFlow | |
WO2022217294A1 (en) | Personalized biometric anti-spoofing protection using machine learning and enrollment data | |
Thakare et al. | A Novel End-To-End Approach For Offline Signature Verification System | |
JP2021140784A (en) | Spoofing prevention method and apparatus | |
US20200388286A1 (en) | Method and device with data recognition | |
US20230252283A1 (en) | Method and device with neural network | |
Tanuwidjaja et al. | Enhancing Malware Detection by Modified Deep Abstraction and Weighted Feature Selection | |
Kumar | Smartphone Authentication with Lightweight Deep Learning |