卷积/池化、全连接、矩阵乘法/行列式乘法
运算
全连接
全连接:参数矩阵 乘 输入向量,得到一个输出向量的形式
卷积相比全连接实际上是对参数矩阵做了一种先验的限制(矩阵是稀疏的、同时参数复用),这种先验是建立在在高维空间中相邻的数据点存在一定的关系的基础上,比如图像中一个局部之间可能构成一个形状或者一个组件,因此卷积这种操作特别适合应用于图像数据。虽然加入这种先验会让模型损失一定的拟合能力,但是从最终效果上看带来的收益是远远大于拟合能力的损失的。
卷积
https://zhuanlan.zhihu.com/p/76606892
卷积核(filter过滤器):权重函数、概率密度
输入:x
卷积后特征图谱:符合卷积核的程度、概率(概率密度对x积分,就是概率函数)
不考虑padding填充input矩阵,左边是2x2卷积核,右边是输入:
# RGB有3输入通道,有1个卷积核(一般卷积核数量不会这么少),卷积核大小为2,步长1,不填充边缘 conv = nn.Conv2d(3, 1, 2, stride=1, padding=0)
池化
有2种:maxPool最大 和 avgPool平均
以maxPool举例:设窗口大小为2x2,每次向下1步
或向右1步
# 卷积没有channels maxpool2d = nn.MaxPool2d(kernel_size=(2,2),stride=(1,1),padding=0,dilation=1)
矩阵乘法
https://www.zhihu.com/question/353784279
矩阵≠行列式,行列式=一个数
维度(一个数字)
批次大小batch size
假设你有1000个样本的训练数据,如果你设置批次大小为100,那么在每次训练迭代中,你的模型会同时处理100个样本的数据。这样,你需要10个批次(也就是10次迭代)才能完成对所有训练数据的一次完整训练,这一次完整的训练过程被称为一个训练周期(Epoch)。
序列长度
RNN
通道数
通道数通常指的是输入数据的深度。例如,对于彩色图像,通道数为3,分别对应红、绿、蓝三个颜色通道。
对于卷积层的输出,通道数=该层卷积核的数量。
Cell的隐藏状态大小
RNN:输入→隐藏层♻️→输出(一个units维的向量 [x1,x2,...,x_units])
cell = tf.keras.layers.LSTMCell(units) #LSTM: ↗隐藏层输出=下一隐藏层输入(units dim vec) #输入→隐藏层→ 输出 =下一模块的输入(units dim vec)
向量/矩阵/张量
卷积核
这些卷积核在训练过程中是独立学习的,也就是说,每个卷积核都有自己的权重参数,这些参数在训练过程中通过反向传播和梯度下降等方法进行更新。在推理过程中,所有的卷积核都会被用来对输入数据进行卷积操作。
卷积核的初始化通常是随机的,常见的方法有:
零初始化:所有权重都初始化为0。这种方法通常不推荐,因为所有的权重都开始于同一个值,会导致所有的卷积核学习到相同的特征。
随机初始化:权重随机初始化为小的数值。这是最常见的初始化方法,可以打破权重的对称性,使得每个卷积核可以学习到不同的特征。
Xavier/Glorot初始化:这种方法根据输入和输出的尺寸自动调整权重的初始值,可以保证权重在初始化时有合适的尺度。
He初始化:这是一种针对ReLU激活函数的初始化方法,可以在深度网络中保持合适的权重尺度。
Variable 可变张量
向量:一维张量、一维矩阵
矩阵:二维张量
张量:多维张量
这主要用于表示模型的参数,例如神经网络的权重和偏置。
如果你想用截断的正态分布(truncated normal distribution)来初始化一个tf.Variable,你可以使用tf.random.truncated_normal函数。例如:var = tf.Variable(tf.random.truncated_normal([100, 200]))
这行代码创建了一个形状为[100, 200]的tf.Variable,其初始值是从一个截断的正态分布中随机抽取的。这个分布的平均值为0,标准差为1,且只会抽取在两个标准差范围内的值。
概率论
先验后验
先验:由因推果,当知道某件事的原因后,推断由某个原因导致这件事发生的概率为多少。
后验:由果溯因,当知道某件事的结果后,由结果推断这件事是由各个原因导致的概率为多少。
先验概率(prior probability):指根据以往经验和分析。在实验或采样前就可以得到的概率。
后验概率(posterior probability):指某件事已经发生,想要计算这件事发生的原因是由某个因素引起的概率。
最小二乘法
极大似然
假设果1与果2是对立事件:抛硬币,X为事件“抛正面”
what
视频版:【“损失函数”是如何设计出来的?直观理解“最小二乘法”和“极大似然估计法”】【空降08:29】
虽然生活常识告诉我们,θ=0.5,但我们再假设这枚硬币动了手脚。
不能直接说θ=0.7,因为统计频率≠概率,你不能因为你抛出正面概率0.7,就说整个世界抛正面的概率就一定是0.7
所以θ是未知数,θ可以是0~1之间的任何数,θ=0.50, θ=0.66, θ=0.70, θ=0.85……
我们就得算出θ=?时,最逼近我们的统计频次结果。
计算得,仅当θ=0.7时,出现这种事情的概率最大——似然函数最大,置信度最大。
似然: 概率的概率
how
https://www.zhihu.com/question/484044429
为了避免偶然,我们又重复实验。总共10次实验,每次实验抛10下。
x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | x10 | |
---|---|---|---|---|---|---|---|---|---|---|
频次 |
7 | 7 | 3 | 7 | 5 | 7 | 7 | 7 | 9 | 7 |
当θ=0.5时,P({X=x1=7})=p(7;0.5)=
当θ=0.7时,P({X=x1=7})=p(7;0.7)=
剩下的9次实验以此类推,其中也有P({X=x3=3}), P({X=x5=5})的计算。
设θ为未知数,要让联合概率
对L(θ)求导,使得导数为0的θ,就是我们要找的极大似然估计值
why
如果只做一次实验,就判断θ=0.7,那大可不必用最大似然估计。
做了多次实验,有很多离散数据,这时我们要找一种分布函数,来拟合这些离散点,使得置信度最高,误差最小。
确定分布函数后,参数怎么找呢,这就得用最大似然估计。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步