我对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网络的简单的理解的更多相关文章
- 基于BP神经网络的简单字符识别算法自小结(C语言版)
本文均属自己阅读源代码的点滴总结.转账请注明出处谢谢. 欢迎和大家交流.qq:1037701636 email:gzzaigcn2009@163.com 写在前面的闲话: 自我感觉自己应该不是一个非常 ...
- BP网络简单实现
目录 BP算法的简单实现 Linear 全连接层 ReLu MSELoss 交叉熵损失函数 BP算法的简单实现 """ BPnet 简易实现 约定输入数据维度为(N, i ...
- 关于BP网络的一些总结
背景 前段时间,用过一些模型如vgg,lexnet,用于做监督学习训练,顺带深入的学习了一下相关模型的结构&原理,对于它的反向传播算法记忆比较深刻, 就自己的理解来描述一下BP网络. 关于BP ...
- OSI七层模式简单通俗理解
OSI七层模式简单通俗理解 这个模型学了好多次,总是记不住.今天又看了一遍,发现用历史推演的角度去看问题会更有逻辑,更好记.本文不一定严谨,可能有错漏,主要是抛砖引玉,帮助记性不好的人.总体来说,OS ...
- 基于Opencv自带BP网络的车标简易识别
代码地址如下:http://www.demodashi.com/demo/12966.html 记得把这几点描述好咯:代码实现过程 + 项目文件结构截图 + 演示效果 1.准备工作 1.1 训练集和测 ...
- iOS开发网络篇—简单介绍ASI框架的使用
iOS开发网络篇—简单介绍ASI框架的使用 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大 ...
- 简单的理解deflate算法
简单的理解deflate算法 最近做压缩算法. 用到了deflate压缩算法, 找了很多资料, 这篇文章算是讲的比较易懂的, 这篇文章不长,但却浅显易懂, 基本上涵盖了我想要知道的所有要点. 翻译 ...
- 基于Levenberg-Marquardt训练算法的BP网络Python实现
经过一个多月的努力,终于完成了BP网络,参考的资料为: 1.Training feed-forward networks with the Marquardt algorithm 2.The Leve ...
- 从头推导与实现 BP 网络
从头推导与实现 BP 网络 回归模型 目标 学习 \(y = 2x\) 模型 单隐层.单节点的 BP 神经网络 策略 Mean Square Error 均方误差 \[ MSE = \frac{1}{ ...
随机推荐
- 集合之HashTable
在java中与有两个类都提供了一个多种用途的hashTable机制,他们都可以将可以key和value结合起来构成键值对通过put(key,value)方法保存起来,然后通过get(key)方法获取相 ...
- 初识Qt基于http协议网页浏览
1.新建一个Qt Gui应用,项目名称为http,基类选择为QMainWindow,类名设置为MainWindow. 2.在http.pro文件中的QT += core gui后添加\ networ ...
- JavaScript实现计时器
var myVar=setInterval(function(){myTimer()},1000); function myTimer() { var d = new Date(); document ...
- unittest框架官方翻译:中文版
指数 模块 | 下一个 | 上一个 | Python » 英语 法国 日本 朝鲜的 开发(3.8) 3.7.3rc1 3.6 3.5 2.7 文档 » Python标准库 » 开发工具 » | ...
- MapReduce经典入门小案例
/** * 单词统计 * @author fengmingyue * */ public class WordCount { public static void main(String[] args ...
- 认识BPM
什么是BPM BPM,即业务流程管理,是一种以规范化的构造端到端的卓越业务流程为中心,以持续的提高组织业务绩效为目的的系统化方法,常见商业管理教育如EMBA.MBA等均将BPM包含在内. BPM能干什 ...
- Linux Shell常用技巧(三)
八. 流编辑器sed: sed一次处理一行文件并把输出送往屏幕.sed把当前处理的行存储在临时缓冲区中,称为模式空间(pattern space).一旦sed完成对模式空间中的行的处理,模式空间中的行 ...
- JS form跳转到新标签页并用post传参
通过js实现跳转到一个新的标签页,并且传递参数.(使用post传参方式) 1 超链接<a>标签 (get传参) <a href="http://www.cnblogs. ...
- float浮动的一些基础常识
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- java第一天!
public class Main { public static void main(String[] args)//main主函数 { final double PI=3.14;//定义常量,小数 ...