下载频道  >  zzz7763的资源
  • 数据结构与算法 Python语言描述(高清)(详细书签)

    本书基于Python语言介绍了数据结构与算法的基本知识,主要内容包括抽象数据类型和Python面向对象程序设计、线性表、字符串、栈和队列、二叉树和树、集合、排序以及算法的基本知识。本书延续问题求解的思路,从解决问题的目标来组织教学内容,注重理论与实践的并用。 数据结构与算法 Python语言描述_裘宗燕(高清)(详细书签) 目  录 前言 第1章绪论1 1.1计算机问题求解1 1.1.1程序开发过程1 1.1.2 一个简单例子3 1.2 问题求解:交叉路口的红绿灯安排4 1.2.1问题分析和严格化5 1.2.2图的顶点分组和算法6 1.2.3算法的精化和Python描述7 1.2.4讨论8 1.3算法和算法分析10 1.3.1问题、问题实例和算法10 1.3.2算法的代价及其度量14 1.3.3算法分析19 1.3.4Python程序的计算代价(复杂度)21 1.4数据结构23 1.4.1数据结构及其分类24 1.4.2计算机内存对象表示26 1.4.3Python对象和数据结构30 练习32 第2章抽象数据类型和Python类34 2.1抽象数据类型34 2.1.1数据类型和数据构造34 2.1.2抽象数据类型的概念36 2.1.3抽象数据类型的描述37 2.2Python的类39 2.2.1有理数类39 2.2.2类定义进阶40 2.2.3本书采用的ADT描述形式43 2.3类的定义和使用44 2.3.1类的基本定义和使用44 2.3.2实例对象:初始化和使用45 2.3.3几点说明47 2.3.4继承49 2.4Python异常53 2.4.1异常类和自定义异常53 2.4.2异常的传播和捕捉54 2.4.3内置的标准异常类54 2.5类定义实例:学校人事管理系统中的类55 2.5.1问题分析和设计56 2.5.2人事记录类的实现57 2.5.3讨论62 本章总结63 练习64 第3章线性表66 3.1线性表的概念和表抽象数据类型66 3.1.1表的概念和性质66 3.1.2表抽象数据类型67 3.1.3线性表的实现:基本考虑69 3.2顺序表的实现69 3.2.1基本实现方式69 3.2.2顺序表基本操作的实现71 3.2.3顺序表的结构74 3.2.4Python的list76 3.2.5顺序表的简单总结78 3.3链接表79 3.3.1线性表的基本需要和链接表79 3.3.2单链表79 3.3.3单链表类的实现84 3.4链表的变形和操作88 3.4.1单链表的简单变形88 3.4.2循环单链表91 3.4.3双链表92 3.4.4两个链表操作95 3.4.5不同链表的简单总结98 3.5表的应用99 3.5.1Josephus问题和基于“数组”概念的解法99 3.5.2基于顺序表的解100 3.5.3基于循环单链表的解101 本章总结102 练习103 第4章 字符串107 4.1 字符集、字符串和字符串操作107 4.1.1 字符串的相关概念107 4.1.2 字符串抽象数据类型109 4.2 字符串的实现109 4.2.1 基本实现问题和技术109 4.2.2 实际语言里的字符串110 4.2.3 Python的字符串111 4.3 字符串匹配(子串查找)112 4.3.1 字符串匹配112 4.3.2 串匹配和朴素匹配算法113 4.3.3 无回溯串匹配算法(KMP算法)115 4.4 字符串匹配问题119 4.4.1 串匹配/搜索的不同需要120 4.4.2 一种简化的正则表达式122 4.5 Python正则表达式123 4.5.1 概况124 4.5.2 基本情况124 4.5.3 主要操作125 4.5.4 正则表达式的构造126 4.5.5 正则表达式的使用132 本章总结132 练习133 第5章 栈和队列135 5.1 概述135 5.1.1 栈、队列和数据使用顺序135 5.1.2 应用环境136 5.2 栈:概念和实现136 5.2.1 栈抽象数据类型137 5.2.2 栈的顺序表实现137 5.2.3 栈的链接表实现139 5.3 栈的应用140 5.3.1 简单应用:括号匹配问题140 5.3.2 表达式的表示、计算和变换142 5.3.3 栈与递归149 5.4 队列155 5.4.1 队列抽象数据类型155 5.4.2 队列的链接表实现155 5.4.3 队列的顺序表实现156 5.4.4 队列的list实现158 5.4.5 队列的应用160 5.5 迷宫求解和状态空间搜索162 5.5.1 迷宫求解:分析和设计162 5.5.2 求解迷宫的算法164 5.5.3 迷宫问题和搜索167 5.6 几点补充171 5.6.1 几种与栈或队列相关的结构171 5.6.2 几个问题的讨论172 本章总结173 练习173 第6章 二叉树和树176 6.1 二叉树:概念和性质176 6.1.1 概念和性质177 6.1.2 抽象数据类型181 6.1.3 遍历二叉树181 6.2 二叉树的list实现183 6.2.1 设计和实现183 6.2.2 二叉树的简单应用:表达式树185 6.3 优先队列188 6.3.1 概念188 6.3.2 基于线性表的实现189 6.3.3 树形结构和堆191 6.3.4 优先队列的堆实现192 6.3.5 堆的应用:堆排序195 6.4 应用:离散事件模拟196 6.4.1 通用的模拟框架197 6.4.2 海关检查站模拟系统198 6.5 二叉树的类实现202 6.5.1 二叉树结点类203 6.5.2 遍历算法204 6.5.3 二叉树类208 6.6 哈夫曼树209 6.6.1 哈夫曼树和哈夫曼算法209 6.6.2 哈夫曼算法的实现210 6.6.3 哈夫曼编码211 6.7 树和树林212 6.7.1 实例和表示213 6.7.2 定义和相关概念213 6.7.3 抽象数据类型和操作215 6.7.4 树的实现216 6.7.5 树的Python实现218 本章总结220 练习220 第7章图224 7.1概念、性质和实现224 7.1.1 定义和图示224 7.1.2 图的一些概念和性质225 7.1.3 图抽象数据类型227 7.1.4 图的表示和实现228 7.2 图结构的Python实现231 7.2.1 邻接矩阵实现231 7.2.2 压缩的邻接矩阵(邻接表)实现233 7.2.3 小结235 7.3 基本图算法235 7.3.1 图的遍历236 7.3.2 生成树238 7.4 *小生成树240 7.4.1 *小生成树问题240 7.4.2 Kruskal算法240 7.4.3 Prim算法243 *7.4.4 Prim算法的改进246 7.4.5 *小生成树问题247 7.5 *短路径248 7.5.1 *短路径问题248 7.5.2 求解单源点*短路径的Dijkstra算法248 7.5.3 求解任意顶点间*短路径的Floyd算法252 7.6 AOV/AOE网及其算法255 7.6.1 AOV网、拓扑排序和拓扑序列255 7.6.2 拓扑排序算法257 7.6.3 AOE网和关键路径258 7.6.4 关键路径算法259 本章总结261 练习262 第8章 字典和集合265 8.1 数据存储、检索和字典265 8.1.1 数据存储和检索265 8.1.2 字典实现的问题267 8.2 字典线性表实现269 8.2.1 基本实现269 8.2.2 有序线性表和二分法检索270 8.2.3 字典线性表总结272 8.3 散列和散列表273 8.3.1 散列的思想和应用273 8.3.2 散列函数275 8.3.3 冲突的内消解:开地址技术277 8.3.4 外消解技术280 8.3.5 散列表的性质280 8.4 集合282 8.4.1 集合的概念、运算和抽象数据类型282 8.4.2 集合的实现283 8.4.3 特殊实现技术:位向量实现285 8.5 Python的标准字典类dict和set286 8.6 二叉排序树和字典287 8.6.1 二叉排序树288 8.6.2 **二叉排序树295 8.6.3 一般情况的**二叉排序树297 8.7 平衡二叉树302 8.7.1 定义和性质302 8.7.2 AVL树类303 8.7.3 插入操作304 8.7.4 相关问题310 8.8 动态多分支排序树311 8.8.1 多分支排序树311 8.8.2 B树312 8.8.3 B+ 树314 本章总结315 练习316 第9章 排序319 9.1 问题和性质319 9.1.1 问题定义319 9.1.2 排序算法320 9.2 简单排序算法323 9.2.1 插入排序323 9.2.2 选择排序325 9.2.3 交换排序327 9.3 快速排序328 9.3.1 快速排序的表实现329 9.3.2 程序实现330 9.3.3 复杂度331 9.3.4 另一种简单实现332 9.4 归并排序332 9.4.1 顺序表的归并排序333 9.4.2 归并算法的设计问题333 9.4.3 归并排序函数定义333 9.4.4 算法分析335 9.5 其他排序方法335 9.5.1 分配排序和基数排序335 9.5.2 一些与排序有关的问题338 9.5.3 Python系统的list排序339 本章总结340 练习342 参考文献344

    2018-09-13
    34
  • 系统辨识与自适应控制Matlab仿真 含pdf书和源代码-北航版

    系统辨识与自适应控制Matlab仿真 含pdf书和源代码-北航版 《系统辨识与自适应控制MATLAB仿真》从MATLAB仿真角度出发,系统地介绍系统辨识与自适应控制的基本理论和方法。   《系统辨识与自适应控制MATLAB仿真》内容主要分为三部分:第1部分为绪论;第二部分为线性系统辨识与自适应控制,包括系统辨识(如*小二乘法、梯度校正法和极大似然法)、模型参考自适应控制、自校正控制和基于常规控制策略的自校正控制;第三部分为非线性系统辨识与自适应控制,包括神经网络辨识与控制、模糊控制与模糊神经网络辨识和无模型自适应控制。书中每种算法都配有仿真实例、仿真程序、仿真结果以及对仿真结果的简要分析,以便读者深人理解和灵活运用系统辨识与自适应控制的基本理论和方法。   《系统辨识与自适应控制MATLAB仿真》内容简练,系统性和实用性强,可作为自动化相关专业本科高年级学生和硕士研究生的教学用书,也可供控制科学与工程相关领域的博士研究生、教师、科研人员以及技术开发人员阅读和参考。 第1章 绪论 1.1 自适应控制问题的提出 1.2 自适应控制的种类 1.2.1 模型参考自适应控制系统 1.2.2 自校正控制系统 1.2.3 智能自适应控制系统 1.2.4 其他形式的自适应控制系统 1.3 自适应控制的应用现状 1.3.1 在工业领域中的典型应用 1.3.2 在非工业领域中的应用 1.4 自适应控制存在的问题及发展方向 第2章 系统辨识 2.1 系统辨识概述第1章 绪论 1.1 自适应控制问题的提出 1.2 自适应控制的种类 1.2.1 模型参考自适应控制系统 1.2.2 自校正控制系统 1.2.3 智能自适应控制系统 1.2.4 其他形式的自适应控制系统 1.3 自适应控制的应用现状 1.3.1 在工业领域中的典型应用 1.3.2 在非工业领域中的应用 1.4 自适应控制存在的问题及发展方向 第2章 系统辨识 2.1 系统辨识概述 2.1.1 数学模型及建模方法 2.1.2 系统辨识的定义及其分类 2.1.3 参数模型 2.1.4 系统辨识的基本原理 2.1.5 系统辨识的步骤 2.2 白噪声、M序列与噪信比 2.2.1 白噪声与有色噪声 2.2.2 M序列与逆M序列 2.2.3 噪信比 2.3 小二乘参数估计法 2.3.1 批处理小二乘法 2.3.2 递推小二乘法 2.3.3 遗忘因子递推小二乘法 2.3.4 递推增广小二乘法 2.4 梯度校正参数估计法 2.4.1 确定性系统的梯度校正参数估计法 2.4.2 随机牛顿法 2.5 极大似然参数估计法 2.6 多变量系统参数估计 第3章 模型参考自适应控制 3.1 连续系统数值积分基础知识 3.1.1 欧拉法 3.1.2 龙格-库塔法 3.2 基于梯度法的模型参考自适应控制 3.2.1 MIT自适应律 3.2.2 MIT归一化算法 3.3 基于Lyapunov稳定性理论的模型参考自适应控制 3.3.1 Lyapunov稳定性理论与正实传递函数 3.3.2 可调增益Lyapunov-MRAC 3.3.3 系统状态变量可测时的MRAC 3.3.4 Narendra稳定自适应控制器 3.4 离散时间模型参考自适应系统 3.4.1 二阶系统的离散时间MRAS 3.4.2 n阶系统的离散时间MRAS 第4章 自校正控制 4.1 Diophantine方程的求解 4.1.1 单步Diophantine方程的求解 4.1.2 多步Diophantine方程的求解 4.2 小方差自校正控制 4.2.1 单步输出预测 4.2.2 小方差控制 4.2.3 小方差间接自校正控制 4.2.4 小方差直接自校正控制 4.3 广义小方差自校正控制 4.3.1 广义小方差控制 4.3.2 广义小方差间接自校正控制 4.3.3 广义小方差直接自校正控制 4.4 广义预测控制 4.4.1 预测控制的提出 4.4.2 预测控制的基本机理 4.4.3 广义预测控制 4.5 改进的广义预测控制 4.5.1 基于CARIMA模型的JGPC 4.5.2 基于CARMA模型的JGPC 第5章 基于常规控制策略的自校正控制 5.1 极点配置自校正控制 5.1.1 极点配置控制 5.1.2 极点配置间接自校正控制 5.1.3 极点配置直接自校正控制 5.2 自校正PID控制 5.2.1 常规PID控制 5.2.2 自校正PID控制 第6章 神经网络辨识与控制 6.1 基于BP神经网络的系统辨识 6.1.1 BP神经网络 6.1.2 基于局部误差的BP神经网络辨识 6.1.3 基于全局误差的BP神经网络辨识 6.2 基于RBF神经网络的系统辨识与控制 6.2.1 RBF神经网络 6.2.2 基于RBF神经网络的系统辨识 6.2.3 基于RBF神经网络的PID自校正控制 第7章 模糊控制与模糊神经网络辨识 7.1 引言 7.2 模糊逻辑控制 7.2.1 模糊控制系统的设计 7.2.2 模糊控制M文件仿真 7.2.3 模糊控制Simulink仿真 7.3 模糊神经网络辨识 7.3.1 模糊系统和神经网络的比较 7.3.2 模糊神经网络 7.3.3 关系度聚类方法 7.3.4 补偿模糊神经网络 7.3.5 基于聚类的补偿模糊神经网络辨识 第8章 无模型自适应控制 8.1 动态线性化技术 8.1.1 紧格式动态线性化方法(CFDL) 8.1.2 偏格式动态线性化方法(PFDL) 8.1.3 全格式动态线性化方法(FFDL) 8.2 SISO无模型自适应控制 8.2.1 基于CFDL的无模型自适应控制 8.2.2 基于PFDL的无模型自适应控制 8.2.3 基于FFDL的无模型自适应控制 8.3 MIMO无模型自适应控制 8.3.1 基于CFDL的MIMO无模型自适应控制 8.3.2 基于PFDL的MIMO无模型自适应控制 8.3.3 基于FFDL的MIMO无模型自适应控制 参考文献 显示全部信息 -----   

    2018-07-03
    25
  • 算法导论(第三版)(高清带书签)

    本书深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。各章自成体系,可以作为独立的学习单元。算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂。说明和解释力求浅显易懂,不失深度和数学严谨性。 本书自第1版出版以来,已经成为世界范围内广泛使用的大学教材和专业人员的标准参考书。第2版增加了论述算法作用、概率分析与随机算法、线性规划等几章。同时,对第1版的几乎每一节都作了大量的修订。一项巧妙而又重要的修改是提前引入循环不变式,并在全书中用来证明算法的正确性。在不改变数学和分析重点的前提下,作者将许多数学基础知识从第一部分移到了附录中,并在开始部分加入了一些富有诱导性的题材。 出版者的话 译者序 前言 第一部分 基础知识 第1章 算法在计算中的作用 3 1.1 算法 3 1.2 作为一种技术的算法 6 思考题 8 本章注记 8 第2章 算法基础 9 2.1 插入排序 9 2.2 分析算法 13 2.3 设计算法 16 2.3.1 分治法 16 2.3.2 分析分治算法 20 思考题 22 本章注记 24 第3章 函数的增长 25 3.1 渐近记号 25 3.2 标准记号与常用函数 30 思考题 35 本章注记 36 第4章 分治策略 37 4.1 最大子数组问题 38 4.2 矩阵乘法的Strassen算法 43 4.3 用代入法求解递归式 47 4.4 用递归树方法求解递归式 50 4.5 用主方法求解递归式 53 4.6 证明主定理 55 4.6.1 对b的幂证明主定理 56 4.6.2 向下取整和向上取整 58 思考题 60 本章注记 62 第5章 概率分析和随机算法 65 5.1 雇用问题 65 5.2 指示器随机变量 67 5.3 随机算法 69 5.4 概率分析和指示器随机变量的进一步使用 73 5.4.1 生日悖论 73 5.4.2 球与箱子 75 5.4.3 特征序列 76 5.4.4 在线雇用问题 78 思考题 79 本章注记 80 第二部分 排序和顺序统计量 第6章 堆排序 84 6.1 堆 84 6.2 维护堆的性质 85 6.3 建堆 87 6.4 堆排序算法 89 6.5 优先队列 90 思考题 93 本章注记 94 第7章 快速排序 95 7.1 快速排序的描述 95 7.2 快速排序的性能 97 7.3 快速排序的随机化版本 100 7.4 快速排序分析 101 7.4.1 最坏情况分析 101 7.4.2 期望运行时间 101 思考题 103 本章注记 106 第8章 线性时间排序 107 8.1 排序算法的下界 107 8.2 计数排序 108 8.3 基数排序 110 8.4 桶排序 112 思考题 114 本章注记 118 第9章 中位数和顺序统计量 119 9.1 最小值和最大值 119 9.2 期望为线性时间的选择算法 120 9.3 最坏情况为线性时间的选择算法 123 思考题 125 本章注记 126 第三部分 数据结构 第10章 基本数据结构 129 10.1 栈和队列 129 10.2 链表 131 10.3 指针和对象的实现 134 10.4 有根树的表示 137 思考题 139 本章注记 141 第11章 散列表 142 11.1 直接寻址表 142 11.2 散列表 143 11.3 散列函数 147 11.3.1 除法散列法 147 11.3.2 乘法散列法 148 11.3.3 全域散列法 148 11.4 开放寻址法 151 11.5 完全散列 156 思考题 158 本章注记 160 第12章 二叉搜索树 161 12.1 什么是二叉搜索树 161 12.2 查询二叉搜索树 163 12.3 插入和删除 165 12.4 随机构建二叉搜索树 169 思考题 171 本章注记 173 第13章 红黑树 174 13.1 红黑树的性质 174 13.2 旋转 176 13.3 插入 178 13.4 删除 183 思考题 187 本章注记 191 第14章 数据结构的扩张 193 14.1 动态顺序统计 193 14.2 如何扩张数据结构 196 14.3 区间树 198 思考题 202 本章注记 202 第四部分 高级设计和分析技术 第15章 动态规划 204 15.1 钢条切割 204 15.2 矩阵链乘法 210 15.3 动态规划原理 215 15.4 最长公共子序列 222 15.5 最优二叉搜索树 226 思考题 231 本章注记 236 第16章 贪心算法 237 16.1 活动选择问题 237 16.2 贪心算法原理 242 16.3 赫夫曼编码 245 16.4 拟阵和贪心算法 250 16.5 用拟阵求解任务调度问题 253 思考题 255 本章注记 257 第17章 摊还分析 258 17.1 聚合分析 258 17.2 核算法 261 17.3 势能法 262 17.4 动态表 264 17.4.1 表扩张 265 17.4.2 表扩张和收缩 267 思考题 270 本章注记 273 第五部分 高级数据结构 第18章 B树 277 18.1 B树的定义 279 18.2 B树上的基本操作 281 18.3 从B树中删除关键字 286 思考题 288 本章注记 289 第19章 斐波那契堆 290 19.1 斐波那契堆结构 291 19.2 可合并堆操作 292 19.3 关键字减值和删除一个结点 298 19.4 最大度数的界 300 思考题 302 本章注记 305 第20章 van Emde Boas树 306 20.1 基本方法 306 20.2 递归结构 308 20.2.1 原型van Emde Boas结构 310 20.2.2 原型van Emde Boas结构上的操作 311 20.3 van Emde Boas树及其操作 314 20.3.1 van Emde Boas树 315 20.3.2 van Emde Boas树的操作 317 思考题 322 本章注记 323 第21章 用于不相交集合的数据结构 324 21.1 不相交集合的操作 324 21.2 不相交集合的链表表示 326 21.3 不相交集合森林 328 21.4 带路径压缩的按秩合并的分析 331 思考题 336 本章注记 337 第六部分 图算法 第22章 基本的图算法 341 22.1 图的表示 341 22.2 广度优先搜索 343 22.3 深度优先搜索 349 22.4 拓扑排序 355 22.5 强连通分量 357 思考题 360 本章注记 361 第23章 最小生成树 362 23.1 最小生成树的形成 362 23.2 Kruskal算法和Prim算法 366 思考题 370 本章注记 373 第24章 单源最短路径 374 24.1 Bellman-Ford算法 379 24.2 有向无环图中的单源最短路径问题 381 24.3 Dijkstra算法 383 24.4 差分约束和最短路径 387 24.5 最短路径性质的证明 391 思考题 395 本章注记 398 第25章 所有结点对的最短路径问题 399 25.1 最短路径和矩阵乘法 400 25.2 Floyd-Warshall算法 404 25.3 用于稀疏图的Johnson算法 409 思考题 412 本章注记 412 第26章 最大流 414 26.1 流网络 414 26.2 Ford\Fulkerson方法 418 26.3 最大二分匹配 428 26.4 推送重贴标签算法 431 26.5 前置重贴标签算法 438 思考题 446 本章注记 449 第七部分 算法问题选编 第27章 多线程算法 453 27.1 动态多线程基础 454 27.2 多线程矩阵乘法 465 27.3 多线程归并排序 468 思考题 472 本章注记 476 第28章 矩阵运算 478 28.1 求解线性方程组 478 28.2 矩阵求逆 486 28.3 对称正定矩阵和最小二乘逼近 489 思考题 493 本章注记 494 第29章 线性规划 495 29.1 标准型和松弛型 499 29.2 将问题表达为线性规划 504 29.3 单纯形算法 507 29.4 对偶性 516 29.5 初始基本可行解 520 思考题 525 本章注记 526 第30章 多项式与快速傅里叶变换 527 30.1 多项式的表示 528 30.2 DFT与FFT 531 30.3 高效FFT实现 536 思考题 539 本章注记 541 第31章 数论算法 543 31.1 基础数论概念 543 31.2 最大公约数 547 31.3 模运算 550 31.4 求解模线性方程 554 31.5 中国余数定理 556 31.6 元素的幂 558 31.7 RSA公钥加密系统 561 31.8 素数的测试 565 31.9 整数的因子分解 571 思考题 574 本章注记 576 第32章 字符串匹配 577 32.1 朴素字符串匹配算法 578 32.2 Rabin\Karp算法 580 32.3 利用有限自动机进行字符串匹配 583 32.4 Knuth-Morris-Pratt算法 588 思考题 594 本章注记 594 第33章 计算几何学 595 33.1 线段的性质 595 33.2 确定任意一对线段是否相交 599 33.3 寻找凸包 604 33.4 寻找最近点对 610 思考题 613 本章注记 615 第34章 NP完全性 616 34.1 多项式时间 619 34.2 多项式时间的验证 623 34.3 NP完全性与可归约性 626 34.4 NP完全性的证明 633 34.5 NP完全问题 638 34.5.1 团问题 638 34.5.2 顶点覆盖问题 640 34.5.3 哈密顿回路问题 641 34.5.4 旅行商问题 644 34.5.5 子集和问题 645 思考题 647 本章注记 649 第35章 近似算法 651 35.1 顶点覆盖问题 652 35.2 旅行商问题 654 35.2.1 满足三角不等式的旅行商问题 654 35.2.2 一般旅行商问题 656 35.3 集合覆盖问题 658 35.4 随机化和线性规划 661 35.5 子集和问题 663 思考题 667 本章注记 669 第八部分 附录:数学基础知识 附录A 求和 672 A.1 求和公式及其性质 672 A.2 确定求和时间的界 674 思考题 678 附录注记 678 附录B 集合等离散数学内容 679 B.1 集合 679 B.2 关系 682 B.3 函数 683 B.4 图 685 B.5 树 687 B.5.1 自由树 688 B.5.2 有根树和有序树 689 B.5.3 二叉树和位置树 690 思考题 691 附录注记 692 附录C 计数与概率 693 C.1 计数 693 C.2 概率 696 C.3 离散随机变量 700 C.4 几何分布与二项分布 702 C.5 二项分布的尾部 705 思考题 708 附录注记 708 附录D 矩阵 709 D.1 矩阵与矩阵运算 709 D.2 矩阵基本性质 712 思考题 714 附录注记 715 参考文献 716 索引 732

    2018-06-26
    4
  • 算法图解(高清、带书签)

    本书示例丰富,图文并茂,以让人容易理解的方式阐释了算法,旨在帮助程序员在日常项目中更好地发挥算法的能量。书中的前三章将帮助你打下基础,带你学习二分查找、大O表示法、两种基本的数据结构以及递归等。余下的篇幅将主要介绍应用广泛的算法,具体内容包括:面对具体问题时的解决技巧,比如,何时采用贪婪算法或动态规划;散列表的应用;图算法;K最近邻算法。 第1章 算法简介  1 1.1 引言  1 1.1.1 性能方面  1 1.1.2 问题解决技巧  2 1.2 二分查找  2 1.2.1 更佳的查找方式  4 1.2.2 运行时间  8 1.3 大O表示法  8 1.3.1 算法的运行时间以不同的速度增加  9 1.3.2 理解不同的大O运行时间  10 1.3.3 大O表示法指出了最糟情况下的运行时间  12 1.3.4 一些常见的大O运行时间  12 1.3.5 旅行商  13 1.4 小结  15 第2章 选择排序  16 2.1 内存的工作原理  16 2.2 数组和链表  18 2.2.1 链表  19 2.2.2 数组  20 2.2.3 术语  21 2.2.4 在中间插入  22 2.2.5 删除  23 2.3 选择排序  25 2.4 小结  28 第3章 递归  29 3.1 递归  29 3.2 基线条件和递归条件  32 3.3 栈  33 3.3.1 调用栈  34 3.3.2 递归调用栈  36 3.4 小结  40 第4章 快速排序  41 4.1 分而治之  41 4.2 快速排序  47 4.3 再谈大O表示法  52 4.3.1 比较合并排序和快速排序  53 4.3.2 平均情况和最糟情况  54 4.4 小结  57 第5章 散列表  58 5.1 散列函数  60 5.2 应用案例  63 5.2.1 将散列表用于查找  63 5.2.2 防止重复  64 5.2.3 将散列表用作缓存  66 5.2.4 小结   68 5.3 冲突  69 5.4 性能  71 5.4.1 填装因子  72 5.4.2 良好的散列函数  74 5.5 小结  75 第6章 广度优先搜索  76 6.1 图简介  77 6.2 图是什么  79 6.3 广度优先搜索  79 6.3.1 查找最短路径  82 6.3.2 队列   83 6.4 实现图  84 6.5 实现算法  86 6.6 小结  93 第7章 狄克斯特拉算法  94 7.1 使用狄克斯特拉算法  95 7.2 术语  98 7.3 换钢琴  100 7.4 负权边  105 7.5 实现  108 7.6 小结  116 第8章 贪婪算法  117 8.1 教室调度问题  117 8.2 背包问题  119 8.3 集合覆盖问题  121 8.4 NP 完全问题  127 8.4.1 旅行商问题详解  127 8.4.2 如何识别NP完全问题  131 8.5 小结  133 第9章 动态规划  134 9.1 背包问题  134 9.1.1 简单算法  135 9.1.2 动态规划  136 9.2 背包问题FAQ  143 9.2.1 再增加一件商品将如何呢  143 9.2.2 行的排列顺序发生变化时结果将如何  145 9.2.3 可以逐列而不是逐行填充网格吗  146 9.2.4 增加一件更小的商品将如何呢  146 9.2.5 可以偷商品的一部分吗  146 9.2.6 旅游行程最优化  147 9.2.7 处理相互依赖的情况  148 9.2.8 计算最终的解时会涉及两 个以上的子背包吗  148 9.2.9 最优解可能导致背包没装满吗  149 9.3 最长公共子串  149 9.3.1 绘制网格  150 9.3.2 填充网格  151 9.3.3 揭晓答案  152 9.3.4 最长公共子序列  153 9.3.5 最长公共子序列之解决方案  154 9.4 小结  155 第10章 K最近邻算法  156 10.1 橙子还是柚子  156 10.2 创建推荐系统  158 10.2.1 特征抽取  159 10.2.2 回归  162 10.2.3 挑选合适的特征  164 10.3 机器学习简介  165 10.3.1 OCR  165 10.3.2 创建垃圾邮件过滤器  166 10.3.3 预测股票市场  167 10.4 小结  167 第11章 接下来如何做  168 11.1 树  168 11.2 反向索引  171 11.3 傅里叶变换   171 11.4 并行算法  172 11.5 MapReduce  173 11.5.1 分布式算法为何很有用  173 11.5.2 映射函数  173 11.5.3 归并函数  174 11.6 布隆过滤器和HyperLogLog  174 11.6.1 布隆过滤器  175 11.6.2 HyperLogLog  176 11.7 SHA算法  176 11.7.1 比较文件  177 11.7.2 检查密码  178 11.8 局部敏感的散列算法  178 11.9 Diffie-Hellman密钥交换  179 11.10 线性规划  180 11.11 结语  180 练习答案   181

    2018-06-26
    5
  • 算法 第4版 高清中文版

    算法(第4版)》是Sedgewick之巨著,与高德纳TAOCP一脉相承,是算法领域经典的参考书,涵盖所有程序员必须掌握的50种算法,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。第4版具体给出了每位程序员应知应会的50个算法,提供了实际代码,而且这些Java代码实现采用了模块化的编程风格,读者可以方便地加以改造。配套网站提供了《算法(第4版)》内容的摘要及更多的代码实现、测试数据、练习、教学课件等资源。 《算法(第4版)》适合用做大学教材或从业者的参考书。 目录 第1章 基础 1 1.1 基础编程模型 4 1.1.1 Java程序的基本结构 4 1.1.2 原始数据类型与表达式 6 1.1.3 语句 8 1.1.4 简便记法 9 1.1.5 数组 10 1.1.6 静态方法 12 1.1.7 API 16 1.1.8 字符串 20 1.1.9 输入输出 21 1.1.10 二分查找 28 1.1.11 展望 30 1.2 数据抽象 38 1.2.1 使用抽象数据类型 38 1.2.2 抽象数据类型举例 45 1.2.3 抽象数据类型的实现 52 1.2.4 更多抽象数据类型的实现 55 1.2.5 数据类型的设计 60 1.3 背包、队列和栈 74 1.3.1 API 74 1.3.2 集合类数据类型的实现 81 1.3.3 链表 89 1.3.4 综述 98 1.4 算法分析 108 1.4.1 科学方法 108 1.4.2 观察 108 1.4.3 数学模型 112 1.4.4 增长数量级的分类 117 1.4.5 设计更快的算法 118 1.4.6 倍率实验 121 1.4.7 注意事项 123 1.4.8 处理对于输入的依赖 124 1.4.9 内存 126 1.4.10 展望 129 1.5 案例研究:union-find算法 136 1.5.1 动态连通性 136 1.5.2 实现 140 1.5.3 展望 148 第2章 排序 152 2.1 初级排序算法 153 2.1.1 游戏规则 153 2.1.2 选择排序 155 2.1.3 插入排序 157 2.1.4 排序算法的可视化 159 2.1.5 比较两种排序算法 159 2.1.6 希尔排序 162 2.2 归并排序 170 2.2.1 原地归并的抽象方法 170 2.2.2 自顶向下的归并排序 171 2.2.3 自底向上的归并排序 175 2.2.4 排序算法的复杂度 177 2.3 快速排序 182 2.3.1 基本算法 182 2.3.2 性能特点 185 2.3.3 算法改进 187 2.4 优先队列 195 2.4.1 API 195 2.4.2 初级实现 197 2.4.3 堆的定义 198 2.4.4 堆的算法 199 2.4.5 堆排序 205 2.5 应用 214 2.5.1 将各种数据排序 214 2.5.2 我应该使用哪种排序算法 218 2.5.3 问题的归约 219 2.5.4 排序应用一览 221 第3章 查找 227 3.1 符号表 228 3.1.1 API 228 3.1.2 有序符号表 230 3.1.3 用例举例 233 3.1.4 无序链表中的顺序查找 235 3.1.5 有序数组中的二分查找 238 3.1.6 对二分查找的分析 242 3.1.7 预览 244 3.2 二叉查找树 250 3.2.1 基本实现 250 3.2.2 分析 255 3.2.3 有序性相关的方法与删除操作 257 3.3 平衡查找树 269 3.3.1 2-3查找树 269 3.3.2 红黑二叉查找树 275 3.3.3 实现 280 3.3.4 删除操作 282 3.3.5 红黑树的性质 284 3.4 散列表 293 3.4.1 散列函数 293 3.4.2 基于拉链法的散列表 297 3.4.3 基于线性探测法的散列表 300 3.4.4 调整数组大小 304 3.4.5 内存使用 306 3.5 应用 312 3.5.1 我应该使用符号表的哪种实现 312 3.5.2 集合的API 313 3.5.3 字典类用例 315 3.5.4 索引类用例 318 3.5.5 稀疏向量 322 第4章 图 329 4.1 无向图 331 4.1.1 术语表 331 4.1.2 表示无向图的数据类型 333 4.1.3 深度优先搜索 338 4.1.4 寻找路径 342 4.1.5 广度优先搜索 344 4.1.6 连通分量 349 4.1.7 符号图 352 4.1.8 总结 358 4.2 有向图 364 4.2.1 术语 364 4.2.2 有向图的数据类型 365 4.2.3 有向图中的可达性 367 4.2.4 环和有向无环图 369 4.2.5 有向图中的强连通性 378 4.2.6 总结 385 4.3 最小生成树 390 4.3.1 原理 391 4.3.2 加权无向图的数据类型 393 4.3.3 最小生成树的API和测试用例 396 4.3.4 Prim算法 398 4.3.5 Prim算法的即时实现 401 4.3.6 Kruskal算法 404 4.3.7 展望 407 4.4 最短路径 412 4.4.1 最短路径的性质 413 4.4.2 加权有向图的数据结构 414 4.4.3 最短路径算法的理论基础 420 4.4.4 Dijkstra算法 421 4.4.5 无环加权有向图中的最短路径算法 425 4.4.6 一般加权有向图中的最短路径问题 433 4.4.7 展望 445 第5章 字符串 451 5.1 字符串排序 455 5.1.1 键索引计数法 455 5.1.2 低位优先的字符串排序 458 5.1.3 高位优先的字符串排序 461 5.1.4 三向字符串快速排序 467 5.1.5 字符串排序算法的选择 470 5.2 单词查找树 474 5.2.1 单词查找树 475 5.2.2 单词查找树的性质 483 5.2.3 三向单词查找树 485 5.2.4 三向单词查找树的性质 487 5.2.5 应该使用字符串符号表的哪种实现 489 5.3 子字符串查找 493 5.3.1 历史简介 493 5.3.2 暴力子字符串查找算法 494 5.3.3 Knuth-Morris-Pratt子字符串查找算法 496 5.3.4 Boyer-Moore字符串查找算法 502 5.3.5 Rabin-Karp指纹字符串查找算法 505 5.3.6 总结 509 5.4 正则表达式 514 5.4.1 使用正则表达式描述模式 514 5.4.2 缩略写法 516 5.4.3 正则表达式的实际应用 517 5.4.4 非确定有限状态自动机 518 5.4.5 模拟NFA的运行 520 5.4.6 构造与正则表达式对应的 5.5 数据压缩 529 5.5.1 游戏规则 529 5.5.2 读写二进制数据 530 5.5.3 局限 533 5.5.4 热身运动:基因组 534 5.5.5 游程编码 537 5.5.6 霍夫曼压缩 540 第6章 背景 558 索引 611

    2018-06-26
    1
  • 深度学习与计算机视觉 算法原理、框架应用与代码实现--OCR版

    本书全面介绍了深度学习及计算机视觉中基础的知识,并结合常见的应用场景和大量实例,带领读者进入丰富多彩的计算机视觉领域。作为一本“原理+实践”教程,本书在讲解原理的基础上,通过有趣的实例带领读者一步步亲自动手,不断提高动手能力,而不是枯燥和深奥原理的堆砌。 全书共13章,分为2篇。第1篇基础知识,介绍了人工智能发展历程、计算机视觉概要、深度学习和计算机视觉中的基础数学知识、神经网络及其相关的机器学习基础、卷积神经网络及其一些常见结构,最后对前沿的趋势进行了简单探讨。第2篇实例精讲,介绍了Python基础、OpneCV基础、简单的分类神经网络、图像识别、利用Caffe做回归、迁移学习和模型微调、目标检测、度量学习和图像风格迁移等常见的计算机视觉应用场景。本书从第5章开始包含很多有趣和实用的代码示例。从第7章开始的所有实例都基于当前流行的深度学习框架Caffe和MXNet,其中包含作者原创的大量代码和搜集的数据,这些代码和作者训练好的部分模型已分享到本书github页面上供读者自行下载。 本书适合对人工智能、机器学习、深度学习和计算机视觉感兴趣的读者阅读。阅读本书要求读者具备一定的数学基础和基本的编程能力,并需要读者了解Linux的基本使用。 一分钟了解本书精华内容 引言 深度学习和计算机视觉中的基础数学知识 神经网络和机器学习基础 深度卷积神经网络 Python基础 OpenCV基础 Hello World! 简单的图片分类——手写数字识别 利用Caffe做回归 迁移学习和模型微调 目标检测 度量学习 图像风格迁移 序言 前言 第1篇 基础知识 第1章 引言 2 1.1 人工智能的新焦点——深度学习 2 1.1.1 人工智能——神话传说到影视漫画 2 1.1.2 人工智能的诞生 3 1.1.3 神经科学的研究 4 1.1.4 人工神经网络的兴起 5 1.1.5 神经网络的第一次寒冬 6 1.1.6 神经网络的第一次复兴 8 1.1.7 神经网络的第二次寒冬 9 1.1.8 2006年——深度学习的起点 10 1.1.9 生活中的深度学习 11 1.1.10 常见深度学习框架简介 12 1.2 给计算机一双眼睛——计算机视觉 14 1.2.1 计算机视觉简史 14 1.2.2 2012年——计算机视觉的新起点 16 1.2.3 计算机视觉的应用 17 1.2.4 常见计算机视觉工具包 19 1.3 基于深度学习的计算机视觉 19 1.3.1 从ImageNet竞赛到AlphaGo战胜李世石——计算机视觉超越人类 19 1.3.2 GPU和并行技术——深度学习和计算视觉发展的加速器 21 1.3.3 基于卷积神经网络的计算机视觉应用 22 第2章 深度学习和计算机视觉中的基础数学知识 27 2.1 线性变换和非线性变换 27 2.2 概率论及相关基础知识 43 2.3 维度的诅咒 50 2.4 卷积 66 2.5 数学优化基础 71 第3章 神经网络和机器学习基础 87 3.1 感知机 87 3.2 神经网络基础 89 3.3 后向传播算法 95 3.4 随机梯度下降和批量梯度下降 104 3.5 数据、训练策略和规范化 108 3.6 监督学习、非监督学习、半监督学习和强化学习 117 第4章 深度卷积神经网络 120 4.1 卷积神经网络 120 4.2 LeNet——第一个卷积神经网络 132 4.3 新起点——AlexNet 133 4.4 更深的网络——GoogLeNet 136 4.5 更深的网络——ResNet 142 第2篇 实例精讲 第5章 Python基础 148 5.1 Python简介 148 5.2 Python基本语法 150 5.3 Python的科学计算包——NumPy 167 5.4 Python的可视化包——matplotlib 175 第6章 OpenCV基础 182 6.1 OpenCV简介 182 6.2 Python-OpenCV基础 184 6.3 用OpenCV实现数据增加小工具 193 6.4 用OpenCV实现物体标注小工具 203 第7章 Hello World! 212 7.1 用MXNet实现一个神经网络 212 7.2 用Caffe实现一个神经网络 219 第8章 最简单的图片分类——手写数字识别 227 8.1 准备数据——MNIST 227 8.2 基于Caffe的实现 228 8.3 基于MXNet的实现 242 第9章 利用Caffe做回归 249 9.1 回归的原理 249 9.2 预测随机噪声的频率 250 第10章 迁移学习和模型微调 264 10.1 吃货必备——通过Python采集美食图片 264 10.2 美食分类模型 271 第11章 目标检测 288 11.1 目标检测算法简介 288 11.2 基于PASCAL VOC数据集训练SSD模型 296 第12章 度量学习 304 12.1 距离和度量学习 304 12.2 用MNIST训练Siamese网络 307 第13章 图像风格迁移 317 13.1 风格迁移算法简介 317 13.2 MXNet中的图像风格迁移例子 320

    2018-06-09
    5
  • Python神经网络编程(高清,带详细书签)

    本书首先从简单的思路着手,详细介绍了理解神经网络如何工作所必须的基础知识。第一部分介绍基本的思路,包括神经网络底层的数学知识,第2部分是实践,介绍了学习Python编程的流行和轻松的方法,从而逐渐使用该语言构建神经网络,以能够识别人类手写的字母,特别是让其像专家所开发的网络那样地工作。第3部分是扩展,介绍如何将神经网络的性能提升到工业应用的层级,甚至让其在Raspberry Pi上工作。 第 1 章 神经网络如何工作001 1.1 尺有所短,寸有所长 001 1.2 一台简单的预测机 003 1.3 分类器与预测器并无太大差别008 1.4 训练简单的分类器 011 1.5 有时候一个分类器不足以求解问题 020 1.6 神经元——大自然的计算机器 024 1.7 在神经网络中追踪信号 033 1.8 凭心而论,矩阵乘法大有用途 037 1.9 使用矩阵乘法的三层神经网络示例 043 1.10 学习来自多个节点的权重 051 1.11 多个输出节点反向传播误差053 1.12 反向传播误差到更多层中 054 1.13 使用矩阵乘法进行反向传播误差 058 1.14 我们实际上如何更新权重 061 1.15 权重更新成功范例 077 1.16 准备数据 078 第 2 章 使用Python进行DIY 083 2.1 Python 083 2.2 交互式Python = IPython 084 2.3 优雅地开始使用Python 085 2.4 使用Python制作神经网络 105 2.5 手写数字的数据集MNIST 121 第 3 章 趣味盎然 153 3.1 自己的手写数字 153 3.2 神经网络大脑内部 156 3.3 创建新的训练数据:旋转图像 160 3.4 结语 164 附录A 微积分简介 165 A.1 一条平直的线 166 A.2 一条斜线 168 A.3 一条曲线 170 A.4 手绘微积分 172 A.5 非手绘微积分 174 A.6 无需绘制图表的微积分 177 A.7 模式 180 A.8 函数的函数 182 附录B 使用树莓派来工作 186 B.1 安装IPython 187 B.2 确保各项工作正常进行 193 B.3 训练和测试神经网络 194 B.4 树莓派成功了 195

    2018-06-09
    39
  • 深度学习入门之pytorch(完整版)

    深度学习入门之pytorch(完整版)(清晰版) 深度学习如今已经成为了科技领域最炙手可热的技术,在本书中,我们将帮助你入门深度学习的领域。本书将从人工智能的介绍入手,了解机器学习和深度学习的基础理论,并学习如何用PyTorch框架对模型进行搭建。通过阅读本书,你将会学习到机器学习中的线性回归和logistic回归,深度学习的优化方法,多层全连接神经网络,卷积神经网络,循环神经网络以及生成对抗网络,同时从零开始对PyTorch进行学习,了解PyTorch基础及如何用其进行模型的搭建,最后通过实战了解最前沿的研究成果和PyTorch在实际项目中的应用。 第1章 深度学习介绍 1 1.1 人工智能 1 1.2 数据挖掘、机器学习与深度学习 2 1.2.1 数据挖掘 3 1.2.2 机器学习 3 1.2.3 深度学习 4 1.3 学习资源与建议 8 第2章 深度学习框架 11 2.1 深度学习框架介绍 11 2.2 PyTorch 介绍 13 2.2.1 什么是PyTorch 13 2.2.2 为何要使用PyTorch 14 2.3 配置PyTorch 深度学习环境 15 2.3.1 操作系统的选择 15 2.3.2 Python 开发环境的安装 16 2.3. 3 PyTorch 的安装 18 第3章 多层全连接神经网络 24 3.1 热身:PyTorch 基础 24 3.1.1 Tensor(张量) 24 3.1.2 Variable(变量) 26 3.1.3 Dataset(数据集) 28 3.1.4 nn.Module(模组) 29 3.1.5 torch.optim(优化) 30 3.1.6 模型的保存和加载 31 3.2 线性模型 32 3.2.1 问题介绍 32 3.2.2 一维线性回归 33 3.2.3 多维线性回归 34 3.2.4 一维线性回归的代码实现 35 3.2.5 多项式回归 38 3.3 分类问题 42 3.3.1 问题介绍 42 3.3.2 Logistic 起源 42 3.3.3 Logistic 分布 42 3.3.4 二分类的Logistic 回归 43 3.3.5 模型的参数估计 44 3.3.6 Logistic 回归的代码实现 45 3.4 简单的多层全连接前向网络 49 3.4.1 模拟神经元 49 3.4.2 单层神经网络的分类器 50 3.4.3 激活函数 51 3.4.4 神经网络的结构 54 3.4.5 模型的表示能力与容量 55 3.5 深度学习的基石:反向传播算法 57 3.5.1 链式法则 57 3.5.2 反向传播算法 58 3.5.3 Sigmoid 函数举例 58 3.6 各种优化算法的变式 59 3.6.1 梯度下降法 59 3.6.2 梯度下降法的变式 62 3.7 处理数据和训练模型的技巧 64 3.7.1 数据预处理 64 3.7.2 权重初始化 66 3.7.3 防止过拟合 67 3.8 多层全连接神经网络实现MNIST 手写数字分类 69 3.8.1 简单的三层全连接神经网络 70 3.8.2 添加激活函数 70 3.8.3 添加批标准化 71 3.8.4 训练网络 71 第4章 卷积神经网络 76 4.1 主要任务及起源 76 4.2 卷积神经网络的原理和结构 77 4.2.1 卷积层 80 4.2.2 池化层 84 4.2.3 全连接层 85 4.2.4 卷积神经网络的基本形式 85 4.3 PyTorch 卷积模块 87 4.3.1 卷积层 87 4.3.2 池化层 88 4.3.3 提取层结构 90 4.3.4 如何提取参数及自定义初始化 91 4.4 卷积神经网络案例分析 92 4.4.1 LeNet 93 4.4.2 AlexNet 94 4.4.3 VGGNet 95 4.4.4 GoogLeNet 98 4.4.5 ResNet 100 4.5 再实现MNIST 手写数字分类 103 4.6 图像增强的方法 105 4.7 实现cifar10 分类 107 第5章 循环神经网络 111 5.1 循环神经网络 111 5.1.1 问题介绍 112 5.1.2 循环神经网络的基本结构 112 5.1.3 存在的问题 115 5.2 循环神经网络的变式:LSTM 与GRU 116 5.2.1 LSTM 116 5.2.2 GRU 119 5.2.3 收敛性问题 120 5.3 循环神经网络的PyTorch 实现 122 5.3.1 PyTorch 的循环网络模块 122 5.3.2 实例介绍 127 5.4 自然语言处理的应用 131 5.4.1 词嵌入 131 5.4.2 词嵌入的PyTorch 实现 133 5.4.3 N Gram 模型 133 5.4.4 单词预测的PyTorch 实现 134 5.4.5 词性判断 136 5.4.6 词性判断的PyTorch 实现 137 5.5 循环神经网络的更多应用 140 5.5.1 Many to one 140 5.5.2 Many to Many(shorter) 141 5.5.3 Seq2seq 141 5.5.4 CNN+RNN 142 第6章 生成对抗网络 144 6.1 生成模型 144 6.1.1 自动编码器 145 6.1.2 变分自动编码器 150 6.2 生成对抗网络 153 6.2.1 何为生成对抗网络 153 6.2.2 生成对抗网络的数学原理 160 6.3 Improving GAN 164 6.3.1 Wasserstein GAN 164 6.3.2 Improving WGAN 167 6.4 应用介绍 168 6.4.1 Conditional GAN 168 6.4.2 Cycle GAN 170 第7章 深度学习实战 173 7.1 实例一——猫狗大战:运用预训练卷积神经网络进行特征提取与预测. 173 7.1.1 背景介绍 174 7.1.2 原理分析 174 7.1.3 代码实现 177 7.1.4 总结 183 7.2 实例二——Deep Dream:探索卷积神经网络眼中的世界 183 7.2.1 原理介绍 184 7.2.2 预备知识:backward 185 7.2.3 代码实现 190 7.2.4 总结 195 7.3 实例三——Neural-Style:使用PyTorch 进行风格迁移 196 7.3.1 背景介绍 196 7.3.2 原理分析 197 7.3.3 代码实现 199 7.3.4 总结 205 7.4 实例四——Seq2seq:通过RNN 实现简单的Neural Machine Translation 205 7.4.1 背景介绍 206 7.4.2 原理分析 206 7.4.3 代码实现 209 7.4.4 总结 221

    2018-06-09
    50
  • 21个项目玩转深度学习:基于Tensorflow的实践详解

    21个项目玩转深度学习:基于Tensorflow的实践详解 《21 个项目玩转深度学习——基于TensorFlow 的实践详解》以实践为导向,深入介绍了深度学习技术和TensorFlow 框架编程内容。 通过本书,读者可以训练自己的图像识别模型、进行目标检测和人脸识别、完成一个风格迁移应用,还可以使用神经网络生成图像和文本,进行时间序列预测、搭建机器翻译引擎,训练机器玩游戏。全书共包含21 个项目,分为深度卷积网络、RNN网络、深度强化学习三部分。读者可以在自己动手实践的过程中找到学习的乐趣,了解算法和编程框架的细节,让学习深度学习算法和TensorFlow 的过程变得轻松和高效。本书代码基于TensorFlow 1.4 及以上版本,并介绍了TensorFlow 中的一些新特性。 前言 1章 MNIST机器学习入门 1 1.1 MNIST数据集 2 1.1.1 简介 2 1.1.2 实验:将MNIST数据集保存为图片 5 1.1.3 图像标签的独热(one-hot)表示 6 1.2 利用TensorFlow识别MNIST 8 1.2.1 Softmax回归 8 1.2.2 两层卷积网络分类 14 1.3 总结 18 2章 CIFAR-10与ImageNet图像识别 19 2.1 CIFAR-10数据集 20 2.1.1 CIFAR-10简介 20 2.1.2 下载CIFAR-10数据 21 2.1.3 TensorFlow的数据读取机制 23 2.1.4 实验:将CIFAR-10数据集保存为图片形式 30 2.2 利用TensorFlow训练CIFAR-10识别模型 34 2.2.1 数据增强(Data Augmentation) 34 2.2.2 CIFAR-10识别模型 36 2.2.3 训练模型 39 2.2.4 在TensorFlow中查看训练进度 39 2.2.5 测试模型效果 42 2.3 ImageNet图像识别模型 44 2.3.1 ImageNet数据集简介 44 2.3.2 历代ImageNet图像识别模型 45 2.4 总结 49 3章 打造自己的图像识别模型 50 3.1 微调(Fine-tune)的原理 51 3.2 数据准备 52 3.3 使用TensorFlow Slim微调模型 56 3.3.1 下载TensorFlow Slim的源代码 56 3.3.2 定义新的datasets文件 57 3.3.3 准备训练文件夹 59 3.3.4 开始训练 60 3.3.5 训练程序行为 62 3.3.6 验证模型正确率 63 3.3.7 TensorBoard可视化与参数选择 64 3.3.8 导出模型并对单张图片进行识别 65 3.4 总结 69 4章 Deep Dream模型 70 4.1 Deep Dream的技术原理 71 4.2 TensorFlow中的Deep Dream模型实践 73 4.2.1 导入Inception模型 73 4.2.2 生成原始的Deep Dream图像 76 4.2.3 生成更大尺寸的Deep Dream图像 78 4.2.4 生成更高质量的Deep Dream图像 82 4.2.5 终的Deep Dream模型 87 4.3 总结 90 5章 深度学习中的目标检测 91 5.1 深度学习中目标检测的原理 92 5.1.1 R-CNN的原理 92 5.1.2 SPPNet的原理 94 5.1.3 Fast R-CNN的原理 97 5.1.4 Faster R-CNN的原理 98 5.2 TensorFlow Object Detection API 101 5.2.1 安装TensorFlow Object Detection API 101 5.2.2 执行已经训练好的模型 103 5.2.3 训练新的模型 109 5.2.4 导出模型并预测单张图片 113 5.3 总结 114 6章 人脸检测和人脸识别 115 6.1 MTCNN的原理 116 6.2 使用深度卷积网络提取特征 121 6.2.1 三元组损失(Triplet Loss)的定义 123 6.2.2 中心损失(Center Loss)的定义 123 6.3 使用特征设计应用 125 6.4 在TensorFlow中实现人脸识别 126 6.4.1 项目环境设置 126 6.4.2 LFW人脸数据库 127 6.4.3 LFW数据库上的人脸检测和对齐 128 6.4.4 使用已有模型验证LFW数据库准确率 129 6.4.5 在自己的数据上使用已有模型 130 6.4.6 重新训练新模型 133 6.4.7 三元组损失和中心损失的定义 138 6.5 总结 140 7章 图像风格迁移 141 7.1 图像风格迁移的原理 142 7.1.1 原始图像风格迁移的原理 142 7.1.2 快速图像风格迁移的原理 148 7.2 在TensorFlow中实现快速风格迁移 149 7.2.1 使用预训练模型 150 7.2.2 训练自己的模型 153 7.2.3 在TensorBoard中监控训练情况 154 7.2.4 项目实现细节 157 7.3 总结 162 8章 GAN和DCGAN入门 163 8.1 GAN的原理 164 8.2 DCGAN的原理 166 8.3 在TensorFlow中用DCGAN生成图像 169 8.3.1 生成MNIST图像 170 8.3.2 使用自己的数据集训练 171 8.3.3 程序结构分析:如何将图像读入模型 173 8.3.4 程序结构分析:可视化方法 177 8.4 总结 180 9章 pix2pix模型与自动上色技术 181 9.1 cGAN的原理 182 9.2 pix2pix模型的原理 184 9.3 TensorFlow中的pix2pix模型 187 9.3.1 执行已有的数据集 187 9.3.2 创建自己的数据集 191 9.4 使用TensorFlow为灰度图像自动上色 194 9.4.1 为食物图片上色 194 9.4.2 为动漫图片进行上色 196 9.5 总结 198 10章 分辨率:如何让图像变得更清晰 199 10.1 数据预处理与训练 200 10.1.1 去除错误图片 200 10.1.2 将图像裁剪到统一大小 202 10.1.3 为代码添加新的操作 202 10.2 总结 209 11章 CycleGAN与非配对图像转换 210 11.1 CycleGAN的原理 211 11.2 在TensorFlow中用训练CycleGAN模型 213 11.2.1 下载数据集并训练 213 11.2.2 使用自己的数据进行训练 217 11.3 程序结构分析 220 11.4 总结 224 12章 RNN基本结构与Char RNN文本生成 225 12.1 RNN的原理 226 12.1.1 经典RNN的结构 226 12.1.2 N VS 1 RNN的结构 229 12.1.3 1 VS N RNN的结构 230 12.2 LSTM的原理 231 12.3 Char RNN的原理 235 12.4 TensorFlow中的RNN实现方式 237 12.4.1 实现RNN的基本单元:RNNCell 238 12.4.2 对RNN进行堆叠:MultiRNNCell 239 12.4.3 注意点:BasicRNNCell和BasicLSTMCell的output 240 12.4.4 使用tf.nn.dynamic_rnn展开时间维度 241 12.5 使用TensorFlow实现Char RNN 242 12.5.1 定义输入数据 243 12.5.2 定义多层LSTM模型 244 12.5.3 定义损失 245 12.5.4 训练模型与生成文字 246 12.5.5 更多参数说明 250 12.5.6 运行自己的数据 250 12.6 总结 251 13章 序列分类问题详解 252 13.1 N VS 1的RNN结构 253 13.2 数列分类问题与数据生成 254 13.3 在TensorFlow中定义RNN分类模型 258 13.3.1 定义模型前的准备工作 258 13.3.2 定义RNN分类模型 259 13.3.3 定义损失并进行训练 261 13.4 模型的推广 262 13.5 总结 263 14章 词的向量表示:word2vec与词嵌入 264 14.1 为什么需要做词嵌入 265 14.2 词嵌入的原理 266 14.2.1 CBOW实现词嵌入的原理 266 14.2.2 Skip-Gram实现词嵌入的原理 269 14.3 在TensorFlow中实现词嵌入 270 14.3.1 下载数据集 270 14.3.2 制作词表 272 14.3.3 生成每步的训练样本 274 14.3.4 定义模型 276 14.3.5 执行训练 279 14.3.6 可视化 281 14.4 与12章的对比 284 14.5 总结 285 15章 在TensorFlow中进行时间序列预测 286 15.1 时间序列问题的一般形式 287 15.2 用TFTS读入时间序列数据 287 15.2.1 从Numpy数组中读入时间序列数据 288 15.2.2 从CSV文件中读入时间序列数据 291 15.3 使用AR模型预测时间序列 293 15.3.1 AR模型的训练 293 15.3.2 AR模型的验证和预测 295 15.4 使用LSTM模型预测时间序列 297 15.4.1 LSTM模型中的单变量时间序列预测 297 15.4.2 LSTM模型中的多变量时间序列预测 299 15.5 总结 301 16章 神经网络机器翻译技术 302 16.1 Encoder-Decoder模型的原理 303 16.2 注意力机制(Attention) 305 16.3 使用TensorFlow NMT搭建神经网络翻译引擎 309 16.3.1 示例:将越南语翻译为英语 309 16.3.2 构建中英翻译引擎 313 16.4 TensorFlow NMT源码简介 317 16.5 总结 319 17章 看图说话:将图像转换为文字 320 17.1 Image Caption技术综述 321 17.1.1 从Encoder-Decoder结构谈起 321 17.1.2 将Encoder-Decoder应用到Image Caption任务上 322 17.1.3 对Encoder-Decoder的改进1:加入Attention机制 323 17.1.4 对Encoder-Decoder的改进2:加入高层语义 325 17.2 在TensorFlow中实现Image Caption 327 17.2.1 下载代码 327 17.2.2 环境准备 328 17.2.2 编译和数据准备 328 17.2.3 训练和验证 330 17.2.4 测试单张图片 331 17.3 总结 332 18章 强化学习入门之Q 333 18.1 强化学习中的几个重要概念 334 18.2 Q Learning的原理与实验 336 18.2.1 环境定义 336 18.2.2 Q函数 338 18.2.3 Q函数的学习策略 339 18.2.4 ?-greedy策略 341 18.2.5 简单的Q Learning示例 341 18.2.6 更复杂的情况 342 18.3 总结 343 19章 强化学习入门之SARSA算法 344 19.1 SARSA 算法的原理 345 19.1.1 通过与Q Learning对比学习SARSA算法 345 19.1.2 off-policy与on-policy 346 19.2 SARSA 算法的实现 347 19.3 总结 348 20章 深度强化学习:Deep Q Learning 349 20.1 DQN算法的原理 350 20.1.1 问题简介 350 20.1.2 Deep Q Network 351 20.1.3 训练方法 352 20.2 在TensorFlow中运行DQN算法 353 20.2.1 安装依赖库 353 20.2.2 训练 355 20.2.3 测试 356 20.3 在TensorFlow中DQN算法的实现分析 357 20.4 总结 360 21章 策略梯度(Policy Gradient)算法 361 21.1 策略梯度(Policy Gradient)算法的原理 362 21.1.1 Cartpole游戏 362 21.1.2 策略网络(Policy Network) 363 21.1.3 训练策略网络 364 21.2 在TensorFlow中实现策略梯度 算法 365 21.2.1 初始化 365 21.2.2 定义策略网络 366 21.2.3 训练 367 21.3 总结 371

    2018-06-09
    21
  • 系统辨识与自适应控制+仿真程序程序

    该资源共有两部分 一部分是是自适应控制与系统辨识教材,并且带有matlab仿真实例。 一部分是LQG自校正器的算法,使用LQG自校正控制器的系统,未使用LQG自校正控制器的系统,实验要求和MATLAB的m文件程序。

    2018-05-30
    27
img
zzz7763
  • 签到新秀

    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 分享精英

    成功上传11个资源即可获取

关注 私信