机器学习 学习记录(一)
来源:互联网 发布:山东大学怎么样知乎 编辑:程序博客网 时间:2024/05/22 13:52
机器学习 学习记录
我将用三篇文章分别阐述以下三个方面
1. Linear Regression
2. Logistic Regression
3. Deep Learning
在具体阐述各个方面之前,我们先要明确一个基本问题:What is machine learning?
其实机器学习的概念在很早之前就被提出,在近几年再一次火了起来。本质上来说机器学习无非就是让计算机从你的输入中提取出来你想要的结果。比如,我想要一个身高和体重之间的关系模型,然后利用这个模型对某些数据进行预测(给一个人身高就能输出可能的体重)。为了得到这个模型,我需要事先收集一些数据,利用这些数据对机器进行训练,让机器找到一个最好的模型。
到这里,机器学习的概念大致就讲清楚了。那么问题又来了:How to make machine learn by itself ?
通过上面的阐述,你其实也能了解机器学习并不是完全靠着机器自己去学习,事先我们要给机器明确学习的方法,以及学习的具体内容。
所以在这里要引出机器学习的一般步骤(我们要做那些事情):
1.Model :我们首先需要给机器设定一个模型。模型在本质上就是一个函数集合。机器要做的就是在这个庞大的函数集合里寻找一个合适的函数使得输入数据通过这个函数之后能够得到尽量符合需求的输出
2.Goodness of Model:这一步,我们需要设定一个方法,让机器能够利用这个方法寻找那个我们想要的函数
3.Find the best Function:找一个最优秀的函数
下面介绍的就是具体内容啦
1.Linear Regression
继续上面举过的例子,我现在希望机器帮我找到人的身高和体重的关系。在这之前我做了个调研(假装做了),得到了以下数据:
Height {x:[140,165,170,175,172,171,180,103]}Weight {y:[40,45,56,65,66,59,81,30]}
上面的数据好像是有一定的线性关系的(这里应该有图)
所以我们建的模型应该是线性的:y=w*x+b,那么机器学习的第一步我们就做完了,这一步就是给机器限定了一个函数集合,机器只能从这个函数集合里面去找一个合适的函数。
那第二步就是找一个方法,让机器能够按照这个方法去找一个最合适的函数
我们定义了一个Loss Function用来衡量误差
显然,我们希望这个误差越小越好,误差越小,所拟合出来的函数就越能反映出我们所输入训练数据之间的线性关系。
所以现在的问题就变成了,找这样一组
Gradient Descent:
对于上面的Loss Function ,我们可以把它看作为关于
我们看下面的图
图片引用自李宏毅(台湾大学)《机器学习》
这张图是在一维函数上去考虑的。事先我们是不知道极值点到底在哪的,于是我们随机设定了一个点
如果是二元函数,表达如下:
这里的
这时候需要注意以下两个问题:
1.Gradient Descent所找到的点并不一定是最小值点,比如下面图片中第三个球球所表示的点就不是极小值点(这个点导函数为0但不是极值点),第四个球球所表示的点也不是最小值点,因为它仅是一个极小值点,但在整个定义域上去看的话,它不是最值点
2.Gradient Descent并不总能找到导数为0的点,比如下面图片第二个球球所表示的点,如果这个时候导函数非常非常小,你的learning rate又设的比较小,这个时候每次参数更新的速度就比较低。导致卡住,可能你的程序循环都结束了,也没能找到导数为0的点
在这里附上Regression的小demo
下面我们将以二元函数为例从数学角度去探讨一下Gradient Descent方法的正确性
上面的这个图描述了一个二元函数
为了求得这个函数的最小值点,我们先在图像上任意找得一点
拉格朗日余项有点忘了,等我想起来再补上QAQ
由于余项是关于
从上式可以看出
我们要做的就是求解这个内积的最小值。我们知道两个向量做内积,当两个向量反向的时候内积最小。所以应该使
这不就是我们所说的Gradient Descent方法的最终表达式吗?
所以到这里我们就验证了Gradient Descent方法在数学上的正确性
- 机器学习记录一
- 机器学习 学习记录(一)
- 机器学习 学习记录
- 机器学习记录
- 机器视觉学习记录
- 机器学习网址记录
- 机器学习第一阶段记录
- 斯坦福机器学习记录
- 机器学习笔记一
- 机器学习一
- 机器学习笔记一
- 机器学习资料一
- Spark 机器学习《一》
- 机器学习总结一
- 机器学习理解(一)
- 机器学习(一)
- 机器学习 笔记一
- 一、机器学习介绍
- P1349 广义斐波那契数列(矩阵的应用)
- 欧拉角(Euler angles)
- IT行业风投
- SpringBoot入门-6(利用jpa连接hibernate,并进行生成表,对表的增加,删除,查询操作)
- 对so进行section加密后,提示.dynamic section header was not found
- 机器学习 学习记录(一)
- spring mvc 5.0 HelloWorld 01
- 从零开始教你训练神经网络(附公式&学习资源)
- Window Server 2003默认允许同时远程连接数为2,超过2个连接无法连接成功
- 使POI进行Excel数据的导出
- pip upgrade批量更新过期的python库
- Arcgis Javascript中geometryEngine报错’hq‘of undefined的解决方法
- 学习Ajax—入门篇03
- git 小技巧