学习笔记——神经网络篇

134 阅读4分钟

神经网络——计算机视觉

(一)基础知识

1、前向传播

线性得分函数
f(x,W)=Wx+bf( x , W) = Wx + b

f :每个类别的得分(类别 * 1)
W:权重参数 (类别 * 像素点)
x:图片(像素点 * 1)
b:偏置参数(类别 * 1)

损失函数
1、损失函数 = 数据损失 + 正则化惩罚
Li=jyimax(0,f(x,W)jf(x,W)yi+1)L_i=\sum_{j≠{y_i}}max(0,f( x , W)_j-f( x , W)_{y_i}+1)

LiL_i:数据损失值
f(x,W)yif( x , W)_{y_i}:正确类别的得分
f(x,W)j+1f( x , W)_j+1:其他类别的得分+误差

R(W)=λkWk2R(W)=λ\sum_kW_k^2

R(W)R(W):正则惩罚项
λ:不希望过拟合λ取大

2、Softmax分类器:将得分转化为概率
归一化:P(Y=kX=xi)=eskjesjP(Y=k|X=x_i)=\frac {e^{s_k}} {\sum_je^{s_j}}

sks_k:k类别的得分函数

计算损失值:Li=logP(Y=yiX=xi)L_i=-logP(Y=y_i|X=x_i)

2、反向传播

f(x,W)=((xW1(x))W2(x))W3(x)f(x,W)=((x*W_1(x))*W_2(x))*W_3(x)

W3W_3W1W_1逐层求偏导计算梯度判断对f的影响

(二)整体结构

整体结构.jpg

input layer:输入特征矩阵
hidden layer1:特征矩阵 * 权重矩阵1
hidden layer2:hidden layer1 * 权重矩阵2
output layer:输出hidden layer2 * 权重矩阵3
非线性:每一步矩阵计算后进行非线性变换(激活函数)

激活函数:

  • Sigmoid:f(x)=11+exf(x)=\frac{1}{1+e^{-x}} 遇到梯度为0时,会出现梯度消失。
  • Relu:f(x)=max(0,x)f(x)=max(0,x) 梯度好算,不会出现梯度消失。
  • 作用:逼近复杂函数;将神经元的输出压缩进特定边界。

数据预处理:

  1. 中心化:X -= np.mean(X, axis = 0)
  2. 放缩或扩充:X /= np.std(X, axis = 0)

参数初始化:
权重矩阵:W = 0.01* np.random.ramdn(D,H)

防止过拟合的方法:
DROP-OUT:在训练过程中,每层只有固定比例的神经元参与训练,依次替换。

(三)卷积神经网络原理与参数解读

cnn整体架构.jpg

卷积的作用:分出不同的小区域,选择一种方法去多通道计算对应小区域应该的特征值
输入层:输入各个通道的像素点信息,深度为通道数
卷积层:将各个通道的小区域卷积计算(与卷积核内积)后相加,再加偏秩项
池化层:通过某种筛选方法,将特征图的各个区域压缩
全连接层:将特征向量转化成各类别的概率值

1、卷积层

  • 卷积核:将卷积参数共享,大幅度降低权重参数((卷积核大小 + 1) * 个数)。
  • 参数:活动窗口步长小,特征丰富;卷积核尺寸小,所需参数小,卷积过程多,
    特征提取更细致,加入的非线性变换多,还不会增大权重参数。
  • 边界填充:填充后,让原来的边界值也可以充分的利用。
  • 特征图:卷积层得出的结果,深度为卷积核F的个数,P表示边界填充了几圈。
    长度H2=H1FH+2PS+1H_2=\frac{H_1-F_H+2P}{S}+1
    宽度W2=W1FW+2PS+1W_2=\frac{W_1-F_W+2P}{S}+1

2、池化层

  • 最大池化:取各个区域内的最大值,得到压缩结果
  • 平均池化:取各个区域内的平均值,得到压缩结果

3、经典网络

经典网络VGG.jpg

优点:使用小的卷积核来完成特征提取操作
不足:在卷积层数超过某一临界点时,不好的特征会降低正确率

Resnet网络:将不好的卷积层结果去除,使用保留结果再继续训练,至少结果不会变差

Resnet网络.jpg

(四)递归神经网络与词向量原理解读

1、递归神经网络模型

RNN网络:
RNN整体结构.jpg

特点:构建时间序列,将每个时刻的训练特征加入到下一个训练中
不足:不相关时刻的信息,会给往后的训练带来干扰

LSTM网络:加入控制参数C,判断保留和需要被遗忘的信息
LSTM网络.png

2、词向量模型

将词语转化成向量的形式,含义相近的词,向量也相近。

词向量模型.jpg

1、输入:在文章中设滑动窗口,构建数据集
2、训练方式:输入的词向量与词汇表中向量匹配训练,最终训练出能够匹配的词向量
3、训练步骤:前向传播计算损失,反向传播更新权重值和输入数据
4、不足:计算量太大

常见模型:
CBOW:输入上下文,预测中间词。
Skipgram:输入中间词,预测上下文。

改进方法:
负采样模型:配对的输入输出概率设为1,再添加5个不配对的输出概率设为0,通过训练将模型概率接近1。

负采样模型.jpg

训练步骤:

  1. 初始化词向量矩阵;
  2. 通过神经网络反向传播来计算更新,更新权重参数矩阵W,和输入数据;
  3. 最终得到每一个词的向量表达。