How Would I Easily Create Machine Learning Models?

I am interested in creating a project on iOS that utilizes CoreML and Vision, and I would really appreciate some advice on getting started. My main concern is actually creating a machine learning model. Ideally, I would like to use a tool that would take a substantial amount of photos of a dog, for example, and then would allow me to label them as such. Ideally, CoreML would be able to use this data to recognize other dogs in a given photo. For example, it'd be great to supply photos of a tree, for example, and have an application distinguish between a tree and a dog. Is there any tool like this that exists?

Though this is seemingly a very simple example, is it possible to easily create a machine learning model for CoreML that would achieve this behavior? I understand that this may be a huge oversimplification of CoreML, machine learning tools, and how one may use them, but I am really just trying to get started with machine learning. Thanks in advance!

Replies

Apple has provided several models available to you here. Several of those were trained using the ImageNet data set, which includes 1000 classifications. I believe they include both dog and tree. I'd start with those models to get started.


Here's some info on imagenet.


I'd also check out the Vision WWDC talk from 2017 -- the sample code includes use of Vision in concert with a trained ML model.

So broadly speaking, in machine learning you can divide up the work into two parts, the actual learning of your models and then using the learned model, you do inference on unseen data. CoreML as it is currently is only for the inference part.


Thus if you want to make a machine learning model, you will need some source data of images and their labels, and then you will need to use keras (a high level API on top of a few deep learning frameworks) or tensorflow to train model. This means you will need to learn how these framework work as well as the ideas of deep learning using either keras or tensorflow. Tensorflow comes with a udacity course and there are plenty of resources online to learn.


So to recap once you have machine learning model you can use coreml to do only the inference.


hope that helps!

Thanks! That certainly does help! I'll have to do some more research into Keras and Tensorflow.