Idea of the approach is to use a trained predictor X→Y (e.g., a neural network) to define a subspace in X, so that it covers the majority of predicted variance in Y, i.e., to achieve a dimensionaity reduction.
Original work was first implemented using sklearn and scipy.optimize routines, but later rewritten in Pytorch, gaining 10x improvement in speed.
I've assembled popular online tutorial «Neural Networks and Deep Learning» from Mickael Nielsen into LaTeX/source, so it can be easily compiled into PDF or EPUB, which many users found more suitable for reading. One chapter of this tutorial, which in the original HTML version contains plenty of interactive Javascript elements, I replaced with Tikz-based graphics.
As a test task, I've implemented Authenticatino API in Django, which allows registration, login/logout, refresh of the access tokens and retrieval of personal information. Final version was deployed at Google Cloud Platform.
$ curl -X POST http://django-420215.lm.r.appspot.com/api/register/ -d "{\"password\": \"password\", \"email\": \"user@example.com\"}" -H "Content-Type: application/json" {"id":8,"email":"user@example.com"} $ curl -X POST http://django-420215.lm.r.appspot.com/api/login/ -d "{\"password\": \"password\", \"email\": \"user@example.com\"}" -H "Content-Type: application/json" {"refresh_token":"be1cafc0-f8c1-11ee-abe6-820a10a51612","access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjoxNzEyOTI1NzQ5LjY5MTMyNiwidXNlcl9pZCI6OH0.z5lfLvm65GgGY6awXH0l31hCeQyRHWruwtF5OBGJ2_U"} $ curl -X POST http://django-420215.lm.r.appspot.com/api/login/ -d "{\"password\": \"passw0rt\", \"email\": \"django@unchained.com\"}" -H "Content-Type: application/json" {"refresh_token":"9baf5ede-fe17-11ee-845a-70b5e83d9f62","access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjoxNzEzNTI0MzU0LjA3OTQ3OSwidXNlcl9pZCI6MX0.Nofz1EbWnzrAFvm8C2dXxlZFXcqRvHhqPUcRZEgUL-o","message":"Refresh token already exists"}
I have demonstrated, how by combining trained Neural Network (here, AlexNet) with clustering approaches, it is possible to create an unvonventional approach for unsupervised classification of scientific data. This method was tested on synthetic data as well on the real experimental data measured during my PhD studies.
The project I've done for C12 Quantum Electronics start-up: GUI design for the control system of the furnace to grow carbon nanotubes.
For our work, I've created a set of classes to handle input and output files of Gromacs (molecular dynamics simulation software): allows to handle individual molecules, individual snapshots and the entire MD trajectory. Reads *.trr and *.gro files, fixes molecule broken by the simulation box. Also generates a correct input for further spectral calculations.
We store most of our research data in HDF files. For a quick inspection of the file contents, I've written tiny HDF viewer wit GUI.
As my last project at the University, I created a replacement of the outdated version of the website to manage liquid helium consumed by the physics department: orders from the research groups and deliveries by the engineer.
I was responsible for handling two Wordpress-based websites of two researche groups I belonged to: nanoelectronics.unibas.ch and calame.unibas.ch (the latter is not updating anymore, since my supervisor has moved to another place). Apart from regular installation & management, I've tweaked the source code of the theme and of bibliography plug-in: