Machine Learning for iOS

原文:https://github.com/alexsosn/iOS_ML

iOS开发人员的主题资源列表,主题如下:

  • 核心ML
  • 机器学习库
  • 深度学习图书馆
    • 深度学习:模型压缩
  • 计算机视觉
  • 自然语言处理
  • 语音识别(TTS)和生成(STT)
  • 文本识别(OCR)
  • 其他AI
  • 机器学习Web API
  • 开源ML应用程序
  • 游戏AI
  • 其他相关人员
    • 线性代数
    • 统计,随机数
    • 数学优化
    • 特征提取
    • 数据可视化
    • 生物信息学(有点)
    • 大数据(不是真的)
  • iOS ML博客
  • 移动ML书籍
  • GPU计算博客
  • 学习机器学习
  • 其他名单

AI相关领域中的大多数事实上的标准工具都是用iOS不友好的语言(Python / Java / R / Matlab)编写的,因此找到适合您的iOS应用程序的东西可能是一项具有挑战性的任务。

该列表主要包括用Objective-C,Swift,C,C ++,JavaScript和其他一些可以轻松移植到iOS的语言编写的库。此外,我还提供了一些相关网络API,博客文章,视频和学习资料的链接。

资源按字母顺序或随机排序。订单不反映我的个人喜好或其他任何内容。有些资源很棒,有些很棒,有些很有趣,有些可以作为灵感。

玩得开心!

拉请求,欢迎在这里

核心ML

  • coremltools是一个Python包。它包含从一些流行的机器学习库到Apple格式的转换器。
  • Core ML是一个在设备上运行推理的Apple框架。它针对Apple硬件进行了高度优化。

目前,CoreML通过coremltools python包与以下机器学习包兼容(部分):

  • 咖啡
  • Keras
  • LIBSVM
  • scikit学习
  • XGBoost

某些型号的第三方转换器也适用于CoreML格式:

  • Turicreate
  • TensorFlow
  • MXNet
  • Torch7
  • CatBoost

核心ML格式的预训练神经网络有许多精选列表:[1],[2],[3]。

Core ML目前不支持培训模型,但您仍可以通过在运行时从服务器下载新模型来替换模型。这是一个如何做到这一点的演示。它使用MNIST GAN的发生器部分作为核心ML模型。

通用机器学习库

图书馆 算法 语言 执照 依赖管理器
AIToolbox
  • 图/树

  • 深度优先搜索

  • 广度优先搜索

  • 爬山搜索

  • 光束搜索

  • 最优路径搜索

  • Alpha-Beta(游戏树)

  • 遗传算法

  • 约束传播

  • 线性回归

  • 非线性回归

  • 参数-Δ

  • 梯度下降

  • 高斯 - 牛顿

  • Logistic回归

  • 神经网络

  • 多层,几个非线性模型

  • 在线和批量培训

  • 前馈或简单的复发层可以在一个网络中混合

  • 实施LSTM网络层 - 需要更多测试

  • 梯度检查例程

  • 支持向量机

  • K均值

  • 主成分分析

  • 马尔可夫决策过程

  • 蒙特卡洛(每次访问,第一次访问)

  • SARSA

  • 单变量和多变量高斯

  • 高斯混合物

  • 模型验证

  • 深度网络

  • 卷积层

  • 汇集层

  • 完全连接的NN层

| 迅速 | Apache 2.0 |

GitHub上

| |

| [
image

DLIB](http://dlib.net/) |

  • 深度学习
  • 支持向量机
  • 用于大规模分类和回归的降秩方法
  • 用于分类和回归的相关向量机
  • 多类SVM
  • 结构SVM
  • 一个大规模的SVM-Rank
  • 在线内核RLS回归
  • 一种在线SVM分类算法
  • 半定量度量学习
  • 在线核心质心估计器/新颖性检测器和离线支持向量一类分类
  • 聚类算法:线性或内核k-means,中文Whispers和Newman聚类
  • 径向基函数网络
  • 多层感知器

| C ++ | 促进 | GitHub上 | |
| FANN |

  • 多层人工神经网络
  • 反向传播(RPROP,Quickprop,Batch,Incremental)
  • 不断发展的拓扑训练

| C ++ | GNU LGPL 2.1 | GitHub上 | 可可豆荚 |
| lbimproved | k-最近邻和动态时间扭曲 | C ++ | Apache 2.0 | GitHub上 | |
| 机器学习 |

  • 神经网络

  • 激活功能:线性,ReLU,Step,sigmoid,TanH

  • 成本函数:平方误差,交叉熵

  • 反向传播:标准,弹性(又称RPROP)。

  • 按样品或批量进行培训。

  • 一袋字

  • 单词向量

| Objective-C的 | BSD 3条款 | GitHub上 | |
| [[图片上传失败...(image-dbeb7f-1555056467289)]

MLKit](https://github.com/Somnibyte/MLKit) |

  • 线性回归:简单,脊,多项式
  • 多层感知器和Adaline ANN架构
  • K-Means聚类
  • 遗传算法

| 迅速 | MIT | GitHub上 | 可可豆荚 |
| [[图片上传失败...(image-63a942-1555056467289)]

孟德尔](https://github.com/saniul/Mendel) | 进化/遗传算法 | 迅速 | ? | GitHub上 | |
| 多分支 - 数学 |

  • 线性代数和张量

  • 主成分分析

  • 用于降维的多线性子空间学习算法

  • 线性和逻辑回归

  • 随机梯度下降

  • 前馈神经网络

  • 乙状结肠

  • RELU

  • Softplus激活功能

| 迅速 | Apache 2.0 | GitHub上 | Swift包管理器 |
| [[图片上传失败...(image-202599-1555056467289)]

OpenCV的](http://opencv.org/) |

  • 多层感知器
  • 提升树分类器
  • 决策树
  • 期望最大化
  • K-Nearest Neighbors
  • Logistic回归
  • 贝叶斯分类器
  • 随机森林
  • 支持向量机
  • 随机梯度下降SVM分类器
  • 网格搜索
  • 分层k均值
  • 深度神经网络

| C ++ | 3条款BSD | GitHub上 | 可可豆荚 |
| [

image

鲨鱼](http://image.diku.dk/shark/sphinx_pages/build/html/index.html) |

  • 监督:

  • 线性判别分析(LDA)

  • 费雪LDA

  • 线性回归

  • 支持向量机

  • FF NN

  • RNN

  • 径向基函数网络

  • 正规化网络

  • 回归的高斯过程

  • 迭代最近邻分类和回归

  • 决策树

  • 随机森林

  • 无监督:

  • PCA

  • 受限制的玻尔兹曼机器

  • 分层聚类

  • 用于有效的基于距离的聚类的数据结构

  • 优化:

  • 进化算法

  • 单目标优化(例如,CMA-ES)

  • 多目标优化

  • 基本线性代数和优化算法

| C ++ | GNU LGPL | GitHub上 | 可可豆荚 |
| [

image

YCML](https://github.com/yconst/YCML) |

  • 梯度下降反向传播

  • 弹性反向传播(RProp)

  • 极限学习机(ELM)

  • 使用正交最小二乘(RBF网)进行前向选择,也使用PRESS统计

  • 二元受限玻尔兹曼机器(CD和PCD)

  • 优化算法

  • 梯度下降(单目标,无约束)

  • RProp梯度下降(单目标,无约束)

  • NSGA-II(多目标,受限制)

| Objective-C的 | GNU GPL 3.0 | GitHub上 | |
| [

image

Kalvar Lin的图书馆](https://github.com/Kalvar) |

  • ios-KRHebbian算法 - Hebbian理论
  • ios-KRKmeans-Algorithm - K-Means聚类方法。
  • ios-KRFuzzyCMeans算法 - 模糊C均值,模糊聚类算法。
  • IOS-KRGreyTheory - 灰色理论 / 在时间序列预测灰色系统理论为基础的模型
  • ios-KRSVM - 支持向量机和SMO。
  • ios-KRKNN - kNN实施。
  • ios-KRRBFNN - 径向基函数神经网络和OLS。

| Objective-C的 | MIT | GitHub上 | |

多层感知器实现:

  • Brain.js - JS
  • SNNeuralNet - brain.js的 Objective-C端口
  • MLPNeuralNet - Objective-C,加速
  • Swift-AI - Swift
  • SwiftSimpleNeuralNetwork - Swift
  • ios-BPN-NeuralNetwork - Objective-C
  • ios-Multi-Perceptron-NeuralNetwork - Objective-C
  • ios-KRDelta - Objective-C
  • ios-KRPerceptron - Objective-C

深度学习库:

设备上的培训和推理

  • Birdbrain - 在金属和加速之上的RNNs和FF NNs。尚未准备好投入生产。
  • BrainCore - 用Swift编写的简单但快速的神经网络框架。它使用Metal框架尽可能快。ReLU,LSTM,L2 ......
  • Caffe - 一个深度学习框架,以清洁,可读性和速度为基础。GitHub。[BSD]
    • iOS端口
    • caffe-mobile - 另一个iOS端口。
    • C ++示例:对ImageNet进行分类,提取特征
    • Caffe iOS样本
  • Caffe2 - 一个跨平台的框架,以表达,速度和模块化为考虑。
    • 可可豆荚
    • iOS演示应用
  • Convnet.js - ConvNetJS是一个用于培训Andrej Karpathy深度学习模型的Javascript库。GitHub上
    • ConvNetSwift - Swift端口[正在进行中]。
  • Deep Belief SDK - 用于Jetpac的iOS Deep Belief图像识别框架的SDK
  • TensorFlow - 一个使用数据流图进行数值计算的开源软件库。图中的节点表示数学运算,而图表边表示在它们之间传递的多维数据阵列(张量)。灵活的体系结构允许您使用单个API将计算部署到桌面,服务器或移动设备中的一个或多个CPU或GPU。
    • iOS示例
    • 另一个例子
    • 完美-TensorFlow - TensorFlow结合完美(服务器端斯威夫特框架)。仅包含C TF API。
  • tiny-dnn - 仅限头文件,C ++ 11中的无依赖性深度学习框架。
    • iOS示例
  • Torch是一种科学计算框架,广泛支持机器学习算法。
    • Torch4iOS
    • 火炬的iOS

深度学习:在设备上运行预先训练的模型

这些库不支持培训,因此您需要在某些ML框架中预先训练模型。

  • Bender - 构建快速NN的框架。支持TensorFlow模型。它在引擎盖下使用金属。
  • 核心ML
  • DeepLearningKit - 来自Memkite的开源深度学习框架,适用于Apple的tvOS,iOS和OS X.
  • Espresso - 在iOS上运行的最小高性能并行神经网络框架。
  • Forge - Metal的神经网络工具包。
  • Keras.js -运行Keras模型在Web视图。
  • KSJNeuralNetwork - 在BNNS和MPS之上构建的神经网络推理库
    • 适用于Torch型号的转换器
  • MXNet - MXNet是一个深度学习框架,旨在提高效率和灵活性。
    • 将预先训练好的mxnet模型部署到智能手机
  • 用于移动设备的量化CNN压缩卷积神经网络
  • WebDNN - 如果需要,您可以在Web视图中运行深度学习模型。三种模式:WebGPU加速,WebAssembly加速和纯JS(在CPU上)。没有培训,仅推理。

深度学习:低级例程库

  • BNNS - Apple Basic神经网络子程序(BNNS)是一组函数,您可以使用以前获得的训练数据来实现和运行神经网络。
    • iOS 10采样器中的BNNS使用示例。
    • 由tensorflow训练并使用BNNS执行的神经网络的示例
  • MetalPerformanceShaders - 来自Apple的GPU上的CNN。
    • MetalCNNWeights - 用于为MPS转换Inception v3的Python脚本。
    • MPSCNNfeeder - Keras到MPS模型的转换。
  • NNPACK - 多核CPU上神经网络的加速包。Prisma 在移动应用程序中使用此库。
  • STEM - 用于机器学习的Swift Tensor引擎
    • 文档

深度学习:模型压缩

  • TensorFlow实现知识提取方法
  • MobileNet-Caffe - Caffe实施Google的MobileNets
  • keras-surgeon - 修剪受过训练的Keras模型。

计算机视觉

  • ccv - 基于C /缓存/核心计算机视觉库,现代计算机视觉库
    • iOS演示应用
  • OpenCV - 开源计算机视觉库。[BSD]
    • OpenCV速成课程
    • OpenCVSwiftStitch
    • 教程:在iOS设备上使用和构建openCV
    • 适用于iOS的OpenCV示例集合
  • OpenFace - 一种最先进的开源工具,用于面部标志检测,头部姿势估计,面部动作单元识别和眼睛注视估计。
    • iOS端口
    • iOS演示
  • trackingjs - JS中的对象跟踪
  • Vision是计算机视觉的Apple框架。

自然语言处理

  • CoreLinguistics - POS标记(HMM),ngrams,Naive Bayes,IBM对齐模型。
  • GloVe Swift包。矢量字表示。
  • NSLinguisticTagger
  • Parsimmon
  • Twitter文本 - Twitter文本处理库的Objective-C实现。该库包括用于提取用户名,提及标题,主题标签等的方法 - 您可能想要的所有推文特定语言语法。
  • Swift的语言表达,就像人类的正则表达式一样。
  • Word2Vec - Word2Vec深度学习算法的原始C实现。像iPhone一样在iPhone上工作。

语音识别(TTS)和生成(STT)

  • Kaldi-iOS框架 - 使用深度学习的设备上语音识别。
    • 概念证明app
  • MVSpeechSynthesizer
  • OpenEars:适用于iPhone的免费语音识别和语音合成 - OpenEars使您可以快速轻松地将离线语音识别和合成语音/ TTS添加到iPhone应用程序中。它让每个人都可以在应用程序中获得使用高级语音UI概念(如统计语言模型和有限状态语法)的优异成果,但不会比创建NSArray或NSDictionary更省力。
    • 教程(俄语)
  • TLSphinx,教程

文本识别(OCR)

  • ocrad.js - JS OCR
  • 正方体
    • 在iOS上安装和使用Tesseract
    • 正方体-IOS-LIB
    • 正方体-IOS
    • 正方体-OCR-IOS
    • OCR-IOS的实施例

其他AI

  • Axiomatic - 用于逻辑编程的Swift统一框架。
  • 在Swift中构建自己的Lisp
  • Logician - Swift中的逻辑编程
  • Swiftlog - 一种简单的Prolog类语言,完全在Swift中实现。

机器学习Web API

  • IBM Watson - 使用IBM Watson的语言,视觉,语音和数据API在您的应用程序中启用认知计算功能。
    • 介绍(beta)IBM Watson iOS SDK
  • AlchemyAPI - 使用自然语言处理的语义文本分析API。现在是IBM Watson的一部分。
  • Microsoft Project Oxford
  • 谷歌预测引擎
    • Objective-C API
  • 谷歌翻译API
  • Google Cloud Vision API
  • 亚马逊机器学习 - Amazon ML是面向开发人员的基于云的服务。它提供了可视化工具来创建机器学习模型。使用API​​获取应用程序的预测。
    • iOS开发者指南。
    • iOS SDK
  • PredictionIO - 面向开发人员和ML工程师的开源机器学习服务器。基于Apache Spark,HBase和Spray构建。
    • Swift SDK
    • Tapster iOS演示 - 此演示演示了如何使用PredictionIO Swift SDK将iOS应用程序与PredictionIO引擎集成,以使您的移动应用程序更有趣。
    • 使用Swift和PredictionIO的教程。
  • Wit.AI - NLP API
  • Yandex SpeechKit用于俄语的文本到语音和语音到文本。iOS SDK可用。
  • Abbyy OCR SDK
  • Clarifai - 用于图像字幕的深度学习web api。iOS入门项目
  • MetaMind - 用于图像字幕的深度学习web api。
  • Api.AI - 为应用程序,设备和Web构建智能语音界面
  • CloudSight.ai - 用于细粒度对象检测或整个屏幕描述的深度学习Web API,包括自然语言对象标题。Objective-C API客户端可用。

开源ML应用程序

深度学习

  • DeepDreamer - Deep Dream应用程序
  • DeepDreamApp - Deep Dream Cordova应用程序。
  • Texture Networks,Lua实现
  • 前馈式转移,Lua实现
  • TensorFlow实现神经风格
  • 腐蚀检测应用
  • ios_camera_object_detection - 基于TensorFlow和YOLO模型的基于实时移动可视化的对象检测
  • TensorFlow MNIST iOS演示 - iOS上的Deep MNIST和TensorFlow入门
  • 使用RNN和Swift的Drummer App
  • 这是什么
  • enVision - iOS上视觉任务的深度学习模型
  • iOS上的GoogLeNet演示
  • Android中的神经风格
  • mnist-bnns - TensorFlow MNIST演示端口到BNNS
  • BNNS与MPS的基准
  • VGGNet on Metal
  • 一个利用TensorFlow和iOS BNNS进行深度学习的数独求解器。
  • HED CoreML实现是一个演示,其中包含如何在iOS上使用CoreML和Swift进行整体嵌套边缘检测的教程

传统计算机视觉

  • SwiftOCR
  • GrabCutIOS - 使用GrabCut算法的iOS图像分割

NLP

  • Swift中的经典ELIZA聊天机器人
  • InfiniteMonkeys - 由Keras训练的RNN模仿由BrainCore提供动力的着名诗人的作品

其他

  • 快速实施Joel Grus的“数据科学从头开始”
  • 使用Swift在Apple Playground中构建的神经网络

游戏AI

  • 游戏AI编程简介
  • dlib是一个包含许多有用工具的库,包括机器学习。
  • MicroPather是一个路径查找器和A *求解器(astar或a-star),用独立于平台的C ++编写,可以轻松集成到现有代码中。
  • 以下是OGRE3D网站上建议的一些AI库列表。似乎它们大多是用C ++编写的。
  • GameplayKit编程指南

其他相关人员

线性代数

  • Accelerate-in-Swift - Accelerate.framework的 Swift示例代码
  • cuda-swift - Swift绑定到CUDA。不是iOS,但仍然很有趣。
  • Dimensional - Swift矩阵,具有友好的语义和熟悉的界面。
  • Eigen - 用于线性代数,矩阵和向量运算,数值求解器和相关算法的模板头的高级C ++库。[MPL2]
  • 矩阵 - 方便的矩阵类型,具有不同类型的下标,自定义运算符和预定义矩阵。浪涌的一把叉子。
  • NDArray - 用于Swift的Float库,通过Accelerate Framework加速。
  • Swift-MathEagle - 一个简单易用数学的通用数学框架。目前支持函数求解和优化,矩阵和向量代数,复数,大int,大压缩,大理性,图形和一般方便的扩展和功能。
  • SwiftNum - 线性代数,fft,梯度下降,共轭GD,绘图。
  • Swix - Swift实现NumPy和OpenCV包装器。
  • 浪涌从Mattt
  • 热潮 - 通用张量,加速之上的矩阵。浪涌的一把叉子。
  • YCMatrix - 用于Objective-C和Swift的灵活Matrix库(OS X / iOS)

统计,随机数

  • SigmaSwiftStatistics - 用Swift编写的统计计算函数的集合。
  • SORandom - 用于从各种分布生成伪随机变量的函数集合
  • RandKit - 随机数和分布的Swift框架。

数学优化

  • fmincg-c - C中的共轭梯度实现
  • libLBFGS - 有限记忆Broyden-Fletcher-Goldfarb-Shanno(L-BFGS)的C库
  • SwiftOptimizer - QuantLib Swift端口。

特征提取

  • IntuneFeatures框架包含用于从相应MIDI文件的音频文件和功能标签生成功能的代码。
  • matchbox - 用于iOS / OSX的Mel频率 - 倒谱系数和动态时间扭曲。警告:上次iOS 4仍然很热时,库已更新。
  • LibXtract是一个简单,便携,轻量级的音频特征提取功能库。

数据可视化

  • 图表 - MPAndroidChart的Swift端口。
  • IOS的图表
  • 核心情节
  • 令人敬畏的iOS图表
  • JTChartView
  • VTK
    • VTK在行动
  • D3.js iOS绑定

生物信息学(有点)

  • BioJS - 一套用于浏览器中生物信息学的工具。BioJS构建了一个基础设施,指南和工具,以避免重新发明生命科学的轮子。社区构建的模块比任何人都可以重用。
  • BioCocoa - BioCocoa是一个用Objective-C编写的开源OpenStep(GNUstep / Cocoa)生物信息学框架。[死亡项目]。
  • iBio - 适用于iPhone的生物信息学应用程序。

大数据(不是真的)

  • HDF5Kit - 这是HDF5文件格式的Swift包装器。HDF5用于科学社区管理大量数据。目标是使从Swift中读取和写入HDF5文件变得容易,包括游乐场。

IPython + Swift

  • iSwift - 用于IPython笔记本的Swift内核。

iOS ML博客

常规移动ML

  • Matthijs Hollemans撰写的“机器,思考!”博客
    • 神经网络的“hello world” - Swift和BNNS
    • 使用VGGNet的iPhone上的卷积神经网络
  • Pete Warden的博客
    • 如何用TensorFlow量化神经网络

意外移动ML

  • 谷歌研究博客
  • Apple机器学习期刊
  • 入侵代码博客
    • 适用于iOS的机器学习
    • iOS 10和macOS中的卷积神经网络
  • Big Nerd Ranch - 使用TensorFlow和BNNS将机器学习添加到您的Mac或iOS应用程序

其他

  • 移动应用智能
  • 内部独家研究人工智能和机器学习如何在Apple工作
  • 关于为移动设备挤压DNN的介绍
  • 关于深度学习模型压缩和加速的文章列表

GPU计算博客

  • OpenCL for iOS - 只是一个测试。

  • 在iOS上探索GPGPU。

    • 文章
  • 适用于Mac和iOS的GPU加速视频处理。文章。

  • 并发和OpenGL ES - Apple编程指南。

  • 关于iOS GPU使用的OpenCV - 讨论。

金属

  • Simon的Gladman(又名flexmonkey)博客
    • 在Realm Altconf上使用Swift和Metal 进行iOS GPU编程。
    • 口袋里的超级计算机:金属和斯威夫特 - 来自2015年斯威夫特峰会的视频
    • https://github.com/FlexMonkey/MetalReactionDiffusion
    • https://github.com/FlexMonkey/ParticleLab
  • Memkite博客 - 初创公司旨在为iOS创建深度学习库。
    • 用于Apple TVOS 9.0上的通用GPU处理的Swift和Metal示例
    • 用于iOS8的GPU上的Swift和Metal数据并行处理
    • iOS8中使用Swift和Metal在GPU和CPU之间共享内存的示例
  • Metal by Example博客
  • 关于金属的objc-io文章

移动ML书籍

  • Pete Warden 用TensorFlow构建移动应用程序。书页。免费下载

学习机器学习

请注意,在本节中,我不是要尝试收集所有机器学习学习资源的另一个列表,而是仅编写我认为有用的事项列表。

  • 学术洪流。有时很棒的课程或数据集从他们的网站上删除。但这并不意味着他们迷失了。
  • Arxiv Sanity Preserver - 与ML研究进展保持同步的工具。

免费书籍

  • 由J.Ström,K.Åström和T. Akenine-Möller撰写的沉浸式线性代数交互式书籍。
  • “使用Python进行自然语言处理” - 免费在线图书。
  • 黑客的概率编程和贝叶斯方法 - 从计算/理解 - 数学 - 第二的观点出发介绍贝叶斯方法和概率规划。
  • “深度学习” - Ian Goodfellow和Yoshua Bengio以及Aaron Courville的书

免费课程

  • Andrew Ng的原创机器学习课程。
  • Youtube上的机器学习播放列表。
  • 免费在线互动书籍“神经网络和深度学习”。
  • 异构并行编程课程。
  • 2015年秋季,弗吉尼亚理工大学电气和计算机工程深入学习感知:ECE 6504
  • 第5415章 - UCF的计算机视觉
  • CS224d:斯坦福大学自然语言处理的深度学习
  • 机器学习:2014-2015牛津课程教材
  • 斯坦福CS类CS231n:用于视觉识别的卷积神经网络。
  • 自然语言处理的深度学习(无魔法)
  • 2015年蒙特利尔深度学习暑期学校的视频。
  • 深度学习暑期学校,蒙特利尔2016

其他名单

  • 非常棒的机器学习
  • 机器学习课程
  • 令人敬畏的数据科学
  • 令人敬畏的计算机视觉
  • 言语和语言处理
  • 聊天机器人的兴起: Pavlo Bashmakov的有用链接,文章,图书馆和平台。
  • 用于网络安全的令人敬畏的机器学习

你可能感兴趣的:(Machine Learning for iOS)