Skip to content

基础知识

本章深入探讨使用 Python 进行深度学习的基本概念,为理解其核心组件和模型奠定基础。

深度学习采用各种架构,每种架构都适用于不同类型的任务。让我们探索一些最著名的架构:

  • 卷积神经网络 (Convolutional Neural Networks, CNNs):高效适用于图像识别、视频分析和其他网格状数据结构。它们使用卷积层自动学习特征的空间层次结构。
  • 循环神经网络 (Recurrent Neural Networks, RNNs):专为序列数据设计,如文本、时间序列和语音。其变体如长短期记忆网络 (LSTMs) 和门控循环单元 (GRUs) 解决了学习长距离依赖的问题。
  • Transformer:一种较新的架构,彻底改变了自然语言处理 (NLP),并越来越多地应用于视觉及其他领域。它们依赖于自注意力 (self-attention) 机制来衡量不同输入部分的重要性。
  • 生成对抗网络 (Generative Adversarial Networks, GANs):由两个相互竞争的网络(生成器 generator 和判别器 discriminator)组成,主要用于生成逼真的数据(图像、文本等)。
  • 自编码器 (Autoencoders):无监督网络,用于降维、特征学习和数据去噪。它们学习输入数据的压缩表示(编码 encoding),然后重建原始数据(解码 decoding)。

在这些模型中,数据(输入和输出)通常表示为多维数组,称为张量 (tensors)。例如,一个图像可以表示为一个张量,其维度包括高度、宽度和颜色通道(例如,RGB)。

位于输入层和输出层之间的层被称为“隐藏层 (hidden layers)”。这些层对数据进行复杂的变换,提取越来越复杂的特征。分析隐藏层中的激活 (activations) 可以深入了解网络如何处理信息和学习表示。

神经网络的具体架构由神经元在层间的连接方式、层数、每层的神经元数量以及所使用的激活函数 (activation functions) 定义。

以下伪代码说明了在前馈神经网络 (feedforward neural network) 中计算输出的基本概念。现代框架使这个过程自动化,但理解底层步骤至关重要:

function calculate_output(network_layers, input_data):
current_outputs = input_data
for layer in network_layers: # Iterate through hidden and output layers
layer_inputs = current_outputs
next_outputs = []
for neuron in layer:
# Calculate weighted sum of inputs
weighted_sum = dot_product(neuron.weights, layer_inputs) + neuron.bias
# Apply activation function
output = activation_function(weighted_sum)
next_outputs.append(output)
current_outputs = next_outputs # Outputs of this layer are inputs to the next
return current_outputs # Final layer outputs

注意:现代深度学习库,如 TensorFlow 和 PyTorch,使用张量操作 (tensor operations) 和自动微分 (automatic differentiation) 实现反向传播 (backpropagation, 即学习过程),从而大大提高了实现效率。