以下是《Python深度学习》一书中学习过程中记录的一些重要的专属名词和概念:
一、概念
- 深度学习(Deep Learning):指使用多层神经网络进行机器学习的技术。
- 神经网络(Neural Network):一种模仿生物神经网络工作原理的机器学习模型。
- 前向传播(Forward Propagation):在神经网络中,输入数据从输入层通过隐藏层,最终到达输出层的过程。
- 反向传播(Backpropagation):在神经网络中,根据输出层的错误来调整网络中权重的过程。
- 激活函数(Activation Function):用于引入非线性特性到神经网络中的函数,如ReLU、Sigmoid和Tanh等。
- 批量标准化(Batch Normalization):一种加速神经网络训练的方法,通过对每一批数据进行归一化处理来改善网络的性能。
- 损失函数(Loss Function):用于衡量模型预测结果与真实结果之间的差距。
- 优化器(Optimizer):用于调整模型中的权重和偏置,以最小化损失函数。
- 学习率(Learning Rate):优化器在调整权重和偏置时的步长。
- Dropout(Dropout):一种正则化技术,通过随机忽略部分神经元来防止过拟合。
- 过拟合(Overfitting):模型在训练数据上表现很好,但在测试数据上表现不佳的现象。
- 欠拟合(Underfitting):模型在训练数据和测试数据上都表现不佳的现象。
- 卷积神经网络(Convolutional Neural Network,CNN):一种专门用于处理图像数据的神经网络。
- 循环神经网络(Recurrent Neural Network,RNN):一种能够处理序列数据的神经网络,如文本和时间序列数据。
- 长短期记忆网络(Long Short-Term Memory,LSTM):一种特殊的循环神经网络,用于处理需要理解序列中长距离依赖关系的问题。
- 转化器(Transformer):一种基于自注意力机制的深度学习模型,被广泛应用于自然语言处理任务。
- 自注意力机制(Self-Attention Mechanism):一种让神经网络关注输入序列中不同位置的信息,从而更好地理解序列数据的技术。
- 验证集(Validation Set):从原始数据中划分出来的一组数据,用于调整模型的超参数和防止过拟合。
- 测试集(Test Set):从原始数据中划分出来的一组数据,用于评估模型的性能。
- 梯度消失问题(Vanishing Gradient Problem):在深度神经网络中,梯度在反向传播过程中会逐渐变小,导致网络中的早期层无法从训练过程中学习到有用的信息。
- 梯度爆炸问题(Exploding Gradient Problem):与梯度消失问题相反,梯度在反向传播过程中可能会变得非常大,导致模型训练不稳定甚至崩溃。
- 特征工程(Feature Engineering):通过对数据进行预处理、转换和特征选择等操作,提高机器学习模型性能的过程。
- 迁移学习(Transfer Learning):利用在大规模数据集上预训练的模型来帮助解决类似问题的技术。
- Keras:一个高级神经网络API,支持多种深度学习框架,包括TensorFlow、CNTK和Theano等。
- TensorFlow:一个流行的深度学习框架,由Google开发并维护。
- PyTorch:另一个流行的深度学习框架,由Facebook AI Research开发并维护。
- Keract:Keras的CPU和GPU张量操作库,提供更高效的张量操作功能。
- Jupyter Notebook:一个Web应用程序,允许创建和共享包含实时代码、注释和输出在内的文档。
- Colab:Google开发的免费Jupyter notebook服务,提供GPU加速功能。
- Docker:一个开源容器化平台,允许打包、分发和运行应用程序及其依赖项。
- TensorBoard:TensorFlow的可视化工具,用于监视训练过程、可视化和理解模型。
- ONNX:开放神经网络交换格式,用于表示深度学习模型。它支持多种深度学习框架的模型转换,包括TensorFlow、PyTorch和其他框架。
- NVIDIA GPU:专为深度学习应用设计的图形处理器,提供强大的计算能力和高内存带宽。
- TPU(Tensor Processing Unit):Google专为机器学习任务设计的处理器,具有高吞吐量、低延迟和节能等特性。
- GPU Cloud Provider:提供GPU云服务以支持深度学习应用的云服务提供商,如Google Cloud、Amazon Web Services(AWS)和Microsoft Azure等。
- OpenAI API:OpenAI是一家提供人工智能模型的机构,其API允许用户通过简单的接口访问其强大的深度学习模型。
- GPT(Generative Pre-trained Transformer):一种基于Transformer模型的自回归语言模型,被用于生成文本和回答自然语言问题。
- BERT(Bidirectional Encoder Representations from Transformers):一种基于Transformer模型的预训练语言模型,被用于理解自然语言文本的含义和上下文。
- Transformer模型:一种基于自注意力机制的深度学习模型,被广泛应用于自然语言处理任务。
- 自动编码器(Autoencoder):一种神经网络架构,用于将输入数据编码成低维空间表示,然后再从低维空间表示还原成原始数据。
- 生成对抗网络(Generative Adversarial Networks,GAN):一种神经网络架构,由一个生成器网络和一个判别器网络组成,通过竞争来提高双方的生成和判别能力。
- 变分自编码器(Variational Autoencoder,VAE):一种结合了潜变量模型的神经网络架构,用于生成数据和重构数据。
- 强化学习(Reinforcement Learning):一种通过与环境的交互来学习最优行为的机器学习方法。
- Q-Learning:一种用于解决强化学习问题的算法,通过学习动作的价值来选择最优动作。
- TensorFlow Serving:TensorFlow的模型部署框架,用于将训练好的模型转换成服务部署到生产环境。
- TensorFlow Lite:TensorFlow的移动端和嵌入式设备支持框架,用于在这些设备上运行TensorFlow模型。
- TensorFlow.js:TensorFlow的JavaScript库,用于在浏览器和Node.js环境中运行TensorFlow模型。
- TensorBoardX:使用TensorFlow 1.x API的TensorBoard替代方案,支持Keras 2.x和PyTorch。
- ONNX Runtime:ONNX的模型运行时,支持在多种设备上运行ONNX格式的模型。
二、详解
2.1 深度学习
深度学习是机器学习的一个分支领域:它是从数据中学习表示的一种新方法,强调从连续的层中学习,这些层对应于越来越有意义的表示。
深度学习之“深度”并不是说这种方法能够获取更深层次的理解,而是指一系列连续的表示层。数据模型所包含的层数被称为该模型的深度( depth)。
2.2 神经网络
在深度学习中,这些分层表示是通过叫作神经网络( neural network)的模型学习得到的。
神经网络的结构是逐层堆叠。“神经网络”这一术语来自于神经生物学,然而,虽然深度学习的
一些核心概念是从人们对大脑(特别是视觉皮层)的理解中汲取部分灵感而形成的,但深度学
习模型并不是大脑模型。没有证据表明大脑的学习机制与现代深度学习模型的学习机制相同。
你可能读过一些科普文章,这些文章宣称深度学习的工作原理与大脑相似或者是在模拟大脑,
但事实并非如此。对于这一领域的新人来说,如果认为深度学习与神经生物学存在任何关系,
那将使人困惑,只会起到反作用。
2.3 前向传播
我们为图中的“输入节点”(输入 x、目标 y_true、 w 和 b)赋值。我们将这些值传入图中
所有节点,从上到下,直到 loss_val。这就是前向传播过程
2.4 反向传播
下面我们“反过来”看这张图。对于图中从 A 到 B 的每条边,我们都画一条从 B 到 A 的反向边,
并提出问题:如果 A 发生变化,那么 B 会怎么变?也就是说, grad(B, A) 是多少?我们在每
条反向边上标出这个值。这个反向图表示的是反向传播过程