2017-01-08 16 views
4

키 스트로크 생체 인식 인증 프로젝트를 진행 중입니다. 전통적인 암호 기반 인증보다 래퍼와 같습니다. 암호가 맞으면 "타이핑 리듬"이 있는지 확인하고 사용자의 프로필과 일치하면 긍정적 인 출력을 제공합니다. 그렇지 않으면, 음의 출력이 주어집니다. "타이핑 리듬"은 암호를 입력하는 동안 추출되는 타이밍 속성을 매핑하여 검사합니다. PP (Press-Press time), PR (Press-Release time), RP (Release-Press time), RR (Release-Release time) 및 Total time과 같은 본질적으로 5 가지 기능이 있습니다. PP는 두 개의 연속 키 (문자)를 누를 때 사이의 시간입니다. RR은 두 개의 연속 키를 해제하는 사이의 시간입니다. PR는 키를 눌렀다 놓은 시간입니다. RP는 키를 놓은 후 다음 키를 누를 때까지의 시간입니다. 총 시간은 암호의 첫 번째 키를 누르고 암호의 마지막 키를 놓는 사이의 시간입니다.sci-kit에 대한 일부 항목에 대해 다양한 수의 열로 사용자 정의 데이터 세트를 표현하고로드하는 방법 learn

프로젝트 용으로 열린 데이터베이스 GREYC-Web based KeyStroke dynamics을 사용하고 있습니다. 각 데이터 수집 세션에는 누른 키의 ASCII 값과 PP, PR, RP, RR 및 총 시간의 타임 스탬프가 포함됩니다. 또한 실제 사용자가 암호 또는 사기자를 입력하는지 여부도 포함됩니다. 데이터를 수집하는 동안 사용자는 자신의 암호를 사용할 수있었습니다. 당연히 다양한 길이의 암호가 있습니다. 그 외에도 사용자는 Shift, Caps, Backspace, Delete 등의 추가 키를 누를 수 있습니다. 특정 사용자의 경우에도 암호를 입력하는 세션마다 암호 길이가 다를 수 있습니다. 이 컨텍스트에서 암호 길이는 사용자가 입력 한 총 키 (문자) 수입니다. 예를 들어, 사용자의 실제 암호가 "abcd"인 경우. 한 세션에서 그는 올바르게 입력하고 암호 길이는 4입니다. 다른 세션에서 그는 다음과 같은 키 - a, l, 백 스페이스, b, c, d-를 입력하므로 암호 길이는 6입니다.

enter image description here

다음은 제안 된 시스템의 일부 컨텍스트입니다. 제안 된 시스템 블록 다이어그램은 다음과 같습니다. "입력 특징 공간 파티션"은 가우시안 (Gaussian), K-NN 및 OCSVM과 같은 다른 분류기에 공급할 실제 데이터베이스의 하위 집합을 만듭니다. 이러한 분류기의 출력은 BPNN (Back-Propagation Neural Network)으로 보내지며 그 결과가 최종 출력됩니다. BPNN은 잘못된 결과를주는 분류기를 처벌하고 정확한 결과를 제공하는 분류기를 보상하는 데 사용됩니다.

제 질문은이 가변 길이 데이터를 처리하여 sci-kit에서 사용할 수 있도록 구조화 된 형식으로 표현하는 방법입니다.

나는 데이터의 사전 처리를 위해 팬더와 numpy를 조사했다. 하지만 내 문제는 전처리 단계에 선행합니다.

미리 감사드립니다.

답변

0

옵션은 Recurrent Neural Network입니다. 이것들은 효과적으로 시간의 함수를 만들거나 자신의 경우 단어의 상대적인 위치를 효과적으로 만드는 네트워크입니다.

enter image description here

(화살표) 전에 왼쪽 부분은 RNN의 이론적 구조를 도시하고 다음과 같이 이들 네트워크의 구조이다. 값은 네트워크의 노드 사이뿐만 아니라 시간 단계 사이에서도 전달됩니다. 이 일반화 된 구조는 임의의 시간을 임베드하거나 또는 임의의 단어 길이를 허용합니다.

일부 문제에 대해 더 나은 결과를 얻을 수있는 RNN의 일반적인 구현은 LSTM 또는 긴 단기 메모리 네트워크입니다.

enter image description here

나는이 너무 많은 세부 사항에 가지 않을 것이다, 지나치게 복잡한 입문 대답을 피하려면. 기본적으로, 그들은보다 복잡한 "숨겨진 유닛"을 가지고 있으며, 이는 어떤 데이터가 보관되고 무엇이 "잊혀진"것인지에 대한보다 복잡한 결정을 가능하게합니다.

독자적으로 구현하려는 경우 Tensorflow를 살펴보십시오. 보다 편안하게 이용할 수있는 도서관이 있다면 RNN 및 LSTM의 구현 방법을 자유롭게 연구하십시오. 그렇다고하더라도 Tensorflow는 시작하기에 좋은 곳입니다.

귀하의 연구에 행운이 있기를 바랍니다.