算法工程师修仙之路:TensorFlow(十)

本文深入解析深度学习中深层神经网络的非线性特性,通过引入激活函数和偏置项,使神经网络能够处理复杂的非线性关系。文章详细介绍了神经元的结构,包括权重、偏置和激活函数的作用,以及如何通过前向传播算法进行计算。

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

深层神经网络

深度学习与深层神经网络


激活函数实现去线性化

  • 神经元结构的输出为所有输入的加权和,这导致整个神经网络是一个线性模型。如果将每一个神经元(也就是神经网络中的节点)的输出通过一个非线性函数,那么整个神经网络的模型也就不再是线性的了,这个非线性函数就是激活函数。

  • 加入偏置项和激活函数的神经元结构示意图:
    在这里插入图片描述

  • 神经网络结构加上激活函数和偏置项后的前向传播算法的数学定义:A1=[a11,a12,a13]=f([x1,x2][W11(1),W12(1),W13(1)W21(1),W22(1),W23(1)]+[b1,b2,b3])=f([W11(1)x1+W21(1)x2+b1,W12(1)x1+W22(1)x2+b2,W13(1)x1+W23(1)x2+b3])=[f(W11(1)x1+W21(1)x2+b1),f(W12(1)x1+W22(1)x2+b2),f(W13(1)x1+W23(1)x2+b3)]A_1=[a_{11},a_{12},a_{13}]=f([x_1,x_2]\begin{bmatrix} W_{11}^{(1)},&W_{12}^{(1)},&W_{13}^{(1)}\\W_{21}^{(1)},&W_{22}^{(1)},&W_{23}^{(1)}\end{bmatrix}+[b_1,b_2,b_3])=f([W_{11}^{(1)}x_1+W_{21}^{(1)}x_2+b_1, W_{12}^{(1)}x_1+W_{22}^{(1)}x_2+b_2, W_{13}^{(1)}x_1+W_{23}^{(1)}x_2+b_3])=[f(W_{11}^{(1)}x_1+W_{21}^{(1)}x_2+b_1), f(W_{12}^{(1)}x_1+W_{22}^{(1)}x_2+b_2), f(W_{13}^{(1)}x_1+W_{23}^{(1)}x_2+b_3)]A1=[a11,a12,a13]=f([x1,x2][W11(1),W21(1),W12(1),W22(1),W13(1)W23(1)]+[b1,b2,b3])=f([W11(1)x1+W21(1)x2+b1,W12(1)x1+W22(1)x2+b2,W13(1)x1+W23(1)x2+b3])=[f(W11(1)x1+W21(1)x2+b1),f(W12(1)x1+W22(1)x2+b2),f(W13(1)x1+W23(1)x2+b3)]

    • 新的公式中增加了偏置项(bias),偏置项是神经网络中非常常用的一种结构。
    • 每个节点的取值不再是单纯的加权和,每个节点的输出在加权和的基础上还做了一个非线性变换。
  • 常用的神经网络激活函数的函数图像:
    在这里插入图片描述

    • 这些激活函数的函数图像都不是一条直线,所以通过这些激活函数,每一个节点不再是线性变换,于是整个神经网络模型也就不再是线性的了。
    • 偏置项可以被表达为一个输出永远为1的节点。
  • 加入偏置项和激活函数的神经网络结构图:
    在这里插入图片描述

  • 目前 TensorFlow 提供了 7 种不同的非线性激活函数,tf.nn.relu 、tf.sigrnoid 和 tf.tanh 是其中比较常用的几个。当然,TensorFlow 也支持使用自己定义的激活函数。

    a = tf.nn.relu(tf.matmul(x, w1) + biases1)
    y = tf.nn.relu(tf.matmul(a, w2) + biases2)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值