讲授机器学习面临的挑战、人工特征的局限性、为什么选择神经网络、深度学习的诞生和发展、典型的网络结构、深度学习在机器视觉、语音识别、自然语言处理、推荐系统中的应用

大纲:

机器学习面临的挑战

特征工程的局限性

机器学习算法的瓶颈

为什么选择了神经网络

深度学习的基本思路

深度学习的诞生历程

深度学习得以发展的因素

典型的网络结构

深度学习的发展现状

在机器视觉中的应用

在语音识别中的应用

在自然语言处理中的应用

在推荐系统中的应用

深度强化学习简介

本集总结

机器学习面临的挑战:

经典的机器学习算法对某些复杂的问题的处理效果还远远未达到实用的标准,典型的是语音识别和图像识别,泛化性能差,存在严重的过拟合问题。

瓶颈在于两个方面,即人工特征;机器学习算法。

特征工程的局限性:

通用性差;建模能力差;维数灾难。

特征的设计需要大量专业领域的知识,在深度学习流行之前,做语音识别或图像识别的机构都聚集了很多人,精通各种人工特征,才能构建一个算法出来,需要大量成本且不具有通用性,而且建模能力有限,因为人工设计的特征的时候,要做各种各样的假设和简化便于计算,这样会丢掉原始的图像或语音信号的重要信息,不利于后边的分类。

为了提高算法的精度,倾向于使用越来越多的特征,即特征的维数越来越高,刚开始随着维数增加,分类的准确率会上升趋势,但是达到一定维数之后再增加维数准确率反而会下降,因为样本在高维空间的分布比较稀疏,这些样本就像噪声点一样,导致算法无法拟合一个模型出来,因为怎么看都像一个噪声。

由于特征工程(人工特征)的通用性差、建模能力差 ,与之前的人工规则和知识工程存在的问题是一样的,就出现了更彻底的深度学习

机器学习算法的瓶颈:

建模能力差;对于复杂的问题泛化性能差。

如图像识别,输入图像512*512,f(x)——>y(+1/-1),输入向量维数非常高,函数会非常复杂,无法拟合。经典机器学习算法,如SVM、LR、Bayes、AdBoost,函数形式是非常确定的,就那些参数,而用用那些参数组合出来的函数,无法描述复杂的函数。

为什么选择了神经网络:

除神经网络和决策树外,对于指定维数的输入向量,其他模型的规模都是确定的,无法人为控制模型规模。如果想通过加大模型的复杂度来拟合更复杂的函数,神经网络是最有潜力的一种方法。万能逼近定理从理论上保证了多层神经网络的逼近能力。虽然决策树在理论上也能拟合任意的函数,但在高维空间容易出现过拟合。但是神经网络的层数多了之后,会出现梯度消失问题。

决策树从理论上来说,分的够细、节点数够多、深度够大,用一个分段的常数函数来拟合任何一个函数到指定的精度,前提是特征向量维数够高、描述的够精细,但是在高维空间容易产生过拟合问题,因此决策树也被否定掉了。就剩下人工神经网络了,可以模拟任何一个复杂的函数,能够自动的提取出特征来,特征X不用人工根据规则来指定,输入图像或声音自动学习出特征,神经网络从理论上看非常美好,有万能定理作为理论上的保证,模拟任何一个连续函数到任何指定精度,而且可以把模型建的非常复杂,但是神经网络层数多的时候会出现梯度消失等问题,困扰神经网络长时间无法大规模应用的因素。

深度学习的基本思想:

自动学习有用的特征,去掉对人工特征的依赖。采用深层的神经网络建立复杂的模型。

如果能够克服深度学习的一些梯度消失、退化等问题,我们就可以把神经网络建的非常深,解决一些其他算法难以解决的问题,如图像识别、语音识别。

深度学习的诞生历程:

由于需要解决多层网络的梯度消失等问题,导致训练一个深度的神经网络是非常困难的。

2006年,Hintion等人提出逐层预训练的策略,得到权重初始值。先训练多个受限玻尔兹曼机(RBM),得到他们的权重值,然后以这些权重值作为编码器(AE)各层权重的初始值,以他们的转置作为编码器各层权重的初始值,接下来用梯度下降法训练自动编码器。

2012,Hinton等人提出深层神经网络AlexNet,深度卷积神经网络,用来做图像分类,比之前人工特征+分类器方法效果好很多。比以前的深度神经网络做大的一个区别是,规模变大了输入图像的尺寸变大了224*244,层数也变深了,因为激活函数用了ReLU函数可以缓解梯度消失问题,用了dropout机制解决了过拟合,用了GPU加速运算。

深度学习得以发展的因素:

人工神经网络1980年就出来了,反向传播算法1986年出来,1989年第一个卷积神经网络CNN出现,1998年提出LeNet网络,深度学习直到2012年才爆发,是因为存在梯度消失、鞍点、退化、过拟合等问题。直到2012AlexNet对以上问题的解决,算法的改进,新的激活函数如ReLU,正则化技术如droput。

日益增加的数据量,数码相机、智能手机出现之前拍照片用胶片机拍,图片向本很少。早期1990年代,用机器学习PCA、LDA做人脸识别,那时样本非常少几百张,很难训练一个很好的模型出来。

计算能力的进步-GPU。GPU最早不是用于深度学习的,在图形学中做仿真或渲染用的,在2008年CUDA用于科学计算,2012年用于深度学习。

典型的网络结构:

深度学习有典型的特征,深层ANN和自动提取特征。

自动特征提取:

自动编码器-Auto-encoder,Hintion2006年训练的神经网络。

受限玻尔兹曼机-Restricted Boltzmann Machine,概率神经网络,神经元的值不是确定的,以一定概率生成的。

卷积神经网络-Convolutional Neural Network,适合做有空间结构的数据分析,如图像,通过卷积和池化这些操作,来提取图像在各个尺度上边的特征。

循环神经网络-Recurrent Neural Network,适合用于序列数据建模,输入数据为x1,x2,x3,...它们之间是有关联依赖关系的,具有记忆功能。

生成对抗网络-Generative Adversarial Network,两种神经网络的综合,里边可以用CNN、RNN,解决数据的生成问题,随机数生成样本数据,创作型的问题,如写诗。

自动编码器和受限玻尔兹曼机是深度学习早期提出的方法,并没有很多实际的应用。

深度学习的发展现状:

深度学习真正的起点是2012年,至此得到蓬勃发展,CNN、RNN不断得到改进和发展,2014年提出GAN。

从2012年深度学习出来以后,顶级会议ICML、AAAI、NIPS,应用方面的会议ICCV、CVPR,等会议上的文章大多改用深度学习来做,在一些应用上也得到了很大的发展。

神经网络在1980年出来之后,1986年BP算法出现,到1992年发展了一阵子,受限于算法本身问题(梯度消失、鞍点、退化、过拟合等)、样本数量问题、计算机运算能力限制,并没有得到很大的发展,1992年消沉了一阵子直到2012年,这段时间,SVM、AdBoost、RF等这些算法得到蓬勃的发展,尤其SVM在很多分类问题上居于统治地位。

目前仍处于高速发展期,各种新的方法层出不穷。在机器视觉、语音识别、自然语言处理的很多问题中处于优势地位。特别适合解决感知类问题。在很多决策和控制类问题,深度学习也得到了大规模的应用,如围棋类的游戏、自动驾驶、模仿人类打游戏等,这是得力于深度强化学习(DRL)技术的进展。

在机器视觉中的应用:

通用目标检测,R-CNN,比以前的AdBoost、SVM提升了很多。

人脸检测

人脸识别

行人检测

图像分割,全卷积网络FCN

边缘检测

在语音识别(ASR)中的应用:

循环神经网络RNN;LSTM(RNN的改进型);CTC-连结主义时序分类。现在最好的语音识别系统都是用深度神经网络RNN做出来的。

在自然语言处理中的应用:(中文分词、词性标注、命名实体识别、文本分类、自动问答、自动摘要、机器翻译)

循环神经网络CNN、seq2seq(编码器解码器架构),在很多问题上取到很好的效果与实用,如机器翻译,深度学习在CV、ASR、NLP领域的成功,直接推动了产业的发展,人工智能AI的浪潮在国内从2016年AlphaGo事件以后,都基于这些技术的进展,因此这波人工智能的复兴,深度学习功不可没,不但推动学术界大的发展而且推动工业界走向算法实用。

在数据挖掘如推荐系统中的应用:

基于内容的推荐

YouTube的推荐系统

需有大量的训练样本,用深度学习训练的推荐系统,推荐的成功率比之前的传统算法的推荐系统要高很多,而推荐成功率每提高几个点,带来的收益极大,如广告的转化成功率的提高。

深度强化学习:

求最优策略,做控制和策略用的,给一个输入当前条件下执行一个动作,后边达到的回报是最大的。深度强化学习的研究已经很早就出现了,都不是很实用,不能解决大规模实际问题,当和深度神经网络如CNN整合之后,发挥了巨大威力。

深度神经网络与强化学习相结合,深度强化学习DRL

用于表示动作价值函数-Q函数

用于表示策略函数

应用有,Atari游戏,AlphaGo,星际争霸,自动驾驶,机器人控制。

CNN、RNN解决分类和回归问题,GAN解决数据生成问题,DRL解决控制和策略类问题。

本集总结:

DL产生原因:1.人工特征的局限性,2.机器学习算法本身的性能上的瓶颈

DL思路:1.深层神经网络建模,2.深度神经网络自动学习特征出来

发展历程:2006年文章,2012年文章

常用神经网络结构、发展现状、应用

接下来详细讲这些经典的神经网络: AE-1节课、RBM-1节课、CNN-4节课、RNN-3节课、GAN-2节课、DRL-2节课。

SIGAI深度学习第四集 深度学习简介的更多相关文章

  1. ElasticSearch 5学习(7)——分布式集群学习分享2

    前面主要学习了ElasticSearch分布式集群的存储过程中集群.节点和分片的知识(ElasticSearch 5学习(6)--分布式集群学习分享1),下面主要分享应对故障的一些实践. 应对故障 前 ...

  2. ElasticSearch 5学习(6)——分布式集群学习分享1

    在使用中我们把文档存入ElasticSearch,但是如果能够了解ElasticSearch内部是如何存储的,将会对我们学习ElasticSearch有很清晰的认识.本文中的所使用的ElasticSe ...

  3. Orleans学习总结(四)--集群配置篇

    上篇我们讲了Orleans学习总结(三)--持久化篇,这一篇我们来说说集群配置,毕竟这个才是Orleans的看家本领 Orleans支持热起动,支持自动节点发现,能够断线重发等一系列黑科技. 我这篇是 ...

  4. 【Python机器学习实战】决策树与集成学习(四)——集成学习(2)GBDT

    本打算将GBDT和XGBoost放在一起,但由于涉及内容较多,且两个都是比较重要的算法,这里主要先看GBDT算法,XGBoost是GBDT算法的优化和变种,等熟悉GBDT后再去理解XGBoost就会容 ...

  5. SIGAI机器学习第二十四集 聚类算法1

    讲授聚类算法的基本概念,算法的分类,层次聚类,K均值算法,EM算法,DBSCAN算法,OPTICS算法,mean shift算法,谱聚类算法,实际应用. 大纲: 聚类问题简介聚类算法的分类层次聚类算法 ...

  6. SIGAI机器学习第十四集 支持向量机1

    讲授线性分类器,分类间隔,线性可分的支持向量机原问题与对偶问题,线性不可分的支持向量机原问题与对偶问题,核映射与核函数,多分类问题,libsvm的使用,实际应用 大纲: 支持向量机简介线性分类器分类间 ...

  7. python学习(四)字符串学习

    #!/usr/bin/python # 这一节学习的是python中的字符串操作 # 字符串是在Python中作为序列存在的, 其他的序列有列表和元组 # 1. 序列的操作 S = 'Spam' # ...

  8. 智能车学习(四)—— Cmp学习

    一.代码共享 1.cmp.h #ifndef HSCMP_H #define HSCMP_H //1 头文件 #include "common.h" //2 宏定义 //2.1比较 ...

  9. Oracle数据库学习(四):学习中的遇到的问题

    一.xhost图形化界面安装问题 问题1:运行xhost +命令,出现命令没有找到错误 原因:Linux系统没有安装xhost图形化包. 解决办法:安装xhost图形化包,命令如下: yum what ...

随机推荐

  1. 认识 Spring 框架(一)

    认识 Spring 框架 Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC (Inversion of Control,控制反转) 和 AOP( ...

  2. 只学python行吗

    常言道:"流水的语言,铁打的Python",目前它可以说是已经"睥睨天下,傲视群雄"了.它天生丽质,易于读写,非常实用,从而赢得了 广泛的群众基础,被誉为&qu ...

  3. 20191011-构建我们公司自己的自动化接口测试框架-ProVar模块

    ProVar模块主要定义测试数据所在目录,以及定义变量和测试数据excel里面的column对应这样后续在进行excel操作的时候直接使用变量即可进行操作,后期excel的column有增删的时候,修 ...

  4. WUSTOJ 1282: Start(Java)

    1282: Start 题目   判断一个字符串是不是回文串.例如:"abcba"是回文串.更多内容点击标题. 分析   水题,自己思考. 代码 /** * time 838ms ...

  5. java jdbc 链接mysq 测试l 云服务器 和云数据库 mysql DB

    话不多说直接上效果图 下面给出参考代码: package com.humi.db; import java.sql.Connection; import java.sql.DriverManager; ...

  6. cnn健康增胖和调理好身体

    吃不胖,其实大部分情况是消化系统不好,大部分食物都没有被身体吸收就被排掉了. 1,改善肠胃消化功能: 每天早上一杯全脂鲜牛奶(或者羊奶), 每天晚上一杯酸奶 ps:白天和鲜牛奶可以激发肠胃的消化能力. ...

  7. ARM微控制器与嵌入式系统

    个牛人在ARM实现嵌入式系统的过程 第一章  概览 1.1课程概览 认识ARM嵌入式系统(什么是ARM?什么是嵌入式系统?) 备战智能车 在科技活动中玩起来 积累计算机.电路基础知识 1.2如何学好嵌 ...

  8. GraphQL实战篇(一)

    看过基础篇的都知道,GraphQL创建Schema有两种方式,Schema First和Graph Type,前者使用GraphQL Schema Language类似于EF的DB First:后者和 ...

  9. 关于微信小程序获取多个formId的实现方法

    在此之前,很多人使用过form和button的多层嵌套来实现点击一次获取多个formId的目的,如下图所示,点击一次“提交”,可以获取到多个formId 但是在今年3月份,这个投机取巧的方法(算是微信 ...

  10. django-两种方式对单表的操作

    单表操作的内容 我们这里对数据库单表的操作包含增删改查四部分 具体链接数据库的方式我们是通过pymysql,当然你也可以用其他的. 两种方式的概念与区别 1.新url的方式 主要就是我们每一次向后台提 ...