1、MLP、FCN、DNN三者的关系?
多层感知器MLP,全连接网络,DNN三者的关系?三者是不是同一个概念?
- FCN:Fully Connected Neural Network,全连接神经网络,也称为密集连接神经网络,其每个节点都与上一层的所有节点相连,也就是说每个神经元都和上一层所有的神经元都有连接,是最简单的神经网络结构,它不一定要求有隐藏层。
- MLP:Multi-Layer Perceptron,多层感知器,也称多层感知机,是一种特殊的全连接神经网络,它由输入层、若干个隐藏层和输出层组成。每个神经元都与上一层的所有神经元相连。
- DNN:Deep Neural Network,深度神经网络,是指具有多层神经元的神经网络。
因此MLP属于DNN;FCN有时候属于DNN,有时候不属于DNN。但DNN也包括许多其他的深度网络,比如深度卷积网络等。
因此,MLP和FCN之间的主要区别在于隐藏层的存在。MLP通过添加多个隐藏层可以提高网络的表示能力,从而能够更好地解决复杂的分类和回归问题,而FCN有时候可能只有输入层和输出层。
2、 什么是前馈神经网络
前馈神经网络(feedforward neural network)又称多层感知机(multilayer perceptron,MLP),是典型的深度学习模型。它是一种单向多层结构,其中每一层包含若干个神经元。在此种神经网络中,各神经元可以接收前一层神经元的信号,并产生输出到下一层。第0层叫输入层,最后一层叫输出层,其他中间层叫做隐含层(或隐藏层、隐层),隐含层可以是一层,也可以是多层。整个网络中无反馈,信号从输入层向输出层单向传播,可用一个有向无环图表示。
前馈神经网络使用数学公式可以表示为:
其中,f(1)被称为网络的 第一层(first layer),f(2)被称为 第二层(second layer),以此类推。链的全长称为模型的深度(depth)。
3、深度学习有什么优缺点
1)优点
- 性能更优异
- 不需要特征工程
- 在大数据样本下有更好的性能
- 能解决某些传统机器学习无法解决的问题
2)缺点
- 小数据样本下性能不如机器学习
- 模型复杂
- 过程不可解释
4、什么是激活函数,为什么要使用激活函数
激活函数(activation function),指神经网络中将输入信号的总和转换为输出信号的函数,激活函数将多层感知机输出转换为非线性,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。
神经网络中,如果不加入激活函数,那么每一层的输入输出都是函数均是线性的,网络的逼近能力有限,于是就引入非线性函数作为激活函数,使网络的表达能力更强。
激活函数是向神经网络中引入非线性因素,通过激活函数神经网络就可以拟合各种曲线
5、神经网络中常用的激活函数有哪些,各自有什么特点
1)sigmoid
① 定义:sigmoid函数也叫Logistic函数,用于隐层神经元输出,能将$(-\infty,+\infty)$的数值映射到(0,1)的区间,可以用来做二分类。表达式为:
② 特点
优点:平滑、易于求导
缺点:激活函数计算量大,反向传播求误差梯度时,求导涉及除法;反向传播时,很容易就会出现梯度消失
2)tanh
① 定义:双曲正切函数,表达式为:
② 特点
优点:平滑、易于求导;输出均值为0,收敛速度要比sigmoid快,从而可以减少迭代次数
缺点:很容易就会出现梯度消失
3)relu
① 定义:修正线性单元,其表达式为:
② 特点:
优点:计算过程简单;避免了梯度爆炸和梯度消失问题
缺点:小于等于0时无输出
6. 什么是softmax函数,其主要作用是什么
1)定义:Softmax函数可以将多分类的输出数值转化为相对概率,而这些值的累和为1。表达式为:
其中$V_i$ 是分类器前级输出单元的输出。i 表示类别索引,总的类别个数为 C。$S_i$表示的是当前元素的指数与所有元素指数和的比值。
2)作用:softmax一般用于分类输出层,计算属于每个类别的概率。
也经常用于计算Attention
7、什么是损失函数,损失函数的作用是什么
损失函数(Loss Function),也有称之为代价函数(Cost Function),用来度量预测值和实际值之间的差异,从而作为模型性能参考依据。损失函数值越小,说明预测输出和实际结果(也称期望输出)之间的差值就越小,也就说明我们构建的模型越好,反之说明模型越差。
8. 什么是交叉熵,其作用是什么
交叉熵(Cross Entropy)主要用于度量两个概率分布间的差异性信息,在机器学习中用来作为分类问题的损失函数。当预测概率越接近真实概率,该函数值越小,反之越大。
9. 解释什么是梯度
梯度是损失函数关于模型参数的偏导数向量,它告诉我们如何调整模型参数以减小损失函数的值,从而优化模型。
梯度是一个向量,这个向量是一个函数f(loss,w)对w求偏导的值组成的向量就是梯度。这个函数描述是模型参数和损失值之间的函数。
梯度(gradient)是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数该点处沿着该方向(此梯度的方向)变化最快,变化率最大。
10. 什么是梯度下降
梯度下降就是,调整模型参数以减少损失的过程。
梯度下降是一个最优化算法,常用于机器学习和人工智能当中用来递归性地逼近最小偏差模型,核心思想是按照梯度相反的方向,不停地调整函数权值。其步骤为:
1)求损失函数值
2)损失是否足够小?如果不是,计算损失函数的梯度
3)按梯度的反方向走一小步(调整权重,$w_i = w_i + \delta w_i$)
4)循环到第2步,迭代执行
11. 激活函数出现梯度消失会有什么后果
梯度消失(Gradient Vanishing)是指在神经网络的训练过程中,反向传播算法计算梯度时,网络的较深层(深度)权重更新的梯度趋近于零,导致这些层的参数很少或根本没有更新,从而使得网络难以学习或收敛到一个合适的模型。
机器学习中,如果模型的优化依赖于梯度下降,梯度消失会导致模型无法进一步进行优化。
12. 如何解决梯度消失问题
1)更换激活函数:如更换为relu, leakrelu
2)批量规范化处理:通过规范化操作将输出信号x规范化到均值为0,方差为1保证网络的稳定性
3)使用残差结构:通过引入残差结构,能有效避免梯度消失问题
13. 什么是梯度爆炸,如何解决梯度爆炸问题
1)梯度爆炸。梯度消失是在计算中出现了梯度过小的值,梯度爆炸则相反,梯度计算出现了过大的值。梯度过大,可能使参数更新幅度过大,超出了合理范围。
2)解决梯度爆炸的方法
梯度裁剪:把沿梯度下降方向的步长限制在一个范围之内,计算出来的梯度的步长的范数大于这个阈值的话,就以这个范数为基准做归一化,使这个新的的梯度的范数等于这个阈值权重正则化:通过正则化,可以部分限制梯度爆炸的发生
14. 什么是批量梯度下降、随机梯度下降,分别有何特点
1)批量梯度下降
① 定义:批量梯度下降(Batch Gradient Descent,BGD)是指在每一次迭代时使用所有样本来进行梯度的更新
② 特点
优点:收敛比较稳定
缺点:当样本数目很大时,每迭代一步都需要对所有样本计算,训练过程会很慢
2)随机梯度下降
① 定义:随机梯度下降法(Stochastic Gradient Descent,SGD)每次迭代使用一个样本来对参数进行更新,使得训练速度加快
② 特点
优点:计算量小,每一轮训练更新速度快
缺点:收敛不稳定
15. 什么是学习率,作用是什么
在梯度下降法中,都是给定的统一的学习率,整个优化过程中都以确定的步长进行更新, 在迭代优化的前期中,学习率较大,则前进的步长就会较长,这时便能以较快的速度进行梯度下降,而在迭代优化的后期,逐步减小学习率的值,减小步长,这样将有助于算法的收敛,更容易接近最优解。
16. 学习率过大或过小会导致什么问题
学习率过大可能导致模型无法收敛,过小导致收敛速度过慢
17、什么是反向传播算法,为什么要使用反向传播算法
1)定义
反向传播(Backpropagation algorithm)全称“误差反向传播”,是在深度神经网络中,根据输出层输出值,来反向调整隐藏层权重的一种方法
2)对于多个隐藏层的神经网络,输出层可以直接求出误差来更新参数,但隐藏层的误差是不存在的,因此不能对它直接应用梯度下降,而是先将误差反向传播至隐藏层,然后再应用梯度下降