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

神经正切核推导(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.xdnf.cn/news/8731.html

相关文章:

  • DeepSeek联网Google搜索引擎
  • Windows端的C函数setlocale、printf与wprintf打印中文字符谜局小解
  • 深入浅出IIC协议 - 从总线原理到FPGA实战开发 -- 第六篇:AXI4-Lite桥接设计
  • 金众诚业财一体化解决方案如何提升项目盈利能力?
  • 国际荐酒师(香港)协会亮相新西兰葡萄酒巡展深度参与赵凤仪大师班
  • 《数据结构》系列笔记|附扫描手写笔记 1.0开篇-数据结构在学什么?
  • 【八股战神篇】操作系统高频面试题
  • Markdown 到 LaTeX:Overleaf 学习笔记
  • 华为OD机试真题——欢乐周末 (2025B卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 《深入探秘:从底层搭建Python微服务之FastAPI与Docker部署》
  • 在Linux下用GPIO模拟I2C通信(软件)
  • 前端流行框架Vue3教程:26. 异步组件
  • [医学影像 AI] 使用 PyTorch 和 MedicalZooPytorch 实现 3D 医学影像分割
  • xss-labs第15关
  • 历年华中科技大学保研上机真题
  • 【数据结构】图论探秘:广度优先遍历(BFS)与生成树的构建艺术
  • DAY35
  • JVM 的内存模型
  • 【MySQL系列】SQL 分组统计与排序
  • Vue-数组操作方法技术解析大纲
  • 【爬虫学习】Python数据采集进阶:从请求优化到解析技术实战
  • 解决论文中字体未嵌入的问题
  • Q2:如果 Channel 没有关闭,读取会一直阻塞吗?
  • leetcode654.最大二叉树:递归分治下的最大值索引定位与树构建
  • 显示docker桌面,vnc远程连接docker
  • Android应用中设置非系统默认语言(使用Kotlin)
  • 机械师安装ubantu双系统:三、GPT分区安装Ubantu
  • 【医学影像 AI】医学影像 AI 入门:PyTorch 基础与数据加载
  • 并发编程艺术--AQS底层源码解析(一)
  • 计算机视觉---YOLOv2