基于 NumPy 的 30 多个机器学习算法开源代码

NumPy 手写所有主流 ML 模型,普林斯顿博士后 David Bourgin 最近开源了一个非常剽悍的项目。超过 3 万行代码、30 多个模型,这也许能打造「最强」的机器学习基石。NumPy 作为 Python 生态中最受欢迎的科学计算包,很多读者已经非常熟悉它了。它为 Python 提供高效率的多维数组计算,并提供了一系列高等数学函数,我们可以快速搭建模型的整个计算流程。

尽管目前使用 写模型已经不是主流,但这种方式依然不失为是理解底层架构和深度学习原理的好方法。最近,来自普林斯顿的一位博士后将 NumPy 实现的所有机器学习模型全部开源,并提供了相应的论文和一些实现的测试效果。

GitHub地址项目 GitHub 地址

微软推出 Python 零基础教程

如果你想了解一门既实用又简单的语言,作为你程序人生的第一步,那么,Python 无疑是最适合你的。数据科学家和人工智能从业者们尤其喜欢 Python,因为它有丰富的、易于理解的语法和广泛的开源软件。然而,目前大部分的所谓入门教程,实际上对于真正零基础的人来说还是具有很高的门槛,同时,几百页的书和动不动上百个小时的学习视频对有的人来说,无疑是劝退。

微软意识到了这一点,也充分理解大多数人对于学习的耐心,于是就开发了一门 Python 的入门课程《Python for Beginners》(国内镜像),基于原生 VS Code,每节课只有 5-10 分钟,可以被认为是真正的入门及课程了。

近期,跨象乘云™ 也开始针对不具备计算机编程以及统计学经验的学生,进行各种机器学习算法实验的《智能数据挖掘》实战系列课程,旨在让更多的人参与的机器学习与人工智能的生态圈中。

《模式识别与机器学习 – PRML》中文版

日前,微软剑桥研究院公布了一个好消息,Christopher Bishop 所著的,最经典的机器学习教科书之一:《模式识别与机器学习》(Pattern Recognition and Machine Learning),公开了免费的 PDF 版本。这本经典的教科书全面介绍了模式识别和机器学习领域。它面向高年级本科生或一年级博士生,以及研究人员和从业人员。这是第一本机器学习教科书,全面包含该领域近期发展,包括概率图形模型和确定性推理方法,并强调现代贝叶斯。它适用于机器学习,统计学,计算机科学,信号处理,计算机视觉,数据挖掘和生物信息学等课程。该书出版于 2006 年,共有 738 页,全彩印刷,包括 431 个分级练习,并配套 MatLabPython 源代码。由马春鹏完成了《模式识别与机器学习 – PRML中文版》翻译。大纲包括:

  • 第一章 介绍
  • 第二章 概率分布
  • 第三章 线性回归模型
  • 第四章 线性分类模型
  • 第五章 神经网络
  • 第六章 内核方法
  • 第七章 稀疏内核机器
  • 第八章 图形模型
  • 第九章 混合模型和EM
  • 第十章 近似推断
  • 第十一章 采样方法
  • 第十二章 连续潜在变量
  • 第十三章 顺序数据
  • 第十四章 组合模型

NumPy 中文官方教程

此前,跨象乘云 发布了《NumPy 教程:基础知识》与《Python 知识卡片:NumPy》两份教程。近日,NumPy 官方正式推出了 NumPy 中文版网站,涵盖 NumPy 的一切。在 Github 上一度蝉联最流行的机器学习和数据科学包 NumPy,已经有了非常之系统的中文文档。现在,如果有什么和 NumPy 的问题,只需要浏览这份官方中文文档就足够了。它足够的系统、全面且亲民。NumPy 是使用 Python 进行科学计算的基础软件包,是 Python 生态系统中数据分析、机器学习、科学计算的主力军,极大简化了向量与矩阵的操作处理。除了计算外,它还包括了:

  • 功能强大的 N 维数组对象。
  • 精密广播功能函数。
  • 集成 C/C+和 Fortran 代码的工具。
  • 强大的线性代数、傅立叶变换和随机数功能

此次中文文档还强调了它两大特性:Ndarray 以及切片和索引,这两部分所涉及的功能在日常操作中是十分常见的。

  • Ndarray:一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。ndarray 对象是用于存放同类型元素的多维数组。ndarray 中的每个元素在内存中都有相同存储大小的区域。
  • 切片和索引:ndarray 对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样。ndarray 数组可以基于 0 – n 的下标进行索引,切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组。

这个开源的官方中文版教程可以说是非常全面了。它从最基本的理解 NumPy 开始,教程层层推进,直到让用户掌握进阶的使用方法。

从内容来看,中文版不仅仅是官方英文版本的翻译,还额外增加了「文章」这一栏目。该栏目提供了对 NumPy 背后的矩阵运算原理的详细解释,使得使用者「知其然,也知其所以然」。这是英文版教程中没有的。

以下为这一部分的目录,从这里可以看到,这部分内容主要介绍 NumPy 的基本理论,以及涉及到其应用的理论部分,如数据分析、神经网络实现,以及在其他代码库中的接口等。

基础篇

  • 理解 NumPy
  • NumPy 简单入门教程
  • Python NumPy 教程
  • 创建 NumPy 数组的不同方式
  • NumPy 中的矩阵和向量

进阶篇

  • NumPy 数据分析练习
  • NumPy 神经网络
  • 使用 NumPy 进行数组编程
  • NumPy 实现 K 均值聚类算法
  • NumPy 实现 DNC、RNN 和 LSTM 神经网络算法

深度学习相关

  • OpenCV 中的图像的基本操作
  • MinPy:MXNet 后端的 NumPy 接口

首个量子机器学习模型框架发布:TensorFlow Quantum

Google 宣布与滑铁卢大学、大众汽车公司联合推出 TensorFlow Quantum(以下简称 TFQ),这是一个可快速搭建量子 ML 模型的开源库。TFQ 将提供把量子计算和机器学习研究相融合所必需的工具,以控制、建模自然或人工的量子系统,比如 50 到 100 个量子比特的嘈杂中型量子(NISQ)处理器。3 月 6 日,研究团队在预印本平台 arXiv 上提交了论文,对这一基于 Python 语言的新框架进行了详细解释,论文作者共有 20 多位,来自 Google 研究院、滑铁卢大学量子计算研究所、NASA 的 Quantum AI 实验室、大众汽车和神秘的 Google X 部门。

一直以来,经典的 ML 模型对科研攻关工作多有助力,比如癌症检测、预测地震和余震、预测极端天气和检测系外行星等。而新的量子 ML 模型的诞生,将有助于医学、材料、传感、通信领域取得更多突破。目前,Google 已将 TFQ 及各种经典深度学习算法用于实现量子神经网络,包括各种量子过程。Google 在论文中提供了这些量子应用的概览,每个示例都可以通过 Colab 在浏览器中运行,感兴趣的读者可查阅原论文。

TFQ 的关键功能就是能够同时训练以及执行多个量子电路。能够在计算机集群间并行化计算,能够多核计算机上模拟体量相对较大的量子电路,从而实现目标。同时,团队还发布了 Qsim,一种高性能开源的量子电路模拟器,该模拟器特别针对多核 Intel 处理器进行优化。

GitHub地址项目 GitHub 地址

各种机器学习算法最佳应用场景 – 2

此前,跨象乘云™ 曾介绍了基于 scikit-learn 的机器学习算法工程导图,并介绍了在选取合适的机器学习算法前,都需要完成的必要数据科学流程。再强调一遍:掌握机器学习算法的价值,不单纯研究算法背后的数学原理,而是熟练理解各种机器学习算法应用的业务场景,搞清楚机器学习算法究竟能解决什么实际的业务问题。毕竟大多数企业希望聘请的是能提升业务的工程师,而不是科研数学家。因此,我们今天进一步介绍几种常用的机器学习应用场景:

线性回归

这可能是机器学习中最简单的算法。例如,当你想要计算一些连续值,而不是将输出分类时,可以使用回归算法。因此,当你需要预测一个正在运行的过程未来的值时,你可以使用回归算法。然而,当特征冗余,即如果存在多重共线性(multicollinearity)时,线性回归就不太稳定。在下列情况下可以考虑使用线性回归:

  • 从一个地方移动到另一个地方所需的时间
  • 预测下个月某种产品的销售情况
  • 血液中的酒精含量对协调能力的影响
  • 预测每个月礼品卡的销售情况,并改善年收入的估算

Logistic 回归

Logistic 回归执行二进制分类,因此输出二值标签。它将特征的线性组合作为输入,并且对其应用非线性函数(sigmoid),因此它是一个非常小的神经网络的实例。logistic 回归提供了许多方法对你的模型进行正则化处理,因此正如在朴素贝叶斯算法中那样,你不必担心你的特征是否相关。该模型还有一个很好的概率化的解释。不像在决策树或者支持向量机中那样,你可以很容易地更新你的模型以获取新的数据。如果你想要使用一个概率化的框架,或者你希望在未来能够快速地将更多的训练数据融合到你的模型中,你可以使用 logistic 回归算法。logistic 回归还可以帮助你理解预测结果背后起作用的因素,它不完全是一个黑盒方法。在下列情况下可以考虑使用 logistic 回归算法:

  • 预测客户流失
  • 信用评分和欺诈检测
  • 评价市场营销活动的效果

决策树

决策树很少被单独使用,但是不同的决策树可以组合成非常高效的算法,例如随机森林或梯度提升树算法。决策树很容易处理特征交互,并且决策树是一种非参数模型,所以你不必担心异常值或者数据是否是线性可分的。决策树算法的一个缺点是,它们不支持在线学习,因此当你要使用新的样本时,你不得不重新构建决策树。决策树的另一个缺点是,它很容易发生过拟合,而这就是像随机森林(或提升树)这样的集成学习方法能够派上用场的地方。决策树也需要大量的内存空间(拥有的特征越多,你的决策树可能会越深、越大)决策树能够很好地帮助你在诸多行动路径中做出选择:

  • 做出投资决策
  • 预测客户流失
  • 找出可能拖欠银行贷款的人
  • 在「建造」和「购买」两种选择间进行抉择
  • 销售主管的资质审核
  • 泰坦尼克号乘客生存分析

K-均值

有时,你完全没有数据的标签信息,并且你的目的是根据对象的特征来为其打上标签。这种问题被称为聚类任务。聚类算法可以在这种情况下被使用:例如,当你有一大群用户,你希望根据他们共有的一些属性将其划分到一些特定的组中。如果在你的问题声明中有这样的问题:例如,找出一群个体的组织形式,或将某些东西分组,或找出特定的组。这时,你就应该使用聚类算法。该方法最大的缺点是,K-均值算法需要提前知道你的数据会有多少簇,因此这可能需要进行大量的试验去「猜测」我们最终定义的簇的最佳个数 – K。在下列情况下可以考虑使用 K-均值算法:

  • 客户分析
  • 客户购物习惯
  • 垃圾邮件分类
  • 识别犯罪地点
  • 交通流量预测
  • 球队状态分析

主成份分析(PCA)

主成分分析能够对数据进行降维。有时,你拥有各种各样的特征,这些特征之间的相关性可能很高,而模型如果使用如此大量的数据可能会产生过拟合现象。这时,你可以使用主成分分析(PCA)技术。主成分分析(PCA)能够起作用的关键因素是:除了低维的样本表征,它还提供了各种变量的一种同步的低维表征。同步的样本和变量的表征提供了一种能够可视化地找到能够表示一组样本的特征的变量的方法。在下列情况下可以考虑使用主成份分析(PCA)算法:

  • 碳元素含量分析
  • 啤酒风味评价分析
  • 食品领域分析

支持向量机(SVM)

支持向量机(SVM)是一种在模式识别和分类问题中被广泛应用的监督机器学习技术——当你的数据恰好有两类时。支持向量机准确率高,对于防止过拟合很好的理论保障。当你使用一个合适的核函数时,即使你的数据在基(低维)特征空间中是线性不可分的,他们也可以很好地工作。支持向量机在文本分类问题中非常流行,在该问题中,输入是一个维度非常高的空间是很正常的。然而,SVM 是一种内存密集型算法,它很难被解释,并且对其进行调优十分困难。在下列现实世界的应用中,你可以使用支持向量机:

  • 发现患有糖尿病等常见疾病的人
  • 手写字符识别
  • 文本分类 —— 将文章按照话题分类
  • 股票市场价格预测

朴素贝叶斯

这是一种基于贝叶斯定理的分类技术,它很容易构建,非常适用于大规模数据集。除了结构简单,据说朴素贝叶斯的表现甚至比一些复杂得多的分类方法更好。当 CPU 和内存资源有限时,朴素贝叶斯算法也是一个很好的选项。朴素贝叶斯非常简单,你仅仅是在做大量的计数工作。如果朴素贝叶斯的条件独立假设确实成立,朴素贝叶斯分类器的收敛速度会比 logistic 回归这样的判别模型更快,因此需要的训练数据更少。即使朴素贝叶斯的假设不成立,朴素贝叶斯分类器往往也能很好地完成任务。如果你想使用一种快速的、简单的、性能也不错的模型,朴素贝叶斯是一个很好的选择。这种算法最大的缺点就是它不能学习到特征之间的相互作用。在下列真实世界的应用中,你可以使用朴素贝叶斯:

  • 情感分析和文本分类
  • 类似于 Netflix、Amazon 这样的推荐系统
  • 识别垃圾邮件
  • 人脸识别

随机森林

随机森林是一种决策树的集成方法。它能够同时解决具有大规模数据集的回归问题和分类问题,还有助于从数以千计的输入变量中找出最重要的变量。随机森林具有很强的可伸缩性,它适用于任何维数的数据,并且通常具有相当不错的性能。此外,还有一些遗传算法,它们可以在具有最少的关于数据本身的知识的情况下,很好地扩展到任何维度和任何数据上,其中最简单的实现就是微生物遗传算法。然而,随机森林学习的速度可能会很慢(取决于参数设置),并且这种方法不能迭代地改进生成模型。在下列现实世界的应用中,你可以使用随机森林:

  • 预测高危患者
  • 预测零件在生产中的故障
  • 预测拖欠贷款的人

神经网络

神经网络中包含着神经元之间连接的权重。这些权重是平衡的,逐次对数据点进行学习。当所有的权重都被训练好后,如果需要对新给定的数据点进行回归,神经网络可以被用于预测分类结果或一个具体数值。利用神经网络,可以对特别复杂的模型进行训练,并且将其作为一种黑盒方法加以利用,而在训练模型之前,我们无需进行不可预测的复杂特征工程。通过与「深度方法」相结合,甚至可以采用更加不可预测的模型去实现新任务。例如,最近人们已经通过深度神经网络大大提升了物体识别任务的结果。深度学习还被应用于特征提取这样的非监督学习任务,也可以在人为干预更少的情况下,从原始图像或语音中提取特征。另一方面,神经网络很难被解释清楚,其参数设置也复杂地让人难以置信。此外,神经网络算法也都是资源密集型和内存密集型的。目前,神经网络在新一代人工智能上的应用已经非常普遍,在各种领域上都能找到神经网络技术应用的影子。

最后,Scikit learning 为大家提供了一个非常深入的、解释地很清楚的流程图,它能够帮助你选择正确的算法。一般来说,你可以根据上面介绍的要点来筛选出一些算法,但是要想在一开始就知道哪种方法最好是很难的。你最好多迭代几次选择算法的过程。将你的数据输入给那些你确定的潜在优秀机器学习算法,通过并行或串行的方式运行这些算法,最终评估算法性能,从而选择出最佳的算法。

各种机器学习算法最佳应用场景 – 1

此前,跨象乘云™ 曾介绍了基于 scikit-learn 的机器学习算法工程导图这篇文章进一步详细解析了各种机器学习算法的最佳应用场景,以下内容由机器之心编译。

机器学习既是一门科学,也是一种艺术。各类机器学习算法,并没有一种普适的解决方案或方法。事实上,有几个因素会影响你对机器学习算法的选择。有些问题是非常特别的,需要用一种特定的解决方法。例如,如果你对推荐系统有所了解,你会发现它是一类很常用的机器学习算法,用来解决一类非常特殊的问题。而其它的一些问题则非常开放,可能需要一种试错方法(例如:强化学习)。监督学习、分类、回归等问题都是非常开放的,可以被用于异常检测或建立更加广泛的预测模型。

同时,我们在选择机器学习算法时所做出的一些决定与算法的优化或技术层面关系并不大,而更多地与业务决策相关。我们认为,机器学习本身就是一项与经验关联十分密切的技术 —— 你越了解你的业务需求,越多的尝试各种机器学习算法对于不同业务模型与数据特征下的表现,你就越有机会在最短的时间内找到合适的机器学习算法。这也是跨象乘云™ 在设计《机器学习》课程时的最大宗旨,换句话说,你做的实验越多,成功几率越大。首先,无论采用哪种机器学习算法,你都需要先完成以下必要的数据科学流程:

第一步:理解数据特征

当我们决定使用哪种算法时,我们所拥有的数据的类型和形态起着关键性的作用。有些算法可以利用较小的样本集合工作,而另一些算法则需要海量的样本。特定的算法对特定类型的数据起作用。例如,朴素贝叶斯算法对处理待分类的输入特别有效,但是对于缺失值则一点都不敏感。

1. 查看总结统计和数据可视化的结果

  • 百分比可以帮助你识别大多数数据的范围
  • 平均数和中位数可以描述集中趋势
  • 相关系数可以指出强的关联性

2. 探索性数据分析(EDA)

  • 箱形图可以识别出异常值
  • 密度图和直方图可以显示出数据的散布情况
  • 散点图可以描述二元关系

跨象乘云™ 大数据可视化探索平台,便是一个非常不错的通过可视化快速理解数据分布及特征形态的工具。

第二步:数据预处理与清洗

1. 处理缺失值。缺失的数据对于某些模型的影响比对其它模型更大。即使是对于那些被用于处理缺失数据的模型来说,它们也可能对缺失数据很敏感(某些变量的缺失数据可能导致预测性能变差)。

2. 选择处理异常值的方法

  • 异常值在多维数据中十分常见。
  • 有些模型对异常值的敏感性比其它模型要低。通常而言,树模型对于异常值的存在不太敏感。然而回归模型、或者任何试图使用方程的模型都会受到异常值的严重影响。
  • 异常值可能是糟糕的数据收集造成的,也可能是合理的极值。

3. 数据需要被聚合吗?详细可以参考跨象乘云™ 的《数据预处理与数据标记》课程。

第三步:数据增强与特征工程

1. 特征工程是从原始数据中产生能够被用于建模的数据的过程,可以起到以下几种作用:

  • 使模型更容易被解释(如:数据分箱(binning))
  • 捕获更复杂的关系(如:神经网络)
  • 减少数据冗余并降低数据维度(如:主成分分析(PCA))
  • 重新缩放变量(如:标准化或归一化)

2. 不同的模型可能有不同的特征工程的要求。有的模型有内置的特征工程。详细可以参考跨象乘云™ 的《特征工程》课程。

第四步:对问题进行分类

1. 根据输入分类:

  • 如果你拥有的是带标签的数据,那么这就是一个监督学习问题。
  • 如果你拥有的是未标注过的数据,并且希望从中找到有用的结构,那么这就是一个无监督学习问题。
  • 如果你想要通过与环境的交互来优化一个目标函数,那么这就是一个强化学习问题。

2. 根据输出分类:

  • 如果模型的输出是一个(连续的)数字,那么这就是一个回归问题。
  • 如果模型的输出是一个类别,那么这就是一个分类问题。
  • 如果模型的输出是一组用输入数据划分出的簇,那么这就是一个聚类问题。
  • 你想发现一个异常点吗?此时你面对的就是一个异常检测问题。

第五步:理解你要满足的约束条件

  • 你需要考虑你能够存储数据的容量有多大?这取决于系统的存储容量,你可能无法存储若干 GB 大小的分类、回归模型或者若干 GB 的用于聚类分析的数据。例如,在嵌入式系统中,你就会面临这种情况。
  • 对预测过程的速度是否有要求?在实时应用中,很显然,尽快得出预测结果是十分重要的。例如,在自动驾驶问题中,应用必须尽可能快地对道路标志进行分类,以免发生交通事故。
  • 对学习过程的速度是否有要求?在某些情况下,快速训练模型是十分必要的:有时,你需要使用不同的数据集快速地实时更新你的模型。

第六步:寻找可用的算法

当对自己的任务环境有了一个清晰的认识后,你就可以使用你所掌握的工具确定适用于待解决的问题并切实可行的算法。一些影响你选择模型的因素如下:

  • 模型是否满足业务目标
  • 模型需要多少数据预处理工作
  • 模型有多准确
  • 模型的可解释性如何
  • 模型运行的速度有多快:构造模型需要多久?模型做出预测需要多长时间?
  • 模型的可伸缩性如何

模型的复杂度是一个影响算法选择的重要标准。一般来说,一个更复杂的模型具备下列特征:

  • 它依赖于更多的特征进行学习和预测(例如,使用十个而不是两个特征来预测目标)
  • 它依赖于更复杂的特征工程(例如,使用多项式特征、交互特征或主成分)
  • 它有更大的计算开销(例如,需要一个由 100 棵决策树组成的随机森林,而不是一棵单独的决策树)

除此之外,同样的机器学习算法可以基于参数的个数和某些超参数的选择而变得更加复杂。例如:

  • 回归模型可以拥有更多的特征,或者多项式项和交互项。
  • 决策树可以拥有更大或更小的深度。
  • 将相同的算法变得更加复杂增加了发生过拟合的几率。

智能数据挖掘》进一步了将各种机器学习算法与业务需求联系起来,让大数据与人工智能专业学生更加明确各种机器学习算法能够解决的真实业务问题。

第二部分我们将介绍集中常用的机器学习应用场景,包括:线性回归,Logistic 回归,决策树,K-均值,主成份分析(PCA),支持向量机(SVM),朴素贝叶斯,随机森林,神经网络 …… 等。

吴恩达人工智能系列课程资源

随着近些年来 AI 越来越火的大趋势下,吴恩达一直致力于普及、宣传、推广 AI 教育,包括最前沿、最火爆的 AI 基础课程、深度学习课程等等。本文为截至目前吴恩达 AI 系列课程资源数理,以便为新一代人工智能专业师生梳理一条客观可参考的新一代人工智能学习路径。

    • Machine Learning》:在 Coursera 上发布,涵盖了机器学习的主要知识点:线性回归、逻辑回归、支持向量机、神经网络、K-Means、异常检测等。课程中没有复杂的公式推导和理论分析,让机器学习初学者能够快速对整个机器学习知识点有比较整体的认识,便于快速入门。具备完整的中文笔记在线笔记,以及课后作业(Python / Jupyter)。
    • CS229:吴恩达在斯坦福教授的《机器学习》(CS 229)课程与 Coursera 上的《Machine Learning》类似,但比 Coursera 上的更全面和进阶,对机器学习和统计模式识别进行了广泛的介绍,非常适合在学完《Machine Learning》之后的提升。具备完整的在线笔记配套资源精炼知识点速查表完整速查表机器学习的数学基础,以及线性代数和概率论的翻译
    • Deep Learning Specialization》:吴恩达在 CourseraDeeplearing.ai 上同时发布,开设了由 5 门课组成的深度学习专项课程,掀起了一股人工智能深度学习热潮。该专项课程可以说是深度学习入门的最佳课程之一!不仅知识体系完善,涵盖神经网络基础、浅层神经网络、深层神经网络、神经网络优化、CNN、RNN 等知识;而且配备了相当专业的编程题。在国内的网易公开课上同步发布,具备完整的汉化视频,在线笔记-1 / –2知识卡片,以及完整的 GitHub 资源。
    • CS230:吴恩达在斯坦福大学又开设了高质量的深度学习课程。在这门课中,你将学习深度学习的基础,理解如何构建神经网络,并且学习如何领导一个成功的机器学习项目。课程配备的代码都可以使用 Python 和 TensorFlow 来实现。这门课采用翻转课堂的教学形式,你可以在家观看教学视频,完成深度编程作业和在线测试,然后来到课程做进一步讨论并完成最后的大项目。具备完整的在线视频国内平台项目示例代码课程知识点归纳总结,以及完整速查表 GitHub 资源
    • TensorFlow in Practice》:吴恩达在 Coursera 上线了新的《TensorFlow in Practice》专项课程。显然,这门专项课程更加注重实践,而且使用现在最火热的深度学习框架 TensorFlow。该专项课程总共包含四门课:《TensoFlow 和机器学习、深度学习的介绍》、《TenSorFlow 中的卷积神经网络》、《TenSorFlow 中的自然语言处理》、 《序列、时间序列和预测》。
    • TensorFlow: Data and Deployment》:吴恩达在 Coursera 又有 TensorFlow 专项课程了,这回的主要内容放在了 TensorFlow 移动和 Web 端机器学习,包括:TensorFlow.js、TensorFlow Lite 等 Web 或移动端的使用。主要介绍使用 Tensorflow.js、TensorFlow Lite、TensorFlow Hub 等工具进行数据分析的方法。
    • AI For Everyone》:这是一门非技术课程,更主要的是教大家如何将 AI 业务布局到公司,以及谈谈 AI 对社会的影响。你可以从这门课程中学到:常见人工智能术语的含义,包括神经网络、机器学习、深度学习和数据科学;人工智能做什么,不能做什么;如何在工作中寻找布局 AI 的机会;如何与 AI 团队合作并建立公司 AI 战略;怎么看待 AI 道德伦理。
    • Machine Learning Yearning》:历时半年的大作《Machine Learning Yearning》英文版和中文版《机器学习训练秘籍》已重磅问世了!这本书《Machine Learning Yearning》能够从以下几个方面给你带来收获:优先考虑 AI 项目最有前途的方向;调试机器学习项目中的错误;在复杂设置中构建 ML,例如训练/测试样本不匹配;构建一个 ML 项目,接近甚至达到人类水平;知道什么时候、如何使用端对端学习、迁移学习和多任务学习。具有在线阅读中文版,以及中文版 GitHub 等完整资源。

机器学习从零到一教学视频

日前,Google 推出了一套《机器学习从零到一》系列视频,这个系列视频叫做『Machine Learning: From Zero to Hero with TensorFlow』—— 机器学习: 从零到一学习 TensorFlow),这一系列基于 2019 年谷歌 I/O 大会上的热门演讲。系列视频共分为四集 ——

  • 第一集:你将了解到机器学习是编程的一个新领域。用传统的编程语言(如 Java 或 C++)编写程序,需要使用明确的规则。而机器学习则可以通过训练数据来推理出这些规则。但机器学习究竟是什么样子的呢?在这里,我们会用一个简单的示例代码去构建一个机器学习模型,介绍一些基础概念,而你们会在之后的视频中应用这些概念去解决一个更有意思的问题:计算机视觉。
  • 第二集:通过教计算机如何看到并识别不同的物体,你可以学习到一些基本的计算机视觉概念。你还可以在此处自己编写示例。
  • 第三集:在本集,我们会讨论卷积神经网络,以及为什么它们在计算机视觉中得到了广泛应用。卷积是一个图像过滤器。它可以用来提取输入图像中具有共性的特征。在本视频中,你将跟随讲师从处理输入图像,尝试能否从中提取特征,来了解它的工作原理。
  • 第四集:你将学习如何构建一个剪刀石头布的分类器。在第一集中,我们用这个例子展现了如何用传统代码来检测和分类它们的难度。随着我们对机器学习的深入了解,我们已经学习了如何构建神经网络:从探测原始像素中的模式到对其进行分类,再到使用卷积检测特征。

2020 年人工智能开源生态圈

深度学习为核心的新一代人工智能技术发展到今天,已逐步形成一个庞大的生态结构,覆盖了:经典机器学习深度学习强化学习自然语言处理语音识别计算机视觉、分布式训练、自动建模、IDEs 系统、平台、评分推理系统等完整的细分领域 —— 正确合理的选择与开发内容相匹配的工具,常常会使科学研究工作事半功倍,同时,选择正确高效的工具也是技术应用类专业建设的重要环节。

跨象乘云™ 持续致力为高等院校打造深度学习与新一代人工智能科研教学一体化实验平台,在进一步将深度学习系统与容器化基础设施架构紧密集成的同时,对新一代人工智能开源生态系统提供全方位的支撑,加速高校科研效率及科研成果落地。详细项目列表如下 ——

1. 机器学习

  • SciKit-learn —— 强大的基于 Python 语言的机器学习算法库
  • XGBoost —— 在 Gradient Boosting 框架下实现了 C++机器学习算法
  • Accord.NET —— 完全用 C#编写的音频和图像处理库

2. 深度学习

  • TensorFlow —— 用于机器学习的端到端开源平台
  • PyTorch —— 主流的深度学习工具,开源的机器学习框架
  • MXNET —— 功能齐全,可编程和可扩展的深入学习框架
  • Sonnet —— 由 DeepMind 发布的,在 TensorFlow 上用于构建复杂神经网络的开源库
  • DL4J —— 采用 Java 和 JVM 编写的开源深度学习库

3. 强化学习

  • Gym —— 用于开发和比较强化学习算法的工具
  • Dopamine —— 基于 Tensorflow 的框架,为新入门强化学习研究人员提供的新工具
  • ReAgent —— Facebook 推出的一个构建决策推理系统的模块化端到端平台
  • Tensorlayer —— 面向科学家的深度学习和强化学习库

4. 自然语言处理

  • BERT —— 基于双向 Transformer 的大规模预训练语言模型,NLP 领域中里程碑
  • Transformers —— 神经机器翻译中使用的神经网络,近期 PyTorch-Transformers 非常火爆
  • AllenNLP —— 基于 PyTorch 的 NLP 研究库,利用深度学习来进行自然语言理解
  • flair —— 简单易用的 Python NLP 库,允许将当前最优自然语言处理(NLP)模型应用于文本
  • spaCy —— 工业级强度级的 Python 自然语言处理工具包
  • fastText —— Facebook 人工智能研究实验室(FAIR)开源的一个文本处理库

5. 语音识别

  • Kaldi —— 目前使用广泛的开发语音识别应用的框架
  • DeepSpeech —— 开源语音转文本引擎
  • wav2letter —— Facebook AI 研究院开源的,简单高效的端到端自动语音识别(ASR)系统

6. 计算机视觉

  • YOLO —— 当前深度学习领域解决图像检测问题最先进的实时系统
  • OpenCV —— Intel 开源的跨平台计算机视觉库,被称为 CV 领域开发者与研究者的必备工具包
  • Detectron2 —— 在单个或多个 GPU 服务器上提供更快速的训练速度
  • OpenPose —— 以 Caffe 为框架开发的人体姿态识别项目
  • facenet —— 通用人脸识别系统

7. 分布式训练

  • Spark MLlib —— 开源集群运算框架,大数据领域热门开源软件
  • Mahout —— 分布式线性代数框架,用于快速创建可扩展的高性能机器学习应用程序
  • Horovod —— Uber 开源的一个跨多台机器的分布式深度学习的 TensorFlow 训练框架
  • Dask —— 当开发者需要并行化到多核时,将计算扩展到多个内核甚至多个机器
  • Ray —— 高性能分布式执行框架,热门程度仅次于 Spark

8. 自动建模

  • TPOT —— Python 编写的软件包,利用遗传算法进行特征选择和算法模型选择
  • AutoKeras —— 基于高效神经架构搜索的开源项目,媲美 Google 的 AutoML
  • Featuretools —— 用于自动化特性工程的开源 Python 框架
  • NNI —— 微软发布的一个用于神经网络超参数调整的开源 AutoML 工具包
  • AdaNet —— Google 开源的一个轻量级的基于 TensorFlow 框架的神经网络搜索

9. IDEs

  • Jupyter —— 涵盖了跨数十种编程语言的交互式计算
  • Spyder —— 用于科学计算的使用 Python 编程语言的集成开发环境
  • Zeppelin —— 基于 Web 的交互式数据分析平台

10. 平台

  • H2O —— 开源的分布式内存机器学习平台,支持最广泛使用的统计和机器学习算法
  • MLflow —— 机器学习生命周期的开源平台
  • Kubeflow —— Kubernetes 上的机器学习分布式训练任务支持

11. 评分推理系统

  • ONNX —— 针对机器学习所设计的开放式的文件格式,用于存储训练好的模型
  • Seldon —— 让机器学习模型可以部署于 Kubernetes 上