| 作者 |
| [印度] 桑塔努·帕塔纳亚克(Santanu Pattanayak)王天庆 |
| 丛书名 |
| 智能系统与技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9781911191517 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------Python人工智能项目实战--------------------------- 通过结合深度学习和强化学习,帮助你构建智能而且实用的人工智能系统。本书涉及的项目涵盖众多领域,例如医疗健康、电子商务、专家系统、智能安防、移动应用和自动驾驶,使用的技术包括卷积神经网络、深度强化学习、基于LSTM的RNN、受限玻尔兹曼机、生成对抗网络、机器翻译和迁移学习。本书有关构建智能应用的理论知识将帮助读者使用有趣的方法来拓展项目,令其快速创建有影响力的AI应用。读完本书之后,你将有足够的能力建立自己的智能模型,轻松地解决来自任何领域的问题。 ---------------------------Python人脸识别:从入门到工程实践--------------------------- 内容简介 这是一本面向初学者的人脸识别工具书,不仅适合零基础的读者快速入门,而且适合有一定基础的读者迅速达到可以进行工程实践的水平。 作者就职于某世界100强企业,在人脸识别方面积累了丰富的工程实践经验,本书不仅详细介绍了机器学习、深度学习、计算机视觉、人脸识别等方面的原理、技术和算法,而且还通过相关的实战案例讲解了如何进行人脸识别方面的实践,以及如何将做好的模型用于工程实践中。同时,本书还提供了大量简洁、精炼的代码,能帮助读者从零开始实现一个工程级别的人脸识别引擎。 全书一共8章: 第1章介绍了人脸识别的基础和必备常识; 第2-4章详细讲解了与人脸识别相关的数学、机器学习、计算机视觉、OpenCV相关的基础和算法; 第5章讲解了深度学习的原理以及使用Keras实现深度学习模型的方法; 第6章介绍了常用的人脸识别算法; . 第7~8章详细讲解了人脸识别引擎的实现方法以及如何将做好的模型进行工程化。 |
| 目录 |
---------------------------Python人工智能项目实战--------------------------- 译者序 前言 作者简介 审校者简介 第1章 人工智能系统基础知识 1 1.1 神经网络 2 1.2 神经激活单元 5 1.2.1 线性激活单元 5 1.2.2 sigmoid激活单元 6 1.2.3 双曲正切激活函数 6 1.2.4 修正线性单元 7 1.2.5 softmax激活单元 9 1.3 用反向传播算法训练神经网络 9 1.4 卷积神经网络 12 1.5 循环神经网络 13 1.6 生成对抗网络 16 1.7 强化学习 18 1.7.1 Q学习 19 1.7.2 深度Q学习 20 1.8 迁移学习 21 1.9 受限玻尔兹曼机 22 1.10 自编码器 23 1.11 总结 24 第2章 迁移学习 26 2.1 技术要求 26 2.2 迁移学习简介 27 2.3 迁移学习和糖尿病视网膜病变检测 28 2.4 糖尿病视网膜病变数据集 29 2.5 定义损失函数 30 2.6 考虑类别不平衡问题 31 2.7 预处理图像 32 2.8 使用仿射变换生成额外数据 33 2.8.1 旋转 34 2.8.2 平移 34 2.8.3 缩放 35 2.8.4 反射 35 2.8.5 通过仿射变换生成额外的图像 36 2.9 网络架构 36 2.9.1 VGG16迁移学习网络 38 2.9.2 InceptionV3迁移学习网络 39 2.9.3 ResNet50迁移学习网络 39 2.10 优化器和初始学习率 40 2.11 交叉验证 40 2.12 基于验证对数损失的模型检查点 40 2.13 训练过程的Python实现 41 2.14 类别分类结果 50 2.15 在测试期间进行推断 50 2.16 使用回归而非类别分类 52 2.17 使用keras sequential工具类生成器 53 2.18 总结 57 第3章 神经机器翻译 58 3.1 技术要求 59 3.2 基于规则的机器翻译 59 3.2.1 分析阶段 59 3.2.2 词汇转换阶段 60 3.2.3 生成阶段 60 3.3 统计机器学习系统 60 3.3.1 语言模型 61 3.3.2 翻译模型 63 3.4 神经机器翻译 65 3.4.1 编码器–解码器模型 65 3.4.2 使用编码器–解码器模型进行推断 66 3.5 实现序列到序列的神经机器翻译 67 3.5.1 处理输入数据 67 3.5.2 定义神经翻译机器的模型 71 3.5.3 神经翻译机器的损失函数 73 3.5.4 训练模型 73 3.5.5 构建推断模型 74 3.5.6 单词向量嵌入 78 3.5.7 嵌入层 79 3.5.8 实现基于嵌入的NMT 79 3.6 总结 84 第4章 基于GAN的时尚风格迁移 85 4.1 技术要求 85 4.2 DiscoGAN 86 4.3 CycleGAN 88 4.4 学习从手绘轮廓生成自然手提包 89 4.5 预处理图像 89 4.6 DiscoGAN的生成器 91 4.7 DiscoGAN的判别器 93 4.8 构建网络和定义损失函数 94 4.9 构建训练过程 97 4.10 GAN训练中的重要参数值 99 4.11 启动训练 100 4.12 监督生成器和判别器的损失 101 4.13 DiscoGAN生成的样例图像 103 4.14 总结 104 第5章 视频字幕应用 105 5.1 技术要求 105 5.2 视频字幕中的CNN和LSTM 106 5.3 基于序列到序列的视频字幕系统 107 5.4 视频字幕系统数据集 109 5.5 处理视频图像以创建CNN特征 110 5.6 处理视频的带标签字幕 113 5.7 构建训练集和测试集 114 5.8 构建模型 115 5.8.1 定义模型的变量 116 5.8.2 编码阶段 117 5.8.3 解码阶段 117 5.8.4 计算小批量损失 118 5.9 为字幕创建单词词汇表 118 5.10 训练模型 119 5.11 训练结果 123 5.12 对未见过的视频进行推断 124 5.12.1 推断函数 126 5.12.2 评估结果 127 5.13 总结 128 第6章 智能推荐系统 129 6.1 技术要求 129 6.2 什么是推荐系统 129 6.3 基于潜在因子分解的推荐系统 131 6.4 深度学习与潜在因子协同过滤 132 6.5 SVD++ 136 6.6 基于受限玻尔兹曼机的推荐系统 138 6.7 对比分歧 139 6.8 使用RBM进行协同过滤 140 6.9 使用RBM实现协同过滤 142 6.9.1 预处理输入 143 6.9.2 构建RBM网络进行协作过滤 144 6.9.3 训练RBM 147 6.10 使用训练好的RBM进行推断 149 6.11 总结 150 第7章 用于电影评论情感分析的移动应用程序 151 7.1 技术要求 152 7.2 使用TensorFlow mobile构建Android移动应用程序 152 7.3 Android应用中的电影评论评分 153 7.4 预处理电影评论文本 154 7.5 构建模型 156 7.6 训练模型 157 7.7 将模型冻结为protobuf格式 159 7.8 为推断创建单词到表征的字典 161 7.9 应用程序交互界面设计 162 7.10 Android应用程序的核心逻辑 164 7.11 测试移动应用 168 7.12 总结 170 第8章 提供客户服务的AI聊天机器人 171 8.1 技术要求 172 8.2 聊天机器人的架构 172 8.3 基于LSTM的序列到序列模型 173 8.4 建立序列到序列模型 174 8.5 Twitter平台上的聊天机器人 174 8.5.1 构造聊天机器人的训练数据 175 8.5.2 将文本数据转换为单词索引 175 8.5.3 替换匿名用户名 176 8.5.4 定义模型 176 8.5.5 用于训练模型的损失函数 178 8.5.6 训练模型 179 8.5.7 从模型生成输出响应 180 8.5.8 所有代码连起来 180 8.5.9 开始训练 181 8.5.10 对一些输入推特的推断结果 181 8.6 总结 182 第9章 基于增强学习的无人驾驶 183 9.1 技术要求 183 9.2 马尔科夫决策过程 184 9.3 学习Q值函数 185 9.4 深度Q学习 186 9.5 形式化损失函数 186 9.6 深度双Q学习 187 9.7 实现一个无人驾驶车的代码 189 9.8 深度Q学习中的动作离散化 189 9.9 实现深度双Q值网络 190 9.10 设计智能体 191 9.11 自动驾驶车的环境 194 9.12 将所有代码连起来 197 9.13 训练结果 202 9.14 总结 203 第10章 从深度学习的角度看CAPTCHA 204 10.1 技术要求 205 10.2 通过深度学习破解CAPTCHA 205 10.2.1 生成基本的CAPTCHA 205 10.2.2 生成用于训练CAPTCHA破解器的数据 206 10.2.3 CAPTCHA破解器的CNN架构 208 10.2.4 预处理CAPTCHA图像 208 10.2.5 将CAPTCHA字符转换为类别 209 10.2.6 数据生成器 210 10.2.7 训练CAPTCHA破解器 211 10.2.8 测试数据集的准确性 212 10.3 通过对抗学习生成CAPTCHA 214 10.3.1 优化GAN损失 215 10.3.2 生成器网络 215 10.3.3 判别器网络 216 10.3.4 训练GAN 219 10.3.5 噪声分布 220 10.3.6 数据预处理 220 10.3.7 调用训练 221 10.3.8 训练期间CAPTCHA的质量 222 10.3.9 使用训练后的生成器创建CAPTCHA 224 10.4 总结 225 ---------------------------Python人脸识别:从入门到工程实践--------------------------- 前言 第1章 人脸识别入门1 1.1 人脸识别概况1 1.1.1 何为人脸识别1 1.1.2 人脸识别的应用2 1.1.3 人脸识别的目标4 1.1.4 人脸识别的一般方法5 1.2 人脸识别发展状况8 1.2.1 人脸识别历史沿革8 1.2.2 DT时代的呼唤10 1.2.3 计算机视觉的新起点10 1.3 本章小结12 第2章 数学与机器学习基础13 2.1 矩阵13 2.1.1 矩阵的形式13 2.1.2 行列式14 2.1.3 转置15 2.1.4 矩阵的一般运算15 2.2 向量17 2.2.1 向量的形式18 2.2.2 向量的点乘18 2.2.3 向量的范数19 2.3 距离度量19 2.3.1 欧式距离19 2.3.2 曼哈顿距离20 2.3.3 余弦距离20 2.3.4 汉明距离21 2.4 卷积22 2.4.1 一维卷积22 2.4.2 二维卷积23 2.5 机器学习基础25 2.5.1 机器学习类别25 2.5.2 分类算法26 2.6 本章小结38 第3章 计算机视觉原理与应用39 3.1 计算机视觉介绍39 3.2 颜色模型40 3.2.1 彩色图像40 3.2.2 灰度图像与二值图像42 3.3 信号与噪声44 3.3.1 信号44 3.3.2 噪声45 3.4 图像滤波45 3.4.1 均值滤波45 3.4.2 中值滤波47 3.5 图像的几何变换47 3.5.1 平移48 3.5.2 旋转49 3.5.3 缩放50 3.6 图像特征50 3.6.1 灰度直方图50 3.6.2 LBP特征51 3.6.3 Haar特征52 3.6.4 HOG特征54 3.7 本章小结56 第4章 OpenCV基础与应用58 4.1 OpenCV介绍58 4.2 科学计算库Numpy59 4.2.1 array类型60 4.2.2 线性代数相关62 4.2.3 矩阵的高级函数64 4.3 OpenCV基本操作70 4.4 图像的基本变换72 4.4.1 颜色变换72 4.4.2 几何变换80 4.4.3 图像噪声处理83 4.5 本章小结86 第5章 深度学习与Keras工程实践87 5.1 深度学习介绍87 5.2 Keras框架简介89 5.3 Keras的使用方法91 5.3.1 深度学习的原理91 5.3.2 Keras神经网络堆叠的两种方法92 5.4 常用的神经网络层96 5.4.1 全连接层96 5.4.2 二维卷积层98 5.4.3 池化层100 5.4.4 BN层103 5.4.5 dropout层105 5.4.6 flatten层106 5.5 激活函数108 5.5.1 Sigmoid激活函数108 5.5.2 Softmax激活函数109 5.5.3 ReLU激活函数110 5.5.4 Keras中激活函数的使用111 5.6 优化器112 5.6.1 SGD优化器113 5.6.2 Adadelta优化器116 5.7 损失函数117 5.7.1 均方误差117 5.7.2 交叉熵损失函数118 5.7.3 Keras提供的损失函数120 5.8 模型评估方法122 5.8.1 交叉验证122 5.8.2 分类器性能评估124 5.9 数据增强127 5.9.1 数据增强概述128 5.9.2 Keras实现数据增强129 5.9.3 自己实现数据增强133 5.10 Keras的工程实践134 5.10.1 训练时的回调函数135 5.10.2 打印网络信息137 5.10.3 输出网络结构图139 5.10.4 获取某层的输出140 5.11 本章小结142 第6章 常用人脸识别算法143 6.1 特征脸法143 6.2 OpenCV的方法146 6.2.1 人脸检测方法147 6.2.2 人脸识别方法149 6.3 Dlib的人脸检测方法151 6.4 基于深度学习的图片特征提取152 6.4.1 AlexNet152 6.4.2 VGGNet155 6.4.3 GoogLeNet157 6.4.4 ResNet160 6.5 基于深度学习的人脸检测161 6.5.1 基于深度学习的目标检测162 6.5.2 MTCNN164 6.6 基于深度学习的人脸识别167 6.6.1 基于度量学习的方法168 6.6.2 基于边界分类的方法171 6.7 本章小结177 第7章 人脸识别项目实战178 7.1 人脸图片数据集178 7.1.1 Olivetti Faces人脸数据集178 7.1.2 LFW人脸数据集180 7.1.3 YouTube Faces人脸数据集181 7.1.4 IMDB WIKI人脸数据集181 7.1.5 FDDB人脸数据集182 7.2 使用OpenCV的人脸检测182 7.2.1 Haar级联分类器182 7.2.2 OpenCV的SSD人脸检测器184 7.3 使用Dlib的人脸检测186 7.3.1 基于Hog-SVM的人脸检测186 7.3.2 基于最大边界的对象检测器187 7.4 深度学习实践188 7.4.1 卷积神经网络实现189 7.4.2 数据增强207 7.4.3 自定义损失函数211 7.4.4 数据预处理213 7.4.5 模型训练214 7.4.6 实现Web接口216 7.4.7 模型调优与总结218 7.5 人脸识别的拓展应用219 7.6 本章小结220 第8章 人脸识别工程化221 8.1 云平台实践221 8.1.1 云计算介绍221 8.1.2 云服务的形式223 8.1.3 云平台架构设计224 8.2 服务API设计229 8.2.1 人脸检测229 8.2.2 人脸对比239 8.3 人脸图片存储241 8.4 人脸图片检索243 8.5 本章小结244 附录 参考文献245 |