我对BP网络的简单的理解

Posted bbird

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我对BP网络的简单的理解相关的知识,希望对你有一定的参考价值。

最近在学习tf的神经网络算法,十多年没有学习过数学了,本来高中数学的基础,已经彻底还给数学老师了。所以我把各种函数、公式和推导当做黑盒子来用,理解他们能做到什么效果,至于他们是如何做到的,暂时不去深究,最多知道哪个公式的效果会比哪个更适合哪个场合。

BP网络应该是最入门级的算法了。

技术分享图片

    #用伪代码描述下大概如此
    # 单层BP
x = tf.placeholder(tf.float32,[None,256])
y = tf.placeholder(tf.float32,[None,10])

w = tf.Variable(tf.random_normal([256,10]))
b = tf.Variable(tf.zeros([10]))

pred = tf.nn.softmax(tf.multiply(w,x)+b)
loss = tf.reduce_sum(-pred*tf.log(y))
op = tf.train.GradientDescentOptimizer(0.001).minimize(loss)
多层网络
x = tf.placeholder(tf.float32,[None,256])
y = tf.placeholder(tf.float32,[None,10])

w1 = tf.Variable(tf.random_normal([256,1024]))
b1 = tf.Variable(tf.zeros([1024]))

x1 = tf.nn.relu(tf.multiply(w1,x)+b1)

w2 = tf.Variable(tf.random_normal(1024,10))
b2 = tf.Variable(tf.zeros([10]))
pred = tf.nn.softmax(tf.multiply(w2,x1)+b2)
loss = -tf.reduce_sum(pred*tf.log(y))
op = tf.train.GradientDescentOptimizer(0.001).minimize(loss)

去掉了所有的训练过程,也没有应用到具体的场景,尽可能把模型描绘一下,自己的理解,理解的不对请大家指正。

以上是关于我对BP网络的简单的理解的主要内容,如果未能解决你的问题,请参考以下文章

如何理解CNN神经网络里的反向传播backpropagation,bp算法

深入浅出BP神经网络算法的原理

bp神经网络预测模型matlab代码

在看了案例二中的BP神经网络训练及预测代码后,我开始不明白BP神经网络究竟能做啥了。。。 程序最后得到

MATLAB从入门到精通:搭建一个 简单的Bp神经网络(附代码)

MATLAB从入门到精通:搭建一个 简单的Bp神经网络(附代码)