大数据分析技术

陈清华、田启明、施郁文等

目录

  • 课程简介
    • ● 课程简介
  • 环境准备
    • ● Anaconda环境安装与使用
    • ● Pycharm环境安装
    • ● 常用第三方包的安装与配置
  • 项目一 电影数据统计
    • ● 任务简介
    • ● 数据获取
    • ● 数据解析
    • ● 数据分析
    • ● 数据可视化
    • ● 课堂思政:新型冠状病毒疫情分析与可视化
    • ● 课堂思政:中国工匠精神
  • 项目二 电影数据分析(回归)
    • ● 任务简介
    • ● 使用一元线性回归分析电影票房数据
    • ● 使用多项式回归分析电影票房数据
    • ● 使用多元线性回归分析电影票房数据
    • ● 课堂实训:工资分析
  • 项目三 爬取房产租赁数据
    • ● 任务简介
    • ● 电影数据爬取
    • ● 房产租赁数据爬取
    • ● 房产租赁数据统计
    • ● 课后实训:二手房数据爬取
    • ● 课堂思政:疫情数据的爬取与可视化
  • 项目四 房屋租赁数据分析与可视化
    • ● 任务简介
    • ● 使用箱形图展现租赁价格分布特征
    • ● 使用散点图展现房屋面积与租赁价格的关系
    • ● 使用饼图展现不同行政区域的可租赁房源占比
    • ● 使用折线图可视化房间数与租赁价格的关系
    • ● 使用热力图展现地理位置的影响
    • ● 课后实训:二手房数据分析
    • ● 课堂思政:疫情数据分析与可视化
  • 项目五 身高与体重数据分析(分类器)
    • ● 使用身高、体重数据进行性别分类
      • ● 使用逻辑回归进行性别分类
      • ● 使用朴素贝叶斯进行性别分类
      • ● 使用决策树模型进行性别分类
      • ● 使用支持向量机进行性别分类
    • ● 使用支持向量机进行肥胖程度分类
    • ● 课后实训: 身高体重数据分析(分类器)
  • 项目六 鸢尾花分类
    • ● 任务简介
    • ● 使用K近邻对鸢尾花进行分类
    • ● 使用随机森林对鸢尾花进行分类
    • ● 使用神经网络对鸢尾花进行分类
  • 项目七 电影评分数据分析(聚类)
    • ● 任务简介
    • ● 使用BDSCAN确定质心个数
    • ● 使用K-Means对观影用户进行聚类
  • 项目八 人脸检测与人脸识别
    • ● 任务简介
    • ● 图像中的人脸检测
    • ● 视频中的人脸检测
    • ● 图像中的人脸识别
    • ● 视频中的人脸识别
    • ● 课后实训:眼睛与笑脸检测
    • ● 课堂思政:人工智能与弯道超车
  • 项目九 手写数字识别应用
    • ● 任务简介
    • ● 图像数据集准备
    • ● 使支持向量机识别手写数字
    • ● 使用神经网络识别手写数字
    • ● 课后实训:使用不同的机器学习方法识别数字手写体
  • 项目十  深度学习在行为识别中的应用
    • ● 任务简介
    • ● 使用卷积神经网络识别行为
    • ● 使用循环神经网络识别行为
    • ● 课后实训:电影评论数据分析
  • 项目十一 TensorFlow与神经网络
    • ● 任务简介
    • ● 使用单层神经网络预测花瓣宽度
    • ● 设计多层神经网络实现鸢尾花分类
    • ● 课后实训:卷积神经网络的实现与应用
  • 项目综合实训(17级学生案例)
    • ● 综合实训要求
    • ● 确定数据采集目标
    • ● 数据采集与预处理
    • ● 数据统计与分析
    • ● 数据分析与预测
    • ● 数据分类应用
    • ● 17级实训案例:二手车数据获取与市场分析
任务简介

背景知识

最近几年人工智能大火,归根结底源于深度学习技术的兴起。目前,深度学习在计算机视觉、自然语言处理等方向取得了突飞猛进的进步。2012年的ImageNet大规模图像识别竞赛(ILSVRC2012)中卷积神经网络以超过第二名10个百分点的成绩(83.6%的Top5精度)碾压第二名(74.2%,使用传统的计算机视觉方法)后,深度学习开始真正火热。卷积神经网络(CNN)也成为了家喻户晓的名字。

深度学习技术已在图像识别领域取得了令人瞩目的成绩。实践表明,深度卷积神经网络CNN已经成为当前世界图像识别竞赛的主流方法。自然语言处理同样是人工智能领域的研究热点。语言包括语音和文字两大部分。与图像数据不同,语言文字数据是一维的字符序列。显然,深度CNN神经网络不再适用于这种类型的数据。因此,人们提出了循环神经网络(Recurrent Neural Networks,RNN)来提取自然语言文字的序列信息,并用来建立数学模型解决相应问题。自然语言处理(NLP)是创造能够处理或是理解语言以完成特定的任务的系统,包括机器翻译、智能对话、文字语义理解等。通过使用循环神经网络(RNN)或者是长短期记忆(LSTM)的深度学习极大促进了自然语言处理的发展。

1 卷积神经网络CNN

根据之前所学的传统的图像识别流程分为四个步骤:图像采集→图像预处理→特征提取→图像识别。要识别图像就必须要借助SIFT、HoG等算法提取特征,再结合KNN、SVM等机器学习算法进行图像识别。手动提取特征不仅工作量大,而且提取特征的好坏之间直接影响最后识别精度的高低。

卷积神经网络(Convolutional Neural Network, CNN)最初是为解决图像识别等问题设计的。为了降低传统图像识别预处理的繁琐工作,以及复杂的特征工程。卷积神经网络可以直接把图像作为输入,最后输出图像的类别,不需要SIFT、HoG等算法进行复杂特征工作以及大量的图像预处理工作。卷积神经网络的最大两个特征在于局部连接和权值共享。

所谓局部连接,就是卷积层的节点仅仅和其前一层的部分节点相连接,只用来学习局部特征。举个例子,假如输入是一张大小为1000´1000的图片,并有1´106有隐层单元,采用全连接神经网络将有1´1012个参数。如果采用的局部连接,每个局部连接大小为10´10,隐层单元还是1´106个,通过计算采用局部连接只需要1´108个参数,将近减少了1´108个参数。。

卷积神经网络还采用了权值共享,比如一个3´3的卷积核,共9个参数,它会和输入图片的不同区域作卷积,来检测相同的特征。不同的卷积核会对应不同的权值参数来检测不同的特征。

卷积神经网络的这两大特性,大大降低了参数数量,使训练复杂度大大下降,并减轻了过拟合。当然,卷积神经网络不仅仅只限于图像(二维的像素网格),在时间序列数据(在时间轴上有规则的一维网格)也有极大的表现力。

卷积运算由图像数据和卷积核两部分组成,卷积核的大小一般为1´1、3´3或者5´5,图像中每一个和卷积核大小相等的位置,都会与卷积核进行对应位置的相乘求和。也就是说,通过将卷积核置于图像数据最左上方,然后进行从左到右,从上到下的运算,所有数字根据相对位置拼接起来,最后得到的结果就是卷积运算的结果,其运算示意图如下图所示。


(a)5*5的图像                          (b)3*3的卷积核             (c)运算结果

    池化运算是对于卷积运算的一个凝练与升华,通过对卷积计算的结果进一步提取一些更高价值的信息,常见的池化有最大池化(max)、均值池化(avg)等等。其效果示意图如下图所示。


2 循环神经网络RNN

循环神经网络是神经网络的另一种扩展,它由一系列有顺序的数据(如图中的x0x1,…,xt,)作为输入。它是根据“人的认知是基于过往的经验和记忆”这一观点提出的。其最主要特点在于输入和输入之间保持的重要联系,其神经元的输出再接回神经元的输入。循环神经网络结构如下图所示。其中,x是输入数据,h是循环神经网络的输出,右边为隐藏层的层级展开图。



循环神经网络主要用来处理序列数据,例如自然语言处理(文本翻译,文字之间存在着时间先后顺序),传感器数据(传感器随着时间收集数据),气象观测数据(通过过去的天气预测未来的天气情况)等等。

传统的循环神经网络RNN很大程度上会受到短期记忆的影响,如果序列足够长,它们将很难将信息从早期时间步传递到靠后的时间步。因此,如果要处理一段文字来做预测,循环神经网络可能从一开始就遗漏掉重要的信息。在反向传播过程中,循环神经网络也存在梯度消失等问题。一般而言,梯度用来更新神经网络权值,梯度消失问题是梯度会随着时间的推移逐渐缩小接近零。如果梯度值变得非常小,它就不能为学习提供足够的信息。所以在循环神经网络中,通常是前期的层会因为梯度消失而停止学习。因此,循环神经网络会忘记它在更长的序列中看到的东西,从而只拥有短期记忆。

因此,在循环神经网络中,有两个概念非常重要。一是长短期记忆网络(LSTM),二是门控循环单元网络(GRU),可以作为短期记忆的解决方案,是循环神经网络的主要变体。它们有一种称为“门”的内部机制,来调节信息流。LSTM 和 GRU 可以应用在语音识别、语音合成和文本生成中,甚至可以用它们来生成视频的字幕。

长短期记忆网络在传统的循环神经网络基础上加入了输入门(input gate)、输出门(output gate)和遗忘门(forget gate)。输入门和输出门用来控制信息的输入和输出,遗忘门用来控制信息是否进行更新。结构如下图所示。


    如下图所示,门控循环单元网络相比于长短期记忆网络在结构上更加简单,并且参数也更少,门控循环单元网络只包含更新门(update gate)和重置门(reset gate)两个门控单元。它将长短期记忆网络中的输入门和遗忘门合成了一个单一的更新门。因此,更新门可以控制前一状态信息保存到当前状态的程度,重置门用于控制忽略前一时刻的状态信息的程度。RU 的张量运算很少,因此与LSTM 相比,它的训练速度要快一些。



相比于传统的循环神经网络,LSTM和GRU在性能上更好,结构上更加简单,可以避免传统循环神经网络梯度消失和梯度爆炸的问题。因此,它比循环神经网络更能够记住早期的信息。创建 LSTM和 GRU的目的是利用“门”的机制来降低短期记忆。LSTM和 GRU广泛应用在语音识别、语音合成、自然语言理解等最先进的深度学习应用中。

3 深度学习在行为识别中的应用

利用深度学习算法可以对人体的行为、动作进行跟踪、特征提取,并实时识别发型、年龄、性别、种族、是否戴帽、是否背包、上衣类型与颜色、裤子类型与颜色等外部属性,在检测到行人特征之后,也可实现行人的特征检索,即依靠行人的图片进行临近摄像机里行人的视频检索。应用中,常常使用基于骨骼关键点检测的深度神经网络算法,自动识别人体姿势,如关节,五官等,通过关键点描述人体骨骼信息,以此来判别动作类型。它可应用于非常多的场景,包括智能交通、轨道交通、安防监控、智慧商业,智慧养老、安全生产、智慧监所、影视娱乐、司法分析、旅游景区、视频编码、智能直播等领域。

不同与上述基于视频数据的行为识别。很多实际应用案例中会使用手机的传感器信号,通过循环神经网络和卷积神经网络方法来判定人体的行为类别。

在传统的人体行为识别需要人工提取特征,比如数据的标准差、相关系数、最大值等等,然后通过这些特征值进行分类。但是,通过特征值进行分类的过程中,存在着提取特征不全面,对一些相似的行为无法提取有效的特征进行识别。下面的案例中将通过卷积神经网络和循环神经网络来对行为数据进行分类,充分利用传感器的数据,实现行为判定。识别过程中,不需要手动提取特征,节省了人力成本,并有效提高人体行为识别精度。

任务简介