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

神经正切核推导(2)

对神经正切核的理解和推导(1)-CSDN博客

这篇文章包括很多概念的理解

声明:

本篇文章来自于Neural Tangent Kernel (NTK)基础推导 - Gearlesskai - 博客园

旨在对上述推导过程进行再推导与理解 手写推导部分与其他颜色字体为本作者所写

初始化:Kaiming Initialization / He Initialization

正如其名字,这个初始化方法是大佬何恺明ICCV 2015的工作, Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification 提出的

初始化的意义在于调整各层神经元的方差,确保不会出现梯度爆炸和梯度消失的情况。从自然科学的角度来看,可以说这样初始化调整后的网络具有某种意义上的空间平移不变性,我们希望这种“空间对称性”可以为神经网络带来一个类似“动量守恒”一样的守恒量

在何恺明之前的Xavier初始化对激活函数对称性要求较高,没有很好地考虑到激活函数为非奇函数时 E(σ(x))≠0 的情况(考虑对了量级,但是没有根据激活函数的性质调整参数),所以并不很适用于RELU这种激活函数,而何恺明考虑到了这种情况,Kaiming Initialization可以应用于非奇函数。

Assumptions

很好理解的一点是,既然我们的网络参数都已经奔着标准正态分布初始化了,那么聪明的读者当然会想到,输入的 x 肯定已经被初始化为一个符合标准正态分布的 d 维矢量(这很好做到,并且大伙都已经这么干了)

以下是本人二次推导

权重初始化代码和效果

import numpy as npdef initialize_weights(input_dim, output_dim, activation='relu'):# 根据激活函数选择 C_sigmaif activation == 'relu':C_sigma = 2.0elif activation == 'tanh':C_sigma = 1.0else:C_sigma = 1.0  # 默认值# 计算方差variance = C_sigma / input_dim# 生成权重矩阵weights = np.random.normal(loc=0.0, scale=np.sqrt(variance), size=(input_dim, output_dim))return weights# 示例
input_dim = 784  # 输入层维度
output_dim = 256  # 输出层维度
weights = initialize_weights(input_dim, output_dim, activation='relu')print("Weights shape:", weights.shape)
print("Weights variance:", np.var(weights))

结果
Weights shape: (784, 256)
Weights variance: 0.002565874746590602

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

相关文章:

  • Python模型优化技巧
  • Redis 面试场景
  • MySQL 索引失效及其解决办法
  • Ctrl+鼠标滚动阻止页面放大/缩小
  • 开发积累总结
  • C++虚函数与类对象模型深度解析
  • 3d世界坐标系转屏幕坐标系
  • 【2025】基于Springboot + vue + 协同过滤算法实现的旅游推荐系统
  • AI数据治理破局的战略重构
  • QT6安装与概念介绍
  • Python包管理工具uv 国内源配置
  • ABP VNext + Webhook:订阅与异步回调
  • Docker(二):开机自启动与基础配置、镜像加速器优化与疑难排查指南
  • Lua基础语法
  • 2025年渗透测试面试题总结-匿名[实习]安全工程师(安全厂商)(题目+回答)
  • 【node.js】实战项目
  • 从AD9361 到 ADSY1100 ,中间的迭代产品历史
  • 免费插件集-illustrator插件-Ai插件-查找选中颜色与pantone中匹配颜色
  • redis集合类型
  • [爬虫实战] 爬微博图片:xpath的具体运用
  • MySQL中简单的操作
  • NNG和DDS
  • 防震基座在半导体晶圆制造设备抛光机详细应用案例-江苏泊苏系统集成有限公司
  • 框架开发与原生开发的权衡:React案例分析(原生JavaScript)
  • Lua5.4.2常用API整理记录
  • Python打卡训练营学习记录Day36
  • ### Mac电脑推送文件至Gitee仓库步骤详解
  • 官方SDK停更后的选择:开源维护的Bugly Unity SDK
  • 什么是智能体agent?
  • 【多线程】Java 实现方式及其优缺点