type
status
date
slug
summary
tags
category
icon
password

notion image

神经网络基础结构

  • 神经元模型、感知器(Perceptron)
notion image
其实便为一次线性变换
  • 神经网络模型
notion image
  • 在每一层隐藏层后有一个激活函数
 

激活函数

💡
使线性特征空间扭曲,解决非线性问题

多种激活函数

  • Sigmoid 函数
    • notion image
  • Tanh 函数
    notion image
    • ReLU(Rectified Linear Unit)函数
    notion image
    • ReLU 函数的各种变体
      • SELU
      • ELU
      • PReLU
      • LeaKy ReLU
    • Softmax 函数
    • 二分类时与 sigmoid 函数一样
    • softmax 单标签多分类
    • sigmoid 多标签分类,多个正确答案

    如何选择激活函数

    • 不要把各种激活函数串联在一个网络使用
    • 如果使用 ReLU,小心设置学习率
    • 尽量不使用 sigmoid,可以试试 tanh

    梯度消失与梯度爆炸

    • 多层单神经元网络
    notion image

    梯度消失

    其中 则可能因为激活函数,如 Sigmoid 的导数取值范围0.2~0.4而直接进行四次方相乘而接近于 0,即梯度消失,导致网络退化

    梯度爆炸

    其中 就可能因为初始化权重数值比较大,则可能导致指数级增大,即梯度爆炸,导致网络不稳定

    产生原因

    • 神经网络串联式结构
    • 反向传播算法
    • 激活函数
    • 权重初始化值

    解决方案

    • 更换激活函数,如 ReLU
    • 梯度剪切,如直接限制梯度范围
    • 权重正则化,抑制参数更新强度
    • 改进网络结构,如跳层结构

    梯度下降优化

    反向传播原理

    💡
    将损失函数求偏导,一层一层往回求权重的偏导数
    notion image
    • 最小化损失函数
    • 偏导数链式法则求各个参数的偏导

    梯度下降法

    notion image

    如何选择

    • 数据量不大批量梯度下降法
    • 数据量大小批量梯度下降法
    • 标配 Adam ,但具体看效果
    • 其他最优化方法:牛顿法拟牛顿法等等

    神经网络简单代码实现

    💡
    简单二层
    notion image

    正向传播

    反向传播

    代码实现

    • 数据集
    • sklearn 中创建神经网络
    notion image
    • 取出权重
    • 反向传播更新
    notion image

    代码文件

    模型选择

    💡
    不同机器学习模型,不同超参数的同类型模型

    模型选择的原则

    • 模型效果
    • 运算速度
    • 算力要求,尽量选择算力要求低的
    • 可解释性,尽量选择能解释的
    各模型对比

    神经网络的模型选择

    可通过修改:
    • 网络层数,hidden_layer_sizes=(100,50,100) ,更深层的网络可以学习更复杂特征,但也使得浅层学习能力下降了反而准确率可能下降,足够的宽度可以学到足够的特征
    • 激活函数,activation='relu'
    • 替换优化器,solver='sgd'

    代码文件

    参数调整训练平台

    优缺点和适用条件

    优势

    • 范围广,能有效解决各类问题,能有效接收各类特征数据
    • 效果好,泛化能力好,容错能力高
    • 性能好,并行计算,能利用 GPU 和 TPU 计算

    缺点

    • 训练难度大,参数多,层数深,容易出现梯度爆炸消失,难收敛,对数据量要求大
    • 训练时间长
    • 黑盒不可解释

    适用条件

    • 数据规模庞大
    • 人工提取特征困难
    • 无需解释,只要结果
    支持向量机 SVMK-近邻聚类
    Loading...