【深度学习】第一门课 神经网络和深度学习 Week 2 神经网络基础

本文介绍了二分类问题和逻辑回归的概念,详细讲解了如何用逻辑回归处理图像识别中的猫识别问题,涉及图片在计算机中的表示、特征向量的构建。接着,讨论了逻辑回归的成本函数和梯度下降法在优化模型参数中的作用,以及前向传播和反向传播在神经网络训练中的应用。
摘要由CSDN通过智能技术生成

🚀Write In Front🚀
📝个人主页:令夏二十三
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏:深度学习
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🖊

文章目录

目录

文章目录

2.1 二分类

前言

正题

题目

分析

图片在计算机中的表示方法

符号定义

2.2 逻辑回归

 2.3 逻辑回归的成本函数

为什么需要成本函数(Cost Function)

损失函数

2.4 梯度下降法(Gradient Descent)

2.9 逻辑回归中的梯度下降


2.1 二分类

前言

第二周的主题是学习神经网络的基础知识。

实现神经网络需要用到一些重要的技术和技巧,比如怎样处理包含大量样本的训练集,我们不用 for 循环来处理,而是使用线性代数中的矩阵来做。

在神经网络的计算中,还会有前向暂停、前向传播、反向暂停和反向传播等步骤,本周会对它们进行详细的介绍。

本周课程中会使用逻辑回归这个算法来帮助大家理解这些概念。

正题

逻辑回归算法一般用于二分类问题,下面这个问题就是一个典型的二分类问题。

题目

输入一张图片,若识别这张图片里有猫,则输出标签 1 作为结果,否则输出标签 0 作为结果。

分析

图片在计算机中的表示方法

计算机中有红、绿、蓝三种色块,三种色块按照不同的深浅度叠加就是一个像素,一张图片就由许多像素组成。

我们用三个矩阵来表示三种色块,矩阵中的元素值就是像素的强度值,这里用三个5x4的矩阵来表示一张图片:

为了将图片输入到计算机中,我们需要将像素值放到一个特征向量里,这是一个列向量,从上到下地存放像素值,先存放第一个矩阵的第一行,再存放第一个矩阵的第二行,......,最后存放第三个矩阵的最后一行。

这个特征向量的行数就是所有像素的数量(注意不是像素值的和),我们通常用x来表示特征向量,用n来表示特征向量的维度(即行数)。

所以,在二元分类问题中,我们的目标就是构建一个分类器,它以图片的特征向量作为输入,然后输出结果y(1或0),也就是预测图片中是否有猫。

符号定义

接下来我们说明一些在下面的课程中会用到的符号。

  • x

表示一个输入的n维的数据(向量),在这道猫图识别题目中可以想象成一个只有一列的矩阵,但是有 n 行,也就是列向量。

  • y

表示输出结果,取值范围为{1,0}。

  • (x(i),y(i))

表示第i组数据,(i)为上标,可以是训练数据,也可以是测试数据,这里默认为训练数据。

  • X=[x(1),x(2),⋯,x(m)]

大写的X表示所有训练数据集的输入值,放在一个n行m列的矩阵中,其中m表示样本个数。

有时候会出现训练样本按行堆叠起来的矩阵,这时候要将其转置,这样处理起来才更简单。

其实每列都代表一个数据样本,有 m 列就说明有 m 个数据样本。

  • Y=[y(1),y(2),⋯,y(m)]

大写的Y表示所有训练数据集的输出值,放在一个1行m列的矩阵中,也就是一个行向量。

在python中,输出X的命令是:X.shape;输出Y的命令是:Y.shape。

2.2 逻辑回归

这一小节我们将学习逻辑回归算法,用于二分类问题,而主要内容是介绍逻辑回归的假设函数(Hypothesis Function)。

前一篇文章提到,给定一个特征向量x作为输入,x对应着一张图片,我们需要一个算法来预测图片里是否有猫,这里注意,我们的输出是预测,所以只是对实际值y的预测,用y^来表示。

y^是预测值,也就是y=1的概率,其取值范围为[0,1],如果预测值为0,说明图片里没有猫,如果为1,则图片里面一定有猫,至于预测值在0和1之间的情况,则代表图片中有猫的概率。

此时,再给出两个参数,n维向量w是逻辑回归的参数(因为x是n维的,也就是有n行,n个特征),b是偏差,利用公式y^=w(T)x+b可以粗略地得出一个预测值,但是不能保证这个值处于0和1之间。

上面的这个公式其实只是一个线性回归公式,但仅仅靠这个公式是无法解决二分类问题的,需要再使用Sigmoid函数。这个函数能将线性回归公式的结果转化为介于0和1之间的概率。

下面就是套用了Sigmoid函数的公式,以及所画出的图:

Sigmoid函数

 综上,逻辑回归的公式如下:

如果z很大,那么结果会很接近1;如果z很小,那么结果会很接近0,这便是Sigmoid函数的功能,线性回归套上这个公式,也就变成了逻辑回归,这里的逻辑应该指的就是0和1吧,给出了一个非黑即白的逻辑判断准则。

 2.3 逻辑回归的成本函数

为什么需要成本函数(Cost Function)

为了得到逻辑回归函数的两个参数 w 和 b ,我们需要训练成本函数。

成本函数,本质上是预测值和真实值的绝对差,是整个训练集中所有样本的单个误差的平均值

损失函数

损失函数是训练集中单个样本的误差,也就是样本预测值与真实值之差

对于损失函数,我们想要它尽可能地小,这样得到的预测值就和真实值十分接近。

2.4 梯度下降法(Gradient Descent)

梯度下降法是一种方法,可以用来在测试集上,通过最小化成本函数来训练出最准确的参数w和b。

假设成本为J,J是一个由w和b决定的值,那么三者可以在立体空间中确定一个点(当然维度可以更高,这里用三维空间更好理解),成本处于一个曲面上,如下图所示:

这个曲面是凹凸不平的,我们需要找到曲面的最低点,也就是成本J的最小值所在处,取得那里的w和b作为参数,这就需要不停地进行梯度下降,每次寻找一个梯度最低的方向进行移动,这样到最后就一定能到达一个局部最低点,也有希望到达全局最低点,每次下降后就更新参数,迭代下降的公式如下所示:

2.9 逻辑回归中的梯度下降

这里弄清楚前向传播和反向传播即可:

前向传播(Forward Propagation)是指在网络中传递输入信号,直到产生输出的过程。在前向传播阶段,信息从输入层开始,逐层通过隐藏层,最终到达输出层。每层神经元都会处理前一层的信息,并产生输出传递到下一层。这个过程涉及到计算神经元的加权输入和激活函数的输出。

反向传播(Back Propagation)是一种用于训练神经网络的算法,它基于梯度下降法。反向传播的过程中,网络根据预测误差来更新权重。具体来说,算法计算输出层产生的误差,并将这个误差按权重的比例分配到各层的每个神经元,从而更新网络中的每一条连接权重。这样,网络可以逐步减少预测误差,提高模型的性能。

总而言之,下图中从左往右计算就是前向传播,从右往左逐步计算导数和偏导,最终得到L关于x1,w1,x2,w2以及b的偏导,接着使用原来值减去步长乘偏导的值得到调整后的参数,这就是梯度下降。

后面的章节涉及到向量化和python中的传播技术,已经在动手学深度学习中接触过了,就不过多解释,涉及到代码的在补完理论知识后再进行实战巩固。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值