吴恩达深度学习课程一:神经网络和深度学习 第二周:神经网络基础(二)

此分类用于记录吴恩达深度学习课程的学习笔记。
课程相关信息链接如下:

  1. 原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai
  2. github课程资料,含课件与笔记:吴恩达深度学习教学资料
  3. 课程配套练习(中英)与答案:吴恩达深度学习课后习题与答案

本篇为第一课第二周,是2.1和2.2部分的笔记内容。

本周的课程以逻辑回归为例详细介绍了神经网络的运行,传播等过程,其中涉及大量机器学习的基础知识和部分数学原理,如没有一定的相关基础,理解会较为困难。
因为,笔记并不直接复述视频原理,而是从基础开始,尽可能地创造一个较为丝滑的理解过程。

首先,经过之前的基础补充,我们了解了关于回归的一些概念,本篇我们便跟随课程的顺序进行学习,同样,会补充相当一部分的相关基础知识帮助理解。

我们以一个问题来引入,现在我们知道了回归是什么,课程中又是用逻辑回归为例讲解,但实际上,逻辑回归是一个分类算法
那么问题来了,为什么一个名字叫回归的算法实际上是用来分类的?这里的回归算法和分类算法又到底差在哪呢?
我们以此开始本篇笔记的内容。

1.分类

1.1 什么是分类?

还是先上概念:

分类(Classification)是机器学习中的一种监督学习方法,其主要任务是将输入的数据样本分配到预定的类别标签中。分类的目标是通过训练模型,使其能够根据输入的特征预测一个或多个类别标签。

结合之前我们了解的回归的概念,不难发现,二者的差别实际上在目标输出上:
通过数据预测房价,身高,体重等,输出连续型数值即为回归问题
而通过输入数据研判其属于某种标签,如输入一张猫的图片,输出这张图“是猫”或“不是猫”。
又比如输入一段新闻文字,输出其属于“军事新闻”或“娱乐新闻”等,输出离散型结果即为分类问题

1.2 分类是怎么实现的?

还是先回想之前提到的线性回归,假设存在(n)个输入特征的情况下,线性回归的拟合通式如下:

[y=w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3}+w_{4}x_{4}+cdots+w_{n}x_{n}+b
]

再专业一些,用求和符号来表示:

[y = sum_{i=1}^{n} w_i x_i + b
]

不管哪种形式,又或者其他回归算法,让我们很轻松地理解到所谓“回归”的都是一点:把输入代入公式得到的 (y) 即为最终输出
不提前后的一些处理和特殊算法,把特征代入已经拟合好的函数,得到 (y) ,这就是预测结果,回归核心已经结束。

那分类的离散型输出又是如何实现的?
其中答案之前就已经出现过了,我们再回忆第一周的房价预测案例:
我们在隐藏层添加ReLU激活函数后,即可处理房屋面积和房屋价格都不可能为负数的情况。

如图所示,我们的隐藏层计算结果经过ReLU激活函数,把所有小于等于0的结果,这些所有连续型的数值映射成离散值0,来解决实际输出不可能小于0的问题。

再回顾一下之前对激活函数的总结:激活函数就是对输出引入非线性的变换,提供了处理复杂能力的关系。
而现在,我们希望输出结果可用于分类,是不是也能找到相应的激活函数呢?
答案是当然的。

我们把分类问题分为最基础的二分类和在此之上的多分类问题,而这两类分类问题又有其各自适用的激活函数:

  1. 二分类:Sigmoid 激活函数
  2. 多分类:Softmax 激活函数

我们先行介绍马上就会用到的Sigmoid 激活函数,Softmax再之后遇到时再展开。

1.3 Sigmoid 激活函数怎么帮助实现二分类?

我们先来看看Sigmoid 激活函数的公式:

[f(x) = frac{1}{1 + e^{-x}}
]

其图像如下:

整合其特点如下:

  • 输出范围:Sigmoid 的输出范围是 (0,1),因此可以将其结果视为概率值。
  • 平滑性:Sigmoid 函数是一个平滑的 S 型曲线,随着输入值的增加,输出会逐渐趋近于 1,而输入值减小时,输出会趋近于 0。
  • 单调性:Sigmoid 函数是单调递增的,意味着输入越大,输出越接近 1。

总结其作用:Sigmoid会把输入根据大小映射到0到1之间,随着越接近两端,梯度也逐渐减小。

当然,也不难发现问题,我们不是要做分类吗?为什么经过Sigmoid最后得到的还是一个数?
这便涉及到分类问题的另一概念:决策阈值,这个概念实现了从概率到分类的转换。

1.4 决策阈值:从概率到二分类

先回看刚刚的总结的sigmoid的一条特点:

输出范围:Sigmoid 的输出范围是 (0,1),因此可以将其结果视为概率值。

在概率论中,概率值通常是一个在0到1之间的数字,用来描述某个事件发生的可能性。例如,对于一个二分类问题,我们关心的是样本属于某个类的概率。Sigmoid的输出恰好满足这个需求:

  • 值接近1:输入很大,表示事件(例如样本属于正类)的发生概率非常高。
  • 值接近0:输入很小,表示事件的发生概率非常低。

在二分类问题中,通常我们使用0.5作为阈值来决定类别。
即如果Sigmoid函数的输出大于0.5,我们就预测为正类(类别1);如果小于0.5,则预测为负类(类别0)。这个0.5阈值本质上表示模型认为正负类的概率相等,我们也可以根据任务情境手动设置阈值。

由此,我们便用sigmoid帮助实现了二分类,理解了这个过程之后,我们终于可以开始提及已久的逻辑回归了。

2. 二分类实例:是不是猫

这一部分实际上是对2.1内容的系统阐述,记录一些常见的参数表示,便于之后使用和理解。
在了解二分类的一些原理后,我们看这样一个问题,输入一幅图像,我们要判断图像中是不是猫。

如上图所示,首先,我们要知道图像在计算机中的模样。一幅彩色图像在计算机中被理解为红,绿,蓝三个通道,即用三个相同大小的矩阵表示一幅图像,其中,每个元素在0~255之间,表示该像素在该通道上的亮度。

这里,我们设定每幅图像大小为:64*64
为此,如果我们要用特征向量表示一幅图像,这个特征向量的维度大小就应该为:64*64*3=12288我们用 (n_{x}) 或者直接用 (n) 来表示特征向量的维度大小。

现在,一个数据集(数据的集合,比如这里是猫的图像和相应的标签)中用于训练的样本有(m)
个,有时候为了强调,会用(m_{train})表示训练集数量,用(m_{test})表示测试集数量作区分。
而对于一个包含数据和标签的样本,我们写作((x,y))
其中:(x in mathbb{R}^n),(mathbb{R}^n) 表示 n维实数空间。它是一个包含所有 n维实数向量 的空间,用来表示具有 n个实数特征 的数据点。
在 (mathbb{R}^n) 中,向量 (mathbf{x}) 是一个 (n) 维的列向量,表示为:

[mathbf{x} = begin{bmatrix}
x_1 \
x_2 \
vdots \
x_n
end{bmatrix}
]

同时,(y in {0, 1}) ,代表是猫或者不是猫。
而对于某个具体的样本则这样表示:第一个样本 ((x^{(1)},y^{(1)})) 第二个 ((x^{(2)},y^{(2)})) 依此类推。

最后,我们定义一个矩阵 (X) 来表示训练集数据,其内容为

[mathbf{X} = begin{bmatrix}
vdots & vdots & vdots & cdots & vdots \
x^{(1)} & x^{(2)} & x^{(3)} & cdots & x^{(m)} \
vdots & vdots & vdots & cdots & vdots
end{bmatrix}
]

根据之前的符号表示,可知,这个矩阵有 (m) 列, (n) 行。
同理,用 (Y) 表示训练集标签,这个矩阵有 (m) 列, (1) 行。

[Y = begin{bmatrix} y^{(1)} & y^{(2)} & cdots & y^{(m)} end{bmatrix}
]

3.逻辑回归

经过较长的理解过程,逻辑回归算法其实已经呼之欲出了,我们先摆两个之前出现的公式。

[线性回归:y = sum_{i=1}^{n} w_i x_i + b
]

[sigmoid: f(x) = frac{1}{1 + e^{-x}}
]

现在我们看下面的逻辑回归公式:

[hat{y}=P(y = 1 mid mathbf{x}) = frac{1}{1 + e^{-(mathbf{w}^T mathbf{x} + b)}}
]

没错,逻辑回归就是将线性回归的结果输入sigmoid激活函数得到最终输出后通过决策阈值确定分类。
简洁一些: 逻辑回归=线性回归+sigmoid激活函数
现在来解释一下公式里的一些参数:

  1. (hat y) 代表 (y) 的预测值。
  2. (P(y = 1 mid mathbf{x}))是条件概率的表示,意思是给定特征向量 (x) 的情况下,目标变量 (y) 等于 1 的概率。
  3. ((mathbf{w}^T mathbf{x} + b)=w_1 x_1 + w_2 x_2 + dots + w_n x_n + b) ,这里的 (w) 是权重向量, 上标 (T) 代表转置,(mathbf{w}^T mathbf{x}) 即为权重向量和特征向量的点积,是将所有特征加权求和。(b) 为偏置。

这样,我们便了解了逻辑回归本身。而拟合,实际上便是不断调整 (w) 和 (b) 的过程。
至于如何调整,这便涉及到了神经网络的一个传播过程,这便是下面的篇章内容了。

最后,既然是分类算法,为什么逻辑回归不叫逻辑分类呢,根据本篇内容答案也有了大致方向:
逻辑回归本质上是一个 分类模型,而它名字中的“回归”源于其与线性回归的相似性,尤其是它依赖于线性加权和的框架。它通过将线性回归的输出经过 sigmoid 函数的变换,来输出一个介于0和1之间的概率值,用于判断样本属于某一类的概率。因此,尽管逻辑回归最终用于分类,但它保留了“回归”的名称。

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...