.NET开发者也开发自己的机器学习模型:ML.NET的能与不能

2018 年 8 月 13 日 乌镇智库

选自Medium

文|Jesus Rodriguez

乌镇智库编译

Python的简洁性、易读性和可扩展性,使其慢慢建立了框架、丰富的工具组件以及研究的健康大生态。Python作为解释性语言,虽然跑的比谁都慢,但减少了开发者的工作量,以及对数据进行处理、分析以及预测的能力的显著提升(包括云计算提供的强大分布式运算能力,摩尔定律下每一个计算单元成本的持续降低,加之以神经网络为代表的深度学习算法的应用),使我们得到了超乎想象的人工智能,催生了庞大的用户群体和活跃社区,一瞬间似乎吃机器学习这口饭的码农们生死存亡都寄托在Python上。

但是,我们也越来越多的发现,新的框架和工具试图将机器学习功能引入现有的大型开发人员社区当中,比如.NET.Microsoft,慢慢引入机器学习基本组件和库,使.NET开发人员更容易上手机器学习。

此前微软宣布推出新版ML.NET,尝试为.NET开发人员构建机器学习应用提供更为便捷的体验,ML.NET最早的版本由Microsoft Research开发,提供C#和F#编程模型,能够创建包括训练和执行的机器学习模型,ML.NET的核心架构可以分为四个基本组成:

...

- Data Transforms:是机器学习工作流中启用数据集转换的组件,例如组合算法、分类器、特征工程、行键过滤器等等;

-Learners:是ML.NET中包含的基本机器学习模型,算法组合目前相对基础,但它仍旧涵盖一些基本的模型,如线性回归(linear regression)和K-均值聚类(K-means);

-Misc:这部分是构建机器学习(模型优化或正则化)所必须的实用功能,例如评估和校准等;

-Extensions: ML.NET充分利用深度学习库,例如TensorFlow,Accord.NET和Microsoft自己的Cognitive Toolkit

...

-如何使用ML.NET-

使用ML.NET的第一步就是使用以下代码安装NuGet包:

接着就可以创建一个LearningPipeline 实例了,它用于封装机器学习模型数据加载、特征化:

使用工作流,开始组装机器学习应用,很容易完成从文本文件加载数据:

数据和特征决定机器学习的上限,在大多数机器学习中,需要对数据进行预处理和清理,于是我们在工作流中添加另一个元素:

此时,我们可以选择我们将要使用的算法并适当配置超参数(hyperparameters):

调用Train训练模型,使用Evaluate routine进行评估:

最后执行模型并评估结果:

如你所见,ML.NET为.NET开发人员提供了一个进入机器学习世界非常基础的切入点,但是与许多其他机器学习桥接模式一样,我们应该为使用ML.NET设置正确的约束。

-ML.NET的能见局限-

ML.NET是.NET开发人员开始开发基础机器学习应用的绝佳工具,但是这个框架同时具有一些较为明显的局限,我们在实际应用中遇到的许多机器学习场景都会变得非常不适用,在当前版本中,开发人员在使用ML.NET之前应该注意一些问题:

-对于初学者来说,算法库非常有限,这就减少了我们能在特定工作流上一些架构的可能性;

-Pipeline模型的易用让开发人员上手简单,但也是它的限制,因为大多数机器学习工作流几乎不遵循ML.NET的4步顺序;

-目前没有优化或正则化工具支持ML.NET,这也限制了它在实际应用中的可能;

-没有明确的编程模型可以扩展到更复杂的堆栈,例如Cognitive Toolkit。

总的来说,ML.NET是为.NET开发人员和机器学习社区的桥接而努力,如果.NET社区接受ML.NET,那么新的框架就能成为机器学习生态中一个不错的选择,但目前要说ML.NET已成为有力的竞争者,还为时尚早了。


乌镇智库 资讯推荐

关于区块链,有哪些不可忽视的安全问题?

IBM披露深度图像分类模型健壮性研究新进展:别一味追求高准确率!

深度学习弯道超车,领先行业不止一点点


推荐阅读

比人工智能威胁更可怕的是,那些曾被你抛弃的互联网软件

尼克谈人工智能的历史、现实与未来


登录查看更多
0

相关内容

.NET 框架(.NET Framework) 是由微软开发,一个致力于敏捷软件开发、快速应用开发、平台无关性和网络透明化的软件开发平台。
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
330+阅读 · 2020年3月17日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
126+阅读 · 2020年3月15日
谷歌机器学习速成课程中文版pdf
专知会员服务
142+阅读 · 2019年12月4日
21个必须知道的机器学习开源工具!
AI100
13+阅读 · 2019年9月13日
官方解读:TensorFlow 2.0 新的功能特性
云头条
3+阅读 · 2019年1月23日
TF Boys必看!一文搞懂TensorFlow 2.0新架构!
引力空间站
18+阅读 · 2019年1月16日
.NET Core 环境下构建强大且易用的规则引擎
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
基于TensorFlow的深度学习实战
七月在线实验室
9+阅读 · 2018年4月25日
3月份Github上最热门的数据科学和机器学习项目
大数据技术
7+阅读 · 2018年4月23日
Arxiv
3+阅读 · 2018年5月28日
Arxiv
3+阅读 · 2018年3月13日
Arxiv
3+阅读 · 2018年2月24日
Arxiv
5+阅读 · 2015年9月14日
VIP会员
相关资讯
21个必须知道的机器学习开源工具!
AI100
13+阅读 · 2019年9月13日
官方解读:TensorFlow 2.0 新的功能特性
云头条
3+阅读 · 2019年1月23日
TF Boys必看!一文搞懂TensorFlow 2.0新架构!
引力空间站
18+阅读 · 2019年1月16日
.NET Core 环境下构建强大且易用的规则引擎
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
基于TensorFlow的深度学习实战
七月在线实验室
9+阅读 · 2018年4月25日
3月份Github上最热门的数据科学和机器学习项目
大数据技术
7+阅读 · 2018年4月23日
Top
微信扫码咨询专知VIP会员