Hi, my name is Matthijs Hollemans.
I am an independent consultant who specializes in deep learning on iOS. If you want to add deep learning to your app, I’m the guy to talk to.
I’m also available for other kinds of machine learning, as well as general algorithm and optimization work.
To get a taste for the sort of things I do, check out my blog where I write about the practical aspects of doing deep learning on iOS.
What is deep learning?
Machine learning is a way to create software that can learn how it should behave from data, instead of having to be explicitly programmed.
Thanks to these new techniques it is now possible to automate tasks that were previously too difficult for computers to handle.
Deep learning is a specific kind of machine learning that uses large artificial neural networks that mimic how the human brain processes information.
The traditional way to solve problems with software is for a developer to write down a series of rules that tell the computer how to interpret the data and make decisions. Designing good rules is hard, especially for “fuzzy” or ambiguous tasks such as recognizing faces or translating speech.
The power of machine learning is that it can automatically learn these rules from a collection of examples. Often the rules discovered by deep learning are much more effective than those designed by a human programmer.
And that’s why everyone wants to add deep learning into their software!
I can help you add deep learning into your mobile app.
How to do deep learning on mobile
Mobile devices are finally powerful enough to take advantage of advanced machine learning and artificial intelligence algorithms, so it makes sense that developers will now want to put deep learning into their apps.
Sounds great, but how do you get started? Here’s what it takes to add deep learning to your app and your business:
- you need to design a model using a deep learning architecture that is suited to the problem you’re trying to solve
- you need to collect and clean up the data for training the model
- you need to train the model so that it works well on new, previously unseen data
- and then you need to make the trained model work reliably in a production environment.
Building a machine learning model in a research lab is one thing — but when you put the model into an actual app… that is where theory meets the real world.
You need an experienced engineer to help make this transition from lab to app.
What can I do for you?
I want to help you make the most out of machine learning in your app and your business.
These are the services I offer:
- I can take your trained machine learning model and implement it on iOS using Apple’s Core ML, Metal (GPU), or Accelerate frameworks.
- If your model is using non-standard layers or requires a special algorithm, I can implement custom layers and custom GPU compute kernels with Metal for greatest possible speed.
- I can compress and optimize your model to make it small enough to fit on the device, but still performs up to your standards.
- If your model cannot be converted to Core ML using the standard tools, or if Core ML does not support certain operations, I can re-architect the model to work within the limitations of Core ML.
- I can integrate the machine learning model into the rest of your app for a seamless user experience.
- I can optimize your existing code for speed, memory, and battery usage.
- I can design and train custom models that are tailored to your use case.
In addition, I can provide advice and guidance on:
- how to collect data, design models, and train models
- how to compress your models so they will fit on iOS devices
- how to improve your models to give better performance
Many of my clients already have a (sometimes experimental) machine learning model and they just want help with implementing it on iOS. If you’re new to deep learning, I am also happy to design and train models based on your requirements.
As the author of several iOS books, I know how to explain things. I’d be pleased to train your team on how to use deep learning and machine learning techniques.
Get started faster with pre-built models
I’ve recently created a source code library for iOS and macOS that has fast Metal implementations of MobileNet V1 and V2, as well as SSDLite and DeepLabv3+.
This library makes it easy to add MobileNet-based neural networks into your apps, for tasks such as:
- image classification
- real-time object detection
- semantic image segmentation
- as a feature extractor that is part of a custom model
Because this library is written to take advantage of Metal, it is much faster than Core ML and TensorFlow Lite!
If you’re interested in using MobileNet in your app or as the backbone for a larger model, then this library is the best way to get started. Read more
A little more about me…
I’ve been coding for 33 years, 25 of those professionally.
In the past I’ve worked on games, graphics, programming languages, enterprise systems, back-ends, front-ends, process control systems, mobile apps, and many other types of software.
I’ve worked at large companies, at startups, and as an independent developer and contractor. Because of these varied experiences, it’s safe to say I am an all-round developer. I’m comfortable with many different programming languages and tools.
Recently I’ve been focusing exclusively on machine learning — and especially deep learning. I try to stay up-to-date with the latest research and practical techniques.
Some career highlights:
I’m the original author of The iOS Apprentice, a book for complete beginners that teaches iOS and Swift development from the ground up. It is published through the popular tutorial website raywenderlich.com.
I also started Swift Algorithm Club, an open source project that implements many algorithms and data structures in Swift with detailed explanations.
I am a regular contributor to open source projects. One fun project I worked on was the Haiku Operating System. A fair bit of my machine learning work gets posted as open source too, for example the Core ML Helpers library.
As an independent developer, I’ve published several iPhone and iPad apps over the years. Currently I’m selling the game Mahjong Cards for iPad.
I also mentor young developers.
My focus is on doing high quality work. When you hire me, you’ll be guaranteed a good working relationship, attention to detail, and a product we can both be proud of. I am only happy if the software is the best that it could possibly be!
Contact me to talk about your product and your plans for it. I’d be happy just to chat about your idea and the possibilities for turning it into an awesome mobile app. I hope to hear from you soon!