神经网络之激活函数

前面的博客激活函数简要的了解了一下什么是激活函数,现在在正则化和神经网络模块化中突然遇到了激活函数,所以下面主要讲解一下我对激活函数的理解;

def forward(x, regularizer):#前向传播
    
    w1 = get_weight([2,11], regularizer)#设置权重    
    b1 = get_bias([11])#设置偏执
    y1 = tf.nn.relu(tf.matmul(x, w1) + b1)#计算图

    w2 = get_weight([11,1], regularizer)#设置权重
    b2 = get_bias([1])#设置偏执
    y = tf.matmul(y1, w2) + b2 #计算图
    
    return y#返回值

            在前面代码y1 = tf.nn.relu(tf.matmul(x, w1) + b1)中,用到了激活函数 tf.nn.relu();

那什么是激活函数呢?

如上图,在y=h(b=w1x1+w2x2)中引入了一个激活函数h(x);将y由原来的判断b=w1x1+w2x2是否大于0改为判断h(x)中x的值是否大于0,而x的值则由w1x1+w2x2来决定,这就引入了激活函数;

激活函数:在于决定如和来激活输入信号的总和;

                      那激活函数的作用又是什么?应该选取什么样的激活函数呢?

首先,激活函数一般选取非线性函数,激活函数的作用:就是引入非线性激活因素,提高模型抗干扰能力

             我们来看看引入线性的激活函数会怎么样,如下图

 

 会发现,如果是线性函数,则不管引入几层,最后还是一个形如最开始的线性激活函数。

 下面简要介绍一下各个激活函数;

 

posted @ 2019-06-04 09:36  浮沉沉浮  阅读(566)  评论(0编辑  收藏  举报