浅谈神经网络中的bias
1、什么是bias?
偏置单元(bias unit),在有些资料里也称为偏置项(bias term)或者截距项(intercept term),它其实就是函数的截距,与线性方程 y=wx+b 中的 b 的意义是一致的。在 y=wx+b中,b表示函数在y轴上的截距,控制着函数偏离原点的距离,其实在神经网络中的偏置单元也是类似的作用。
因此,神经网络的参数也可以表示为:(W, b),其中W表示参数矩阵,b表示偏置项或截距项。
2、bias的计算方式?
神经网络结构中对偏置单元的计算处理方式有两种,
(1)设置偏置单元=1,并在参数矩阵 Θ 中设置第 0 列对应偏置单元的参数,对应的神经网络如下:
其中,x0 是第一层的偏置单元(设置为1),Θ(1)10 是对应该偏置单元 x0 的参数;a(2)0 是第二层的偏置单元,Θ(2)10 是对应的参数。
在计算激活值时按照(以a(2)1为例):
相当于bias本身值为1,但它连接各个神经元的权重不为1,即---整个神经网络只有1个bias,对应有多个不同的权重(权重个数等于hide层和out层神经元的个数)
(2)设置偏置单元,不在参数矩阵中设置对应偏置单元的参数,对应的神经网络如下:
其中,b(1) 是 W(1) 对应的偏置单元向量,b(2) 是 W(2) 对应的偏置单元向量,b(1)1 是对应 a(2)1 的偏置单元。注意,此时神经网络的参数表示更改为:(W, b)
在计算激活值时按照:
相当于bias连接各个神经元的所有权重都为1,但bias本身不为1,即---有多个bias,但所有的bias对应的权重都为1(bias的个数等于hide层和out层神经元的个数)
综上,
两者的原理是一致的,只是具体的实现方式不同。
其实在大部分资料和论文中看到的神经网络的参数都是表示为:(W, b),其中W代表weight,b代表bias。包括在UFLDL Tutorial中也是采用 (W, b) 表示,只是在Coursera上Andrew Ng老师的在线教程中看到将神经网络参数表示为 Θ,个人还是更喜欢 (W, b) 这种表示,很清晰。
参考资料
http://blog.csdn.net/walilk/article/details/50278697
浅谈神经网络中的bias的更多相关文章
- 浅谈Java中的equals和==(转)
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...
- 浅谈Linux中的信号处理机制(二)
首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号处理机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Lin ...
- 浅谈Java中的对象和引用
浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...
- 浅谈Java中的equals和==
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: String str1 = new String("hello"); String str2 = ...
- 转【】浅谈sql中的in与not in,exists与not exists的区别_
浅谈sql中的in与not in,exists与not exists的区别 1.in和exists in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表 ...
- 浅谈iOS中的userAgent
浅谈iOS中的userAgent User-Agent(用户代理)字符串是Web浏览器用于声明自身型号版本并随HTTP请求发送给Web服务器的字符串,在Web服务器上可以获取到该字符串. 在公司产 ...
- 浅谈JavaScript中的闭包
浅谈JavaScript中的闭包 在JavaScript中,闭包是指这样一个函数:它有权访问另一个函数作用域中的变量. 创建一个闭包的常用的方式:在一个函数内部创建另一个函数. 比如: functio ...
- 浅谈sql中的in与not in,exists与not exists的区别
转 浅谈sql中的in与not in,exists与not exists的区别 12月12日北京OSC源创会 —— 开源技术的年终盛典 » sql exists in 1.in和exists ...
- 浅谈Java中的深拷贝和浅拷贝(转载)
浅谈Java中的深拷贝和浅拷贝(转载) 原文链接: http://blog.csdn.net/tounaobun/article/details/8491392 假如说你想复制一个简单变量.很简单: ...
随机推荐
- VS2019打开项目加载失败:无法找到 .NET Core SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配。
问题描述: 用VS2019创建了asp.net core项目,正常运行:过几天后,再次打开,发现无法加载项目,报错无法找到.net core sdk. 分析过程: 首先怀疑环境变量的问题,重新设置 ...
- ROUTE: route addition failed
ROUTE: route addition failed 1)报FlushIpNetTable failed on interface错误 应对:以管理员身份运行OpenV-P-N 2)报Warnin ...
- java封装数据类型——Boolean
众所周知,java对常见的原始数据类型都提供了对应的封装类型,增加一些常用的特性(如 计算hash值.比较相等.类型转换等),以扩展他们对数据处理的能力,使得他们更好地适应面向对象编程的各种场景.今天 ...
- springboot启动流程(十一)aop切面处理过程
所有文章 https://www.cnblogs.com/lay2017/p/11478237.html 正文 spring的两大核心就是ioc和aop.在关于ioc依赖注入的文章中,我们了解了如何根 ...
- flex应用实例
代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" c ...
- Java 面向对象(六)接口
一.接口 接口:是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量.构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(J ...
- Java基础加强-类加载器
/*类加载器*/ 把.class文件从硬盘上加载出来,将类的字节码(二进制)加载到内存中 /*类加载器及其委托机制*/ Java虚拟机中可以安装多个类加载器(可以自己编写),系统默认三个主要类加载器, ...
- Python之定义默认参数
定义函数的时候,还可以有默认参数. 例如Python自带的 int() 函数,其实就有两个参数,我们既可以传一个参数,又可以传两个参数: >>> int('123') 123 > ...
- impala 中SQL的优化方法
1.取流水表的数据时,如果是使用全部分区数据,不能从SA层数据取数,需要改从SH层取数,因为SH层为parquet存储,查询性能较好. 2.对于脚本中使用的临时表,如果存在以下情况需要进行统计表信息 ...
- linux添加地址映射