深度学习—神经网络基本概念
一,神经元
1.生物神经元与人工神经元
1.1神经元是人脑的基本结构和功能单位之一。人脑中有数1000亿个神经元,其功能是接受(树突),整合(细胞体),传导(轴突)和输出(轴突末梢)信息实现信息转换。
1.2生物神经元特性:兴奋性,传导性
1.3神经元的类型(按功能划分):感觉神经元,运动神经元,联络神经元。
1.4人工神经元
人工神经元单元由线性函数和激活函数构成
3.人工神经网络
3.1生物神经细胞功能比较简单,需要通过很多神经元一起协作完成复杂功能,通过一定的连接方式或信息传递方式进行协作的神经元可以看做是一个网络,就是人工神经网络,简称神经网络ANN
3.2人工神经网络包括输入层,隐藏层和输出层。
3.3根据不同神经元之间的连接关系,我们可以将神经网络分为:前馈网络,反馈网络和图网络
二,感知机
1.感知机是Frank 在1957年所发明的一种最简单的人工神经网络。单层感知机本质上是一个二分类器。
2.1969年,美国数学家及人工智能先驱Minsky在其著作中证明了感知器本质上是一种线性模型,只能处理线性分类问题,无法处理非线性数据。
3.隐藏层越多,神经网络的分辨能力越强(分类能力的特征表达能力)
4.神经网络在感知器的模型上做了以下三点的扩张:
加入隐藏层,隐藏层可以有多层,增强模型的表达能力。输出层的神经元也可以不止一个,可以有多个输出,模型就可以灵活的应用于分类回归,以及其他的机器学习领域比如将维和聚类等。
对激活函数做扩展,包括Sigmoid函数,Softmax和ReLU等。
三,激活函数
1.激活函数
1,Sigmoid函数
是传统神经网络中常用的激活函数,输出值是0-1.
对中央区信号增益比较强(兴奋状态),两侧比较弱(抑制状态)
优点:单调连续,求导连续,输出是有界的网络比较容易收敛
缺点:在远离中心点的两侧导数趋于0,就会造成当网咯比较深时,越来越多的反向传播梯度会落入这个饱和区,梯度的模就会越来越小,难以训练,构成梯度消失.e5da4d989cb5fa6bfe8b9857.png)2.TanH函数
优点:输出值在-1到1之间,是关于0点对称,它比Sigmoid在中间区是变化比较敏感的,接近超出这个区,就会失去敏感性,处于饱和状态,输出输入能保持非线性单调上升下降,容错性比较好
3,Softsign函数
优点在于比Tanh相比更加平坦,更慢,能更好的解决梯度消失问题.导数比Tanh的导数更复杂.
4,ReLU函数
优点;在于梯度下降过程中能快速收敛,导数恒为1,有效缓解梯度消失问题
缺点:没有上界,训练结果会比较发散,在0点处是不可导,如果想要导数需要添加一个定义,转折点处在某些问题上显的不平滑.
5.SoftPlus函数
跟ReLU很像,可以看做是ReLU函数的平滑,根据神经科学家研究,ReLU和Softplus跟脑神经元激活模型很像.
6.SoftMax函数
将向量中的元素介于0-1之间,各个元素和为1,可以经常作用于多分类的输出.
2.如何选择激活函数?
- 非线性:引入激活函数就是要引入神经网络中的非线性
- 连续可微性:对于梯度优化方法很必要,如果选择局部不可微的函数,我们就要强行定义此处的函数,比如ReLU.
- 有界性:如果激活函数有界,基于梯度训练会比较稳定,如果是无界训练会更有效应,但是会比较发散.
- 单调性:激活函数是单调的话,单层模型相关损失函数会是凸的.
- 平滑性:有单调导数平滑函数在某些情况下泛化效果是比较好的
3.前向传播
输入信号从输入层传输到输出层的一整个过程
神经网络分为三层:输入层,隐藏层,输出层
四,损失函数
1.损失函数的含义
1.1当我们给网络一个输入,乘以w的初值,然后经过激活函数得到一个输出。然后根据输出值和label相减,得到一个差。然后根据差值做反向传播。这个差我们一般就叫损失,而损失函数,就是损失的函数。
1.2, 损失函数是用来估量你的模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y,f(x))来表示,损失函数越小,模型的鲁棒性就越好.
2.深度学习中常用的损失函数
- 均方误差:一般均方误差更多的用于回归问题,而交叉熵误差更多的用于分类问题.
- 交叉熵误差:交叉熵误差刻画了两个概率分布之间的距离.是分类问题中使用较多的一种损失函数
3.损失函数的极值
1.目的:损失函数E(W)是定义在权值空间上的函数。我们的目的是搜索使得E(W)最小的权值向量W.
限制:在数学上,尚没有求极值有效方法。
解决思路:负梯度方向是函数下降最快的方向,那我们可以从某点开始,沿着方向一路前行,期望最终可以找到极小值点,这就是梯度下降的核心思想。
4.梯度下降
4.1.全局梯度下降算法:收敛过程非常慢,因为每次更新权值都需要计算所有的训练样例。
4.2,随机梯度下降算法:难以收敛到极值
4.3,小批量梯度下降:兼顾了效率和梯度的稳定性,容易冲过局部极小值,是实际工作中最常用的梯度下降算法
五,反向传播算法
1.误差反向传播算法是神经网络的重要算法。它使用链式求导法则将输出层的误差反向传回给网络,使神经网络的权重有了较简单的梯度计算实现方法。
2.步骤:将损失函数值反向传播给每个计算单元。
每个计算单元根据获得的误差更新权重。
六,卷积神经网络
卷积神经网络是一种前馈神经网络,它的人工神经元可以相应一部分覆盖范围内的周围单元,对于图像处理有出色表现。
1.它包括卷积层,池化层和全连接层
2.CNN避免了对图像的复杂前期预处理而可以直接输入原始图像,因而得到了更为广泛的应用。
2.CNN核心思想—局部感知
2.1,一般认为人对外界的认知是从局部到全局的,图像像素点的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱。
2.2,在CNN中,每个神经元只需要收集局部信息。
2.3,优点:减少内存需求模拟视觉皮层中的神经元,每个神经元一次只收集局部信息。
3.CNN核心思想—参数共享
优点:解决图像不变性问题,解决计算和内存需求
七,循环神经网络
1.循环神经是一种通过隐藏层节点周期性的连接,来捕捉序列化数据中动态信息的神经网络,可以对序列化的数据进行分类。
2为何需要RNN
2.1神经网络都智只能单独的去处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。
3.RNN的训练
RNN有着非常深的时间维度
4.RNN的问题
4.1,基本的循环神经网络存在梯度爆炸和梯度消失问题,并不能真正的处理好长距离的依赖。
4.2,反向训练时,对于RNN来说,要横向往前推,一直往前推到序列开始的地方。
4.3,梯度消失,梯度爆炸都与距离长度太长有关,前面的权重都基本固定不变,没有训练效果。
5,RNN适用场景
5.1,不太长的相关信息和位置信息。
5.2适用于需要连接前面短期内的信息到当前任务上。