神经网络
NN
多层前向神经网络
输入层(特征向量值):神经元数量由特征值确定,特征值有多少就有多少
隐藏层(可以有很多层):层数和每层神经元数量不定
输出层(标记分类):神经元数量由目标集确定
每个神经元存的数字由上一个神经元传的值,自己的值和偏置值决定
权重(w)
偏置(b):除了输入层,每一层神经元都有偏置
激励函数activation function
隐藏层足够多,训练集足够大,可以模拟任何问题
NN算法(BP=Back Propagation后项传播)
1.特征向量标准化normalize(通过算法,特征值转化为0-1之间的值,即输入值在0-1之间)
比如毛色:输入层四个输入值 黑1000 蓝0100 就是选到谁谁就设1
2.随机初始化权重和偏置(-1-1之间)
3.传入样例
比如:输入层四个输入传为0.1,0.2,0.3,0.4
4.计算神经元的值
1.对上层输入加权求和:上层的每个特征值乘以自己和该神经元的权重的值再相加
2.加上偏置值
3.用激励函数产生最后结果(sigmoid function)
f(x)=1/(1+e^(-x))
5.根据误差反向传送
6.误差计算
1.输出层 Err =(结果)*(1-结果)*(预期值-结果)
2.隐藏层 Err = ( 结果 )*(1-结果)*(后一层Err加权求和)
3.权重更新
Δwij = (learning rate)*Err*Oi learning grate: 学习率
wij = wij + Δwij
4.偏置更新
Δbj=(learning rate)*Errj
bj = bj+Δbj
训练NN
不断通过样例调整权重和偏置的过程
训练好的神经网络可以用于预测新的样例
训练终止
1.训练一定次数(epoch)
或
2.既定错误率
或
3.权重更新低于某个Threhold(阈值)
自己定
激励函数
如双曲函数,逻辑函数(上面例子),阶跃函数。。。
learning rate
学习的步长