作者 | Peter
编辑 | AI有道
0. 引言
吴恩达(Andrew Ng),毫无疑问,是全球人工智能(AI)领域的大 IP!然而,吴恩达从最早的 CS229,到后来的 deeplearning.ai 深度学习专项课程,还有其它 AI 资源,大神发布的 AI 知名课程和资料非常多。
说到吴恩达优秀的 AI 课程,首当其冲的就是几年前在 Coursera 上发布的《Machine Learning》课程!
这门《Machine Learning》评分高达 4.9 分,共有超过 300w 人注册学习。其火爆程度可想而知!
课程主页:
https://www.coursera.org/learn/machine-learning/
课程特色:
这门课基本涵盖了机器学习的主要知识点:线性回归、逻辑回归、支持向量机、神经网络、K-Means、异常检测等。课程中没有复杂的公式推导和理论分析,让机器学习初学者能够快速对整个机器学习知识点有比较整体的认识,便于快速入门。
完整中文笔记(pdf、word、markdown版本)、中英文字幕离线视频、复现的python作业:
https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes
在线笔记:
http://www.ai-start.com/ml2014/
课后作业(Python 版本):
https://github.com/nsoojin/coursera-ml-py
课后作业(Jupyter 版本):
https://github.com/kaleko/CourseraML
鉴于这门课程非常适合入门,在接下来的一段时间中,我们将推出吴恩达《Machine Learning》的系列笔记,方便大家配套学习!
今天带来第一周课程的笔记:监督式学习和非监督式学习。
主要内容:
- 监督学习和无监督学习
- 单变量线性回归问题
- 代价函数
- 梯度下降算法
1-1. 监督学习Supervised Learning
利用监督学习预测波士顿房价(回归问题)
- 大多数情况下,可能会拟合直线
- 有时候用二次曲线去拟合效果可能会更好的
什么是回归问题?
在监督学习中,我们给学习算法一个数据集,比如一系列房子的数据,给定数据集中每个样本的正确价格,即它们实际的售价然后运用学习算法,算出更多的答案,我们需要估算一个连续值的结果,这属于回归问题
利用监督学习来推测乳腺癌良性与否(分类问题)
- 横轴表示肿瘤的大小
- 纵轴表示1表示恶性,0表示良性
什么是分类问题?
机器学习的问题就在于,估算出肿瘤是恶性的或是良性的概率,属于分类问题。
分类问题指的是,我们试着推测出离散的输出值:0或1良性或恶性,而事实上在分类问题中,输出可能不止两个值。
比如说可能有三种乳腺癌,所以希望预测离散输出0、1、2、3。0 代表良性,1 表示第1类乳腺癌,2表示第2类癌症,3表示第3类,也是分类问题。
应用
- 垃圾邮件问题
- 疾病分类问题
1-2 无监督学习Unsupervised Learning
- 监督学习中,数据是有标签的
- 无监督学习中,数据是没有标签,主要提到了聚类算法
应用
- 基因学的理解应用
- 社交网络分析
- 组织大型计算机集群
- 细分市场
- 新闻事件分类
2. 单变量线性回归Linear Regression with One Variable
房价问题
横轴是不同的房屋面积,纵轴是房屋的出售价格。
监督学习:对于每个数据来说,给出了正确的答案。在监督学习中,我们有一个给定的数据,叫做训练集training set
回归问题:根据之前的数据,预测出一个准确的输出值。
分类问题:预测离散的输出值,例如寻找癌症肿瘤,并想要确定肿瘤是良性的还是恶性的,属于0/1离散输出的问题
监督学习工作模式
学习过程解释:
- 将训练集中的房屋价格喂给学习算法
- 学习算法工作,输出一个函数,用h表示
- h表示hypothesis,代表的是学习算法的解决方案或者函数。
- h根据输入的x值得到y值,因此h是x到的y的一个函数映射
- 可能的表达式:hθ(x)=θ0 θ1x,只有一个特征或者出入变量,称为单变量线性回归问题
3. 代价函数cost function
代价函数也称之为平方误差函数,平方误差代价函数。
在线性回归中我们有一个像这样的训练集,m代表了训练样本的数量,比如 m=47。而我们的假设函数,也就是用来进行预测的函数,是这样的线性函数形式:hθ(x)=θ0 θ1x。
函数解释
- m:训练样本的个数
- hθ(x)=θ0 θ1x:假设函数
- θ0和θ1:表示两个模型参数,即直线的斜率和y轴上的截距
建模误差
建模目标
- 图中红色的点表示真实值yi,真实的数据集
- h(x)表示的是通过模型得到的预测值
- 目标:选择出可以使得建模误差的平方和能够最小的模型参数
代价函数直观解释1
本例中是通过假设θ0=0来进行,假设函数h(x)是关于x的函数,代价函数J(θ0,θ1)是关于θ的函数,使得代价函数最小化
代价函数直观解释2
通过等高线图来进行解释。通过绘制出等高线图可以看出来,必定存在某个点,使得代价函数最小,即:可以看出在三维空间中存在一个使得J(θ0,θ1)最小的点。
4. 梯度下降Gradient Descent
思想
梯度下降是一个用来求函数最小值的算法。
- 背后的思想:开始随机选取一个参数的组合(θ0,θ1,…,θn)计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。
- 持续这么做,直到一个局部最小值(local minimum),因为并没有尝试完所有的参数组合,所以不能确定得到的局部最小值是否是全局最小值(global minimum)
批量梯度下降batch gradient descent
算法公式为
特点:需要同步更新两个参数
梯度下降直观解释
算法公式:
具体描述:对θ赋值,使得J(θ)按照梯度下降最快的方向进行,一直迭代下去,最终得到局部最小值。
学习率:α是学习率它决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大。
- 学习率太小:收敛速度慢需要很长的时间才会到达全局最低点
- 学习率太大:可能越过最低点,甚至可能无法收敛
梯度下降的线性回归GradientDescent-For-LinearRegression
梯度下降是很常用的算法,它不仅被用在线性回归上和线性回归模型、平方误差代价函数。将梯度下降和代价函数相结合。
梯度下降VS线性回归算法
批量梯度下降算法
对之前的线性回归问题运用梯度下降法,关键在于求出代价函数的导数,即:
这种梯度下降的算法称之为批量梯度下降算法,主要特点:
- 在梯度下降的每一步中,我们都用到了所有的训练样本
- 在梯度下降中,在计算微分求导项时,我们需要进行求和运算,需要对所有m个训练样本求和
至此,第一周的课程笔记完毕!