AI Boot Camp 分享之 ML.NET 机器学习指南
今天在中国七城联动,全球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 分钟入门
快速入门
教程
- 分析网站评论情绪(模型生成器)
- 预测价格(模型生成器)
- 对卫生违规行为分类(模型生成器和 SQL Server)
- 对支持问题进行分类 (API)
- 使用图像分类 API (API) 分类图像
- 使用模型组合 (API) 分类图像
- 检测图像中的对象 (API)
- 检测产品销售中的异常 (API)
- 预测自行车租赁需求(API 和 SQL Server)
- 生成电影推荐系统 (API)
操作指南
参考
AI Boot Camp 分享之 ML.NET 机器学习指南的更多相关文章
- 解决 Boot Camp 虚拟机升级到 Windows 10 后 Parallels Desktop 不能识别的问题
最近几天 Win10 正式版开始推送了,对于喜欢折腾的博主,在第一时间就把 Mac 中 Boot Camp 从 Win7 升级到 Win10,初步体验还不错,等博主用过一段时间之后,再来给大家分享使用 ...
- 如何在 Mac 上通过 Boot Camp 安装 Windows?
如何在 Mac 上通过 Boot Camp 安装 Windows? The following contents are chosen from the apple website, thanks f ...
- spring boot项目分享
Spring boot项目分享 以下项目是我自己做的一些练习项目,有兴趣的小伙伴可以下载下来看下 1.员工管理系统 下载地址:我的github 后续会继续补充
- mac系统之前做过Windows8系统,可能移除时没有通过boot camp助理移除,所以想要再安装windows系统时,点击boot camp助理的继续,弹出启动磁盘不能被分区或恢复单分区。
因为把bootcamp分区抹掉,卸载,装载,点减号,合并成单分区,一直是操作失败.为了通过boot camp安装上Windows系统,索性重新安装mac ox系统,重新分区.重新开机,按住comman ...
- 美国末日AI System设计分享
引言 好久没有写博客了,这半年在游戏公司工作,过得比较充实,每天不是add feature就是debug,所以忽视了写博客.今天发一篇关于AI博客. 主要是最近看了一些关于"The Last ...
- C# .NET ML.NET 机器学习 图像分类
一. 准备工作 IDE是 VS2019.先下载好"resnet_v2_50_299.meta"这个文件,放入"C:\Users\jk\AppData\Local\Temp ...
- ahjesus 让Boot Camp支持创建win7 u盘安装盘
通过修改BootCamp助理成功创建USB的windows7的安装盘. 以下将方法共享出来. 准备工作: 找到自己电脑的Boot Rom 版本.(点左上角那个小苹果标志 然后点 [关于本机] 然后点 ...
- boot camp要求独立的fat分区
先在windows把u盘用diskpart clean掉分区表 然后在苹果里面,给u盘重新分区,分区表不要选择GUID,选择主引导记录,格式选择fat,OK
- 干货分享:反思Essay写作指南
在众多Essay写作类型中,有一种较为难写的一种类型——反思写作(Reflective Writing),提前熟悉这类写作风格的要求,并且养成反思性写作的习惯,非常有必要!本文小编就给大家说说什么是反 ...
随机推荐
- .NET Core前后端分离快速开发框架(Core.3.0+AntdVue)
.NET Core前后端分离快速开发框架(Core.3.0+AntdVue) 目录 引言 简介 环境搭建 开发环境要求 基础数据库构建 数据库设计规范 运行 使用教程 全局配置 快速开发 管理员登录 ...
- Comet OJ - Contest #10 C题 鱼跃龙门
###题目链接### 题目大意: 给你一个 x ,让你求出最小的正整数 n 使得 n * (n + 1) / 2 % x == 0 ,即 n * (n + 1) % 2x == 0 . 分析: 1 ...
- Docker从入门到实践(1)
一.Docker简介 1.1.什么是 Docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多 ...
- W5500
W5500 芯片是一款韩国全硬件TCP/IP协议栈以太网接口芯片, 最近发现我们国内也有和W5500 芯片一样芯片 介绍给大家 如下图 :
- vue项目引入自定义.css的样式文件
ES6的引入方式: .vue文件中 css文件引入 <template></template> <style scoped> @import "../as ...
- 借汇编之力窥探String背后的数据结构奥秘
熟悉C++.java.VB等编程语言的朋友都知道String(字符串),它是编程语言中表示文本的数据类型,字符串由若干字符组成的,是所有编程语⾔中⾮常重要的成员.可能很多朋友平时只是使用它,没有仔细研 ...
- 前端API层架构,也许你做得还不够
上午好,今天为大家分享下个人对于前端API层架构的一点经验和看法.架构设计是一条永远走不完的路,没有最好,只有更好.这个道理适用于软件设计的各个场景,前端API层的设计也不例外,如果您觉得在调用接口时 ...
- Gitlab用户信息批量导出
前言 因运维体系中涉及到用户权限管理及统计,需将Gitlab用户数据提取出来并录入到公司内部自建的权限统计平台. 本文将对Gitlab的用户信息数据批量导出进行操作说明! 思路 A)要对数据进行批量的 ...
- 实战webpack系列01
01. 采坑webpack 一.webpack初章 // 一个常见的`webpack`配置文件 const webpack = require('webpack'); const HtmlWebpac ...
- 批量更新Linux文件后缀名
#!/bin/bash#Create_Time 2019-08-06#use: small_wei #查找并,批量修改文件后缀 #后缀为 .txt 修改为 .log find /opt -name & ...