当前位置: 首页 > news >正文

神经网络 03(参数初始化)

一、参数初始化

对于某一个神经元来说,需要初始化的参数有两类:一类是权重W,还有一类是偏置b,偏置b初始化为0即可。而权重W的初始化比较重要,我们着重来介绍常见的初始化方式。

(1)随机初始化

随机初始化从均值为 0,标准差是 1 的高斯分布(也叫正态分布)中取样,使用一些很小的值对参数 W 进行初始化。

(2)标准初始化

权重参数初始化从区间均匀随机取值。即在(-1/√d,1/√d)均匀分布中生成当前神经元的权重,其中 d 为每个神经元的输入数量。

(3)Xavier 初始化(在 tf.keras 中 默认 使用)

该方法的基本思想是各层的激活值和梯度的方差在传播过程中保持一致,也叫做 Glorot 初始化。在tf.keras中实现的方法有两种:

① 正态化的 Xavier 初始化

Glorot 正态分布初始化器,也称为 Xavier 正态分布初始化器。它从以 0 为中心,标准差为 stddev = sqrt(2 / (fan_in + fan_out)) 的正态分布中抽取样本, 其中 fan_in 是输入神经元的个数, fan_out 是输出的神经元个数。 

# 导入工具包
import tensorflow as tf
# 进行实例化
initializer = tf.keras.initializers.glorot_normal()
# 采样得到权重值
values = initializer(shape=(9, 1))
# 打印结果
print(values)

②标准化的 Xavier 初始化

Glorot 均匀分布初始化器,也称为 Xavier 均匀分布初始化器。它从 [-limit,limit] 中的均匀分布中抽取样本, 其中 limit 是 sqrt(6 / (fan_in + fan_out)), 其中 fan_in 是输入神经元的个数, fan_out 是输出的神经元个数。 

# 导入工具包
import tensorflow as tf
# 进行实例化
initializer = tf.keras.initializers.glorot_uniform()
# 采样得到权重值
values = initializer(shape=(9, 1))
# 打印结果
print(values)

(4)He 初始化

he初始化,也称为Kaiming初始化,出自大神何恺明之手,它的基本思想是正向传播时,激活值的方差保持不变;反向传播时,关于状态值的梯度的方差保持不变。在tf.keras中也有两种:

① 正态化的 He 初始化

He 正态分布初始化是以 0 为中心,标准差为 stddev = sqrt(2 / fan_in) 的截断正态分布中抽取样本, 其中 fan_in 是输入神经元的个数,在tf.keras中的实现方法为: 

# 导入工具包
import tensorflow as tf
# 进行实例化
initializer = tf.keras.initializers.he_normal()
# 采样得到权重值
values = initializer(shape=(9, 1))
# 打印结果
print(values)

② 标准化的 He 初始化

He 均匀方差缩放初始化器。它从 [-limit,limit] 中的均匀分布中抽取样本, 其中 limit 是 sqrt(6 / fan_in), 其中 fan_in 输入神经元的个数。实现为:

# 导入工具包
import tensorflow as tf
# 进行实例化
initializer = tf.keras.initializers.he_uniform()
# 采样得到权重值
values = initializer(shape=(9, 1))
# 打印结果
print(values)

http://www.lryc.cn/news/168276.html

相关文章:

  • div设置圆角#前端
  • Windows开机密码破解
  • Mobirise for Mac:轻松创建手机网站的手机网站建设软件
  • [npm] npx 介绍与使用说明
  • QT : 仿照QQ 完成弹出登录窗口,并实例化组件
  • typescrip接口 interface详解,以及ts实现多态
  • Vivado IP中Generate Output Products的设置说明
  • 9.3.5网络原理(应用层HTTP/HTTPS)
  • vue基础知识十一:Vue组件之间的通信方式都有哪些?
  • 高阶数据结构(2)-----红黑树(未完成)
  • [mockjs]Mock使用过程中的坑
  • 华为云云耀云服务器L实例评测|部署前后端分离项目
  • 02目标检测-传统检测方法
  • RP-母版 流程图 发布和预览 团队项目
  • 【第200篇原创文章】解决低于1%概率出现的芯片VPSS模块跑飞的问题
  • 微信小程序——生命周期详解(代码解读)
  • 多分类中混淆矩阵的TP,TN,FN,FP计算
  • Linux系统:OpenSSH7.4p升级到9.0p(服务器漏洞)
  • 【面试刷题】——C++的特点简单说明
  • C2基础设施威胁情报对抗策略
  • 差异备份详细说明(InsCode AI 创作助手)
  • flask要点与坑
  • EasyUI combobox 实现搜索(模糊匹配)功能
  • Postman的高级用法一:重新认识postman核心模块
  • git命令的操作
  • 超级详细 SQL 优化大全
  • 数据治理-数据存储和操作-数据库组织模型
  • IDEA最新激 20活23码
  • flutter产物以aar形式嵌入android原生工程
  • C++语法