通用AI,因为AI目前已成为机器学习、统计分析的代名词,故用AGI来代表AI原来的意思,即真正的强人工智能。
计算机视觉,目的是让计算机"理解"图像,即从图像或多维数据中感知。
自然语言处理,目的是让计算机和人之间用自然语言有效通信,上学期模式识别的课程项目就是在做NLP。
机器学习,让机器从训练数据中自动进步,从经验中自动学习。DL属于ML。
是ML之外,AI之内的领域,机器用人类定义的规则进行逻辑推理。目前它被包装了一个新名字——“知识图谱”。
即再励学习、评价学习,只能系统从环境到行为映射的学习,使奖励信号(强化信号)函数值最大。
目的是让机器具有"共识"(世界如何运作的常识),从获得的信息中感知对象的过去、现在和将来的某些属性。
人工神经网络,一般直接说神经网络(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 m \cdot n m⋅n)。
每层对数据进行变换,ANN会自动逐步调整每层的参数(而不是超参数),让最终输出趋近期望输出。
是一类函数,并非一个具体的函数,但都表征实际输出和期望输出之间的误差大小。
在彭博叔叔的这本书里定义为 L O S S = ( O U T − 期 望 输 出 ) 2 LOSS=(OUT-期望输出)^2 LOSS=(OUT−期望输出)2,在不同的文献中会不一样。
即ANN中自我训练的那一部分程序。会根据LOSS和ANN的情况更新ANN的参数,使LOSS缩小。
对于ANN的任何参数w,在学习速率为 η \eta η下,梯度下降的训练公式:
w n e w = w − η ⋅ ∂ L O S S ∂ w w^{new}=w-\eta \cdot \cfrac{\partial LOSS}{\partial w} wnew=w−η⋅∂w∂LOSS
下降后的新的损失:
L O S S n e w ≈ L O S S − η ⋅ ( ∂ L O S S ∂ w ) 2 LOSS^{new}\approx LOSS-\eta \cdot \left(\cfrac{\partial LOSS}{\partial w}\right)^2 LOSSnew≈LOSS−η⋅(∂w∂LOSS)2
####训练ANN时要注意的通用事项
即批大小,是每次训练选取的样本数目。在之前模式识别学习感知机的时候感受很深刻,批大小太小则太具有随机性,批大小太大也不能获得最有效精准的调整。
每学习一遍数据集,称为一个epoch。按照前面的注意事项,最好每个epoch打乱数据的顺序。
先构造计算图,再运行,运行时不能再修改。如TensorFlow、Caffe、MXNet。
计算图会动态构造,根据程序语句动态生成。如PyTorch、Chainer、MXNet Gluon(动态图支持)。
最热门,适合大规模集群部署,训练速度较慢,使用和调试较繁琐。
训练速度快,代码结构清晰。
有一些特别的功能,如支持C#、支持1-bit网络。
采用动态图计算,适合学术研究。
并非独立的DL框架,而是现有框架之上的封装。