深度学习基本概念

228 阅读4分钟

深度学习

神经元:

神经网络中的基本单元,张量+函数组成。张量是n维数组,可以是一维数组,二维数组(矩阵),三维数组,函数一般有加权和(图中w1,w2为权重参数,a1,a2,a3是矩阵的数据)

如:a1w1+a2w2+a3w3...如:a1w1+a2w2+a3w3...

函数一般有loss函数,激活函数,优化函数。

深度学习是对矩阵为运算对象,对矩阵进行加,减,乘,除等各种运算。

多个神经元组成神经网络:

这是3层全连接神经网络,有输入层,中间2层为隐藏层,输出层。

  • 前向计算: 程序运行时,给w赋初值,从输入矩阵,经m次函数运算,得到输出, 这一过程称为前向计算。
  • 反向传播: 输出结果同时得到loss, 梯度,计算w值更新幅度,更新w值。 前向计算 + 反向传播,经过n次循环,直到梯度为0, 这时的结果为最优结果。
  • 优化函数:影响参数的调整方向以及量级,影响梯度的收敛速率。如:## Adagrad,RMSprop,Adam
  • 激活函数:把输出归一化到(0,1)或者(-1,1)如: softmax函数,sigmod函数,TanH函数,LeRU函数。
  • 损失函数:神经网络学习中,用某个指标来表示当前数据的状态,这个指标称为损失函数,如均方误差,交叉熵误差。

均方误差: loss = sum(Math.pow((y-y1),2))

梯度 = dloss / dy

  • 梯度下降:梯度是某一个点斜率,修改w1,w2,w3这些参数值,直至斜率为0. 举个常见的例子:你站在山上某处,想要尽快下山,于是决定走一步算一步,也就是每走到一个位置时,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走.

以下是神经网络的通用流程:

屏幕快照 2022-04-29 上午6.50.51.png

  1. 准备数据
  2. 选择网络模型(DNN,CNN,RNN)
  3. 选择loss函数,激活函数,更新w权重参数。
  4. 循环 2。3。 直到梯度下降为0.
  5. 输出结果 w1,w2,w3这些参数值。

在程序设计中,通常运行100~200 次来更新 权重w 参数。

DNN:深度神经网络

又称全连接神经网络,如上面介绍的,是基本的神经网络。

CNN:卷积神经网络

在DNN中,由于上一层的所有值都参与了下一层的计算,w参数很多。CNN减少了参与下一层值, 缩减了w参数规模。 引入卷积的概念,形成卷积神经网络

  • 卷积核:width * height ,step, padding
  • 池化:扩大观察野。 step == 卷积核大小,有max pooling,average pooling. average pooling能更好的保留信息的背景,如高斯模糊, max pooling能更好的提取图片的纹理信息。

卷积神经网络发展历史: 最早出现LeNet ,后面AlexNet应来爆发期,后面分出两个研究方向,一个是加深网络层数,VGG,另一个增加卷积功能,如GoogleNet,Inception v3 ResNet结合了两个研究方向。

  • LeNet:有卷积层,池化层,全连接层,
  • ResNet: 残差网络,ResNet 解决数据跨越式流动,保留了原始的特征信息. 主要贡献: 网络层数超过百层,引入残差结构解决退化问题
  • 残差网络与普通网络对比图

RNN:循环神经网络

语言的顺序会影响语义的表达, RNN添加了对序列信息处理。 DNN, CNN不关心信息的顺序问题.

我爱你

你爱我 表达的意思不同.

  • RNN 基本处理单元:

如图中 xt是t时刻输入,st为t时刻隐藏层输出,st-1为t-1时刻隐藏层输出,ot为t时刻输出。,st取值取决于xt和st-1

这多了一个W 循环,所以叫循环神经网络。 常用算法有:

  • LSTM:长短期记忆网络。 添加了对长期记忆的处理,通过遗忘门(ft),输入门(it),输出门(ot)来控制长期记忆的影响。 门是开关的意思. 计算中用0,1 表示。图中 X 号表示开关。

C 表示长期记忆,h表示短期记忆,x是当前时刻输入. ft 控制是否把 前一时刻 C 加入当前计算。 it 控制是否把当前时刻输入加入 长期记忆。 ot 控制是否把长期记忆 加入 h 的计算。

  • GRU:门控循环单元, LSTM的变种,将LSTM 中的三个门减化成2个门。它包括更新门(rt), 重置⻔(zt)。减少了结果中w参数个数。

Transformer

使用encoder-decoder 结构。它没有使用CNN,RNN。而是使用Attention。

  • Multi-head Self Attention 在对句子取信息时,它取位置embedding, 语法 embedding, 语义embedding, 计算a1,1时, 用q1 乘以 k1 再softmax , 再乘以V1

a1,2, a1,3 以上循环计算。

b1 是 x1 的输出,等于a1,i 求和。

Self Attention 自注意力机制, 是可微分的,可以算出loss, 梯度,可以通过调整参数来调整结果的。

屏幕快照 2022-05-16 上午7.56.54.png

屏幕快照 2022-05-15 下午9.05.46.png