前言

本文是学习由汤晓鸥、陈玉琨主编的《人工智能基础》的学习记录

一、人工智能基础

1.1人工智能定义

人工智能是通过机器来模拟人类认知能力的技术,涵盖感知、学习、推理与决策等方面能力,核心能力即给定输入做出判断或预测。

1.2人工智能实现方式

通过学习来获得预测和判断的能力,这种方法叫做机器学习(machine learning)。

1.2.1在数据中学习

  • 监督学习:从已知数据中学习数据中蕴含的规律或者判断规则(要有真实值来与预测量做比对/反馈)。eg:价格预测
  • 无监督学习:在不提供监督信息(预测量的真实值)的条件下学习。eg:医疗影像
  • 半监督学习:介于监督学习和无监督学习之间。要求对小部分的样本提供预测的真实值。eg:人脸识别

1.2.2在行动中学习

  • 强化学习:其目标是获得一个策略去指导行动。强化学习模型包括(以围棋为例):
  1. 一组动态变化的状态(黑白子的分布位置)
  2. 一组可选取的动作(落子的位置)
  3. 一个可以和决策主体(agent)进行交互的环境(对手操作)
  4. 回报规则(回报/惩罚,输子赢子)

强化学习会从一个初始的策略开始,通过行动和环境进行交互,不断获得反馈,并根据反馈调整优化策略。

二、分类任务之察异

2.1分类任务

分类是根据所给数据的不同特点,判断它属于哪个类别

分类器:完成分类任务的人工智能,根据输入数据的特征做出预测,输出类别。

分类器构建流程:鸢尾花——>提取特征——>输入训练好的分类器中——>做预测——>输出品种

2.2提取特征

  • 特征:是事物某些方面的特点,用于区分事物。其质量决定分类器最终分类的效果好坏。
  • 特征向量:表示事物的特征数值。eg:(长,宽,高)
  • 特征点:特征向量在直角坐标系中的表示
  • 特征空间:所有特征点构成的空间,可以衡量物体之间的相似程度。

2.3分类器

  • 分类器:是由特征向量到预测类别的函数;分类函数f(x)是分类器g(x)的核心。(图例为线性分类器)

特征向量(x1,x2,x3,...,xn)——>分类器g(x)——>类别y(一般取±1)

2.3.1训练分类器

  • 训练分类器(如何得到):找到一条合适的分类直线(训练、测试、应用)
  • 数据标注:训练数据和测试数据都需要知道其实际类别,即人工地给数据标上真实类别的过程

常见训练线性分类器的算法:感知器和支持向量机

  • 感知器:是一种训练线性分类器的算法;使用被分错的样本来调整分类器

感知学习算法:不断减少对数据误分类的过程

损失函数:在训练过程中用来度量分类器输出错误程度的数字化表示(衡量误分类程度)

优化:调整分类器的参数,使损失函数最小的过程(梯度下降)

  • 支持向量机(SVM):在特征空间上分类间隔最大的分类器

一般的,一个点距离分类直线的远近可表示我们对分类预测的确信程度。

分类间隔:两个类别中离分类直线最近的点到直线的距离和

支持向量:和阴影区域相接触的点(分类间隔上的点)

支持向量的损失函数:数据点到分类直线的几何间隔r(i)==点到直线的带符号距离(y是类别判断)

优化:最大化分类间隔即2r,等价于最小化2/r

2.4测试和应用

测试:分类器会面对一批测试数据并对每一个测试样本做出预测结果,选择最优分类器

分类准确率:统计出分类正确的样本数与测试样本总数的比率

测试是采用预先标注好的测试集,应用的数据是未标注的数据

2.5多类别分类

多分类问题需要使用多个二分类函数解决

归一化指数函数:将一个向量(如多个二分类函数的输出值可组成一个向量)“压缩”到另一向量中,使每个向量范围在0~1之间,所有元素和为1(softmax函数)——>可看作属于某一类的概率/分类器对这个结果的预测把握

2.6二分类在生活中的应用

  • 相机中人脸检测:切割图象、后处理融合技术
  • 医疗癌症检测:eg区分肿瘤和巨噬细胞

三、识图认物

3.1基于手工特征的图形分类

3.1.1计算机眼中的图像

  • 像素:图像在计算机中由一个个小格子组成,每个小格子是一个色块,称为像素
  • 分辨率:格子的行数和列数统称为分辨率
  • 图像矩阵:由不同数字来表示不同颜色,图像可表示为一个由数字组成的矩阵(灰度图像:0表示最暗的黑色,255表示最亮的白色,0~255表示不同明暗程度的灰色;彩色图像:用(R,G,B)表示一个颜色即红绿蓝三原色)
  • 张量:一张彩色图像可用一个由整数组成的立方体阵列表示,称此立方体为三阶张量。其长宽为图像分辨率,高度为3即通道数为3(红绿蓝三个通道)eg:标量为零阶张量、向量是一阶张量、矩阵为二阶张量

3.1.2图像特征概述

图像特征是描述图像的颜色、边缘、纹理等基本性质的,深度学习以前,一直是计算机视觉的重要研究课题。

从图像中提取特征便是对图像所表示的三阶张量进行运算的过程——其中非常重要的运算为卷积。

3.1.3卷积运算

卷积运算是一种数学运算,参与卷积运算的可以是向量、矩阵或三阶张量。不断重复”滑动-截取-计算内积“过程,获得卷积结果。

向量的卷积

矩阵的内积:每个对应位置的数字相乘之后的和

矩阵卷积:沿着横向和纵向两个方向进行滑动

矩阵的卷积

三阶张量的卷积

3.1.4利用卷积提取图像特征

通过卷积运算可以把图像变换成一副新图像,也可当作原图像的一个特征。

卷积核:即一个小矩阵(一般用三列1、0、-1组成),通过卷积可从图像中提取边缘特征(横向边缘/竖向边缘)

使用卷积提取竖向边缘(左右像素差值取绝对值)

使用卷积提取横向边缘(上下像素差值取绝对值)

方向梯度直方图(HOG):一种经典的图像特征,使用边缘检测技术和一些统计学方法表示图像中物体的轮廓

方向梯度直方图的提取过程:利用卷积运算从图像中提取边缘特征——>图片划分若干区域——>并对边缘特征按照方向和幅度进行统计形成直方图——>区域内的直方图拼接形成特征向量

不同形状物体的方向梯度直方图

3.2基于神经网络的图像分类

3.2.1神经网络在图像分类的优势

1.从特征提取到特征学习,即神经网络可自动从图像中学习有效特征

2.降低人工智能系统的复杂度(原来的特征提取和分类器分类被神经网络集成在一起)

3.2.2神经网络的结构

出现有卷积层、ReLU非线性激活层、池化层、全连接层、softmax归一化指数层等

以Alex Net神经网络为例:主体由五个卷积层和三个全连接层组成。每个卷积层后有一个ReLU非线性激活层(把负值归零保留正值)完成非线性变化,第一二五个卷积层之后连接最大池化层(降低特征图分辨率)。经过五个卷积层-非线性激活层-池化层——>两次全连接层和ReLU层变化——>最终特征向量与全连接层和softmax归一化指数层——>得到所属类别预测

Alex Net神经网络结构示意图

  • 卷积层

用卷积运算对原始图像或者上一层的特征进行变换的层。

在一个卷积层中为从图像中提取多种形式的特征,通常使用多个卷积核对输入图像进行不同的卷积操作。一个卷积核(变化手段)可得到一个通道(代表一种特定特征)为1的三阶张量,多个卷积核可得到多个通道为1的三阶张量结果。不同的通道组合起来,即得到新的三阶张量(特征图),这个三阶张量的通道数等于所用卷积核的个数。这个新的三阶张量也称特征图为卷积层的最终输出。

多个卷积核提取多种特征并组合成多通道的特征图

  • 全连接层

图片分类任务中,输入图片在经过若干卷积层之后,会将得到的特征图转换为特征向量(全连接层对特征向量进行变换),即使用若干维数相同的向量与输入向量做内积,并将所有结果拼接成一个向量作为输出。

  • 归一化指数层

归一化指数层(softmax layer)的作用即完成多雷线性分类器中的归一化指数函数的计算。

一般是分类网络的最后一层,以 长度和类别个数相等向量作为输入(来自全连接层的输出),然后输出图像属于各类别的概率。

  • 非线性激活层

通常在每个卷积层和全连接层后都接一个非线性激活层(在每一次线性运算后,再进行一次非线性运算,那么每次变换的效果就可以保留)

常用非线性函数如下:

逻辑函数

双曲正弦函数

线性整流函数

  • 池化层

计算卷积时,我们会用卷积核滑过图像或者特征图的每一个像素,若其分辨率很大,那么卷积层的计算量也很大,为了解决此问题,通常在几个卷积层后插入池化层,以降低特征图的分辨率。

池化步骤:特征图按通道分开,得到若干矩阵——>每个矩阵将其切割若干大小相等的正方形小块——>对每一个区块取最大值(最大值池化层)或平均值(平均值池化层)组成新矩阵——>将所有通道的结果按原有顺序堆叠,形成一个三阶张量

最大池化层示意图

3.2.3人工神经网络与生物神经网络

生物神经网络:由数以亿计的神经网络相互连接而成

人工神经网络:是生物神经网络的数字模型,以人工神经元为基本单位,构建卷积层、全连接层、非线性激活层等,进而构建人工神经网络

3.2.4人工神经网络的训练

训练本质即寻找最佳参数的过程。针对神经网络训练问题,科学家们提出”反向传播算法“。

反向传播算法示意图

将一幅训练图像输入网络中,逐层计算,最终得到预测所属的每一类概率,将预测结果与正确答案对比,若预测结果不够好,则从最后一层开始,逐层调整神经网络的参数,从而做更好的预测。这种从后往前调参(设计梯度计算的链式法则和随机梯度下降等)的方法即为反向传播算法。

3.3深度神经网络的发展与挑战

深度之”深“:神经网络层数之多、模型参数之多

深度之”助“:数据和计算能力推动神经网络

深度之”难“:过拟合和欠拟合问题+梯度消失

  • 过拟合:训练集优秀,测试集很差,过多迎合训练集导致对大量新数据表现很差(模型能力太强,记录了太多噪声信息)。神经网络训练中过拟合一般用权值衰减等正则化方法(关注通用特征)解决。
  • 欠拟合:模型本身过于简单能力较弱,导致训练集和测试集数据上表现都很差

欠拟合、拟合、过拟合示意图

  • 梯度消失:对网络简单的堆叠加深导致的一种影响性能的现象。梯度相当于每一步对优化方向的指引(输出结果与目标结果的误差),梯度消失即网络优化过程失去指导,无法找到一个较好的解,一般用批处理化和跨层连接等处理。

3.4图像分类在日常生活中的应用

人脸识别、图像搜索等

人脸识别:刷脸支付、进站、考勤、高清监控等等

四、听声辨曲

4.1听声的艺术     

4.1.1声音的数字化

通过话筒中的传感器把声波转换为电信号(如电压),再通过采样(使电信号在时间是变得离散)、量化(幅度上变得离散)和编码(不同文件格式)等步骤转换为便于计算机存储和处理的音频文件。

时间序列:计算机里的音频文件描述的实际上是一系列按时间排列的数据点,称为时间序列,可视化为波形(横坐标反应时间,纵坐标反映传感器传导声音的振动位移)

声音的数字化

4.1.2通过频谱理解乐音三要素

频谱的横坐标代表频率,纵坐标表示频谱的幅度——>含义为相应频率的声音所对应的振幅。

音乐片段的波形与频谱

响度(波形振幅表示)、音调(频谱来描述)、音色(频谱峰值之间的比例)

吉他和钢琴的波形和频谱

4.2音乐风格分类

4.2.1计算机耳中的风格

特征:比数据短的序列,包含数据代表信息

计算机需要大量“听”的过程形成其“经验”,然后根据“经验”进行分类,步骤如下:

     音乐风格分类流程图

4.2.2经典声学特征:梅尔频率倒谱系数(MFCC)

MFCC特征的维数低,可粗略画出频谱形状,故可大致描述不同频率声音的能量高低。还可以表达声音的一种重要特性——共振峰

共振峰:声音频谱上能量相对集中的一些区域

语音频谱的共振峰

提取MFCC特征:先用梅尔频率(一种特殊的频率刻度)对频谱进行处理得到一组26维的特征,再计算它的倒谱得到最终的13维MFCC特征(反映音频信号在不同频率范围内的能量大小)

梅尔频率

提取MFCC特征

4.2.3深度学习方法

音乐分类:提取特征(MFCC)——>特征分类(分类器即神经网络完成分类)

神经网络完成分类任务,输入是音乐的MFCC特征,输出是其风格类型

提取特征过程:卷积层和池化层提取音频(只有一个时间维度)特征,全连接层得到一个长度与风格类型数相同的序列,归一化指数层得到音乐属于每一种风格的概率

一维卷积vs二维卷积

4.3语音识别技术

4.3.1语言识别原理

语音识别要考虑语言的规律。

语言识别的流程包括分帧、状态识别、音素转化和文字生成

  • 首先把一段语言分成若干小段——分帧
  • 然后把每一帧识别为一个状态,再把状态组合成音素(声母和韵母)

声学模型:把一系列语音帧转化为若干音素的过程利用了语言的声学特性,这一部分为声学模型

语言模型:从音素到文字的过程需用到语言表达的特点,这样才能从同音字中挑出正确的文字,组成意义明确的语句,这一部分为语言模型

语音识别的准确率与声学模型和语言模型相关

语音识别流程

4.4乐曲检索技术

实现方法:

  • 在乐曲上按时间顺序依次截取和音乐片段长度一致的段落,相邻段落之间的时间间隔可大可小,通常要保证其在时间上有很大的重叠,这一过程称为”窗口扫描“
  • 计算片段和所截段落的特征并算出他们的距离,取距离最小值为音乐片段与乐曲的距离
  • 最终与音乐片段距离(用距离度量相似度)最小的乐曲即为检索结果

窗口扫描与距离计算

五、看懂视频

视频理解技术应用广泛,包括视频内容分析、视频监控、人机交互、智能机器人等众多领域。

5.1从图像到视频

电视上的画面实际上是由连续拍摄数百张照片组成的序列,每张照片称为这个视频的一帧。(每秒24帧以上的速度播放时,在视觉暂留机制下,静止画面就运动起来)

视频在计算机中表达方式:按照时间顺序排列起来的图像,相比图片多了一个维度——时间维,函数表示为(x,y,t),t为某个视频帧对应的时间,x和y即这个帧中某个像素对应位置。

5.2视频行为识别

5.2.1视频行为定义及应用

定义:计算机分析给定视频数据,辨别出用户行为的过程

应用:人机交互(理解行为)、视频监控(发现异常)、基于内容的视频索引(视频归类)

5.2.2行为识别的问题

  1. 类内差异:同一类别的行为之间存在较大差异(eg:不同人刮胡子的姿势不同)
  2. 行为定义不明确导致视频缺乏代表性(eg:吃饭的视频里会混杂喂饭行为)
  3. 环境背景差异大:同样看电视行为,不同角度拍摄的视频环境背景不同
  4. 行为数据样本数有限

5.2.3行为识别的重要特征:运动

5.2.4运动的刻画:光流+光流直方图

光流:描述三维运动点投影到二维图像后相应的投影点的运动(同一个点在相邻两帧的位移)

向量P'tP‘t+🔺t就可以看成投影点的瞬时位移,即所说光流。

二维平面中运动的点在一维直线上的投影

光流计算

两个假设:相邻两帧物体运动较小,相邻两帧的颜色基本不变

第t帧的像素点p(x1,y1),第t+1帧的像素点为p'(x2,y2),p‘为p运动后达到的位置,即可计算出第t帧中p处光流w:(u,v) = (x2,y2) - (x1,y1)

                                                             相邻两帧计算光流

实际应用中 ,光流的估计还需考虑遮挡、光照变化以及运动产生的模糊等。     

光流直方图: 对视频中的光流信息进行统计,从而表现出视频中物体的运动信息,以便计算机对视频中的行为进行区分。

首先,我们把起始时刻记为t,在t时刻的视频帧中选取一个点,将其位置记为Pt=(x, y)。

然后,在t时刻到t+L时刻的每一张视频帧中,我们均以点(x, y)为中心截取大小为N×N的区域。这样就得到了由L张同样大小的局部区域图像组成的时空体(space-time volume)。

接着,我们对这个时空体进一步分割:在每一张图像上用2×2的网格将其划分为4个更小的区域,在时间维度上,我们把它分割成3个相等的部分。于是,我们就可以得到如图所示的12(-2×2×3)个时空单元(space-temporal cell)。

12个时空单元

接着,在每个单元内部,我们对每个像素位置处的光流进行统计。

假定图像中某一像素点(x, y)处的光流为ω(x, y)=(u, v)。这是一个二维的向量,其中u,v分别表示x轴和y轴方向的光流分量。由此可得像素点(x, y)处的光流大小为: 

                                                 光流方向为:

为了便于统计,我们把二维坐标系中的[0°,360°)范围划分为8个相等扇区,每个扇区涵盖的角度为45°。

如图所示,将一个时空单元内所有像素点处的光流向量(u, v)根据大小和方向画在上述坐标系中。然后,根据每个扇区内所包含的光流向量进行直方图统计。

 把这个直方图的信息用一个8维向量来表示,于是,我们就得到了该时空单元的一个8维特征向量。  

光流直方图              

5.3基于深度学习的视频行为识别

5.3.1基于单帧的识别方法

不考虑视频中图片信息在时间上的变化,用视频中的某帧图片代表整个视频的信息。

适用方式:识别的视频是相对静止的行为,利用单帧图像的特征做行为分类(送入卷积神经网络识别)效果可以

但运动性较强下,识别行为就需结合一连串的动作,单帧就不够用了。

5.3.2双流卷积神经网络

双流卷积神经网络利用两个不同的网络来实现同时处理静态和动态信息。

静态信息指图像中物体的外观,包含相关场景和物体,这可以通过静态图片帧获得。

动态信息指视频序列中物体的运动信息,包含观察者和物体的运动,可以通过光流灰度图来获得。

(b)为水平光流图和垂直光流图

视频行为识别中广泛应用的双流卷积神经网络(two-stream CNN)就利用两个不同的网络来实现同时处理静态和动态信息。

空间流卷积神经网络:以随机抽取的单个彩色图像帧作为输入的网络

时间流卷积神经网络:把多帧(比如10帧)的光流图像作为输入的网络

双流行为识别示意图

光流图的堆叠是为了捕捉时序相邻帧之间的运动信息。

若输入帧数太少,时序捕捉信息不完全,无法代表较长的视频序列。

若输入帧数太多,计算量会增加。

从而引入下一节的长视频处理。

5.3.3长视频处理:时序分段网络

为了解决视频中存在跨越时间长的行为。其关键在于把视频沿时间轴分段,使得采样样本能较为均匀分布在整个时间段。

稀疏采样策略:针对长度不同数据,根据时间先后分成固定数量的段落(eg:无论每个班多少人,固定排六组)

时序分段网络示意图

六、分门别类

6.1监督学习与无监督学习

监督学习:需要类别的标注信息

无监督学习:没有标注信息的学习过程

左图和右图分别表示监督学习与无监督学习的情况

聚类(无监督学习):分析数据在特征空间的聚集情况,也可将一组数据分成不同的类

根据鸢尾花在特征空间的聚集情况,也可分类

6.2物以类聚:鸢尾花的K均值聚类

k均值聚类算法:思路是先从任意一组划分出发,通过调整,逐步达成聚类的目标。

k均值聚类算法通过循环地改善中心点与划分方式,可以得到越来越好的聚类结果,直至聚类中心(由平均特征决定)与划分方式不再发生变化。

算法步骤:

第一步,随机地从所有样本中选取K个样本,作为每一个类别的初始聚类中心

第二步,将每一个样本划分给距离最近的聚类中心对应的类别,得到新的划分方式。

第三步,重新计算每类样本的聚类中心。

重复第二、三步骤,直到聚类中心与划分方式不再发生变化。

每一类鸢尾花聚类中心

矛盾的样本γ

矛盾的样本w

k均值聚类结果

6.3人以群分:相册中的人脸聚类

6.3.1人脸聚类的流程

相册聚类流程

人脸检测:定位图像中的人脸,使用预先训练好的人脸检测器(支持向量机的损失函数)找到照片中人脸的位置。

人脸转正:使姿态各异的人脸统一面向正前方(先找到人脸的关键点,根据关键点位置,对图片进行合适的几何变化)。

特征提取:使用神经网络在每个关键点附近抽取特征(将人脸图片送入卷积神经网络,取网络中倒数第二层的输出作为描述该人脸的特征)。

特征提取:红色边框是我们提取到的特征

人脸聚类:挖掘特征空间中相近的人脸过程。

相册中的K均值聚类:

1.使用提供的K均值聚类代码,观察在聚类过程中每一次迭代,相册聚类结果的变化。

2.观察K均值聚类稳定后的结果,看看每一类都代表了什么。(注意:可能会有一些类别代表同一个人的不同姿态,甚至是同一姿态的不同人。)

3.使用手肘法为相册聚类确定合适的K,肉眼观察不同的K下的聚类结果,看看手肘法确定的K是不是最合适的。

手肘法确定聚类数量K的大小

6.4层次聚类与生物聚类

层次聚类:首先把每个样本单独当成一类,而后重复合并最相似的两个类。当所有类别间的距离都超过一个预设的截至距离时,层次聚类就完成了。

使用层次聚类算法对鸢尾花进行分类

层次聚类还可用来分析基因、推到动植物的分类甚至是进化过程。

eg:以生物DNA序列作为特征,不断合并基因相似度高的物种,就可以得到生物的“分类树”

七、识文断字:理解文本

7.1任务的特点

7.2文本的特征

7.3发掘文本中潜在的主题

7.4基于主题的文本搜索与推荐

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐