- 什么是机器学习?
- 它是如何工作的?
- 需要掌握哪些数学知识?
机器学习的方法改变了计算机的工作方式,它使得计算机不再依赖于硬编程,而是可以从实例和经验中进行学习。你把数据喂给它,它根据特定的算法和数据建立逻辑,输出结果,期间并不需要写任何代码。
举例而言,机器学习中有一类算法,我们称之为分类算法,它可以把数据分为不同的类别,这类算法既可以用来识别手写的字母,还可以用来进行垃圾邮件过滤。
计算机程序:能够从经验E中学习(学习任务是T,学习的表现用P衡量),并且在任务T与表现P的衡量下,可以通过经验E得到改进。- Tom M. Mitchell 以跳棋为例: E表示玩足够多盘跳棋游戏的经验, T表示玩跳棋, P表示再下一盘赢棋的概率。
机器学习的例子
过去5年间,得益于更快的计算速度和更好的硬件,机器学习得到了快速的发展。现在,机器学习已经可以实时的部署在一些网站上,实现更好的搜索效果和推荐系统。举例而言,如果你在亚马逊上搜索某一个产品,那么接下来的若干天,亚马逊会给你推荐类似的产品。
这里有若干个分类问题,它们的目的是将物品标记为固定的类别。
- 人脸识别:从图像中识别人脸(判断是否存在人脸)
- 邮件过滤:垃圾邮件过滤
- 医疗诊断:诊断一个病人是否患某种疾病
- 天气预测:预测明天会不会下雨
机器学习的价值
机器学习是人工智能(AI)的一个领域。基于AI的应用,我们考虑构建更好更智能的机器。但是事与违愿,除了解决寻找线段间最短距离这类简单问题外,我们还不能解决更复杂更具有挑战性的问题。后来人们意识到想要解决更复杂的问题,就必须让机器从他们自身学习,就像孩童从周围环境学习一样。基于此,机器学习开启了一个新的天地,它被应用到许多技术领域,甚至我们之前都没有想象到的领域。
有些数据集过于庞大以至于人脑需要寻求帮助来发现某些模式,而这正是机器学习的长处,它可以快速执行,帮助人们更快的筛选大数据集。
如果大数据和云计算因为他们的贡献而越来越重要的话,机器学习同样也值得肯定,它可以自动的处理数据,帮助数据科学家节约大量的时间和精力。
数据挖掘技术的应用已经有很多年了,但是如果没有算法加持,这些技术就不可能有效。如果有更好的数据来运行深度学习时,输出会有更大的突破,这就是为什么机器学习会如此的重要的原因。
机器学习的类型
机器学习算法分为三类:
- 监督学习
- 非监督学习
- 强化学习
监督学习
很多实用的机器学习算法用的是监督学习。
在监督学习中,系统试图从以往的实例中进行学习。(换句话说,在非监督学习中,系统试图从当前实例中直接寻找模式。)
用数学语言表达出来,在监督学习中,已知输入变量(x)和输出变量(y),我们可以通过一个算法推导出一个从输入映射到输出的函数。
这个映射函数表示为:Y=f(X)
例如:
监督学习问题又可以进一步分为两类:
- 分类:输出变量被标记为某一类,例如:“黑”和“白”,“垃圾邮件”和“正常邮件”。
- 回归:输出变量是一个实际值,例如:“多少钱”,“多重”
非监督学习
在非监督学习中,算法自行在数据中探索感兴趣的结构和模式。
从数学上讲,非监督学习只有输入数据,没有输出变量。
非监督学习不同于监督学习的地方在于:它并没有准确答案,需要机器自行去找到解决方案。
非监督学习可分为两类:
- 关联:在大规模数据之间寻找关系,例如:买了X(尿不湿)的人会买Y(啤酒)吗?
- 聚类:寻找数据的内在分组,例如:通过购买行为划分用户。
增强学习
在增强学习中,计算机程序为了达到特定的目标(例如竞技游戏或者驾车),会同周围环境进行交互,在它的问题空间中以奖惩的形式提供反馈。
在这种算法中,机器被训练用来做出特殊的决策。它的工作机理是机器通过跟周围环境交互,不断试错来训练自己。
例如:
人工智能中的数学:
机器学习理论需要统计,概率,计算机科学和算法相关的知识,机器学习会不断从数据中进行迭代学习,进而构建智能应用。
数学很重要吗?
机器学习中的数学很重要:
- 需要选择合适的算法(需要考虑到准确度,训练时间,模型复杂度,参数数量,特征数量)
- 需要根据偏差方差平衡确认欠拟合还是过拟合
- 需要选择合适的参数和有效的策略
- 需要估计正确的测定周期和不确定性度
需要多少数学知识?
理解机器学习系统需要多少数学知识?答案是因人而异,但是机器学习工程师和数据科学家至少需要具备:
- 线性代数:矩阵操作,投影,分解,对称矩阵,正交化
- 概率和统计:概率论和定理、贝叶斯理论、随机变量、方差和期望、条件分配和联合分布、标准分布
- 微积分:导数和积分计算,偏导数计算
- 算法和复杂度优化:二叉树,哈希表,堆,栈