Bartosz Malman

My name is Bartosz, I am living in Lund, Sweden, where I am currently working towards a PhD degree in mathematics at Lunds Universitet, sitting in the Matematikcentrum.

My mathematical research is focused on the subjects of operator theory and complex analysis. You can read more about my mathematical work here, the text is actually a preliminary version of the introduction to my PhD thesis. I also like pure and applied computer science and programming, you can find some samples of my work here on this webpage.

Previously I have obtained Master's degree in Computer engineering at E-Huset, and then my adventures took me all the way to Matematikcentrum at the other side of the lake on the same campus, where I obtained a Master's degree in mathematics.

Home

Address: Vikingavägen 20c,
22477 Lund,
Sweden
E-mail: bartek.malman@gmail.com
Phone: +46730561902

Work

Address: Sölvegatan 18,
Box 118,
221 00 Lund,
Sweden
Office: 512, fifth floor
E-mail: bartosz.malman@math.lu.se
A pdf version of my CV is here.

Publications

Preprints

I have coded a small digit recognition tool in Python, Javascript and PHP. The idea was to learn a bit about this new fashionable concept of artificial neural networks, and not use any machine learning libraries but instead get a feeling for the subject by deriving the equations and building every piece from scratch. I have used the excellent book by Michael Nielsen as my knowledge source. The theory requires not more than a university course in multivariable calculus, and perhaps a bit of linear algebra, to understand.

I have used the simplest fully-connected neural networks, with the cross-entropy cost function and L2 weight regularization techniques, as well as some hard-to-justify improvisations that I thought might help. The code for learning was written in Python and can be found here. It is not optimized in any particular way, but runs fast enough to train the networks in reasonable time on my cheap personal laptop. The learned network was then ported to PHP, and the app below does some necessary pre-processing of the input image in Javascript. The data set that I used for learning was the classical MNIST database of 60000 scanned images of handwritten digits. I've achieved a 98% accuracy on the MNIST test set. Of course, a more difficult test can be carried out below by you.

I have trained several networks. The first, which I call B1, will be used if you press the "Recognize B1" button below. It is a standard fully-connected network of two hidden layers, 100 neurons in the first and 10 in the second. It achieved 98.01% accuracy rate on MNIST test data set. I've also trained a deeper network, B2, which consists of 150, 200 and 100 hidden neurons in the three hidden layers. It incidentally achieved the same 98.01% accuracy as the simpler B1. The estimates of the two networks do sometimes differ, and when one fails, sometimes the other succeeds, suggesting that an ensamble of networks could probably improve my results. The pie chart appearing on the right side represents some sort of confidence in the decision that the network made. Check yourself how it recognizes digits written by you. When I draw the digit, both networks seem to have some trouble with detecting my "8s", and they often think it is a "3". My "4" sometimes kind of looks like a "9", then this is evidenced in the probabilities in the pie chart. I find that if I put in minimal effort into drawing the digit, the recognition works great except for 8s. Of course, the data used for learning was actual scanned human-handwritten digits, while here we input something drawn on a computer screen, so certain difficulties are understandable. I would still like to fix that, perhaps a more advanced convolutional network would take care of this.


Draw in the left box. Change stroke width with slider below.
Some time ago I decided to stop wasting time watching the English Premier League every weekend, and instead wanted to do something more productive with my free time. So I learned a bit of web application development through coding of a training log application which I needed at the time and which I to this date use. It has a stupid name, it is based on Laravel framework and is thus written in PHP. Here is my own profile where I log all my training, body weight and other things. I use it mainly to keep myself accountable and to collect data to be able to compute all sorts of statistics that I find interesting. It has a stock Laravel login and registration feature, but the application is not particularly useful for anyone except me, since the exercise list is static and cannot be modified by other users (perhaps I'll fix that in the future, I continuously develop the app whenever I find motivation). The application works fine at least on latest versions of Google Chrome and Mozilla Firefox, and it looks fine in Safari on my iPhone. I have not tested it on other platforms.