熟读高数才能理解机器学习?不,初中数学就够了

  • 导读
  • 谁说理解机器学习必须要熟读高数?

    近日,数据科学Kyle在Medium发布博客表示,理解机器学习在做的事情,有初中数学知识足矣。

    这篇博客简洁易懂、幽默风趣,在Medium上几天内获得600多赞。量子位将文章翻译整理如下,与大家分享:

    当下理解我们人工智能的方式通常比较极端,要么通过媒体,越来越耸人听闻的观点让人难以想象。要么通过文献,充满晦涩语言和特定术语的论文让人难以理解。

    理解AI的正确姿势应该在两个极端之间,这就需要你在新闻或文献之外理性判断,对于一般人来说,至少应该知道AI是什么。

    这几乎是没有门槛的,我认为理解AI,中学数学知识就足够了。这篇文章我将简化人工智能中的数学,带你拨开云雾看本质。

    在这里给大家推荐一个python系统学习q群:250933691有免费开发工具以及初学资料,(数据分析,爬虫,AI, 机器学习,神经网络)每天有老师给大家免费授课,欢迎一起交流学习

    1. 简单版AI和机器学习概念

    能模仿人类的智慧,这是最具代表性的AI的定义。

    AI可以有多重“形态”,从虚拟游戏里的机器人、谷歌DeepMind开发的下围棋程序AlphaGo,到现实世界里索菲亚这样的人型机器人,这都是AI“寄生”的场所。

    那AI和相关报道中经常提到的机器学习和深度学习是什么关系,请看下面这张图:

    人工智能(AI):泛指任何可以让计算机模拟人类智慧的技术,可以通过逻辑、if-then等规则、决策树和机器学习(包括深度学习)等方法实现。

    机器学习:AI的一个子分类,让机器通过真实世界的数据去“学习”,而非单调执行预先设定的规则。

    深度学习:机器学习的子类,包含一系列算法。机器通过多层神经网络去处理数据,自己学习去执行任务。在语言和图像识别等任务中经常看到。

    发现了么,机器学习的最大特色之一,就是它的“学习”方式不同了。这里的“学习”,其实也没有看起来那样有未来感,你在初中可能就已经接触过了。

    如果你看过《黑镜》里类似的桥段,就比较容易将现在AI可视化成一个有意识的实体,一个有思想、感觉、可以做出复杂决策的物体。

    在媒体的报道中这种观念更为普遍,甚至经常会把AI人格化,然后将其与电影《终结者》里的天网(Skynet)和《***帝国》里的Matrix相提并论。

    实际上这都不是真的。在现阶段AI就是数学。有时是高难度的数学,有时需要扩展到计算机科学、统计学等其他领域的知识。但AI的核心是一种数学函数。

    也就是说,机器学习可以从y=mx+b这个方程式来理解。如下图所示,我们已经知道了x值y值,此时需要让一台计算机通过输入(x)和输出(y)去思考两者之间的关系,推断出m和b的值。

    这个公式推断起来不难吧,y=1x+1,小学生也会做。就是这样,我们创造一个公式来描述所给的数据,这大体上也是机器学习在做的事情。

    这之间最有趣的部分就是,怎样教机器选择最适合这些数据的公式。一旦找到这其中的关联,你还可以将它用图表的形式表现出来。

    1. 你不懂的数学,拿给机器去做吧

    y=1x+1是个非常简单的例子,我们需要机器学习最主要的原因是,人类无法在数百万量级的数据点中找到合适的公式,这就是计算机要去做的事了。

    无论如何,必须有足够多的数据才能找到正确的公式。如果我们仅仅有x=1和y=2两个数据点,输出的函数也是千变万化的,可能是y=2x,可能是y=x+1,,也可能是y=([x+1]*5–9)? + 1等等。

    根据少量数据构建公式,然后把它用到更多数据上,这个公式可能会出现大量错误。

    并且,现实世界总不可能一直这么完美。在下面这个动图中可以看到,机器会在一堆数据中进行取舍,探索怎样最大化去满足这些数据,进而才去创造公式。

    和数学课上那些规律输入和输出值不同,真实世界的数据更不可预测,也更“参差不齐”。

    △ 最佳公式

    当面对一堆变量时,人类找出合适公式的可能性更小了。只有x和y很容易,但如果y受x的1次方、2次方、100次方的影响呢?

    人类就hold不住了,但计算机可以。

    1. 现实生活中的机器学习和AI

    来看一个现实生活中的例子。我在制药领域工作,就举个×××相关数据集的例子好了。

    这个数据集中有两个关于肿瘤大小的输入变量,即半径和周长,以及两个潜在的输出,即良性肿瘤和恶性肿瘤。用我们上述思路来考虑,这事就是这样的:

    y:诊断结果,可以是0(良性)或1(恶性)

    x1:半径

    x2:周长

    每个x都有一个位置的m,先称之为“某数”吧

    b:依然是一个未知数

    那么这个线性方程长什么样?其实和上面的例子也没什么太大区别:

    诊断结果=(某数1×半径)+(某数2×周长)+b

    这样看来,这道题已经脱离了人类能力的范围了,所以不用费时间去找这么多变量与结果的关系了,我们可以让机器去做,这之间就是机器学习!

    在这里给大家推荐一个python系统学习q群:250933691有免费开发工具以及初学资料,(数据分析,爬虫,AI, 机器学习,神经网络)每天有老师给大家免费授课,欢迎一起交流学习

    原文地址:https://blog.51cto.com/14217196/2357255

    时间: 2024-10-11 16:04:30

    熟读高数才能理解机器学习?不,初中数学就够了的相关文章

    理解机器学习

    理解机器学习 0. 前言 当决定想写这篇文章,以对前段时间的学习做个总结,同时对自己的努力有所交代的时候,一个难题摆在了我的面前:人工智能的命题太大,我驾驭不了.而选择一个具体的题目,其容量又不足以表达作者的思路.这与我们设计网络.选择参数何其相似! 最终,我选择了机器学习这个不大不小的范围.题目也是增删数次,风格一变再变,最终还是定了这个严肃一点的.希望大家能够喜欢. 当提到机器学习的时候,我们必须要弄清楚几个问题: 希望学到什么? 用什么方法学? 学习的效果如何? 不能学得更好的原因是什么?

    从零实现来理解机器学习算法:书籍推荐及障碍的克服

    前部为英文原文,原文链接:http://machinelearningmastery.com/understand-machine-learning-algorithms-by-implementing-them-from-scratch/ 后部为中文翻译,本文中文部分转自:http://www.csdn.net/article/2015-09-08/2825646 Understand Machine Learning Algorithms By Implementing Them From

    漫谈高数 特征向量物理意义

    [1. 特征的数学意义]        我们先考察一种线性变化,例如x,y坐标系的椭圆方程可以写为x^2/a^2+y^2/b^2=1,那么坐标系关于原点做旋转以后,椭圆方程就要发生变换.我们可以把原坐标系的(x,y)乘以一个矩阵,得到一个新的(x',y')的表示形式,写为算子的形式就是(x,y)*M=(x',y').这里的矩阵M代表一种线性变换:拉伸,平移,旋转.那么,有没有什么样的线性变换b(b是一个向量),使得变换后的结果,看起来和让(x,y)*b像是一个数b乘以了一个数字m*b? 换句话说

    理解机器学习算法的一点心得

    从Andrew ng的公开课开始,机器学习的算法我接触到的也越来越多,我觉得机器学习算法和传统算法的最大不同就是:不会要求一个问题被100%求解,也就意味着不会有完美的解法,这也是著名的"Essentially, all models are wrong, but some are useful."所表达的意思.正因为如此,机器学习算法往往不会有一个固定的算法流程,取而代之的把问题转化为最优化的问题,无论是ML(maximum likelihood),MAP(Maximum a Pos

    拉格朗日乘子法 那些年学过的高数

    最近在做通信网络相关的仿真,今天拿到了一些别人仿真的代码来学习,其中看到了一个double Lambda[T_Node_Number][M][Low_iteration];的参数,注释写着拉格朗日乘子式.本来对于这个名词感觉很陌生,后来查了一些资料,才回忆起这似乎是大一高数曾经学过的知识,经查书,果不其然,高数下P113页 条件极值拉格朗日法讲的就是这个内容.以前被忽视的知识点,再次重现,我觉得要好好学习一下.一下是学习笔记: 如何理解 先看一个二维的例子:假设有函数:f(x,y),要求其极值(

    高数讲课教后感

    在以前听课的时候,经常会觉得老师讲课一些知识点过于简单不乐意听,又或者认为老师讲课方式不妥细节没讲透等等,甚至会认为为什么老师莫名其妙的会嗓子疼呢?直到,当我暂时的站上讲台,和同学们讲高数,在一次次的备课,讲课中,我才意识到,真的,做老师太不容易了,尤其是当你给这么多学生讲课的时候,根本没有办法得知那些学生是不是有哪些地方没有听懂(如果河同学们交流不够时),或者哪些地方比较简单但是自己又担心他们没有听懂多啰嗦了几句,所有可能造成影响的因素,其实都会对你的课堂气氛和效果产生很大的影响,另外当面对很

    高数基础

    高数基础1: 创建函数的导数 求函数极值步骤:

    div css文字字体行高行距 深入理解css行间距设置

    div css文字字体行高行距 深入理解css行间距设置 div css文字字体行高行距 DIVCSS5带您深入理解css行间距设置,字体行距如何最简单地设置. 在文章中,要实现调节设置每行文字字体间距(行距)是使用line-height属性.(体感音乐) 要使得每行的文字一定的间距距离所以可以通过line-height样式实现.接下来DIVCSS5通过DIV CSS实例实现字体文字上下间距. 相关扩展CSS教程: css line-height div css字间距 为了观察到行距设置效果,新

    网站并发数的理解

    想要探讨这个概念,源于某个攻击事件.某个应用平台遭到外部攻击,导致apache连接数冲高,平台使用缓慢.通过日志分析平台来看,从平台遭遇攻击起,apache请求数在不断下降,与之前的认知有所不同. 之前认为apache请求数在遭遇攻击时,应该不断增加才是.实则这个请求数可以理解为并发数,就引出"网站并发数"的概念. 对于网站服务器而言,网站并发数,可以理解为,在单位时间内,服务器能够同时处理的最大请求数.由于请求业务的不同,有的请求1秒内结束,有的请求10秒内结束.因此,网站并发并不是