DL Homework 5

目录

习题4-1 对于一个神经元​编辑,并使用梯度下降优化参数w时,如果输入x恒大于0,其收敛速度会比零均值化的输入更慢。

习题4-5 如果限制一个神经网络的总神经元数量(不考虑输入层)为N+1,输入层大小为​编辑,输出层大小为1,隐藏层的层数为L,每个隐藏层的神经元数量为​编辑,试分析参数数量和隐藏层层数L的关系。

习题4-7 为什么在神经网络模型的结构化风险函数中不对偏置b进行正则化?

习题4-8 为什么在用反向传播算法进行参数学习时要采用随机参数初始化的方式而不是直接令W=0,b=0?

习题4-9 梯度消失问题是否可以通过增加学习率来缓解?

总结


习题4-1 对于一个神经元\sigma (w^{T}x+b),并使用梯度下降优化参数w时,如果输入x恒大于0,其收敛速度会比零均值化的输入更慢。

        分析一下这句话,首先采用的是Sigmoid函数,且函数的性质,如图所示

        代码如下:

import numpy as np
import matplotlib.pyplot as pltdef sigmoid(x):y = 1 / (1 + np.exp(-x))return yx = np.linspace(start=-5, num=50, stop=5)
plt.figure()
y = sigmoid(x)
plt.plot(x, y)
# 设置坐标轴
ax = plt.gca()
# 取消右侧和上侧坐标轴
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
# 设置默认的x轴和y轴方向
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
# 设置坐标原点为(0,0)
ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 0))
plt.title('f(x)=Sigmoid')
plt.figure()
y = y * (1 - y)
plt.plot(x, y)
plt.title('f\'(x)')
# 设置坐标轴
ax = plt.gca()
# 取消右侧和上侧坐标轴
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
# 设置默认的x轴和y轴方向
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
# 设置坐标原点为(0,0)
ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 0))
plt.show()

        零均值化是什么?

        零均值化是一种常见的数据预处理方法,也称为特征中心化。它通过将数据减去其均值,使得数据的均值变为0。具体而言,对于输入数据集X,零均值化的过程可以表示为 X_new = X - mean(X),其中mean(X)是数据集X的均值。

        同时根据对Sigmoid梯度的观察我们得到了问题的答案,数据经过零均值化后,使得输入的数据分布接近零中心。从而使梯度大小和方向更加稳定(可见Sigmoid梯度的函数在零中心附近的分布),从而提高收敛的速度。

  扩展

        为什么要采取零均值化或者说零均值化有什么好处?

  1. 增加收敛速度:零均值化可以使数据的分布接近零中心,消除数据中的偏差。这有助于减少梯度下降过程中的震荡现象,使得优化算法更快地找到全局最优解或局部最优解,从而加快模型的收敛速度。

  2. 提高模型的稳定性:如果数据的均值较大,那么梯度更新的幅度也会相应增大。这可能导致模型训练过程不稳定,难以获得良好的收敛性能。通过零均值化,可以减小梯度的幅度,使得优化过程更加稳定,从而提高模型的稳定性和可靠性。

  3. 增加模型的泛化能力:零均值化可以减小特征之间的尺度差异,使得不同特征的权重更加平衡。这可以避免某些特征对模型训练的主导影响,从而提高模型的泛化能力。通过零均值化,模型能够更好地学习特征之间的关系,提高对新样本的预测准确性。

  4. 降低模型过拟合的风险:过拟合是指模型在训练集上表现良好,但在测试集或新样本上表现不佳的现象。零均值化可以帮助降低模型过拟合的风险,因为它有助于减小特征之间的相关性和共线性,提高模型对新数据的泛化能力。

     预处理的其他常用的操作:

        1.特征缩放:将输入数据按比例缩放到一定范围内,如[0, 1]或[-1, 1]。常用的特征缩放方法包括最小-最大缩放和标准化。

  • 最小-最大缩放(Min-Max Scaling):将数据线性映射到指定的范围内,公式为 X_scaled = (X - min(X)) / (max(X) - min(X))。

  • 标准化(Standardization):将数据转化为均值为0,标准差为1的标准正态分布。标准化的公式为 X_scaled = (X - mean(X)) / std(X)。

        2.特征编码:对于分类任务中的类别型特征,可以使用独热编码(One-Hot Encoding)将其转换为二进制表示,以便神经网络能够更好地处理。

        预处理的好处:

  • 提高模型性能:预处理可以使得数据更适合于神经网络的训练,从而提高模型的性能和泛化能力。
  • 改善优化过程:通过预处理,可以减小梯度下降的不稳定性,加快优化过程的收敛速度。
  • 减少模型偏见:预处理可以去除数据中的偏差,使得模型更加公正地学习特征之间的关系。
  • 提高模型鲁棒性:通过预处理可以减小数据的尺度差异,增加模型对噪声和异常值的鲁棒性。

习题4-5 如果限制一个神经网络的总神经元数量(不考虑输入层)为N+1,输入层大小为M_{0},输出层大小为1,隐藏层的层数为L,每个隐藏层的神经元数量为,试分析参数数量和隐藏层层数L的关系。

首先,对于一个前馈神经网络,参数主要包括权重和偏置,层与层之间是全连接

假设隐藏层平分所有神经元,且能完整平分

可以把神经网络分成三部分

  1. 输入层到第一个隐藏层之间的参数数量:

    • 权重:需要连接输入层的每个神经元与第一个隐藏层的每个神经元,共有个权重。
    • 偏置:由于每个隐藏层的神经元数量都是 ,所以第一个隐藏层共有 个神经元,因此需要 个偏置。
  2. 第一个隐藏层到最后一个隐藏层之间的参数数量:

    • 权重:每个隐藏层之间的连接都满足每个神经元与其他神经元之间都有权重连接,因此共有个权重。
    • 偏置:由于每个隐藏层的神经元数量都是 ,所以从第二个隐藏层到最后一个隐藏层共有个偏置。
  3. 最后一个隐藏层到输出层之间的参数数量:

    • 权重:需要连接最后一个隐藏层的每个神经元与输出层的神经元,共有 个权重。
    • 偏置:因为输出层只有一个神经元,所以只需要1个偏置。

综上所述,参数数量的计算公式为: 

大概化简一下

咳咳,看不出来单调性,虽然我们都知道一定是单调增的

代数法!!!

  1. 当L=1时,即只有一个隐藏层

  2. 当L=2时,有两个个隐藏层

 到此我好像都没弄清楚到底是不是递增的嘶,插个眼,等晚点回来再算,现在脑子有点迷糊

习题4-7 为什么在神经网络模型的结构化风险函数中不对偏置b进行正则化?

        在神经网络模型中,偏置 b 是每个神经元的偏移量,用于控制神经元的激活水平。虽然偏置b和权重w具有类似的作用,都是调整神经元的输出,但两者的性质有所不同。权重 w 在模型训练过程中是需要更新的,通过反向传播算法来进行梯度下降更新。正则化可以有效地控制权重的大小,抑制过拟合现象。而对于偏置 b,它不同于权重 w,一般情况下是初始化为 0 或者随机值,而不是需要训练得到的。因此,在训练过程中不需要对偏置b进行正则化操作,因为偏置 b本身不会引起过拟合问题。

        并且如果对b进行惩罚,其实是没有作用的,因为在对输出结果的贡献中,参数b对于输入的改变是不敏感的,不管输入改变是大还是小,参数b的贡献就只是加个偏置而已。举个例子,如果你在训练集中,w和b都表现得很好,但是在测试集上发生了过拟合,b是不背这个锅的,因为它对于所有的数据都是一视同仁的(都只是给它们加个偏置),要背锅的是w,因为它会对不同的数据产生不一样的加权。

        更直白的说,偏置在偏导中是为0的是不对对模型参数引起改变,真正会引起不良改变的是w。

        顺便提一下,吴恩达老师说,其实是可以对b加偏置的,但是没必要,因为做不做没什么区别,所以这也是个不加正则化的理由吧~老师的视频链接

习题4-8 为什么在用反向传播算法进行参数学习时要采用随机参数初始化的方式而不是直接令W=0,b=0?

    

  1. 对称性破坏: 当所有的权重和偏置都被初始化为零时,神经网络中每个隐藏层的所有神经元将是对称的。这样一来,在反向传播过程中,梯度的更新会变得对称,导致每个隐藏层的神经元始终更新相同的梯度。结果是,无论网络有多少层,它们最终都会执行相同的功能,失去了多层网络的优势,这种现象称为对称权重现象。

  2. 防止陷入局部最优解: 如果所有的参数都初始化为零,那么所有的神经元在前向传播过程中将会计算相同的值,从而导致在反向传播过程中梯度也相等。这将使得神经网络更容易陷入局部最优解。通过随机初始化,我们可以给每个参数赋予一个随机的初始值,增加了网络发现全局最优解的可能性,并且能够更好地逃离局部最优解。

偷的学长的一个图(因为我跑了半天,没跑出来这个图,咳咳),很明确的指出,对称权重的危害!!!二分类准确率维持为50%左右,说明模型没有学到任何内容。反向更新毫无效果,训练和验证loss几乎没有怎么下降。

        除了随机参数初始化,我们还可以怎样令网络避免对称权重现象?

        Dropout正则化:Dropout是一种通过随机断开网络中某些神经元连接的方法,在网络的训练过程中起到随机删除部分神经元的作用。Dropout可以有效避免对称权重现象,因为它可以防止网络中某些神经元过于强调某些输入特征,从而保证了每个神经元都学习到不同的特征。同时,Dropout还可以有效地防止过拟合,提高了模型的泛化能力。

习题4-9 梯度消失问题是否可以通过增加学习率来缓解?

        梯度消失问题是指。在深度神经网络中,随着反向传播算法向前传递梯度时,梯度逐渐变小到接近于零的现象

        增加学习率在一定程度上可以缓解。适当增大学习率可以使学习率与导数相乘结果变大,缓解梯度消失;过大学习率可能梯度巨大,导致梯度爆炸。

为缓解梯度消失问题,可以考虑以下方法:

  1. 使用激活函数:选择合适的激活函数可以缓解梯度消失问题。例如,ReLU (Rectified Linear Unit) 激活函数能够有效地抑制梯度消失,并且在实际应用中被广泛使用。

  2. 权重初始化:合理的权重初始化可以减少梯度消失问题。通过选取适当的初始化方法,如Xavier或He初始化,可以使得权重具有合理的范围和分布,有助于梯度的传播和避免梯度消失。

  3. 使用批归一化(Batch Normalization):批归一化可以加速模型的训练过程,同时有助于缓解梯度消失问题。它通过对每一层的输入进行归一化操作,使得数据分布更加稳定,有利于梯度的传播。

  4. 调整网络结构:合理设计网络结构也可以减轻梯度消失问题。例如,使用残差连接(Residual Connections)可以使得信息更容易跨层传播,从而避免梯度逐渐消失。

        总之,增加学习率并不是解决梯度消失问题的有效方法。合理选择激活函数、权重初始化,使用批归一化和调整网络结构等方法更为可靠。

总结

        本次作业其实总体来说比较简单,很多东西好像在写实验的博客的时候都接触过,这次作业就像一个汇总,把零零碎碎之前写过的一些知识点合起来写一个博客,但是也是有新收获的,之前虽然考虑过为什么不对b做偏置,但是后来因为自己懒还是没有明确,这次作业也算是一个敲响自己的警钟了, 以后不能随便偷懒,万一面试等等环境遇到,岂不是亏死!!!fighting!

参考

4.3 正则化_哔哩哔哩_bilibili

【精选】NNDL 作业4:第四章课后题-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/126422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python项目部署代码汇总:目标检测类、人体姿态类

一、AI健身计数 1、图片视频检测 (cpu运行): 注:左上角为fps,左下角为次数统计。 1.哑铃弯举:12,14,16 详细环境安装教程:pyqt5AI健身CPU实时检测mediapipe 可视化界面…

Spring Boot Web MVC

文章目录 一、Spring Boot Web MVC 概念二、状态码三、其他注解四、响应操作 一、Spring Boot Web MVC 概念 Spring Web MVC 是⼀个 Web 框架,一开始就包含在Spring 框架里。 1. MVC 定义 软件⼯程中的⼀种软件架构设计模式,它把软件系统分为模型、视…

Linux高级命令(扩展)

一、find命令 1、find命令作用 在Linux操作系统中,find命令主要用于进行文件的搜索。 2、基本语法 # find 搜索路径 [选项 选项的值] ... 选项说明: -name :根据文件的名称搜索文件,支持*通配符 -type :f代表普通文…

IP地址管理系统phpipam部署

IP地址管理系统phpipam部署 一、IPAM管理系统简介二、IPAM安装部署教程2.1 环境准备 三、phpIPAM web配置3.1 初始化3.2 WEB配置使用 四、IPAM管理和使用4.1配置dns4.2 配置ip网段4.3 配置ip地址自动扫描 一、IPAM管理系统简介 phpipam是一个开源Web IP地址管理应用程序&#…

Easy-Laser激光测平仪维修易激光对中仪E920

Easy-Laser激光对中仪常见故障:触摸屏损坏(屏碎,不显示,黑屏,蓝屏,无背光等),对中仪电路板损坏,对中仪接收装置电路板,对中仪发射控制装置电路板等均可维修。…

迅镭激光董事长颜章健荣膺“2023年如皋市科技强企人物”!

10月28日,2023如皋科技人才洽谈会开幕式在如皋隆重举行。江苏省科学技术厅副厅长、党组成员蒋洪,江苏省商务厅副厅长、党组成员孙津,中共南通市委副书记、政法委书记沈雷,中共如皋市市委书记何益军,中共如皋市委副书记…

目标检测与图像识别分类的区别?

目标检测与图像识别分类的区别 目标检测和图像识别分类是计算机视觉领域中两个重要的任务,它们在处理图像数据时有一些区别。 目标检测是指在图像中定位和识别多个目标的过程。其主要目标是确定图像中每个目标的边界框位置以及对应的类别标签。目标检测任务通常涉…

avi怎么转mp4?

avi怎么转mp4?如今市面上涌现了各种多样的视频格式,其中AVI作为一种音频视频交错格式,虽然使用较少但相对常见。它的优点在于占用空间较小,但画面质量并不是很出色。然而,AVI格式也存在一个明显的缺点,即兼…

Java实现Hive UDF详细步骤 (Hive 3.x版本,IDEA开发)

这里写目录标题 前言1. 新建项目2.配置maven依赖3.编写代码4.打jar包5.上传服务器6.代码中引用 前言 老版本编写UDF时,需要继承 org.apache.hadoop.hive.ql.exec.UDF类,然后直接实现evaluate()方法即可。 由于公司hive版本比较高(3.x&#x…

软件工程:小组开发过程技术(VS VSS UNIX C++)

(注:这个东西是2007年写的,算是个缅怀,或是个吐槽。所有注都是本次发布新加的。) 简介 本文讲述完全没有软件工程经验的软件小组如何借助VS VSS等工具为UNIX开发C程序,实现在小组规模的初级开发过程。这不…

【EI会议征稿】第七届先进算法与控制工程国际学术会议(ICAACE 2024)

第七届先进算法与控制工程国际学术会议(ICAACE 2024) 2024 7th International Conference on Advanced Algorithms and Control Engineering 第七届先进算法与控制工程国际学术会议(ICAACE 2024)定于2024年1月26-28日在中国上海…

HD.047 | 水文数据——全球植被数据集[V: VCI]

写在前面 植被作为影响联系土壤、大气、水分等地气要素的重要因素,其准确估算不仅对研究植被动态变化、植被物候过程具有重要意义,而且对于流域生态水文等方面具有十分重要的应用价值。目前已有大量全球植被数据产品,本期选取植被条件指数Vegetation Condition Index(VCI)…

这三种方法轻松实现Excel文档名翻译

在电脑使用中,我们常常需要批量修改文件名并翻译。这时候,我们可以使用“固乔文件管家”软件来轻松实现这一需求。下面就介绍三种方法,帮助你轻松实现Excel文档名翻译。 方法一:使用“固乔文件管家”软件批量修改文件名 1.安装并打…

云原生安全日志审计

记得添加,把配置文件挂载进去 - mountPath: /etc/kubernetes/auditname: audit-policyreadOnly: true.....- hostPath:path: /etc/kubernetes/audit/type: DirectoryOrCreatename: audit-policy/etc/kubernetes/manifests/kube-apiserver.yaml 具体配置文件如下 a…

Paper reading: segment anything in high quality NIPS2023

最近发展起来的SAM模型,表示分割模型的一个大的跃进,尤其是在零样本的能力和灵活提升方面。尽管利用1.1bollion的mask,SAM在掩码预测方面已经存在很大的问题,尤其是目标有着复杂结构的时候。 我们提出一个HA-SAM。 设计学习一个…

MySQL 基础学习笔记(二)

目录 1 约束1.1 约束概述1.2 非空约束1.3 唯一约束1.4 主键约束1.5 默认约束1.6 外键约束 2 数据库设计2.1 数据库设计概述2.2 表关系 3 多表查询3.1 多表查询概述3.2 内连接查询3.3 外连接查询3.4 子查询 4 事务4.1 事务概述4.2 四大特征 1 约束 1.1 约束概述 约束是作用于表…

【算法|滑动窗口No.4】leetcode 485.最大连续 1 的个数 487.最大连续 1 的个数 II 1004. 最大连续1的个数 III

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

arcgis图上添加发光效果!

看完本文, 你可以不借助外部图片素材, 让你的图纸符号表达出你想要的光! 我们以之前的某个项目图纸为例,来介绍下让符号发光的技术! 第一步—底图整理 准备好栅格影像底图、行政边界的矢量数据,确保“数据合适、位置正确、边界吻合”。 确定好图纸的大小、出图比例、投…

《TCP/IP详解 卷一:协议》第5章的IPv4数据报的IHL字段解释

首先说明一下,这里并不解释整个IPv4数据报各个字段的含义,仅仅针对IHL字段作解释。 我们先看下IPv4数据报格式 对于IHL字段, 《TCP/IP详解 卷一:协议》这么解释: IPv4数据报。头部大小可变,4位的IHL字段…

怎么让小程序排名靠前?小程序搜索排名问题

小程序的排名是十分重要的,因为这会直接影响到用户的点击率,用户在搜索小程序时,会看到搜索引擎的前几条搜索结果,如果您的小程序不在这些位置上,很可能就会被忽略,所以,想要让用户能够看到您的…