AI | 第5章 深度学习 TensorFlow2 神经网络与卷积神经网络

AI | 第5章 深度学习 TensorFlow2 神经网络与卷积神经网络

  • 前言
  • 1. 神经网络原理
    • 1.1 概述
    • 1.2 输出层:全连接层
      • 1.2.1 sigmoid 回归
      • 1.2.2 softmax 回归
  • 2. 卷积神经网络
    • 2.1 概述
    • 2.2 卷积神经网络的结构特点
      • 2.2.1 卷积层(Convolutional Layer)
      • 2.2.2 激活函数
        • 1. sigmoid
        • 2. softmax
        • 3. Relu
        • 4. Tanh
        • 5. 线性激活函数
      • 2.2.3 池化层(Polling)
      • 2.2.4 全连接层
    • 2.3 网络的优化和改进思路
  • 最后


前言

仅供参考


1. 神经网络原理

1.1 概述

  • 定义:人工神经网络(Artificial Neural Network,简写为ANN)也简称为神经网络(NN)。是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)结构和功能的计算模型。经典的神经网络结构包含三个层次的神经网络;
  • 三个层次
    • 输入层;
    • 隐藏层:隐藏层的层数根据需要而定,没有明确的理论推导来说明到底多少层合适。如对于卷积神经网络,有:卷积层、激活函数、池化层;
    • 输出层:一般为全连接层;

AI | 第5章 深度学习 TensorFlow2 神经网络与卷积神经网络_第1张图片

  • 其中每层的圆圈代表一个神经元,隐藏层和输出层的神经元有输入的数据计算后输出,输入层的神经元只是输入;
  • 特点
    • 每个连接都有个权值;
    • 同一层神经元之间没有连接;
    • 最后的输出结构对应的层也称之为全连接层
  • 神经网络可以理解成一种特征提取方法;

1.2 输出层:全连接层

1.2.1 sigmoid 回归

  • sigmoid 回归用于解决二分类结构;
  • 当于逻辑回归,其将结果映射到 0-1;
  • 详情见《4. 分类算法 - 逻辑回归与二分类》;

1.2.2 softmax 回归

  • softmax 回归用于解决多分类结构;

  • 神经网络解决多分类问题最常用的方法是设置 n 个输出节点,其中 n 为类别的个数;

  • 任意事件发生的概率都在0和1之间,且总有某一个事件发生(概率的和为1)。如果将分类问题中 “一个样例属于某一个类别” 看成一个概率事件,那么训练数据的正确答案就符合一个概率分布;

  • 可以理解成 logits 加上 softmax 映射;
    AI | 第5章 深度学习 TensorFlow2 神经网络与卷积神经网络_第2张图片
    AI | 第5章 深度学习 TensorFlow2 神经网络与卷积神经网络_第3张图片

  • 公式:

s o f t m a x ( y ) i = e y i ∑ i = 1 n e y i softmax(y)_i=\frac{e^{y_i}}{\sum_{i = 1}^ne^{y_i}} softmax(y)i=i=1neyieyi


2. 卷积神经网络

2.1 概述

  • 定义:卷积神经网络(Convolutional Neural Networks, CNN),在原来多层神经网络的基础上,加入了更加有效的特征学习部分,具体操作就是在原来的全连接层前面加入了卷积层、激活层和池化层。卷积神经网络出现,使得神经网络层数得以加深,“深度”学习由此而来;
  • 通常所说的深度学习,一般指的是这些 CNN 等新的结构以及一些新的方法(比如新的激活函数Relu等),解决了传统多层神经网络的一些难以解决的问题;
  • 结构
    • 输入层;
    • 隐藏层:卷积层、激活层、池化层;
    • 输出层:全连接层;
  • 卷积层涉及参数
    • 滑动窗口步长;
    • 卷积核尺寸:一般最小 3*3;
    • 边缘填充;
    • 卷积核个数;
  • 卷积神经网络发展历史
    AI | 第5章 深度学习 TensorFlow2 神经网络与卷积神经网络_第4张图片

2.2 卷积神经网络的结构特点

  • 神经网络(neural networks)的基本组成包括输入层、隐藏层、输出层。而卷积神经网络的特点在于隐藏层分为卷积层激活层池化层(pooling layer,又叫下采样层subsample);
  • 隐藏层
    • 卷积层 CONV:通过在原始图像上平移来提取特征;
    • 激活层 RELU:增加非线性分割能力;
    • 池化层 POOL(下采样层):减少学习的参数,降低网络的复杂度(最大池化和平均池化);
  • 输出层:进行损失计算并输出分类结果;
    • 全连接层 FC:实现分类效果;

AI | 第5章 深度学习 TensorFlow2 神经网络与卷积神经网络_第5张图片

  • 图中共有 7 层,6 层卷积层 + 1 层全连接层;

2.2.1 卷积层(Convolutional Layer)

  • 概述
    • 卷积神经网络中每层卷积层由若干卷积单元(卷积核)组成,每个卷积单元的参数都是通过反向传播算法最佳化得到的;
    • 卷积运算的目的是特征提取,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征;
  • 卷积核:又叫 filter、过滤器、模型参数、卷积单元;
  • 卷积核(Filter)的四大要素
    • 卷积核个数:不同的卷积核带的权重和偏置都不一样,即随机初始化的参数;
    • 卷积核尺寸:一般最小 3*3;
    • 卷积核步长:步长越大,得到特征值越少;
    • 边缘填充:零填充就是在图片像素外围填充一圈值为0的像素;
  • 计算
    • 输入图片体积大小: H 1 ∗ W 1 ∗ D 1 H_1* W_1 * D_1 H1W1D1
    • 四个超参数:
      • Filter 数量 K;
      • Filter 大小 F * F;
      • 步长 S;
      • 零填充大小 P;
    • 输出的特征体积大小(特征值数量): H 2 ∗ W 2 ∗ D 2 H_2 * W_2* D_2 H2W2D2
      • H 2 = H 1 − F + 2 P S + 1 H_2 = \frac{H_1-F+2P}{S}+1 H2=SH1F+2P+1
      • W 2 = W 1 − F + 2 P S + 1 W_2 = \frac{W_1-F+2P}{S}+1 W2=SW1F+2P+1
      • D 2 = K D_2=K D2=K

2.2.2 激活函数

1. sigmoid

  • 公式: S i g m o i d ( x ) = 1 1 + e − 1 Sigmoid(x)=\frac{1}{1+e^{-1}} Sigmoid(x)=1+e11
    AI | 第5章 深度学习 TensorFlow2 神经网络与卷积神经网络_第6张图片
  • 优点
    • 平滑、易于求导;
  • 缺点
    • 反向传播求导涉及除法,因此计算量大;
    • 反向传播时,很容易就会出现梯度消失的情况,从而限制了深层网络的训练;
  • 应用场景:用于二分类全连接层

2. softmax

  • sigmoid 函数的推广,用于处理多分类问题;
  • 公式: s o f t m a x ( y ) i = e y i ∑ i = 1 n e y i softmax(y)_i=\frac{e^{y_i}}{\sum_{i = 1}^ne^{y_i}} softmax(y)i=i=1neyieyi
  • 应用场景:用于多分类全连接层

3. Relu

  • 公式: R e L U = m a x ( 0 , x ) ReLU=max(0,x) ReLU=max(0,x)
    AI | 第5章 深度学习 TensorFlow2 神经网络与卷积神经网络_第7张图片
  • 优点
    • 有效解决梯度消失问题;
    • 计算成本很低;
    • 收敛速度比 sigmoid 和 tanh 函数快得多;
    • SGD(批梯度下降)的求解速度速度远快于 sigmoid 和 tanh;
  • 缺点
    • 当梯度值过大时,其权重更新后为负数,在 ReLU 函数中导数恒为零,导致后面的梯度也不再更新,也被称为 dying ReLU 问题;
  • 应用场景:一般用于隐藏层(卷积层)

4. Tanh

  • 双曲正切函数;
  • 公式: t a n h ( x ) = e x − e − x e x + e − x = 2 s i g m o i d ( 2 x ) − 1 tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}=2sigmoid(2x)-1 tanh(x)=ex+exexex=2sigmoid(2x)1
    AI | 第5章 深度学习 TensorFlow2 神经网络与卷积神经网络_第8张图片
  • 优点
    • tanh 函数是 sigmoid 函数的改进,收敛速度快,不易出现 loss 值晃动;
  • 缺点
    • 无法解决梯度弥散的问题,函数的计算量同样是指数级的,计算相对复杂;

5. 线性激活函数

  • 公式: l i n e a r ( x ) = x linear(x)=x linear(x)=x
    AI | 第5章 深度学习 TensorFlow2 神经网络与卷积神经网络_第9张图片

  • 该函数仅用于解决回归问题的神经网络模型的输出层,注意不能在隐藏层中使用线性激活函数;

2.2.3 池化层(Polling)

  • Pooling 层主要的作用是特征提取,通过去掉 Feature Map 中不重要的样本,进一步减少参数数量。即通过池化层尽可能保留图像的主要特征,不会影响图像模型的最终效果,减少模型的复杂度,避免过拟合现象;
  • 通常池化层采用 2x2 大小、步长为 2 窗口,零填充为默认 P=0;

2.2.4 全连接层

  • 全连接层计算:即构造权重和偏置;

2.3 网络的优化和改进思路

  • 调整学习率、随机初始化的权重和偏置;
  • 调整优化器,优化损失函数;
  • 使用不同的激活函数;
  • 重新设计网络;
  • 使用梯度截断(在训练过程中检查和限制梯度的大小);
  • 对于深度网络模型,添加 batch normalization 层或者 droupout 层:
    • batch normalization 层 (批量标准化,让这层的网络输出的权重、偏置或者参数分布归一化,即分布在同样的规律内);
    • droupout 层 (使当前的神经元失效,减低模型的复杂度)


最后

新人制作,如有错误,欢迎指出,感激不尽!
如需转载,请标注出处!

你可能感兴趣的:(学习笔记,#,云计算,AI,与大数据,深度学习,神经网络,人工智能,tensorflow,python)