从矩阵表示到卷积神经网络(CNN)与循环神经网络(RNN)

在机器学习和深度学习的世界里,处理复杂的数据结构和模式识别是一个核心挑战。本文将带你了解如何通过矩阵表示 简化神经网络的表达,并深入探讨**卷积神经网络(CNN)循环神经网络(RNN)**这两种强大的工具,分别用于处理图像和序列数据。


一、用矩阵表示神经网络

1.1 矩阵的力量

当我们有一个复杂的神经网络时,虽然参数不多,但表达式看起来已经很麻烦了。这时,我们可以考虑使用矩阵来简化计算。

示例:

假设我们有一个简单的两层神经网络:

  • 输入层:a[0]
  • 隐藏层:a[1]
  • 输出层:a[2]

每一层的计算可以表示为:

其中:

  • W^{(l)} 是第 l 层的权重矩阵
  • b^{(l)} 是偏置向量
  • σ 是激活函数

这种矩阵形式不仅让表达更简洁,还能更好地利用GPU的并行运算特性,加速训练和推理过程。


二、全连接层的局限性

2.1 全连接层的问题

在传统的神经网络中,每个节点都与前一层的所有节点相连,这种连接方式称为全连接层。然而,对于图像数据来说,全连接层存在显著的缺点:

  • 参数过多:例如,输入一个900像素的图像,在一个全连接层之后可能需要90万个参数。
  • 忽略局部信息:全连接层不考虑像素之间的位置关系,导致对图像的局部模式理解不足。

2.2 解决方案:卷积运算

为了捕捉图像中的局部模式,我们引入了卷积运算。卷积核(或滤波器)是一个小矩阵,它与图像的局部区域进行点乘操作,然后求和得到一个新的值。这个过程遍历整个图像,生成新的特征图。

卷积核的应用早在传统图像处理领域就已广泛使用,不同的卷积核可以实现不同的效果(如边缘检测、锐化、模糊等)。而在神经网络中,卷积核是未知的,它们作为可训练的参数参与优化。


三、卷积神经网络(CNN)

3.1 CNN的基本结构

经典的CNN结构通常包括以下几个关键组件:

  • 卷积层:用于提取图像的局部特征。
  • 池化层:降低维度,减少计算量,同时保留主要特征。
  • 全连接层:最终分类或回归任务。

示意图如下:

python 复制代码
Input -> Convolutional Layer -> Pooling Layer -> Fully Connected Layer -> Output

3.2 卷积层的作用

卷积层通过滑动窗口的方式在图像上应用多个卷积核,每个卷积核负责捕捉特定的局部模式。这不仅减少了参数数量,还提高了模型对图像局部信息的理解能力。

3.3 池化层的作用

池化层通常采用最大池化(Max Pooling)或平均池化(Average Pooling),目的是减少特征图的空间尺寸,从而降低计算量。常用的池化大小为2x2,步长为2。

3.4 CNN的优势

  • 参数效率高:相比全连接层,卷积层大大减少了参数数量。
  • 局部感知:能够有效捕捉图像中的局部特征。
  • 平移不变性:即使图像稍微平移或旋转,也能保持较好的性能。

四、循环神经网络(RNN)

4.1 处理序列数据的需求

虽然CNN非常适合处理静态数据(如图像),但对于动态数据(如文本、时间序列、音频等),我们需要一种新的结构------循环神经网络(RNN)

4.2 文本的数字化表示

在自然语言处理(NLP)中,首先要解决的问题是如何将文本转换为数字。常见的方法有:

  • 简单映射:每个词对应一个唯一的整数ID。这种方法简单粗暴,但存在维度低、无法表示词语间关系的问题。
  • One-hot编码:准备一个非常高维的向量,每个词只有向量中一个位置是1,其余全是0。虽然解决了维度低的问题,但带来了维度过高的新问题。
  • 词嵌入(Word Embedding):通过训练得到每个词的向量表示,既能保持合理的维度,又能捕捉词语间的语义相关性。

4.3 RNN的工作原理

RNN通过引入隐藏状态来记忆之前的输入信息,从而具备理解序列顺序的能力。其基本公式如下:

其中:

  • h_t 是当前时刻的隐藏状态
  • x_t 是当前时刻的输入
  • Wb 分别是权重矩阵和偏置向量

不同块之间的流程:

4.4 RNN的应用场景

RNN及其变体(如LSTM、GRU)被广泛应用于各种序列任务,如:

  • 情感分析:判断一句话的情感倾向。
  • 文本生成:根据上下文生成下一个词。
  • 机器翻译:将一种语言的句子翻译成另一种语言。

五、RNN的局限性与改进

5.1 RNN的两个主要问题

尽管RNN非常强大,但它也存在一些局限性:

  1. 长期依赖问题:随着序列长度增加,早期的信息可能会逐渐丢失,导致无法捕捉远距离的依赖关系。
  2. 顺序处理限制:RNN必须按顺序处理数据,无法并行化,影响了训练速度。

5.2 改进方案

为了解决这些问题,研究人员提出了多种改进方案,如:

  • 长短期记忆网络(LSTM):通过引入门控机制,有效地缓解了长期依赖问题。
  • 门控循环单元(GRU):简化了LSTM的结构,同样能较好地处理长期依赖问题。

六、总结

6.1 关键点回顾

  • 矩阵表示:通过矩阵简化神经网络的表达,便于大规模计算。
  • 卷积神经网络(CNN):适用于处理图像等静态数据,能够高效提取局部特征。
  • 循环神经网络(RNN):适用于处理序列数据,具备理解序列顺序的能力。

七、申明

本博客参考于B站up主飞天闪客,学习之后特将学习到的知识进行记录,也是因为有前人不断地积累,不断地总结,才能出到如此易懂的知识,将我以前学习到的碎片化知识串联了起来,令许多费解之处茅塞顿开。现将视频链接粘贴如下:

一小时从函数到Transformer!一路大白话彻底理解AI原理_哔哩哔哩_bilibili

相关推荐
Testopia4 分钟前
AI与敏捷开发管理系列3:敏捷方法在AI项目中的应用案例
人工智能·ai编程·敏捷流程·#人工智能学习
倔强青铜三4 分钟前
苦练Python第61天:logging模块——让Python日志“有迹可循”的瑞士军刀
人工智能·python·面试
Testopia7 分钟前
AI与敏捷开发管理1:传统方法失灵?人工智能项目的新法则
人工智能·项目管理·敏捷开发·敏捷流程
倔强青铜三8 分钟前
苦练Python第60天:json模块——让Python和JSON“无缝互译”的神兵利器
人工智能·python·面试
Ivanqhz1 小时前
LR算法中反向最右推导(Reverse RightMost Derivation)
人工智能·算法
whltaoin1 小时前
AI 超级智能体全栈项目阶段四:学术分析 AI 项目 RAG 落地指南:基于 Spring AI 的本地与阿里云知识库实践
人工智能·spring·阿里云·向量数据库·rag
sheji34161 小时前
【开题答辩全过程】以 Web数据挖掘在电子商务中的应用研究为例,包含答辩的问题和答案
前端·人工智能·数据挖掘
진영_1 小时前
Transformer(一)---背景介绍及架构介绍
人工智能·深度学习·transformer
zzywxc7872 小时前
AI赋能千行百业:金融、医疗、教育、制造业的落地实践与未来展望
java·人工智能·python·microsoft·金融·golang·prompt
星楠_0012 小时前
logits和softmax分布
人工智能·python·深度学习