day1-->day7| 机器学习(吴恩达)学习笔记

一、监督学习(Supervised learning)

给予每一个Input-->对应一个output

1.1:样例:

  • 也就是针对每一个输入样例input,我们都给他制定一个function,使得它有确定的Output映射输出。

1.2:两大监督学习经典样例:

1)、回归算法(Regression Algorithm)

利用线性回归来进行预测
  • 它学习从无限多的可能数中预测数字

2)、分类算法(Classification Algorithm)

根据我们所提供的"映射规则"来进行"优/劣"的分类
  • 它对一个类别进行预测,所有的输出都是一小组

1.3)、监督学习总结(Supervised learning Summarize)

二、无监督学习(Unsupervised learning)

  • 对于每一个Input,我们不对它给予任何"标签",我们仅仅是想要找到一些"有趣"的数据
  • 恰恰相反,对于每个输入给出,我们要求机器自己弄清楚什么是"有趣"的,或者对于这个特定的数据集,找出这个数据中可能含有的什么模式结构

2.1:三大无监督学习经典样例:

1):聚类算法(Clustering Algorithm)

获取没有标签的数据并且尝试将他们自动分组到集群当中
  • 例如谷歌新闻,它就是每天查看互联网上的数十万新闻文章,并且把相关文章组合在一起
  • 在这个样例中,没有任何人告诉机器去查找包含pandastwinzoo这个词的文章,因为新闻话题每天都在变化,相反,算法必须在没有监督的情况下自行计算出今天的新闻集群是什么
  • 这也就是所谓的用户分类,再针对不同的组别,进行不同的服务

2):异常检测(anomaly detection)

---用来检测异常事件---,"在金融量化中",针对异常交易进行发现/解决

3):降维(dimensionality reduction)

可以用来将一个大数据集神奇地压缩成一个小得多地数据集,同时丢失尽可能少的信息

2.2:无监督学习总结:

在无监督学习中,数据仅仅带有输入x,而没有输出标签y,并且算法必须在数据中去寻找一些模式/结构。

三、线性回归模型(linear regression )

  • 这属于监督学习

    也就是根据我们的数据集,训练出一条线性方程,来进行数据的预测

  • PS:(x^(i)^,y^(i)^)表示第i组测试样例

3.1:线性回归模型的训练步骤

1)、统计训练数据集(training set)

2)、学习算法模型

3)、训练函数模型(function)进行预测或估计 ( y − h a t y-hat y−hat表示预测值)( y y y表示真实值)

 输入size(input)--> 函数func-->预测值 price(estimated)

3.2:如何表示 f f f函数(在线性中)

  • 和一次函数基本一致

四、代价函数(cost function)

用来度量训练优/劣的的运行情况

4.1:代价函数公式

  • 1、对于线性回归方程 f ( x ) = w x + b f(x)=wx+b f(x)=wx+b,我们需要做的是选择wb的值,以便得我们从f获得的直线以某种方式很好的拟合数据
  • 2、因此,我们将构造一个成本函数来衡量训练函数的优/劣
  • 注意:此处的1/2只是为了后面的计算好算而乘上的一个常数

4.2:代价函数理解分析

  • 1、为了简便理解代价函数,我们对model关系f进行简化
  • f ( x ) = w x + b − − − > f ( x ) = w x f(x)=wx+b--->f(x)=wx f(x)=wx+b−−−>f(x)=wx
  • 此时,我们可以构造出代价函数 J ( w ) J(w) J(w)的函数图像

    此时,我们可以发现当 w = 1 w=1 w=1时, J ( w ) = m i n i m i z e = 0 J(w)=minimize=0 J(w)=minimize=0,我们可以成功找到最恰当的训练模型😄

4.3:可视化代价函数

首先,让我们回顾一下目前位置所用到的公式
  • 在 4.2 4.2 4.2中,我们令 b = 0 b=0 b=0来观察代价函数,在 4.3 4.3 4.3中,我们来分析完全的model函数
    f ( x ) = w x + b f(x)=wx+b f(x)=wx+b
  • 函数图像为:(因为有两个input所以变成了三维)
  • 把这个三维图像进行切片,可以得到它的二维简化表示,此时,我们可以非常清晰的看到训练模型的情况

4.4:可视化举例:

我们来看几组样例来观察这两个图像的关系,可以清晰看到何时训练效果最佳




可以看到下图训练效果最佳

五、梯度下降

在"四"中,我们找到了最佳的训练模型,如果我们有一种更系统的方式来找到"w'和"b"的值,
这会导致更小的成本,事实证明,"梯度下降"可以做到这一点

5.1:梯度下降的概念

在"四"中,我们利用图像来进行推测,现在,让我们来重新审视这个问题

1):其实,我们所需要做的只是对 w w w和 b b b初始值的预测(因为在线性回归中,初始值并不重要,我们我们可以把他们都设置为 0 0 0来进行操作)

2):使用梯度下降算法,我们要做的是,我们每次都稍微改变参数 w w w和 b b b的值,以尝试降低成本 j j j,直到希望 j j j稳定或者接近最小值。

5.2:梯度下降的可视化

让我们来观察一下,梯度下降的过程中都做了什么操作

1):此时,你处于一个极大值,你想要尽快的到达一个极小值点

2):首先,你将旋转360度,然后问自己,我想要尽快下山,我该往某个方向走一小步?

3):不断重复这个操作,我们可以迅速到达一个局部最小值,这个过程,就是梯度下降

5.3:梯度下降的实现

梯度下降的实现其实就是利用不断增大/减少"w","b"的值,使得"w","b"的值最符合条件

1):让我们来看看公式

  • 注意:此时 w , b w,b w,b要同时变化,否则会导致 b b b计算时, w w w已经发生了变化,这会使得公式不一致
  • 让我们重新回到公式,看看每个变量都是什么意思,我们先把 w w w拎出来观察它的图像

2):观察 J ( w ) J(w) J(w)的图像,我们可以发现偏导的奇妙之处,可以发现无论此时, w w w是在min的右边/左边,我们减去 ( − ) (-) (−)偏导值都会使得 w w w往正确的方向移动!!!

3):不仅如此,当 J ( w ) − > m i n J(w)->min J(w)−>min时,函数变得平缓,此时,导数的绝对值也变得小!!

5.4:学习率

学习率过大/过小都会影响训练的效率

1):如果学习率非常小

  • 此时,训练的效率变得非常低,使得梯度下降的过程变得非常漫长

2):如果学习率非常大

  • 此时,可能会导致无法达到最小值min,甚至有可能变得发散

3):局部最小值

当函数不是凸函数时局部最小值!=最小值
  • 当 w − > m i n w->min w−>min时,会发现此时 w w w不再变化,即找到了局部最小值(极小值)

六、用于线性回归的梯度下降

我们已经学习了"平方误差函数""梯度下降""线性回归",现在让我们把他们串起来拟合一个模型

6.1:用于线性回归的梯度下降的公式推导

  • 联立公式我们可以得到如下公式

1):让我们来推导一下公式(此处会解释为什么会有 1 / 2 1/2 1/2)

2):此时, w w w和 b b b仍然需要同时更新

七、运行梯度下降

让我们来观察一下当我们为线性回归运行梯度下降时,会发生什么


可以发现同样也可以达到 J ( w ) J(w) J(w)的最小值min

7.1:批量梯度下降(Batch gradient descent)

  • 指的是再梯度下降的每一步中,我们都在查看所有的训练示例,而不仅仅是训练数据的一个子集。
相关推荐
GIS小小研究僧7 分钟前
PostGIS笔记:PostgreSQL 数据库与用户 基础操作
数据库·笔记·postgresql
Milkha2 小时前
FunPapers[1]: GBDT和DNN强强联手,表格预测新突破!
决策树·机器学习·论文笔记
好评笔记3 小时前
多模态论文笔记——VDT
论文阅读·深度学习·机器学习·大模型·aigc·transformer·面试八股
好评笔记3 小时前
多模态论文笔记——ViViT
论文阅读·深度学习·机器学习·计算机视觉·面试·aigc·transformer
梦云澜3 小时前
论文阅读(五):乳腺癌中的高斯图模型和扩展网络推理
论文阅读·人工智能·深度学习·学习
王磊鑫3 小时前
计算机组成原理(2)王道学习笔记
笔记·学习
汉克老师4 小时前
GESP2024年3月认证C++六级( 第三部分编程题(1)游戏)
c++·学习·算法·游戏·动态规划·gesp6级
东京老树根5 小时前
Excel 技巧21 - Excel中整理美化数据实例,Ctrl+T 超级表格(★★★)
笔记·学习·excel
CPU NULL6 小时前
新版IDEA创建数据库表
java·数据库·spring boot·sql·学习·mysql·intellij-idea
jacob~7 小时前
c++学习第十二天
学习