人工智能介绍(下)


深度学习网络-DNN
神经网络是基于感知机的扩展,而DNN可以理解为有很多隐藏层的神经网络。多层神经网络和深度神经网络DNN其实也是指的一个东西,DNN有时也叫做多层感知机。局限性有参数数量膨胀,局部最优,梯度消失,无法对时间序列上的变化进行建模。

卷积神经网络-CNN
CNN并不是所有的上下层神经元都能直接相连,而是通过“卷积核”作为中介。同一个卷积核在多个图像内是共享的,图 像通过卷积操作仍能保留原先的位置关系。CNN之所以适合图像识别,正式因为CNN模型限制参数个数并挖掘局部结构的这个特点。让一个小块对应一个神经元,计算出的一个像素就是一个神经元,一张图片由无数个神经元铺满。CNN由一个或多个卷积层和顶端的全连通层组成,同时也包括关联权重和池化层,多用于图像、自然语言处理、推荐系统等应用。
输入层:将每个像素代表一个特征节点输入到网络中
卷积层:卷积运算的主要目的是使原信号特征加强,并降低噪音
降采样层:降低网络训练参数及模型的过拟合程度
全连接层:对生成的特征进行加权
Sofymax层:获得当前样例属于不同类别的概论
卷积核在二维输入数据上“滑动”,对当前输入部分的元素进行矩阵乘法,然后将结果汇为单个输出像素值,重复这个过程直到遍历整张图像,这个过程就叫做卷积。这个权值矩阵就是卷积核。卷积操作后的图像称为特征图。卷积输出都是所有数据的加权求和。卷积后的输出值是所有可能性穿在的概率值不是0或1。
局部连接:每个输入特征不用查看每个输入特征,而只需查看部分输入特征
权值共享:卷积核在图像上“滑动过程中不变”
卷积运算的主要目的是使原信号特征加强,并降低噪音。对图像用卷积核进行卷积运算实际上是一个滤波的过程。每个卷积核都是一种特征提取方式,将图像中符合条件的部分筛选出来。
计算图像一个区域上的某个特定特征值的平均值或最大值,这种聚合操作就叫做池化。卷积层的作用是探测上一层特征的局部连接,而池化的作用是在语义上把相似的特征合并起来,损失部分信息但提高空间不变性,达到降维的目的。
常用的池化方法有均值池化和最大池化。均值池化对池化区域内的像素点取均值,均值池化得到的特征数据对背景信息更加敏感。最大池化对池化区域内所有像素点取最大值,最大池化得到的特征数据对纹理特征信息更加敏感。
步长是卷积操作的重要概念,表示卷积核在图片上移动的格数。通过步长的变换,可以得到不同尺寸的卷积输出结果。
通过降采样以减少数据处理量的同时保留有用信息。


深度学习框架
Caffe:2013年,UC Berkeley的贾扬清在Github上发布的第一款主流的工业级深度学习框架。优点是上手快、速度快、模块化、开放性、社区好、GPU和CPU之间无缝切换。缺点有Caffe 不能支持细粒度网络层,构建复杂的层类型必须以低级语言完成,由于其遗留架构,Caffe对循环网络和语言建模的支持总体上很薄弱。
TensorFlow:2015年,TensorFlow在Apache 2.0协议下开源发布当前最流行的深度学习框架。优点:支持多语言接口(C++/Python/Java/Go/R),支持细粒度的网格层,模型的不同部分可在不同的并行设备上被训练。缺点:文档混乱,版本混乱,版本间兼容性问题大。
PyTorch:2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推 出了PyTorch,PyTorch在学术研究者中很受欢迎。优点:易于使用的API—它就像Python一样简单,动态计算图—取代了具有特定功能的预定义图形,PyTorch在数据处理方面与numpy类似,可以Python完美结合。缺点:部署不方便。
Tengine:2017年,Tengine发布第一个版本面向端侧的深度学习框架。优点:上手快、速度快、开放性,支持端侧大部分设备CPU,GPU,AIPU,NPU,支持异构计算。缺点:社区发展正在进行中。

本文是OPEN AILAB人工智能介绍课程部分内容的整理笔记