上次说了梯度下降用于简单的线性回归问题,这次将梯度下降用于较复杂一点的神经网络结构。...网络模型比较简单,分为三层,分别为输入层、隐藏层、输出层,每层节点数可以自己定义
每个神经元将输入信号加权求和,激活函数采用sigmoid函数
init函数初始化网络相关参数,包括随机初始化两个链接权重矩阵...,采用的是一种稍微复杂的初始化方法,使用正态分布采样权重,均值为0,方差为1/\sqrt{传入链接数},权重切忌取成一样的值也不能取0值
train函数负责训练,采用梯度下降法更新链接权重,误差函数使用平方差函数...,主要来说明神经网络训练的效果,注意输入输出的值都不要给的过大,0~1之间最佳,但切忌取0
n = neuralNetwork(3, 3, 3, 0.02)
n.train([1.0, 0.5, 0.8...],[0.2, 0.9, 0.5], 4000)
每1000次打印输出,可以看到网络的输出渐渐接近于我们给定的目标输出值[0.2, 0.9, 0.5],达到训练的效果
[c9mio2o47d.png