深度学习系列3:神经网络那些事儿

本文深入探讨神经网络,从概念到结构,再到激活函数的作用和类型,包括sigmoid、tanh、relu等,并介绍神经网络的矩阵化表示和梯度下降求解方法。
摘要由CSDN通过智能技术生成

引言

神经网络可以说是这几年最火的机器学习算法了。今天的大数据茶馆,咱们就一起聊聊神经网络那些事儿。

一、神经网络的概念

所谓神经网络就是一个个神经元组成的网络。下面我们看看神经元,大脑神经元和算法神经元有什么相通的地方。

1.1 大脑神经元

大脑神经元结构如图所示,有多个树突和一个轴突,树突用来接收信号,轴突用来输出信号。

在这里插入图片描述
神经元从多个树突接收信号,然后综合这些信号激活产生一个输出信号,通过轴突传递给下一个神经元。

1.2 算法神经元

和大脑神经元类似,机器学习中的神经元结构如图所示。

在这里插入图片描述

从图中可以看出,算法神经元也有多个输入,输入按权重加和后通过激活函数激活生成输出。大家有没有注意到,图中画的不就是逻辑回归吗?是的,其实逻辑回归就可以看成是一个神经元,只不过神经元的激活函数除了逻辑回归的 sigmoid, 还可以是别的比如 relu,softmax 等。

所以大脑神经元和算法神经元都是把多个输入激活成一个输出,结构是相似的。但除此之外,算法神经网络和人体神经系统的生物科学并没有什么关系。

二、神经网络的结构

在这里插入图片描述

如图所示,神经网络由输入层、隐含层(可能有多个)和输出层构成,一般我们说几层神经网络是不包含输入层的,只包含隐含层和输出层,比如图中的网络是两层神经网络。

图中隐含层和输出层的每个节点都是一个神经元,接收多个输入按权重加和,然后用激活函数生成一个输出。

三、关于激活函数

3.1 为什么要有激活函数

我们说每个神经元都是多个输入按权重加和,然后再用激活函数激活来生成输出,为什么要有激活函数呢?

激活函数主要是为了给神经元加入非线性因素。假设没有激活函数,在上图中:

  1. a1 和 a2 是输入(x1,x2,x3,x4) 的线性组合
  2. y ^ \hat y y^ 是输入(a1,a2) 的线性组合
  3. 所以 y ^ \hat y y^ 也是输入(x1,x2,x3,x4) 的线性组合,就和没有隐含层的逻辑回归一样了

而实际中我们的输出与输入可不一定是线性关系,而是任意复杂的函数关系,所以我们在每个神经元处都加上非线性的激活函数,这样多层次多节点的传输下来,多个非线性函数的组合就使得 y ^ \hat y y^ 可以表示 (x1,x2,x3,x4) 的任意复杂的函数关系。然后再经过梯度下降一次次调节每个神经元的权重,就可以让 y ^ \hat y y^ 逼近真实的 y y y

3.2 有哪些常用的激活函数

常用的激活函数有 sigmoid、tanh、relu、leaky relu 以及 softmax。

3.2.1 sigmoid

sigmoid 主要用于二分类神经网络的输出层。

在这里插入图片描述

s i g m o i d : a = 1 1 + e − z s i g m o i d ′ : a ′ = a ( 1 − a ) \begin{aligned} sigmoid: a &= \frac{1}{1+e^{-z}} \\ sigmoid': a' &= a(1-a) \end{aligned} sigmoid:asigmoid:a=1+ez1=a(1a)

3.2.2 tanh

tanh 将 sigmoid 平移到中心为0上,效果比 sigmoid 好,更容易收敛。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C2KUbdiX-1584792351269)(http://123.57.75.26:8080/notePicture/picture/1584756620421_tanh.png)]

t a n h : a = e z − e − z e z + e − z t a n h ′ : a ′ = 1 − a 2 \begin{aligned} tanh: a &= \frac{e^z - e^{-z}}{e^z + e^{-z}} \\ tanh': a' &= 1-a^2 \end{aligned} tanh:atanh:a=ez+ezezez=1a2

sigmoid 和 tanh 都有一个缺点: 当变量很大的时候斜率衰减的厉害,减缓了神经网络的优化速度。

3.2.3 relu

relu 的变量为负值时结果为0,变量为正值时结果为 linear,当 Z 很大时斜率仍然没有衰减。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OqnQmFan-1584792351271)(http://123.57.75.26:8080/notePicture/picture/1584756649726_relu.png)]

r e l u : a = m a x ( 0 , z ) r e l u ′ : a ′ = { 0 , z < 0 z , z ≥ 0 \begin{aligned} relu: a &= max(0,z) \\ relu': a' &= \begin{cases}0,\quad z<0 \\z,\quad z\geq0\end{cases} \end{aligned} relu:arelu:a=max(0,z)={ 0,z<0z,z0

缺点:当变量为负数时,结果都为0,相当于负数不起作用。

3.2.4 leaky relu

leaky relu 的变量为负值时 A 不至于是0,但并不常用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ainEREwa-1584792351271)(http://123.57.75.26:8080/notePicture/picture/1584757993253_leakyRelu.png)]

l e a k y    r e l u : a = m a x ( 0.01 z , z ) l e a k y    r e l u ′ : a ′ = { 0.01 , z < 0 z , z ≥ 0 \begin{aligned} leaky\;relu: a &= max(0.01z, z) \\ leaky\;relu': a' &= \begin{cases}0.01,\quad z<0 \\z,\quad z\geq0\end{cases} \end{aligned} leakyrelu:aleakyrelu:a=max(0.01z,z)={ 0.01,z<0z,z0

3.2.5 softmax

softmax 主要用于多分类神经网络的输出层。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oklSrPgJ-1584792351271)(http://123.57.75.26:8080/notePicture/picture/1584758672030_softmax.png)]

s o f t m a x ( Z i ) = e Z i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值