小亥 发表于 2024-10-09 16:55 这不需要大牛来回答吧?It’s an iterative process during training. if what you ask about choosing training set data, that’s a different story
有人给你点了赞。 谢谢! 至少比那个傻乎乎的chatgpt强。 听说chatgpt是nobel prize winner的弟子,搞出来的。所以这么简单的问题, 还回答不清楚。真的不知道chatgpt是干什么用的。 几天前,Hinton就是凭借这个三层神经网的后传获得了nobel prize。 你的回答,并非正确。举个简单的例子。 如果是“It’s an iterative process during training.” 那么当你改变样本的输入顺序,最终结果会不一样。但是结果是,你发现无论我们怎么改变样本的输入 顺序,结果都是一样的。 因此,你的结论是错误的。
第一步: 输入(x1,x2,x3) 输出y 当输入第一组数据时,我们可以反向传播,而更新各层的w和b
第二步: 当输入第二组数据时,我们是如何得到各层的w和b?是独立于第一步吗?
大多数教科书只讲第一步。所以我不明白,第二步是如何进行的?
请大牛赐教。
当总共有n租数据时,是如何最终得到各层的w和b的呢?
难道是w = (w1+w2+...wn) / n b = (b1+b2+...bn) / n ?
perfect question for ChatGPT. Below is the answer from there and you can try yourself and ask more questions.
对于三层神经网络(3x3x1)的反向传播算法,其实并不是简单地通过对每次训练样本独立地更新权重和偏置。每一步都会对权重和偏置进行调整,但这些调整是基于每个样本的误差传播出来的梯度。在多次训练样本的情况下,所有样本的梯度都会影响权重和偏置的最终更新。
下面详细说明反向传播过程中如何逐步更新权重和偏置:
### 第一步:对于单个训练样本进行反向传播 对于每一组输入数据(例如第一个样本),通过反向传播计算误差,并基于误差来更新每一层的权重 \( w \) 和偏置 \( b \)。
1. **前向传播**: 你先将输入数据 \( (x_1, x_2, x_3) \) 输入到网络,计算出每一层的激活值,直到获得输出 \( y_{\text{pred}} \)。 2. **计算误差**: 比较预测值 \( y_{\text{pred}} \) 和真实值 \( y \),计算损失函数,比如均方误差或交叉熵损失。
3. **反向传播**: 从输出层开始,计算误差对每一层的权重和偏置的梯度。反向传播会逐层向前传播误差。
4. **更新权重和偏置**: 使用梯度下降或其他优化算法,基于误差的梯度更新每一层的权重 \( w \) 和偏置 \( b \): \[ w_{\text{new}} = w_{\text{old}} - \eta \cdot \frac{\partial L}{\partial w} \] 其中 \( \eta \) 是学习率,\( \frac{\partial L}{\partial w} \) 是损失函数对权重的偏导数。同理,偏置 \( b \) 也通过类似的方法更新。
### 第二步:对于下一组训练数据的处理 当输入第二组数据时,反向传播的过程与第一步是类似的。关键在于:
- **权重和偏置是在累积更新的基础上进行的**:即第二组数据的反向传播过程是基于第一步已经更新过的权重和偏置进行的。也就是说,反向传播并不是在每次输入一个新样本时重置网络的权重和偏置,而是利用上一步的结果,并进一步调整。 - 所以,第二组样本更新时会对网络当前的权重和偏置 \( w_{\text{new1}} \) 和 \( b_{\text{new1}} \) 进行进一步调整。 - 这种逐步更新的方式使得网络的参数能够逐渐逼近最优解。
### 第三步:多次样本的处理 当有 \( n \) 组训练数据时,反向传播算法会逐个样本进行训练并更新权重和偏置。常见的两种方法:
1. **在线学习(Online Learning)**: 每输入一个样本,就立即计算梯度并更新权重和偏置。
2. **批量学习(Batch Learning)**: 一次输入多个样本(小批量),然后计算这些样本的梯度平均值,再更新一次权重和偏置。这种方式的更新公式是: \[ w_{\text{new}} = w_{\text{old}} - \eta \cdot \frac{1}{n} \sum_{i=1}^{n} \frac{\partial L_i}{\partial w} \] 偏置 \( b \) 也类似。这里的更新是对所有样本梯度的平均值进行调整。
### 关键点: 你提到的 \[ w = \frac{w_1 + w_2 + ... + w_n}{n}, \quad b = \frac{b_1 + b_2 + ... + b_n}{n} \] 并不是标准的更新方式。实际的更新并不是每次样本都独立训练再平均,而是通过梯度下降的过程,不断更新权重和偏置。这个过程可以是每个样本后更新一次,也可以是对一个小批量的数据后更新一次。
### 总结: 当你有多个样本时,反向传播是一个逐步累积的过程,而不是每个样本独立更新权重和偏置。每个样本都影响到模型的最终参数,但它们之间并非完全独立,而是通过梯度的累积更新来让模型逐步优化。
看完chatgpt,你的理解是什么? 我更喜欢听人的意见。
这不需要大牛来回答吧?It’s an iterative process during training.
if what you ask about choosing training set data, that’s a different story
有人给你点了赞。 谢谢! 至少比那个傻乎乎的chatgpt强。 听说chatgpt是nobel prize winner的弟子,搞出来的。所以这么简单的问题, 还回答不清楚。真的不知道chatgpt是干什么用的。
几天前,Hinton就是凭借这个三层神经网的后传获得了nobel prize。
你的回答,并非正确。举个简单的例子。
如果是“It’s an iterative process during training.” 那么当你改变样本的输入顺序,最终结果会不一样。但是结果是,你发现无论我们怎么改变样本的输入 顺序,结果都是一样的。
因此,你的结论是错误的。
为什么在机器学习中,与图像无关的建模比赛中,神经网络几乎每次都是最次的那种模型,当与其它模型相比时(比如XGBoost, Random Forest......)?
而有图像的建模比赛中,大家都用DL。