zoukankan      html  css  js  c++  java
  • 我对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)
    

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

  • 相关阅读:
    二维码生成库phpqrcode使用小结
    微信扫码支付开发小结
    Xcode下开发c静态库for ios CPU架构 静态库合并
    Android.mk的用法和基础
    Android.mk介绍
    查看与修改网关,DNS
    WebRTC编译系统之GYP,gn和ninja
    sed awk文本处理教程
    有哪些自媒体平台?
    camke使用例程
  • 原文地址:https://www.cnblogs.com/bbird/p/9937862.html
Copyright © 2011-2022 走看看