目录
一、绪论
1.1 欢迎
Machine Learning
- Grew out of work in AI
- New capability for computers
Examples:
- Database mining
Large datasets from growth of automation/web.
E.g., Web click data, medical records, biology, engineering - Applications can’t program by hand.
E.g., Autonomous helicopter, handwriting recognition, most of Natural Language Processing (NLP), Computer Vision. - Self-customizing programs
E.g., Amazon, Netflix product recommendations - Understanding human learning (brain, real AI).
1.2 机器学习是什么?
机器学习定义有很多,广为人知有以下两条:
- Arthur Samuel (1959). Machine Learning: Field of study that gives computers the ability to learn without being explicitly programmed.
举例:西洋棋 - Tom Mitchell (1998) Well-posed Learning Problem: A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.
一句话总结:通过学习经验E后,任务T上的性能度量P有所提升
举例:西洋棋
E:下很多棋积累的经验
T:下棋
P:与新棋手下的胜率
举例:垃圾邮件
E:查看哪些邮件被识别为垃圾邮件,哪些是非垃圾邮件
T:将邮件分类
P:对新来的邮件,正确分类的比例
机器学习分类:
- 监督学习
- 非监督学习
其它:强化学习、迁移学习、推荐系统等
还会关注:机器学习算法的最佳实践
1.3 监督学习
举例:房价预测(回归问题---连续值)
举例:乳腺癌(分类问题---离散值)
举例:乳腺癌(多个特征)
其实,现实中,特征的个数非常大,怎么处理?支持向量机SVM中有个巧妙方法
一句话总结:监督学习是数据集中的每个样本,都有确定值的标签。
回归问题:函数模型拟合样本数据,预测值是连续值。
分类问题:函数模型分割样本数据,预测值是离散值。
1.4 非监督学习
聚类算法是一种典型的非监督学习算法。它会把数据分成不同的簇。
举例:google新闻会把相同主题的新闻聚集到一起
举例:一些应用
举例:经典的鸡尾酒会问题
一句话总结:非监督学习就是数据集中的样本没有标签。它是一种学习策略,给算法喂大量数据,让算法为我们从数据中找出某种结构。
最佳实践:先用octave/matlab快速实现算法模型,确定算法正常工作后,再用迁移到python/c++/java环境上。(硅谷大公司都这么做)
二、单变量线性回归
机器学习算法的三板斧:
- 模型函数
- 代价函数
- 最小化代价函数(梯度下降法)
2.1 模型表示
还是以房价预测为例:
训练数据集的一些说明:
注:
- m:表示训练集样本数量
- X:表示输入特征集合
- Y:表示输出特征
:表示训练集中第i个样本
一句话总结:
对于房价预测问题,从最简单的模型入手,单变量线性回归模型函数是:
2.2 代价函数
\
这里的代价函数是:
一句话总结:对于回归问题,最常用的代价函数是均方误差:
我们的目标是最小化代价函数,从而得到模型函数,用于预测。
2.3 代价函数的直观理解I
为了简化,更直观的理解,本节我们只考虑其它值的情况。
上图中,当时,对于图中的3个训练数据集,此时
接下来,看看时,
:
那么,不同的的取值对应不同的
值,
值组成的函数就是代价函数
上图中,从右则的代价函数图形可以看出,当时,代价函数J取最小值,再看下左侧模型图,
的模型,完美的拟合了3个训练集点
2.4 代价函数的直观理解II
2.3节中,只考虑了一个参数的情况,本节讨论两个参数的情况。
当改变时,会得到
的值,这些J值,得到函数图像是一个曲面,如下图:
下面不用三维空间中的曲面来描述,而是用等高图来表示。等高图可以简单理解为,从上图中“碗口”方向向下看,投影到平面上的圆或椭圆,圆线上的值,即J是相等的。
等高图的两点说明:
- 同椭圆线上的代价函数值是相等的
- 最内层的圆心是J的最小值点
如上图中红叉这个点,对应,其模型函数如左图所示,显然不是很好的拟合。
等高图中最内层的圆心是J的最小值,图中红叉点离最内层圆心比较远,也说明了此点对应的模型效果不好
这个图中红星点已经非常接近J的最小值了,但是还不是最小值,此点的模型效果明显要好很多。
像这种画图像并不是一个找出J最小值的好办法,原因有两点:一是非常多特征参数时,没办法可视化代价函数;二是这种办法很笨。下一节介绍最小化代价函数的有效方法。
2.5 梯度下降
梯度下降是最小化代价函数比较常用的一种方法。
梯度下降存在多个局部最小值点。可以选择不同起始点,得到多个局部最小值,然后选择最小的那个。
本着重要事情说三遍的原则:
一图看懂梯度下降算法!
一图看懂梯度下降算法!!
一图看懂梯度下降算法!!!
好了,说完了,直接上图:
2.6 梯度下降的直观理解
为了简化说明,下面讨论只有一个参数的情况:
来看偏导部分:
对于一个参数的代价参数,偏导即导数,导数即斜率。上图的上半部分,在最小值点的右边,和
都是正数,那么
是减小的,即
是向最小值点方向(左移)移动的。同理,上图的下半部分,
也是向最小值点方向(右移)移动的。
来看学习率:
一句话总结:
太小收敛慢,
太大不收敛
- 即使
固定不变,由于偏导部分越来越小(斜率越来越平),
更新幅度自动越来越小
- 取不同起始点,得到多个局部最小值,取最小的那个
2.7 梯度下降的线性回归
在机器学习中,通常不太会给算法起名字,这里的“批量梯度下降”是指在梯度下降的每一步中,都用到了所有的训练样本。也就是说每一步求和项中的m,都是全部训练样本。因此,批量梯度下降法这个名字说明了我们需要考虑所有这一"批"训练样本,而事 实上,有时也有其他类型的梯度下降法,不是这种"批量"型的,不考虑整个的训练集,而是每次只关注训练集中的一些小的子集 。
代价函数最小值问题,也可以用正规方程求解,但是在大数据量时,梯度下降更适合。
泛化的梯度下降算法,使梯度下降更强大
三、线性代数回顾
略
参考:点击打开链接