吴恩达【深度学习工程师】学习笔记(二)

本文介绍了二分类问题中的逻辑回归原理及应用,包括Sigmoid函数、代价函数的定义与优化方法,并详细解析了梯度下降算法及计算图的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

吴恩达【深度学习工程师】专项课程包含以下五门课程:

1、神经网络和深度学习;
2、改善深层神经网络:超参数调试、正则化以及优化;
3、结构化机器学习项目;
4、卷积神经网络;
5、序列模型。

今天介绍《神经网络与深度学习》系列第二讲:神经网络基础(上)。

主要内容:

1、二分类问题

2、逻辑回归及其对应的代价函数形式;

3、用计算图描述神经网络的正向、反向传播过程;

4、在逻辑回归中使用梯度下降算法。

1、二分类问题

二分类就是输出 y 只有离散值 { 0, 1 }或者 { -1, 1 }。

以一个图像识别问题为例,判断图片中是否有猫存在,0 代表 non cat,1 代表 cat。

这里写图片描述

一般来说,彩色图片包含RGB三个通道。我们首先要将图片输入x(维度是(64,64,3))转化为一维的特征向量。方法是每个通道逐行提取,最后连接起来,转化后的输入特征向量维度为(64x64x3=12288)。此特征向量x是列向量,维度一般记为nx

如果训练样本共有m张图片,那么整个训练样本X组成了矩阵,维度是(nx,m)。

注意,这里矩阵X的行nx代表了每个样本x(i)特征个数,列m代表了样本个数。

所有训练样本的输出Y也组成了一维的行向量,写成矩阵的形式后,它的维度就是(1,m)。

2、逻辑回归

如何使用逻辑回归来解决二分类问题?

逻辑回归中,预测值h^=P(y=1 | x)表示为1的概率,与二分类不同,取值范围在[0,1]之间。

使用线性模型,引入权重参数w和偏置参数b。权重w的维度是(nx,1),b是一个常数项。这样,逻辑回归的线性预测可以写成:

y^=wTx+b

上式的线性输出区间为整个实数范围,而逻辑回归要求输出范围在[0,1]之间,所以需要引入Sigmoid函数对输出进行处理:

y^=Sigmoid(wTx+b)=σ(wTx+b)

其中,Sigmoid函数:

Sigmoid(z)=11+ez

在Sigmoid函数中,当z值很大时,函数值趋向于1;当z值很小时,函数值趋向于0。且当z=0时,函数值为0.5。

Sigmoid函数的一阶导数可以用其自身表示:

σ(z)=σ(z)(1σ(z))

在逻辑回归中,权重参数 w 和偏置参数 b 需要通过迭代训练得到。因此,我们需要定义一个代价函数。通过优化代价函数,得到对应的w和b。

对于m个训练样本,我们通常使用上标来表示对应的样本。例如(x(i),y(i))表示第i个样本。

如何定义所有m个样本的代价函数呢?

从单个样本来讲,我们希望该样本的预测值y^与真实值y越相似越好。我们把单个样本的代价函数用Loss function来表示,我们可以构建一种 Loss function 凸函数,如下所示:

L(y^,y)=(ylog y^+(1y)log (1y^))

当y=1时,L(y^,y)=log y^。如果y^越接近1,L(y^,y)0,表示预测效果越好;

当y=0时,L(y^,y)=log (1y^)。如果y^越接近0,L(y^,y)0,表示预测效果越好;

因此,这个Loss function能够很好地反映预测输出y^与真实样本输出y的接近程度。

对于m个样本,我们定义代价函数,代价函数是m个样本的Loss function的平均值,代价函数可表示为:

J(w,b)=1mi=1mL(y^(i),y(i))=1mi=1m[y(i)log y^(i)+(1y(i))log (1y^(i))]

代价函数是关于权重参数 w 和偏置参数 b 的函数。我们的目标就是迭代计算出最好的 w 和 b ,最小化代价函数。

3、梯度下降

我们将使用梯度下降算法来计算出合适的 w 和 b ,从而最小化m个训练样本的代价函数 J(w,b)。

由于J(w,b)是凸函数,梯度下降算法是先随机选择一组参数w和b,然后迭代的过程中分别沿着w和b的梯度的反方向前进一小步,不断修正w和b。梯度下降算法每次迭代更新,w和b的更新表达式为:

w:=wαJ(w,b)w

b:=bαJ(w,b)b

上式中,α是学习率(learning rate),表示梯度下降的步伐大小。
α
越大,w和b每次更新的“步伐”更大一些。

梯度下降算法能够保证每次迭代w和b都能向着J(w,b)全局最小化的方向进行。

4、计算图

神经网络的训练过程包含了正向传播(Forward Propagation)和反向传播(Back Propagation)。

我们用计算图(Computation graph)的形式来解释这两个过程,举个简单的例子,假如代价函数为J(a,b,c)=3(a+bc),包含a,b,c三个变量。我们用u表示bc,v表示a+u,则J=3v。它的计算图可以写成如下图所示:

这里写图片描述

令a=5,b=3,c=2

正向传播过程:

从左到右,则u=bc=6,v=a+u=11,J=3v=33。

反向传播过程:

J对参数a的偏导数。从右到左,J是v的函数,v是a的函数。则利用求导技巧,可以得到:

Ja=Jvva=31=3

J对参数b的偏导数。从右到左,J是v的函数,v是u的函数,u是b的函数。可以推导:

Jb=Jvvuub=31c=312=6

J对参数c的偏导数。从右到左,J是v的函数,v是u的函数,u是c的函数。可以推导:

Jc=Jvvuuc=31b=313=9

对单个样本而言,逻辑回归Loss function表达式如下:

z=wTx+b

y^=a=σ(z)

L(a,y)=(ylog(a)+(1y)log(1a))

计算该逻辑回归的反向传播过程:

da=La=ya+1y1a

dz=Lz=Laaz=(ya+1y1a)a(1a)=ay

dw1=Lw1=Lzzw1=x1dz=x1(ay)

dw2=Lw2=Lzzw2=x2dz=x2(ay)

db=Lb=Lzzb=1dz=ay

则梯度下降算法可表示为:

w1:=w1α dw1

w2:=w2α dw2

b:=bα db

m个样本的代价函数:

z(i)=wTx(i)+b

y^(i)=a(i)=σ(z(i))

J(w,b)=1mi=1mL(y^(i),y(i))=1mi=1m[y(i)log y^(i)+(1y(i))log (1y^(i))]

dw1=1mi=1mx(i)1(a(i)y(i))

dw2=1mi=1mx(i)2(a(i)y(i))

db=1mi=1m(a(i)y(i))

这样,每次迭代中w和b的梯度有m个训练样本计算平均值得到。每次迭代后,根据梯度下降算法,w和b都进行更新:

w1:=w1α dw1

w2:=w2α dw2

b:=bα db

这样经过多次迭代后,就完成了整个梯度下降算法。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值