今天在中国七城联动,全球134场的AI BootCamp胜利落幕,广州由卢建晖老师组织,我参与分享了一个主题《ML.NET 机器学习指南和Azure Kinect .NET SDK概要》,活动虽然只有短短的2天时间的宣传,报名70人,到场40多人。

下面我和你分享一下我对ML.NET 机器学习的一些内容。

作为一个.NET开发者的你,可能很难立即进入机器学习。主要原因之一就是我们无法启动Visual Studio 使用我们所精通的.NET技术尝试这个新事物,这个领域被认为更适合该工作的编程语言,例如Python和R所占据,这个更准确的来说是机器学习的前期数据分析阶段。一年多以前,微软为我们的.NET技术带来一个新功能ML.NET, 现在已经是1.4,最新发布的.NET Core 3.1之上七龙珠已经聚齐。

首先我们为什么我们应该使用ML.NET 技术而不是Python和TensorFlow? 通常来说 除技术栈外,没有其他特殊原因。如果您将ASP.NET应用程序与机器学习模块一起使用,无疑是将ML.NET集成起来要容易得多。此外,现在您可以将使用TensorFlow构建的模块加载到ML.NET中。不知道各位有没有思考一下为什么 Microsoft 现在要在.NET 平台上引入机器学习以及我们为什么要关心机器学习

首先是机器学习这项技术正在跨越鸿沟。事实上这个鸿沟是非常难以跨越的,之所以那么多的高科技产品只是在小众范围内流传,而并没有被主流市场接受,原因就是这些公司没有能够跨越这个鸿沟。成功跨越鸿沟的典型是小米手机,而被鸿沟挡住的典型当属锤子手机,大家可以想想这两家的区别,小米早期定义「为发烧而生」,而锤子手机则是「情怀」,都是针对某个特定群体,但是你看现在小米已经不再说发烧这类的词了,因为它早已经进入主流市场。

最早的机器学习算法可以追溯到20世纪初,到今天为止,已经过去了100多年。从1980年机器学习称为一个独立的方向开始算起,到现在也已经过去了近40年。在这100多年中,经过一代又一代人的努力,最近这几年终于跨越了鸿沟。 跨越鸿沟意味着机器学习正在从仅有少数人掌握的时代过渡到民主化、平民化。微软的CEO 萨提亚·纳德拉在他的书《刷新:重新发现商业与未来》 之中就有提出“民主化”的人工智能,ML.NET正是要完成这项使命的载体之一。如何实现人工智能全民化,让它惠及每个人?如何让每个人打造自己的人工智能和AI?在医疗、教育和零售机构当中,如何打造一个相适应的AI是至关重要的。当我们谈AI的时候,不能空谈任何一个AI公司,而是要“民主化”AI,让AI真正落地应用到个人。为了达到这样的一个目的,我们有一系列的解决方案。Azure 云上在AI领域的GPU和FPGA等等一些基础架构方面的合作都已准备就绪了,可以提供更多的可能性,确保业务的运行和效率。除此之外,我们的架构提供对TensorFlow的支持,这样一来我们就有了一个非常开放的环境来支持所有的开发框架。

您应该开始探索这个机器学习领域的另一个原因是,作为一个人类,我们会产生大量数据。单独地,我们无法处理那么多的数据,甚至无法处理全部数据。从技术上讲,我们面临着无法从数据中提取信息的问题。但是,机器学习模型却可以帮助我们处理海量的数据。

机器学习是计算机科学的一个分支,它使用统计技术使计算机能够学习如何解决某些问题而无需对其进行显式编程。如上所述,所有重要的机器学习概念都可以追溯到1950年代。但是,主要思想是开发一个数学模型,该模型将能够做出一些预测。通常会事先对一些数据进行训练。简而言之,数学模型使用对旧数据的见解对新数据进行预测。这整个过程称为预测建模。如果从数学上讲,我们正在尝试近似一个映射函数  –  f  从输入变量  X  到输出变量  y。 我们正在尝试使用这种方法解决两大类问题:回归和分类。回归问题需要预测数量。这意味着我们的输出是连续的实值,通常是整数或浮点值。例如,我们要根据过去几个月的数据预测公司股票的价格。分类问题有点不同。他们正在尝试将输入划分为某些类别。这意味着此任务的输出是离散的。

ML.NET 是什么 给我们介绍了 ML.NET在几乎每种情况下都遵循相同的基本步骤。它结合了数据加载,转换和模型训练,使您轻松创建机器学习模型。

机器学习使用已知数据(例如训练数据)来找到模式,以便对新的未知数据进行预测。机器学习的输入称为 特征,这是用于进行预测的属性。机器学习的输出称为Label,它是实际的预测。 ML.NET中的数据表示为IDataView,这是一种描述表格数据(例如行和列)的灵活,高效的方法。IDataView对象可以包含数字,文本,布尔值,向量等。您可以将数据从文件或实时流源加载到IDataView。具体参考 从文件和其他源加载数据

在大多数情况下,您可用的数据不适合直接用于训练机器学习模型。原始数据需要使用数据转换进行预处理。Transformers 获取数据,对其进行一些处理,然后返回经过转换的新数据。ML.NET内置了一组数据转换,用于替换缺失值,数据转换,使文本特征化等等。参考准备建模的数据

Estimator从数据中学习以创建Transformer 。现在,将输入要素转换为输出预测的模型是Transformer


ML.NET 基础知识

概述
VIDEO
概念

10 分钟入门

快速入门

教程

操作指南

参考

AI Boot Camp 分享之 ML.NET 机器学习指南的更多相关文章

  1. 解决 Boot Camp 虚拟机升级到 Windows 10 后 Parallels Desktop 不能识别的问题

    最近几天 Win10 正式版开始推送了,对于喜欢折腾的博主,在第一时间就把 Mac 中 Boot Camp 从 Win7 升级到 Win10,初步体验还不错,等博主用过一段时间之后,再来给大家分享使用 ...

  2. 如何在 Mac 上通过 Boot Camp 安装 Windows?

    如何在 Mac 上通过 Boot Camp 安装 Windows? The following contents are chosen from the apple website, thanks f ...

  3. spring boot项目分享

    Spring boot项目分享 以下项目是我自己做的一些练习项目,有兴趣的小伙伴可以下载下来看下 1.员工管理系统 下载地址:我的github 后续会继续补充

  4. mac系统之前做过Windows8系统,可能移除时没有通过boot camp助理移除,所以想要再安装windows系统时,点击boot camp助理的继续,弹出启动磁盘不能被分区或恢复单分区。

    因为把bootcamp分区抹掉,卸载,装载,点减号,合并成单分区,一直是操作失败.为了通过boot camp安装上Windows系统,索性重新安装mac ox系统,重新分区.重新开机,按住comman ...

  5. 美国末日AI System设计分享

    引言 好久没有写博客了,这半年在游戏公司工作,过得比较充实,每天不是add feature就是debug,所以忽视了写博客.今天发一篇关于AI博客. 主要是最近看了一些关于"The Last ...

  6. C# .NET ML.NET 机器学习 图像分类

    一. 准备工作 IDE是 VS2019.先下载好"resnet_v2_50_299.meta"这个文件,放入"C:\Users\jk\AppData\Local\Temp ...

  7. ahjesus 让Boot Camp支持创建win7 u盘安装盘

    通过修改BootCamp助理成功创建USB的windows7的安装盘. 以下将方法共享出来. 准备工作: 找到自己电脑的Boot Rom 版本.(点左上角那个小苹果标志 然后点 [关于本机] 然后点 ...

  8. boot camp要求独立的fat分区

    先在windows把u盘用diskpart clean掉分区表 然后在苹果里面,给u盘重新分区,分区表不要选择GUID,选择主引导记录,格式选择fat,OK

  9. 干货分享:反思Essay写作指南

    在众多Essay写作类型中,有一种较为难写的一种类型——反思写作(Reflective Writing),提前熟悉这类写作风格的要求,并且养成反思性写作的习惯,非常有必要!本文小编就给大家说说什么是反 ...

随机推荐

  1. ATM功能实现项目

    一.模拟实现一个ATM + 购物商城程序 1.额度 15000或自定义2.实现购物商城,买东西加入 购物车,调用信用卡接口结账3.可以提现,手续费5%4.支持多账户登录5.支持账户间转账6.记录每月日 ...

  2. BASH 编程之变量高级篇

    内部变量 • $$与$BASHPID都代表着执行程序的进程 ID,我们可以通过 echo 打印,并用 ps 指令检查得到相同的进程 ID [root@oracle ~]# echo $BASHPID ...

  3. 6.2.2 辅助类GenericOptionsParser,Tool和ToolRunner深入解析

    辅助类GenericOptionsParser,Tool和ToolRunner (1)为什么要用ToolRunner 将MapReduce Job配置参数写到java代码里,一旦变更意味着修改java ...

  4. PHP经典面试题:如何保证缓存与数据库的双写一致性?

    只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题? 面试题剖析 一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说 ...

  5. [Error]Archive for required library: 'C:/Users/fk/.m2/repository/com/sun/xml/bind/jaxb-core/2.2.7/jaxb-core-2.2.7.jar'

    Eclipse报错: Description Resource Path Location Type Archive for required library: 'C:/Users/fk/.m2/re ...

  6. Ubuntu 16.04.4 LTS设置root用户登陆图形界面

    普通用户登陆真是太憋屈,这也不能那也不能,root用户登录就可以肆无忌惮了 本方法采用nano编辑器,ubantu版本Ubuntu 16.04.4 LTS,其他版本应该也一样,下面进入正题 1.终端登 ...

  7. PHP 发送get请求

    PHP 发送get请求 file_get_contents 方法: $s = file_get_contents("http://apis.map.qq.com/ws/distance/v1 ...

  8. nyoj 23-取石子(一)(博弈)

    23-取石子(一) 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:20 submit:33 题目描述: 一天,TT在寝室闲着无聊,和同寝的人玩起了取 ...

  9. CSS:CSS弹性盒子布局 Flexible Box

    一.简介 flexbox:全称Flexible Box, 弹性盒子布局.可以简单实现各种伸缩性的设计,它是由伸缩容器和伸缩项目组成.任何一个元素都可以指定为flexbox布局.这种新的布局方案在200 ...

  10. 消除router-link 的下划线问题

    <div class="small-size"> <router-link to="/About"> <img src=" ...