1、神经网络激励函数:
添加的处理函数一定要是可微的
才能使用梯度下降算法。
sigmoid函数:一般常用这个函数
对这个函数求导:
Tanh函数
Tanh函数的图像如上图所示。它会将输入值压缩至-1到1之间,当然,它同样也有sigmoid函数里说到的第一个缺点,在很大或者很小的输入值下,神经元很容易饱和。但是它缓解了第二个缺点,它的输出是0中心化的。所以在实际应用中,tanh激励函数还是比sigmoid要用的多一些的。
有了此特性在计算它的梯度下降时就简便了很多;
2、反向传播算法又称BP算法(Back Propagation)
那么如何确定每个感知器的权向量呢?这时我们需要使用反向传播算法来逐步进行优化。
通过最小化损失函数来不断调整权向量
为了得到权向量,我们通过最小化损失函数来不断调整权向量。此方法也适用于此处求解权向量,首先我们需要定义损失函数,由于网络的输出层有多个输出结点,我们需要将输出层每个输出结点的差值平方求和。于是得到每一个训练样例的损失函数为:(前面加个0.5方便后面求导使用)
在多层的神经网络中,误差曲面可能有多个局部极小值,这意味着使用梯度下降算法找到的可能是局部极小值,而不是全局最小值。
现在我们有了损失函数,这时可以根据损失函数来调整输出结点中的输入权向量,这类似感知器中的随机梯度下降算法,然后从后向前逐层调整权重,这就是反向传播算法的思想。
输入
输出
输出导数:
学习速率不要开快,最小从0.000001开始学习,否则神经元很容易死掉,无法起作用
输出值只需要在理论值范围内即可
对此进行PID参数的自整定
前期非常混乱,神经网络正在学习适应系统,后期明显看出收敛的情况,再后期期望值与输出值像跳绳一样,逐渐重合
都是用python编写的,总结的不太好有点乱,有什么问题可以留言互相学习讨论,需要代码可发邮箱
后面还会进行多种pid的仿真处理,希望能够实现智能化pid参数整定,不需要人为参与,神经网络学习,人工智能实现自稳定,模仿自然进化一样。