深度学习与神经网络课程总结(一)

本文探讨了神经网络与深度学习的基本概念、发展历史,包括线性分类中的感知机、多层前馈网络的BP算法,以及性能优化方法如动量法和自适应梯度算法。文章还提及了深度学习面临的挑战和突破,如过拟合问题和应用案例如ImageNet和AlphaGo。
摘要由CSDN通过智能技术生成

#本贴仅做课程作业使用,感谢课程老师愿意提供学习材料#

一、背景介绍

1.什么是神经网络与深度学习

神经网络是一种模拟人脑神经元连接方式的计算模型,它由多个神经元组成,每个神经元接收输入信号,并通过激活函数决定是否输出信号;而深度学习是神经网络的进阶,利用多个神经网络处理数据,有着更复杂的结构和优化的算法。他们都是机器学习的重要组成部分,用于解决以往的机器学习方法不能处理的非结构化数据。神经网络与深度学习目前瓶颈主要有:

(1)需要大量数据标注,这意味着样本的丰富程度较大影响了实验结果,对样本的过度依赖使得深度学习在监督学习上有所不足。

(2)过度拟合基准数据,比如说在图像识别上,深度神经网络在基准数据集上表现很好,但在数据集之外的真实世界图像上,效果就差强人意了。在实际的应用中, 如果深度网络的训练数据与测试数据有所偏差,将会带来很大的不同。

(3)对图像变化过度敏感,对于任何一个目标对象,数据集中只有有限数量的场景。在实际的应用中,神经网络会明显偏向这些场景。对于像深度神经网络这样依靠有限数据驱动的方法来说,很难捕捉到各种各样的场景,以及各种各样的干扰因素。超出数据集之外的部分就会有很大偏差。

2.神经网络与深度学习的发展

1943年,神经生理学家沃伦·麦卡洛克(Warren Sturgis McCulloch)与数学家沃尔特·皮茨(Walter Pitts)一起在《数学生物物理学通报》上发表论文。首次提出了一套基于阈值逻辑的数学模型,命名为 McCulloch-Pitts 模型,简称为 M-P模型。这便是人类首次根据生物神经元系统的运行规律以数学建模方式构建的最基础的人工神经元网络架构。感知器(P)的数学概念也就此诞生。以下是神经网络与深度学习的发展梗概:

➢ 创始:

⚫ 1943年,McCulloch和W.Pitts,提出M-P模型;

⚫ 1949年, Hebb规则

➢ 初步发展:

⚫ 1958年,Rosenblatt 感知机和联想学习

⚫ 1960年,Widrow和Hoff ADALINE学习算法 Part 2 2.1 发展史 14

➢ 停滞期: 1969年 Minsky “Perceptron” XOR问题 ➢ 复兴期(二十世纪八、九十年代):

⚫ 1982 Hopfield解决TSP问题

⚫ 1986 Rumelhart和McClelland BP

⚫ 新型神经网络提出,如RBFN, Hopfield网络,Boltzmann机等

➢ 爆发期(2006~2021年):

⚫ 2006年:Hinton提出深度学习

⚫ 应用的爆发式发展:语音识别:微软,2011;ImageNet: Google, 2011-; AlphaGo: DeepMind, 2016

➢ 通用人工智能(2021起):以ChatGPT 3.5为标志

自2016年后,AI成果在诸多领域都井喷式发展,而ChatGPT的问世更是标志着普通人也能直接享受到人工智能带来的便利。现在使用人工智能进行聊天、编程、处理数据、绘图、AI电影甚至用于工作也成为了一个潮流。

二. 线性分类与感知机

1.线性回归

定义:利用数理统计中回归分析,来确定两种或两种以上变量间相 互依赖的定量关系的一种统计分析方法

线性回归要素:

训练集(training set)或者训练数据(training data), 是我们流程中的输入数据,一般称为𝑥 

房屋销售价钱:输出数据,一般称为𝑦 

拟合的函数(或者称为假设或者模型):一般写做 𝑦 = ℎ(𝑥);如果是直线,则为𝑦 = 𝑘𝑥 + 𝑏

训练数据的条目数(#training set):一条训练数据是由一对输入数据和输出数据组成的,输入数据的维度𝑛 (特征的个数, #features),其学习过程如下图所示:

如果k是多维的,即拟合函数为:𝑦 = 𝜃1𝑥1 + 𝜃2𝑥2 + 𝜃0,那么可以构造目标代价函数为二次型形式,利用最小二次型求得最优x向量解。

2.线性二分类问题

定义:线性分类器则透过特征的线性组合来做出分类决定,以达到 此种目的。简言之,样本通过直线(或超平面)可分

线性分类器输入:特征向量 输出:哪一类。如果是二分类问题,则为0和1,或者是属于某类的 概率,即0-1之间的数。

线性分类与线性回归差别: 输出意义不同:前者属于某类的概率,后者是回归具体值 ;参数意义不同:前者是最佳分类,后者是直线最佳拟合直线 ;维度不同:前者是二维的分类,后者是一维的回归。

为了使结果在0-1之间,因此需要对结果值做一个如下图所示的Sigmoid函数变换:

为了构造这条二分类的“分界直线”,在构造代价(误差)函数时一般也会加入Sigmoid函数,也就是作softmax回归。常用梯度下降法求解。

3.对数回归与多分类回归

对数回归,也称为逻辑回归,是一种常用于解决二分类问题的统计学习方法,其演化出来的变体也可以处理多分类。它通过建立一个线性模型,并使用对数几率函数(Logistic Function)将线性输出转换为概率值来进行分类。多分类对数回归与二分类的对数回归不同的是,不再使用逻辑函数(Logistic Function),而是使用Softmax函数2(Softmax Function),该函数可以看作是对逻辑函数的一种推广。

根据Bayes公式,二分类问题可使用条件概率描述:p(y=1|x,\theta )=h_{\theta }(x),p(y=0|x,\theta )=1-h_{\theta }(x)

假设各样本相互独立,即服从Bernoulli分布。则的合理估计值应当是 让所有样本事件产生的几率最大,即应当是极大似然的,因此取似然 函数:L(\theta )=\prod_{i=1}^{m}=p(y^{(i)}|x^{(i)},\theta )

然后取对数作为代价函数:l(\theta )=logL(\theta )=\sum_{i}^{}(y^{(i)}log(h_{\theta }(x^{(i)}))+(1-y^{(i)})log(1-h_{\theta }(x^{(i)})))

对于多分类问题,则取代价函数为:J(\theta )=\sum_{i=1}^{m}\sum_{k=1}^{k}1(y^{(i)}=k)log(\frac{exp(\theta ^{(k)T})x^{(i)}}{\sum_{j=1}^{k}exp(\theta ^{(j)T})x^{(i)}})

使用如下图所示的Softmax方法:

对数多分类的结果如下图所示:

4.神经元模型

人工智能神经元模型(M-P)是由生物神经元发展而来,并且发展了许多的作用函数。

其(激发)作用函数有以下几种类型:

(1)非对称型 Sigmoid 函数 (Log Sigmoid) 简称 S 型作用函数,是可微的:f(x)=\frac{1}{1+e^{-x}},or f(x)=\frac{1}{1+e^{-\beta x}},\beta >0

(2)对称型 Sigmoid 函数 (Tangent Sigmoid) 是可微的:f(x)=\frac{1-e^{-x}}{1+e^{-x}},or f(x)=\frac{1-e^{-\beta x}}{1+e^{-\beta x}},\beta >0

(3)对称型阶跃函数,即具有阶跃作用函数的神经元,称为阈值逻辑单元:f(x)=\left\{\begin{matrix} +1, x\geq 0\\ -1, x<0 \end{matrix}\right.

连接权值的调整量与输入与输出的乘积成正比:\Delta w=\alpha \cdot x\cdot y

5.感知机模型

感知机(Perceptron)是1957年,由Rosenblatt提出,是神经网络和支持向量机的基础。 感知机可以自动迭代解决线性分类问题。

感知机从输入到输出的模型如下:f(x)=sign(w^{T}x),其中sign是符号函数。训练过程如下:

输入:训练数据集{𝐱 𝑖 , 𝑦 (𝑖) } (监督学习)

输出: 𝐰

1. 赋初值 𝐰𝟎,数据序号𝑖 = 1,迭代次数𝑘 = 0。

2. 选择数据点(𝐱(𝑖) , 𝑦 (𝑖) )

3. 判断该数据点是否为当前模型的误分类点,即判断若 𝑦 (𝑖 )(𝐰T𝐱 (𝒊)) ≤ 0,则更新权值: 𝐰(𝒌+𝟏) = 𝐰(𝒌) + 𝜂𝑦 (𝑖) 𝐱 (𝒊)

4. 转到2,直到训练集中没有误分类点.

感知机与神经元模型类比,具有完全相同的形式。

三. 多层前馈网络与误差反传算法

1.多层感知机

单层感知机只有输入层和输出层,仅适用于线性可分的模式,对于无法进行线性分类的问题,则提出了新的解决方法:在单层感知机的输出层和输出层之间增加多个隐藏层,便成为多层的感知机。

多层感知器网络,有如下定理:

定理1 若隐层节点(单元)可任意设置,用三层阈值节点的 网络,可以实现任意的二值逻辑函数。 定理2 若隐层节点(单元)可任意设置,用三层S型非线性特 性节点的网络,可以一致逼近紧集上的连续函数或按 范数逼近紧 集上的平方可积函数。

2.多层前馈网络及BP算法

多层感知机是一种多层前馈网络,由多层神经网络构成,每层网络将 输出传递给下一层网络。神经元间的权值连接仅出现在相邻层之间, 不出现在其他位置。如果每一个神经元都连接到上一层的所有神经元 (除输入层外),则成为全连接网络。

多层前馈网络的反向传播 (BP)学习算法,简称BP算法,是有导 师的学习,它是梯度下降法在多层前馈网中的应用。 网络结构:如下图所示,𝐮(或𝐱 )、𝐲是网络的输入、输出向量,神经元 用节点表示,网络由输入层、隐层和输出层节点组成,隐层可一层 ,也可多层,前层至后层节点通过权联接。由于 用BP学习算法,所以常称BP神经网络。

BP学习算法由正向传播和反向传播组成:正向传播是输入信号从输入层经隐层,传 向输出层,若输出层得到了期望的输出, 则学习算法结束;否则,转至反向传播; 反向传播是将误差(样本输出与网络输出之 差)按原联接通路反向计算,由梯度下降 法调整各层节点的权值和阈值,使误差减 小。

BP学习算法的基本思想和计算步骤:

BP算法的优缺点:

优点:学习完全自主;可逼近任意非线性函数。

缺点:算法非全局收敛;收敛速度慢;学习速率α选择;神经网络复杂多变,难以具体设计。

四. 性能优化

由于神经网络与深度学习通常与大量数据相关,一般需要对数据或算法进行优化以提升性能。以下介绍一些常用优化技巧和常用方法(动量法、自适应梯度算法)

1.常用技巧

模型初始化:简单的考虑,把所有权值在[-1,1]区间内按均值或高斯分布 进行初始化。 Xavier初始化:为了使得网络中信息更好的流动,每一层输 出的方差应该尽量相等。(可以使用均匀分布实现)

训练数据与测试数据的𝐾折交叉验证:原始训练数据被分成 K 个不重叠的子集。 然后执行 K 次模型 训练和验证,每次在 K−1 个子集上进行训练, 并在剩余的一 个子集(在该轮中没有用于训练的子集)上进行验证。 最后, 通过对 K 次实验的结果取平均来估计训练和验证误差。

权重衰减 (𝐿2正则化):为防止过拟合和权值震荡,加入新的指标函数项:J(w)+\frac{\lambda }{2}\left \| w \right \|^{2}第二项约束了权值不能过大。在梯度下降时,导数容易计算:\frac{J(w)}{dw}+\lambda w。(欠拟合:误差一直比较大;过拟合:在训练数据集上误差小而在测试数据集上误差大)

Dropout(暂退):在整个训练过程的每一次迭代中,标准暂退法包括在计算下 一层之前将当前层中的一些节点置零。

2.动量法

 

SGD问题:病态曲率

⚫ 如果把原始的 SGD 想象成一个纸团在重力作用向下滚动,由 于质量小受到山壁弹力的干扰大,导致来回震荡;或者在鞍点 处因为质量小速度很快减为 0,导致无法离开这块平地。

⚫ 动量方法相当于把纸团换成了铁球;不容易受到外力的干扰, 轨迹更加稳定;同时因为在鞍点处因为惯性的作用,更有可能 离开平地。

3.自适应梯度算法

Adaptive Gradient:自适应梯度

⚫ 参数自适应变化:具有较大偏导的参数相应有一个较大的学习 率,而具有小偏导的参数则对应一个较小的学习率

⚫ 具体来说,每个参数的学习率会缩放各参数反比于其历史梯度 平方值总和的平方根

RMSProp: Root Mean Square Prop

⚫ RMSProp 解决 AdaGrad 方法中学习率过度衰减的问题

⚫ RMSProp 使用指数衰减平均以丢弃遥远的历史,使其能够快 速收敛;此外,RMSProp 还加入了超参数 𝜌 控制衰减速率。

 Adam算法

⚫ Adam 在 RMSProp 方法的基础上更进一步: ➢ 除了加入历史梯度平方的指数衰减平均(𝑟)外, ➢ 还保留了历史梯度的指数衰减平均(𝑠),相当于动量。

⚫ Adam 行为就像一个带有摩擦力的小球,在误差面上倾向于平 坦的极小值。

 


总结

#本贴仅做课程作业使用,再次感谢老师愿意提供学习材料#

  • 22
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值