原文: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包与以下机器学习包兼容(部分):
某些型号的第三方转换器也适用于CoreML格式:
核心ML格式的预训练神经网络有许多精选列表:[1],[2],[3]。
Core ML目前不支持培训模型,但您仍可以通过在运行时从服务器下载新模型来替换模型。这是一个如何做到这一点的演示。它使用MNIST GAN的发生器部分作为核心ML模型。
通用机器学习库
图书馆 | 算法 | 语言 | 执照 | 码 | 依赖管理器 |
---|---|---|---|---|---|
AIToolbox |
图/树
深度优先搜索
广度优先搜索
爬山搜索
光束搜索
最优路径搜索
Alpha-Beta(游戏树)
遗传算法
约束传播
线性回归
非线性回归
参数-Δ
梯度下降
高斯 - 牛顿
Logistic回归
神经网络
多层,几个非线性模型
在线和批量培训
前馈或简单的复发层可以在一个网络中混合
实施LSTM网络层 - 需要更多测试
梯度检查例程
支持向量机
K均值
主成分分析
马尔可夫决策过程
蒙特卡洛(每次访问,第一次访问)
SARSA
单变量和多变量高斯
高斯混合物
模型验证
深度网络
卷积层
汇集层
完全连接的NN层
| 迅速 | Apache 2.0 |
| |
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上 | 可可豆荚 |
| [
鲨鱼](http://image.diku.dk/shark/sphinx_pages/build/html/index.html) |
监督:
线性判别分析(LDA)
费雪LDA
线性回归
支持向量机
FF NN
RNN
径向基函数网络
正规化网络
回归的高斯过程
迭代最近邻分类和回归
决策树
随机森林
无监督:
PCA
受限制的玻尔兹曼机器
分层聚类
用于有效的基于距离的聚类的数据结构
优化:
进化算法
单目标优化(例如,CMA-ES)
多目标优化
基本线性代数和优化算法
| C ++ | GNU LGPL | GitHub上 | 可可豆荚 |
| [
YCML](https://github.com/yconst/YCML) |
梯度下降反向传播
弹性反向传播(RProp)
极限学习机(ELM)
使用正交最小二乘(RBF网)进行前向选择,也使用PRESS统计
二元受限玻尔兹曼机器(CD和PCD)
优化算法:
梯度下降(单目标,无约束)
RProp梯度下降(单目标,无约束)
NSGA-II(多目标,受限制)
| Objective-C的 | GNU GPL 3.0 | GitHub上 | |
| [
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 - 一个跨平台的框架,以表达,速度和模块化为考虑。
-
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中的无依赖性深度学习框架。
- Torch是一种科学计算框架,广泛支持机器学习算法。
深度学习:在设备上运行预先训练的模型
这些库不支持培训,因此您需要在某些ML框架中预先训练模型。
- Bender - 构建快速NN的框架。支持TensorFlow模型。它在引擎盖下使用金属。
- 核心ML
- DeepLearningKit - 来自Memkite的开源深度学习框架,适用于Apple的tvOS,iOS和OS X.
- Espresso - 在iOS上运行的最小高性能并行神经网络框架。
- Forge - Metal的神经网络工具包。
- Keras.js -运行Keras模型在Web视图。
- KSJNeuralNetwork - 在BNNS和MPS之上构建的神经网络推理库
- MXNet - MXNet是一个深度学习框架,旨在提高效率和灵活性。
- 用于移动设备的量化CNN压缩卷积神经网络
- WebDNN - 如果需要,您可以在Web视图中运行深度学习模型。三种模式:WebGPU加速,WebAssembly加速和纯JS(在CPU上)。没有培训,仅推理。
深度学习:低级例程库
- BNNS - Apple Basic神经网络子程序(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 /缓存/核心计算机视觉库,现代计算机视觉库
- OpenCV - 开源计算机视觉库。[BSD]
- OpenFace - 一种最先进的开源工具,用于面部标志检测,头部姿势估计,面部动作单元识别和眼睛注视估计。
- 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框架 - 使用深度学习的设备上语音识别。
- MVSpeechSynthesizer
- OpenEars:适用于iPhone的免费语音识别和语音合成 - OpenEars使您可以快速轻松地将离线语音识别和合成语音/ TTS添加到iPhone应用程序中。它让每个人都可以在应用程序中获得使用高级语音UI概念(如统计语言模型和有限状态语法)的优异成果,但不会比创建NSArray或NSDictionary更省力。
- TLSphinx,教程
文本识别(OCR)
- ocrad.js - JS OCR
- 正方体
其他AI
- Axiomatic - 用于逻辑编程的Swift统一框架。
- 在Swift中构建自己的Lisp
- Logician - Swift中的逻辑编程
- Swiftlog - 一种简单的Prolog类语言,完全在Swift中实现。
机器学习Web API
- IBM Watson - 使用IBM Watson的语言,视觉,语音和数据API在您的应用程序中启用认知计算功能。
- AlchemyAPI - 使用自然语言处理的语义文本分析API。现在是IBM Watson的一部分。
- Microsoft Project Oxford
- 谷歌预测引擎
- 谷歌翻译API
- Google Cloud Vision API
- 亚马逊机器学习 - Amazon ML是面向开发人员的基于云的服务。它提供了可视化工具来创建机器学习模型。使用API获取应用程序的预测。
-
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提供动力的着名诗人的作品
其他
游戏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
- 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的博客
意外移动ML
- 谷歌研究博客
- Apple机器学习期刊
- 入侵代码博客
- Big Nerd Ranch - 使用TensorFlow和BNNS将机器学习添加到您的Mac或iOS应用程序
其他
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创建深度学习库。
- Metal by Example博客
- 关于金属的objc-io文章
移动ML书籍
学习机器学习
请注意,在本节中,我不是要尝试收集所有机器学习学习资源的另一个列表,而是仅编写我认为有用的事项列表。
- 学术洪流。有时很棒的课程或数据集从他们的网站上删除。但这并不意味着他们迷失了。
- 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的有用链接,文章,图书馆和平台。
- 用于网络安全的令人敬畏的机器学习