👍 For news and articles from Skills Matter, subscribe to our newsletter here.
How Apple is empowering apps through Machine Learning
In a talk given in early December this year, Paul Hudson (author of Hacking with Swift) outlined how Apple’s CreateML on Mac OS can be used to build models for machine learning, and how CoreML on iOS is used for applying these models in applications.
“There is now nothing stopping app developers from using machine learning,” said Hudson’s seemingly autonomous Siri, who took over his talk in London like a creepy nod back to 2001: A Space Odyssey. “It’s easy to do and you’ll get great results right out of the box.”
Three ways CreateML builds ML capabilities
Originally released in June 2017 (with version two released a year later), CreateML allows developers to use tools like Swift and MacOS playgrounds to create, train and test Machine Learning models. These capabilities fall under three areas:
CreateML allows developers to split their image data. Training data is what is shown to CreateML to help it learn what things look like, while testing data is more data that CreateML hasn’t seen yet, so it lets us see how good the model is. CreateML allows developers to build image classifiers just by a drag and drop function, making this an accessible tool for those starting out with ML.
When there isn’t a lot of data, data augmentation is built into CreateML’s capabilities, changing aspects of a single image to test against (i.e. crop, blur, flip etc.).
The biggest challenge for developers is the lack of quality data sets out there to play around with. There is data to use, but finding good data that isn’t biased remains a challenge.
Sentiment analysis involves an algorithm being able to read through text to tell what emotions are conveyed by that text.
Text needs to be organised and labeled according to emotional context. It needs a lot of text to learn as much as it can, which is again where appropriate and significant data sets are needed, but being able to analyse sentiment in very long and messy text is one of CreateML’s greatest functions.
CreateML can estimate how manipulating several variables can bring about a specific result and in doing so bring about new variables it hasn’t seen before (only estimating the relationships between its variables).
Taking Machine Learning to the wider community
The entire point of Apple’s CreateML and CoreML is to bring the principles of Machine Learning to a larger class of developers, especially those with little or no experience in ML. In essence, it is a training and experimentation tool for developers, with the potential for them to incorporate the models they build in CreateML to their apps. The ‘training’ aspect of processing data in ML is CPU-intensive, requiring significant computing power, which is why it is done in the Cloud. CreateML lets developers play with ML principles on their own computer, which restricts them according to their device’s computing power.
Yet, with sourcing sizeable, quality data the number one hurdle for CreateML and CoreML, computing power is a secondary concern. This is why the tools are targeted at the moment towards developers interested but not yet systematically working in ML.
“The hardest part of ML is finding data,” Hudson said in his talk. “Getting data itself isn’t hard, but getting clean data?… There are a number of great data sets out there but they’re very much geared towards academics.”
This lack of access to data is exactly why CreateML is important, as it allows the greater dev community to experiment and educate itself with ML principles in preparation for advances in data access.
Watch the free talk Core ML for Everyone delivered by Paul Hudson in December 2018.