AI笔记-基础知识

    技术2025-12-27  18

    文章目录

    AI学习框架硬件标准应用场景语音识别计算机视觉自然语言处理 数据集基本网络MLP(multi layer perception)多层感知感知器激活函数输入层、隐藏层、输出层正向传播和反向传播求导 CNN(Convolution Neural Network)卷积神经网络图像的几个不变性卷积层池化层InceptionFlatten层和全连接层跳层连接经典CNN RNN(Recurrent Nerual Network)循环神经网络 几种有效的神经网络结构Inception结构ResNet结构seq2seqAttention 深度学习基础架构深度学习开发工具深度学习辅助工具MMdnn 深度学习云平台

    AI学习框架

    Google的TensorFlow 亚马逊的MxNet 微软的 CNTK 百度的 PaddlePaddle Caffe2 在TensorFlow发布之前其一直是深度学习领域最为火热的项目。Caffe2拥有大量已经训练好了的模型,如AlexNet,VGG,Inception,收藏在Modle Zoo中。 Facebook 的Pytorch

    硬件

    深度学习的执行作业需要大量的矩阵和向量计算,基于GPU,CPU,FPGA,ASIC等,GPU适合模型训练,目前主流的是NVIDIA GPU。

    标准

    学习框架有很多种,慢慢的就积累了很多基于不同框架的模型,所以模型和框架之间转换是急需解决的问题;所以就有了Microsoft和Facebook发布了一个全新的开源项目-ONNX,欲借此打造一个开放的深度学习工具生态系统。

    应用场景

    语音识别

    计算机视觉

    身份识别,直播美颜,安检,车牌定位,门禁系统,人脸识别,表情识别

    自然语言处理

    比如机器翻译,聊天机器人,问答系统,情感分析

    数据集

    因为深度学习需要进行大量的训练,训练就需要数据集,所以就有了公共数据集 ImageNet, Coco,MINIST等

    基本网络

    深度学习网络大多由很多基本网络结果组成而来,基本网络有以下这些:

    MLP(multi layer perception)多层感知

    MLP的结构特点是输入层和输出层之间存在一个或者多个隐藏层,输入层用于获取外部输入信号,只有隐藏层和输出层的神经元为计算节点,每层都对上一次的输入进行加权处理,然后通过激活函数进行非线性变换,参数通过反向传播进行训练。

    感知器

    激活函数

    常见的激活函数:sigmoid,thanh,ReLU,softplus Sigmoid: f(x) = 1/(1+e(-x)) ReLU: F(x) = max(0,x)

    输入层、隐藏层、输出层

    正向传播和反向传播求导

    CNN(Convolution Neural Network)卷积神经网络

    CNN是深度学习技术中重要的网络结构之一。 CNN最初引用于图像数据,根据图像数据特点进行近似和优化,除了通用的网络结构,CNN还包含了几个特有的网络组件,如,卷积层,池化层,全连接层等,神经网络参数通过反向 传播算法进行训练。 通过深度学习CNN的处理方式,我们可以发现CNN相比于图像处理算法的优点在于,CNN可以直接输入原始图像,这就避免了对图像复杂的前期预处理和特征工程。

    图像的几个不变性

    平移不变性,旋转/视觉不变性,尺度不变性

    卷积层

    卷积层是CNN中的重要组件,它不仅能够通过各种卷积核提取图像特征,还能够通过卷积优化传统全连接层的计算量。

    多滤波器 比如有的滤波器可进行边缘检测、锐化、边框模糊、高斯模糊,因此,使用多个不同的滤波器对同一张图片进行多次特征提取,可以获得不同的特征图。权值共享 采用卷积的方式,可以减少一定参数,但是参数依然很多,采用权值共享的方式可以进一步减少参数。

    池化层

    池化(pooling)的目的:通过卷积获得特征后,希望利用这些特征进行分类。理论上可以利用所有的特征去训练分类器,但是这样做面临着计算量的挑战。同时容易出现过拟合。因此可以对不同位置的特征进行聚合统计进而表示一个更大的图像。聚合统计特征不仅具有低的多的维度(相比使用提取到的所有特质),同时还会改善结果(不容易过拟合)。这种聚合的操作称作为池化(pooling)。 常用的池化算法有最大池化(max pooling),平均池化。

    Inception

    inception目的:消除尺寸对识别结果的影响。

    Flatten层和全连接层

    flatten 展平,使平坦。

    跳层连接

    跳层连接允许不同层级之间的因素进行信息交互、综合判断。

    经典CNN

    LeNetAlexNet 相比LeNet,网络层次更深ZFNet 增加了中间卷积层的尺寸,使得第一层的stride和滤波器尺寸更小。GoogleNet 减少参数数量,最后一层使用Max pooling层代替了全连接层,同时引入了inception V4模块的使用。VGGNet 只使用了3x3卷积层和2x2 pooling层进行深度神经网络结构连接。ResNet 引入了跳层连接和Batch NormalizationDenseNet 发展趋势:使用更小尺寸滤波器的卷积层和池化层。去掉参数过多的全连接层。Inception

    RNN(Recurrent Nerual Network)循环神经网络

    RNN应用于时序数据,例如文本和语音,RNN针对时序数据特点进行相应的网络结构设计,RNN由多个cell按照时序串联,每个Cell都可以通过LSTM,GRU等进行实现。 RNN的网络结构形式

    一对一形式(One to One)多对一形式 (Many to One)一对多形式(One to Many)多对多形式 (Many to Many),这种结构又称作Encoder-Decoder,也可称作Seq2Seq模型。

    几种有效的神经网络结构

    Inception结构

    Inception的主要目标在于更有效地提取特征,减少参数量。

    随着深度的增加,CNN所带有的特征也更加丰富,因此特征维度会变的更大,在这种情况下,单纯地增加CNN特征维度会带来训练上的问题,这种方式不适合神经网络在深度上进行扩展,因此产生了Inception子结构。这种子结构可以将不同大小的卷积核心进行组合,这样就可以使得神经网络的训练更加高效。

    ResNet结构

    Inception解决了特征的问题,但其在网络深度上的进一步扩展,需要更加有效的网络结构,这就出现了再深度神经网络之上添加支路的过程。

    跨层之路的加入使得深度神经网络更加接近于浅层神经网络,这使得训练更加有效解决了训练过程中的梯度消失问题。

    seq2seq

    在自然语言处理(NLP)中,比如翻译,常见的结构就是seq2seq结构,这种结构通常是由两个RNN结构组成。 这两个RNN分为encoder和decoder。两者之间的桥梁是encoder最终产生的状态向量,状态向量传入decoder中作为其的第一个状态,从而奖励前两个网络之间的联系。当然,encoderDecoder结构并不仅限于RNN,CNN同样也可以完成。

    Attention

    用于自然语言处理的神经网络通常分为encoder和decoder,它们通常是两个独立的RNN。但是语言长度的不确定性,我们有时需要将一个很长的语句通过encoder压缩成一个固定长度的向量。这显然是不合常理的,因此,Attention应运而生,其使得encoder每一步的输出都有可能参与decoder的输出

    深度学习基础架构

    PAI Microsoft开源的Platform for AIXLearning 奇虎360的XLearning

    深度学习开发工具

    Visual studio tools for AI & Visual Studio code tools for ai

    深度学习辅助工具

    MMdnn

    MMdnn是一套工具集,其包含模型转换,模型可视化等,支持Caffe,Tensorfllow,CNTK,MxNet,Pytorch,Keras,CoreML模型之间的转换。

    深度学习云平台

    Azure是Microsoft的公有云平台,其提供以下服务 GPU虚拟机 模型训练服务 模型管理和部署

    参考:【深度学习核心技术、工具与案例解析】 高彦杰 于子叶 著

    Processed: 0.040, SQL: 9