关键词:模型训练、计算效率、性能权衡、深度学习、优化算法
摘要:本文围绕模型训练中的计算效率与性能权衡展开深入研究。首先介绍了研究的背景、目的、预期读者以及文档结构等信息。接着阐述了核心概念,包括计算效率和模型性能的定义及联系,并给出相应的文本示意图和 Mermaid 流程图。详细讲解了核心算法原理,通过 Python 代码进行示例说明。分析了相关的数学模型和公式,并结合实际例子进行解释。通过项目实战,展示了如何在实际中进行模型训练并权衡计算效率与性能。探讨了实际应用场景,推荐了相关的工具和资源,包括学习资源、开发工具框架以及论文著作等。最后总结了未来发展趋势与挑战,提供了常见问题解答和扩展阅读参考资料。
1.1 目的和范围
在当今人工智能和机器学习领域,模型训练是一个至关重要的环节。随着模型复杂度的不断增加,如深度学习中的大规模神经网络,训练过程所需的计算资源和时间也急剧增长。计算效率成为了限制模型发展和应用的关键因素之一。然而,仅仅追求计算效率可能会牺牲模型的性能,导致模型在实际应用中的准确性和泛化能力下降。因此,研究模型训练中的计算效率与性能权衡具有重要的现实意义。
本研究的范围涵盖了常见的机器学习和深度学习模型,包括但不限于神经网络、决策树、支持向量机等。我们将探讨不同模型在训练过程中计算效率和性能之间的关系,以及如何通过优化算法和策略来实现两者的平衡。
1.2 预期读者
本文的预期读者包括人工智能和机器学习领域的研究人员、工程师、数据科学家以及相关专业的学生。对于希望深入了解模型训练原理,优化模型训练过程,提高计算效率和模型性能的人士具有一定的参考价值。
1.3 文档结构概述
本文将按照以下结构进行组织:
- 核心概念与联系:介绍计算效率和模型性能的核心概念,以及它们之间的联系,并通过示意图和流程图进行直观展示。
- 核心算法原理 & 具体操作步骤:详细讲解与计算效率和性能权衡相关的核心算法原理,并使用 Python 代码进行示例说明。
- 数学模型和公式 & 详细讲解 & 举例说明:分析相关的数学模型和公式,结合实际例子进行解释。
- 项目实战:通过实际项目案例,展示如何在实际中进行模型训练并权衡计算效率与性能。
- 实际应用场景:探讨模型训练中计算效率与性能权衡在不同领域的实际应用场景。
- 工具和资源推荐:推荐相关的学习资源、开发工具框架以及论文著作等。
- 总结:总结未来发展趋势与挑战。
- 附录:提供常见问题解答。
- 扩展阅读 & 参考资料:列出相关的扩展阅读材料和参考资料。
1.4 术语表
1.4.1 核心术语定义
- 计算效率:指在模型训练过程中,利用计算资源(如 CPU、GPU 等)完成训练任务的速度和资源利用率。通常用训练时间、每秒浮点运算次数(FLOPS)等指标来衡量。
- 模型性能:指模型在测试数据集上的表现,常用的评估指标包括准确率、召回率、F1 值、均方误差(MSE)等。
- 性能权衡:在模型训练中,为了提高计算效率而采取的措施可能会对模型性能产生负面影响,反之亦然。性能权衡就是在这两者之间找到一个平衡点,以达到**的综合效果。
1.4.2 相关概念解释
- 梯度下降算法:是一种常用的优化算法,用于最小化模型的损失函数。通过迭代更新模型的参数,使得损失函数逐渐减小。
- 批量归一化(Batch Normalization):是一种用于加速神经网络训练的技术,通过对输入数据进行归一化处理,减少了数据分布的变化,从而提高了训练的稳定性和速度。
- 剪枝(Pruning):是一种模型压缩技术,通过去除模型中不重要的连接或神经元,减少模型的参数数量,从而提高计算效率。
1.4.3 缩略词列表
- FLOPS:每秒浮点运算次数(Floating-point Operations Per Second)
- MSE:均方误差(Mean Squared Error)
- GPU:图形处理器(Graphics Processing Unit)
- CPU:中央处理器(Central Processing Unit)
计算效率与模型性能的定义
计算效率主要关注模型训练过程中对计算资源的利用情况。高效的计算意味着在较短的时间内完成训练任务,或者在相同的时间内利用更少的计算资源。例如,在大规模深度学习模型训练中,使用 GPU 可以显著提高计算效率,因为 GPU 具有并行计算的能力,能够同时处理多个计算任务。
模型性能则是衡量模型在实际应用中的表现。一个性能良好的模型能够准确地对新数据进行预测或分类。例如,在图像分类任务中,模型的准确率就是一个重要的性能指标。
两者之间的联系
计算效率和模型性能之间存在着复杂的关系。一般来说,提高计算效率可能会对模型性能产生一定的影响。例如,为了减少训练时间,我们可以采用小批量训练的方法,但这可能会导致模型的收敛速度变慢,从而影响模型的性能。另一方面,为了提高模型性能,我们可能需要增加模型的复杂度,如增加神经网络的层数和神经元数量,但这会增加计算量,降低计算效率。
文本示意图
以下是计算效率与模型性能之间关系的文本示意图:
计算效率
↑ | | 提高计算效率可能降低模型性能 | | | 提高模型性能可能降低计算效率 | ↓ 模型性能
Mermaid 流程图

梯度下降算法原理
梯度下降算法是一种常用的优化算法,用于最小化模型的损失函数。假设我们有一个模型
,其中
是输入数据,
是模型的参数。损失函数 
梯度下降算法的核心思想是通过迭代更新模型的参数
,使得损失函数
逐渐减小。具体来说,每次迭代时,我们计算损失函数
关于参数
的梯度
,然后按照梯度的反方向更新参数:

其中,
是第
次迭代时的参数值,
Python 代码实现
import numpy as np
定义损失函数
def loss_function(theta, X, y):
# 简单的线性回归损失函数 m = len(y) predictions = np.dot(X, theta) loss = (1/(2*m)) * np.sum(np.square(predictions - y)) return loss
定义梯度计算函数
def gradient(theta, X, y):
m = len(y) predictions = np.dot(X, theta) grad = (1/m) * np.dot(X.T, (predictions - y)) return grad
梯度下降算法实现
def gradient_descent(X, y, theta, alpha, num_iterations):
m = len(y) loss_history = [] for iteration in range(num_iterations): # 计算梯度 grad = gradient(theta, X, y) # 更新参数 theta = theta - alpha * grad # 计算当前损失 loss = loss_function(theta, X, y) loss_history.append(loss) return theta, loss_history
示例数据
X = np.array([[1, 2], [1, 3], [1, 4]]) y = np.array([5, 7, 9]) theta = np.zeros(X.shape[1]) alpha = 0.01 num_iterations = 100
执行梯度下降算法
theta_final, loss_history = gradient_descent(X, y, theta, alpha, num_iterations) print(“Final theta:”, theta_final)
算法优化与性能权衡
在实际应用中,我们可以对梯度下降算法进行优化,以提高计算效率和模型性能。例如,采用随机梯度下降(SGD)算法,每次迭代只使用一个样本或小批量样本计算梯度,这样可以减少计算量,提高计算效率。但随机梯度下降的梯度估计可能存在噪声,导致模型收敛不稳定。为了平衡计算效率和模型性能,我们可以采用小批量随机梯度下降(Mini-batch SGD)算法,每次迭代使用一小批样本计算梯度。
# 小批量随机梯度下降算法实现 def mini_batch_gradient_descent(X, y, theta, alpha, num_iterations, batch_size): m = len(y) loss_history = [] for iteration in range(num_iterations): # 随机打乱数据 indices = np.random.permutation(m) X_shuffled = X[indices] y_shuffled = y[indices] for i in range(0, m, batch_size): X_batch = X_shuffled[i:i+batch_size] y_batch = y_shuffled[i:i+batch_size] # 计算梯度 grad = gradient(theta, X_batch, y_batch) # 更新参数 theta = theta - alpha * grad # 计算当前损失 loss = loss_function(theta, X, y) loss_history.append(loss) return theta, loss_history
示例数据
X = np.array([[1, 2], [1, 3], [1, 4]]) y = np.array([5, 7, 9]) theta = np.zeros(X.shape[1]) alpha = 0.01 num_iterations = 100 batch_size = 2
执行小批量随机梯度下降算法
theta_final, loss_history = mini_batch_gradient_descent(X, y, theta, alpha, num_iterations, batch_size) print(“Final theta:”, thetafinal)
损失函数的数学模型
在机器学习中,损失函数是衡量模型预测值与真实值之间差异的函数。常见的损失函数包括均方误差(MSE)、交叉熵损失等。
均方误差(MSE)
对于线性回归问题,均方误差是一种常用的损失函数。假设我们有
https://math-api.51cto.com/?from=mm’ alt=‘模型训练中的计算效率与性能权衡研究#ai_15’> 个样本
,其中
是第
个样本的输入,
是第
个样本的真实值,模型的预测值为
。均方误差的定义如下:

均方误差衡量了预测值与真实值之间的平均平方误差,误差越小,说明模型的预测效果越好。
交叉熵损失
对于分类问题,交叉熵损失是一种常用的损失函数。假设我们有
个样本
,其中
是第
个样本的真实标签,
是模型对第 

其中,
是类别数,
是第
个样本在第
个类别上的真实标签(通常为 0 或 1),
是模型对第
个样本在第 
梯度的计算
在梯度下降算法中,我们需要计算损失函数关于模型参数的梯度。以均方误差损失函数为例,假设模型为线性回归模型
,损失函数为:

对 

举例说明
假设我们有一个简单的线性回归问题,数据集为
,模型为
。
计算损失函数
首先,我们计算均方误差损失函数:

计算梯度
对
和 


假设初始参数
,
,学习率
。
第一次迭代:
- 计算预测值:
,
,
。 - 计算梯度:
- 更新参数:
通过不断迭代,我们可以逐渐找到使损失函数最小的参数值。
5.1 开发环境搭建
本项目使用 Python 语言进行开发,主要使用的库包括 numpy、pandas、scikit-learn 和 tensorflow。以下是搭建开发环境的步骤:
- 安装 Python:建议使用 Python 3.7 及以上版本。可以从 Python 官方网站(https://www.python.org/downloads/)下载并安装。
- 安装虚拟环境(可选):为了避免不同项目之间的依赖冲突,建议使用虚拟环境。可以使用
venv或conda来创建虚拟环境。
- 使用
venv创建虚拟环境:
python -m venv myenv source myenv/bin/activate # 在 Windows 上使用 myenvScriptsactivate
- 使用 conda 创建虚拟环境:
conda create -n myenv python=3.8 conda activate myenv
- 安装依赖库:在激活的虚拟环境中,使用
pip安装所需的库:
pip install numpy pandas scikit-learn tensorflow
5.2 源代码详细实现和代码解读
我们以一个简单的手写数字识别任务为例,使用 TensorFlow 构建一个卷积神经网络(CNN)模型,并探讨计算效率与性能的权衡。
import tensorflow as tf from tensorflow.keras.datasets import mnist from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense from tensorflow.keras.utils import to_categorical import time 加载数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()
数据预处理
x_train = x_train.reshape(-1, 28, 28, 1).astype(‘float32’) / 255.0 x_test = x_test.reshape(-1, 28, 28, 1).astype(‘float32’) / 255.0 y_train = to_categorical(y_train) y_test = to_categorical(y_test)
构建模型
model = Sequential([
Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)), MaxPooling2D((2, 2)), Conv2D(64, (3, 3), activation='relu'), MaxPooling2D((2, 2)), Flatten(), Dense(64, activation='relu'), Dense(10, activation='softmax')
])
编译模型
model.compile(optimizer=‘adam’,
loss='categorical_crossentropy', metrics=['accuracy'])
记录开始时间
start_time = time.time()
训练模型
history = model.fit(x_train, y_train, epochs=5, batch_size=64, validation_data=(x_test, y_test))
记录结束时间
end_time = time.time()
计算训练时间
training_time = end_time - start_time print(f”Training time: {training_time} seconds”)
评估模型
test_loss, test_acc = model.evaluate(x_test, y_test) print(f”Test accuracy: {test_acc}“)
代码解读与分析
- 数据加载与预处理:使用
mnist.load_data()加载手写数字识别数据集,将图像数据归一化到 [0, 1] 范围内,并将标签进行 one-hot 编码。 - 模型构建:使用
Sequential模型构建一个简单的卷积神经网络,包括卷积层、池化层、全连接层等。 - 模型编译:使用
adam优化器和categorical_crossentropy损失函数进行模型编译,并设置评估指标为准确率。 - 模型训练:使用
model.fit()方法进行模型训练,设置训练轮数为 5,批量大小为 64,并使用验证集进行验证。 - 训练时间计算:使用
time.time()记录训练开始和结束时间,计算训练时间。 - 模型评估:使用
model.evaluate()方法在测试集上评估模型的性能,输出测试准确率。
性能权衡分析
在上述代码中,我们可以通过调整批量大小来权衡计算效率和模型性能。较大的批量大小可以提高计算效率,因为 GPU 可以更好地并行处理数据,但可能会导致模型收敛不稳定,影响模型性能。较小的批量大小可以提高模型的泛化能力,但会增加训练时间,降低计算效率。
例如,我们可以将批量大小从 64 调整为 128:
# 训练模型,调整批量大小为 128 history = model.fit(x_train, y_train, epochs=5, batch_size=128, validation_data=(x_test, y_test))
通过比较不同批量大小下的训练时间和测试准确率,我们可以找到一个合适的平衡点。
图像识别领域
在图像识别领域,模型训练的计算效率和性能权衡尤为重要。例如,在自动驾驶汽车中,需要实时对道路图像进行识别,这就要求模型具有较高的计算效率,能够在短时间内完成图像的处理和分析。同时,模型的性能也至关重要,因为识别错误可能会导致严重的安全事故。
为了提高计算效率,可以采用模型压缩技术,如剪枝和量化,减少模型的参数数量和计算量。同时,为了保证模型性能,可以使用数据增强技术,增加训练数据的多样性,提高模型的泛化能力。
自然语言处理领域
在自然语言处理领域,如机器翻译、文本分类等任务,模型的复杂度通常较高,训练时间较长。为了提高计算效率,可以采用分布式训练技术,将训练任务分配到多个计算节点上并行处理。同时,为了提高模型性能,可以使用预训练模型,如 BERT、GPT 等,利用大规模无监督数据进行预训练,然后在特定任务上进行微调。
医疗领域
在医疗领域,模型训练的准确性直接关系到患者的生命健康。例如,在疾病诊断中,需要模型具有较高的准确率和可靠性。然而,医疗数据通常具有隐私性和敏感性,数据量相对较小,这给模型训练带来了挑战。
为了提高计算效率,可以采用联邦学习技术,在不泄露患者隐私的前提下,联合多个医疗机构的数据进行模型训练。同时,为了提高模型性能,可以使用多模态数据,如结合医学图像、病历文本等信息,提高模型的诊断准确性。
7.1 学习资源推荐
7.1.1 书籍推荐
- 《深度学习》(Deep Learning):由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 撰写,是深度学习领域的经典教材,涵盖了深度学习的基本原理、算法和应用。
- 《Python 机器学习》(Python Machine Learning):由 Sebastian Raschka 和 Vahid Mirjalili 撰写,介绍了使用 Python 进行机器学习的方法和技术,包括数据预处理、模型选择、评估等内容。
- 《动手学深度学习》(Dive into Deep Learning):由 Aston Zhang、Zachary C. Lipton、Mu Li 和 Alexander J. Smola 撰写,提供了丰富的代码示例和实践项目,帮助读者快速上手深度学习。
7.1.2 在线课程
- Coursera 上的“深度学习专项课程”(Deep Learning Specialization):由 Andrew Ng 教授授课,包括神经网络和深度学习、改善深层神经网络、结构化机器学习项目等多个课程,是学习深度学习的优质资源。
- edX 上的“数据科学与机器学习微硕士”(MicroMasters Program in Data Science and Machine Learning):提供了系统的机器学习和数据科学课程,涵盖了数学基础、机器学习算法、深度学习等内容。
- 哔哩哔哩(B 站)上有许多优质的机器学习和深度学习教程,如“刘二大人的 PyTorch 深度学习实践”等,适合初学者学习。
7.1.3 技术博客和网站
- Medium:是一个技术博客平台,有许多机器学习和深度学习领域的专家分享他们的经验和见解。
- Towards Data Science:是一个专注于数据科学和机器学习的网站,提供了大量的技术文章和案例分析。
- arXiv:是一个预印本平台,收录了许多最新的机器学习和深度学习研究论文。
7.2 开发工具框架推荐
7.2.1 IDE和编辑器
- PyCharm:是一款专门为 Python 开发设计的集成开发环境(IDE),具有代码自动补全、调试、版本控制等功能,适合专业的 Python 开发者使用。
- Jupyter Notebook:是一个交互式的开发环境,支持代码、文本、图像等多种格式的展示,非常适合进行数据探索和模型实验。
- Visual Studio Code:是一款轻量级的代码编辑器,支持多种编程语言,具有丰富的插件生态系统,可以满足不同的开发需求。
7.2.2 调试和性能分析工具
- TensorBoard:是 TensorFlow 提供的可视化工具,可以用于监控模型训练过程中的损失函数、准确率等指标,以及可视化模型的结构和参数分布。
- PyTorch Profiler:是 PyTorch 提供的性能分析工具,可以帮助开发者分析模型的计算瓶颈和内存使用情况,优化模型的性能。
- NVIDIA Nsight Systems:是 NVIDIA 提供的性能分析工具,专门用于分析 GPU 计算性能,可以帮助开发者优化 GPU 代码。
7.2.3 相关框架和库
- TensorFlow:是一个开源的机器学习框架,由 Google 开发,具有强大的分布式训练和模型部署能力,广泛应用于工业界和学术界。
- PyTorch:是一个开源的深度学习框架,由 Facebook 开发,具有动态图机制,易于使用和调试,受到了许多研究者的喜爱。
- Scikit-learn:是一个开源的机器学习库,提供了丰富的机器学习算法和工具,如数据预处理、模型选择、评估等,适合初学者和快速开发。
7.3 相关论文著作推荐
7.3.1 经典论文
- “Gradient-based learning applied to document recognition”:由 Yann LeCun 等人撰写,提出了卷积神经网络(CNN)的概念,是图像识别领域的经典论文。
- “Attention Is All You Need”:由 Vaswani 等人撰写,提出了 Transformer 模型,是自然语言处理领域的重要突破。
- “Dropout: A Simple Way to Prevent Neural Networks from Overfitting”:由 Nitish Srivastava 等人撰写,介绍了 Dropout 技术,用于防止神经网络过拟合。
7.3.2 最新研究成果
- 关注 arXiv 上的最新论文,了解机器学习和深度学习领域的最新研究进展。
- 参加国际机器学习会议(ICML)、神经信息处理系统大会(NeurIPS)等顶级学术会议,获取最新的研究成果。
7.3.3 应用案例分析
- Kaggle 是一个数据科学竞赛平台,上面有许多实际应用案例和解决方案,可以学习和借鉴。
- 各大科技公司的技术博客,如 Google AI Blog、Facebook AI Research 等,会分享他们在实际项目中的应用经验和技术创新。
未来发展趋势
- 硬件技术的发展:随着 GPU、TPU 等硬件技术的不断发展,计算能力将不断提升,为模型训练提供更强大的支持。同时,量子计算技术的发展也可能为机器学习带来新的突破。
- 模型压缩和加速技术的进步:为了提高计算效率,模型压缩和加速技术将得到进一步发展。例如,剪枝、量化、知识蒸馏等技术将不断优化,使模型在保持性能的前提下,减少计算量和存储需求。
- 多模态学习和跨领域融合:未来的模型将更加注重多模态数据的处理和跨领域的融合。例如,结合图像、文本、音频等多种模态的数据进行学习,提高模型的综合性能。
- 自动化机器学习(AutoML):自动化机器学习将逐渐成为主流,通过自动化的模型选择、超参数调优等技术,降低机器学习的门槛,提高开发效率。
挑战
- 数据隐私和安全问题:随着数据的重要性日益凸显,数据隐私和安全问题也成为了一个严峻的挑战。在模型训练过程中,如何保护用户的数据隐私,防止数据泄露和滥用,是一个亟待解决的问题。
- 模型可解释性:深度学习模型通常是黑盒模型,难以解释其决策过程和结果。在一些关键领域,如医疗、金融等,模型的可解释性至关重要。如何提高模型的可解释性,是当前研究的热点之一。
- 计算资源的不均衡:计算资源的不均衡分布可能会导致模型训练的不公平性。一些大型科技公司拥有强大的计算资源,可以训练出更复杂、性能更好的模型,而一些小型企业和研究机构可能由于资源有限,无法开展大规模的模型训练。
- 伦理和社会影响:机器学习和人工智能的发展也带来了一系列伦理和社会问题,如算法歧视、就业结构变化等。如何引导技术的发展,使其符合人类的利益和价值观,是一个需要全社会共同关注的问题。
问题 1:如何选择合适的学习率?
学习率是梯度下降算法中的一个重要超参数,它控制了每次参数更新的步长。如果学习率过大,模型可能会跳过最优解,导致无法收敛;如果学习率过小,模型的收敛速度会很慢,训练时间会很长。
选择合适的学习率可以采用以下方法:
- 经验法:根据经验,对于大多数问题,学习率可以选择在 0.001 到 0.1 之间。可以先尝试一个中等大小的学习率,如 0.01,然后根据训练过程中的损失函数变化情况进行调整。
- 学习率衰减:在训练过程中,可以逐渐减小学习率。例如,每训练一定的轮数,将学习率乘以一个小于 1 的衰减因子。
- 学习率搜索:可以使用网格搜索或随机搜索等方法,在一定范围内搜索合适的学习率。
问题 2:如何判断模型是否过拟合或欠拟合?
- 过拟合:当模型在训练集上表现很好,但在测试集上表现较差时,可能发生了过拟合。过拟合的原因通常是模型过于复杂,学习了训练数据中的噪声和细节。可以通过以下方法解决过拟合问题:
- 增加训练数据。
- 减少模型的复杂度,如减少神经网络的层数和神经元数量。
- 使用正则化技术,如 L1 和 L2 正则化。
- 使用 Dropout 技术。
- 欠拟合:当模型在训练集和测试集上的表现都很差时,可能发生了欠拟合。欠拟合的原因通常是模型过于简单,无法学习到数据中的复杂模式。可以通过以下方法解决欠拟合问题:
- 增加模型的复杂度,如增加神经网络的层数和神经元数量。
- 更换更强大的模型。
- 调整模型的超参数。
问题 3:如何提高模型的计算效率?
- 使用硬件加速:如使用 GPU、TPU 等硬件进行计算,可以显著提高计算效率。
- 模型压缩:采用剪枝、量化等技术,减少模型的参数数量和计算量。
- 优化算法:选择合适的优化算法,如随机梯度下降(SGD)、Adagrad、Adam 等,提高训练效率。
- 分布式训练:将训练任务分配到多个计算节点上并行处理,加速训练过程。
问题 4:如何平衡计算效率和模型性能?
- 调整批量大小:较大的批量大小可以提高计算效率,但可能会影响模型性能;较小的批量大小可以提高模型性能,但会降低计算效率。可以通过实验找到一个合适的批量大小。
- 模型选择:选择合适复杂度的模型,避免使用过于复杂的模型导致计算效率低下,同时也要避免使用过于简单的模型导致性能不佳。
- 优化策略:采用一些优化策略,如学习率衰减、早停等,在保证模型性能的前提下,提高计算效率。
扩展阅读
- 《人工智能:现代方法》(Artificial Intelligence: A Modern Approach):由 Stuart Russell 和 Peter Norvig 撰写,是人工智能领域的经典教材,涵盖了人工智能的各个方面,包括搜索算法、机器学习、自然语言处理等。
- 《机器学习实战》(Machine Learning in Action):由 Peter Harrington 撰写,通过实际案例介绍了机器学习的算法和应用,适合初学者学习。
- 《深度学习实战》(Deep Learning in Practice):由 Sandeep Nagar 和 Abhishek Singh 撰写,介绍了深度学习的实际应用和开发技巧,包括图像识别、自然语言处理、语音识别等领域。
参考资料
- Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
- Raschka, S., & Mirjalili, V. (2017). Python Machine Learning. Packt Publishing.
- Zhang, A., Lipton, Z. C., Li, M., & Smola, A. J. (2020). Dive into Deep Learning. https://d2l.ai/
- LeCun, Y., Bottou, L., Bengio, Y., & Haffner, P. (1998). Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11), 2278-2324.
- Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., … & Polosukhin, I. (2017). Attention Is All You Need. Advances in Neural Information Processing Systems, 5998-6008.
- Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. (2014). Dropout: A Simple Way to Prevent Neural Networks from Overfitting. Journal of Machine Learning Research, 15(1), 1929-1958.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/269871.html