新書推薦:
《
利他主义的生意:偏爱“非理性”的市场(英国《金融时报》推荐读物!)
》
售價:NT$
352.0
《
认知行为疗法:心理咨询的顶层设计
》
售價:NT$
454.0
《
FANUC工业机器人装调与维修
》
售價:NT$
454.0
《
吕著中国通史
》
售價:NT$
286.0
《
爱琴海的光芒 : 千年古希腊文明
》
售價:NT$
908.0
《
不被他人左右:基于阿德勒心理学的无压力工作法
》
售價:NT$
301.0
《
SDGSAT-1卫星热红外影像图集
》
售價:NT$
2030.0
《
股市趋势技术分析(原书第11版)
》
售價:NT$
1010.0
|
編輯推薦: |
本书是一本深入浅出的深度学习入门指南,旨在帮助读者快速入门深度学习。本书从Python的基础开始,逐步引导读者步入机器学习和深度学习的世界。为了确保每个知识点都能被充分理解和掌握,本书提供了详细的示例代码供读者调试运行,以期更好地理解算法,同时也提供配套PPT和源码下载供读者参考,通过阅读调试这些代码可以更好地理解算法原理,并加深对知识的理解。
|
內容簡介: |
本书从Python基础入手,循序渐进地讲到机器学习、深度学习等领域的算法原理和代码实现,在学习算法理论的同时也强调了代码工程能力的逐步提高。
本书共6个章,第1章从零基础介绍Python基础语法、Python数据处理库NumPy、Pandas、Matplotlib、OpenCV的使用;第2章主要介绍机器学习算法的原理并配有代码实例,方便在理解原理的同时也能写出代码;第3章主要介绍深度学习框架TensorFlow、Keras、PyTorch的API和网络模型的搭建方法,力保读者能够掌握主流深度学习框架的使用;第4章主要介绍CNN卷积神经网络各种卷积的特性,并同时代码实战了多个经典分类网络;第5章介绍目标检测领域中多个经典算法的原理,并配套展现了代码调试的过程,将算法原理与代码进行了结合,方便更深入地理解算法原理;第6章分享深度学习项目的分析和实现过程。
本书精心设计的算法原理讲解、代码实现,不仅适合对深度学习感兴趣的初学者,同时对高校学生、教师、相关技术人员、研究人员及从事深度学习工程师都有参考价值。
|
關於作者: |
文青山,项目经理,从事IoT、人工智能等领域的质量管理和研发工作十余年,拥有丰富的研发及团队管理经验,曾主导过CMMI3及ISO 9001质量体系认证,曾供职比亚迪、国泰安、随手科技等公司,在深度学习工程实战、软件质量管理、软件研发管理等领域拥有丰富的经验。
|
目錄:
|
教学课件(PPT)
本书源码
第1章Python编程基础
1.1环境搭建
1.2基础数据类型
1.2.1数值型
1.2.2字符串
1.2.3元组
1.2.4列表
1.2.5字典
1.2.6集合
1.2.7数据类型的转换
1.3条件语句
1.4循环语句
1.5函数
1.6类
1.7文件处理
1.8异常处理
1.9模块与包
1.10包的管理
1.11NumPy简介
1.11.1NDArray的创建
1.11.2NDArray索引与切片
1.11.3NDArray常用运算函数
1.11.4NDArray广播机制
1.12Pandas简介
1.12.1Pandas对象的创建
1.12.2Pandas的索引与切片
1.12.3Pandas常用统计函数
1.12.4Pandas文件操作
1.13Matplotlib简介
1.13.1Matplotlib基本使用流程
1.13.2Matplotlib绘直方图、饼图等
1.13.3Matplotlib绘三维图像
1.14OpenCV简介
1.14.1图片的读取和存储
1.14.2画矩形、圆形等
1.14.3在图中增加文字
1.14.4读取视频或摄像头中的图像
第2章机器学习基础
2.1HelloWorld之KNN算法
2.1.1KNN算法原理
2.1.2KNN算法代码实现
2.2梯度下降
2.2.1什么是梯度下降
2.2.2梯度下降的代码实现
2.2.3SGD、BGD和MBGD
2.2.4Momentum优化算法
2.2.5NAG优化算法
2.2.6AdaGrad优化算法
2.2.7RMSProp优化算法
2.2.8AdaDelta优化算法
2.2.9Adam优化算法
2.2.10学习率的衰减
2.3线性回归
2.3.1梯度下降求解线性回归
2.3.2梯度下降求解多元线性回归
2.4逻辑回归
2.4.1最大似然估计
2.4.2梯度下降求解逻辑回归
2.5聚类算法
2.6神经网络
2.6.1什么是神经网络
2.6.2反向传播算法
2.6.3Softmax反向传播
2.7欠拟合与过拟合
2.8正则化
2.9梯度消失与梯度爆炸
第3章深度学习框架
3.1基本概念
3.2环境搭建
3.3TensorFlow基础函数
3.3.1TensorFlow初始类型
3.3.2TensorFlow指定设备
3.3.3TensorFlow数学运算
3.3.4TensorFlow维度变化
3.3.5TensorFlow切片取值
3.3.6TensorFlow中gather取值
3.3.7TensorFlow中布尔取值
3.3.8TensorFlow张量合并
3.3.9TensorFlow网格坐标
3.3.10TensorFlow自动求梯度
3.4TensorFlow中的Keras模型搭建
3.4.1tf.keras简介
3.4.2基于tf.keras.Sequential模型搭建
3.4.3继承tf.keras.Model类模型搭建
3.4.4函数式模型搭建
3.5TensorFlow中模型的训练方法
3.5.1使用model.fit训练模型
3.5.2使用model.train_on_batch训练模型
3.5.3自定义模型训练
3.6TensorFlow中Metrics评价指标
3.6.1准确率
3.6.2精确率
3.6.3召回率
3.6.4PR曲线
3.6.5F1Score
3.6.6ROC曲线
3.6.7AUC曲线
3.6.8混淆矩阵
3.7TensorFlow中的推理预测
3.8PyTorch搭建神经网络
3.8.1PyTorch中将数据转换为张量
3.8.2PyTorch指定设备
3.8.3PyTorch数学运算
3.8.4PyTorch维度变化
3.8.5PyTorch切片取值
3.8.6PyTorch中gather取值
3.8.7PyTorch中布尔取值
3.8.8PyTorch张量合并
3.8.9PyTorch模型搭建
3.8.10PyTorch模型自定义训练
3.8.11PyTorch调用Keras训练
3.8.12PyTorch调用TorchMetrics评价指标
3.8.13PyTorch中推理预测
第4章卷积神经网络
4.1卷积
4.1.1为什么用卷积
4.1.2单通道卷积计算
4.1.3多通道卷积计算
4.1.4卷积padding和valid
4.1.5感受野
4.1.6卷积程序计算过程
4.2池化
4.3卷积神经网络的组成要素
4.4常见卷积分类
4.4.1分组卷积
4.4.2逐点卷积
4.4.3深度可分离卷积
4.4.4空间可分离卷积
4.4.5空洞卷积
4.4.6转置卷积
4.4.7可变形卷积
4.5卷积神经网络LeNet5
4.5.1模型介绍
4.5.2代码实战
4.6深度卷积神经网络AlexNet
4.6.1模型介绍
4.6.2代码实战
4.7使用重复元素的网络VGG
4.7.1模型介绍
4.7.2代码实战
4.8合并连接网络GoogLeNet
4.8.1模型介绍
4.8.2代码实战
4.9残差网络ResNet
4.9.1残差块
4.9.2归一化
4.9.3模型介绍
4.9.4代码实战
4.10轻量级网络MobiLeNet
4.10.1模型介绍
4.10.2注意力机制
4.10.3代码实战
4.11轻量级网络ShuffLeNet
4.11.1模型介绍
4.11.2代码实战
4.12重参数网络RepVGGNet
4.12.1模型介绍
4.12.2代码实战
第5章目标检测
5.1标签处理及代码
5.2开山之作RCNN
5.2.1模型介绍
5.2.2代码实战选择区域搜索
5.2.3代码实战正负样本选择
5.2.4代码实战特征提取
5.2.5代码实战SVM分类训练
5.2.6代码实战边界框回归训练
5.2.7代码实战预测推理
5.3两阶段网络Faster RCNN
5.3.1模型介绍
5.3.2代码实战RPN、ROI模型搭建
5.3.3代码实战RPN损失函数及训练
5.3.4代码实战ROI损失函数及训练
5.3.5代码实战预测推理
5.4单阶段多尺度检测网络SSD
5.4.1模型介绍
5.4.2代码实战模型搭建
5.4.3代码实战建议框的生成
5.4.4代码实战损失函数的构建及训练
5.4.5代码实战预测推理
5.5单阶段速度快的检测网络YOLOv1
5.5.1模型介绍
5.5.2代码实战模型搭建
5.5.3无建议框时标注框编码
5.5.4代码实现损失函数的构建及训练
5.5.5代码实战预测推理
5.6单阶段速度快的检测网络YOLOv2
5.6.1模型介绍
5.6.2代码实战模型搭建
5.6.3代码实战聚类得到建议框宽和高
5.6.4代码实战建议框的生成
5.6.5代码实现损失函数的构建及训练
5.6.6代码实战预测推理
5.7单阶段速度快多检测头网络YOLOv3
5.7.1模型介绍
5.7.2代码实战模型搭建
5.7.3代码实战建议框的生成
5.7.4代码实现损失函数的构建及训练
5.7.5代码实战预测推理
5.8单阶段速度快多检测头网络YOLOv4
5.8.1模型介绍
5.8.2代码实战模型搭建
5.8.3代码实战建议框的生成
5.8.4代码实现损失函数的构建及训练
5.8.5代码实战预测推理
5.9单阶段速度快多检测头网络YOLOv5
5.9.1模型介绍
5.9.2代码实战模型搭建
5.9.3代码实战建议框的生成
5.9.4代码实现损失函数的构建及训练
5.9.5代码实战预测推理
5.10单阶段速度快多检测头网络YOLOv7
5.10.1模型介绍
5.10.2代码实战模型搭建
5.10.3代码实战建议框的生成
5.10.4代码实现损失函数的构建及训练
5.10.5代码实战预测推理
5.11数据增强
5.11.1数据增强的作用
5.11.2代码实现CutOut数据增强
5.11.3代码实现MixUp数据增强
5.11.4代码实现随机复制Label数据增强
5.11.5代码实现Mosic数据增强
第6章项目实战
6.1计算机视觉项目的工作流程
6.2条形码项目实战
6.2.1项目背景分析
6.2.2整体技术方案
6.2.3数据分布分析
6.2.4参数设置
6.2.5训练结果分析
6.2.6OpenCV DNN实现推理
参考文献
|
內容試閱:
|
如何学习深度学习呢?
针对这个问题也许每个人都有不同的观点,本书编排的目录也就是笔者的学习过程。
大概是在2022年的某一天,很偶然接触到这个领域,刚开始时没有什么信心,不知自己能否入门,因为对这个领域十分陌生,听起来也非常高端,随便翻翻书,密密麻麻的数学公式看得人头晕眼花,一筹莫展。
本着复杂的知识如果工作需要,则一定要搞懂的心态,立志后坚定地开始了密集的学习,学习的过程是有点忙碌的,每天研究原理和看代码直到深夜,周末也没有休息时间。好在经过一个多月的努力,原来复杂的原理似乎懂了一些,根据原理看开源的代码也没有那么痛苦了,也可以根据工作需要修改开源的代码实现某些功能,虽然还有一点云里雾里的感觉,但至少已经迈出了重要的一步。
赶巧2022年年底在家被闭关半个月。闲着无聊突发奇想重写一些经典模型的代码,以加深对于经典算法的理解,于是完成了本书大部分代码的主体。
然后又在机缘巧合之下跟清华大学出版社的编辑加上了好友,聊着聊着就讨论到了如何学习深度学习,如何用最短的时间入门深度学习,后来也就有了写本书的想法。
因为定位零基础入门,所以从Python基础知识入手并逐步深入机器学习、卷积神经网络、目标检测等经典算法。为了更好地理解这些知识,并在学习过程中逐步提高代码编写能力,本书没有调用知名第三方库实现算法或直接解析开源代码,这是因为第三方库和开源代码往往将细节隐藏得很好,不利于初学者掌握基本原理及代码实现的技巧。本书中的每个例子的每行代码都经过测试,很有参考意义。
至于阅读本书是否需要很强的数学背景,个人感觉读者只要会求导就行。本书涉及的数学知识有些看起来不够“严谨”,因为基本上对复杂的数学公式已经通过数值代入进行了“破坏性”计算,有着很详细的步骤,这样做的目的是使读者更好地理解背后的原理。在编程的世界里,复杂的数学公式很多时候就是一个Python函数。作为应用方,个人觉得怎么算、严不严谨,不是很重要的,重要的是理解它背后做了什么事,以及意义是什么。
本书主要内容
第1章从零基础介绍Python基础语法、Python数据处理库NumPy、Pandas、Matplotlib、OpenCV的使用。
第2章主要介绍机器学习算法的原理并配有代码实例,方便在理解原理的同时也能写出代码。
第3章主要介绍深度学习框架TensorFlow、Keras、PyTorch的API和网络模型的搭建方法,力保读者能够掌握主流深度学习框架的使用。
第4章主要介绍卷积神经网络各种卷积的特性,并通过代码实现了多个经典分类网络。
第5章主要介绍目标检测领域中的多个经典算法的原理,并配套展现了代码调试的过程,将算法原理与代码进行结合,方便读者更深入地理解算法原理。
第6章主要分享深度学习项目的分析和实现过程。
阅读建议
本书是一本深入浅出的深度学习入门指南,旨在帮助读者快速入门深度学习,所以本书从Python的基础开始讲解,逐步引导读者步入机器学习和深度学习的世界。为了确保每个知识点都能被充分理解和掌握,本书也提供了详细的示例代码供读者调试运行,以期更好地理解算法,同时也提供了配套PPT和源码供读者参考,通过阅读及调试这些代码可以更好地理解算法原理,并加深对知识的理解。扫描目录上方二维码,可获取本书配套资源。
以下是一些阅读建议。
(1) 全面理解: 从第1章开始,确保对Python的基础语法和数据处理库有足够的了解,这是学习后续章节的基础。
(2) 理论与实践并重: 第2章深入讲解机器学习算法的原理,并通过配套的代码实例进行练习,帮助读者更好地掌握这些概念。
(3) 熟悉深度学习框架: 第3章介绍TensorFlow、Keras和PyTorch等深度学习框架的API和模型搭建的方法,这些库的应用是构建深度学习代码的关键工具。
(4) 深化CNN知识: 第4章深入讲解卷积神经网络的各种特性,并通过实战项目来进一步理解分类网络的工作原理。
(5) 目标检测的应用: 第5章详细描述目标检测领域经典算法的原理,以及算法原理关键的实现代码,尝试理解并调试这些代码,可以加深对于算法的理解与应用。
(6) 项目分析与实现: 第6章讲解如何分析和实施深度学习项目,这将帮助读者将前面所学的知识应用于实际业务场景。
(7) 定期复习: 定期回顾之前的学习内容是非常重要的。可以创建一个学习计划,包括定期复习和实践编程任务。也可参考每节的总结和练习任务。
(8) 扩展阅读: 如果可能,则可以利用其他资源(如书籍、在线课程和博客文章)来补充本书的内容,以获得更丰富的视角和深入的见解。
无论你是初学者还是有一定基础的学习者都可以通过阅读本书,并结合本书提供的学习路线、代码资源等更好地提升自己。
致谢
感谢清华大学出版社赵佳霓编辑的耐心和支持!感谢我的家人,尤其是我的爱人祁超超女士在本书写作过程中的支持和鼓励!
由于时间仓促,书中难免存在不妥之处,请读者见谅并指正。
文青山
2024年6月
|
|