Outline
1.背景
2.ML Framework
3.Core ML
4.Vision Framework
5.开发流程
背景
Machine Learning 的常见应用场景
Text Prediction :文本预测,如输入法预测;
Entity Recognition:是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等;
Sentiment Analysis:情感分析,如对京东用户商品评论进行分析。
Style Transfer:图像风格转化,如转换成梵高风格,水彩、铅笔,油墨
Image Captioning:自动图像说明,通过识别图中的实体,生成描述图像的文本;
Music Tagging:音乐分类
Text Summarization:文本摘要,如通过算法自动生成今日头条文章的摘要
苹果在ML上的应用
其实,苹果已经在不少产品中使用了ML技术,如相册分类,输入法预测,watch上的手写识别,搜索推荐,siri语音识别。
如何来识别一朵玫瑰花?
ML的初衷是让机器学习人类的思维来解决问题。那么人是如何识别出一朵玫瑰花的呢?一个没见过玫瑰花的小朋友,自然傻傻分不清。当有人传授给他相关经验(花瓣的形状,颜色,气味等特征)后,他便拥有了比较准确的识别能力了。也许经历了几次错误识别之后,他最终真正掌握了识别玫瑰花的能力。
那么,机器也是一样。先传授给他经验,让他记住花有哪些特征。进而给出一些花让他识别,根据识别的结果总结经验,改进识别的思维,提升准确率。最终具备较高的识别玫瑰花的能力。
当具备了某种能力之后,就需要考虑如何应用到实践中,促进社会生产力的进步,提高效率,造福人类(此处存在?)。
假如让一台移动终端设备(iPhone)来跑ML的Model
ML Framework
框架层级
Accelerate 和 MPS是两个底层库,Accelerate 主要是高性能的进行图像、矩阵、向量、大数值运算。使用MPS可以直接跟GPU打交道,进行高性能图像处理。贴下官方描述:
Accelerate:Make large-scale mathematical computations and image calculations, optimized for high performance。
The Metal Performance Shaders (MPS) framework is now available on macOS, providing a highly tuned library of image processing and machine learning primitives to developers. In Metal 2, MPS expands its machine learning capabilities to enable new classes of algorithms, such as natural language processing, to execute on the GPU.
Core ML和Vision之后分别单独列出介绍,NLP是专门为自然语言处理相关的应用场景而设计。
苹果目前致力于让Model可以在单个终端设备(iPhone)上运行,有挑战,也有优势:
数据不会离开终端设备,不用担心用户隐私被泄露
不需要网络连接,无流量消耗,省钱又节能
对服务提供方来说,可以省去搭建后端服务器的花费
7*24小时随时可用,只要有电
Core ML
不同算法模型的运行:输入—>输出
常用的一些基础算法模型
对算法模型的运行(输入—>输出)进行抽象、规范化、通用化:Core ML Model
常用的 Core ML model:https://developer.apple.com/machine-learning
一般的Python算法模型转换为 Core ML model(https://pypi.python.org/pypi/coremltools)
example:sklearn 中的LinearRegression,经过训练后的模型使用coremltools转换为MLMODEL
Vision Framework
Vision 提供的功能
还有物体移动追踪,矩形区域检测等。
图片、视频检测:移动设备 VS 服务器(前面提到过,类似)
个人隐私:更加私密、安全
资源消耗:免费,无数据传输
实时性:无延迟,立即运行
Vision 的抽象方案
简单的使用Demo
开发流程
Core ML model 就是代码
XCode 集成
接口调用
目前手上没有可运行ML Framework 的机器,本文只是理论层面的简介。运行速度、资源消耗,模型准确率对于ML的应用来说非常重要。期待一些成熟、amazing的ML app 的诞生。
参考:Introducing Core ML Vision Framework: Building on Core ML Core ML in depth