GithubHelp home page GithubHelp logo

tianyeeee / continauth Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dynobo/continauth

0.0 1.0 0.0 53.09 MB

Master Thesis - Continuous Authentication using Inertial-Sensors of Smartphones and Deep Learning

License: MIT License

TeX 0.01% Jupyter Notebook 99.86% Python 0.14%

continauth's Introduction

Continuous Authentication using Inertial-Sensors of Smartphones and Deep Learning

Master Thesis,
June 28th, 2019
University of Media, Stuttgart (DE)
Data Science & Business Analytics

Errata

If you identify any issues or irregularities in my project, please let me know! I'm very eager to learn from my mistakes and will share them right here for everyone to benefit.

Project Description

Description
Implementation of a "Continuous Authentication" approach based on inertial sensor data of smartphones. The ensemble model, proposed by Centeno et al. (2018), consists of a Siamese CNN for deep feature learning and an OCSVM for classification. A standard OCSVM with raw data input is used as baseline.

Goals
Attempt to reproduce results reported in the original study.
Evaluate approach in scenario closer to real-world setting.
Propose alternative variant of the original approach.

Timeline
Dec. 2018 - Jun. 2019

Cite

Background

The legitimacy of users is of great importance for the security of information systems. The authentication process is a trade-off between system security and user experience. E.g., forced password complexity or multi-factor authentication can increase protection, but the application becomes more cumbersome for the users. Therefore, it makes sense to investigate whether the identity of a user can be verified reliably enough, without his active participation, to replace or supplement existing login processes.

This master thesis examines if the inertial sensors of a smartphone can be leveraged to continuously determine whether the device is currently in possession of its legitimate owner or by another person. To this end, an approach proposed in related studies will be implemented and examined in detail. This approach is based on the use of a so-called Siamese artificial neural network to transform the measured values of the sensors into another vector that can be classified more reliably.

Project's directory structure

This project is structured after a setup proposed in a tutorial on kdnuggets.com:

├── README.md          <- The top-level README for developers using this project.
├── LICENSE            <- MIT License.
├── data
│   ├── external       <- Data from third party sources. (Extracted H-MOG CSV files)
│   └── processed      <- The final, canonical data sets for modeling. (Transformed in HDF)
│
├── notebooks          <- Jupyter notebooks. Named after the chapter of the thesis,
│                         where the results are discussed.
│
├── reports            <- Generated exports/reports as HTML
│   ├── optimization   <- HTML exports of Notebooks during parameter tuning
│   └── figures        <- Generated graphics and figures to be used in reporting
│
├── environment.yaml   <- The environment file for reproducing the analysis
|                         environment in theAnaconda distribution by executing
|                         `conda continauth create -f environment.yaml`
|
├── pkgs.txt           <- While environment.yaml includes only explicit installed
|                         packages and should be OS agnostic, this file includes
|                         all exact dependencies, but is specific to the OS used on the
|                         developer machine. (Use this, if the one above doesn't work)
|
└── src                <- Source code for use in this project.
    │
    ├── data           <- Scripts to download or generate data
    │
    └── utility        <- Helper scripts

Get it up and running

Install environment:

conda env create -f environment.yml

Enter environment:

conda activate continauth

NOTE: All following commands are expected to be executed inside this virtual environment continauth and with repository root (./) as current working directory!

Install Jupyterlab Extensions (optional):

jupyter labextension install @jupyter-widgets/jupyterlab-manager@0.38 @jupyterlab/toc @krassowski/jupyterlab_go_to_definition @ryantam626/jupyterlab_code_formatter jupyter-matplotlib

jupyter serverextension enable --py jupyterlab_code_formatter

Download Dataset:

  • Download H-MOG Dataset and place the zip file as it is into the repository root.

Run preprocessing steps:

python -m src.data.make_dataset

This will run the following steps, which also can be executed manually:

  • python -m src.data.unzip_hmog_dataset - Unzip into '/data/external' and optionally remove zip file.
  • python -m src.data.transform_to_hdf - Reads CSVs, joins sensor data by time index and store it in HDF format in '/data/processed/' with table key sensors_100hz
  • python -m src.data.resample_dataset - Reads data from HDF, resamples it to 25Hz and stores it as separate table sensors_25hz in the same HDF.

Start Jupyter Lab:

jupyter lab

continauth's People

Contributors

dynobo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.