Supervised Machine Learning: Regression and Classification
机器学习-监督学习:回归和分类
开始学习
吴恩达的机器学习课程终于更新了!!!想当初应该是大二的时候,看了吴恩达的课程,对机器学习有了初步的了解。当时听的不是很明白,英语看不太懂,一些给了充分提示的代码也写不太好,也就是入了一个门而已。这次有一些时间,正好捡一捡机器学习的基础知识,推一推那些一直在调包的数学公式。注重记录!
课程简介
In the first course of the Machine Learning Specialization, you will:
• Build machine learning models in Python using popular machine learning libraries NumPy and scikit-learn.
• Build and train supervised machine learning models for prediction and binary classification tasks, including linear regression and logistic regression
The Machine Learning Specialization is a foundational online program created in collaboration between DeepLearning.AI and Stanford Online. In this beginner-friendly program, you will learn the fundamentals of machine learning and how to use these techniques to build real-world AI applications.
This Specialization is taught by Andrew Ng, an AI visionary who has led critical research at Stanford University and groundbreaking work at Google Brain, Baidu, and Landing.AI to advance the AI field.
This 3-course Specialization is an updated and expanded version of Andrew’s pioneering Machine Learning course, rated 4.9 out of 5 and taken by over 4.8 million learners since it launched in 2012.
It provides a broad introduction to modern machine learning, including supervised learning (multiple linear regression, logistic regression, neural networks, and decision trees), unsupervised learning (clustering, dimensionality reduction, recommender systems), and some of the best practices used in Silicon Valley for artificial intelligence and machine learning innovation (evaluating and tuning models, taking a data-centric approach to improving performance, and more.)
By the end of this Specialization, you will have mastered key concepts and gained the practical know-how to quickly and powerfully apply machine learning to challenging real-world problems. If you’re looking to break into AI or build a career in machine learning, the new Machine Learning Specialization is the best place to start.
什么是机器学习
- 在谷歌、必应或百度上进行网络搜索会出现想要的答案。这是因为他们的机器学习软件已经解决了如何对网页进行排名。
- 上传照片到Instagram或Snapchat,并且想标记我的朋友,让他们可以看到他们的照片。这些应用程序可以识别你照片中的朋友,并给他们贴上标签。
- 刚刚在视频流服务上看完一部星球大战电影,流媒体服务可能会使用机器学习来推荐您可能喜欢的内容。
- 用语音短信在手机上写短信时,手机会做出你希望的行为
- 收到一封赢了一百万美元的电子邮件,你的电子邮件服务很可能会将其标记为垃圾邮件。
- 除了消费者应用之外,人工智能也在迅速进入大公司和工业应用。机器学习已经有望优化风力涡轮机发电,开始进入医院,帮助医生做出准确的诊断,将计算机视觉应用到工厂中,以帮助检查生产线中的产品是否有任何缺陷。
- 机器学习是一门让计算机在没有明确编程的情况下学习的科学-1950
监督学习
监督学习是学习从输入到输出标签的一个函数映射,主要特征是给予算法示例去学习,也就是从被给予的正确答案中学习。
监督学习的基本类型有两种:回归和分类
回归任务是在大量的数值空间中,对某一个具体数值进行预测
分类任务是在给定的数值空间中(如0和1),对某一个具体数据进行预测
符号表示方法
表示输入的变量或者特征
表示输出的实际目标变量,表示预测的变量
表示训练样本总数
表示一个训练样本,表示第个训练样本
线性回归的机器学习模型可以表示为:
损失函数
度量预测值与实际目标值之间的差异
线性回归中使用的平方损失函数:,将机器学习模型代入,则表示为
目标就是要找出最合适的和,使得最小
使用梯度下降算法:
,,为学习率
梯度下降在更新的时候需要同时更新和,因此在计算的过程中,首先要计算和,然后再相减,保证同步更新。
具体计算:
学习率的选择:
如果学习率过小,梯度下降算法运行会比较慢
如果学习率过大,梯度下降算法可能运行过头,最终导致算法不能收敛
如果使用固定的学习率,梯度下降算法运行到局部最小值后不会再变化。因为到达局部最小值的附近后,梯度下降的每一步会变得更小,更新的值也会逐渐变小。
通过损失值随着迭代次数的变化可以看出一些错误:
- 随着迭代次数增加,损失值波动上升下降——代码有问题或者学习率过大
- 随着迭代次数增加,损失值一直上升——学习率过大或代码有问题(可能每一次的计算符号反了)
- 如果很长时间不收敛,可能是学习率太小了
将学习率调整足够小,损失值在每一次迭代的过程中都会减小
多元线性回归
表示第个特征,表示特征的数量
表示第个训练样本的全部特征,表示第个训练样本中的第个特征
令,,则
可以通过Numpy的向量化进行计算
特征缩放
当具有不同的值范围的不同特征时,可能会导致梯度下降算法运行较慢
需要对不同的特征重新缩放到相同或相似的范围
均值归一化:,可以缩放到的范围内
Z-score归一化:
逻辑回归(分类问题)
sigmoid函数:
逻辑回归:,用概率的形式表达:
不同的决策边界:
逻辑回归损失函数:
简化写法:
欠拟合和过拟合
欠拟合:函数对于训练集的拟合效果不好——高偏差(high bias)
过拟合:函数对于训练集的拟合效果好,对于测试集的效果不好——高方差(high variance)
避免过拟合的方法:
- 收集更多的训练数据
- 从全部的特征中挑选最相关的特征进行训练
- 正则化——减小某一参数对拟合函数的影响
正则化
通过将损失函数加上特别大的常数与某一参数的乘积,使得这个参数在优化的过程中变得非常小
例如回归问题:
由于不知道哪些特征是比较重要的,哪些特征不重要,因此加上参数平方求和的正则项,让优化算法自行选择。
对于线性回归来说:
进一步推导:
因此正则项的加入实际上相当于将参数略微减小