美文网首页
机器学习 (深度)神经网络

机器学习 (深度)神经网络

作者: 李霖弢 | 来源:发表于2022-10-09 16:07 被阅读0次

图像在计算机中是一个由像素(pixel)组成的矩阵(matrix),其行列数称为分辨率(resolution)。

图像处理与噪点平滑

彩色图像可视为三通道矩阵(三阶张量),其中每个元素都介于0~255之间。
通过卷积让图像的噪点平滑(消除噪声)。其中用于和图像矩阵进行卷积的小矩阵又称为卷积核(convolution kernel)或过滤器(filter),其宽高尺寸也称过滤器尺寸。卷积核的元素可以是任意实数。

图像识别与图像特征

通过卷积可以提取图像的边缘特征(计算上下左右像素的差值)。
方向梯度直方图就是一种经典的图像特征,可以边缘检测和一些统计学方法,找出图片中物体的轮廓,提取其特征,再进行图像分类。


人工神经网络

在深度学习(deep learning)出现前,人们手工设计图像特征(颜色、纹理等),正确率较低。人们受到生物神经网络的启发,提出了人工神经网络。在实际应用和发展中,主流的人工神经网络逐渐偏向于统计学,和生物神经网络已经没有直接联系。
一个神经网络由多个顺序连接的层组成,每层有1个或多个神经元。各层提取出特征值,再交给下一层进一步抽象提取。第一层称为输入层,最后一层称为输出层,中间的都称为隐层


深度神经网络(Deep Neural Networks,DNN)

通常神经网络的隐层越多,计算结果越准确。拥有较多隐层的神经网络称为深度神经网络,使用了深度神经网络的机器学习,称为深度学习
不同于传统的分类系统先提取特征再用特征分类,深度神经网络将两个环节直接结合在了一起。

卷积层(convolutional layer)

含有卷积层的深度神经网络,也称卷积神经网络(convolutional neural network,CNN)。
通常第一个卷积层以图像输入(即RGB三通道的3阶张量),后续的卷积层以前面层输出的特征图为输入。
卷积层通过卷积运算,对输入内容变换,得到一个通道数为1的三阶张量。n个卷积核获得的结果组合为一个n通道的三阶张量输出给后续层,称为特征图(feature map)。

池化层(Pooling Layer)

通常在几个卷积层后会插入一个池化层,以降低特征图分辨率,减小计算量。
池化层对输入的特征图按通道分开,对每个矩阵切分为多个小块,将各个小块按一定规则取值后,按原位置重新组合回原矩阵,再将这些矩阵按原顺序重新组合回3阶张量。如选择2×2的小块,则池化后特征图长宽都减小为1/2,元素数减少为1/4。

根据对每个块的取值规则,通常有以下四种池化层:

  • 平均池化层(mean pooling layer)
  • 最大池化层(max pooling layer)
  • 随机池化层(stochastic pooling layer)
    通过加权计算概率,数值大的值被选中概率也大
  • 全局平均池化层(global average pooling layer)
    通常可用于代替全连接层,以避免过拟合
最大池化
全连接层(fully connected layers,FC)

在经过多轮卷积层和池化层的处理之后,图像中的信息已经被抽象成了信息含量更高的特征。全连接层通常出现在最后几层,将特征图组合为特征向量,以帮助计算最终的分类概率。向量的维数等于类型数。
全连接层每一个结点(即输出向量的每一个元素)都与上一层的所有结点相连(即用到了所有局部特征),用来把前边提取到的特征综合起来,参数多(训练成本高),计算量大。例如下图,之前层输出了5@3×3的特征图,则在全连接层需要5个卷积核分别进行卷积运算(或其他线性函数),并将结果加权求和,得到特征向量中的第一个元素。若最终特征向量有N维,则需要5×N次卷积:

归一化指数层(softmax layer)

通常出现在分类网络的最后一层,将一个全连接层输出的向量X=(x_1,x_2,...,x_n)作为输入,输出各个类别的概率所组成的向量(同分类算法中的归一化指数函数):
Y=(\frac{e^{x_1}}{e^{x_1}+...+e^{x_n}}+...+\frac{e^{x_n}}{e^{x_1}+...+e^{x_n}})
该向量各元素之和为1

非线性激活层(non-linear activation layer)

卷积运算的本质是线性函数,多个连续的卷积层/全连接层的操作其实完全可以组合到一起,变成一个层,使得分层失去意义。通常在每个卷积层和全连接层后需要接一个非线性激活层。
例如最常见的线性整流函数(rectified linear function):
ReLU (x)= \begin{cases} 0 &,x<0 \\ x &,x≥0 \end{cases}

神经网络的训练

训练就是寻找最佳参数的过程,卷积核的各个元素及全连接层函数的系数都是参数,通常使用反向传播算法训练神经网络。

反向传播算法(backpropagation)

训练图像输入后,经过逐层计算的最终结果与正确答案进行比对,并从最后一层逐层向前调整参数。

  • 梯度计算链式法则(chain rule)
  • 随机梯度下降(stochastic gradient descent)

神经网络常见问题

过拟合(overfitting)与 欠拟合(under-fitting)

过拟合

复杂模型记录了训练数据过多的噪声信息,虽然对训练数据准确率极高,但对新数据准确率较差。且随着层数增加,准确率不升反降。

欠拟合

模型过于简单,导致对训练数据和新数据准确率都很差。

解决方法:
  • 权值衰减(weight decay)
  • 等正则化(regularization)

梯度消失(gradient vanish)

表现类似过拟合:随着层数增加,准确率不升反降。
在反向传播算法中,每反向经过一层,来自遥远输出层的误差影响会指数级缩小。当层数过多时,误差梯度趋近于0,参数的优化失去了衡量标准。

解决方法:
  • 批处理化(batch normalization)
  • 跨层连接(short-cut)

视频行为识别

视频本质上是多帧图像的序列化集合,即比图像多了时间维度的4阶张量

光流(optical flow)

图像本质上是三位的点到二维的投影,光流则用于记录该投影点的瞬时位移。
如第t帧有像素点(x_1,y_1),则在t+1帧中找到位置相近、颜色相似的像素点(x_2,y_2)视为运动后的位置,并计算出其光流\omega:(u,v)=(x_2,y_2)-(x_1,y_1)

手工提取特征

光流直方图(Histograms of Optical Flow,HOF)

t时刻的视频帧中抽出一点(x,y),以其为中心建立坐标轴及n×n的区域(区域被坐标轴划分为4),再将t到t+T的时间维度三等分,则共有3×4=12个时空单元。
对每个时空单元内的光流,计算其大小\sqrt{u^2 + v^2}和角度tan^{-1}(\frac{v}{u}),并添加到一个8维向量中,向量中每一个元素的值,为每45°区间内所有光流的大小之和(如45~90°间有三个光流,大小分别为0.5、1、0.9,则该向量第二位为:2.4)。最终将这12×8个元素按一定顺序拼接成一个96维向量,即该时空体的光流直方图特征向量

12个时空单元
轨迹特征

光流只是相邻帧之间的运动,而光流直方图的分割又比较粗糙,如需刻画长时间的精确运动,可以将点在每一帧的光流都记录下来:\begin{bmatrix}u_1&u_2&...&u_n\\v_1&v_2&...&v_n\end{bmatrix}

基于深度学习的视频行为识别(自动提取特征)

基于单帧的识别

当无需考虑时间维度和运动信息时,用单帧进行图像识别即可

双流卷积神经网络(two-stream CNN)

适用于10秒以内的短视频。
将视频信息分为静态和动态两部分,分别计算后再合并得出最终结果。

  • 空间流卷积神经网络(spatial stream CNN):静态部分,输入视频帧的3通道RGB图像矩阵,进行图像识别,可用于判别视频中的场景和物体。该神经网络称为。
  • 时间流卷积神经网络(temporal stream CNN):动态部分,将每一帧图像中,每个像素的位置由其光流的uv值分别代替,生成水平光流图和垂直光流图,作为输入值
时序分段网络(temporal segment networks,TSN)

适用于较长的视频,防止计算量过大。
将视频平均分为N段,每段随机提取连续帧并进行双流卷积神经网络识别输出特征向量,最后接一个融合用的神经网络将N个特征向量综合起来。


声音

乐音的三要素

  • 响度(音强)
    表示声音强弱,体现在波形图。
    波形图横轴为时间,纵轴为强度。
  • 音调(音高)
    表示声音频率,体现在频谱图。
    频谱图横轴为不同频率(Hz),纵轴为该频率声音的强度(对数)。其中强度最高的点对应的频率即为音调。
  • 音色
    声音是波,本质上只有频率和强度。音色其实是除自身频率的基音外,还衍生出多种其他频率的泛音,共同组成了音色。
    频谱图中多个频率的峰值强度之间的比例关系,即为音色。

特征提取

通道

常见的音频有左右耳两个声道。在本章暂时只考虑一个声道。

采样频率(采样率,sampling rate)

通常采样率越高,效果越好。但过于高频的声音人耳无法接收,因此没有意义。如MP3通常使用44100Hz的采样频率,则每一帧都可以表示为44100维向量,其中每个元素的值即该频率声音的强度。

梅尔频率倒谱系数(Mel-Frequency Cepstral Coeffcients,MFCC)

采样频率提供的特征向量维数过多,计算量太大,通常将音频切分称等间隔的多段(如每段25ms,间隔10ms),并采用梅尔频率倒谱系数降低到13维:

  1. 划分出26个频率范围(由于人耳对低频声音敏感度更高,划分时,低频率范围密集,高频率范围粗疏),分别计算其平均值,组成26维向量。
    m(f)=1125×ln(1+f/700)
  2. 倒谱
    进一步降低特征向量为13维,并保留其共振峰等特点。
    • 共振峰(formant)
      共振峰即频谱中能量相对集中的区域,是音色的一种表现。不同腔体(如琴身、口腔)可以对特定频率的声音共振并放大,从而形成独特的共振峰形状(元音的共振峰区分较为明显)。

风格分类

将提取完毕的 MFCC 13维特征输入神经网络,通过卷积、池化、全连接、归一化指数,得到最终音乐风格的类型概率。
不同于图像分类,音频使用向量卷积(1阶)而非矩阵卷积(2阶)。

相关文章

  • 《Python神经网络》5——机器学习简介

    1.机器学习,神经网络,深度学习和人工智能之间有什么关系? · 神经网络是深度学习的“根基”。 · 深度学习是机器...

  • 深度学习笔记之循环神经网络RNN学习笔记

    关键词:循环神经网络;RNN;深度学习;深度神经网络 循环神经网络 RNN 李宏毅: 机器学习,深度学习的课件参考...

  • 2019-04-22

    机器学习&深度学习 深度学习是机器学习的延伸。当神经网络层数变多时,就成了深度学习 区别 机器学习:特征是人工通过...

  • 机器学习入门

    机器学习:发展与未来 人工智能 > 机器学习 > 深度学习 > 神经网络 多种机器学习技术:深度学习,强化学习,蒙...

  • 深度学习概念和基础

    深度学习是以神经网络为基础的,神经网络是机器学习的一种算法。 关于机器学习中的神经网络: 机器学习之神经网络1前向...

  • 机器学习与深度学习(一):简介

    机器学习与人工智能、深度学习、神经网络的关系 是学科之间的层级包含关系人工智能>机器学习>深度学习>神经网络 现如...

  • 吴恩达教你入门神经网络

    人工智能目前很火。人工智能主要是机器学习。机器学习主要是深度学习。深度学习必然要接触人工神经网络。 人工神经网络是...

  • Deep Learning Tutorial 李宏毅(一)深度学

    大纲 深度学习介绍 深度学习训练的技巧 神经网络的变体 展望 深度学习介绍 深度学习介绍 深度学习属于机器学习的一...

  • 2019-07-25 深度学习

    机器学习 - 神经网络 - 深度学习 图像 文本 语音 深度学习算法比机器学习都要好很多bp算法:多层感知器的误差...

  • 人工智能、机器学习、深度学习的区别

    1、人工智能、机器学习、深度学习的区别 1.1 深度学习vs神经网络 神经网络的缺陷: 比较容易过拟合,参数比较难...

网友评论

      本文标题:机器学习 (深度)神经网络

      本文链接:https://www.haomeiwen.com/subject/kqhwartx.html