1.神经网络基础
定义,人工神经网络,简称神经网络,在计算机领域中,是一种模拟生物神经网络的结构功能和计算的模型, 目的是模拟大脑某些机理与机制,实现某个方面的功能,如图像的识别,语音的识别等。
神经网络的发展
1958 年,第一次兴起,以单层的神经网络为主。代表技术,感知机,模拟神经元的模型里,单层的神经网络提出,具有了神经网络的雏形。可以做一些简单的线性问题。
1986 年,第二次兴起,出现了多层的神经网络。出现了多层的神经网络,可以分析和解决更加复杂的问题,反向传播算法的出现,加速了网络结构参数训练,使得网络实际可用。应用场景,字符机器识别,下国际象棋。
2012 年,第三次兴起,以卷积神经网络,循环神经网络为代表。卷积神经网络和循环神经网络的出现,使用多层卷积操作处理分析图像,取得了比传统机器学习更加高效的结果。使用循环神经网络,使用上下文环境处理世界序列函数,使得语音、文本等多媒体信息能被处理和分析,使用场景图像智能处理,语音识别,自然语言的处理等。
2.神经网络的组成
神经元,负责计算和处理输入的信号。
网络的连接,负责将不同的神经元连接起来,形成神经网络。连接两团各为一个神经元,一个神经元的输出为另一个神经元的神射手,网络连接有加权参数。
演进的过程,
- 单层神经网络,一层的输入单元,只负责数据的传输,不做计算,一层的输出单元,对前面输入单元进行计算。
- 两层神经网络,输入单元和输出单元增加隐藏层,输入层与输出层的节点数往往固定,隐藏层的节点可以自由指定。
- 多层神经网络,随着隐藏层的增加,结构负责即为多层神经网络。
- 卷积神经网络/循环神经网络。
3.常用的激活函数
激活函数对计算结果进行非线性变换。
Sigmoid 激活函数,讲一个实数映射到(0,1)区间,可以用来二分类。
Tanh 激活函数,取值[-1,1],在特征相差明显时效果会很好,在循环过程中不断扩大特征效果。
ReLu 激活函数,目前广泛用于激活函数,快速收敛,计算效率高。
Leaky ReLu 激活函数,快速收敛,计算效率高,正趋于内不会饱和。
偏执值,一个阈值,用于度量神经元产生正负激励的难易程度,输入信号求和后大于阈值输出为 0,否则输出为 1。
3.神经网络的训练过程
主要流程,定义网络结构,随机生成网络连接权重参数,针对训练样例计算预测值,根据实际值与预测差异更新网络参数,训练多轮。
损失函数
损失值,神经网络训练过程中的预测值与实际期望值之间的差异。
损失值越大,模型越不精准,神经网络的训练目标就是减少损失值,计算损失值的函数即为损失函数。
常用损失函数
均方差损失函数,简单易理解,但网络层数深时训练收敛速度变慢。
交叉熵损失函数,误差大事,网络参数更新快。
反向传播算法
根据输出层和隐藏层之间的计算关系,得到损失函数和隐藏层参数间的偏导数。根据输出层的误差,以及当前训练用的输入数据,计算获得网络参数的更新值。
根据输出层与输入层之间的计算关系,得到损失函数和隐藏层参数间的偏导数。根据输出层误差,以及当前训练用的输入数据,计算获得网络参数和更新值。
梯度消失问题
梯度消失,随着神经网络层数的增多,损失函数对网络参数的偏导数值越小,导致网络参数趋向于不再更新,神经网络芯片不收敛,常见于 Sigmoid、Tanh 函数,可以使用 ReLu 环节梯度消失问题。
常见的神经网络及适用场景
- 多层感知机,含有多个隐藏层,使用 Sigmoid,Tanh 激活函数,支持反向传播适用于分类与回归问题。
- 深度神经网络,进一步怎家隐藏层数,采用 ReLu 激活函数,存在梯度消失问题,适用于分类与回归问题。
- 卷积神经网络,隐藏层为卷积运算,可以对图像进行处理,适用于图像识别。
- 循环神经网络,神经元内部保存其先前的值,用于下一时刻的计算,可以对时间序列数据进行处理,适用于语音、文本识别。
4.卷积神经网络与应用
定义,一种带有卷积结构的深度神经网络,通过特征提取和分类识别完成对输入数据的判别。
与传统神经网络的联系,都具有可学习的权重和偏执常量组成,与神经元接受输入,进行点积运算,输出每个分类的分数。
与传统神经网络的区别,卷积神经网络的神经元具有三个维度,适合处理图片。
卷积神经网络的工作原理,模拟大脑识别图像的过程,打包不同区域识别图像不同维度的特征。由多个卷积层构成,每个卷积层包含多个卷积核,卷积核从左向右,从上往下一次臊面整个图像,得到特征图,经过多个卷积层的运算,最后得到图像在各个不同尺度的抽象表示,从而识别图像。
卷积操作
卷积核,带有一组固定权重的神经元,通常为 n*m 的二维矩阵。
卷积运算,输入矩阵和卷积核对应位置相乘,结果累加。
卷积层,使用给定的卷积核函数对输入数据进行特征提取,即用卷积核的矩阵自上而下、自左向右在图像上滑动,将卷积核矩阵的各个元素与他在图像上覆盖的对应位置的元素相乘,然后求和,得到输出像素值,使用不同的卷积核变换可得到不同的特征结果,被用于图像去噪,增强,边缘检测,提取图像特征等。每次卷积完成后需要使用激活函数处理,实现对特征结果的修正。
池化操作
对数据进行降维,减少数据特征,减少网络参数和运算的次数,避免过拟合,对图像的某一个区域用一个值代替,常用方法,最大值池化,求和值池化,均值池化。
全连接操作
卷积获得的是局部的特征,全连接是把以前的局部特征重新通过权值矩阵,组装成完整的图,称为全连接。
5.循环神经网络与应用
定义,RNN,以序列数据输入,在序列的演进方向进行递归且所有节点按链式连接的递归神经网络。
与传统的神经网络对比
传统的神经网络输入与输出之间是相互独立的,前馈网络只会在训练阶段记得输入数据,测试时不记得之前的输入数据,也不会改变网络的权重。
循环神经网络,不仅将当前没得输入样本作为网络的输入,还将网络之前感知到的一并作为输入。
发展历程
基本循环神经网络,简单循环神经网络,双向循环神经网络,长短期记忆网络。
应用场景,文本生成,机器翻译,看图识别意境,语音识别等。
工作原理
循环神经元存储了所有之前的输入,并将这些信息和当前步的输入合并,可以捕获当前数据步和之前步的相关性,可以实现序列前后数据的关联处理。循环神经元组合多个循环神经元进一步组成循环神经网络,理论上可以记住之前所有的输入。
6.生成对抗网络
定义,一种深度学习的模型,通过对生成模型和判别模型的相互博弈学习,生成接近真实数据的数据分布或输入数据进行分类。
生成对抗网络对比
- 传统的神经网络,根据输入的数据特征,预测输入数据的标签,一个神经网络就是一个训练模型,网络训练时,依赖于输入数据样本更新参数梯度。
- 生成对抗网络,根据输入数据的标签,生成接近真实的输入分布,一个网络包含生成器和判别器两个模型,网络训练时,生成器模型;梯度更新依赖于判别器模型,生成器和判别器可以使 CNN 和 RNN 神经网络。
应用场景,图像生成,生成真假难辨的高分辨率图像,实现图像风格的转换。人脸的合成,半监督学习中数据的生成等。
工作原理
- 生成器,在给定输入数据时,理解输入,生成类似的输入。
- 判别器,在给定输入数据时,将输入数据正确的分类。
- 工作流程,判别网络,接受样本数据,训练判别模型,同时生成网络接收随机的噪声数据,生成随机样本,给到训练判别网络,训练多次后更新生成器参数,直至判别器分辨不出样本还是生成数据为止。