http://blog.csdn.net/xwd18280820053/article/details/70681750

可视图讲解神经元w,b参数的作用

在我们接触神经网络过程中,很容易看到就是这样一个式子,g(wx+b),其中w,x均为向量.比如下图所示:

加入激活函数为g(x),我们就可以用公式g(w1x1+w2x2+b)(注:1,2均为下标,公众号很难打,下面所有的公式均是)来表示神经元的输出。

其中b为神经元的偏置.那么w,b这些参数的作用有没有最直观的感受呢?以及我当时学习的时候问师兄的,每个神经元为什么要加上偏置b,不加又有什么后果呢?

下面通过二维可视化图来直观说明一下它们的作用:

加入我们激活函数用的是sigmoid函数,它的图像如下:

我们很容易看到sigmoid函数的作用是将输入映射到一个(0,1)的输出范围

现在我们还是有一个简单的任务,需要将下面三角形和圆形进行分类:

利用上面神经元训练可以得到一个直线,去线性分开这些数据点.方程如下:

w1x1+w2x2+b=0,我们就可以得到下面这条类似的直线去线性分割好俩种不同类型的数据点.

那么这条边界找到了.而这个边界是w1x1+w2x2+b=0的方程,而w1x1+w2x2+b是作为激活函数sigmoid的输入处理.

激活函数将这个输入映射到(0,1)的范围内.那么可以增加一个维度来表示激活函数的输出.

我们认为g(x)>0.5就为正类(这里指圆形),g(x)<0.5就为负类,这里指三角形类.得到的三维图如下:第三维z可以看成是一种类别!(比如圆形就是+1、三角形就是-1)

图来自:Hugo Larochelle课程ppt

那么就可以真正的可视化说明一下w.b等参数的作用在图中是怎么体现的~

我们从上图很容易得到,当我们将这个三维图进行投影的时候,就是我们上个用直线分割好俩类的平面图,三维图中的那个分割平面投影下来就是方程w1x1+w2x2+b=0.

右边输出为1的部分就是说w1x1+w2x2+b>0,导致激活函数输出>0.5,从而分为正类( 圆形类),左边输出为-1的部分就是说w1x1+w2x2+b<0,导致激活函数输出<0.5,从而分为负类( 三角形类)

1  w参数的作用

其中w参数的作用,我们可以得到,是决定那个分割平面的方向所在.分割平面的投影就是直线w1x1+w2x2+b=0

我们解释如下,在二个输入中,可以得到w=[w1,w2],令方程w1x1+w2x2+b=0,那么该直线的斜率就是-w1/w2。随着w1,w2的变动,直线的方向也在改变,那么分割平面的方向也在改变~

2  b参数的作用

其中b参数的作用,是决定竖直平面沿着垂直于直线方向移动的距离,当b>0的时候,直线往左边移动,当b<0的时候,直线往右边移动.

我们通过例子解释如下:首先我们可以肯定是直线方向不变,因为我们没有动斜率的任何参数,只是改变b,要说明的就是为什么当b>0的时候,直线往左边移动,当b<0的时候,直线往右边移动.

假设我们有直线方程x1+x2-3=0,画出这个图像如下:

此时我们将b减小到0,图像变为如下:

我们从上面图像中很容易得到结论:

当b>0的时候,直线往左边移动,当b<0的时候,直线往右边移动.

有了b参数可视化作用之后,我们很容易解决我一开始的问题.每个神经元为什么要加上偏置b,不加又有什么后果呢?下面通过二维可视化图来直观说明一下它们的作用:

3  每个神经元为什么要加上偏置

我先不说为什么一定要加入偏置b,就还是上面的分类问题,假如我现在的样本点是如下这种:

此时我们希望得到的线性方程分割线是下面这种,能够正确的将俩类进行分开:

到这个时候,我想我们已经明白了,如果没有偏置的话,我们所有的分割线都是经过原点的,但是现实问题并不会那么如我们所愿.都是能够是经过原点线性可分的。

神经网络中w,b参数的作用(为何需要偏置b的解释)的更多相关文章

  1. 如何选取一个神经网络中的超参数hyper-parameters

    1.什么是超参数 所谓超参数,就是机器学习模型里面的框架参数.比如聚类方法里面类的个数,或者话题模型里面话题的个数等等,都称为超参数.它们跟训练过程中学习的参数(权重)是不一样的,通常是手工设定的,经 ...

  2. Jquery中Ajax异步请求中的async参数的作用

    之前不知道这个参数的作用,上网找了前辈的博客,在此收录到自己的博客,希望能帮到更多的朋友: test.html <a href="javascript:void(0)" on ...

  3. (转)AS3 中,Function.apply、call中第一个参数的作用;与什么时候用

    http://blog.csdn.net/linjf520/article/details/8746064 大家在使用Function.apply或是call时,是否发现,第一个参数不知道怎么用,赋值 ...

  4. Java中final修饰参数的作用

    在方法参数前面加final关键字就是为了防止数据在方法体中被修改. 主要分两种情况:第一,用final修饰基本数据类型:第二,用final修饰引用类型. 第一种情况,修饰基本类型(非引用类型).这时参 ...

  5. 【转载】 【Tensorflow】卷积神经网络中strides的参数

    原文地址: https://blog.csdn.net/TwT520Ly/article/details/79540251 http://blog.csdn.net/TwT520Ly -------- ...

  6. pytorch的函数中的group参数的作用

    1.当设置group=1时: conv = nn.Conv2d(in_channels=, out_channels=, kernel_size=, groups=) conv.weight.data ...

  7. ListView的监听器中OnItemClick各个参数的作用

    方法的原型如下 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){ } 后面有4个参 ...

  8. pytorch的函数中的dilation参数的作用

    如果我们设置的dilation=0的话,效果如图: 蓝色为输入,绿色为输出,可见卷积核为3*3的卷积核 如果我们设置的是dilation=1,那么效果如图: 蓝色为输入,绿色为输出,卷积核仍为3*3, ...

  9. 浅谈神经网络中的bias

    1.什么是bias? 偏置单元(bias unit),在有些资料里也称为偏置项(bias term)或者截距项(intercept term),它其实就是函数的截距,与线性方程 y=wx+b 中的 b ...

随机推荐

  1. python爬虫之正则表达式

    一.简介 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念 ...

  2. MySQL中and和or的优先级的问题

    参考资料: 关于MySQL中AND和OR的优先级的问题 SQL语句中的AND和OR执行顺序问题 MySQL带OR关键字的多条件查询

  3. Java多线程之单例模式(线程安全)

    package org.study2.javabase.ThreadsDemo.sync; /** * @Auther:GongXingRui * @Date:2018/9/20 * @Descrip ...

  4. Calendar用法随笔

    平时在处理时间问题的时候,一般会想到用java.util.Date类型,在使用倒时间的运算的时候,就不是很方便,找找到了java.util.Calendar类,中文意思是“日历”,以下就是自己对这个类 ...

  5. EChart.js 笔记一

    一直对数据可视化比较感兴趣,当年 Alibaba 年报晚会上的大屏显示可谓是技惊四座,够震撼,将数据之美展现得淋漓尽致. 国内的前端数据可视化插件中,echart.js 算是热度很高的,也容易上手,算 ...

  6. css伪元素之before和after

    css里面的伪元素主要是用来给选择器设置特殊效果.根据常用性,记录before和after. “:before”伪元素用来在元素的内容前面添加新的元素.比如标题前面会有一个小方块,就可以通过‘ :be ...

  7. solr单机版搭建

    需要把solr服务器安装到linux环境: 第一步:安装linux.jdk.tomcat. [root@bogon ~]# ll total 8044 -rw-r--r--. 1 root root ...

  8. spring的作用是减低耦合,从编译器降低,例如不直接通过new方式 而是通过工厂方式获取对象

    spring的作用是减低耦合,从编译器降低,例如不直接通过new方式 而是通过工厂方式获取对象

  9. Nginx 如何处理上游响应的数据

    陶辉93 一个非常重要的指令 proxy_buffer_size 指令限制头部响应header最大值 proxy_buffering 指令主要是指 上游服务器是否接受完完整包体在处理 默认是on 也就 ...

  10. Git——入门操作加创建账号【三】

    创建账号 GitHub https://github.com/ 码云 https://gitee.com/ 无论是github还是码云,创建账号都是非常简单快捷的,大家可以自行选择创建下,不过建议最好 ...