大模型学习日记之人工神经网络基础

(人工)神经网络基础


1. (人工)神经网络的基本组成元素

  • (人工)神经元

在这里插入图片描述

  • 单层神经网络
    在这里插入图片描述

  • 多层神经网络

    • 输入层
    • 隐层
    • 输出层
      • 线性输出:常用于回归
      • Sigmoid输出:常用于解决二分类问题
      • Softmax输出:常用于解决多分类问题
        在这里插入图片描述
  • 非线性激活函数

    • 作用:防止多层神经网络坍缩成单层神经网络,以增加神经网络的表达能力。

    • 常见的非线性激活函数

      • Sigmoid

        f ( z ) = 1 1 + e − z f(z)=\frac1{1+e^{-z}} f(z)=1+ez1

      在这里插入图片描述

      • Tanh

        f ( z ) = tanh ⁡ ( z ) = e z − e − z e z + e − z f(z)=\tanh(z)=\frac{e^z-e^{-z}}{e^z+e^{-z}} f(z)=tanh(z)=ez+ezezez

      在这里插入图片描述

      • ReLU

        f ( z ) = max ⁡ ( z , 0 ) f(z)=\max(z,0) f(z)=max(z,0)

      在这里插入图片描述

  • 前向计算:得到结果和中间值

2. 如何训练神经网络

  • 训练目标:最小化损失函数

  • 训练方法:梯度下降法

    • θ n е w = θ o l d − α ∇ θ Ј ( θ ) \theta^{nеw}=\theta^{old}-\alpha\nabla_{\theta}\text{Ј}(\theta) θnеw=θoldαθЈ(θ),α称为步长或学习率

    • 梯度:n输入1输出

      ∂ F ∂ x = [ ∂ F ∂ x 1 , ∂ F ∂ x 2 . . . ∂ F ∂ x n ] \frac{\partial\mathcal{F}}{\partial x}=[\frac{\partial\mathcal{F}}{\partial x_1},\frac{\partial\mathcal{F}}{\partial x_2}...\frac{\partial\mathcal{F}}{\partial x_n}] xF=[x1F,x2F...xnF]

    • 雅可比矩阵:n输入m输出

      ∂ F ∂ x = [ ∂ F 1 ∂ x 1 . . . ∂ F 1 ∂ x n ⋮ ⋱ ⋮ ∂ F m ∂ x 1 . . . ∂ F m ∂ x n ] \dfrac{\partial F}{\partial x}=\begin{bmatrix}\dfrac{\partial F_1}{\partial x_1}&...&\dfrac{\partial F_1}{\partial x_n}\\\vdots&\ddots&\vdots\\\dfrac{\partial F_m}{\partial x_1}&...&\dfrac{\partial F_m}{\partial x_n}\end{bmatrix} xF= x1F1x1Fm......xnF1xnFm

    • 链式法则求解梯度

  • 反向传播算法:得到下游梯度进行传播

    • 计算图

    • 上游梯度、下游梯度、本地梯度

      在这里插入图片描述

    • 举例

      在这里插入图片描述

3. 词向量:Word2Vec

  • 滑动窗口

    • 目标词(target word)
    • 上下文词(context words)
  • 两类模型

    • Continuous bag-of-words(CBOW):根据上下文词预测目标词

      在这里插入图片描述

    • Continuous skip-gram:根据目标词预测上下文词

      在这里插入图片描述

    • 提高计算效率

      • 负采样(Negative Sampling):按照词频进行负例采样
      • 分层softmax(Hierarchical softmax)
  • 词嵌入训练技巧

    • Sub-Sampling:平衡常见词与罕见词
    • Soft sliding window:不固定大小滑窗

4. 循环神经网络(RNN:Recurrent Neural Networks)

  • RNN单元

    h i = tanh ⁡ ( W x x i + W h h i − 1 + b ) y i = F ( h i ) \begin{aligned}h_i&=\tanh(W_xx_i+W_hh_{i-1}+b)\\\\y_i&=F(h_i)\end{aligned} hiyi=tanh(Wxxi+Whhi1+b)=F(hi)

在这里插入图片描述

  • 应用场景

    • Sequence Labeling
    • Sequence Prediction
    • Photograph Description
    • Text Classification
  • 优点

    • 处理变量数据
    • 模型大小不会随着输入增大而增大
    • 权重共享
    • 后续计算可以用前面的计算结果
  • 缺点

    • 顺序计算,需要计算出前一个计算结果才能得到后一个计算结果
    • 随着时间推移,后续计算很难获取前面计算结果
    • 梯度消失或梯度爆炸
  • RNN变体:计算时保存当前周围记忆进行数据处理以捕捉长距离的依赖性

    • GRU(Gated Recurrent Unit)

      • 更新门

      • 重置门

        在这里插入图片描述

    • LSTM(Long Short-Term Memory Network)

      • 遗忘门

      • 输入门

      • 输出门

        在这里插入图片描述

    • 双向RNN

5. 卷积神经网络(CNN:Convolutional Neural Networks)

  • 结构

    • 输入层
    • 卷积层
    • 最大化层
    • 全连接层
  • 应用场景

    • 目标检测
    • 视频分类
    • 语音识别
    • 文本分类

6. CNN与RNN比较

5. 卷积神经网络(CNN:Convolutional Neural Networks)

  • 结构

    • 输入层
    • 卷积层
    • 最大化层
    • 全连接层
  • 应用场景

    • 目标检测
    • 视频分类
    • 语音识别
    • 文本分类

6. CNN与RNN比较

在这里插入图片描述

相关推荐

  1. 神经网络模型】——AI模型学习

    2024-02-17 15:42:01       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-17 15:42:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-17 15:42:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-17 15:42:01       82 阅读
  4. Python语言-面向对象

    2024-02-17 15:42:01       91 阅读

热门阅读

  1. vivado Convergent Rounding (LSB CorrectionTechnique)

    2024-02-17 15:42:01       52 阅读
  2. 用Python实现对Ajax数据爬取

    2024-02-17 15:42:01       46 阅读
  3. Go:字符串与数字的高效转换

    2024-02-17 15:42:01       46 阅读
  4. Go:UTF-8编码与utf8.DecodeRuneInString函数详解

    2024-02-17 15:42:01       48 阅读
  5. 修改静态检查问题的工作思路

    2024-02-17 15:42:01       53 阅读
  6. Spring集成redis,并使用自带的缓存注解

    2024-02-17 15:42:01       56 阅读
  7. React 中定时器的用法

    2024-02-17 15:42:01       51 阅读
  8. 17.3.2.1 Bitmap.LockBits方法和Bitmap.UnlockBits方法

    2024-02-17 15:42:01       59 阅读
  9. 二分算法01

    2024-02-17 15:42:01       60 阅读
  10. LSTM参数详解

    2024-02-17 15:42:01       53 阅读