1. 神经网络简介
神经网络是一种模仿人脑结构与功能的算法,旨在构建一种能像人脑一样处理和分析数据的人工系统。神经网络由大量相互连接的“人工神经元”组成,这些神经元协同工作,完成从输入到输出的映射。
根据结构和用途的不同,常见的神经网络类型包括:
- 全连接神经网络(Fully Connected Neural Networks)
- 卷积神经网络(Convolutional Neural Networks, CNN)
- 循环神经网络(Recurrent Neural Networks, RNN)
它们之间的主要区别在于神经元的组织方式和信息在网络中的传播方式。
2. 神经网络的组成
尽管不同类型的神经网络结构各异,但大多数都包含以下基本组成部分:
2.1 人工神经元
人工神经元是神经网络的基本构建单元,模仿生物神经元的行为。每个神经元接收输入信号,经过加权求和并加上偏置项,再通过激活函数处理后输出。
其数学表达如下:
$$ z = w_1x_1 + w_2x_2 + \dots + w_kx_k + b $$
其中:
- $ w_i $:权重
- $ x_i $:输入
- $ b $:偏置项
之后,将结果输入激活函数 $ f(z) $,得到神经元的最终输出。
神经元结构示意图如下:
2.2 层(Layer)
在神经网络中,层是一组执行特定任务的神经元集合。常见的层包括:
- 输入层(Input Layer):接收原始输入数据
- 隐藏层(Hidden Layer):负责特征提取和抽象
- 输出层(Output Layer):输出最终预测结果
典型的神经网络结构图如下所示:
3. Embedding 层概述
Embedding 层是一种隐藏层,用于将高维输入映射到低维空间,从而帮助网络更高效地学习输入之间的关系。
以自然语言处理为例,通常我们会使用 one-hot 编码表示词语,但这种方式高维且稀疏,不利于模型处理。Embedding 层可以将每个词映射为一个低维向量,其中每个维度代表词的某种语义特征。
Embedding 层结构示意图如下:
理论上,任何隐藏层都可以作为 Embedding 层使用,但关键在于其是否能生成具有语义意义的低维表示。
4. Embedding 层的类型
根据应用场景不同,Embedding 层可以分为以下几种:
4.1 文本 Embedding
文本 Embedding 是最常见的一种,广泛应用于 NLP 领域。例如:
- Word2Vec 和 GloVe 是非上下文相关的词向量模型
- BERT 和 GPT 是基于 Transformer 的上下文相关模型
其中,BERT 仅使用 Encoder 部分,适合做文本表示任务;GPT 则同时包含 Encoder 和 Decoder,适合生成任务。
⚠️ 踩坑提醒:使用非上下文模型时,同一个词在不同语境下的向量表示是相同的,这可能影响模型表现。
4.2 图像 Embedding
图像 Embedding 将图像转换为低维向量,用于图像分类、目标检测等任务。常用的模型包括:
- ResNet
- EfficientNet
- NFNet
- 视觉 Transformer(ViT)
这些模型通常在 ImageNet 等大型数据集上预训练,可直接用于提取图像特征。
4.3 图(Graph)Embedding
图 Embedding 用于将图结构数据映射为低维向量,常用于社交网络分析、推荐系统等。常见算法包括:
- Locally Linear Embedding (LLE)
- DeepWalk
- Node2vec
其中 Node2vec 用于节点级别的 Embedding,LLE 更适合整体图结构的降维。
5. 总结
本文简要介绍了神经网络的基本组成,重点讲解了 Embedding 层的作用和常见类型。总结如下:
✅ Embedding 层的核心作用是将高维稀疏输入转换为低维稠密向量
✅ 常见类型包括文本 Embedding、图像 Embedding 和图 Embedding
✅ 上下文相关的模型(如 BERT)在语义表达上优于非上下文模型
在实际开发中,选择合适的 Embedding 模型对提升模型性能至关重要。建议结合任务特点和数据规模选择合适的 Embedding 方法。