×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
从 Swift 到 机器器学习 CreateML - Swifter 通向 ML 的⾦金金钥匙 王 巍 (onevcat) 2018.09.15, @Swift Conf.
Slide 2
Slide 2 text
后移动开发时代 Google Trends: “iOS Develop”
Slide 3
Slide 3 text
WWDC 2013
Slide 4
Slide 4 text
转变⼀一般都会带来痛苦
Slide 5
Slide 5 text
如何评价 2017 年年初华为开始「清理理」34 岁以上的职员? 程序员能纯靠技术渡过中年年危机吗? 程序员30岁之前年年薪不不到40W,再不不转⾏行行都晚了了? iOS 末路路了了吗,我找⼯工作两个⽉月,没⼈人要 35 岁做不不到管理理就等于失业
Slide 6
Slide 6 text
我(们)的出路路在哪⾥里里
Slide 7
Slide 7 text
我(们)的出路路在哪⾥里里 ⼤大前端 React Native Weex ⼩小程序 Flutter 机器器学习 深度学习 计算机视觉 ⾃自然语⾔言处理理 ⻛风格化图像处理理
Slide 8
Slide 8 text
其余的出路路 区块链 P2P信贷 做个快乐的肥宅
Slide 9
Slide 9 text
做个快乐的肥宅
Slide 10
Slide 10 text
I have an idea!
Slide 11
Slide 11 text
App: 普尔亚后援会 • 使⽤用相机或者照⽚片库 • 识别照⽚片中的普尔亚⼿手势 • 收集到三张照⽚片获得奖励
Slide 12
Slide 12 text
HOW?
Slide 13
Slide 13 text
我(们)的出路路在哪⾥里里 ⼤大前端 React Native Weex ⼩小程序 Flutter 机器器学习 深度学习 计算机视觉 ⾃自然语⾔言处理理 ⻛风格化图像处理理
Slide 14
Slide 14 text
CreateML WWDC 2018 Session 703 https://developer.apple.com/videos/play/wwdc2018/703/
Slide 15
Slide 15 text
⼀一般流程 准备数据 训练模型 评估模型
Slide 16
Slide 16 text
⼀一般流程 准备数据 训练模型 评估模型 图⽚片 + 分类标签 准备训练数据 (train set) 和验证数据 (validation set) 调整参数 寻找使训练数据具有最⼩小误差值的⼀一组参数 使⽤用验证数据对模型准确率评估
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
⼀一般流程 准备数据 训练模型 评估模型
Slide 19
Slide 19 text
CreateML 到底做了了什什么
Slide 20
Slide 20 text
mlmodel https://apple.github.io/coremltools/coremlspecification/index.html Protocol Buffers 序列列化的模型描述 layer 类型,权重等
Slide 21
Slide 21 text
~KB 迁移学习 VisionFeaturePrint_Scene mlmodel VisionFeaturePrint_Scene 只存在于 iOS 12, macOS 10.14 Vision 框架背后的特征提取 17KB in Demo Transfer Learning
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
✅ VisionFeaturePrint_Scene VisionFeaturePrint_Screen
Slide 24
Slide 24 text
Core ML Community Tools
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
visionFeaturePrint glmClassifier
Slide 27
Slide 27 text
开始定义 pipeline 输⼊入 299x299 保留留特性的同时限制处理理时间 内置模型 (特征提取) 2048 个特征的数组 (1, 2048) ⼴广义线性模型 (GLM) (2048, 1),与特征点乘得到结果
Slide 28
Slide 28 text
发⽣生了了什什么
Slide 29
Slide 29 text
Turi
Slide 30
Slide 30 text
Turi • 2013, 成⽴立 • 2016, Apple 以 2 亿美元收购 • 2017, 开源, ⽀支持 Metal 和 macOS GPU 加速 • 2018, 部分集成⼊入 Apple Developer Toolkit (Xcode) • 未来, 更更多的学习任务… 基于学习任务的 “傻⽠瓜式” 机器器学习框架
Slide 31
Slide 31 text
⼏几个问题
Slide 32
Slide 32 text
VisionFeaturePrint 集成在 iOS 12 和 macOS 10.14 中 问题 No.1
Slide 33
Slide 33 text
Core ML - iOS 11 • CoreML 从 iOS 11 开始⽀支持 • ⽆无法读取 CreateML 创建的带有 VisionFeaturePrint 的模型
Slide 34
Slide 34 text
Core ML - iOS 11 使⽤用 TuriCreate 的其他模型进⾏行行特征提取 可以得到与 CreateML 相近的结果
Slide 35
Slide 35 text
https://github.com/apple/turicreate
Slide 36
Slide 36 text
Demo
Slide 37
Slide 37 text
No content
Slide 38
Slide 38 text
~ 90+ MB
Slide 39
Slide 39 text
过拟合,准确率 问题 No.2
Slide 40
Slide 40 text
⼀一个⾼高度 的模型 Overfitting 过拟合
Slide 41
Slide 41 text
过拟合
Slide 42
Slide 42 text
过拟合 训练数据严重不不⾜足 只来源于单⼀一⼈人员和单⼀一场景 对于⾮非该⼈人员的识别相当低效 默认的训练⽅方式只对最后⼀一层进⾏行行训练 特征提取模型中不不包含对应特征
Slide 43
Slide 43 text
0 22.5 45 67.5 90 0 5 10 15 20 准确率
Slide 44
Slide 44 text
默认特征提取模型下 增加训练数据,可以达到 85% 左右
Slide 45
Slide 45 text
卷积神经⽹网络和特征提取
Slide 46
Slide 46 text
抽象特征 (边缘,线条,⻆角度) 具体特征 (眼睛,⿐鼻⼦子,⽿耳朵)
Slide 47
Slide 47 text
CreateML (Turi) 的迁移学习 只对最后⼀一层进⾏行行训练 抽象特征 泛⽤用性 具体特征 专⽤用性
Slide 48
Slide 48 text
调整若⼲干层卷积层参数 进⾏行行迁移学习
Slide 49
Slide 49 text
CreateML / Turi
Slide 50
Slide 50 text
更更加“可操控”的学习⽅方式
Slide 51
Slide 51 text
更更加“可操控”的学习⽅方式
Slide 52
Slide 52 text
92% 左右的正确率
Slide 53
Slide 53 text
⼀一些客户端 ML 的 实际应⽤用
Slide 54
Slide 54 text
Super-Resolution SRCNN
Slide 55
Slide 55 text
https://speakerdeck.com/kenmaz/super-resolution-with-coreml-at-try-swift-tokyo-2018 SRCNNKit from DeNA
Slide 56
Slide 56 text
https://github.com/DeNA/SRCNNKit
Slide 57
Slide 57 text
在漫画之外使⽤用 1. 专⻔门的训练数据 2. 通过预处理理提取场景特征 (⼈人物,⻛风景,UI) 3.更更多的层数
Slide 58
Slide 58 text
⾳音乐情绪识别
Slide 59
Slide 59 text
从⾳音乐的曲调和节奏识别⾳音乐情绪 Music Keyword 梁梁祝 温柔婉转 命运交响曲 激情雄壮 ⼩小苹果 轻松欢快
Slide 60
Slide 60 text
其他场景 • 本地垃圾短信识别 • 游戏 AI (GameplayKit) • 专⽤用的图像分类/识别 • etc…
Slide 61
Slide 61 text
总结 • ⼩小模型,Client Side ML 的关键 • 对于既有特征表现⾮非常出⾊色 (ImageNet Category) • 简单,⽆无脑,拖拽式得到可⽤用模型 • 对⼯工程师友好,可以在 client 本机编译 (下载更更新模型)
Slide 62
Slide 62 text
总结 • 只适⽤用于特定任务 (图⽚片分类/⾃自然语⾔言处理理/回归分析) • TuriCreate 只能有限扩展 (使⽤用第三⽅方模型, ⻛风格化图 ⽚片滤镜等) • ⽆无法处理理⾃自定义模型,或者更更⼀一般化的任务
Slide 63
Slide 63 text
⼀一些资源 Awesome Core ML Models https://github.com/likedan/Awesome-CoreML-Models Machine Learning for iOS https://github.com/alexsosn/iOS_ML Apple Machine Learning Journal https://machinelearning.apple.com Kraggle https://www.kaggle.com Machine Learning (Turi) - Coursera https://coursera.org/specializations/machine-learning Deep Learning with Python https://www.manning.com/books/deep-learning-with-python
Slide 64
Slide 64 text
谢谢!: ] @onevcat,
[email protected]