机器学习(神经网络)笔记

2021-12-10  本文已影响0人  yourdhh

基础考虑

定义

我们观察 l 层的输入 z^l

对于上面的输入,定义神经元为 S 型神经元,那么其结果 a 为:

为了评估和目标的差距,同时用来作为调整的依据,我们定义代价函数:

目标和推导

我们的目标是期望神经网络的输出和目标吻合,即代价函数最小。
观察代价函数 C,我们的思考如下:

由上面分析,问题就变成了,对已知的 C,我们应该怎么调整 wb
为此,我们期望知道 wb 的变化和 C 的关系:

同时,为了能够调整其他层的参数,我们看一下各个层之间的 \delta的关系。\delta^l = ((w^{l+1})^T\delta^{l+1})\odot \sigma'(z^l)

现在,让我们把视线关注在 l 层的 j 神经元上,当一个样本输入后,假设样本预设输出应该是 1.0,而实际神经元输出是 0.1,那么我们将目光放在 l-1 层上,我们逐个计算每个连接的 w^l_{jk} 和本神经元的 b^l_j 的变化对 C 的影响,然后记录下这个应该调整的值。

然后,对于下一个样本,我们同样进行计算,最后我们将这些调整取其平均值,做为调整参数调整到神经网络里面。这批小的样本就叫做 batch,其大小就是 batch size。

这期间,我们会发现不同样本对神经元的 bw 有不同的理解,有些会说 b 该提高很大,有些会说 b 该减少一点点。经过样本一轮一轮的刷新,各个神经元的阈值就会分化,权重也会分化。最终这个神经网络就会适应这个训练任务。

所以,基于神经网络的训练就是一个神经元和权重不断试错和分化的过程,不同的起始参数,不一样的训练顺序,训练出来的参数可能都是不一样的,也对应了不同的模型。

上一篇 下一篇

猜你喜欢

热点阅读