机器学习入门介绍


  • 什么是机器学习?

     

  • 它是如何工作的?

     

  • 需要掌握哪些数学知识?

     


作者:Vihar Kurama


日期:2019年5月31日


更新:2019年6月15日

 

原文:请在文末点『阅读原文』

 

机器学习的方法改变了计算机的工作方式,它使得计算机不再依赖于硬编程,而是可以从实例和经验中进行学习。你把数据喂给它,它根据特定的算法和数据建立逻辑,输出结果,期间并不需要写任何代码。

 

举例而言,机器学习中有一类算法,我们称之为分类算法,它可以把数据分为不同的类别,这类算法既可以用来识别手写的字母,还可以用来进行垃圾邮件过滤。

 

计算机程序:能够从经验E中学习(学习任务是T,学习的表现用P衡量),并且在任务T与表现P的衡量下,可以通过经验E得到改进。- Tom M. Mitchell

 

以跳棋为例:

 

E表示玩足够多盘跳棋游戏的经验,

 

T表示玩跳棋,

 

P表示再下一盘赢棋的概率。

 

 

机器学习的例子

 

过去5年间,得益于更快的计算速度和更好的硬件,机器学习得到了快速的发展。现在,机器学习已经可以实时的部署在一些网站上,实现更好的搜索效果和推荐系统。举例而言,如果你在亚马逊上搜索某一个产品,那么接下来的若干天,亚马逊会给你推荐类似的产品。

 

这里有若干个分类问题,它们的目的是将物品标记为固定的类别。

 

  • 人脸识别:从图像中识别人脸(判断是否存在人脸)

     

  • 邮件过滤:垃圾邮件过滤

     

  • 医疗诊断:诊断一个病人是否患某种疾病

     

  • 天气预测:预测明天会不会下雨

 

机器学习的价值

 

机器学习是人工智能(AI)的一个领域。基于AI的应用,我们考虑构建更好更智能的机器。但是事与违愿,除了解决寻找线段间最短距离这类简单问题外,我们还不能解决更复杂更具有挑战性的问题。后来人们意识到想要解决更复杂的问题,就必须让机器从他们自身学习,就像孩童从周围环境学习一样。基于此,机器学习开启了一个新的天地,它被应用到许多技术领域,甚至我们之前都没有想象到的领域。

 

有些数据集过于庞大以至于人脑需要寻求帮助来发现某些模式,而这正是机器学习的长处,它可以快速执行,帮助人们更快的筛选大数据集。

 

如果大数据云计算因为他们的贡献而越来越重要的话,机器学习同样也值得肯定,它可以自动的处理数据,帮助数据科学家节约大量的时间和精力。

 

数据挖掘技术的应用已经有很多年了,但是如果没有算法加持,这些技术就不可能有效。如果有更好的数据来运行深度学习时,输出会有更大的突破,这就是为什么机器学习会如此的重要的原因。

 

 

机器学习的类型

 

机器学习算法分为三类:

 

  • 监督学习

     

  • 非监督学习

     

  • 强化学习

     

监督学习

 

很多实用的机器学习算法用的是监督学习。

 

在监督学习中,系统试图从以往的实例中进行学习。(换句话说,在非监督学习中,系统试图从当前实例中直接寻找模式。)

 

用数学语言表达出来,在监督学习中,已知输入变量(x)和输出变量(y),我们可以通过一个算法推导出一个从输入映射到输出的函数。

 

这个映射函数表示为:Y=f(X)

 

例如:

 

监督学习问题又可以进一步分为两类:

 

  • 分类:输出变量被标记为某一类,例如:“黑”和“白”,“垃圾邮件”和“正常邮件”。

     

  • 回归:输出变量是一个实际值,例如:“多少钱”,“多重”

     

非监督学习

 

在非监督学习中,算法自行在数据中探索感兴趣的结构和模式。

 

从数学上讲,非监督学习只有输入数据,没有输出变量。

 

非监督学习不同于监督学习的地方在于:它并没有准确答案,需要机器自行去找到解决方案。

 

非监督学习可分为两类:

 

  • 关联:在大规模数据之间寻找关系,例如:买了X(尿不湿)的人会买Y(啤酒)吗?

     

  • 聚类:寻找数据的内在分组,例如:通过购买行为划分用户。

 

增强学习

 

在增强学习中,计算机程序为了达到特定的目标(例如竞技游戏或者驾车),会同周围环境进行交互,在它的问题空间中以奖惩的形式提供反馈。

 

在这种算法中,机器被训练用来做出特殊的决策。它的工作机理是机器通过跟周围环境交互,不断试错来训练自己。

 

例如:

 

 

人工智能中的数学:

 

机器学习理论需要统计,概率,计算机科学和算法相关的知识,机器学习会不断从数据中进行迭代学习,进而构建智能应用。

 

数学很重要吗?

 

机器学习中的数学很重要:

 

  • 需要选择合适的算法(需要考虑到准确度,训练时间,模型复杂度,参数数量,特征数量)

     

  • 需要根据偏差方差平衡确认欠拟合还是过拟合

     

  • 需要选择合适的参数和有效的策略

     

  • 需要估计正确的测定周期和不确定性度

     

需要多少数学知识?

 

理解机器学习系统需要多少数学知识?答案是因人而异,但是机器学习工程师和数据科学家至少需要具备:

 

  1. 线性代数:矩阵操作,投影,分解,对称矩阵,正交化

     

  2. 概率和统计:概率论和定理、贝叶斯理论、随机变量、方差和期望、条件分配和联合分布、标准分布

     

  3. 微积分:导数和积分计算,偏导数计算

     

  4. 算法和复杂度优化:二叉树,哈希表,堆,栈

     

     

     

 

阅读原文

 

(↓ - 有些内容只在小龙家发,可关注同名“趣Python”号,谢谢 - ↓) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值