《Python深度学习实战:基于TensorFlow和Keras的聊天机器人》 —3.4 逻辑斯谛回归模型

举报
华章计算机 发表于 2020/02/13 22:12:52 2020/02/13
【摘要】 本节书摘来自华章计算机《Python深度学习实战:基于TensorFlow和Keras的聊天机器人》 一书中第3章,第3.4节,作者是[印] 纳温·库马尔·马纳西(Navin Kumar Manaswi),刘毅冰 薛 明 译。

3.4 逻辑斯谛回归模型

图3-5展示了只有一个输入时输出标签Y为0或者1的二元分类问题的学习算法。给定一个输入特征向量X,你想要知道对于这个给定输入特征X其Y=1的概率。在没有隐层,只有输出层时,这也被称为浅神经网络或者单层神经网络。输出层Y,也就是σ(Z),其中Z为WX + b,σ是一个Sigmoid函数。

 image.png

图3-5 一个输入(X)和一个输出(Y)

图3-6展示了有两个输入时输出标签Y为0或者1的二元分类问题的学习算法。

给定输入特征向量X1和X2,你想要知道Y = 1的概率。这也被称为感知机。输出层Y,也即σ(Z),其中Z为WX + b。

 image.png

图3-6 多输入(X1和X2)和一个输出(Y)

 image.png

图3-7给出了一个带有一个隐层和一个输出层的两层神经网络。考虑你有两个输入特征向量X1和X2,连接着两个神经元X1′和X2′。输入层到隐层的参数权重值为w1、w2、w3、w4,偏置量为b1、b2。

 image.png

图3-7 两层神经网络

X1′和X2′计算线性组合(图3-8)。

 image.png

(2×1)(2×2)(2×1)(2×1)是输入层和隐层的维度。

线性输入X1′和X2′通过激活单元传递到隐层中的a1和a2。

 image.png

图3-8 神经网络中的计算

a1为σ(X1′),a2为σ(X2′),因此也可以将方程写成如下形式:

 image.png

隐层的值前向传播到输出层。输入a1和a2以及参数w5、w6和b3一起传递到输出层a′(图3-9)。

 image.png

图3-9 前向传播

a′=[w5 w6]+[b3]给出了(w5a1+w6a2) + b3的线性组合,它将通过一个非线性Sigmoid函数传递到最终输出层Y。

y = σ(a′)

我们假设初始的一维模型结构是Y = wX + b,其中参数w和b为权重值和偏置量。

考虑损失函数,对于初始值w = 1,b = 1有L(w, b) = 0.9。你会得到输出y = 1X+1&L(w, b) = 0.9。

目标是通过调整参数w和b来最小化损失函数。误差将会从输出层反向传播到隐层,再到输入层,通过调整学习率和优化器来调整参数值。最终,我们要构建模型(回归器),即可以用X来解释Y。

为了开始构建模型,我们初始化权重值和偏置量。为了方便,取w = 1,b = 1(初始值),(优化器)随机梯度下降且取其学习率为α = 0.01。

第一步:Y = 1X + 1。

 image.png

参数被调整为w = 1.20和b = 0.35。

第二步:Y1 = 1.20X + 0.35。

 image.png

参数被调整为w = 1.24和b = 0.31。

第三步:Y1 = 1.24X + 0.31。

 image.png

在一定迭代次数之后,权重值和偏置量趋于稳定。正如你所看到的,起初参数在调节中变化比较多,在一定迭代之后,变化就不是很明显了。

L(w, b)在w = 1.26 和b = 0.29时被最小化。因此最终模型如下:

Y = 1.26X + 0.29

类似地,二维情况下,你可以考虑参数、权重矩阵和偏置向量。

我们假定初始权重矩阵和偏置向量为W=和B=。

迭代并将误差进行反向传播来调整w和b。

Y = ×[X] +是初始模型。权重矩阵(2×2)和偏置矩阵(2×1)在每次迭代中被调整。因此,我们可以看到权重和偏置矩阵的变化。

第一步:

 

 image.png

image.png

第二步:

 image.png

第三步:

 image.png

注意权重矩阵(2×2)和偏置矩阵(2×1)在每次迭代中的改变。

image.png

w和b调整后的最终模型为:

image.png

在本章中,你学会了权重值和偏置量在同时保证最小化损失函数的目标下的每次迭代中是如何调节的。这是在优化器(比如随机梯度下降)的帮助下完成的。

在本章中,我们已经理解了ANN和MLP这样一些基本的深度学习模型。这里我们可以看到MLP是线性回归和逻辑斯谛回归的一个自然发展。我们已经看到反向传播过程中的每次迭代里权重值和偏置量是如何调节的。没有深究反向传播的细节,我们已经看到了反向传播的结果。在第4章和第5章里,我们会学习如何在TensorFlow和Keras中搭建MLP模型。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。