【DL学习笔记】1:深度学习中的基础知识

跟着彭博叔叔《DCNN》学习一下DL。

其实本来是要和凡姐做比赛项目才去想着学学CNN的,也是因为这个才买了这本书。现在虽然比赛已经确定是凉了,然而这本书写的实在太好了,我觉得比花书通俗很多,也能更激发兴趣,闲暇时候读一读学一学。

一些全局认识

AGI

通用AI,因为AI目前已成为机器学习、统计分析的代名词,故用AGI来代表AI原来的意思,即真正的强人工智能。

CV

计算机视觉,目的是让计算机”理解”图像,即从图像或多维数据中感知。

NLP

自然语言处理,目的是让计算机和人之间用自然语言有效通信,上学期模式识别的课程项目就是在做NLP。

ML

机器学习,让机器从训练数据中自动进步,从经验中自动学习。DL属于ML。

专家系统

是ML之外,AI之内的领域,机器用人类定义的规则进行逻辑推理。目前它被包装了一个新名字——”知识图谱”。

强化学习

即再励学习、评价学习,只能系统从环境到行为映射的学习,使奖励信号(强化信号)函数值最大。

预测学习

目的是让机器具有”共识”(世界如何运作的常识),从获得的信息中感知对象的过去、现在和将来的某些属性。

ANN

人工神经网络,一般直接说神经网络(NN)就是指ANN了,由一层层的神经元构成。传统的ANN架构是前馈神经网络,包括多层感知机(MLP)。

泛化

在ML里学过,学习机器不依赖于训练样本,具有推广能力。反映在DL上就是ANN的”举一反三”的能力。

过拟合

和ML中的意思一样,如果只能解决训练用的样本,遇到新的样本就容易出现各种错误,就是over-fitting。
过拟合是机器学习的一大难点,在ML中一般模型的参数太多就容易产生过拟合,模型越简单越可能是正确的。
在DL中恰好相反,DL的参数很多,但是却往往比ML的方法更能避免过拟合,但其真正原因还没有研究出,彭博叔叔的理解是DNN的逐层结构可以实现对概念的不断抽象,与自然界的规律吻合。

生成模型

生成模型最经典的代表是GAN,可以生成与现有数据类似的新数据,或者在多种数据中实现自动相互转换。

数据增强

让网络提前见识那些变种但合理的数据,或是不那么常见的数据。如围棋中的一些冷门打法,手写文字的各种扭曲字体等。

特征工程

这是早期的分类程序的方法,需要人工构造许多特征,困难且低效。ANN则是自动发现特征,但这些特征并不容易用人类的思维解释。

逻辑规律和统计规律

逻辑规律是确实的真理,具有逻辑关联;统计规律是某种来自数据的经验,具有统计意义。
统计规律很强大,所以只要数据量够大,ML和DL能解决很多问题。但它们都不擅长逻辑推理,容易犯低级错误,目前可以结合蒙特卡洛树搜索等方法弥补。

符号主义

即计算主义、逻辑主义,认为AI需要通过精确的逻辑推理实现,如专家系统。

统计主义

更注重从数据和经验中学习统计规律,大多ML方法皆是如此。

一些基本概念

神经元

电脑的ANN采用浮点数作为神经元之间的通信手段,而生物的NN采用电脉冲信号作为通信手段。
在DL中提到神经元都是指ANN的神经元,一个神经元相当于一个感知器,输出y是输入的x向量的各个分量通过w向量的线性组合,再加上偏置 b。

多层感知机

全连接神经网络,层和层之间的神经元相互完全连接( m n )。

ANN的训练过程

每层对数据进行变换,ANN会自动逐步调整每层的参数(而不是超参数),让最终输出趋近期望输出。

损失函数

是一类函数,并非一个具体的函数,但都表征实际输出和期望输出之间的误差大小。

MSE损失(L2损失)

在彭博叔叔的这本书里定义为 L O S S = ( O U T ) 2 ,在不同的文献中会不一样。

优化器

即ANN中自我训练的那一部分程序。会根据LOSS和ANN的情况更新ANN的参数,使LOSS缩小。

梯度下降

对于ANN的任何参数w,在学习速率为 η 下,梯度下降的训练公式:

w n e w = w η L O S S w

下降后的新的损失:
L O S S n e w L O S S η ( L O S S w ) 2

训练ANN时要注意的通用事项

  • 初始参数不能全设置为0。
  • 要逐渐缩小学习速率。
  • 每次训练时打乱样本,让训练顺序随机化,以使最终的ANN尽量少受训练顺序影响。

batch大小

即批大小,是每次训练选取的样本数目。在之前模式识别学习感知机的时候感受很深刻,批大小太小则太具有随机性,批大小太大也不能获得最有效精准的调整。

epoch

每学习一遍数据集,称为一个epoch。按照前面的注意事项,最好每个epoch打乱数据的顺序。

计算图

是一种DAG图,如:
这里写图片描述

静态图框架

先构造计算图,再运行,运行时不能再修改。如TensorFlow、Caffe、MXNet。

动态图框架

计算图会动态构造,根据程序语句动态生成。如PyTorch、Chainer、MXNet Gluon(动态图支持)。

某些常见DL框架的特点

TensorFlow(Google)

最热门,适合大规模集群部署,训练速度较慢,使用和调试较繁琐。

MXNet

训练速度快,代码结构清晰。

CNTK(Microsoft)

有一些特别的功能,如支持C#、支持1-bit网络。

PyTorch(Facebook)

采用动态图计算,适合学术研究。

Keras

并非独立的DL框架,而是现有框架之上的封装。

猜你喜欢

转载自blog.csdn.net/shu15121856/article/details/80721274
今日推荐