Machine Learning Framework

Yuma Antoine Decaux
|
July 14, 2017
AI and its categories is shooting up and making the news on a daily basis, whether it is for computer vision, natural language processing, optimising business processes or even finding new things and correlations we had no idea about. The team of software developers at deep mind (Google) are churning up incredibly interesting algorithms every few months which trumps their previous efforts. Large corporations are hunting for talent knowledgeable in the complex but accessible art of machine learning paradigms.

It is a different way of coding, a whole new paradigm. We don't deal with loops or switches, standard programming functions, but get into the nitty gritty of several overlapping subjects such as stats, linear algebra, group theory and categorisation theory, blending them all into a very elegant way of looking at knowledge, conscience and understanding.

An image of people stacking ideas onto a machine learning conveyor belt, and money coming out the other end

As a blind programmer, I entered the 36th chamber of AI 2 years ago when I first took an AI course at uni. I then got hooked and took another course, then auxiliary courses which would help me solidify this new paradigm which is set to completely change the way we see the world, software and the human brain. This is an exercise in creating an expressive matlab style framework for building simple Machine Learning objects. The extensions to the default swift objects are changed and used in conjunction with the Accelerate c++ framework to make vector and matrix operations more efficient, and loading data files easy.

Instead of using dot syntax for building your model, the standard mathematical way of creating them makes more sense to me. So I decided to write these extensions, in an effort to keep practicing this art. Inspired by The Stanford Machine Learning course, which has limited accessibility, but can be conquered with enough coffee, motivation and a helping eye for most graphs.

This is a work in progress, but hopefully it can give some blind programmers more intuition into the structures related to ML which will be used on a regular basis.

The repo can be found here: https://github.com/triple7/MachineLearningFramework

If you have any requests, I will try to create more models, structures and also add some basic examples for each algorithm, using some interesting data sets.

If you have any questions, ask away.