机器学习09--神经网络的激活函数(Activation Function)及python代码实现

本文探讨了神经网络中激活函数的作用,特别是在矩阵运算后调用激活函数如tanh。激活函数对于梯度下降过程至关重要,防止梯度消失问题。文章提及了初始化、学习率等参数对神经网络训练的影响,并讨论了不同激活函数的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在前面的一些关于机器案例中使用了激活函数,
机器学习(1)--神经网络初探 开篇中的 tanh(x)与tanh_deriv(x)两个函数
    TensorFlow实例(5.1)--MNIST手写数字进阶算法(卷积神经网络CNN) 中在最大池化时使用的 tf.nn.relu

我们为什么要使用激活函数,通常他有如下一些性质:

非线性: 如果是线性的时候,多层的神经网络是无意义的
可微性: 做梯度下降,这是不可少的
单调性: 如果是非单调的,那么无法保证网络是凸函数。
全是高数的东东,看着晕,相当的感觉用处不大,如果你数学足够好,自己能创建或写出新的激活函数,
立马觉得我这写得太简单,然后一块豆腐把我拍个半死,丫的什么都不懂
如果你数学和我一样不太好,那就用用别人常用的就好了,所以卵用没有,纯粹为了假装很懂,让你不明觉厉

激活函数用在什么地方

当我们定义好神经网络层,并在每两层间做完矩阵乘法计算weight时,即np.dot后,

我们设val=np.dot(w,x),这时我们会再调用激活函数,如tanh(val)

当神经网络正向计算完后,进行反向计算时,

通过 y(实际值)-y(计算值)求出误差error  ,通过error * tanh_deriv() 可以得到我们要调整的值

基中tanh_deriv是tanh的导数,所以激活函数一定是成对出现,正向使用激活函数,反向使用激活函数的导数 <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值