深度学习笔记2——神经网络的结构

神经网络的结构

  1. 感知机
    感知机

感知机接收多个输入信号,返回一个输出信号。如图, x 1 x_1 x1, x 2 x_2 x2是输入信号, w 1 w_1 w1, w 2 w_2 w2是权重, y y y是输出信号。输入信号被送往神经元时,会被分别乘以固定的权重,神经元会计算传送过来的信号的总和,只有当这个总和超过了某个界限值时,才会输出 1 1 1。这也称为“神经元被激活”。这里将这个界限值称为阈值,用符号 θ \theta θ表示

用数学公式表示为
y = { 0 ( b + w 1 x 1 + w 2 x 2 ⩽ 0 ) 1 ( b + w 1 x 1 + w 2 x 2 > 0 ) y=\left\{\begin{array}{ll}0&(b+w_1x_1+w_2x_2\leqslant0)\\[1ex]1&(b+w_1x_1+w_2x_2>0)\end{array}\right. y={01(b+w1x1+w2x20)(b+w1x1+w2x2>0)
其中, b b b是偏置,用于控制神经元被激活的难易程度。

  1. 神经网络

用图来表示神经网络的话,如图3-1所示。我们把最左边的一列称为输入层,最右边的一列称为输出层,中间的一列称为中间层(图中省略偏置)

神经网络结构

使用
h ( x ) = { 0 ( x ⩽ 0 ) 1 ( x > 0 ) h(x)=\begin{cases} 0&(x\leqslant0)\\[0.3em] 1&(x>0)\end{cases} h(x)={01(x0)(x>0)
令自变量为 y y y,表示神经元受输入信号激发后的反应(判断是否激活)。

简化为

y = h ( b + w 1 x 1 + w 2 x 2 ) y=h(b+w_1x_1+w_2x_2) y=h(b+w1x1+w2x2)

  1. 激活函数

上述 h ( x ) h(x) h(x)将输入信号的综合转化为输出信号,执行此功能的函数称为激活函数。在神经网络图中可以绘制如下图形可以明确表示激活函数的作用过程

明确表示激活函数

  • 阶跃函数作为激活函数
  • sigmoid函数作为激活函数
  • ReLU(Rectified Linear Unit)函数

以阈值为界,一旦输入超过阈值,就切换输出。这样的函数称为“阶跃函数”。即上式的 h ( x ) h(x) h(x)

sigmoid函数:
h ( x ) = 1 1 + exp ⁡ ( − x ) h(x)=\frac{1}{1+\exp(-x)} h(x)=1+exp(x)1

是神经网络常用的激活函数。

sigmoid函数的图像如下

阶跃函数和sigmoid函数图像

sigmoid函数是一条平滑的曲线,输出随着输入发生连续性的变化。而阶跃函数以0为界,输出发生急剧性的变化。sigmoid函数的平滑性对神经网络的学习具有重要意义。

在神经网络发展的历史上,sigmoid函数很早就开始被使用了,而最近则主要使用ReLU(Rectified Linear Unit)函数,它可以表示为。

h ( x ) = { x ( x > 0 ) 0 ( x ⩽ 0 ) h(x)=\begin{cases} x&(x>0)\\ 0&(x\leqslant0)\end{cases} h(x)={x0(x>0)(x0)

ReLU函数图像

  1. 输出层的设计

神经网络可以用在分类问题和回归问题上,不过需要根据情况改变输出层的激活函数。一般而言,回归问题用恒等函数,分类问题用softmax函数。

softmax函数:
y k = exp ⁡ ( a k ) ∑ i = 1 n exp ⁡ ( a i ) y_k=\frac{\exp(a_k)}{\sum\limits_{i=1}^n\exp(a_i)} yk=i=1nexp(ai)exp(ak)

为避免数值计算时的溢出问题

根据softmax函数的性质做如下调整

y k = exp ⁡ ( a k ) ∑ i = 1 n exp ⁡ ( a i ) = C exp ⁡ ( a k ) C ∑ i = 1 n exp ⁡ ( a i ) = exp ⁡ ( a k + log ⁡ C ) ∑ i = 1 n exp ⁡ ( a i + log ⁡ C ) = exp ⁡ ( a k + C ′ ) ∑ i = 1 n exp ⁡ ( a i + C ′ ) \begin{aligned}y_{k}=\frac{\exp(a_{k})}{\sum_{i=1}^{n}\exp(a_{i})}&=\frac{\mathrm{C}\exp(a_k)}{\mathrm{C}\sum_{i=1}^n\exp(a_i)}\\&=\frac{\exp(a_k+\log\mathrm{C})}{\sum_{i=1}^n\exp(a_i+\log\mathrm{C})}\\&=\frac{\exp(a_k+\mathrm{C'})}{\sum_{i=1}^n\exp(a_i+\mathrm{C'})}\end{aligned} yk=i=1nexp(ai)exp(ak)=Ci=1nexp(ai)Cexp(ak)=i=1nexp(ai+logC)exp(ak+logC)=i=1nexp(ai+C)exp(ak+C)

可以看出,在括号内同时加减某个数,函数值不变,为防止数值溢出,一般 C ′ C' C取输入信号中的最大值

所以以一个3层深度学习神经网络为例,其具体结构可以展示为

三层神经网络

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逃离小星球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值