首页 > 其他分享 >【人工智能基础06】人工神经网络基础(二):1. 权值初始化(权值优化、避免梯度)、2. 权值衰减(防止过拟合)与 3. 权值共享(卷积核)

【人工智能基础06】人工神经网络基础(二):1. 权值初始化(权值优化、避免梯度)、2. 权值衰减(防止过拟合)与 3. 权值共享(卷积核)

时间:2024-12-08 16:32:42浏览次数:5  
标签:初始化 06 权重 卷积 梯度 人工神经网络 神经网络 权值

文章目录

一. 权值初始化

权值初始化通过调整权值的分布使得输出与输入具有相同的分布,

权值初始化主要有以下作用:

  • 打破对称性:避免神经元因初始权值相同而等价,使每个神经元能学习不同特征。
  • 避免梯度问题:防止梯度消失或梯度爆炸,像Xavier和Kaiming初始化方法能根据网络情况稳定梯度。
  • 加速收敛:让网络在训练初期处于良好状态,加快损失函数下降,提升训练效率。

在这里插入图片描述

1. 零初始化(Zero Initialization)

零初始化将神经网络中的所有权值都初始化为0。 这种方法简单,但存在严重问题。

在神经网络中,如果所有神经元的权重初始值都相同,那么在反向传播时,所有神经元将计算出相同的梯度,导致它们的权重更新也相同。这样,多个神经元就会变得完全等价,相当于只有一个神经元在起作用,网络无法学习到有效的特征

因此,零初始化一般不被采用,尤其是在深层神经网络中。

 

2. 随机初始化(Random Initialization)

从一个特定的概率分布(如均匀分布或正态分布)中随机采样来初始化权值。例如,使用均值为0、标准差为1的正态分布来初始化权重。

这种方法打破了对称性问题,使每个神经元具有不同的初始权重,能够学习到不同的特征。然而,随机初始化存在一个潜在问题:如果随机分布的标准差选择不当,可能会导致梯度消失或梯度爆炸问题,尤其是在深层神经网络中。

例如,在深层网络中,如果权重初始值过大,在前向传播过程中,激活值可能会迅速增大,导致梯度爆炸;反之,如果权重初始值过小,激活值可能会迅速趋近于0,导致梯度消失。

 

3. Xavier初始化

由Xavier Glorot提出,

  • 对于线性激活函数(如tanh),权重的初始化通常基于均匀分布 U ( − 1 n i n , 1 n i n ) U\left(-\frac{1}{\sqrt{n_{in}}},\frac{1}{\sqrt{n_{in}}}\right) U(−nin​ ​1​,nin​ ​1​),其中 n i n n_{in} nin​是输入神经元的数量;
  • 对于ReLU激活函数,基于正态分布 N ( 0 , 2 n i n + n o u t ) N\left(0,\frac{2}{n_{in}+ n_{out}}\right) N(0,nin​+nout​2​),其中 n i n n_{in} nin​是输入神经元数量, n o u t n_{out} nout​是输出神经元数量。

适应场景

  • Xavier初始化的目的是使得每一层的输入和输出的方差尽量相等,从而缓解梯度消失和梯度爆炸问题
  • 它适用于具有线性激活函数(如tanh)和ReLU激活函数的神经网络,特别是在浅层到中层的神经网络中表现较好。

 

4. Kaiming初始化(Kaiming Initialization)

由何恺明提出,针对ReLU及其变种激活函数(如Leaky - ReLU),权重初始化基于正态分布 N ( 0 , 2 n i n ) N\left(0,\sqrt{\frac{2}{n_{in}}}\right) N(0,nin​2​ ​)。

由于ReLU激活函数在 x < 0 x < 0 x<0时输出为0,导致神经元输出的方差会有偏差。Kaiming初始化通过考虑ReLU的这种特性,使得每一层的输出方差保持相对稳定,有效缓解了使用ReLU激活函数时的梯度消失问题

它特别适用于以ReLU及其变种为激活函数的深层神经网络。

 
权值初始化总结

  • 好的初始化方法可以防止前向传播过程中的信息消失,也可以解决反向传递过程中的梯度消失
  • 激活函数选择双曲正切(ReLU)或者Sigmoid时,建议使用Xaizer初始化方法;
  • 激活函数选择ReLY或Leakly ReLU时,推荐使用He初始化方法。

 

二. 权值衰减:通过正则防止过拟合

权值衰减是一种在神经网络训练过程中用于防止过拟合的正则化技术。

1. 作用机制

  • 从优化的角度看,权值衰减项相当于对权重施加了一个约束。在训练过程中,当更新权重时,这个惩罚项会使得权重倾向于朝着使权重范数减小的方向更新。
  • 例如,在梯度下降更新权重时,对于L2权值衰减,权重更新公式变为 w t + 1 = w t − α ( ∇ L o r i g i n a l ( w t ) + 2 λ w t ) w_{t + 1}=w_{t}-\alpha\left(\nabla L_{original}(w_{t}) + 2\lambda w_{t}\right) wt+1​=wt​−α(∇Loriginal​(wt​)+2λwt​),其中 α \alpha α是学习率, ∇ L o r i g i n a l ( w t ) \nabla L_{original}(w_{t}) ∇Loriginal​(wt​)是原始损失函数关于权重的梯度。可以看到,权值衰减项(2\lambda w_{t})会使权重的更新受到抑制,尤其是当权重较大时。

 

2. 目的

  1. 防止过拟合
    在神经网络训练过程中,如果模型过于复杂或者训练数据有限,很容易出现过拟合现象。权值衰减通过限制权重的大小,使得模型不能过于依赖某些特定的特征或者权重组合,从而降低模型的复杂度。

  2. 提高模型的泛化能力
    通过权值衰减,模型能够更好地适应不同的数据分布,减少对训练数据中噪声的过度拟合。
    例如,在图像分类任务中,如果没有权值衰减,模型可能会过度学习训练图像中的一些细微特征(如特定的噪声、背景图案等),而权值衰减可以使模型更关注于图像中的主要物体特征,从而在新的图像上也能正确分类。

 

3. 应用场景

  1. 深度神经网络的训练
    例如,在训练一个用于手写数字识别的卷积神经网络时,添加权值衰减可以有效防止模型对训练数据中某些特定数字的书写风格过度拟合,从而提高模型在新的手写数字样本上的识别准确率。
  2. 模型复杂度较高的情况
    当模型具有大量的参数(如深层网络、具有大量神经元的网络等)时,权值衰减尤其有用。因为参数越多,模型越容易过拟合,权值衰减可以有效地约束这些参数,防止模型过于复杂。

 

三. 权值共享与卷积:处理过拟合的问题

1. 定义

权值共享是卷积神经网络(CNN)中的一个核心概念。在 CNN 的卷积层中,卷积核(滤波器)在整个输入图像(或输入特征图)上滑动,并且在不同位置上使用相同的权重参数。

例如,一个 3×3 的卷积核在输入图像上滑动时,无论它在图像的左上角还是右下角进行卷积操作,其内部的 9 个权重参数都是相同的。

 

2. 作用

2.1. 减少参数数量

  • 在处理图像等数据时,如果不使用权值共享,对于一个大尺寸的输入图像,全连接网络需要学习的参数数量会极其庞大。例如,一张 1080p(1920×1080)的图像包含约 200 万个像素值,若使用一个有 1000 个神经元的全连接隐藏层来处理该图像,仅这一层就包含约 20 亿个参数。
  • 而权值共享使得网络参数数量只与卷积核的大小和数量有关,与输入图像的大小无关,大大减少了需要学习的参数数量,降低了计算成本和内存需求,同时也减少了过拟合的风险。

2.2. 平移不变性

  • 权值共享使网络具有平移不变性。这意味着无论目标物体在图像中的哪个位置出现,卷积核都能以相同的方式检测到它,因为在不同位置使用的是相同的权重

  • 例如,在人脸识别任务中,不管人脸出现在图像的中心还是边缘,卷积神经网络都能够利用权值共享机制,通过相同的卷积核来提取人脸的特征,这对于图像识别等任务非常重要。

 

3. 实现逻辑

  • 在卷积神经网络的计算过程中,通过将卷积核在输入图像上按一定的步长滑动,在每个滑动位置进行卷积操作。
  • 这个操作的数学过程是将卷积核的权重与对应的输入图像局部区域的像素值进行逐元素相乘然后求和,得到输出特征图中的一个元素。
  • 由于在整个滑动过程中,卷积核的权重保持不变,从而实现了权值共享。例如,对于一个输入为 n × n n×n n×n的图像和一个 k × k k×k k×k的卷积核 k < n k < n k<n,以步长为 s s s进行滑动卷积,输出特征图的大小为 ( n − k ) / s + 1 (n - k)/s + 1 (n−k)/s+1,而在这个过程中,卷积核的权重在所有滑动位置上都是共享的。

 

标签:初始化,06,权重,卷积,梯度,人工神经网络,神经网络,权值
From: https://blog.csdn.net/hiliang521/article/details/144324764

相关文章

  • 【人工智能基础06】人工神经网络(练习题):神经网络的计算、激活函数的选择与神经网络的退
    文章目录1.基于神经网络计算心理健康程度2.添加激活函数的神经网络计算3.使用神经网络预测小胖是否会变胖4.激活函数选择的讨论5.神经网络的设计6.深度线性模型的表达能力=线性模型7.神经网络退化主要讨论的内容什么是人工神经网络,相关计算反向传播算法的原......
  • 【牛客训练记录】牛客小白月赛106
    训练情况赛后反思由于是周五晚上,C题猜了一个假结论,做到后面摆了A题这题只关心答案的奇偶性,我们注意到偶数的非零次方是偶数,奇数的非零次方是奇数,所以我们就不需要求幂,但是注意一下偶数的\(0\)次方会改变奇偶性。#include<bits/stdc++.h>#defineintlonglong#definee......
  • GJB3206B-2022《技术状态管理》
    请关注作者2022年7月,中央军委装备发展部发布了GJB3206B-2022《技术状态管理》标准,该标准在2022年10月开始执行。这是装备机关在时隔12年后对于技术状态管理标准的升级。该版相较于GJB3206A-2010版,在术语和定义、技术状态标识、技术状态控制、技术状态记实、技术状态审核与验证......
  • 学习笔记061——设计模式2
    文章目录结构型模式1、代理模式2、适配器模式2.1、默认适配器模式2.2、对象适配器模式2.3、类适配器模式2.4、适配器模式总结3、桥梁模式4、装饰模式5、门面模式6、组合模式7、享元模式8、结构型模式总结结构型模式前面创建型模式介绍了创建对象的一些设计模式,这节......
  • 聪明办法学Python Task05&&Task06
    列表详解追加append只会在列表的末尾添加值l=[1,2,3]l.append(4)print(l)显示1,2,3,4插入insertl.insert(索引,插入的值)extend(字符串,字典)删除*pop(可指定,写索引,默认最后一个)*remove(写元素)count(统计出现次数)index(显示元素索引)clear(清空列表)revers......
  • Task06&Task07学习笔记
    Task06:循环LoopFor循环循环范围特点:基于提供的范围,重复执行特定次数的操作foriinrange(m,n+1):range(m,n+1)是左闭右开区间,从m到nrange(n)相当于range(0,n)奇偶数列生成foriinrange(0,10,2):print(i)输出:02468反向数列生成foriinreversedrange(0,10,1):pr......
  • 按键 芯片pcf50633 linux 驱动程序
    /*NXPPCF50633InputDriver*©2006-2008byOpenmoko,Inc.Allrightsreserved.BrokendownfrommonstrousPCF50633drivermainlybyHaraldWelte,AndyGreenandWernerAlmesbergerThisprogramisfreesoftware;youcanredistributeitand/ormodifyitun......
  • Task06循环&Task07字符
    Task06循环&Task07字符串for循环特点:基于提供的范围,重复执行特定次数的操作格式:forxinrange(m,n+1):​ 循环体语句range(x,y):1.左闭右开,包含x不包含y​ 2.省略第一个参数:默认起始范围是0​ 3.第三个参数range(x,y,k)步长为k,步长默认为1......
  • k8s阶段06 k8s认证体系和插件, 添加用户账号认证, kubeconfig使用, serviceaccount,
    1Kubernetes的访问控制体系认证:APIServer:https://control_host:6443/#集群外部访问控制平面节点ip+6443https://kubernetes.default.svc.cluster.local#集群内部访问集群网关:APIServer#执行安全策略:认证,鉴权,准入控制(其他地方很少用到)......
  • HCIE-06 BGP基础原理
    目录BGP概述BGP基本工作原理BGP工作原理-报头格式BGP工作原理—报文类型OpenUpdateNotification错误子代码KeepaliveRoute-refreshBGP工作原理BGP工作原理—状态机BGP工作原理—数据库BGP工作原理—BGP路由信息处理BGP工作原理—对等体之间的交互原则GP工作原理—同步BGP属性特点B......