【吴恩达机器学习】第一周课程笔记

Hello,这里是小梁。下面是我近期学习机器学习的笔记,出发点是希望对自己起到一个督促和输出的作用

如果你对我的笔记感兴趣欢迎Like,有不足之处也欢迎评论留言

B站【2022吴恩达机器学习Deeplearning.ai课程】

笔记参考【吴恩达《Machine Learning》精炼笔记】


1 机器学习的定义与分类

1.1 监督学习 Supervised learning

1.2 无监督学习 Unsupervised learning

2 线性回归模型

2.1 线性回归 Linear Regression

2.2 代价函数 Cost Function

2.3 梯度下降 Gradient decent

2.4 用于线性回归的梯度下降


1 机器学习的定义与分类

Field of study that gives computers the ability to learn without being explicitly programmed. 

——Arthur Samuel (1959)

机器学习是使计算机无需明确编程即可学习的研究领域。

1.1 监督学习 Supervised learning

  • 定义:监督学习(监督机器学习)是一种学习输入x到输出y的映射的算法。

        人为地为算法提供已有的输入到输出的正确映射,让机器学习其中的模式,实现给其一个输入,就能得出对应的合理、准确的预测输出。

  • 关键特征:提供示例,对于给定输入x, 有对应的“正确”标签y。
  • 应用示例:
Input (X) Output (Y) Application
email spam?(0/1) spam filtering
 audio text transcripts speech recognition
English other languages machine translation
image, radar info position of other cars self-driving car
  • 监督学习的任务,主要有以下两类:
    • 回归 Regression:旨在通过建立输入特征与连续输出目标之间的映射关系,预测或估计数值型的输出结果。

      下面是一个将在后续学习中反复出现的一个简单示例:
      波士顿房价预测问题——已知A的房子的大小,希望能知道可以卖出多少钱的问题
      如何解决呢?找中介给出已有的房子大小和对应的售价,想办法寻找可能的拟合函数,进行新的预测(给出新的房子大小,求售价)
      • 房子尺寸和房价之间的关系可以拟合成直线或二次曲线
【吴恩达机器学习】第一周课程笔记_第1张图片 图1.1.1
  • 分类:通过使用带有标签的训练数据来构建模型并进行训练,使得模型能够将输入数据分为不同的预定义类别或标签

    标签即“正确”答案,下面是一个简单的示例:
    肿瘤类型的判定,图1是指根据肿瘤的大小进行分类,区分为良性、恶性等
    图2则是依据多种特征输入(包括肿瘤大小、患者年龄)进行分类
【吴恩达机器学习】第一周课程笔记_第2张图片 图1.1.2
【吴恩达机器学习】第一周课程笔记_第3张图片 图1.1.3

1.2 无监督学习 Unsupervised learning

  • 无监督学习是通过使用未标记的训练数据,从中发现数据的内在结构、模式或关系,而无需预先定义类别或标签。 
  • 无监督学习类别:
    • 聚类:将未标记的数据尝试划分到两个或以上不同的组或集群中

      区别于监督学习的分类,聚类只要求划分集群,不要求判断其具体的类别,这是因为未向模型提供标签,它也就不知道对应的属于哪种(人为定义的)类型。

      应用示例:谷歌新闻、DNA微阵列数据分析、用户集群
      【吴恩达机器学习】第一周课程笔记_第4张图片 图1.2.1
    • 异常检测:在给定的数据中,寻找异常的数据点。
    • 降维:使用较少的数据去压缩原始数据,进行信息的提取。

2 线性回归模型

2.1 线性回归 Linear Regression

  • 定义:建立一个线性关系模型,通过拟合数据点与一个或多个自变量之间的线性关系,以预测连续数值型的输出变量,即用一条直线/曲线拟合到你的数据

所以如何通过监督学习寻找拟合函数?或者说怎么通过监督学习来解决上面的房价问题?

训练集 Training set:
        
用于训练模型的数据,分别记为x和y,以各自上标i指明是第i个样本,即(x^i,y^i)

【吴恩达机器学习】第一周课程笔记_第5张图片 图2.1.1

 训练过程:

  1. 将训练集training set输入给学习算法learning algorithm
  2. 学习算法进行工作,输出一个函数f
    (ps:历史上这个函数被称为假设hypothesis,在此处只将其称为函数function)
  3. f又被称为模型model,它根据输入或输入特征x,输出预测值\hat{y}
【吴恩达机器学习】第一周课程笔记_第6张图片 图2.1.2

        那么在房价问题中,输入x即房子大小,输出的预测\hat{y}即房价。

        f可能的表达式即为:f(x)=wx+b,即单变量线性回归问题

2.2 代价函数 Cost Function

  • 定义:又称为平方误差函数,是用于衡量模型预测结果与实际观测结果之间差异的函数,它在机器学习和深度学习中起着至关重要的作用,可以帮助我们优化模型参数以最小化预测误差。

        对于f(x)=wx+b,其中的w和b被称为系数或权重,则代价函数可写作:

J(w,b)=\frac{1}{2m}\sum^m_{i=1}(\hat{y}^i-y^i)^2

        其中m为样本个数,\hat{y}为预测值,y为样本值。

怎么理解这个代价函数J呢?

        首先,需要明确一点,即公式中的\hat{y}^i-y^i表示样本值和预测值之间的距离,如图2.2.1左图蓝色竖线所示,如果这个值越大,那么说明预测值与正确的样本值差距越大,即J越大。换句话说,如果J越小,说明预测值与正确的样本值更接近,说明拟合得越好

        为了获得使监督学习效果最佳的模型,我们需要去寻找使得J最小的w和b

2D层面:

        从最简单的情况考虑,假设现在有一组样本值,分别为(1,1),(2,2),...,(n,n),并且假设b=0。此时,J即为关于w的函数。通过计算,我们取不同的w值(调参)并计算J,就获得下图的结果。我们可以看出,当w为1时,J最小,即f为y=x,为最优的拟合模型。

        所以核心问题是:如何找到使J最小的点对应的w。

【吴恩达机器学习】第一周课程笔记_第7张图片 图2.2.1

3D层面:

        当同时考虑w和b时,J将会如下图所示,同样的在三维空间中也应当存在一个使得J(w,b)最小的点。

    进一步的核心问题是:如何找到使J最小的点对应的w和b。

【吴恩达机器学习】第一周课程笔记_第8张图片 图2.2.1

2.3 梯度下降 Gradient decent

        结合上一小节的介绍,我们的要解决的问题就是如何找到合适的w和b,使得J最小。拓展至更复杂的情况,即J(w_1,w_2, ..., w_n, b),问题不变。

  • 定义:梯度下降是一个用于求函数最小值的算法。

        注意:梯度下降算法在机器学习中可用于多种任务,但以下只讨论用于线性回归的梯度下降算法。

  • 核心思想:开始时随机选择选取一个合适的参数组合(w_1, w_2, ..., w_n, b)获得代价函数J,随后寻找下一个能让代价函数值下降最多的参数组合,重复该操作,直到获得一个最小值。

        形象化地解释,目前有一个J关于w和b的函数如下图2.3.1,我们将其看成一座山,假设你现在在一个山顶,为了走到最低点,你环绕四周,寻找下一个能让你快速下坡的方向,并向下走一定的距离。到达下一个点后,重复前面的动作,直到走到山谷底,即J最小的位置。

        ❗这样做只能得到一个局部最小值,因为未考虑所有可能的组合情况。由下图两条路线可以看出。

图2.3.1
  • 实现:

w=w-\alpha\frac{\partial}{\partial{w}}{J(w, b)}
b=b-\alpha\frac{\partial}{\partial{b}}{J(w, b)} 

        其中,α为学习率。两个等式右边的w为同一个w,w和b同步更新,而非先更新w再计算b。

         下图是一个简化的直观展示,当J关于w的偏导大于0时,w减小,即J沿曲线左移,而当J关于w的偏导小于0时,w增大,则J沿曲线右移。由此可见,按照这样的方法更新参数w,就有望找到最小的J以及对应的w。

【吴恩达机器学习】第一周课程笔记_第9张图片 图2.3.2
  • 学习率:又称步长,决定了在每步参数更新中,模型参数有多大程度(或多快、多大步长)的调整。

        形象地理解为,在沿着能让代价函数下降程度最大的方向下山时,学习率决定了我们向下迈出的步子到底有多大。

        学习率太小:收敛速度慢需要很长的时间才会到达全局最低点。

        学习率太大:可能越过最低点,甚至可能无法收敛。

【吴恩达机器学习】第一周课程笔记_第10张图片 图2.3.3

2.4 用于线性回归的梯度下降

        经过公式代入和推导,我们可以得到最终的用于线性回归的梯度下降公式如下:

w=w-\alpha\frac{1}{m}\sum^m_{i=1}(f_{w,b}(x^{(i)}-y^{(i)})x^{(i)}

b=b-\alpha\frac{1}{m}\sum^m_{i=1}(f_{w,b}(x^{(i)}-y^{(i)})

        ps:具体推导见视频第4.5节

        这种梯度下降算法也被称为批量梯度下降算法(Batch gradient decedent),有以下两个特点:

  1. 在梯度下降的每一步中都用到了所有的训练样本,并非部分训练数据
  2. 在梯度下降中,在计算微分求导项时,需要进行求和运算,对所有m个训练样本求和。

至此,第一周的任务完成,学会了第一个机器学习算法噜!Congratulations~

这里是小梁的学习频道,我们下周再见!

你可能感兴趣的:(机器学习,笔记,人工智能)