目录 教学课件(PPT) 本书源码 第1章深度学习简介 1.1深度学习的发展阶段 1.1.1早期理论的发展 1.1.2人工智能的萌芽 1.1.3反向传播算法的发展 1.1.4卷积神经网络的发展 1.1.5循环神经网络的发展 1.1.6自然语言处理的发展 1.2深度学习中的关键人物 1.3深度学习框架介绍 1.3.1深度学习框架的出现 1.3.2深度学习框架的历史 1.4本书的体系结构 1.4.1面向的读者 1.4.2内容与结构 1.4.3代码及资源 第2章环境配置 2.1体系结构介绍 2.1.1基础软硬件设施 2.1.2版本依赖关系 2.1.3Conda工具介绍 2.1.4安装源介绍 2.1.5小结 2.2深度学习环境安装 2.2.1在Windows环境下 2.2.2在Linux环境下 2.2.3实战示例 2.2.4GPU租用 2.2.5小结 2.3开发环境安装配置 2.3.1Jupyter Notebook安装与使用 2.3.2PyCharm安装与使用 2.3.3远程连接使用 2.3.4小结 第3章深度学习基础 3.1线性回归 3.1.1理解线性回归模型 3.1.2建立线性回归模型 3.1.3求解线性回归模型 3.1.4多项式回归建模 3.1.5从特征输入到特征提取 3.1.6从线性输入到非线性变换 3.1.7单层神经网络 3.1.8深度神经网络 3.1.9小结 3.2线性回归的简捷实现 3.2.1PyTorch使用介绍 3.2.2房价预测实现 3.2.3梯形面积预测实现 3.2.4小结 3.3梯度下降与反向传播 3.3.1梯度下降引例 3.3.2方向导数与梯度 3.3.3梯度下降原理 3.3.4前向传播过程 3.3.5传统方式梯度求解 3.3.6反向传播过程 3.3.7梯度消失和梯度爆炸 3.3.8小结 3.4从零实现回归模型 3.4.1网络结构 3.4.2模型实现 3.4.3小结 3.5从逻辑回归到Softmax回归 3.5.1理解逻辑回归模型 3.5.2建立逻辑回归模型 3.5.3求解逻辑回归模型 3.5.4从二分类到多分类 3.5.5Softmax回归 3.5.6特征的意义 3.5.7从具体到抽象 3.5.8从浅层到深层 3.5.9小结 3.6Softmax回归的简捷实现 3.6.1PyTorch使用介绍 3.6.2手写体分类实现 3.6.3小结 3.7从零实现分类模型 3.7.1网络结构 3.7.2模型实现 3.7.3小结 3.8回归模型评估指标 3.8.1常见回归评估指标 3.8.2回归指标示例代码 3.8.3小结 3.9分类模型评估指标 3.9.1准确率 3.9.2精确率与召回率计算 3.9.3准确率与召回率的区别 3.9.4多分类下的指标计算 3.9.5TopK准确率 3.9.6小结 3.10过拟合与正则化 3.10.1模型拟合 3.10.2过拟合与欠拟合概念 3.10.3解决欠拟合与过拟合问题 3.10.4泛化误差的来源 3.10.5测试集导致的泛化误差 3.10.6训练集导致的泛化误差 3.10.72正则化原理 3.10.82正则化中的参数更新 3.10.92正则化示例代码 3.10.101正则化原理 3.10.111与2正则化差异 3.10.12丢弃法 3.10.13小结 3.11超参数与交叉验证 3.11.1超参数介绍 3.11.2模型选择 3.11.3基于交叉验证的手写体分类 3.11.4小结 3.12激活函数 3.12.1Sigmoid激活函数 3.12.2Tanh激活函数 3.12.3ReLU激活函数 3.12.4LeakyReLU激活函数 3.12.5小结 3.13多标签分类 3.13.1Sigmoid损失 3.13.2交叉熵损失 3.13.3不考虑部分正确的评估指标 3.13.4考虑部分正确的评估指标 3.13.5小结 第4章卷积神经网络 4.1卷积的概念 4.1.1深度学习的思想 4.1.2卷积操作的作用 4.1.3卷积操作的原理 4.1.4小结 4.2卷积的计算过程 4.2.1多卷积核 4.2.2卷积的计算过程 4.2.3深度卷积 4.2.4小结 4.3填充和池化 4.3.1填充操作 4.3.2形状计算 4.3.3卷积示例代码 4.3.4池化操作 4.3.5池化的作用 4.3.6池化示例代码 4.3.7小结 4.4LeNet5网络 4.4.1LeNet5动机 4.4.2LeNet5结构 4.4.3LeNet5实现 4.4.4小结 4.5AlexNet网络 4.5.1AlexNet动机 4.5.2AlexNet结构 4.5.3AlexNet实现 4.5.4小结 4.6VGG网络 4.6.1VGG动机 4.6.2VGG结构 4.6.3VGG实现 4.6.4小结 4.7NIN网络 4.7.1NIN动机 4.7.2NIN结构 4.7.3NIN实现 4.7.4小结 4.8GoogLeNet网络 4.8.1GoogLeNet动机 4.8.2GoogLeNet结构 4.8.3GoogLeNet实现 4.8.4小结 4.9ResNet网络 4.9.1ResNet动机 4.9.2ResNet结构 4.9.3ResNet实现 4.9.4小结 4.10DenseNet网络 4.10.1DenseNet动机 4.10.2DenseNet结构 4.10.3DenseNet实现 4.10.4小结 第5章模型训练与复用 5.1参数及日志管理 5.1.1参数传递 5.1.2参数载入 5.1.3定义日志函数 5.1.4日志输出示例 5.1.5打印模型参数 5.1.6小结 5.2TensorBoard可视化 5.2.1安装与启动 5.2.2连接与访问 5.2.3TensorBoard使用场景 5.2.4使用实例 5.2.5小结 5.3模型的保存与复用 5.3.1查看模型参数 5.3.2自定义参数前缀 5.3.3保存训练模型 5.3.4复用模型推理 5.3.5复用模型训练 5.3.6小结 5.4模型的迁移学习 5.4.1迁移学习 5.4.2模型定义与比较 5.4.3参数微调 5.4.4参数冻结 5.4.5小结 5.5开源模型复用 5.5.1ResNet结构介绍 5.5.2迁移模型构造 5.5.3结果对比 5.5.4小结 5.6多GPU训练 5.6.1训练方式 5.6.2数据并行 5.6.3使用示例 5.6.4小结 5.7数据预处理缓存 5.7.1修饰器介绍 5.7.2修饰器定义 5.7.3定义数据集构造类 5.7.4定义缓存修饰器 5.7.5小结 第6章模型优化方法 6.1学习率调度器 6.1.1使用示例 6.1.2实现原理 6.1.3状态恢复 6.1.4小结 6.2梯度裁剪 6.2.1基于阈值裁剪 6.2.2基于范数裁剪 6.2.3使用示例 6.2.4小结 6.3批归一化 6.3.1批归一化动机 6.3.2批归一化原理 6.3.3批归一化实现 6.3.4小结 6.4层归一化 6.4.1层归一化动机 6.4.2层归一化原理 6.4.3层归一化实现 6.4.4小结 6.5组归一化 6.5.1组归一化动机 6.5.2组归一化原理 6.5.3组归一化实现 6.5.4小结 6.6动量法 6.6.1动量法动机 6.6.2动量法原理 6.6.3使用示例 6.6.4小结 6.7AdaGrad算法 6.7.1AdaGrad动机 6.7.2AdaGrad原理 6.7.3使用示例 6.7.4小结 6.8AdaDelta算法 6.8.1AdaDelta动机 6.8.2AdaDelta原理 6.8.3使用示例 6.8.4小结 6.9Adam算法 6.9.1Adam动机 6.9.2Adam原理 6.9.3使用示例 6.9.4小结 6.10初始化方法 6.10.1初始化动机 6.10.2初始化原理 6.10.3使用示例 6.10.4小结 第7章循环神经网络 7.1RNN 7.1.1RNN动机 7.1.2RNN原理 7.1.3RNN计算示例 7.1.4RNN类型 7.1.5多层RNN 7.1.6RNN示例代码 7.1.7BPTT原理 7.1.8小结 7.2时序数据 7.2.1时序图片 7.2.2基于RNN的图片分类 7.2.3时序文本 7.2.4基于RNN的文本分类 7.2.5小结 7.3LSTM网络 7.3.1LSTM动机 7.3.2LSTM结构 7.3.3LSTM实现 7.3.4LSTM梯度分析 7.3.5小结 7.4GRU网络 7.4.1GRU动机 7.4.2GRU结构 7.4.3GRU实现 7.4.4GRU与LSTM对比 7.4.5类RNN模型 7.4.6小结 7.5BiRNN网络 7.5.1BiRNN动机 7.5.2BiRNN结构 7.5.3BiRNN实现 7.5.4小结 7.6CharRNN网络 7.6.1任务构造原理 7.6.2数据预处理 7.6.3古诗生成任务 7.6.4小结 第8章时序与模型融合 8.1TextCNN 8.1.1TextCNN结构 8.1.2文本分词 8.1.3TextCNN实现 8.1.4小结 8.2TextRNN 8.2.1TextRNN结构 8.2.2TextRNN实现 8.2.3小结 8.3CNNRNN 8.3.1CLSTM结构 8.3.2CLSTM实现 8.3.3BiLSTMCNN结构 8.3.4BiLSTMCNN实现 8.3.5小结 8.4ConvLSTM网络 8.4.1ConvLSTM动机 8.4.2ConvLSTM结构 8.4.3ConvLSTM实现 8.4.4KTH数据集构建 8.4.5KTH动作识别任务 8.4.6小结 8.53DCNN 8.5.13DCNN动机 8.5.23DCNN结构 8.5.33DCNN实现 8.5.4小结 8.6STResNet 8.6.1STResNet动机 8.6.2任务背景 8.6.3STResNet结构 8.6.4数据集构建 8.6.5STResNet实现 8.6.6小结 第9章自然语言处理 9.1自然语言处理介绍 9.1.1语言模型 9.1.2基于规则的语言模型 9.1.3基于统计的语言模型 9.1.4基于神经网络的语言模型 9.1.5小结 9.2Word2Vec词向量 9.2.1Word2Vec动机 9.2.2Word2Vec模型 9.2.3连续词袋模型 9.2.4跳元模型 9.2.5小结 9.3Word2Vec训练与使用 9.3.1近似训练 9.3.2载入预训练词向量 9.3.3可视化与类别计算 9.3.4词向量训练 9.3.5小结 9.4GloVe词向量 9.4.1GloVe动机 9.4.2共现矩阵 9.4.3GloVe原理 9.4.4GloVe词向量使用 9.4.5小结 9.5词向量的微调使用 9.5.1词嵌入层介绍 9.5.2词嵌入层使用 9.5.3多通道TextCNN网络 9.5.4小结 9.6fastText网络 9.6.1fastText动机 9.6.2fastText原理 9.6.3fastText库介绍 9.6.4词向量的使用与训练 9.6.5fastText文本分类 9.6.6小结 9.7Seq2Seq网络 9.7.1Seq2Seq动机 9.7.2Seq2Seq结构 9.7.3搜索策略 9.7.4小结 9.8序列模型评价指标 9.8.1困惑度 9.8.2双语评估辅助 9.8.3小结 9.9NMT网络 9.9.1谷歌翻译简介 9.9.2统计翻译模型弊端 9.9.3NMT数据集构建 9.9.4Seq2Seq实现 9.9.5NMT模型实现 9.9.6NMT推理实现 9.9.7NMT模型训练 9.9.8小结 9.10注意力机制 9.10.1注意力的起源 9.10.2注意力机制思想 9.10.3注意力计算框架 9.10.4填充注意力掩码 9.10.5Bahdanau注意力 9.10.6Luong注意力 9.10.7小结 9.11含注意力的NMT网络 9.11.1含注意力的NMT结构 9.11.2含注意力的NMT实现 9.11.3模型训练 9.11.4小结 9.12含注意力的RNN 9.12.1含注意力的RNN结构 9.12.2含注意力的RNN实现 9.12.3小结 第10章现代神经网络 10.1ELMo网络 10.1.1ELMo动机 10.1.2ELMo结构 10.1.3ELMo实现 10.1.4ELMo迁移 10.1.5小结 10.2Transformer网络 10.2.1Transformer动机 10.2.2自注意力机制 10.2.3多头注意力机制 10.2.4输入编码 10.2.5小结 10.3Transformer结构 10.3.1单层Transformer结构 10.3.2多层Transformer结构 10.3.3多头注意力实现 10.3.4小结 10.4Transformer实现 10.4.1嵌入层实现 10.4.2编码器实现 10.4.3解码器实现 10.4.4Transformer网络实现 10.4.5小结 10.5Transformer对联模型 10.5.1数据预处理 10.5.2网络结构 10.5.3模型训练 10.5.4模型推理 10.5.5小结 10.6BERT网络 10.6.1BERT动机 10.6.2BERT结构 10.6.3BERT输入层 10.6.4预训练任务 10.6.5小结 10.7从零实现BERT 10.7.1工程结构 10.7.2Input Embedding实现 10.7.3BERT网络实现 10.7.4小结 10.8BERT文本分类模型 10.8.1任务构造原理 10.8.2数据预处理 10.8.3加载预训练模型 10.8.4文本分类 10.8.5小结 10.9BERT问题选择模型 10.9.1任务构造原理 10.9.2数据预处理 10.9.3问题选择 10.9.4小结 10.10BERT问题回答模型 10.10.1任务构造原理 10.10.2样本构造与结果筛选 10.10.3数据预处理 10.10.4问题回答 10.10.5小结 10.11BERT命名体识别模型 10.11.1任务构造原理 10.11.2数据预处理 10.11.3命名体识别 10.11.4小结 10.12BERT从零训练 10.12.1构建流程与格式化 10.12.2数据预处理 10.12.3预训练任务实现 10.12.4模型训练与微调 10.12.5小结 10.13GPT1模型 10.13.1GPT1动机 10.13.2GPT1结构 10.13.3GPT1实现 10.13.4小结 10.14GPT2与GPT3模型 10.14.1GPT2动机 10.14.2GPT2结构 10.14.3GPT2使用 10.14.4GPT3结构 10.14.5GPT3的局限性与安全性 10.14.6小结 10.15基于GPT2的中文预训练模型 10.15.1项目介绍 10.15.2生成结果筛选 10.15.3模型推理 10.15.4模型训练 10.15.5小结 10.16InstructGPT与ChatGPT 10.16.1InstructGPT动机 10.16.2人类反馈强化学习 10.16.3InstructGPT原理 10.16.4InstructGPT评估及结果 10.16.5InstructGPT数据集 10.16.6InstructGPT局限性 10.16.7ChatGPT 10.16.8小结 10.17ChatGPT与提示词工程 10.17.1提示词工程 10.17.2提示词的构成 10.17.3简单提示词 10.17.4少样本提示词 10.17.5情境化提示词 10.17.6定制化 10.17.7场景应用 10.17.8ChatGPT的攻击与防御 10.17.9小结 10.18百川大模型使用 10.18.1模型简介 10.18.2项目介绍 10.18.3模型结构 10.18.4模型推理 10.18.5模型微调 10.18.6小结 10.19百川大模型实现 10.19.1解码缓存原理 10.19.2解码层实现 10.19.3语言模型实现 10.19.4模型微调实现 10.19.5模型推理实现 10.19.6模型解码过程 10.19.7小结 10.20GPT4与GPT的使用 10.20.1GPT4介绍 10.20.2GPT4模型的使用 10.20.3GPT介绍 10.20.4小结 参考文献