编辑推荐 "学习思路,理论先行:构建了很好系统化的理论知识体系,助力读者透彻理解深度学习的基础知识。 学习原理,思维先行:学习一种新的方法、新的算法时,先从本质上剖析其来源,分析提出这种新方法的思维是什么。 抽丝剥茧、深挖本质:透过其烦杂的表面,深挖其本质。 纵向学习、横向比较:详细讲解深度学习作为语言模型中很有用的一种技巧,如何在很多方法中被借鉴和使用。 实践有章可循,拒绝举轻若重:本书将实践分为原理实践和应用实践。原理实践注重案例与原理的呼应,增强对于原理的理解和认识;代码实践增加不同场景下的实践技能,提高Python实践水平。" 内容推荐 本书深入浅出地讲解深度学习,对复杂的概念深挖其本质,让其简单化;对简单的概念深挖其联系,使其丰富化。从理论知识到实战项目,内容翔实。 本书分为两篇,基础篇主要讲解深度学习的理论知识,实战篇是代码实践及应用。基础篇(~13章)包括由传统机器学习到深度学习的过渡、图像分类的数据驱动方法、Softmax损失函数、优化方法与梯度、卷积神经网络的各种概念、卷积过程、卷积神经网络各种训练技巧、梯度反传、各种卷积网络架构、递归神经网络和序列模型、基于深度学习的语言模型、生成模型、生成对抗网络等内容;实战篇(4~19章)包括应用卷积神经网络进行图像分类、各种网络架构、网络各层可视化、猫狗图像识别、文本分类、GAN图像生成等。 本书适合人工智能专业的本科生、研究生,想转型人工智能的IT从业者,以及想从零开始了解并掌握深度学习的读者阅读。 目录 基础篇 章什么是深度学习 1.1通过应用示例直观理解深度学习 1.23个视角解释深度学习 1.2.1分层组合性 1.2.2端到端学习 1.2.3分布式表示 1.3深度学习面临的挑战 1.3.1深度学习的工作机制 1.3.2非凸的问题 1.3.3可解释性的问题 第2章图像识别及KNN算法 2.1图像分类 2.2误差分解和KNN算法 2.2.1误差分解 2.2.2KNN算法运行过程 第3章线性分类器 3.1线性分类器用于图像分类的3个观点 3.1.1线性分类的代数观点 3.1.2线性分类的视觉观点 3.1.3线性分类的几何观点 3.2合页损失函数原理推导及图像分类举例 3.2.1合页损失函数的概念 3.2.2多分类合页损失函数的推导 3.3Softmax损失函数与多分类SVM损失函数的比较 3.3.1Softmax分类与损失函数 3.3.2Softmax损失函数与合页损失函数的比较 第4章优化与梯度 4.1梯度下降法工作原理及3种普通梯度下降法 4.1.1梯度下降的概念 4.1.2梯度下降法求解目标函数 4.1.3学习率的重要性 4.1.43种梯度下降法 4.2动量SGD和Nesterov加速梯度法 4.2.1SGD存在的问题 4.2.2动量法 4.2.3Nesterov加速梯度法 4.3自适应学习速率优化方法 4.3.1指数加权平均值处理数字序列 4.3.2自适应学习速率AdaGrad方法 4.3.3自适应学习速率RMSProp方法 4.3.4自适应学习速率Adadelta方法 4.4强优化方法Adam 4.4.1为什么Adam性能如此卓越 4.4.2偏差矫正 4.4.3如何矫正偏差 第5章卷积神经网络 5.1卷积核 5.1.1卷积核简介 5.1.2卷积核的作用 5.2卷积神经网络中步长、填充和通道的概念 5.2.1步长 5.2.2填充 5.2.3通道 5.3快速推导卷积层特征图尺寸计算公式 5.3.1计算过程直观展示 5.3.2计算过程总结 5.4极简方法实现卷积层的误差反传 5.4.1误差反传举例说明 5.4.2完全卷积过程简介 5.4.3把卷积过程写成神经网络形式 5.4.4应用计算图的反向模式微分 5.5极池化层的本质思想及其过程 5.5.1池化层的分类 5.5.2池化后图像尺寸 第6章卷积神经网络训练技巧 6.1ReLU激活函数的优势 6.1.1为什么需要激活函数 6.1.2主流激活函数介绍 6.2内部协变量偏移 6.3批归一化 6.3.1为什么需要批归一化 6.3.2批归一化的工作原理 6.3.3批归一化的优势 6.4Dropout正则化及其集成方法思想 6.4.1特征共适应性 6.4.2Dropout正则化思想 6.4.3Dropout集成思想 6.4.4预测时需要恢复Dropout的随机性 第7章卷积神经网络架构 7.1掀起深度学习风暴的AlexNet网络架构 7.1.1卷积神经网络的开端LeNet 7.1.2AlexNet架构 7.2神经网络感受野及其计算 7.2.1生物学中的感受野 7.2.2CNN中的感受野 7.3VGGNet网络结构相比较AlexNet的优势 7.3.1VGGNet简介 7.3.2VGGNet与AlexNet网络结构对比 7.4GoogLeNet 1×1卷积核的深刻意义及其作用 7.4.1深度神经网络的缺陷 7.4.2多通道卷积中特征图映射太多的问题 7.4.31×1卷积核卷积过程 7.5GoogLeNet初始模块设计指导思想 7.5.1赫布学习规则 7.5.2人工神经网络中的赫布学习规则 7.6透彻理解GoogLeNet全景架构 7.7ResNet关键结构恒等映射背后的思想及原理 7.8全面理解ResNet全景架构 第8章循环神经网络 8.1为什么要用递归神经网络 8.1.1为什么需要递归神经网络 8.1.2RNN结构以及应用 8.2RNN计算图 8.3RNN前向与反向传播 8.3.1前馈深度 8.3.2循环深度 8.3.3通过时间反向传播 8.3.4两个和的反向传播 8.3.5梯度消失和梯度爆炸 8.4长短期记忆(LSTM)及其变种的原理 8.4.1LSTM网络架构 8.4.2LSTM变体一 8.4.3LSTM变体二 8.4.4LSTM变体三 第9章基于深度学习的语言模型 9.1词的各种向量表示 9.2通过词向量度量词的相似性 9.3潜在语义分析LSA 9.3.1潜在语义分析的过程 9.3.2潜在语义分析的SVD分解 9.4Word2Vec词嵌入原理 9.4.1Word2Vec的指导思想 9.4.2skipgram算法的框架 9.4.3skipgram算法的输入训练集 9.4.4skipgram算法的目标函数 9.4.5skipgram网络中的两个权重矩阵 9.5GloVe词向量模型 9.5.1由单词共同出现的次数到共同出现的概率 9.5.2GloVe模型目标函数的推导 9.6从onehot向量到seq2seq序列模型 9.7编码器解码器模型 9.8为什么要用注意力机制 9.8.1大脑中的注意力 9.8.2为什么要使用注意力机制 9.9注意力机制的数学原理 0章深度学习NLP应用进阶 10.1注意力机制的应用指针网络 10.2递归神经网络是否是必要的 10.2.1递归神经网络存在的问题 10.2.2前馈网络的优势 10.2.3如何替代递归神经网络 10.3Transformer的数学原理 10.3.1什么是Transformer 10.3.2Transformer结构的形象展示 10.3.3什么是自我注意力 10.3.4多头自我注意力 10.4Transformer的3个矩阵K、V、Q 10.5Transformer的位置编码原理 10.5.1位置编码的向量计算 10.5.2位置编码的表示 10.6Transformer的全景架构 10.7深度语境化词语表示ELMo 10.7.1为什么需要语境情景化的表示 10.7.2ELMo的算法构成 10.7.3ELMo整体框架 10.7.4ELMo的应用 10.7.5ELMo算法的效果 10.8NLP里程碑模型BERT三大集成创新 10.8.1双向上下文遮蔽语言模型 10.8.2使用Transformer 10.8.3迁移学习 10.8.4应用于特定任务 1章深度生成模型 11.1监督学习与无监督学习的比较 11.1.1监督学习 11.1.2无监督学习 11.2为什么要用生成模型 11.2.1分类 11.2.2生成模型应用实例 11.3自编码 11.4从概率视角理解VAE建模过程 11.5KL散度 11.6VAE损失函数推导 11.7用深度神经网络求解VAE目标函数 2章生成对抗网络 12.1GAN目标函数 12.2通过博弈论理解GAN原理 12.3由JS散度推导GAN判别器和生成器值 12.4深度卷积生成对抗网络(DCGAN) 12.4.1DCGAN使用的方法 12.4.2DCGAN中的生成器 12.4.3DCGAN对抗训练的细节 12.5条件生成对抗网络 12.5.1CGAN的网络结构 12.5.2CGAN的数学原理 12.5.3生成器和判别器的目标损失函数 3章生成对抗网络的创新及应用 13.1图像到图像的翻译 13.1.1CNN可否预测图像 13.1.2CGAN的具体应用: 以不同形态的图像为条件 13.1.3CGAN结构上的两大创新 13.1.4图像到图像翻译的应用场景 13.2循环生成对抗网络 13.3CycleGAN对抗性损失和循环一致性原理 13.4从条件熵的视角剖析CycleGAN 13.5CycleGAN实验结果 13.6超分辨率生成对抗网络(SRGAN) 13.7SRGAN的网络架构 13.8叠加生成对抗网络 13.9StackGAN中的条件增强 13.10渐进式增长生成对抗网络 13.11StyleGAN中的自适应实例规范化 13.12StyleGAN中删除传统输入与随机变化 13.13为什么GAN很难训练 13.14GAN中梯度消失与梯度不稳定 13.15Wasserstein距离 13.16为什么Wasserstein距离比KL、JS散度更有利于训练GAN 实战篇 4章PyTorch入门 14.1PyTorch介绍及张量 14.1.1PyTorch及其特定优势 14.1.2PyTorch安装 14.1.3张量 14.2PyTorch动态图、自动梯度、梯度反传 14.3使用PyTorch的nn包构建卷积神经网络 5章手写数字识别 15.1手写数字识别的解决方案 15.1.1手写数字识别的研究意义与背景 15.1.2手写数字识别的项目挑战 15.1.3手写数字识别的项目原理与解决方案 15.2搭建多层全连接神经网络实现MNIST手写数字识别 15.2.1由浅入深搭建3层全连接网络 15.2.2MNIST训练集和测试集载入 15.2.3模型训练与评估 15.3基于卷积神经网络的MNIST手写数字识别 15.3.1卷积神经网络基本解读 15.3.2搭建一个卷积神经网络 6章基于PyTorch的卷积神经网络可视化理解 16.1问题背景 16.2卷积神经网络 16.2.1比较多层感知机和卷积神经网络 16.2.2神经元的感知野 16.3计算机如何查看输入的图像 16.4构建过滤器 16.5完整的卷积神经网络结构 16.6可视化一个简单的卷积神经网络 16.7使用预训练的AlexNet进行各层卷积可视化 16.7.1输入图片可视化 16.7.2可视化过滤器——多通道 16.7.3可视化过滤器——单通道 16.8图像遮挡实验 16.9总结 7章基于Keras实现Kaggle猫狗大战 17.1猫狗大战背景介绍 17.2Keras介绍及安装配置 17.2.1什么是Keras 17.2.2安装TensorFlow 17.2.3安装Keras 17.3基于卷积神经网络的猫狗大战 17.3.1构建个网络 17.3.2增加丢弃 17.3.3增加数据增强 17.4基于迁移学习的猫狗大战 17.4.1VGG16简介 17.4.2使用VGG16预测图像包含什么内容 17.4.3训练猫狗大战分类器 17.4.4转移学习/微调模型 8章基于PyTorch实现一个DCGAN案例 18.1介绍 18.2生成对抗网络 18.2.1什么是GAN 18.2.2什么是DCGAN 18.2.3输入 18.2.4数据 18.2.5实现 18.2.6结果 18.2.7未来 9章从零出发实现基于RNN的3个应用 19.1RNN网络结构及原理 19.2使用字符级RNN对姓名进行分类 19.2.1准备数据注意 19.2.2将姓名转换为张量 19.2.3创建网络 19.2.4训练 19.3使用字符级RNN生成名称 19.3.1准备数据 19.3.2构建网络 19.3.3训练 19.3.4绘制损失 19.3.5网络采样 19.4使用序列到序列的网络和注意机制完成翻译 19.4.1加载数据文件 19.4.2seq2seq模型 19.4.3训练 19.4.4绘图结果 19.4.5评估 19.4.6训练与评估 19.4.7可视化注意机制 参考文献 |