1、大数据处理与智能决策大数据处理与智能决策教研室智能技术与工程学院重庆科技学院第三章:机器学期基础与一元线性回归3什么是机器学习?n你如果没有听说过机器学习,那你就Out了!n在哈佛商业评论发表数据科学家是 21 世纪最性感的职业之后,机器学习的研究广受关注。n机器学习算法就是在没有人类干预的情况下,从数据中学习,并在经验中改善的一种方法,学习任务可能包括学习从输入映射到输出的函数,学习无标签数据的隐含结构;或者是基于实例的学习,通过与存储在记忆中的训练数据做比较,给一个新实例生成一个类别标签。基于实例的学习(instance-based learning)不会从具体实例中生成抽象结果。是不是有
2、点抽象?什么是机器学习?机器学习,是一种特殊的算法,能够根据已有的数据进行“学习”,学习的结果是“建立一个数学模型”。4现有数据机器学习算法数据模型学习训练数据模型新的数据预测输出结果输入输入思考 如果你是AlphaGo的设计者,根据以上提到的流程,请你说出你对AlphaGo的设计思想的理解5第一部分What is ML?何为机器学习下面几首诗,大家来猜猜,哪些是机器写的,哪些是人写的?平仄,押韵,对偶,对仗平仄,押韵,对偶,对仗春到江南草更青,胭脂粉黛玉为屏。无端一夜西窗雨,吹落梨花满地庭。一夜秋风扫叶开,云边雁阵向南来。清霜渐染梧桐树,满地黄花坡上栽。梨花落尽柳絮飞,雨打芭蕉入翠微。夜静更
3、深人不寐,江头月下泪沾衣。雨打芭蕉滴泪痕,残灯孤影对黄昏。夜来无寐听窗外,数声鸡鸣过晓村。秋深更觉少人行,雁去无声月满庭。兄弟别离肠断处,江南烟雨总关情。明月当窗照夜空,桂花香透小楼东。金风玉露三更后,雪落梅梢一点红。什么是机器学习Google Brain 黑科技黑科技图像的识别与重建图像的识别与重建机器学习界的执牛耳者与互联网界的大鳄的联姻中间的是中间的是Geoffrey Hinton,加拿大多伦多大学的教授,如今被聘为加拿大多伦多大学的教授,如今被聘为“Google大脑大脑”的负责人。的负责人。右边的是右边的是Yann LeCun,纽约大学教授,如今是纽约大学教授,如今是Facebook人
4、工智能实验人工智能实验室的主任。室的主任。而左边的大家都很熟悉,而左边的大家都很熟悉,Andrew Ng,中文名吴恩达,斯坦福大学副教,中文名吴恩达,斯坦福大学副教授,如今也是授,如今也是“百度大脑百度大脑”的负责人与百度首席科学家。的负责人与百度首席科学家。机器学习领域类的大牛们何为机器学习What is machine learning机器学习数据相关传统编程指令因果入门级高漏误报率通配符简单逻辑描述简单数据挖掘(关联、序列)自然语言处理数据挖掘(聚类、分类)无监督学习、监督学习、强化学习关键词、特征正则表达式人工智能从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无
5、法完成的功能的方法。但从实践的意义上来说,机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法。第二部分Machine learning algorithms三类机器学习算法三类机器学习算法Machine learning algorithms监督学习?和平区、120平、新房,价格多少。三类机器学习算法Machine learning algorithms01030402SVM通过给予逻辑回归算法更严格的优化条件,支持向量机算法可以获得比逻辑回归更好的分类界线。但是如果没有某类函数技术,则支持向量机算法最多算是一种更好的线性分类技术。逻辑回归预测结果是离散的分类,例如判断这封邮件
6、是否是垃圾邮件,以及用户是否会点击此广告等等。神经网络分解与整合。每个处理单元事实上就是一个逻辑回归模型,逻辑回归模型接收上层的输入,把模型的预测结果作为输出传输到下一个层次。通过这样的过程,神经网络可以完成非常复杂的非线性分类。线性回归拟合出的直线代表数据的真实值,而观测到的数据代表拥有误差的值。为了尽可能减小误差的影响,需要求解一条直线使所有误差的平方和最小。三类机器学习算法Machine learning algorithms非监督学习聚类降维三类机器学习算法Machine learning algorithms三类机器学习算法Machine learning algorithms强化学
7、习三类机器学习算法Machine learning algorithms第三部分Example code学习例子学习例子Example code疯狂的if else语句权重学习例子Example code步骤1:首先,将每个权重都设为首先,将每个权重都设为1.0步骤2:将每栋房产带入你的函数运将每栋房产带入你的函数运算,检验估算值与正确价格算,检验估算值与正确价格的偏离程度。的偏离程度。步骤3:不断重复步骤不断重复步骤2,尝试所有可尝试所有可能的权重值组合能的权重值组合。哪一个组。哪一个组合使得代价最接近于合使得代价最接近于0,它就,它就是你要使用的,你只要找到是你要使用的,你只要找到了这样的
8、组合,问题就得到了这样的组合,问题就得到了解决了解决!这就是经典的“梯度下降”法,机器学习用于不断迭代优化的过程https:/en.wikipedia.org/wiki/Gradient_descent第二部分:一元线性回归 本部分针对21线性回归 概念 线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y=wx+e,e为误差服从均值为0的正态分布 回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和
9、自变量之间是线性关系,则称为多元多元线性回归线性回归分析。22什么是回归分析 分析两种或两种以上变量关系的一种统计方法就是回归分析一个变量一个变量多个变量多个变量线性关系一元线性回归多元线性回归非线性关系一元非线性回归多元非线性回归那到底什么是线性?Y=b+aX,那么X和Y就是线性关系,因为X的增加量与Y的增加量成固定比例XYY=b+aX线性回归模型先从一个简单的例子入手,介绍几个概念下面这张图给出了2016年统计的某区域房屋成交均价与房屋面积之间的关系,其中每一个点都是一个具体的房屋面积和价格面积价格也许我们可以用一条直线大致拟合一下这些点的轨迹f(面积)线性回归模型面积价格三条直线中,哪一
10、条最符合这些点的规律呢?假设图上,每个点的坐标都是(x,y)每条直线对应的函数为f(x)那么|(f(x)-y)|最小的一条直线就是最符合这些点的规律的直线简单一点说,点到直线距离之和最短的直线,是最贴合这些点的规律的直线线性回归模型还是刚才那个例子,如果我想根据已经存在的房屋数据,预测某一个面积对应的价格,那么,我就需要推导出一条直线,然后根据这条直线进行预测。假设这条直线的函数f(x)=a0+a1x,我们可以叫它预测函数;已知的所有图上的点坐标为(xi,yi)下面我们要做的事情就是找到合适的a0、a1,使得|f(xi)-yi|有最小的值,我们将这个目标写作min|f(xi)-yi|,称为目标
11、函数我们可以将min|f(xi)-yi|转化一下,变为min(f(xi)-yi),因为如果,因为如果(f(xi)-yi)到达最小值,那么到达最小值,那么|f(xi)-yi|也会最小假设我们已知的房屋数据,有m组,我们一般会将目标函数再一次等价的变为min1/2m*(f(xi)-yi),我们用J(a0,a1)表示1/2m*(f(xi)-yi),所以目标函数变为了min J(a0,a1)这里的J(a0,a1)我们成为代价函数最后总结一下,那个房屋面积和价格的例子中,我们打算用预测函数f(x)=a0+a1x去预测任意面积的房屋价格所以,我们就是要寻找合适的a0、a1,使得代价函数J(a0,a1)最小
12、线性回归模型28我们已经了解了线性回归的目的,以及预测函数和代价函数的概念。下面,我们会进一步的了解,我们的代价函数是什么东西,为我们找到合适的a0和a1做充分准备。代价函数29定义:定义:在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学中,代价函数,又叫损失函数或成本函数,它是将一个或多个变量的事件阈值映射到直观地表示与该事件。一个优化问题试图最小化损失函数。目标函数是损失函数或其负值,在这种情况下它将被最大化。代价函数的意义1.代价函数J(a0,a1)的变量a0、a1,实际上是预测函数的参数2.回归分析,实际上就是找到一组a0、a1,使代价函数的值最小3.代价函数实际上可以
13、表示所有已知点到直线的距离之和代价函数的意义下面我给出一组已知的点,来看看预测函数和代价函数的关系(3,6)(2,4)(1,2)预测函数:y=x在这个例子里面,为了简化问题,我们将a0去掉了,所以预测函数成了y=a1x,首先,我们让a1=1根据代价函数的定义,J(1)=1/2m*(f(xi)-yi)=1/6*(1-2)+(2-4)+(3-6)=(1+4+9)/6=7/32.33所以,我们在右边的代价函数图上,描上一个点(1,2.33)xya1J(a1)(1,2.33)还是刚才的那个例子,我们看看,a1=2的时候,代价函数的值是什么(3,6)(2,4)(1,2)预测函数:y=2x首先,我们让a1
14、=2根据代价函数的定义,J(1)=1/2m*(f(xi)-yi)=1/6*(2-2)+(4-4)+(6-6)=(0+0+0)/6=0所以,我们在右边的代价函数图上,描上一个点(2,0)xya1J(a1)(1,2.33)(2,0)代价函数的意义代价函数的意义最后我们看看,a1=3的时候,代价函数的值是什么(3,6)(2,4)(1,2)预测函数:y=3x首先,我们让a1=3根据代价函数的定义,J(1)=1/2m*(f(xi)-yi)=1/6*(3-2)+(6-4)+(9-6)=(1+4+9)/62.33所以,我们在右边的代价函数图上,描上一个点(3,2.33)xya1J(a1)(1,2.33)(2
15、,0)(3,2.33)代价函数的意义有兴趣的话,可以多尝试几组,你会发现,其实代价函数的图像是这样的我们可以看到,这种形状的图像,是肯定会有一个最低点的,而且只有一个也就是说,我们的代价函数必然可以找到一个a1,使得J(a1)最小刚才的例子中,a1=2恰好就是这个最小值了a1J(a1)(1,2.33)(2,0)(3,2.33)代价函数的意义刚才,我们用的是简化以后的代价函数,只有a1。那么如果加上a0,代价函数的图像又是什么样的呢?a0a1J(a0,a1)这就是有a0和a1两个参数的时候代价函数的图像注意,已经是三维图像了但我们依然可以看到,它有一个最低点代价函数的意义在之前的例子中,我们探讨
16、了线性回归问题中,代价函数的图像如果你足够聪明,也许你已经发现,线性回归问题,我们可以归结为寻找这个图像的最低点的问题所以在接下来的课程中,我们会探讨如何找到代价函数的最低点一旦你找到了最低点,那么a0和a1就找到了,这样,预测函数也就找到了。最后需要说明的是,我们现在探讨的,是只有一个变量x的时候,也就是一元线性回归问题,多元的问题会在之后讨论。梯度降维法(也叫梯度下降法)一元线性回归分析一元线性回归分析梯度降维法解决什么问题假设y的值与n个因素有关,他们分别是x1、x2、x3.xn,且经过调研,我们已经掌握了m组实际值我们可以将他们的关系用函数y=a0+a1*x1+a2*x2+a3*x3.
17、+anxn进行拟合根据之前的结论,代价函数J(a0,a1,a2.an)=1/2m*(f(xi)-yi)那么我们就需要根据已知的m组值,找出一组(a0,a1,a2.an),让代价函数的值最小上面所说的梯度降维法,就是专门求解minJ(a0,a1,a2.an)问题的一种有效方法为了更直观地看到梯度降维法是如何工作的,我们接下来只看两个因素的问题,即J(a0,a1)问题梯度降维法工作原理思考:你可以把代价函数的图像,想想为群山而你在这群山中的任意一点你需要下到更低的地方,你会怎么做?梯度降维法工作原理思路:假设,我在点A,我会环顾一下四周看看哪个方向的高度比我所在点更低然后朝那个方向前进一小步,到点
18、B到了B点以后,继续刚才的操作,一步一步,慢慢的,我会发现我到了某个点,这个点四周的高度都比现在的高度要高,这个时候就可以停止了这就是梯度降维法的基本思路AB梯度降维法实现在这里,我要先给出结论,梯度降维法的实现方式如下(伪代码)针对代价函数J(a0,a1),我们要找到一个任意的初始点(a0,a1)设置两个变量temp0=0;temp1=0;这两个变量我们接下来会用到然后循环下面这一段temp0=temp1=a0=temp0a1=temp1用新的a0和a1计算一下代价函数值直到代价函数值不再变化或是变化很小,可以忽略不计的时候,就说明我们已经找到了需要的a0和a1),J(aaaa1011),J
19、(aaaa1000注意:有一点很容易出错,a0和a1一定要同时更新,否则,如果先更新a0,再对a1求偏导的时候,此时的a0是已经更新过的,偏导求的就不对了,所以一定要同时更新,切记。梯度降维法实现 看到上面的结论,是不是有点晕?没关系,我们慢慢来,上面的一大串结论里面,对于没有学习过高等数学的人来说,最麻烦的也许就是那个求偏导,完全搞不懂是什么,没关系,那个值我之后会给出,会求偏导的,可以自己算一下。下面,我就介绍一下那个结论中的几个概念0,1)(i ),J(iaaaaa10ii学习速率(下山的步子有多大)方向(朝什么方向走)刚才的例子中,不断的循环过程,就是在不断的寻找下一步往哪走,而这“下
20、一步”就是由方向和步子大小决定的,学习速率就好比下山时的步子大小,而那个偏导就是我们下山的方向,就这样,我们会一步一步走到最低点。这是你可能会问,为什么方向会是两个?一个对a0求偏导,一个对a1求偏导。下面我们来说说导数的含义导数的含义我们先把代价函数简化一下,看看一个变量的代价函数图像。在上一节中我们知道了,J(a1)的函数图像如下a1J(a1)假设我们的初始点在A我们利用梯度降维法,就需要做下面这件事来找到点B我们可以看到,新的a1实际上是原来的值减去一个值减去的这个值由学习速率和一个导数组成这个导数的意义,实际上是点A的斜率我们沿着斜率的方向,就可以保证下一步的值肯定比这一步要小,我们可
21、以看到,我们沿着斜率前进了,得到了一个新的a1,从而得到了新的点,这个点离我们的最低点更近了这个时候你可能会想明明是减去一个值,为什么a1会向右跑了呢?别忘了斜率的含义,你看看这条直线的方向,此时的斜率是负数,减去一个负数,所以值增加了。)J(1aaaa111ddAB导数的含义我们再来看看,如果我的上一个点不在最低点的左边,而在最低点的右边,会是什么情况呢?a1J(a1)假设上一个点在A我们利用梯度降维法,就需要做下面这件事来找到点B这种情况下,A的斜率变为了负值,我们新的点依然会朝着最小点的方向前进,这就是导数(斜率)的神奇之处。它保障了我们的算法永远向着目标前进到目前为止,我们看到了斜率可
22、以在方向上保证我们永远向着最低点前进,下面,我们看看这个斜率对我们步子的大小有什么作用。)J(1aaaa111ddAB导数的含义实际上,随着我们的计算越来越接近最低点,斜率可以保证我们的步子越来越小,尽量不越过最低点a1J(a1)假设我们从A点出发,到了B点,经过几轮循环以后,我们的数值已经到达了C点C点的斜率已经明显发生了变化,我们可以看到,C点切线的斜率与之前相比,已经变得更小了,这时,对于相同的学习速率来说,每次的变化都更小了所以,越接近最低点,步子的变化会越来越小,是我们尽量不会越过最低点。注意,这里说的是尽量不越过,如果你的选择得很大,还是会越过,还会出现一只无法到达最低点的情况,不
23、过我们可以先不要关心这一点,在后面我会讲到如何选择合适的ABC导数的含义之前的例子,为了便于理解,我用的是只有一个参数的J(a1),当有两个参数的时候,图像是三维的,所以在确定下山方向的时候,要分别对a1和a2求偏导,得到两个方向上的增量,这样才可以确定出下一步的位置。你们看,是不是和经典物理里面求合力的情况有点像?实际上,梯度降维法可以用在更一般的情况,有n个参数的时候也是一样的求法,只不过为了让大家可以尽量不去理解超过三维的内容,所以我用了一个参数和两个参数的情况作为例题讲解偏导的结果之前的公式,我们复习一下0,1)(i ),J(iaaaaa10ii求出偏导以后的梯度降维法如下:然后循环下
24、面这一段a0=temp0a1=temp1用新的a0和a1计算一下代价函数值直到代价函数值不再变化或是变化很小,可以忽略不计的时候,就说明我们已经找到了需要的a0和a1miiiyxfm1)(1*atemp00 xyximiiifm*)(1*1atemp11注意:这里的xi和yi就是我们做回归分析时,事先知道的点的实际值,m则是这些已知值的个数。补充说明:对于这种根据已知的值,进行学习的过程,我们叫做监督学习。而这些已知的值,我们叫做训练集。就如字面意思,我们的目的,是根据已知的数据,将算法训练成更优秀的算法。从而达到计算机的智能学习。关于一点说明前面为了讨论梯度降维法如何工作,所以用的函数图并不
25、真实,对于那种“崇山峻岭”的图,你会发现,用梯度降维法,你可能只到达了一个局部最低点,而不是真正的最低点,那我们用梯度降维法的时候,是不是会有这种局限性呢?很幸运的,不会!因为线性回归问题的代价函数,不可能有局部最低点,他们的图像,都是弓形图,这一点我之前提到过,所以不用担心这一点。a0a1J(a0,a1)本章节结束语这一节,我们学习了如何使用梯度降维法解决两个参数的线性回归问题,如果你顺利看到这里,并且掌握了请先“沾沾自喜”一下,因为你已经踏入了机器学习的大门,不过这只是开始,后面的路还长。总结与思考机器学习的基本思想是什么?请举出至少3种机器学习的类型一元线性回归中,预测函数、目标函数、代价函数它们的目的和意义是什么?梯度下降法是用来求解什么的?梯度下降法怎么求解最优目标的?50The end!51