深度学习基础
浅层网络 VS 深层网络
浅层神经网络参数过多,导致模型的复杂度和计算量很高,难以训练。而深层网络利用多层的线性变换和共享权重的方式,使其可以用更少的参数来表示更复杂的函数,大大减少参数的数量和计算量。
同时,深层网络可以通过层次化的方式,从低层到高层,逐渐提取数据中的抽象和语义信息,从而增强了模型的泛化能力和解释能力。例如,CNN 通过使用多层的卷积核,来形成一个特征的层次结构,从边缘、角点、纹理等低层特征,到物体、场景、语义等高层特征;RNN 通过使用循环结构,来形成一个内部的记忆机制,从而捕捉数据中的长期依赖关系和动态变化规律。
深度学习常用的激活函数
Sigmoid 函数
具体形式: f ( x ) = 1 1 + e − x f(x) = \frac{1}{1+e^{-x}} f(x)=1+e−x1
- 输出范围
(0, 1)
,可以用于表示概率或二分问题 - 缺点:容易出现梯度消失等问题,影响模型的收敛速度和效果
ReLU 函数
具体形式: R e L U ( x ) = m a x ( 0 , x ) ReLU(x) = max(0, x) ReLU(x)=max(0,x)
- 输出范围
[0, +∞)
,可以用于解决梯度消失的问题,提高模型的训练速度 - 缺点:部分神经元的输出可能永远为零,导致模型的表达能力下降
Softplus 函数
具体形式: S o f t p l u s ( x ) = l o g ( 1 + e x ) Softplus(x) = log(1 + e^x) Softplus(x)=log(1+ex)
- 输出范围
(0, +∞)
,是 ReLU 函数的平滑版本,避免神经元输出恒为零的问题 - 缺点:涉及指数和对数运算,计算量比 ReLU 大。且存在输出不以零为中心的问题。
tanh函数
具体形式: t a n h ( x ) = e x − e − x e x + e − x tanh(x) = \frac{e^x-e^{-x}}{e^x+e^{-x}} tanh(x)=ex+e−xex−e−x
- 输出范围
(-1, 1)
,可以用于解决输出不以零为中心的问题。 - 缺点:仍然存在梯度消失的问题,尤其是当输入的绝对值较大时,梯度会接近于零。
归纳偏置
归纳偏置可以理解为,从现实生活中观察到的现象中,归纳出一定的规则 ,然后对模型做一定的约束 ,从而起到模型选择的作用。
CNN
适用数据
CNN 擅长捕捉图像或文本中的显著特征 ,适合处理具有空间结构 和局部相关性的数据。
归纳偏置
CNN 的归纳偏置:认为信息具有空间局部性,可用滑动卷积共享权重的方式降低参数空间
- 局部性 :数据中的某些特征或模式,只与它们周围的一部分数据相关,而与远处的数据无关。例如 CNN 通过使用小尺寸的卷积核来实现局部性,即只用卷积核覆盖输入的一小部分,从而提取出局部的特征。【就好比你拿一个放大镜,不断扫描一张图片,提出图片的局部特征】
- 空间不变性 :数据中的某些特征或模式,无论出现在哪个位置,都是相同或相似的。例如图像中的猫脸,不论是出现再图像的左上角还是右下角,都是一个猫的练。CNN 通过使用共享权重的卷积核,来实现空间不变性,即用同样的卷积核来扫描整个输入,从而提取出相同或相似的特征。
- 平移等效性 :这个假设是指数据中的某些特征或模式,经过平移变换后,仍然保持不变。比如,图像中的一个猫的脸,无论它向左或向右平移一定的距离,仍然是一个猫的脸。CNN 通过使用池化层,来实现平移等效性,即用池化层来降低输入的分辨率,从而减少平移变换对特征的影响。
RNN
适用数据
RNN 能够把握历史信息 ,适合处理具有时序结构 和上下文依赖性的数据。
归纳偏置
RNN 的归纳偏置:将时序信息纳入考虑,强调顺序重要性
- 时序性 :指数据中的某些特征或模式,是随着时间的推移而发生变化的,而且变化的方式是有一定的规律的。比如,语音中的一个单词,是由多个音素按照一定的顺序组成的,而且每个音素的发音受到前后音素的影响。RNN通过使用循环结构,来实现时序性,即将上一时刻的输出或隐藏状态作为下一时刻的输入,从而形成一个内部的记忆机制,使得它能够捕捉数据中的长期依赖关系和动态变化规律。
- 时间不变性 :指数据中的某些特征或模式,无论它们出现在哪个时间点,都是相同或相似的。比如,文本中的一个句子,无论它出现在文本的开头还是结尾,都是一个句子。RNN通过使用共享权重,来实现时间不变性,即用同样的参数来处理每一个时刻的输入,从而提取出相同或相似的特征。