动手学深度学习V2每日笔记(模型初始化和激活函数)

本文主要参考沐神的视频教程 https://www.bilibili.com/video/BV1u64y1i75ap=2&vd_source=c7bfc6ce0ea0cbe43aa288ba2713e56d
文档教程 https://zh-v2.d2l.ai/

本文的主要内容对沐神提供的代码中个人不太理解的内容进行笔记记录,内容不会特别严谨仅供参考。

1. 模型初始化

1.1 让训练更加稳定

  • 目标:让梯度值在合理的范围内
    例如[1e-6, 1e3]
  1. 将乘法变为加载:ResNet, LSTM
  2. 归一化:梯度归一化,梯度剪裁
  3. 合理的权重初始化和激活函数

1.2 让每层的方差是一个常数

  • 将每层的输出和梯度都看做随机变量
  • 让它们的均值和方差都保持一致
    正向:
    E [ h i t ] = 0 E[h_i^t]=0 E[hit]=0
    V a r [ h i t ] = a Var[h_i^t]=a Var[hit]=a
    反向
    E [ d l d h i t ] = 0 E[\frac{\mathrm{d}l}{\mathrm{d}h_i^t}]=0 E[dhitdl]=0
    V a r [ d l d h i t ] = b Var[\frac{\mathrm{d}l}{\mathrm{d}h_i^t}]=b Var[dhitdl]=b
    a 和 b 均为常数 a和b均为常数 ab均为常数

1.3 Xavier初始化

Xavier 初始化的基本思想是保持神经网络的输入和输出的方差相同,从而使每一层的输出在训练开始时具有相同的尺度。这样可以有效地防止梯度消失或爆炸问题,使得网络更容易训练。
Xavier使得 r t ( n t − 1 + n t ) / 2 = 1 − > r t = 2 n t − 1 + n t r_t(n_{t-1}+n_t)/2=1->r_t=\frac{2}{n_{t-1}+n_t} rt(nt1+nt)/2=1>rt=nt1+nt2
权重可以从均匀分布或正态分布中抽取:

  • 如果权重从均匀分布中抽取:
    w i j − u ( − 6 n t + n t − 1 , 6 n t + n t − 1 ) w_{ij}-u(-{\frac{\sqrt6}{\sqrt{n_t+n_{t-1}}}, \frac{\sqrt6}{\sqrt{n_t+n_{t-1}}}}) wiju(nt+nt1 6 ,nt+nt1 6 )
  • 如果权重从正态分布中抽取
    w i j − u ( 0 , 2 n t + n t − 1 ) w_{ij}-u(0, \frac {2}{n_t+n_{t-1}}) wiju(0,nt+nt12)

2 概率的基础知识

2.1 期望和方差

2.1.1 期望(均值)

定义:期望值(均值)是指一组数据的平均值,表示随机变量可能取值的中心位置。
数学定义:
对于离散随机变量
E ( X ) = ∑ i x i P ( X = x i ) E(X) = \sum_{i} x_i P(X = x_i) E(X)=ixiP(X=xi)

2.1.2 方差

定义:方差是描述随机变量的离散程度的参数,表示数据点与均值之间的平均偏离程度的平方。
数学定义
对于随机变量X及其期望值 E [ X ] = μ E[X]=\mu E[X]=μ方差 V a r ( X ) Var(X) Var(X)定义为:
Var ( X ) = E [ ( X − μ ) 2 ] = E [ X 2 ] − μ 2 \text{Var}(X) = E[(X - \mu)^2]=E[X^2]-\mu^2 Var(X)=E[(Xμ)2]=E[X2]μ2
对于离散随机变量 X:
V a r ( X ) = ∑ i ( x i − μ ) 2 P ( X = x i ) Var(X)=\sum_i(x_i-\mu)^2P(X=x_i) Var(X)=i(xiμ)2P(X=xi)
示例:
假设我们有一个离散随机变量 𝑋,它可以取以下三个值:1、2 和 3,并且它们的概率分别是0.2、0.5 和 0.3。我们想要计算这个随机变量的方差。
步骤1:计算期望
μ = 1 ∗ 0.2 + 2 ∗ 0.5 + 3 ∗ 0.3 = 2.1 \mu=1*0.2+2*0.5+3*0.3=2.1 μ=10.2+20.5+30.3=2.1
步骤2:计算每个取值与均值的差的平方
( x 1 − μ ) 2 = ( 1 − 2.1 ) 2 = 1.21 (x_1-\mu)^2=(1-2.1)^2=1.21 (x1μ)2=(12.1)2=1.21
( x 2 − μ ) 2 = ( 2 − 2.1 ) 2 = 0.01 (x_2-\mu)^2=(2-2.1)^2=0.01 (x2μ)2=(22.1)2=0.01
( x 3 − μ ) 2 = ( 3 − 2.1 ) 2 = 0.81 (x_3-\mu)^2=(3-2.1)^2=0.81 (x3μ)2=(32.1)2=0.81
步骤3:计算每个差的平方乘以相应的概率
( x 1 − μ ) 2 P ( X = x 1 ) = 1.21 ∗ 0.2 = 0.242 (x_1-\mu)^2P(X=x_1)=1.21*0.2=0.242 (x1μ)2P(X=x1)=1.210.2=0.242
( x 2 − μ ) 2 P ( X = x 2 ) = 0.01 ∗ 0.5 = 0.005 (x_2-\mu)^2P(X=x_2)=0.01*0.5=0.005 (x2μ)2P(X=x2)=0.010.5=0.005
( x 3 − μ ) 2 P ( X = x 3 ) = 0.81 ∗ 0.3 = 0.243 (x_3-\mu)^2P(X=x_3)=0.81*0.3=0.243 (x3μ)2P(X=x3)=0.810.3=0.243
步骤 4:计算方差 Var(X)
V a r ( X ) = 0.242 + 0.005 + 0.243 = 0.49 Var(X)=0.242+0.005+0.243=0.49 Var(X)=0.242+0.005+0.243=0.49

2.2 正态分布

正态分布(Normal Distribution),也称为高斯分布(Gaussian Distribution),是概率论和统计学中最重要的连续分布之一。它描述了许多自然现象和社会现象的分布情况。
正态分布的定义
正态分布的概率密度函数(PDF)定义为:
f ( x ) = 1 2 π μ 2 e − ( x − μ ) 2 2 σ 2 f(x)=\frac{1}{\sqrt{2\pi\mu^2}}e^-\frac{(x-\mu)^2}{2\sigma^2} f(x)=2πμ2 1e2σ2(xμ)2
其中:

  • μ 是均值,表示分布的中心位置。
  • σ 是标准差,表示分布的宽度。标准差的平方 σ 2 \sigma^2 σ2为方差。
  • x 是随机变量的取值。
    正态分布的性质
  1. 对称性:正态分布关于均值 𝜇
  2. 钟形曲线:其概率密度函数呈钟形曲线。
  3. 均值、众数和中位数相等:对于正态分布,这三个统计量是相等的。
  4. 68-95-99.7 规则:在正态分布中,大约68%的数据位于均值 𝜇加减一个标准差 𝜎之间,大约95%的数据位于均值 𝜇加减两个标准差 𝜎之间,大约99.7%的数据位于均值 𝜇加减三个标准差 𝜎之间。
    在这里插入图片描述

2.3 均匀分布

均匀分布(Uniform Distribution)是一种简单但重要的概率分布,描述了在某个范围内每个值出现的概率相等的情况。
均匀分布的定义
均匀分布分为离散均匀分布和连续均匀分布两种。

连续均匀分布
对于连续均匀分布,若随机变量 𝑋在区间 [𝑎,𝑏]上均匀分布,其概率密度函数(PDF)定义为:
{ 1 b − a   i f   a ≤ x ≤ b 0   o t h e r w i s e \left\{ \begin{aligned} \frac{1}{b-a}\ if\ a≤x≤b \\ 0\ otherwise \end{aligned} \right. ba1 if axb0 otherwise
其中:

  • 𝑎和 𝑏是区间的下限和上限。
  • 1 b − a \frac{1}{b-a} ba1是在区间 [𝑎,𝑏]上每个值出现的概率密度。

离散均匀分布
对于离散均匀分布,若随机变量 𝑋只能取有限个值 { x 1 x_1 x1, x 2 x_2 x2,… x n x_n xn},且这些值出现的概率相等,则每个值的概率为:
P ( X = X i ) = 1 n P(X=X_i)=\frac 1n P(X=Xi)=n1
其中:

  • 𝑛是可能取值的总个数。

均匀分布的性质
对称性:均匀分布关于区间的中点对称。
均值和方差:
对于连续均匀分布 [𝑎,𝑏]均值和方差分别为:
μ = a + b 2 \mu=\frac {a+b}{2} μ=2a+b
σ 2 = ( b − a ) 2 12 \sigma^2=\frac{(b-a)^2}{12} σ2=12(ba)2
对于离散均匀分布{ x 1 x_1 x1, x 2 x_2 x2,… x n x_n xn},均值和方差分别为:
μ = 1 n ∑ i = 1 n ( x i − μ ) 2 \mu=\frac 1n\sum_{i=1}^n(x_i-\mu)^2 μ=n1i=1n(xiμ)2

import numpy as np
import matplotlib.pyplot as plt

# 参数
a = 2
b = 8

# 创建数据点
x = np.linspace(0, 10, 1000)
y = np.where((x >= a) & (x <= b), 1/(b - a), 0)

# 绘制均匀分布曲线
plt.plot(x, y, label='Uniform Distribution', color='blue')
plt.fill_between(x, y, where=(x >= a) & (x <= b), color='blue', alpha=0.3)
plt.xlabel('x')
plt.ylabel('Probability Density')
plt.title('Uniform Distribution on [2, 8]')
plt.grid(True)
plt.show()

在这里插入图片描述

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《动手深度学习 v2》是一本介绍深度学习的教材,通过动手实践的方式帮助读者深入理解深度学习的理论和实践。这本书由李沐等人共同编写,内容包含了深度学习的基本概念、算法原理以及实际应用等方面。 这本书的优点之一是注重实践,通过大量的案例和代码实现,读者可以亲自动手搭建深度学习模型,并通过实际操作来理解算法的工作原理。此外,书中还涵盖了一些最新的深度学习技术和应用,帮助读者跟上深度学习领域的最新发展。 《动手深度学习 v2》也具有一定的难度,对于初者来说需要一定的数和编程基础才能更好地理解和实践。但是,书中的难点都有详细的解答和说明,读者可以在遇到困难时查看相关解析,提升习效果。 总的来说,《动手深度学习 v2》是一本非常实用的深度学习教材,适合有一定基础的读者习和实践。通过阅读这本书,读者可以系统地深度学习的基本概念和算法,掌握如何应用深度学习解决实际问题,进而在深度学习领域有更深入的理解和应用。 ### 回答2: 《动手深度学习 v2》pdf是一本深度学习入门的教程,适合初深度学习的理论和实践。这本教程由作者李沐、阿斯顿·张剑锋等人合作撰写,涵盖了深度学习的基本概念、神经网络的构建、常见深度学习模型、计算机视觉、自然语言处理等领域的应用。 这本教程的特点是注重实践,每个章节都提供了大量的代码示例和实验指导,让读者可以动手实践,巩固所知识。同时,教程还配有相应的代码库和数据集,读者可以下载使用。 教程通过讲解深度学习的基本概念和原理,帮助读者建立起对深度学习的整体认识。然后,通过实例演示和实践,教会读者如何使用深度学习框架搭建神经网络,并进行训练和优化。 另外,这本教程也介绍了一些常见的应用领域,如计算机视觉和自然语言处理。读者可以习到如何使用深度学习来解决图像分类、目标检测、文本生成等问题。 最后,这本教程还提供了一些深度学习的进阶内容,如深度生成模型和强化习等,供读者深入习和拓展。 总的来说,《动手深度学习 v2》pdf是一本很好的深度学习入门教程,通过动手实践和实例演示,帮助读者快速入门和掌握深度学习的基本知识和应用技巧。对于想要深度学习的初者来说,是一本非常有价值的教材。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值