机器学习的入门“秘籍”

更多深度文章,请关注:https://yq.aliyun.com/cloud



由于人工智能的发展,机器学习越来越受到大家的追捧。很多新的计算机科学家和工程师开始跨入机器学习这个美好的世界。不幸的是,理论,算法,应用,论文,书籍,视频等的数量是如此之大,以至于无法清楚地了解到底那些才是他们想要/需要学习提高他/她的技能的知识。

在这篇文章中,我想分享一下我的经验,提出一条可行的途径,快速学习基本概念,并准备好深入讨论最复杂的话题。当然这只是个人建议:每个朋友都可以根据自己的经验,选择更多地关注一些更有趣的话题。毕竟适合自己才是最好的路!

先决条件(基础)

机器学习是非常依赖数学的一门科学。这不是一个可以选择的选项,而是必选项,因为没有数学就没有机器学习,数学是一个不可抛弃的根本支柱。如果您是计算机工程师,每天使用UML,ORM,设计模式和许多其他软件工程工具/技术,请闭上眼睛,忘记几乎所有内容。这并不意味着所有的这些概念都不重要。但机器学习需要一种不同的方法。Python在这个领域越来越受欢迎的原因之一就是它的“原型设计速度”。在机器学习中,一种允许您使用几行代码(无类,接口和所有其他OO基础架构)对算法进行建模的语言是绝对要掌握的。无疑,Python是最佳的选择,如果你有很深厚的Python基础,那么这将成为你的优势。

微积分,概率理论和线性代数是几乎任何算法所必需的数学技能。如果你已经有了很好的数学背景,你可以跳过这个部分,选择刷新一些重要的概念是一个不错的主意。考虑到数学理论,我不鼓励从头开始进行通透性学习。在完成特定的任务时也可以突击式的学习它们,数学的使用要由浅入深,一开始就注重简单的任务。

另外机器学习,有很多好的在线资源(如CourseraKhan AcademyUdacity)。学习过程中尽量采用适合自己学历背景的务实方法。我的建议是使用一个简短的纲要,其中最重要的概念需要一一自己亲自搞明白,并且在需要的时候通过搜索和研究继续深入的学下去。这不是一个非常系统的方法,但替代方案有一个显着的缺点:大量的数学概念可以阻止和迷失所有没有深厚学术背景的人。

一个入门的武林秘籍

概率论:

1.离散和连续的随机变量(Discrete and continuous random variables)

2.重要的分布(伯努利,分类,二项式,正态,指数,泊松,贝塔,伽马)

3.贝叶斯统计(Bayes
statistics)

4.相关和协方差(correlation
and covariance)

线性代数:

1.向量和矩阵(Vectors and matrics)

2.矩阵的决定因素(determinant of a
matrix)

3.特征向量和特征值(eigenvectors and
eigenvalues)

4.矩阵分解(像SVD)(Matrix factorization)

微积分:

1.函数

2.积分

网上有很多免费资源,如:

维基百科也是一个非常好的资源,许多公式,理论和定理都以清晰易懂的方式解释。

机器学习必备技能:

1.特征工程:

进入机器学习的第一步是了解如何测量和提高数据集的质量。管理分类和缺失的特征、归一化和维数降低(PCAICANMF)是可以显着提高任何算法性能的基本技术。研究如何将数据集分为训练集和测试集以及如何采用交叉验证,而不是经典测试方法。如果想清楚的了解什么是特征工程,点击

2.NumpyPython的数学之王!

使用Python时,Numpy不仅仅是一个库。它是几乎任何机器学习实现的基础,绝对有必要了解它的工作原理,重点要关注矢量化和广播机制的概念、利用多线程和SIMD和MIMD架构的优势。通过掌握这些原理概念,可以加快大多数算法的学习过程。官方文件完整,但我也建议这些资源:

3.数据可视化

虽然它不是纯粹的机器学习主题,重要的是要知道如何可视化数据集。Matplotlib可能是最佳的解决方案,它易于使用,并允许绘制不同类型的图表。BokehSeaborne提供了非常有趣的选择。没有必要对所有软件包有全面的了解,但是了解每个软件包的优点/弱点是有用的,因此能够在需要时选择正确的软件包。

学习Matplotlib的一个很好的资源是:

4.线性回归:

线性回归是最简单的模型之一,可以考虑将其作为解决优化问题的首选,它可以解决最小化均方误差的优化问题。我建议将其研究为贝叶斯问题,其中使用先验概率表示参数(例如,高斯分布),优化成为MLE(最大似然估计)。即使它似乎更复杂,这种方法提供了一个新的思路,可以和许多其他更复杂的模型共享。

有关贝尔斯统计的非常有用的介绍可在Coursera上获得:

我建议你选择这些书:

5.线性分类:

逻辑回归通常是最好的起点。这也是学习一些信息理论的好机会,了解熵、交叉熵和互信息等概念。分类交叉熵是深度学习分类中最稳定的成本函数,简单的逻辑回归可以展示如何加快学习过程(与均方误差相比)。另一个重要的话题是正则化(Ridge,Lasso和ElasticNet)。有很多次,它被认为是提高模型准确性的“深奥”方式,但它的真实含义更加精确,应该通过一些具体的例子予以理解。我建议初学者可以以逻辑回归作为一个简单的神经网络搭建的开始,可视化(对于2D示例)如何权重向量在学习过程中移动。

超参数网格搜索方法是一个不错的方法。Grid
Search可以评估不同超参数集的性能,而不是完全意识到不同的值。因此,工程师可以将注意力集中在产生最高精度的组合上。

6.支持向量机(SVM):

支持向量机提供了不同的分类方法(线性和非线性)。该算法非常简单,学生只需要具有基础的几何知识就可以学习。然而,了解kernel-SVM的工作原理是非常有用,因为它们可以帮助你避免在线性方法的任务中频繁出现失败。

一些有用的免费资源:

7.决策树:

决策树提供了另一种分类和回归方法。一般来说,它们不是非常复杂问题的首选,但它们提供了完全不同的方法,即使是非技术人员也可以很容易地理解,并且可以在会议或官方演示中进行可视化。

8.快速浏览集成学习(Ensemble
learning):

在了解了决策树之后,研究如何组合树来提高整体准确度的方法是有用的。随机森林,梯度提升回归树和AdaBoost是复杂性比较低的强大算法。Scikit-Learn提供了最常见的实现,但是如果您想要充分利用这些算法,我建议你花一些时间研究XGBoost,这是一个分布式框架,可以与CPU和GPU一起工作,加快训练过程,即使是非常庞大的数据集。

9.聚类:

研究聚类方法,依我的意见,最好的做法是研究高斯混合算法(基于EM,期望最大化)。即使K-Means也比较简单(但必须进行研究),高斯混合提供了一种纯贝叶斯方法,这对许多其他类似的任务很有用。其他必须研究的聚类算法还包括分层聚类光谱聚类DBSCAN。了解基于实例的学习的思想也很有用,例如研究了k-Nearest
Neighbors算法,可以用于监督学习和无监督学习任务。

光谱聚类的免费资源是:

10.神经网络:

神经网络是深度学习的基础,应该花单独的时间进行研究。但是,我认为了解Perceptron,Multi-Layer
Perceptron和Backpropagation算法的概念对神经网络的学习是很有用的。Scikit-learn提供了一个非常简单的神经网络,但是,它是一个好的开始,接着就是了解Keras,这是基于高层次的框架TensorflowTheanoCNTK的深度学习包,允许模拟和训练神经网络。

一些好的神经网络资源:

市场上最好的深度学习书可能是:

  • Goodfellow I.,Bengio Y.,Courville A.,Deep
    Learning
    ,The MIT Press

希望本文能够帮助到那些打算进入机器学习领域的朋友们!

文章原标题《An annotated path to
start with Machine Learning》

作者:bonaccprso  人工智能软件工程师,数据科学家,技术传播与顾问。

博客:https://www.bonaccorso.eu

译者:袁虎 审阅:主题曲哥哥

文章为简译,更为详细的内容,请查看原文

时间: 2024-10-31 11:29:00

机器学习的入门“秘籍”的相关文章

神经网络和机器学习基础入门分享

         最近在做知识图谱实体对齐和属性对齐中,简单用了下Word2vec谷歌开源代码.Word2vec是一个将单词表征成向量的形式,它可以把文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度.         Word2vec采用CBOW(Continuous Bag-Of-Words Model,连续词袋模型)和Skip-Gram(Continuous Skip-GramModel)两种模型,涉及到神经网络和深度学习的一些知识.故这周给学弟和

机器学习:入门方法与学习路径 (附资料)

◆ ◆ ◆ 1. 引言 也许你和这个叫『机器学习』的家伙一点也不熟,但是你举起iphone手机拍照的时候,早已习惯它帮你框出人脸:也自然而然点开今日头条推给你的新闻:也习惯逛淘宝点了找相似之后货比三家:亦或喜闻乐见微软的年龄识别网站结果刷爆朋友圈.恩,这些功能的核心算法就是机器学习领域的内容. 套用一下大神们对机器学习的定义,机器学习研究的是计算机怎样模拟人类的学习行为,以获取新的知识或技能,并重新组织已有的知识结构使之不断改善自身.简单一点说,就是计算机从数据中学习出规律和模式,以应用在新数据

机器学习初学者入门实践:怎样轻松创造高精度分类网络

这是一个为没有人工智能背景的程序员提供的机器学习上手指南.使用神经网络不需要博士学位,你也不需要成为实现人工智能下一个突破的人,你只需要使用现有的技术就行了--毕竟我们现在已经实现的东西已经很突破了,而且还非常有用.我认为我们越来越多的人将会和机器学习打交道就像我们之前越来越多地使用开源技术一样--而不再仅仅将其看作是一个研究主题.在这份指南中,我们的目标是编写一个可以进行高准确度预测的程序--仅使用图像本身来分辨 data/untrained-samples 中程序未见过的样本图像中是海豚还是

机器学习快速入门:你必须知道的三大算法

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud 看着"机器学习"这几个字天天霸占新闻头条,热爱学习的你,也上网搜索了一下"机器学习模型",5分钟后就被各种术语吓坏了.想入门,不如先熟悉下面的这几个算法,这些算法能解决数据科学中的很多问题. 监督学习 vs 非监督学习 基本上,所有的机器学习问题都可以分为监督学习和非监督学习. 在监督学习中,算法会获得一个数据库作为输入,我们也知道正确的输出该是什么样子.回归分析和分类问题都属于

ORIGAMI五分钟零基础入门秘籍

  Facebook新推出的Origami插件非常强大,配合Sketch可以非常方便的搞定Demo动画.鉴于国内几乎没有教程,今天腾讯同学整理了一份Origami入门文档,就算是零基础也可以迅速上手,强烈推荐 >>> 早在Facebook推出Facebook Home时,相信强大的原型工具Quartz Composer就进入了很多设计师的法眼,无须编写代码就可以输出细腻丰富的动画,这个太刁了,和大家一样,彼时我也信誓旦旦励志要学会这个玩意儿,于是开始参考教学视频摸索,甚至拿着Quartz

机器学习小白入门指引,开年也要规划好小目标

经常有人问我如何开始学习机器学习,他们面临的最大困难就是机器学习背后的数学原理.我承认其实我也不喜欢数学.数学是对事物的一种抽象描述,用数学来描述机器学习,会过于抽象,且不容易理解.因此在这个系列的文章中,我尝试使用伪代码或者JavaScript来描述我所讲述的内容. 我在GitHub上创建了项目仓库,我会将一些实验代码同步到代码库中,以便您可以跟随我的步骤,或者在这些实验代码之上实现自己的东西.这些代码运行时可能会时不时报错,所以我称之为实验代码 J 你必须知道的第一个事情是同一个问题会有不同

浅谈:地方网站线上推广入门秘籍

中介交易 SEO诊断 淘宝客 云主机 技术大厅 运营沧州论坛也已经有一段时间了,自知地方网站的发展和壮大过程中只有线上和线下双剑合壁才能发挥他的最大威力,取得最好的推广效果.相比较线下推广而言线上推广所投入的人力和资金几乎可以是不计算的,所以线上推广一直是新手站长的最爱,今天撇开线下推广不谈(我会在以后的文章中和大家讨论下地方站的线下推广方案),主要谈的是线上推广的入门方案. 一,软文推广 软文顾名思义就是通过写文章发表观点,在文章中带上你的网站链接地址,从而起到推广网站的目的,相对于地方站而言

权威发布:中国人工智能学会自动驾驶入门秘籍

10月12日,中国人工智能学会发布中国人工智能系列白皮书,雷锋网作为邀请媒体见证了白皮书的发布.本文将对<中国人工智能系列白皮书--智能驾驶>进行介绍和精编. 智能汽车是新一轮科技革命背景下的新兴技术,集中运用了现代传感技术.信息与通信技术.自动控制技术.计算机技术和人工智能等技术,代表着未来汽车技术的战略制高点,是汽车产业转型升级的关键,也是目前世界公认的发展方向. 智能汽车在减少交通事故.缓解交通拥堵.提高道路及车辆利用率等方面具有巨大潜能.在此大背景下,中国人工智能学会出台<中国人

机器学习必备手册

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud 请收下这份关于人工智能的根目录--博客整理系列(一) 关于数据科学的那些事--博客整理系列(二) 机器学习必备手册--博客整理系列(三) 扩展眼界的都在这--博客整理系列(四) 深度学习必备手册(上)--博客整理系列(五) 深度学习必备手册(下)--博客整理系列(六) 机器学习是计算机科学的一个子领域,在人工智能领域,机器学习逐渐发展成模式识别和计算科学理论的研究.从2016年起,机器学习到达了不合理的火热巅