Deep learning

简介: 三巨头从机器学习谈起,指出传统机器学习的不足,总览深度学习理论、模型,给出了深度学习的发展历史,以及DL中最重要的算法和理论。

论文:doi:10.1038/nature14539


论文意义和主要内容


三巨头从机器学习谈起,指出传统机器学习的不足,总览深度学习理论、模型,给出了深度学习的发展历史,以及DL中最重要的算法和理论。


概念:


原理:DL的整个过程参数相当多,调整内部参数的方法就是backpropagation算法。


应用:CNN主要在图像,视频,语言和音频处理方面带来突破,RNN对文本和语音等时序数据带来突破。


论文结构


1引言


Deep-learning methods are representation-learning methods with multiple levels of representation,obtained by composing simple but non-linear modules that each transform the representation at one level (starting with the raw input) into a representation at a higher, slightly more abstract level. With the composition of enough such transformations, very complex functions can be learned.


深度学习方法是多级学习方法,由多个简单非线性模块(可以用层表示)组合而成,每一层就是一个级别,原始数据通过深度学习可以进行特征的变化和提取,只要这些模块足够多,即使是非常复杂的模型也可以用深度学习方法进行表示。


理解:深度学习是机器学习的一种,它也可以使用三板斧(详见李宏毅学习笔记),就是要在定义的function set里面(这里的function set会比较复杂),找到一个最好的function(机器学习的过程),用于模型的表示或预测(最后的应用)

这里还提到一个很重要的概念:representation learning/表示学习,:


bfbbfd42424374f16f7f592a98aeed48.jpg


DL的应用领域


It has turned out to be very good at discovering intricate structures in high-dimensional data and is therefore applicable to many domains of science, business and government.


计算机视觉CV

       无人驾驶:车辆识别、路径规划

       图片识别:图片表示、语义分割


自然语言处理NLP

       智能搜索、人机对话、文本摘要、机器翻译


其他:医学图像分析、制药、人脸识别、游戏、安全、异常检测等


2监督学习Supervised learning


We compute an objective function that measures the error (or distance) between the output scores and the desired pattern of scores. The machine then modifies its internal adjustable parameters to reduce this error. These adjustable parameters, often called weights, are real numbers that can be seen as ‘knobs’ that define the input–output function of the machine. In a typical deep-learning system, there may be hundreds of millions of these adjustable weights, and hundreds of millions of labelled examples with which to train the machine.


这里面的用词和ng的课里用的loss function以及cost不太一样,不过李飞飞的cs231n里面用的是score的说法。


我们通过计算目标函数,该函数用来衡量输出score和真实score的差异(其实是距离)。计算机通过BP调整模型的参数(通常叫权重)使得这个差异最小化。进行这样的调整需要大量的带标签数据。调节过程就像调节旋钮。


With multiple non-linear layers, say a depth of 5 to 20, a system can implement extremely intricate functionsof its inputs that are simultaneously sensitive to minute details — distinguishing Samoyeds from white wolves — and insensitive to large irrelevant variations such as the

background, pose, lighting and surrounding objects.


里面还以和狼很像的薩摩耶犬(英语:Samoyed)为例,说明了传统的机器学习算法不能很好的进行分类,如果需要人为干预要加入很多的domain knowledge,就失去了机器学习的意义,而深度学习就很好的解决了这个问题,使用5-20个隐藏层就能很好的分辨两个物种,而且在分辨物种的同时可以忽略背景、姿势等因素,也就是说深度学习能很好的提取出两个物种的特征并进行分类。


这节里面给出了图1,包含了4个小内容:


1、两个输入,一个隐藏层,一个输出层的神经网络示例

2、链式法则

3、前向传播,是一个计算的过程

4、反向传播,是一个误差传递的过程


3ad12d71a1a6422e9fad2fe9ea05ea8f.png


这节还提到了SGD随机梯度下降算法


3反向传播算法BP


一开始先说了BP算法的目的是用于替代原来在模式识别中的手工特征提取,给出了BP算法提出,发展的历史介绍。


指出了目前最常用的组成神经网络的神经元的非线性函数是ReLU(以前是sigmoid或者tanh(z)),提到了ReLU的优点。


关于局部最小值的知识在李宏毅的笔记中有写过,就是在复杂模型中不常见。


提到了Canadian Institute for Advanced Research (CIFAR).数据集,写CS231n的作业1就是这个数据集。


提到了pre-training方法,并举例其在语音识别上的应用。


4卷积神经网络CNN


这节直接看李宏毅的学习笔记,CNN


从三个方面讲解了CNN比全连接网络需要的参数要少,并且用固定参数求输入的方式,尝试去理解CNN的各个Filter提取的特征是什么样子的。


5基于深度卷积神经网络的图片理解(Image Understanding)


图三:看图说话CNN+RNN


这个工作在CS231n的2017年的课程里面还有提到,说的是还在做,不知道现在做的怎么样了,不过听讲解神经网络就是玩积木,如果图片识别或分类的CNN和语义生成RNN都训练好了,可以接起来用就ok。


里面还提到了2012年的ImageNet大赛,也是CNN获得冠军的一次比赛,在231n里面的导论有讲。用到的新技术包括:GPU并行、ReLU、抓爆。


提到了硬件的发展大大缩短了CNN复杂模型的训练时间,各大公司都采用了基于CNN视觉系统。一些硬件厂商还开发了专门基于CNN优化的硬件芯片。


6分布表示和语言处理(Language processing)


基于NN的词向量、词嵌入(word embedding),历史上还出现过:基于矩阵的分布表示和基于聚类的分布表示。


首先明确了对于没有使用分布式表示的处理方法而言,分布式表示语言处理有两个优势:


1、可以在训练过程中产生组合特征


2、Vector representations of words learned from text are now very widely used in natural language applications.


One-hot Representation


NLP 中还有一种表示方法称为 One-hot Representation,这种表示方法把每个词表示为一个很长的向量。向量的维度是词表大小,其中绝大多数元素为 0,只有一个维度的值为 1,这个值就代表了当前的词。例如:


“豆浆”=[0,1,0,0,0,0,0,…]

“油条”=[0,0,1,0,0,0,0,…]


采用稀疏方式存储,非常的简单,相当于给每个词分配一个 ID。上例中,豆浆记为 1,油条记为 2(从 0 开始算)。

这种方式的缺点非常明显:


1、向量的维度会随着句子的词的数量增大而增大(10万个词就10维);

2、任意两个词之间都是孤立的,只记录词的位置,无法表示出在语义层面上词语词之间的相关信息。


理解embedding


可以进行词的向量空间的映射,可以表示词的(上下文)含义。


20190609190424311.png


可以通过一些组合方式对 n 个词进行组合,参数个数仅以线性速度增长。


论文中的图4给出了词和句子embedding的例子


20190609195933219.png


Word2Vec算法


个算法虽然不了解,但是网上的资料应该很多,NLP还没入坑,先留空,贴个总结帖

https://zhuanlan.zhihu.com/p/26306795


7循环神经网络RNN


RNN也是NN,其特点如下:


20190609200714632.png


2019060920090818.png

主要用于时间序列预测,可以理解为带有存储功能的神经网络,每次都会存储之前隐藏层的输出(中间结果)。


LSTM


Long Short-term Memory,是一种特殊的RNN,主要用于解决长序列数据在训练过程中梯度爆炸和梯度消失的问题,比RNN有更好的表现,能处理更长的序列,嫩存储更多的中间结果。


8深度学习的未来


15年的文章,里面写的未来基本就是现在。


非监督学习是深度学习的方向;


强化学习


GAN


2019最新发布,杨立坤提出的自监督学习

目录
相关文章
|
机器学习/深度学习 算法 API
论文笔记之:Deep Reinforcement Learning with Double Q-learning
Deep Reinforcement Learning with Double Q-learning Google DeepMind   Abstract    主流的 Q-learning 算法过高的估计在特定条件下的动作值。
|
3月前
|
机器学习/深度学习 自然语言处理 算法
深度学习Deep Learning
深度学习算法的历史可以追溯到上世纪40年代,当时Warren McCulloch和Walter Pitts提出了第一个人工神经元模型,奠定了神经网络研究的基础。随后,Rosenblatt于1958年提出了感知机模型,引领了神经网络研究的新浪潮。然而,传统神经网络的局限性使其无法解决复杂的、非线性的问题,导致研究进展受限。
46 3
|
4月前
|
机器学习/深度学习 传感器 自然语言处理
Deep Learning
【6月更文挑战第7天】
36 2
|
机器学习/深度学习 算法 决策智能
【5分钟 Paper】Deep Reinforcement Learning with Double Q-learning
【5分钟 Paper】Deep Reinforcement Learning with Double Q-learning
106 0
|
5月前
|
存储 编译器 C语言
C learning_2
C learning_2
|
5月前
|
算法 C语言 数据安全/隐私保护
C learning_6
C learning_6
|
5月前
|
编译器 C语言
C learning_1
C learning_1
|
5月前
|
存储 安全 程序员
C learning_5
C learning_5
|
5月前
|
存储 缓存 安全
C learning_4
C learning_4
|
5月前
|
C语言