人工智能复习笔记

四大流派:符号主义(专家系统),连接主义(人工神经网络),行为主义(机器人),统计主义(机器学习)

机器学习:监督,半监督,非监督,强化,迁移

线性回归

  • model:
  • loss function:
  • 参数更新:

逻辑回归

  • model:
  • loss function:
  • 参数更新:
  • 推导为什么不能用均方差代替交叉熵:
  • Cascading logistic regression model:为了解决逻辑回归不能处理异或问题,将多个逻辑回归连接起来,一部分负责特征转换,一部分负责分类,这样就就解决了异或问题;这样的每一个逻辑回归就是神经元,串起来形成了神经网络

如何加快模型训练

  • 1特征缩放,特征归一化 2改变梯度下降方法:随机梯度下降,批量梯度下降 3微调学习率

什么是机器学习

对于某类任务T和性能度量P,一个计算机程序被认为可以从经验E中学习是指,通过经验E改进后,它在任务T上由性能度量P衡量的性能有所提升

优化算法

损失函数

  • 平方损失函数更适合输出为连续,并且最后一层不含Sigmoid或Softmax激活函数的神经网络;交叉熵损失则更适合二分类或多分类的场景。
  • 均方差:
  • 交叉熵:

凸函数

凸函数曲面上任意两点连接而成的线段,其上的任意一点都不会处于该函数曲面的下方

梯度下降

  • 推导:
  • 经典的梯度下降法在每次对模型参数进行更新时,需要遍历所有的训练数据。当M很大时,这需要很大的计算量,耗费很长的计算时间,在实际应用中基本不可行。
  • 随机梯度下降法用单个训练数据即可对模型参数进行一次更新,大大加快了收敛速率。
  • 随机梯度下降法对梯度的估计常常出现偏差,造成目标函数曲线收敛得很不稳定,伴有剧烈波动,有时甚至出现不收敛的情况
  • 为了降低随机梯度的方差,从而使得迭代算法更加稳定,也为了充分利用高度优化的矩阵运算操作,在实际应用中我们会同时处理若干训练数据,该方法被称为小批量梯度下降法。
  • 小批量梯度下降的m通常选取2的幂次时能充分利用矩阵运算操作,先对数据进行随机排序,再顺序挑选m个训练数据,学习率通常先较大,后减小。
  • AdaGrad方法采用历史梯度平方和,其公式为:
  • RMSProp公式:
  • Adam方法将惯性保持和环境感知这两个优点集于一身。一方面记录了过往梯度与当前梯度的平均,体现了惯性保持,一方面记录了过往梯度平方与当前梯度平方的平均,体现了环境感知。

正则化

L1:
L2:

Dropout

  • Dropout相当于每次迭代都在训练不同结构的神经网络,可以被认为是一种实用的大规模深度神经网络的模型集成算法,减少过拟合风险,增强泛化能力
  • testing时没有dropout,training时dropout是p%的话,测试时所有的weights要乘以1-p%

过拟合和欠拟合

  • 欠拟合:高bais error,低variance error;过拟合:低bais error,高variance error
  • Bias error ≈ 训练集上的错误率,训练集上的错误率 = avoidable error + unavoidable error,Variance error ≈ 开发集(或测试集)上的表现比训练集上差多少 ,
  • 过拟合就是在训练集上的表现很好,但在测试集和新数据上的表现较差;欠拟合指的是模型在训练和预测时表现都不好的情况。
  • 降低过拟合方法:1获取更多数据2降低模型复杂度3正则化4集成学习方法5提前停止6dropout
  • 降低欠拟合方法:1添加新特征2增加模型复杂度3减小正则化系数4新的激活函数5自适应的学习率6选择合适的损失函数

神经网络

  • 反向传播用以更新模型参数;正向传播用以计算loss

激活函数

  • sigmoid及其导数:
  • tanh及其导数:
  • softmax及其导数:

sigmoid梯度消失的原因

  • 根据其导函数可知,当z很大或很小时,f(z)趋近于0,会造成梯度消失。

Relu相较于sigmoid的优点及局限性

  • Relu是Maxout的一个特殊情况
  • 优点:1.sigmoid和tanh都需要进行指数的计算,复杂度高,而relu只需要一个阈值就可激活;2.relu的非饱和性可以有效地解决梯度消失的问题;3.relu的单侧抑制提供了网络的稀疏表达能力
  • 局限性:在训练过程中导致神经元死亡的问题,该神经元的梯度永远为0,不再被激活,解决方法是relu的变种形式

神经网络的训练技巧

  • 参数不能全部初始化为0,因为神经元结构相同,输入输出相同,无法训练,需要随机化参数来打破对称性;
  • 如果不进行归一化处理,会致使网络在每一次迭代中都需要拟合不同的数据分布,增大训练的复杂度以及过拟合的风险。归一化的方法是:针对每一批数据,在网络的每一层输入之前增加归一化处理(均值为0,标准差为1),公式为:

CNN

  • 计算公式:

为什么选择CNN

1.一些特征比整张图片要小很多,不需要看整张图–卷积 2.一些特征会在一张图的不同区域出现–卷积 3.二次抽样不会改变对象–池化

稀疏交互和参数共享

稀疏交互的物理意义是先学习局部特征,再将局部特征组合为更复杂更抽象的特征。参数共享的物理意义是卷积层具有平移等变性。

池化

包括均值池化和最大值池化,本质是降采样,而且能够保持对平移、伸缩、旋转操作的不变性。

为什么要deep

  • deep->模块化->更少的训练数据
  • 类似于决策树,每一层的每一个神经元相当于一个基本的分类器,后面的层的神经元使用前一层的来建立一个新的分类器。复杂的问题模块化

RNN

序列数据举例

语音识别,情感分析,DNA序列分析,机器翻译等

LSTM

  • 输入门,输出门,遗忘门,输入门控制当前计算的新状态有多大程度更新到记忆单元中,遗忘门控制前一步记忆单元中的信息有多大程度被遗忘掉,输出门控制当前的输出有多大程度取决于当前的记忆单元。
  • 遗忘门接近于1时,实现记忆功能,遗忘门接近于0时,实现的是遗忘功能。
  • 三个门的激活函数为sigmoid,sigmoid函数输出在0~1之间,符合门控的物理定义。在生成候选记忆时,使用tanh,输出在-1~1之间,大多数场景下分布为0为中心相吻合,且在0附近有更大的梯度,收敛更快。
  • 4个输入,1个输出
  • long short-term memory 可以理解为:比较长的-短时-记忆
  • LSTM可以解决RNN的梯度消失,但不能解决梯度爆炸

RNN对比CNN等前馈神经网络

  • 一般的前馈神经网络,如CNN,可以捕捉到局部特征,但是序列中的依赖关系很难被学到,而RNN第t层的隐含状态h编码了序列中前t个输入的信息,最后一层的状态h编码了整个序列的信息,RNN具备对序列顺序信息的刻画能力,往往能得到更准确的结果。

RNN梯度消失、梯度爆炸问题

  • 由于预测的误差是沿着神经网络的每一层反向传播的,因此当雅克比矩阵的最大特征值大于1时,随着离输出越来越远,每层的梯度大小会呈指数增长,导致梯度爆炸;反之,若雅克比矩阵的最大特征值小于1,梯度的大小会呈指数缩小,产生梯度消失。
  • 梯度爆炸的问题可以通过梯度裁剪来缓解,即当梯度的范式大于某个给定值 时,对梯度进行等比收缩。
  • LSTM及GRU通过加入门控机制,很大程度上弥补了梯度消失带来的损失

迁移学习

概念

  • 把已学训练好的模型参数迁移到新的模型来帮助新模型训练,通过迁移学习我们可以将已经学到的模型参数(也可理解为模型学到的知识)通过某种方式来分享给新模型从而加快并优化模型的学习效率不用像大多数网络那样从零学习。

应用场景

  • 同样的任务,不同的分布,或者不同的任务,同样的分布
  • 源数据:有标签;目标数据:有标签(很少);比如:源数据为许多人的语音,目标数据为特定用户的语音;fine-tuning,multitask lear
  • 源数据:有标签;目标数据:无标签;比如:源数据为mnist,目标数据为一些不带标签的数字图像;domain-adversarial training,zero-shot learining
  • 源数据:无标签;目标数据:有标签;self-taught learning
  • 源数据:无标签;目标数据:无标签;self-taught clustering
-------------本文结束 感谢您的阅读-------------