作者 |
[意]保罗·佩罗塔(Paolo Perrotta) |
丛书名 |
智能科学与技术丛书 |
出版社 |
机械工业出版社 |
ISBN |
9787111680918 |
简要 |
简介 |
内容简介书籍计算机书籍 使用监督学习从头构建一个图像识别应用程序。用线性回归预测未来。深入研究梯度下降,这是一种驱动大部分机器学习的基本算法。创建感知器来分类数据。建立神经网络来处理更复杂和复杂的数据集。通过反向传播和批处理来训练和细化这些网络。分层神经网络,消除过度拟合,并添加卷积将您的神经网络转换为一个真正的深度学习系统。 |
目录 |
译者序 前言 致谢 第一部分 从零开始的 图像识别 第1章 机器学习的原理 2 1.1 编程与机器学习 2 1.2 监督学习 4 1.3 魔法背后的数学原理 6 1.4 设置系统 8 第2章 首个机器学习程序 12 2.1 了解问题 12 2.1.1 监督比萨 13 2.1.2 理解数据 13 2.2 编写线性回归代码 15 2.2.1 定义模型 16 2.2.2 进行预测 18 2.2.3 进行训练 18 2.2.4 计算误差 19 2.2.5 越来越接近 20 2.2.6 运行代码 21 2.3 添加偏置 23 2.4 小结 25 2.5 动手研究:设置超参数 26 第3章 梯度 28 3.1 算法的缺陷 28 3.2 梯度下降法 30 3.2.1 少量数学知识 32 3.2.2 陡坡速降 33 3.2.3 脱离平面 34 3.2.4 偏导数 35 3.2.5 测试梯度下降法 37 3.2.6 何时梯度下降法不适用 38 3.3 小结 40 3.4 动手研究:露营地问题 40 第4章 超空间 41 4.1 添加更多维度 42 4.2 矩阵代数 44 4.2.1 矩阵乘法 45 4.2.2 矩阵转置 47 4.3 升级学习程序 47 4.3.1 数据准备 48 4.3.2 升级预测函数 50 4.3.3 升级损失函数 51 4.3.4 升级梯度公式 52 4.3.5 整合函数 53 4.4 告别偏置 54 4.5 最后一次试运行 55 4.6 小结 56 4.7 动手研究:统计学家 56 第5章 能辨识的机器 58 5.1 线性回归的不足 58 5.2 S型函数 61 5.2.1 信心与疑虑 62 5.2.2 平滑过程 63 5.2.3 升级梯度 65 5.2.4 模型函数受到的影响 66 5.3 操作中的分类函数 67 5.4 小结 69 5.5 动手研究:权重的影响 70 第6章 计算机视觉初探 71 6.1 处理数据 72 6.1.1 MNIST入门 72 6.1.2 训练与测试 73 6.2 我们自己的MNIST库 74 6.2.1 准备输入矩阵 74 6.2.2 处理数据 76 6.3 实际运行 79 6.4 小结 80 6.5 动手研究:难以识别的数字 80 第7章 最后的挑战 81 7.1 多元分类 81 7.1.1 独热编码 83 7.1.2 独热编码实践 84 7.1.3 解码分类器的答案 85 7.1.4 需要更多的权重 85 7.1.5 回顾矩阵维数 86 7.2 验证与结果 87 7.3 小结 89 7.4 动手研究:扫雷舰 89 第8章 感知机 91 8.1 认识感知机 91 8.2 组装感知机 92 8.3 感知机的不足 93 8.3.1 线性可分数据 94 8.3.2 线性不可分数据 95 8.4 感知机史话 97 8.4.1 终极之战 98 8.4.2 论战余波 98 第二部分 神经网络 第9章 设计神经网络 100 9.1 用感知机组装神经网络 101 9.1.1 链式感知机 102 9.1.2 节点数量 103 9.2 加入softmax函数 105 9.3 构建方案 106 9.4 小结 106 9.5 动手研究:网络冒险 107 第10章 构建神经网络 108 10.1 编写正向传播代码 108 10.1.1 编写softmax函数 110 10.1.2 编写分类函数 112 10.2 交叉熵 112 10.3 小结 114 10.4 动手研究:时间旅行的测试 115 第11章 训练神经网络 116 11.1 反向传播的使用场合 116 11.2 从链式法则到反向传播 118 11.2.1 简单网络结构的链式法则 118 11.2.2 复杂网络的链式法则 119 11.3 使用反向传播算法 121 11.3.1 开始之前 123 11.3.2 计算w2的梯度 123 11.3.3 计算w1的梯度 124 11.3.4 提炼反向函数 125 11.4 初始化权重 126 11.4.1 可怕的对称性 126 11.4.2 死亡神经元 127 11.4.3 正确的权重初始化 129 11.5 完成网络模型 130 11.6 小结 132 11.7 动手研究:错误的开始 133 第12章 分类器的工作原理 134 12.1 寻找边界 134 12.1.1 感知机的主场 135 12.1.2 理解分类 136 12.1.3 线性不可分 138 12.2 弯曲的边界 139 12.3 小结 141 12.4 动手研究:高难数据 141 第13章 小批量处理 142 13.1 训练过程的可视化 143 13.2 分批处理 145 13.2.1 小批量样本集的构造 145 13.2.2 批量样本的训练 147 13.3 理解小批量 148 13.3.1 扭曲的路径 148 13.3.2 大型和小型批处理 150 13.3.3 批处理的优缺点 151 13.4 小结 152 13.5 动手研究:最小的批量 153 第14章 测试的禅意 154 14.1 过度拟合的威胁 154 14.2 测试的难题 156 14.3 小结 158 14.4 动手研究:思考测试 159 第15章 来做开发吧 160 15.1 准备样本数据 161 15.1.1 检查输入变量的范围 161 15.1.2 标准化输入变量 162 15.1.3 标准化的实践 163 15.2 调优超参数 164 15.2.1 选择历元的数量 164 15.2.2 调优隐藏节点数量 165 15.2.3 调优学习率 168 15.2.4 调优批量大小 170 15.3 最终测试 171 15.4 动手研究:实现99% 173 15.5 小结与展望 174 第三部分 深度学习 第16章 深度神经网络 178 16.1 针鼹数据集 179 16.2 使用Keras构建神经网络 180 16.2.1 计划与代码 181 16.2.2 加载数据 182 16.2.3 创建模型 183 16.2.4 编译模型 184 16.2.5 训练网络 184 16.2.6 描绘边界 185 16.2.7 实践中的Keras 185 16.3 更深一层 187 16.4 小结 188 16.5 动手研究:Keras游乐场 188 第17章 战胜过度拟合 190 17.1 详解过度拟合 190 17.1.1 过度拟合的成因 191 17.1.2 过度拟合与低度拟合 194 17.2 模型正则化 195 17.2.1 回顾深度网络 195 17.2.2 L1和L2 正则化法 198 17.3 正则化工具箱 202 17.4 小结 203 17.5 动手研究:保持简单 204 第18章 驯服深度网络 205 18.1 理解激活函数 205 18.1.1 激活函数存在的意义 206 18.1.2 S型函数及其运算结果 207 18.2 超越S型函数 211 18.2.1 初识ReLU 211 18.2.2 选择正确的函数 213 18.3 掌握更多的技巧 215 18.3.1 更好的权重初始化 215 18.3.2 加速梯度下降 216 18.3.3 高级正则化 217 18.3.4 最后一招:批处理标准化 219 18.4 小结 220 18.5 动手研究:10历元的挑战 220 第19章 超越香草神经网络 222 19.1 CIFAR-10数据集 223 19.1.1 初识CIFAR-10 223 19.1.2 难以分类的CIFAR数据 224 19.2 CNN的基本结构 225 19.2.1 图像就是图像 226 19.2.2 卷积 226 19.2.3 卷积层 229 19.3 运行卷积 230 19.4 小结 233 19.5 动手研究:大量的超参数 233 第20章 深度学习 235 20.1 深度学习的崛起 235 20.1.1 一场完美的革新风暴 236 20.1.2 临界点 237 20.1.3 未完待续 237 20.2 离谱的效率 238 20.3 路在何方 240 20.3.1 视觉之路 241 20.3.2 语言之路 241 20.3.3 图像生成之路 242 20.3.4 通天大道宽又阔 245 20.3.5 动手研究之路 246 20.4 你的旅程开始了 246 附录A Python语言入门 247 A.1 Python是什么样的 249 A.1.1 Python 是动态类型 250 A.1.2 Python中重要的缩进 250 A.2 Python语言的基本组成 251 A.2.1 数据类型和运算符 251 A.2.2 集合 252 A.2.3 字符串 253 A.2.4 循环 254 A.3 定义和调用函数 255 A.3.1 命名参数 256 A.3.2 默认参数 257 A.4 模块与包 257 A.4.1 定义与导入模块 257 A.4.2 主要习语 259 A.4.3 管理包 260 A.5 创建和使用对象 262 A.6 就这么多了 263 附录B 机器学习术语 264 |