神经网络的前向传播与反向传播 注:搬迁服务器图片已经找不到了,这个笔记的图像一开始是辅助理解,但现在已经不重要了 什么是前向传播,什么是反向传播 前向传播与反向传播 前向传播 前向传播,也叫正向传播,英文术语为Forward propagation. 前向传播可以认为是正着递推,也就是从输入层开始,经过逐层神经元的计算,得到最终预测结果的过程 前向传播 反向传播 反向传播,也叫逆向传播,英文术语为:Backp 2025-03-15 深度学习 > 理论基础 #人工智能 #神经网络 #深度学习
神经网络的权重初始化 注:搬迁服务器图片已经找不到了,暂时不会重新做实验出图像 为什么神经网络的权重需要随机初始化 如果我们将神经网络的一个隐藏层的所有参数全部初始化为相同的值,那么这一层的网络可以看成是完全对称的,每一个神经元均具有相同的参数,在之后的训练中,每一个神经元梯度下降的改变值均相同,梯度下降后参数也均相同,参数将始终保持一致,在最终结果中,该层的每个神经元参数均相同。同样的,该层如果有两个神经元参数相同, 2025-03-15 深度学习 > 理论基础 #人工智能 #神经网络 #深度学习
神经网络的权重初始化——修正 Xavier初始化 原理 考虑前向传播: 对于全连接神经网络,假设激活函数为\(g(z) = z\),那么, \[ Z^{[l]} = W^{[l]}A^{[l-1]} + b^{[l]} = W^{[l]}Z^{[l-1]} + b^{[l]} \] 对于\(Z^{[l-1]}\)内的每个元素\(z_{ij}^{[l-1]}\),假定全部都为独立同分布的随机变量,每个元素均服从均值为\(\mu_ 2025-03-15 深度学习 > 理论基础 #人工智能 #神经网络 #深度学习
神经网络的正则化 正则化的介绍和推导 神经网络的模型如果比较复杂,数据集相对而言又比较简单,那么因为模型能力强大到可以记住每一个样本,其中不乏噪声数据,会导致模型的过拟合。 因此,我们需要对过拟合的模型进行简化,让模型变得简单的一种方式是让参数变少,一种是让参数变小。 让参数个数变少,那么模型的拟合能力自然会变差。让参数的值变小,那么参数对于数据的敏感度会降低。比如\(y=wx+b\)线性回归,如果\(w\)比较大 2025-03-15 深度学习 > 理论基础 #人工智能 #神经网络 #深度学习
神经网络的激活函数 为什么需要选择非线性的函数作为激活函数 如果我们选择线性的激活函数,也就等价于将神经元第二步的非线性计算删除,即: \[ a = g(z) = z \] 对于第\(l\)层神经网络: \[ \left\{ \begin{aligned} &Z^{[l]} = W^{[l]}A^{[l-1]} + b^{[l]}\\\ &A^{[l]} = g(Z^{[l]}) = Z^{[l]} 2025-03-15 深度学习 > 理论基础 #人工智能 #神经网络 #深度学习
神经网络的退化 神经网络的退化现象 神经网络的退化(Degradation)是指在深度学习模型中,随着网络层数的增加,模型的性能并没有如预期的那样持续提高,反而出现了性能下降的现象。这种现象与我们的直觉相反,因为理论上更深的网络应该能够捕捉到更复杂的函数关系,从而提高模型的表现。 退化现象通常表现为训练误差和测试误差随着网络层数的增加而增加。即使在训练数据充足且网络能够被充分训练的情况下,退化仍然可能出现。这与过 2025-03-15 深度学习 > 理论基础 #人工智能 #神经网络 #深度学习
语言模型和数据集 语言模型 假设长度为\(T\)的文本序列中的词元依次为\(x_1, x_2, \cdots, x_T\)。于是,\(x_t\ (1\leq t\leq T)\)可以被认为是文本序列在时间步\(t\)处的观测或标签。在给定这样的文本序列时,语言模型(language model)的目标是估计序列的联合概率 \[ P(x_1, x_2, \cdots, x_T) \] 语言模型在语音识别和输入法中都是 2025-03-15 深度学习 > 理论基础 #人工智能 #神经网络 #深度学习
鞍点问题 在一个具有高维空间的损失函数中,如果一个维度上(对应一个参数\(w_i\))的梯度为0,这个时候这个参数的值为\(w_i^0\),那么在\(w_i^0\)的某个邻域内,要么是凸函数,要么是凹函数,(常函数既可以算凸函数也可以算凹函数,这里的凹凸性采用欧美定义),在一个维度上,凸函数对应着极小值,凹函数对应着极大值(注意,这里并不是严格凸函数与严格凹函数,也不是严格极大值与严格极小值),如果训练到了 2025-03-15 深度学习 > 理论基础 #人工智能 #神经网络 #深度学习
Systemed守护进程 介绍 systemd是linux系统中的一个初始化系统和服务管理器,它负责在系统启动时启动服务、监听系统事件以及管理系统的运行等。它的主要优点包括并行启动服务、按需启动进程、减少系统资源消耗等。 自定义一个systemd服务 创建服务单元文件 如果我们想自定义一个systemd服务,需要创建一个服务单元文件,该文件定义了服务的属性和行为。 服务单元文件通常存储在两个位置: /etc/system 2025-03-13 Linux > Ubuntu #Linux #Ubuntu #服务器 #后端
多GPU训练 多GPU训练的几种方式 多GPU训练的几种方式 数据并行 将同一个模型分别放到多个GPU上,每个GPU都使用一个小批量样本。 数据并行 一般来说,\(k\)个GPU并行训练过程如下: 在任何一次训练迭代中,给定的随机的小批量样本都将被分成\(k\)个部分,并均匀地分配到GPU上 每个GPU根据分配给它的小批量子集,计算模型参数的损失和梯度 将\(k\)个GPU中的局部梯度聚合(因为不 2025-03-11 深度学习 > PyTorch #人工智能 #神经网络 #深度学习 #PyTorch