本书全面地介绍了人工智能的相关内容及其在计算机视觉、自然语言处理中的应用。本书首先讲解Python 编程技术,然后基于Python 对人工智能相关算法进行了实现。在本书中,每个知识点都有与其对应的程序,读者不但可以直接阅读,而且可以通过运行程序获得交互式的学习体验。
本书分为三部分,第一部分介绍Python编程,包括Python基础、Python面向对象和Python高级编程;第二部分介绍机器学习,包括机器学习概述、机器学习?经典算法和机器学习?回归算法;第三部分介绍神经网络,包括从感知机到神经网络、神经网络?反向传播算法、神经网络的训练方法、卷积神经网络和项目实例-表情识别。从模型构造到模型训练,本书全面介绍了人工智能相关内容及人工智能在计算机视觉、自然语言处理中的应用,不仅阐述算法原理,还基于Python语言实现了算法。本书的每个知识点都给出了与之对应的程序,读者不但能直接阅读,而且可以运行程序,以获得交互式的学习体验。本书面向希望了解人工智能,特别是对实际应用人工智能感兴趣的本科生、研究生、工程师和研究人员,可作为高等院校人工智能课程的教材。
本书面向希望了解人工智能,特别是对实际使用人工智能感兴趣的本科生、研究生、工程师和研究人员。本书不要求读者具有任何人工智能的背景知识,将从Python 语法入手,介绍每个程序的实现。虽然人工智能技术涉及很多数学和编程知识,但本书只要求读者了解基础的数学知识(如线性代数、微积分和概率论)及编程知识。
内容和结构
本书的内容大体上可以分为三部分。
第一部分(第1 章~第3 章):Python 编程。主要介绍进行人工智能实践所需的准备工作和Python核心知识。第1 章为Python 基础,介绍Python 开发环境,以及Python 中的变量、运算符、语句和函数等;第2 章为Python 面向对象,介绍如何利用Python 进行面向对象编程;第3 章为Python 高级编程,介绍Python 闭包和装饰器、迭代器、生成器等知识点。
第二部分(第4 章~第6 章):机器学习。机器学习是一个从定义数据开始,到最终获得一定准确率的模型的过程。第二部分介绍机器学习概述、机器学习中的经典算法、机器学习中的回归算法,使读者初步掌握机器学习技术。
第三部分(第7 章~第11 章):神经网络。第7 章介绍从感知机到神经网络,第8、9 章介绍神经网络中的反向传播算法和神经网络的训练方法,第10 章介绍卷积神经网络,第11 章为项目实例?表情识别,使读者通过项目了解人工智能在计算机视觉中的重要应用。
代码
本书的一大特点是每一部分都有示例代码,读者可以下载、修改、运行这些代码,通过运行结果进一步理解算法原理。案例式的学习体验对于学习Python 与人工智能来说非常重要,因为人工智能技术目前并没有很好的理论解释框架,不足以覆盖所有细节。因此,读者需要在学习过程中不断修改代码、观察运行结果并总结经验,从而逐步领悟和掌握人工智能。
本书的代码基于Python 3.8 和PyTorch 框架,使用Numpy、Pandas、Matplotlib 等模块或包的基础功能,以使读者尽可能了解人工智能算法的实现细节。即使读者在研究和工作中使用其他框架,书中的代码也有助于读者更好地理解和应用算法。本书遵循开源的理念,希望得到持续的完善,如果读者想添加更多的内容进来,或者想改进任何内容,那么请慷慨地提交“pull request”,我们将无比高兴地将其合并进来。
目录
第一部分 Python编程
第1章 Python基础 3
1.1 Python简介及开发环境搭建 3
1.1.1 Python的安装 3
1.1.2 集成开发环境 4
1.2 Python变量标识符和关键字 7
1.2.1 变量定义 7
1.2.2 变量的类型 8
1.2.3 变量的命名 11
1.3 Python运算符 13
1.3.1 算术运算符 13
1.3.2 比较(关系)运算符 13
1.3.3 逻辑运算符 14
1.3.4 赋值运算符 14
1.3.5 运算符的优先级 14
1.4 Python分支与循环 15
1.4.1 条件语句 15
1.4.2 循环语句 17
1.4.3 随机数的处理 21
1.5 Python函数 22
1.5.1 函数定义 23
1.5.2 函数的参数 24
1.5.3 函数的返回值 25
1.5.4 函数作用域 26
1.5.5 匿名函数 27
1.5.6 内置函数 28
1.5.7 函数式编程 31
1.5.8 将函数存储在模块中 33
1.5.9 函数文档字符串 35
第2章 Python面向对象 36
2.1 面向对象基本特征 36
2.2 类的定义 37
2.2.1 定义只包含方法的类 37
2.2.2 面向对象程序举例 37
2.3 self参数 37
2.3.1 给对象设置属性 38
2.3.2 理解self参数到底是什么 38
2.4 __init__方法 38
2.5 __str__方法 39
2.6 面向过程和面向对象 40
2.7 私有属性——封装 43
2.8 将实例用作属性-对象组合 43
2.9 类属性、类方法、静态方法 46
2.10 继承 49
2.11 __new__方法 52
2.12 所有Python类型的父类 53
2.13 单例模式 54
2.14 参数注解 54
第3章 Python高级编程 56
3.1 Python闭包和装饰器 56
3.1.1 闭包 56
3.1.2 装饰器 57
3.1.3 被装饰的函数有返回值 60
3.1.4 装饰器带参数 61
3.1.5 多个装饰器装饰同一个函数 62
3.1.6 基于类实现的装饰器 63
3.2 Python可迭代对象、迭代器及生成器 64
3.2.1 可迭代对象 65
3.2.2 迭代器 68
3.2.3 生成器 71
3.3 Python内置方法 78
3.3.1 构造和初始化 78
3.3.2 属性访问控制 79
3.3.3 描述符 79
3.3.4 构造自定义容器(Container) 83
3.3.5 上下文管理器 84
3.3.6 比较运算 87
3.3.7 __str__和__repr__方法 89
3.3.8 内置方法之__call__ 92
第二部分 机器学习
第4章 机器学习概述 95
4.1 机器学习分类 95
4.2 常用的机器学习算法 96
4.3 机器学习的步骤 97
4.3.1 问题定义 97
4.3.2 数据采集 98
4.3.3 数据准备 98
4.3.4 数据分割 99
4.3.5 算法的选择与训练 99
4.3.6 算法的使用 100
第5章 机器学习?经典算法 110
5.1 主成分分析 110
5.1.1 主成分分析简介 110
5.1.2 使用梯度上升法实现主成分分析 113
5.1.3 选取数据的前k个主成分 117
5.1.4 高维数据向低维数据映射 120
5.1.5 使用主成分分析对数据进行降维可视化 125
5.2 K-Means算法 128
5.2.1 K-Means算法原理 129
5.2.2 K-Means程序实例 131
5.2.3 MiniBatch算法 133
5.2.4 K-Means 算法分析 134
5.3 KNN算法 138
5.3.1 KNN算法的原理 138
5.3.2 KNN算法程序实例 138
5.4 梯度下降法 140
5.4.1 一维梯度下降法 140
5.4.2 多维梯度下降法 141
第6章 机器学习?回归算法 144
6.1 线性回归 144
6.1.1 线性回归简介 144
6.1.2 简单线性回归的最小二乘法推导过程 145
6.1.3 衡量线性回归的指标 150
6.1.4 多元线性回归简介 157
6.2 多项式回归 161
6.2.1 多项式回归的概念 161
6.2.2 scikit-learn中的多项式回归和Pipeline 165
6.2.3 过拟合和欠拟合 166
6.2.4 训练数据和测试数据 170
6.2.5 学习曲线 172
6.2.6 交叉验证 175
6.2.7 模型正则化 179
6.2.8 岭回归和 LASSO 回归 179
第三部分 神经网络
第7章 从感知机到神经网络 189
7.1 感知机 189
7.1.1 简单逻辑电路 190
7.1.2 感知机的实现 191
7.1.3 感知机的局限性 193
7.1.4 多层感知机 195
7.2 神经网络 197
7.2.1 神经网络举例 197
7.2.2 感知机知识回顾 197
7.2.3 激活函数初探 198
7.3 激活函数 199
7.3.1 阶跃函数 199
7.3.2 Sigmoid函数 199
7.3.3 阶跃函数的实现 200
7.3.4 Sigmoid函数的实现 201
7.3.5 比较Sigmoid函数和阶跃函数 202
7.3.6 ReLU函数 203
7.4 多维数组的运算 204
7.4.1 多维数组 204
7.4.2 矩阵乘法 205
7.4.3 神经网络乘积 207
7.5 神经网络的实现 208
7.5.1 符号确认 209
7.5.2 各层间信号传递的实现 209
7.5.3 代码实现小结 212
7.6 输出层的设计 213
7.6.1 恒等函数和Softmax函数 213
7.6.2 实现Softmax函数的注意事项 214
7.6.3 Softmax函数的性质 215
7.6.4 输出层的神经元数量 216
7.7 手写数字识别 216
7.7.1 MNIST数据集 216
7.7.2 神经网络的推理处理 218
7.7.3 批处理 220
第8章 神经网络-反向传播算法 222
8.1 计算图 222
8.1.1 用计算图求解 222
8.1.2 局部计算 223
8.1.3 为何用计算图解决问题 224
8.2 链式法则 225
8.2.1 计算图的反向传播 225
8.2.2 链式法则的原理 225
8.2.3 链式法则和计算图 226
8.3 反向传播 227
8.3.1 加法节点的反向传播 227
8.3.2 乘法节点的反向传播 229
8.3.3 “苹果”的例子 230
8.4 简单层的实现 230
8.4.1 乘法层的实现 231
8.4.2 加法层的实现 232
8.5 激活函数层的实现 233
8.5.1 ReLU层的实现 233
8.5.2 Sigmoid层的实现 234
8.6 Affine层和Softmax 层的实现 237
8.6.1 Affine层的实现 237
8.6.2 Softmax层的实现 240
8.7 误差反向传播的实现 242
8.7.1 神经网络的实现步骤 242
8.7.2 误差反向传播的神经网络的实现 242
8.7.3 误差反向传播的梯度确认 245
8.7.4 误差反向传播的神经网络的学习 246
第9章 神经网络的训练方法 247
9.1 参数的更新 247
9.1.1 最优化问题的困难之处 247
9.1.2 随机梯度下降 247
9.1.3 Momentum方法 250
9.1.4 AdaGrad方法 251
9.1.5 Adam方法 253
9.1.6 选择参数更新方法 253
9.2 权重初始值 255
9.2.1 可以将权重初始值设为0吗 255
9.2.2 隐藏层的激活值分布 255
9.2.3 ReLU的权重初始值 258
9.2.4 基于MNIST数据集的不同权重初始值的比较 259
9.3 BatchNormalization算法 260
9.3.1 算法原理 260
9.3.2 算法评估 261
9.4 正则化 263
9.4.1 过拟合 263
9.4.2 权重衰减 264
9.4.3 Dropout方法 265
9.5 超参数的验证 267
9.5.1 验证数据 267
9.5.2 超参数的最优化 268
9.5.3 超参数最优化的实现 269
第10章 卷积神经网络 271
10.1 整体结构 271
10.2 卷积层 272
10.2.1 全连接层存在的问题 272
10.2.2 卷积运算 272
10.2.3 填充 274
10.2.4 步幅 275
10.2.5 3维数据的卷积运算 276
10.2.6 批处理 278
10.3 池化层 279
10.4 卷积层和池化层的实现 281
10.4.1 问题简化 281
10.4.2 卷积层的实现 283
10.4.3 池化层的实现 284
10.5 卷积神经网络的实现 286
10.6 卷积神经网络的可视化 289
10.6.1 卷积层权重的可视化 289
10.6.2 基于分层结构的信息提取 290
10.7 具有代表性的卷积神经网络 291
第11章 项目实例-表情识别 293
11.1 典型的人脸表情识别数据集fer2013 293
11.1.1 fer2013人脸表情数据集简介 293
11.1.2 将表情图片提取出来 294
11.2 加载fer2013数据集 296
11.3 断点续训 298
11.3.1 Checkpoint神经网络模型 298
11.3.2 Checkpoint神经网络模型改进 298
11.3.3 Checkpoint最佳神经网络模型 300
11.3.4 加载Checkpoint神经网络模型 301
11.4 表情识别的PyTorch实现 303
11.4.1 数据整理 303
11.4.2 简单分析 304
11.4.3 数据增强处理 304
11.4.4 模型搭建 305
11.4.5 对比几种模型的训练过程 306
名称 | 作者 | 时间 |
《人工智能实践教程》6、卷积神经网络 | xinmeng_wit | 2024-09-12 |
《人工智能实践教程——从Python入门到机器学习》阅读报告(3) | Aclicee | 2024-09-06 |
《人工智能实践教程——从Python入门到机器学习》阅读分享五:感 ... | cc1989summer | 2024-09-02 |
《人工智能实践教程——从Python入门到机器学习》阅读分享四:回 ... | cc1989summer | 2024-08-27 |
《人工智能实践教程》--神经网络 | dirty | 2024-08-25 |
《人工智能实践教程——从Python入门到机器学习》阅读报告(2) | Aclicee | 2024-08-22 |
《人工智能实践教程》5、神经网络输出层的设计 | xinmeng_wit | 2024-08-20 |
《人工智能实践教程——从Python入门到机器学习》阅读分享三:主 ... | cc1989summer | 2024-08-22 |
《人工智能实践教程》4、激活函数 | xinmeng_wit | 2024-08-17 |
《人工智能实践教程》--机器学习-聚类与线性回归 | dirty | 2024-08-17 |
《人工智能实践教程——从Python入门到机器学习》阅读分享二:面 ... | cc1989summer | 2024-08-14 |
《人工智能实践教程》3、神经网络 | xinmeng_wit | 2024-08-14 |
《人工智能实践教程》2、感知机 | xinmeng_wit | 2024-08-13 |
《人工智能实践教程——从Python入门到机器学习》之运算符与循环 | lijinlei | 2024-08-11 |
《人工智能实践教程——从Python入门到机器学习》阅读报告(1) | Aclicee | 2024-08-07 |
《人工智能实践教程——从Python入门到机器学习》变量章节的学习 ... | lijinlei | 2024-08-07 |
《人工智能实践教程——从Python入门到机器学习》阅读分享一 | cc1989summer | 2024-08-05 |
《人工智能实践教程》1、主成分分析(PCA) | xinmeng_wit | 2024-08-04 |
《人工智能实践教程》--Python编程 | dirty | 2024-07-28 |
《人工智能实践教程 从Python入门到机器学习》阅读分享 | lijinlei | 2024-07-28 |
赞助厂商
电子工业出版社成立于1982年10月,工业和信息化部直属的科技与教育出版社,享有“全国优秀出版社”、“讲信誉、重服务”的优秀出版社、“全国版权贸易先进单位”、首届中国出版政府奖“先进出版单位”、“全国百佳图书出版单位”、“中央国家机关文明单位”和“首都文明单位”等荣誉称号。
电子工业出版社始终秉承“为客户提供一流的知识产品及服务”的宗旨和“出精品、育品牌”的理念。形成了以图书、期刊、音像和电子出版为基本业务,以数字出版和信息内容服务、软件研发和信息化服务、教育培训与相关服务、产业促进与行业支撑服务等为增值业务的现代出版与知识服务业务结构。出版物内容涵盖了信息通信技术的各个分支以及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。
最新测评
热门测评心得
联系我们
微信号:helloeeworld
关注我们
电子工程世界 电子工程世界福利社