激活函数

点击链接:mnist实现demo在线体验

激活函数的作用

在神经网络中,激活函数的作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题。 
我们尝试引入非线性的因素,对样本进行分类。

在神经网络中也类似,我们需要引入一些非线性的因素,来更好地解决复杂的问题。而激活函数恰好就是那个能够帮助我们引入非线性因素的存在,使得我们的神经网络能够更好地解决较为复杂的问题。

常见的激活函数有Sigmoid,Relu,tanh等。 
关于上述函数的公式,在此不赘述。

Sigmoid函数如下: 
这里写图片描述

tanh函数如下: 
这里写图片描述

Relu函数如下: 
这里写图片描述

在Tensorflow中使用激活函数 
以Relu函数为例:

import tensorflow as tf# 默认Tensorflow会话sess = tf.InteractiveSession()# Relu函数处理负数print("anwser 1:",tf.nn.relu(-2.9).eval())# Relu函数处理正数print("anwser 2:",tf.nn.relu(3.4).eval())# 产生一个4x4的矩阵,满足均值为0,标准差为1的正态分布a = tf.Variable(tf.random_normal([4,4],mean=0.0, stddev=1.0))# 对所有变量进行初始化,这里对a进行初始化tf.global_variables_initializer().run()# 输出原始的a的值print("原始矩阵:\n",a.eval())# 对a使用Relu函数进行激活处理,将结果保存到b中b = tf.nn.relu(a)# 输出处理后的a,即b的值print("Relu函数激活后的矩阵:\n",b.eval())123456789101112131415161718192021222324

结果如下:(由于不同的机器,运行结果会有不同)

anwser 1: 0.0anwser 2: 3.4原始矩阵: [[-0.42271236  0.70626765  0.4220579  -1.19738662]
 [-0.09090481  1.20085275 -1.37331688 -0.28922254]
 [-0.63343877  0.04532439 -0.98322827 -0.01032094]
 [ 0.364104    1.00423157  0.23247592 -1.13028443]]Relu函数激活后的矩阵: [[ 0.          0.70626765  0.4220579   0.        ]
 [ 0.          1.20085275  0.          0.        ]
 [ 0.          0.04532439  0.          0.        ]
 [ 0.364104    1.00423157  0.23247592  0.        ]]123456789101112

可以发现,对于输入是一个数字来说,输出满足公式。对于输入参数是一个矩阵的情况,relu函数对矩阵中的每一个数字均使用了Relu函数进行处理,负数直接变为0.0,正数保持不变。

其他的激活函数亦是如此。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值