自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (359)
  • 收藏
  • 关注

转载 【Visual C++】游戏开发笔记十三 游戏输入消息处理(二) 鼠标消息处理

上一节我们讲解了键盘消息处理相关的知识。键盘加鼠标作为目前人机交互方式依旧的主流,在讲完键盘消息处理之后接着讲鼠标消息处理,自然是理所当然的。 这一节主要介绍各种鼠标消息的处理方式以及一些相关函数的运用方法,然后用一个小实例来巩固本节所学。一,鼠标消息的处理方式大家都知道,目前市场上主流鼠标规格为两个按键加上一个滚轮。那么,我们先列出Wi

2012-03-29 16:29:56 460

转载 【Visual C++】游戏开发笔记十二 游戏输入消息处理(一) 键盘消息处理

相信大家都熟悉《仙剑奇侠传98柔情版》的人机交互方式,用的仅仅是键盘。在那个物质并不充裕的时代,一台配置并不高的电脑,一款名叫《仙剑奇侠传》的游戏,却能承载一代人对梦想的追逐。虽然在这十几年间,各种新潮的游戏层出不穷,但是《仙剑奇侠传98柔情版》,作为国产单机游戏无法被超越的传奇,已经永远留在了我们这代人的心中。那是一个永远无法被取代的,最最唯美的梦。从这节笔记开始

2012-03-27 12:45:23 391

转载 【Visual C++】游戏开发笔记之十一 基础动画显示(四) 排序贴图

排序贴图”是源自于物体远近呈现的一种贴图概念。回忆我们之前笔记的贴图思想,先进行距离比较远的物体的贴图操作,然后再进行近距离物体的贴图操作,一旦定出贴图的顺序之后就无法再改变了。然而这样的作法在画面上物体会彼此遮掩的情况下就会不适用。也许会出现后面的物体反而遮住了前面的物体的这种不协调的画面。为了避免这种因为贴图顺序而固定而产生的错误画面,必须在每一次窗口重新显示时动态地重新决

2012-03-27 12:43:43 607

转载 【Visual C++】游戏开发笔记之十 基础动画显示(三) 透明动画的实现

"透明动画”是游戏中一定会用到的基本技巧,它通过图案的连续显示及图案本身背景的透明化处理,在背景图上产生出栩栩如生的动画效果。看过之前笔记的朋友们应该知道,在笔记六里我们介绍了使位图背景透明的方法,在笔记八里我们讲解了使用游戏循环显示动画的技巧,而这节笔记的内容,刚好是两者的一个综合。如果有没看过之前笔记系列的朋友,为了便于理解本节的内容,可以先浏览一下之前

2012-03-27 12:42:12 613

转载 【Visual C++】游戏开发笔记之八——基础动画显示(二)游戏循环的使用

在笔记七中我们讲解了用定时器来产生动画的效果。定时器的使用固然简单方便,但是事实上这样的方法仅适合用在显示简易动画及小型的游戏程序中。因为一般而言,游戏本身需要显示顺畅的游戏画面,使玩家感觉不到延迟的状态。基本游戏画面必须在一秒钟之内更新至少25次以上,这一秒钟内程序还必须进行消息的处理和大量数学运算甚至音效的输出等操作。而使用定时器的消息来驱动这些操作,往往达不到所要求的标准,不然就会产生画面显

2012-03-27 12:39:51 479

转载 【Visual C++】游戏开发笔记之七——基础动画显示(一)定时器的使用

定时器的使用定时器(Timer)对象可以每隔一段时间发出一个时间消息,程序一旦接收到此消息之后,便可以决定接下来要做哪些事情。这样的一个特性刚好可以适合播放静态的连续图片,产生动画的效果。下面来介绍如何建立与使用定时器。建立定时器Windows API 的SetTimer()函数可为窗口建立一个定时器,并说每隔一段时间就发出WM_TIMER消息,此函

2012-03-27 12:37:46 435

转载 【Visual C++】游戏开发笔记之六——游戏画面绘图(三)透明特效的制作方法

从这节开始我们来讲解制作一般2D游戏画面经常要使用到的绘图特效。笔记六我们主要介绍“透明”特效的制作方法。透明效果由于所有的图文件都是以矩形来储存的,我们也许会需要把一张怪兽图片贴到窗口的背景图上,而这种情况下如果直接进行贴图,结果如下图:这似乎不是我们想要的结果。为了得到透明效果,我们需要运用到BitBlt(

2012-03-27 12:36:38 436

转载 【Visual C++】游戏开发笔记之五——游戏画面绘图(二)绘制位图

以游戏文件来说,使用的位图数量相当多,因此都会先将位图存成文件,等到程序需要时再将文件加载到窗口中。将位图从文件加载带绘图窗口中必须经过一下几个步骤。从文件中加载位图对象建立一个与窗口DC兼容的内存DC内存DC只用步骤1中所建立的位图对象将内存DC的内容粘贴到窗口DC中,完成显像操作。下面进行这四个步骤的详细说明:步骤一:加载

2012-03-27 12:35:14 546

转载 【Visual C++】游戏开发笔记之四——游戏画面绘图(一)基本图形绘制

首先介绍一下GDI(Graphics Device Interface)。GDI,中文翻译为“图形设备接口”,是Windows API中相当重要的一个成员,它掌管了所有显像设备的图像显示及输出功能。Windows系统现在的图形操作环境都是他的功劳。Ⅰ.坐标与DC在实际利用GDI绘图之前,我们先来了解一下几个屏幕绘图的基本概论。▲创建一个窗口之后,显示

2012-03-27 12:33:37 628

转载 【 Visual C++】游戏开发笔记之三——绘制图元

使用Direct3D绘制图元我们接下来的部分将介绍使用Direct3D在屏幕上绘图的图元。计算机图形学中的图元是可以渲染到屏幕上的基本形状。将图元组合在一起可以构成不同的形状和物体,诸如人物模型、场景物体、墙、建筑物等。最常用的图元是三角形。在游戏中常使用三角形,这是因为这样可以优化现代图形硬件,有效处理这类图元。其他图元包括四方形、直线和多边形。多边形被认为是图形,它是由直线构成的封闭区

2012-03-27 12:32:09 525

转载 【 Visual C++】游戏开发笔记之二——最简单的DirectX,vc窗口的编写

笔记一中我们介绍了如何用代码创建空的win32窗口,然而创建空的win32窗口只完成了一半的工作,接下来要做的工作是设置Direct3D,从而可以在屏幕上渲染图形。Direct3D要调用很多函数才能成功设置API。一旦完成设置,并且设置成功,就可以向屏幕上渲染图形。下面是函数中设置Direct3D所需的最少代码。[cpp] view

2012-03-27 12:30:45 883

转载 DirectX开发环境的快速配置【转】

一个DirectX程序要想正确的编译和链接,需要下面三个主要前提一 安装DirectX SDK二 正确配置.h文件路径和.lib文件路径三 正确链接所需.lib文件详细步骤如下:一.安装DirectX SDK二.正确配置.h文件和.lib文件路径1. 启动VS,依次选择tools-option-pr

2012-03-27 12:29:01 331

转载 【Visual C++】游戏开发笔记之一——API函数、DirectX的关键系统

在从第一节开始看这个笔记系列的话,大家会发现,一上来就开始讲DirectX相关的内容,但是写了几节之后,又开始讲GDI了。这是因为我写完前几节后,发觉直接讲DirectX有些生硬。最后我想了一下,应该先梳理完GDI相关的重点知识,再来讲DirectX,毕竟游戏编程里面windows API是基础。所以先讲windows API,再来讲DirectX,这样会自然得多。————

2012-03-27 12:27:28 411

转载 【Visual C++】游戏开发笔记之九 游戏地图制作(一)平面地图贴图

地图是游戏元素里面不可缺少的一部分,要产生游戏地图,除了可以直接使用已经绘制好的位图外,对于一些画面不太复杂,并且具有重复性质的地图或场景,有一个比较好的解决方法,那就是利用地图拼接,将一小块一小块的小地图组合成较大的地图。地图拼接的有点在于节省系统资源,因为一张大型的地图会占用比较多的内存空间,且加载速度较慢,如果游戏中使用了为数较多的大型地图,那么势必会降低程序运行时的性能,而且需要相

2012-03-27 12:24:54 691

转载 [分享]24点源代码[使用扑克牌显示]

最近做了一个24点的程序,思想是循环生成4个数的排列和11种表达式,再计算结果,如果为24则成功。 注:生成的数使用扑克牌显示。 一些关键的类如下: 1.排列组合类 2.表达式计算类 3.24点计算类软件截图:对应的源代码如下: 1.排列组合类://-----------------------------------------------------

2012-03-26 10:56:03 659

转载 《深入理解Linux内核》读书笔记-第四章-中断和异常(1) .

中断(interrupt)通常被定义为一个事件,该事件改变处理器执行的指令顺序。这样的事件与CPU芯片内外部硬件电路产生的电信号相对应。中断通常分为同步(synchronous)中断和异步(asynchronous)中断:同步中断是当指令执行时由CPU控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后CPU才会发出中断。异步中断是由其他硬件设备依照CPU

2012-03-25 20:53:07 306

转载 《深入理解Linux内核》读书笔记-第三章-进程(2) .

进程切换:为了控制进程的执行,内核必须有能力挂起正在CPU上运行的进程,并恢复以前挂起的某个进程的执行,这种行为被称为进程切换、任务切换或上下文切换。硬件上下文:尽管每个进程可以拥有属于自己的地址空间,但所有进程必须共享CPU寄存器。因此,在恢复一个进程的执行之前,内核必须确保每个寄存器装入了挂起进程时的值。进程恢复执行前必须装入寄存器的一组数据称为硬件上下文。硬件

2012-03-25 20:52:19 428

转载 《深入理解Linux内核》读书笔记-第三章-进程(1) .

进程、轻量级进程和线程:从内核观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的实体。进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。最初的进程定义都包含程序、资源及其执行三部分,其中程序通常指代码,资源在操作系统层面上通常包括内存资源、IO资源、信

2012-03-25 20:51:34 347

转载 进程、轻量级进程和线程的一些点 .

从内核观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的实体。进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。最初的进程定义都包含程序、资源及其执行三部分,其中程序通常指代码,资源在操作系统层面上通常包括内存资源、IO资源、信号处理等部分,而程序的执行通

2012-03-25 20:50:44 301

转载 关于“实模式”和“保护模式” .

今天整理读书笔记,发现了一个之前没注意到的,或者自己一直忽略的地方:《深入理解Linux内核》一书中,关于内存寻址这一章,提到了“硬件中的分段”、“Linux中的分段”、“硬件中的分页”和“Linux中的分页”四个概念,所谓的硬件上的分段、分页,是针对CPU在实模式下,即操作系统尚未加载启动之前所采用的内存寻址方式,而软件上的分段、分页,则是CPU在保护模式下,即操作系统启动后所采用的

2012-03-25 20:49:58 280

转载 《深入理解Linux内核》读书笔记-第二章-内存寻址(2) .

硬件中的分页:32位的线性地址被分成3个域:高10位:页目录表中间10位:页表低12位:页表内偏移使用二级页表模式的目的在于减少每个进程页表所需RAM数量。如果是一级页表,则需高达220个表项,而二级模式只为进程实际使用的那些虚拟内存区请求页表。页目录项和页表项有同样的结构,均包含了一些属性字段。评:段页属性字段的设置很有意义,分段、

2012-03-25 20:49:10 428 2

转载 LINUX 和 WINDOWS 内核的区别

[声明:欢迎转载,转载请注明出自CU ACCESSORY http://linux.chinaunix.net/bbs/thread-1153868-1-1.html]关于LINUX和WINDOWS的口水站已经很多了。本文企图从技术角度来比较下2个主流操作系统的异同。偏重于内核部分。一、动机:我最早是 WINDOWS 阵营的。在WINDOWS下写过2年多的驱动程序。

2012-03-25 20:47:40 261

转载 《深入理解Linux内核》读书笔记-第二章-内存寻址(1) .

内存地址:逻辑地址:包含在机器语言指令中用来指定一个操作数或一条指令的地址。线性地址:一个32位无符号整数,也称虚拟地址。物理地址:用于内存芯片级内存单元寻址,与从微处理器的地址引脚发送到内存总线上的电信号相对应。在多处理器系统中,所有CPU都共享同一内存,这意味着,RAM芯片可以由独立的CPU并发地访问。由于RAM芯片上的读或写操作必须串行地执行,

2012-03-25 20:46:29 443

转载 物理地址扩展(PAE)分页机制 .

Intel通过在处理器上把管脚数从32增加到36,以提高处理器的寻址能力,使其达到2^36=64GB,为此,需引入一种新的分页机制。        64GB的RAM被分为2^24个页框,页表项的物理地址字段从20位扩展到24位,每个页表项必须包含12个标志位(固定)和24个物理地址位(36-12),共36位,因此,每个页表项须从32位扩展到64位(36位>32位,考虑到对齐,因此应

2012-03-25 20:45:25 509

转载 《深入理解Linux内核》读书笔记 第一章 绪论(2) .

五、Unix内核概述:Unix内核提供了应用程序可以运行的执行环境。因此,内核必须实现一组服务及相应的接口,应用程序使用这些接口,而且通常不会与硬件资源直接交互。进程/内核模式:所有标准的Unix内核都仅仅利用了内核态和用户态。一个程序执行时,大部分时间都处在用户态下,只有需要内核所提供的服务时才切换到内核态。当内核满足了用户程序的请

2012-03-25 20:43:54 377

转载 《深入理解Linux内核》读书笔记 第一章 绪论(1) .

一、Linux与其它类Unix内核的比较:单块结构的内核:由几个逻辑上独立的成分构成,单块结构,大多数据商用Unix变体也是单块结构;编译并静态连接的传统Unix内核:Linux能自动按需动态地装载和卸载部分内核代码(模块),而传统Unix内核仅支持静态连接;内核线程:Linux以一种十分有限的方式使用内核线程来周期性地执行几个内核函数,而一些Unix内核则本身

2012-03-25 20:42:54 436

转载 《复杂网络理论及应用》

1      基本概念1.1.1  聚类系数:某个顶点i , 与之相连的三角形数量/与之相连的三元组的数量。1.1.2  度及度的分布      完全随机网络的度的分布近似为Poisson分布。其中,Poisson分布近似的可以认为是二项分布nà∞,p很小,np ~λ时的近似,泊松分布的均值λ~np。这样的网络也称为均匀网络。      幂律分布,度

2012-03-25 16:06:57 6814

UNIX网络编程 卷2:进程间通信

第一部分 简介   第1章 简介 2   1.1 概述 2   1.2 进程、线程与信息共享 3   1.3 IPC对象的持续性 4   1.4 名字空间 5   1.5 fork、exec和exit对IPC对象的影响 7   1.6 出错处理:包裹函数 8   1.7 Unix标准 9   1.8 书中IPC例子索引表 11   1.9 小结 13   习题 13   第2章 Posix IPC 14   2.1 概述 14   2.2 IPC名字 14   2.3 创建与打开IPC通道 16   2.4 IPC权限 18   2.5 小结 19   习题 19   第3章 System V IPC 20   .3.1 概述 20   3.2 key_t键和ftok函数 20   3.3 ipc_perm结构 22   3.4 创建与打开IPC通道 22   3.5 IPC权限 24   3.6 标识符重用 25   3.7 ipcs和ipcrm程序 27   3.8 内核限制 27   3.9 小结 28   习题 29   第二部分 消息传递   第4章 管道和FIFO 32   4.1 概述 32   4.2 一个简单的客户-服务器例子 32   4.3 管道 32   4.4 全双工管道 37   4.5 popen和pclose函数 39   4.6 FIFO 40   4.7 管道和FIFO的额外属性 44   4.8 单个服务器,多个客户 46   4.9 对比迭代服务器与并发服务器 50   4.10 字节流与消息 51   4.11 管道和FIFO限制 55   4.12 小结 56   习题 57   第5章 Posix消息队列 58   5.1 概述 58   5.2 mq_open、mq_close和mq_unlink函数 59   5.3 mq_getattr和mq_setattr函数 61   5.4 mq_send和mq_receive函数 64   5.5 消息队列限制 67   5.6 mq_notify函数 68   5.7 Posix实时信号 78   5.8 使用内存映射I/O实现Posix消息队列 85   5.9 小结 101   习题 101   第6章 System V消息队列 103   6.1 概述 103   6.2 msgget函数 104   6.3 msgsnd函数 104   6.4 msgrcv函数 105   6.5 msgctl函数 106   6.6 简单的程序 107   6.7 客户-服务器例子 112   6.8 复用消息 113   6.9 消息队列上使用select和poll 121   6.10 消息队列限制 122   6.11 小结 124   习题 124   第三部分 同步   第7章 互斥锁和条件变量 126   7.1 概述 126   7.2 互斥锁:上锁与解锁 126   7.3 生产者-消费者问题 127   7.4 对比上锁与等待 131   7.5 条件变量:等待与信号发送 132   7.6 条件变量:定时等待和广播 136   7.7 互斥锁和条件变量的属性 136   7.8 小结 139   习题 139   第8章 读写锁 140   8.1 概述 140   8.2 获取与释放读写锁 140   8.3 读写锁属性 141   8.4 使用互斥锁和条件变量实现读写锁 142   8.5 线程取消 148   8.6 小结 153   习题 153   第9章 记录上锁 154   9.1 概述 154   9.2 对比记录上锁与文件上锁 157   9.3 Posix fcntl记录上锁 158   9.4 劝告性上锁 162   9.5 强制性上锁 164   9.6 读出者和写入者的优先级 166   9.7 启动一个守护进程的唯一副本 170   9.8 文件作锁用 171   9.9 NFS上锁 173   9.10 小结 173   习题 174   第10章 Posix信号量 175   10.1 概述 175   10.2 sem_open、sem_close和sem_   unlink函数 179   10.3 sem_wait和sem_trywait函数 180   10.4 sem_post和sem_getvalue函数 180   10.5 简单的程序 181   10.6 生产者-消费者问题 186   10.7 文件上锁 190   10.8 sem_init和sem_destroy函数 191   10.9 多个生产者,单个消费者 193   10.10 多个生产者,多个消费者 19

2015-06-16

UNIX网络编程 卷1:套接字联网API

第一部分 简介和TCP/IP 第1章 简介 第2章 传输层:TCP、UDP和SCTP 第二部分 基本套接字编程 第3章 套接字编程简介 第4章 基本TCP套接字编程 第5章 TCP客户/服务器程序示例 第6章 I/O复用:select和poll函数 第7章 套接字选项 第8章 基本UDP套接字编程 第9章 基本SCTP套接字编程 第10章 SCTP客户/服务器程序例子 第11章 名字与地址转换 第三部分 高级套接字编程 第12章 IPv4与IPv6的互操作性 第13章 守护进程和inetd超级服务器 第14章 高级I/O函数 第15章 Unix域协议 第16章 非阻塞式I/O 第17章 ioctl操作 第18章 路由套接字 第19章 密钥管理套接字 第20章 广播 第21章 多播 第22章 高级UDP套接字编程 第23章 高级SCTP套接字编程 第24章 带外数据 第25章 信号驱动式I/O 第26章 线程 第27章 IP选项 第28章 原始套接字 第29章 数据链路访问 第30章 客户/服务器程序设计范式 第31章 流 附录A IPv4、IPv6、ICMPv4和ICMPv6 附录B 虚拟网络 附录C 调试技术 附录D 杂凑的源代码 附录E 精选习题答案 参考文献 索引

2015-06-16

深入解析Windows操作系统(Microsoft.Windows.Internals)中文第四版

第一章 概念和工具 第二章 系统结构 第三章 系统机制 第四章 管理机制 第五章 启动和停机 第六章 进程、线程和作业 第七章 内存管理 第八章 安全性 第九章 I/O系统 第十章 存储管理 第十一章 缓存管理器 第十二章 文件系统 第十三章 网络 第十四章 崩溃转储分析

2015-06-16

深入理解Linux内核(完整版)中文版

前言 第一章绪论 Linux与其他类Unix内核的比较 硬件的依赖性 Linux版本 操作系统基本概念 Unix文件系统概述 Unix内核概述 第二章内存寻址 内存地址 硬件中的分段 Linux中的分段 硬件中的分页 Linux中的分页 第三章进程 进程、轻量级进程和线程 进程描述符 进程切换 创建进程 撤消进程 第四章中断和异常 中断信号的作用 中断和异常 中断和异常处理程序的嵌套执行 初始化中断描述符表 异常处理 中断处理 软中断及tasklet 工作队列 从中断和异常返回 第五章内核同步 内核如何为不同的请求提供服务 同步原语 对内核数据结构的同步访问 避免竞争条件的实例 第六章定时测量 时钟和定时器电路 Linux计时体系结构 更新时间和日期 更新系统统计数 软定时器和延迟函数 与定时测量相关的系统调用 第七章进程调度 调度策略 调度算法 调度程序所使用的数据结构 调度程序所使用的函数 多处理器系统中运行队列的平衡 与调度相关的系统调用 第八章内存管理 页框管理 内存区管理 非连续内存区管理 第九章进程地址空间 进程的地址空间 内存描述符 线性区 缺页异常处理程序 创建和删除进程的地址空间 堆的管理 第十章系统调用 POSIXAPI和系统调用 系统调用处理程序及服务例程 进入和退出系统调用 参数传递 内核封装例程 第十一章信号 信号的作用 产生信号 传递信号 与信号处理相关的系统调用 第十二章虚拟文件系统 虚拟文件系统(VFS)的作用 VFS的数据结构 文件系统类型 文件系统处理 路径名查找 VFS系统调用的实现 文件加锁 第十三章I/O体系结构和设备驱动程序 I/O体系结构 设备驱动程序模型 设备文件 设备驱动程序 字符设备驱动程序 第十四章块设备驱动程序 块设备的处理 通用块层 I/O调度程序 块设备驱动程序 打开块设备文件 第十五章页高速缓存 页高速缓存 把块存放在页高速缓存中 把脏页写入磁盘 sync()、fsync()和fdatasync()系统调用 第十六章访问文件 读写文件 内存映射 直接I/O传送 异步I/O 第十七章回收页框 页框回收算法 反向映射 PFRA实现 交换 第十八章Ext2和Ext3文件系统 Ext2的一般特征 Ext2磁盘数据结构 Ext2的内存数据结构 创建Ext2文件系统 Ext2的方法 管理Ext2磁盘空间 Ext3文件系统 第十九章进程通信 管道 FIFO SystemVIPC POSIX消息队列 第二十章程序的执行 可执行文件 可执行格式 执行域 exec函数 附录一系统启动 附录二模块 参考文献 源代码索引

2015-06-16

深入理解linux内核中文第三版

前言 第一章绪论 第二章内存寻址 第三章进程 第四章中断和异常 第五章内核同步 第六章定时测量 第七章进程调度 第八章内存管理 第九章进程地址空间 第十章系统调用 第十一章信号 第十二章虚拟文件系统 第十三章I/O体系结构和设备驱动程序 第十四章块设备驱动程序 第十五章页调高速缓存 第十六章访问文件 第十七章回收页框 第十八章Ext2和Ext3文件系统 第十九章进程通信 第二十章程序的执行 附录一系统启动 附录二模块 参考文献 源代码索引

2015-06-16

推荐系统实践

第1章  好的推荐系统    1 1.1  什么是推荐系统    1 1.2  个性化推荐系统的应用    4 1.2.1  电子商务    4 1.2.2  电影和视频网站    8 1.2.3  个性化音乐网络电台    10 1.2.4  社交网络    12 1.2.5  个性化阅读    15 1.2.6  基于位置的服务    16 1.2.7  个性化邮件    17 1.2.8  个性化广告    18 1.3  推荐系统评测    19 1.3.1  推荐系统实验方法    20 1.3.2  评测指标    23 1.3.3  评测维度    34 第2章  利用用户行为数据    35 2.1  用户行为数据简介    36 2.2  用户行为分析    39 2.2.1  用户活跃度和物品流行度的分布    39 2.2.2  用户活跃度和物品流行度的关系    41 2.3  实验设计和算法评测    41 2.3.1  数据集    42 2.3.2  实验设计    42 2.3.3  评测指标    42 2.4  基于邻域的算法    44 2.4.1  基于用户的协同过滤算法    44 2.4.2  基于物品的协同过滤算法    51 2.4.3  UserCF和ItemCF的综合比较    59 2.5  隐语义模型    64 2.5.1  基础算法    64 2.5.2  基于LFM的实际系统的例子    70 2.5.3  LFM和基于邻域的方法的比较    72 2.6  基于图的模型    73 2.6.1  用户行为数据的二分图表示    73 2.6.2  基于图的推荐算法    73 第3章  推荐系统冷启动问题    78 3.1  冷启动问题简介    78 3.2  利用用户注册信息    79 3.3  选择合适的物品启动用户的兴趣    85 3.4  利用物品的内容信息    89 3.5  发挥专家的作用    94 第4章  利用用户标签数据    96 4.1  UGC标签系统的代表应用    97 4.1.1  Delicious    97 4.1.2  CiteULike    98 4.1.3  Last,fm    98 4.1.4  豆瓣    99 4.1.5  Hulu    99 4.2  标签系统中的推荐问题    100 4.2.1  用户为什么进行标注    100 4.2.2  用户如何打标签    101 4.2.3  用户打什么样的标签    102 4.3  基于标签的推荐系统    103 4.3.1  实验设置    104 4.3.2  一个最简单的算法    105 4.3.3  算法的改进    107 4.3.4  基于图的推荐算法    110 4.3.5  基于标签的推荐解释    112 4.4  给用户推荐标签    115 4.4.1  为什么要给用户推荐标签    115 4.4.2  如何给用户推荐标签    115 4.4.3  实验设置    116 4.4.4  基于图的标签推荐算法    119 4.5  扩展阅读    119 第5章  利用上下文信息    121 5.1  时间上下文信息    122 5.1.1  时间效应简介    122 5.1.2  时间效应举例    123 5.1.3  系统时间特性的分析    125 5.1.4  推荐系统的实时性    127 5.1.5  推荐算法的时间多样性    128 5.1.6  时间上下文推荐算法    130 5.1.7  时间段图模型    134 5.1.8  离线实验    136 5.2  地点上下文信息    139 5.3  扩展阅读    143 第6章  利用社交网络数据    144 6.1  获取社交网络数据的途径    144 6.1.1  电子邮件    145 6.1.2  用户注册信息    146 6.1.3  用户的位置数据    146 6.1.4  论坛和讨论组    146 6.1.5  即时聊天工具    147 6.1.6  社交网站    147 6.2  社交网络数据简介    148社交网络数据中的长尾分布    149 6.3  基于社交网络的推荐    150 6.3.1  基于邻域的社会化推荐算法    151 6.3.2  基于图的社会化推荐算法    152 6.3.3  实际系统中的社会化推荐算法    153 6.3.4  社会化推荐系统和协同过滤推荐系统    155 6.3.5  信息流推荐    156 6.4  给用户推荐好友    159 6.4.1  基于内容的匹配    161 6.4.2  基于共同兴趣的好友推荐    161 6.4.3  基于社交网络图的好友推荐    161 6.4.4  基于用户调查的好友推荐算法对比    164 6.5  扩展阅读    165 第7章  推荐系统实例    166 7.1  外围架构    166 7.2  推荐系统架构    167 7.3  推荐引擎的架构    171 7.3.1  生成用户特征向量    172 7.3.2  特征?物品相关推荐    173 7.3.3  过滤模块    174 7.3.4  排名模块    174 7.4  扩展阅读    178 第8章  评分预测问题    179 8.1  离线实验方法    180 8.2  评分预测算法    180 8.2.1  平均值    180 8.2.2  基于邻域的方法    184 8.2.3  隐语义模型与矩阵分解模型    186 8.2.4  加入时间信息    192 8.2.5  模型融合    193 8.2.6  Netflix Prize的相关实验结果    195 后记    196[1]

2015-06-10

Mining of Massive Datasets

The popularity of the Web and Internet commerce provides many extremely large datasets from which information can be gleaned by data mining. This book focuses on practical algorithms that have been used to solve key problems in data mining and which can be used on even the largest datasets. It begins with a discussion of the map-reduce framework, an important tool for parallelizing algorithms automatically. The authors explain the tricks of locality-sensitive hashing and stream processing algorithms for mining data that arrives too fast for exhaustive processing. The PageRank idea and related tricks for organizing the Web are covered next. Other chapters cover the problems of finding frequent itemsets and clustering. The final chapters cover two applications: recommendation systems and Web advertising, each vital in e-commerce. Written by two authorities in database and Web technologies, this book is essential reading for students and practitioners alike.

2015-06-10

Artificial intelligence- a modern approach (2ed,2003)

Table of Contents [Full Contents] Preface [html] Part I Artificial Intelligence 1 Introduction 2 Intelligent Agents Part II Problem Solving 3 Solving Problems by Searching 4 Beyond Classical Search 5 Adversarial Search 6 Constraint Satisfaction Problems Part III Knowledge and Reasoning 7 Logical Agents 8 First-Order Logic 9 Inference in First-Order Logic 10 Classical Planning 11 Planning and Acting in the Real World 12 Knowledge Representation Part IV Uncertain Knowledge and Reasoning 13 Quantifying Uncertainty 14 Probabilistic Reasoning 15 Probabilistic Reasoning over Time 16 Making Simple Decisions 17 Making Complex Decisions Part V Learning 18 Learning from Examples 19 Knowledge in Learning 20 Learning Probabilistic Models 21 Reinforcement Learning Part VII Communicating, Perceiving, and Acting 22 Natural Language Processing 23 Natural Language for Communication 24 Perception 25 Robotics Part VIII Conclusions 26 Philosophical Foundations 27 AI: The Present and Future A Mathematical Background [pdf] B Notes on Languages and Algorithms [pdf] Bibliography [pdf and histograms] Index [html or pdf]

2015-06-10

Artificial Intelligence - A Modern Approach.3e[人工智能:一种现代方法.英文.第三版]

Table of Contents [Full Contents] Preface [html] Part I Artificial Intelligence 1 Introduction 2 Intelligent Agents Part II Problem Solving 3 Solving Problems by Searching 4 Beyond Classical Search 5 Adversarial Search 6 Constraint Satisfaction Problems Part III Knowledge and Reasoning 7 Logical Agents 8 First-Order Logic 9 Inference in First-Order Logic 10 Classical Planning 11 Planning and Acting in the Real World 12 Knowledge Representation Part IV Uncertain Knowledge and Reasoning 13 Quantifying Uncertainty 14 Probabilistic Reasoning 15 Probabilistic Reasoning over Time 16 Making Simple Decisions 17 Making Complex Decisions Part V Learning 18 Learning from Examples 19 Knowledge in Learning 20 Learning Probabilistic Models 21 Reinforcement Learning Part VII Communicating, Perceiving, and Acting 22 Natural Language Processing 23 Natural Language for Communication 24 Perception 25 Robotics Part VIII Conclusions 26 Philosophical Foundations 27 AI: The Present and Future A Mathematical Background [pdf] B Notes on Languages and Algorithms [pdf] Bibliography [pdf and histograms] Index [html or pdf]

2015-06-10

Data Mining - Practical Machine Learning Tools and Techniques-3rd(数据挖掘-实用机器学习技术)

Part I: Practical Machine Learning Tools and Techniques 1. What’s it all about? 1.1 Data Mining and Machine Learning 1.2 Simple Examples: The Weather Problem and Others 1.3 Fielded Applications 1.4 Machine Learning and Statistics 1.5 Generalization as Search 1.6 Data Mining and Ethics 1.7 Further Reading 2. Input: Concepts, instances, attributes 2.1 What’s a Concept? 2.2 What’s in an Example? 2.3 What’s in an Attribute? 2.4 Preparing the Input 2.5 Further Reading 3. Output: Knowledge representation 3.1 Tables 3.2 Linear Models 3.3 Trees 3.4 Rules 3.5 Instance-Based Representation 3.6 Clusters 3.7 Further Reading 4. Algorithms: The basic methods 4.1 Inferring Rudimentary Rules 4.2 Statistical Modeling 4.3 Divide-and-Conquer: Constructing Decision Trees 4.4 Covering Algorithms: Constructing Rules 4.5 Mining Association Rules 4.6 Linear Models 4.7 Instance-Based Learning 4.8 Clustering 4.9 Multi-Instance Learning 4.10 Further Reading 4.11 Weka Implementations 5. Credibility: Evaluating what’s been learned 5.1 Training and Testing 5.2 Predicting Performance 5.3 Cross-Validation 5.4 Other Estimates 5.5 Comparing Data Mining Schemes 5.6 Predicting Probabilities 5.7 Counting the Cost 5.8 Evaluating Numeric Prediction 5.9 The Minimum Description Length Principle 5.10 Applying MDL to Clustering 5.11 Further Reading Part II: Advanced Data Mining 6. Implementations: Real machine learning schemes 6.1 Decision Trees 6.2 Classification Rules 6.3 Association Rules 6.4 Extending Linear Models 6.5 Instance-Based Learning 6.6 Numeric Prediction with Local Linear Models 6.7 Bayesian Networks 6.8 Clustering 6.9 Semisupervised Learning 6.10 Multi-Instance Learning 6.11 Weka Implementations 7. Data Transformations 7.1 Attribute Selection 7.2 Discretizing Numeric Attributes 7.3 Projections 7.4 Sampling 7.5 Cleansing 7.6 Transforming Multiple Classes to Binary Ones 7.7 Calibrating Class Probabilities 7.8 Further Reading 7.9 Weka Implementations 8. Ensemble Learning 8.1 Combining Multiple Models 8.2 Bagging 8.3 Randomization 8.4 Boosting 8.5 Additive Regression 8.6 Interpretable Ensembles 8.7 Stacking 8.8 Further Reading 8.9 Weka Implementations 9. Moving on: Applications and Beyond 9.1 Applying Data Mining 9.2 Learning from Massive Datasets 9.3 Data Stream Learning 9.4 Incorporating Domain Knowledge 9.5 Text Mining 9.6 Web Mining 9.7 Adversarial Situations 9.8 Ubiquitous Data Mining 9.9 Further Reading Part III: The Weka Data Mining Workbench 10. Introduction to Weka 10.1 What’s in Weka? 10.2 How Do You Use It? 10.3 What Else Can You Do? 11. The Explorer 11.1 Getting Started 11.2 Exploring the Explorer 11.3 Filtering Algorithms 11.4 Learning Algorithms 11.5 Meta-Learning Algorithms 11.6 Clustering Algorithms 11.7 Association-Rule Learners 11.8 Attribute Selection 12. The Knowledge Flow Interface 12.1 Getting Started 12.2 Knowledge Flow Components 12.3 Configuring and Connecting the Components 12.4 Incremental Learning 13. The Experimenter 13.1 Getting Started 13.2 Simple Setup 13.3 Advanced Setup 13.4 The Analyze Panel 13.5 Distributing Processing over Several Machines 14. The Command-Line Interface 14.1 Getting Started 14.2 The Structure of Weka 14.3 Command-Line Options 15. Embedded Machine Learning 15.1 A Simple Data Mining Application 16. Writing New Learning Schemes 16.1 An Example Classifier 16.2 Conventions for Implementing Classifiers 17. Tutorial Excercises for the Weka Explorer 17.1 Introduction to the Explorer Interface 17.2 Nearest-Neighbor Learning and Decision Trees 17.3 Classification Boundaries 17.4 Preprocessing and Parameter Tuning 17.5 Document Classification 17.6 Mining Association Rules References Index

2015-06-10

数据挖掘-实用机器学习技术(中文第二版)

前言 第一部分 机器学习工具与技术 第1章 绪论 1.l 数据挖掘和机器学习 l.2 简单的例子:天气问题和其他 l.3 应用领域- 1.4 机器学习和统计学 1.5 用于搜索的概括 l.6 数据挖掘和道德 1.7 补允读物 第2章 输入概念、实例和属性 2.1 概念 2.2 样本 2.3 属性 2.4 输入准备 2.5 补充读物 第3章 输出:知识表达 3.1 决策表 3.2 决策树 3.3 分类规则 3.4 关联规则 3.5 包含例外的规则 3.6 包含关系的规则 3.7 数值预测树 3.8 基于实例的表达 3.9 聚类 3.10 补充读物 第4章 算法基本方法 4.1 推断基本规则 4.2 统计建模 4.3 分治法:创建决策树 4.4 覆盖算法:建立规则 4.5 挖掘关联规州 4.6 线性模型 4.7 基于实例的学习 4.8 聚类 4.9 补充读物 第5章 可信度:评估机器学习结果 5.1 训练和测试 5.2 预测性能 5.3 交叉验证 5.4 其他估计法 5.5 可信度:评估机器学习结果 5.6 预测概率 5.7 计算成本 5.8 评估数值预测 5.9 最短描述长度原理 5.10 聚类方法中应用MDL原理 5.1l 补充读物 第6章 实现:真正的机器学习方案 …… 第7章 转换:处理输入和输出 第8章 继续扩展和应用 第9章 Weka简介 第10章 Explorer界面 第1l章 Knowledge Flow界面 第12章 Experimenter界面 第13章 命令行界面 第14章 嵌入式机器学习 第15章 编写新学习方案 参考文献 索引

2015-06-10

信息论、推理与学习算法 翻译版

第1章 信息论导论 第2章 概率、熵与推理 第3章 有关推理的更多内容 第一部分 数据压缩 第4章 信源编码定理 第5章 符号码 第6章 符号流码 第7章 整数的码 第二部分 噪声信道编码 第8章 相关随机变量 第9章 噪声信道上的通信 第10章 噪声信道编码定理 第11章 纠错码与实际信道 第三部分 信息论中的更多专题 第12章 散列码:用于有效信息检索的码 第13章 二进制码 第14章 存在很好的线性码 第15章 有关信息论的更多习题 第16章 消息传递 第17章 受限无噪信道上的通信 第18章 纵横字谜与密码破译 第19章 为何有性?信息获取与进化 第四部分 概率与推理 第20章 一个推理任务示例:聚类 第2l章 基于完全枚举的精确推理 第22章 最大似然与聚类 第23章 有用的概率分布 第24章 精确边缘化 第25章 网格中的精确边缘化 第26章 图中的精确边缘化 第27章 拉普拉斯方法 第28章 模型比较与奥卡姆剃刀原理 第29章 蒙特卡罗方法 第30章 有效的蒙特卡罗方法 第31章 伊辛模型 第32章 精确蒙特卡罗采样 第33章 变参法 第34章 独立元素分析与隐含变量建模 第35章 有关随机推理的专题 第36章 决策论 第37章 贝叶斯推理与抽样理论 第五部分 神经网络 第38章 神经网络引言 第39章 单神经元分类器 第40章 单神经元的容量 第41章 以学习作推理 第42章 HopfieId网络 第43章 玻耳兹曼机 第44章 多层网络的有监督学习 第45章 高斯过程 第46章 反卷积 第六部分 稀疏图码 第47章 低密度奇偶校验码 第48章 卷积码与Turbo码 第49章 重复累加码 第50章 数字喷泉码 第七部分 附录 附录A 记号 附录B 一些物理知识 附录C 一些数学知识 英汉词汇表 参考文献

2015-06-09

DATA MINING Concepts and Techniques 3rd(数据挖掘:概念与技术)

The increasing volume of data in modern business and science calls for more complex and sophisticated tools. Although advances in data mining technology have made extensive data collection much easier, it's still always evolving and there is a constant need for new techniques and tools that can help us transform this data into useful information and knowledge. Since the previous edition's publication, great advances have been made in the field of data mining. Not only does the third of edition of Data Mining: Concepts and Techniques continue the tradition of equipping you with an understanding and application of the theory and practice of discovering patterns hidden in large data sets, it also focuses on new, important topics in the field: data warehouses and data cube technology, mining stream, mining social networks, and mining spatial, multimedia and other complex data. Each chapter is a stand-alone guide to a critical topic, presenting proven algorithms and sound implementations ready to be used directly or with strategic modification against live data. This is the resource you need if you want to apply today's most powerful data mining techniques to meet real business challenges. * Presents dozens of algorithms and implementation examples, all in pseudo-code and suitable for use in real-world, large-scale data mining projects. * Addresses advanced topics such as mining object-relational databases, spatial databases, multimedia databases, time-series databases, text databases, the World Wide Web, and applications in several fields. *Provides a comprehensive, practical look at the concepts and techniques you need to get the most out of your data

2015-06-09

数据挖掘:概念与技术(原书第3版)

第1章 引论1 1.1 为什么进行数据挖掘1 1.1.1 迈向信息时代1 1.1.2 数据挖掘是信息技术的进化2 1.2 什么是数据挖掘4 1.3 可以挖掘什么类型的数据6 1.3.1 数据库数据6 1.3.2 数据仓库7 1.3.3 事务数据9 1.3.4 其他类型的数据9 1.4 可以挖掘什么类型的模式10 1.4.1 类/概念描述:特征化与区分10 1.4.2 挖掘频繁模式、关联和相关性11 1.4.3 用于预测分析的分类与回归12 1.4.4 聚类分析13 1.4.5 离群点分析14 1.4.6 所有模式都是有趣的吗14 1.5 使用什么技术15 1.5.1 统计学15 1.5.2 机器学习16 1.5.3 数据库系统与数据仓库17 1.5.4 信息检索17 1.6 面向什么类型的应用18 1.6.1 商务智能18 1.6.2 Web搜索引擎18 1.7 数据挖掘的主要问题19 1.7.1 挖掘方法19 1.7.2 用户界面20 1.7.3 有效性和可伸缩性21 1.7.4 数据库类型的多样性21 1.7.5 数据挖掘与社会21 1.8 小结22 1.9 习题23 1.10 文献注释23 第2章 认识数据26 2.1 数据对象与属性类型26 2.1.1 什么是属性27 2.1.2 标称属性27 2.1.3 二元属性27 2.1.4 序数属性28 2.1.5 数值属性28 2.1.6 离散属性与连续属性29 2.2 数据的基本统计描述29 2.2.1 中心趋势度量:均值、中位数和众数30 2.2.2 度量数据散布:极差、四分位数、方差、标准差和四分位数极差32 2.2.3 数据的基本统计描述的图形显示34 2.3 数据可视化37 2.3.1 基于像素的可视化技术37 2.3.2 几何投影可视化技术38 2.3.3 基于图符的可视化技术40 2.3.4 层次可视化技术42 2.3.5 可视化复杂对象和关系42 2.4 度量数据的相似性和相异性44 2.4.1 数据矩阵与相异性矩阵45 2.4.2 标称属性的邻近性度量46 2.4.3 二元属性的邻近性度量46 2.4.4 数值属性的相异性:闵可夫斯基距离48 2.4.5 序数属性的邻近性度量49 2.4.6 混合类型属性的相异性50 2.4.7 余弦相似性51 2.5 小结52 2.6 习题53 2.7 文献注释54 第3章 数据预处理55 3.1 数据预处理:概述55 3.1.1 数据质量:为什么要对数据预处理55 3.1.2 数据预处理的主要任务56 3.2 数据清理58 3.2.1 缺失值58 3.2.2 噪声数据59 3.2.3 数据清理作为一个过程60 3.3 数据集成61 3.3.1 实体识别问题62 3.3.2 冗余和相关分析62 3.3.3 元组重复65 3.3.4 数据值冲突的检测与处理65 3.4 数据归约65 3.4.1 数据归约策略概述66 3.4.2 小波变换66 3.4.3 主成分分析67 3.4.4 属性子集选择68 3.4.5 回归和对数线性模型:参数化数据归约69 3.4.6 直方图70 3.4.7 聚类71 3.4.8 抽样71 3.4.9 数据立方体聚集72 3.5 数据变换与数据离散化73 3.5.1 数据变换策略概述73 3.5.2 通过规范化变换数据74 3.5.3 通过分箱离散化76 3.5.4 通过直方图分析离散化76 3.5.5 通过聚类、决策树和相关分析离散化76 3.5.6 标称数据的概念分层产生77 3.6 小结79 3.7 习题79 3.8 文献注释80 第4章 数据仓库与联机分析处理82 4.1 数据仓库:基本概念82 4.1.1 什么是数据仓库82 4.1.2 操作数据库系统与数据仓库的区别84 4.1.3 为什么需要分离的数据仓库85 4.1.4 数据仓库:一种多层体系结构85 4.1.5 数据仓库模型:企业仓库、数据集市和虚拟仓库87 4.1.6 数据提取、变换和装入88 4.1.7 元数据库88 4.2 数据仓库建模:数据立方体与OLAP89 4.2.1 数据立方体:一种多维数据模型89 4.2.2 星形、雪花形和事实星座:多维数据模型的模式91 4.2.3 维:概念分层的作用94 4.2.4 度量的分类和计算95 4.2.5 典型的OLAP操作96 4.2.6 查询多维数据库的星网查询模型98 4.3 数据仓库的设计与使用99 4.3.1 数据仓库的设计的商务分析框架99 4.3.2 数据仓库的设计过程100 4.3.3 数据仓库用于信息处理101 4.3.4 从联机分析处理到多维数据挖掘102 4.4 数据仓库的实现103 4.4.1 数据立方体的有效计算:概述103 4.4.2 索引OLAP数据:位图索引和连接索引105 4.4.3 OLAP查询的有效处理107 4.4.4 OLAP服务器结构:ROLAP、MOLAP、HOLAP的比较107 4.5 数据泛化:面向属性的归纳109 4.5.1 数据特征的面向属性的归纳109 4.5.2 面向属性归纳的有效实现113 4.5.3 类比较的面向属性归纳114 4.6 小结116 4.7 习题117 4.8 文献注释119 第5章 数据立方体技术121 5.1 数据立方体计算:基本概念121 5.1.1 立方体物化:完全立方体、冰山立方体、闭立方体和立方体外壳122 5.1.2 数据立方体计算的一般策略124 5.2 数据立方体计算方法126 5.2.1 完全立方体计算的多路数组聚集126 5.2.2 BUC:从顶点方体向下计算冰山立方体129 5.2.3 Star-Cubing:使用动态星树结构计算冰山立方体132 5.2.4 为快速高维OLAP预计算壳片段136 5.3 使用探索立方体技术处理高级查询141 5.3.1 抽样立方体:样本数据上基于OLAP的挖掘141 5.3.2 排序立方体:top-k查询的有效计算145 5.4 数据立方体空间的多维数据分析147 5.4.1 预测立方体:立方体空间的预测挖掘147 5.4.2 多特征立方体:多粒度上的复杂聚集149 5.4.3 基于异常的、发现驱动的立方体空间探查149 5.5 小结152 5.6 习题152 5.7 文献注释155 第6章 挖掘频繁模式、关联和相关性:基本概念和方法157 6.1 基本概念157 6.1.1 购物篮分析:一个诱发例子157 6.1.2 频繁项集、闭项集和关联规则158 6.2 频繁项集挖掘方法160 6.2.1 Apriori算法:通过限制候选产生发现频繁项集160 6.2.2 由频繁项集产生关联规则164 6.2.3 提高Apriori算法的效率165 6.2.4 挖掘频繁项集的模式增长方法166 6.2.5 使用垂直数据格式挖掘频繁项集169 6.2.6 挖掘闭模式和极大模式170 6.3 哪些模式是有趣的:模式评估方法171 6.3.1 强规则不一定是有趣的172 6.3.2 从关联分析到相关分析172 6.3.3 模式评估度量比较173 6.4 小结176 6.5 习题177 6.6 文献注释179 第7章 高级模式挖掘180 7.1 模式挖掘:一个路线图180 7.2 多层、多维空间中的模式挖掘182 7.2.1 挖掘多层关联规则182 7.2.2 挖掘多维关联规则185 7.2.3 挖掘量化关联规则186 7.2.4 挖掘稀有模式和负模式188 7.3 基于约束的频繁模式挖掘190 7.3.1 关联规则的元规则制导挖掘190 7.3.2 基于约束的模式产生:模式空间剪枝和数据空间剪枝191 7.4 挖掘高维数据和巨型模式195 7.5 挖掘压缩或近似模式198 7.5.1 通过模式聚类挖掘压缩模式199 7.5.2 提取感知冗余的top-k模式200 7.6 模式探索与应用202 7.6.1 频繁模式的语义注解202 7.6.2 模式挖掘的应用205 7.7 小结206 7.8 习题207 7.9 文献注释208 第8章 分类:基本概念211 8.1 基本概念211 8.1.1 什么是分类211 8.1.2 分类的一般方法211 8.2 决策树归纳213 8.2.1 决策树归纳214 8.2.2 属性选择度量217 8.2.3 树剪枝222 8.2.4 可伸缩性与决策树归纳224 8.2.5 决策树归纳的可视化挖掘225 8.3 贝叶斯分类方法226 8.3.1 贝叶斯定理227 8.3.2 朴素贝叶斯分类227 8.4 基于规则的分类230 8.4.1 使用IF-THEN规则分类230 8.4.2 由决策树提取规则231 8.4.3 使用顺序覆盖算法的规则归纳232 8.5 模型评估与选择236 8.5.1 评估分类器性能的度量236 8.5.2 保持方法和随机二次抽样240 8.5.3 交叉验证240 8.5.4 自助法241 8.5.5 使用统计显著性检验选择模型241 8.5.6 基于成本效益和ROC曲线比较分类器243 8.6 提高分类准确率的技术245 8.6.1 组合分类方法简介245 8.6.2 装袋246 8.6.3 提升和AdaBoost247 8.6.4 随机森林249 8.6.5 提高类不平衡数据的分类准确率250 8.7 小结251 8.8 习题251 8.9 文献注释253 第9章 分类:高级方法255 9.1 贝叶斯信念网络255 9.1.1 概念和机制255 9.1.2 训练贝叶斯信念网络257 9.2 用后向传播分类258 9.2.1 多层前馈神经网络258 9.2.2 定义网络拓扑259 9.2.3 后向传播260 9.2.4 黑盒内部:后向传播和可解释性263 9.3 支持向量机265 9.3.1 数据线性可分的情况265 9.3.2 数据非线性可分的情况268 9.4 使用频繁模式分类270 9.4.1 关联分类270 9.4.2 基于有区别力的频繁模式分类272 9.5 惰性学习法(或从近邻学习)275 9.5.1 k-最近邻分类275 9.5.2 基于案例的推理277 9.6 其他分类方法277 9.6.1 遗传算法277 9.6.2 粗糙集方法278 9.6.3 模糊集方法278 9.7 关于分类的其他问题280 9.7.1 多类分类280 9.7.2 半监督分类281 9.7.3 主动学习282 9.7.4 迁移学习283 9.8 小结284 9.9 习题285 9.10 文献注释286 第10章 聚类分析:基本概念和方法288 10.1 聚类分析288 10.1.1 什么是聚类分析288 10.1.2 对聚类分析的要求289 10.1.3 基本聚类方法概述291 10.2 划分方法293 10.2.1 k-均值:一种基于形心的技术293 10.2.2 k-中心点:一种基于代表对象的技术295 10.3 层次方法297 10.3.1 凝聚的与分裂的层次聚类298 10.3.2 算法方法的距离度量300 10.3.3 BIRCH:使用聚类特征树的多阶段聚类301 10.3.4 Chameleon:使用动态建模的多阶段层次聚类303 10.3.5 概率层次聚类304 10.4 基于密度的方法306 10.4.1 DBSCAN:一种基于高密度连通区域的基于密度的聚类307 10.4.2 OPTICS:通过点排序识别聚类结构309 10.4.3 DENCLUE:基于密度分布函数的聚类311 10.5 基于网格的方法312 10.5.1 STING:统计信息网格312 10.5.2 CLIQUE:一种类似于Apriori的子空间聚类方法314 10.6 聚类评估315 10.6.1 估计聚类趋势316 10.6.2 确定簇数317 10.6.3 测定聚类质量317 10.7 小结319 10.8 习题320 10.9 文献注释321 第11章 高级聚类分析323 11.1 基于概率模型的聚类323 11.1.1 模糊簇324 11.1.2 基于概率模型的聚类326 11.1.3 期望最大化算法328 11.2 聚类高维数据330 11.2.1 聚类高维数据:问题、挑战和主要方法330 11.2.2 子空间聚类方法331 11.2.3 双聚类332 11.2.4 维归约方法和谱聚类337 11.3 聚类图和网络数据339 11.3.1 应用与挑战339 11.3.2 相似性度量340 11.3.3 图聚类方法343 11.4 具有约束的聚类345 11.4.1 约束的分类345 11.4.2 具有约束的聚类方法347 11.5 小结349 11.6 习题349 11.7 文献注释350 第12章 离群点检测351 12.1 离群点和离群点分析351 12.1.1 什么是离群点351 12.1.2 离群点的类型352 12.1.3 离群点检测的挑战354 12.2 离群点检测方法354 12.2.1 监督、半监督和无监督方法355 12.2.2 统计方法、基于邻近性的方法和基于聚类的方法356 12.3 统计学方法357 12.3.1 参数方法357 12.3.2 非参数方法360 12.4 基于邻近性的方法361 12.4.1 基于距离的离群点检测和嵌套循环方法361 12.4.2 基于网格的方法363 12.4.3 基于密度的离群点检测364 12.5 基于聚类的方法366 12.6 基于分类的方法368 12.7 挖掘情境离群点和集体离群点369 12.7.1 把情境离群点检测转换成传统的离群点检测369 12.7.2 关于情境对正常行为建模370 12.7.3 挖掘集体离群点371 12.8 高维数据中的离群点检测371 12.8.1 扩充的传统离群点检测372 12.8.2 发现子空间中的离群点373 12.8.3 高维离群点建模373 12.9 小结374 12.10 习题375 12.11 文献注释375 第13章 数据挖掘的发展趋势和研究前沿377 13.1 挖掘复杂的数据类型377 13.1.1 挖掘序列数据:时间序列、符号序列和生物学序列377 13.1.2 挖掘图和网络381 13.1.3 挖掘其他类型的数据383 13.2 数据挖掘的其他方法385 13.2.1 统计学数据挖掘385 13.2.2 关于数据挖掘基础的观点386 13.2.3 可视和听觉数据挖掘387 13.3 数据挖掘应用391 13.3.1 金融数据分析的数据挖掘391 13.3.2 零售和电信业的数据挖掘392 13.3.3 科学与工程数据挖掘393 13.3.4 入侵检测和预防数据挖掘395 13.3.5 数据挖掘与推荐系统396 13.4 数据挖掘与社会397 13.4.1 普适的和无形的数据挖掘397 13.4.2 数据挖掘的隐私、安全和社会影响399 13.5 数据挖掘的发展趋势400 13.6 小结402 13.7 习题402 13.8 文献注释403 参考文献406 索引435

2015-06-09

The Element of Statistical Learnging (统计学习基础:数据挖掘、推理与预测)

During the past decade there has been an explosion in computation and information technology. With it has come vast amounts of data in a variety of fields such as medicine, biology, finance, and marketing. The challenge of understanding these data has led to the development of new tools in the field of statistics, and spawned new areas such as data mining, machine learning, and bioinformatics. Many of these tools have common underpinnings but are often expressed with different terminology. This book descibes the important ideas in these areas in a common conceptual framework. While the approach is statistical, the emphasis is on concepts rather than mathematics. Many examples are given, with a liberal use of color graphics. It should be a valuable resource for statisticians and anyone interested in data mining in science or industry. The book's coverage is broad, from supervised learing (prediction) to unsupervised learning. The many topics include neural networks, support vector machines, classification trees and boosting--the first comprehensive treatment of this topic in any book. Trevor Hastie, Robert Tibshirani, and Jerome Friedman are professors of statistics at Stanford University. They are prominent researchers in this area: Hastie and Tibshirani developed generalized additive models and wrote a popular book of that title. Hastie wrote much of the statistical modeling software in S-PLUS and invented principal curves and surfaces. Tibshirani proposed the Lasso and is co-author of the very successful <EM>An Introduction to the Bootstrap</EM>. Friedman is the co-inventor of many data-mining tools including CART, MARS, and projection pursuit.

2015-06-09

统计学习基础:数据挖掘、推理与预测

第一章 绪论 第二章 有指导学习概述 第三章 回归的线性方法 第四章 分类的线性方法 第五章 基展开与正则化 第六章 核方法 第七章 模型评估与选择 第八章 模型推理和平均 第九章 加法模型、树和相关方法 第十章 提升和加法树 第十一章 神经网络 第十二章 支持向量机和柔性判别 第十三章 原型方法和最近邻 第十四章 无指导学习

2015-06-09

Pattern Classification 2nd Edition(模式分类 )

The first edition, published in 1973, has become a classic reference in the field. Now with the second edition, readers will find information on key new topics such as neural networks and statistical pattern recognition, the theory of machine learning, and the theory of invariances. Also included are worked examples, comparisons between different methods, extensive graphics, expanded exercises and computer project topics. An Instructor's Manual presenting detailed solutions to all the problems in the book is available from the Wiley editorial department.

2015-06-09

模式分类 (原书第2版)

第1章 绪论 1.1 机器感知 1.2 一个例子 1.3 模式识别系统 1.4 设计循环 1.5 学习和适应 1.6 本章小结 全书各章概要 文献和历史评述 参考文献 第2章 贝叶斯决策论 2.1 引言 2.2 贝叶斯决策论——连续特征 2.3 最小误差率分类 2.4 分类器、判别函数及判定面 2.5 正态密度 2.6 正态分布的判别函数 2.7 误差概率和误差积分 2.8 正态密度的误差上界 2.9 贝叶斯决策论——离散特征 2.10 丢失特征和噪声特征 2.11 贝叶斯置信网 2.12 复合贝叶斯决策论及上下文 本章小结 文献和历史评述 习题 上机练习 参考文献 第3章 最大似然估计和贝叶斯参数估计 第4章 非参数技术 第5章 线性判别函数 第6章 多层神经网络 第7章 随机方法 第8章 非度量方法 第9章 独立于算法的机器学习 第10章 无监督学习和聚类 附录A 数学基础 参考文献 索引

2015-06-09

集体智慧编程

第1章 集体智慧导言 什么是集体智慧 什么是机器学习 机器学习的局限 真实生活中的例子 学习型算法的其他用途 第2章 提供推荐 协作型过滤 搜集偏好 寻找相近的用户 推荐物品 匹配商品 构建一个基于delici0US的链接推荐系统 基于物品的过滤 使用MovieLens数据集 基于用户进行过滤还是基于物品进行过滤 练习 第3章 发现群组 监督学习和无监督学习 单词向量 分级聚类 绘制树状图 列聚类 K-均值聚类 针对偏好的聚类 以二维形式展现数据 有关聚类的其他事宜 练习 第4章 搜索与排名 搜索引擎的组成 一个简单的爬虫程序 建立索引 查询 基于内容的排名 利用外部回指链接 从点击行为中学习 练习 第5章 优化 组团旅游 描述题解 成本函数 随机搜索 爬山法 模拟退火算法 遗传算法 真实的航班搜索 涉及偏好的优化 网络可视化 其他可能的应用场合 练习 第6章 文档过滤 过滤垃圾信息 文档和单词 对分类器进行训练 计算概率 朴素分类器 费舍尔方法 将经过训练的分类器持久化 过滤博客订阅源 …… 第7章 决策树建模 第8章 构建价格模型 第9章 高阶分类:核方法与SVM 第10章 寻找独立特征 第11章 智能进化 第12章 算法总结 附录A:第三方函数库 附录B:数学公式 索引

2015-06-09

Machine Learning -Tom_Mitchell(机器学习)

This book covers the field of machine learning, which is the study of algorithms that allow computer programs to automatically improve through experience. The book is intended to support upper level undergraduate and introductory level graduate courses in machine learning.

2015-06-09

精通MATLAB神经网络.朱凯,王正林.高清

第一篇 MATLAB入门篇  第1章 MATLAB概述   1.1 MATLAB的产生与发展   1.2 MATLAB的优势与特点   1.3 MATLAB系统的构成   1.4 MATLAB桌面操作环境    1.4.1 MATLAB启动和退出    1.4.2 MATLAB主菜单及功能    1.4.3 MATLAB命令窗口    1.4.4 MATLAB工作空间    1.4.5 M文件编辑/调试器    1.4.6 图形窗口    1.4.7 MATLAB文件管理    1.4.8 MATLAB帮助   1.5 MATLAB的工具箱   1.6 小结  第2章 MATLAB计算基础   2.1 MATLAB数值类型   2.2 关系运算和逻辑运算   2.3 矩阵及其运算    2.3.1 矩阵的创建    2.3.2 矩阵的运算   2.4 复数及其运算    2.4.1 复数表示    2.4.2 复数绘图    2.4.3 复数操作函数   2.5 符号运算    2.5.1 符号运算概述    2.5.2 常用的符号运算   2.6 小结  第3章 MATLAB绘图入门   3.1 MATLAB中绘图的基本步骤   3.2 在工作空间直接绘图   3.3 利用绘图函数绘图    3.3.1 二维图形    3.3.2 三维图形   3.4 图形的修饰   3.5 小结  第4章 MATLAB编程入门   4.1 MATLAB编程概述   4.2 MATLAB程序设计原则   4.3 M文件   4.4 MATLAB程序流程控制   4.5 MATLAB中的函数及调用    4.5.1 函数类型    4.5.2 函数参数传递   4.6 函数句柄   4.7 MATLAB程序调试    4.7.1 常见程序错误    4.7.2 调试方法    4.7.3 调试工具    4.7.4 M文件分析工具    4.7.5 Profiler分析工具   4.8 MATLAB程序设计技巧    4.8.1 嵌套计算    4.8.2 循环计算    4.8.3 使用例外处理机制    4.8.4 使用全局变量    4.8.5 通过varargin传递参数   4.9 小结  第5章 Simulink仿真入门   5.1 Simulink仿真概述    5.1.1 Simulink的启动与退出    5.1.2 Simulink模块库   5.2 Simulink仿真模型及仿真过程   5.3 Simulink模块的处理    5.3.1 Simulink模块参数设置    5.3.2 Simulink模块基本操作    5.3.3 Simulink模块连接   5.4 Simulink仿真设置    5.4.1 仿真器参数设置    5.4.2 工作空间数据导入/导出    5.4.2 设置   5.5 Simulink仿真举例   5.6 小结 第二篇 神经网络提高篇  第6章 MATLAB神经网络工具箱概述  第7章 MATLAB神经网络GUI工具  第8章 感知器神经网络  第9章 线性神经网络  第10章 BP神经网络  第11章 径向基神经网络  第12章 自组织神经网络  第13章 反馈神经网络 第三篇 神经网络综合实战篇  第14章 神经网络优化  第15章 神经网络控制  第16章 神经网络故障诊断  第17章 神经网络预测  第18章 Simulink中的神经网络设计  第19章 自定义神经网络 附录A 工具箱函数列表 参考文献

2015-07-05

MATLAB神经网络30个案例分析源码

《MATLAB神经网络30个案例分析》一书源码!

2015-07-05

MATLAB神经网络30个案例分析

第1章 P神经网络的数据分类——语音特征信号分类 第2章 BP神经网络的非线性系统建模——非线性函数拟合 第3章 遗传算法优化BP神经网络——非线性函数拟合 第4章 神经网络遗传算法函数极值寻优——非线性函数极值寻优 第5章 基于BP_Adaboost的强分类器设计——公司财务预警建模 第6章 PID神经元网络解耦控制算法——多变量系统控制 第7章 RBF网络的回归——非线性函数回归的实现 第8章 GRNN的数据预测——基于广义回归神经网络的货运量预测 第9章 离散Hopfield神经网络的联想记忆——数字识别 第10章 离散Hopfield神经网络的分类——高校科研能力评价 第11章 连续Hopfield神经网络的优化——旅行商问题优化计算 第12章 SVM的数据分类预测——意大利葡萄酒种类识别 第13章 SVM的参数优化——如何更好的提升分类器的性能 第14章 SVM的回归预测分析——上证指数开盘指数预测 第15章 SVM的信息粒化时序回归预测——上证指数开盘指数变化趋势和变化空间预测 第16章 自组织竞争网络在模式分类中的应用——患者癌症发病预测 第17章SOM神经网络的数据分类——柴油机故障诊断 第18章Elman神经网络的数据预测——电力负荷预测模型研究 第19章 概率神经网络的分类预测——基于PNN的变压器故障诊断 第20章 神经网络变量筛选——基于BP的神经网络变量筛选 第21章 LVQ神经网络的分类——乳腺肿瘤诊断 第22章 LVQ神经网络的预测——人脸朝向识别 第23章 小波神经网络的时间序列预测——短时交通流量预测 第24章 模糊神经网络的预测算法——嘉陵江水质评价 第25章 广义神经网络的聚类算法——网络入侵聚类 第26章 粒子群优化算法的寻优算法——非线性函数极值寻优 第27章 遗传算法优化计算——建模自变量降维 第28章 基于灰色神经网络的预测算法研究——订单需求预测 第29章 基于Kohonen网络的聚类算法——网络入侵聚类 第30章 神经网络GUI的实现——基于GUI的神经网络拟合、模式识别、聚类

2015-07-05

神经网络理论与MATLAB7实现

第1章 概述 1.1 MATLAB语言简介 1.1.1 MATLAB概述 1.1.2 MATLAB语言特点 1.1.3 MATLAB 7的安装 1.1.4 MATLAB 7的新特点 1.1.5 MATLAB 7的新产品及更新产品 1.1.6 Simulink 6.0的新特点 1.2 MATLAB快速入门 1.2.1 命令行窗口 1.2.2 其他重要窗口 1.2.3 Editor/Debugger窗口 1.2.4 MATLAB帮助系统 1.2.5 神经网络工具箱快速入门 1.3 神经网络发展史 1.3.1 初期阶段 1.3.2 停滞期 1.3.3 黄金时期 1.3.4 发展展望 1.4 神经网络模型 1.4.1 神经元结构模型 1.4.2 神经网络的互连模式 1.5 神经网络的特性及实现 1.6 小结 第2章 神经网络工具箱函数及实例 2.1 概述 2.2 神经网络工具箱中的通用函数 2.2.1 神经网络仿真函数sim 2.2.2 神经网络训练及学习函数 2.2.3 神经网络初始化函数 2.2.4 神经网络输入函数 2.2.5 神经网络传递函数 2.2.6 其他重要函数 2.3 感知器的神经网络工具箱函数 2.3.1 感知器创建函数 2.3.2 显示函数 2.3.3 性能函数 2.4 BP网络的神经网络工具箱函数 2.4.1 BP网络创建函数 2.4.2 神经元上的传递函数 2.4.3 BP网络学习函数 2.4.4 BP网络训练函数 2.4.5 性能函数 2.4.6 显示函数 2.5 线性网络的神经网络工具箱函数 2.5.1 线性网络创建和设计函数 2.5.2 学习函数 2.6 自组织竞争网络的神经网络工具箱函数 2.6.1 神经网络创建函数 2.6.2 传递函数 2.6.3 距离函数 2.6.4 学习函数 2.6.5 初始化函数 2.6.6 权值函数 2.6.7 显示函数 2.6.8 结构函数 2.7 径向基网络的神经网络工具箱函数 2.7.1 神经网络创建函数 2.7.2 转换函数 2.7.3 传递函数 2.8 反馈网络的神经网络工具箱函数 2.8.1 Hopfield网络的工具箱函数 2.8.2 Elman网络的工具箱函数 2.9 小结 第3章 前向型神经网络理论及MATLAB实现 3.1 感知器网络及MATLAB实现 3.1.1 单层感知器网络 3.1.2 多层感知器 3.2 BP网络及MATLAB实现 3.2.1 BP网络理论 3.2.2 BP网络的MATLAB设计 3.3 线性神经网络及MATLAB实现 3.3.1 线性神经网络的结构 3.3.2 线性神经网络的学习 3.3.3 线性网络的MATLAB仿真 3.4 径向基函数网络及MATLAB实现 3.4.1 径向基网络结构 3.4.2 径向基函数的学习过程 3.4.3 RBF网络应用实例 3.4.4 基于RBF网络的非线性滤波 3.4.5 基于GRNN的函数逼近 3.4.6 基于概率神经网络的分类 3.5 GMDH网络及MATLAB实现 3.5.1 GMDH网络理论 3.5.2 GMDH网络的训练 3.5.3 基于GMDH网络的预测 3.6 小结 第4章 反馈型神经网络理论及MATLAB实现 4.1 Elman神经网络及应用 4.1.1 Elman神经网络结构 4.1.2 Elman神经网络的学习过程 4.1.3 Elman神经网络的工程应用 4.1.4 基于Elman网络的空调负荷预测 4.2 Hopfield神经网络及MATLAB实现 4.2.1 Hopfield网络描述 4.2.2 Hopfield网络的学习过程 4.2.3 几个重要结论 4.2.4 Hopfield网络的MATLAB开发 4.2.5 基于Hopfield网络的数字识别 4.3 CG网络模型及应用 4.3.1 CG神经网络理论 4.3.2 基于CG网络的有限元分析 4.4 盒中脑(BSB)模型及MATLAB实现 4.4.1 BSB神经网络模型描述 4.4.2 BSB的MATLAB实现 4.5 双向联想记忆(BAM)及MATLAB实现 4.5.1 Kosko型BAM网络模型 4.5.2 BAM网络的实例分析 4.6 回归BP网络及应用 4.6.1 回归BP网络概述 4.6.2 基于回归BP网络的房价预测 4.7 Boltzmann机网络及仿真 4.7.1 BM网络的基本结构 4.7.2 BM模型的工作规则和学习规则 4.7.3 BM网络的MATLAB仿真 4.8 小结 第5章 自组织与LVQ神经网络

2015-07-05

人工神经网络导论

目录 第一章 引言 1.1 人工神经网络的提出 1.1.1 智能与人工智能 1.1.2 物理符号系统 1.1.3 联接主义观点 1.1.4 两种模型的比较 1.2 人工神经网络的特点 1.2.1 人工神经网络的概念 1.2.2 学习能力 1.2.3 基本特征的自动提取 1.2.4 信息的分布存放 1.2.5 适用性问题 1.3 历史回顾 1.3.1 萌芽期 1.3.2 第一高潮期 1.3.3 反思期 1.3.4 第二高潮期 1.3.5 再认识与应用研究期 练习题 第二章 人工神经网络基础 2.1 生物神经网络 2.2 人工神经元 2.2.1 人工神经元的基本构成 2.2.2 激活函数(ActivationFunction) 2.2.3 M-P模型 2.3 A.工神经网络的拓扑特性 2.3.1 联接模式 2.3.2 网络的分层结构 2.4 存储与映射 2.5 人工神经网络的训练。 2.5.1 无导师学习 2.5.2 有导师学习 练习题 第三章 感知器 3.1 感知器与人工神经网络的早期发展 3.2 感知器的学习算法 3.2.1 离散单输出感知器训练算法 3.2.2 离散多输出感知器训练算法 3.2.3 连续多输出感知器训练算法 3.3 线性不可分问题 3.3.1 异或(Exclusive-0R)问题 3.3.2 线性不可分问题的克服 练习题 第四章 BP网络 4.1 概述 4.2 基本BP算法 4.2.1 网络的构成 4.2.2 训练过程概述 4.2.3 误差传播分析 4.2.4 基本的BP算法 4.3 算法的改进 4.4 算法的实现 4.5 算法的理论基础 4.6 几个问题的讨论 练习题 第五章 对传网 5.1 网络结构 5.2 网络的正常运行 5.2.1 Kohonen层 5.2.2 Grossberg层 5.3 Kohonen层的训练 5.3.1 输入向量的预处理 5.3.2 训练 5.4 Kohonen层联接权的初始化方法 5.5 Grossberg层的训练 5.6 补充说明 练习题 第六章 非确定方法 6.1 基本的非确定训练算法 6.2 模拟退火算法 6.3 Cauchy训练 6.4 相关的几个问题 练习题一 第七章 循环网络 7.1 循环网络的组织 7.2 稳定性分析 7.3 统计Hopfield网与Boltzmann机 7.4 双联存储器的结构 7.5 异相联存储 7.6 其他的双联存储器 7.7 Hopfield网用于解决TSP问题 练习题 第八章 自适应共振理论 8.1 ART的结构 8.2 ART的初始化 8.2.1 T的初始化 8.2.2 B的初始化 8.2.3 p的初始化 8.3 ART的实现 练习题 参考文献

2015-07-05

神经网络原理

第1章 导言 第2章 学习过程 第3章 单层感知器 第4章 多层感知器 第5章 径向基函数网络 第6章 支持向量机 第7章 委员会机器 第8章 主分量分析 第9章 自组织映射 第10章 信息论模型 第11章 植根于统计力学的随机机器和它们的逼近 第12章 神经动态规划 第13章 使用前馈网络的时序处理 第14章 神经动力学 第15章 动态驱动的递归网络 后记 参考文献 索引

2015-07-05

神经网络设计

第1章 绪论 1.1 目的 1.2 历史 1.3 应用 1.4 生物学的启示 参考文献 第2章 神经元模型和网络结构 2.1 目的 2.1 理论和实例 2.2.1 符号 2.2.2 神经元模型 2.2.3 网络结构 2.3 小结 2.4 例题 2.5 结束语 习题 第3章 一个说明性实例 3.1 目的 3.2 理论和实例 3.2.1 问题描述 .3.2.2 感知机 3.2.3 hamming网络 3.2.4 hopfield网络 3.3 结束语 习题 第4章 感知机学习规则 4.1 目的 4. 2 理论和实例 4.2.1 学习规则 4.2.2 感知机的结构 4.2.3 感知机学习规则 4.2.4 收敛性证明 4.3 小结 4.4 例题 4.5 结束语 参考文献 习题 第5章 信号和权值向量空间 5.1 目的 5.2 理论和实例 5.2.1 线性向量空间 5.2.2 线性无关 5.2.3 生成空间 5.2.4 内积 5.2.5 范数 5.2.6 正交性 5.2.7 向量展开式 5.3 小结 5.4 例题 5.5 结束语 参考文献 习题 第6章 神经网络中的线性变换 6. 1 目的 6.2 理论和实例 6.2.1 线性变换 6.2.2 矩阵表示 6.2. 3 基变换 6.2. 4 特征值和特征向量 6.3 小结 6.4 例题 6.5 结束语 参考文献 习题 第7章 有监督的hebb学习 7.1 目的 7.2 理论和实例 7.2.1 线性联想器 7.2.2 hebb规则 7.2.3 仿逆规则 7.2.4 应用 7.2.5 hebb学习的变形 7.3 小结 7.4 例题 7.5 结束语 参考文献 习题 第8章 性能曲面和最优点 8.1 目的 8.2 理论和实例 8.2.1 泰勒级数 8.2.2 方向导数 8.2.3 极小点 8.2.4 优化的必要条件 8.2.5 二次函数 8.3 小结 8.4 例题 8.5 结束语 参考文献 习题 第9章 性能优化 9.1 目的 9.2 理论和实例 9.2.1 最速下降法 9.2.2 牛顿法 9.2.3 共扼梯度法 9.3 小结 9.4 例题 9.5 结束语 参考文献 习题 第10章 widrow-hoff学习算法 10.1 目的 10.2 理论和实例 10.2.1 adaline网络 10.2.2 均方误差 10.2.3 lms算法 10.2.4 收敛性分析 10.2.5 自适应滤波 10.3 小结 10.4 例题 10.5 结束语 参考文献 习题 第11章 反向传播 11.1 目的 11.2 理论和实例 11.2.1 多层感知机 11.2.2 反向传播算法 11.2.3 例子 11.2.4 反向传播 11.3 小结 11.4 例题 11.5 结束语 参考文献 习题 第12章 反向传播算法的变形 12.1 目的 12.2 理论和实例 12.2.1 bp算法的缺点 12.2.2 bp算法的启发式改进 12.2.3 数值优化技术 12.3 小结 12.4 例题 12.5 结束语 参考文献 习题 第13章 联想学习 13.1 目的 13.2 理论和实例 13.2.1 简单联想网络 13.2.2 无监督的hebb规则 13.2.3 简单的识别网络 13.2.4 instar规则 13.2.5 简单回忆网络 13.2.6 outstar规则 13.3 小结 13.4 例题 13.5 结束语 参考文献 习题 第14章 竞争网络 14.1 目的 14.2 理论和实例 14.2.1 hamming网络 14.2.2 竞争层 14.2.3 生物学意义上的竞争层 14.2.4 自组织特征图 14.2.5 学习向量量化 14.3 小结 14.4 例题 14.5 结束语 参考文献 习题 第15章 grossberg网络 15.1 目的 15.2 理论和实例 15. 2.1 生物学的启发:视觉 15.2.2 基本非线性模型 15.2.3 两层竞争网络 15.2.4 与kohonen规则的关系 15.3 小结 15.4 例题 15.5 结束语 参考文献 习题 第16章 自适应谐振理论 16.1 目的 16. 2 理论和实例 16.2.1 自适应谐振概述 16.2.2 第一层 16.2.3 第二层 16.2.4 调整子系统 16.2.5 学习规则:l1-l2 16.2.6 学习规则:l2-l1 16.2.7 art1算法小结 16.2.8 其他art体系结构 16.3 小结 16.4 例题 16.5 结束语 参考文献 习题 第17章 稳定性 17.1 目的 17.2 理论和实例 17.2.1 递归网络 17.2.2 稳定性概念 17.2.3 lyapunov稳定性定理 17.2.4 单摆例子 17.2.5 lasdlle不变性定理 17.3 小结 17.4 例题 17.5 结束语 参考文献 习题 第18章 hopfield网络 18.1 目的 18.2 理论和实例 18.2.1 hopfield模型 18.2.2 lyapunov函数 18.2.3 增益效应 18.2.4 hopfield网络设计 18.3 小结 18. 4 例题 18.5 结束语 参考文献 习题 第19章 结束语 19.1 目的 19.2 理论和实例 19.2.1 前馈和联想网络 19.2.2 竞争网络 19。2.3 动态联想存储器网络 19.2.4 神经网络的经典基础 19.2.5 参考书目和杂志 19.3 结束语 参考文献 附录a 文献目录 附录b 符号 附录c 软件 索引

2015-07-05

神经网络与机器学习(原书第3版)

神经网络是计算智能和机器学习的重要分支,在诸多领域都取得了很大的成功。在众多神经网络著作中,影响最为广泛的是Simon Haykin的《神经网络原理》(第3版更名为《神经网络与机器学习》)。在本书中,作者结合近年来神经网络和机器学习的最新进展,从理论和实际应用出发,全面、系统地介绍了神经网络的基本模型、方法和技术,并将神经网络和机器学习有机地结合在一起。 本书不但注重对数学分析方法和理论的探讨,而且也非常关注神经网络在模式识别、信号处理以及控制系统等实际工程问题的应用。本书的可读性非常强,作者举重若轻地对神经网络的基本模型和主要学习理论进行了深入探讨和分析,通过大量的试验报告、例题和习题来帮助读者更好地学习神经网络。 本版在前一版的基础上进行了广泛修订,提供了神经网络和机器学习这两个越来越重要的学科的最新分析。 本书特色: 1. 基于随机梯度下降的在线学习算法;小规模和大规模学习问题。 2. 核方法,包括支持向量机和表达定理。 3. 信息论学习模型,包括连接、独立分量分析(ICA)、一致独立分量分析和信息瓶颈。 4. 随机动态规划,包括逼近和神经动态规划。 5. 逐次状态估计算法,包括卡尔曼和粒子滤波器。 6. 利用逐次状态估计算法训练递归神经网络。 7. 富有洞察力的面向计算机的试验。 出版者的话 译者序 前言 缩写和符号 术语 第0章 导言1 0.1 什么是神经网络1 0.2 人类大脑4 0.3 神经元模型7 0.4 被看作有向图的神经网络10 0.5 反馈11 0.6 网络结构13 0.7 知识表示14 0.8 学习过程20 0.9 学习任务22 0.10 结束语27 注释和参考文献27 第1章 Rosenblatt感知器28 1.1 引言28 1.2 感知器28 1.3 感知器收敛定理29 1.4 高斯环境下感知器与贝叶斯分类器的关系33 1.5 计算机实验:模式分类36 1.6 批量感知器算法38 1.7 小结和讨论39 注释和参考文献39 习题40 第2章 通过回归建立模型28 2.1 引言41 2.2 线性回归模型:初步考虑41 2.3 参数向量的最大后验估计42 2.4 正则最小二乘估计和MAP估计之间的关系46 2.5 计算机实验:模式分类47 2.6 最小描述长度原则48 2.7 固定样本大小考虑50 2.8 工具变量方法53 2.9 小结和讨论54 注释和参考文献54 习题55 第3章 最小均方算法56 3.1 引言56 3.2 LMS算法的滤波结构56 3.3 无约束最优化:回顾58 3.4 维纳滤波器61 3.5 最小均方算法63 3.6 用马尔可夫模型来描画LMS算法和维纳滤波器的偏差64 3.7 朗之万方程:布朗运动的特点65 3.8 Kushner直接平均法66 3.9 小学习率参数下统计LMS学习理论67 3.10 计算机实验Ⅰ:线性预测68 3.11 计算机实验Ⅱ:模式分类69 3.12 LMS算法的优点和局限71 3.13 学习率退火方案72 3.14 小结和讨论73 注释和参考文献74 习题74 第4章 多层感知器77 4.1 引言77 4.2 一些预备知识78 4.3 批量学习和在线学习79 4.4 反向传播算法81 4.5 异或问题89 4.6 改善反向传播算法性能的试探法90 4.7 计算机实验:模式分类94 4.8 反向传播和微分95 4.9 Hessian矩阵及其在在线学习中的规则96 4.10 学习率的最优退火和自适应控制98 4.11 泛化102 4.12 函数逼近104 4.13 交叉验证107 4.14 复杂度正则化和网络修剪109 4.15 反向传播学习的优点和局限113 4.16 作为最优化问题看待的监督学习117 4.17 卷积网络126 4.18 非线性滤波127 4.19 小规模和大规模学习问题131 4.20 小结和讨论136 注释和参考文献137 习题138 第5章 核方法和径向基函数网络144 5.1 引言144 5.2 模式可分性的Cover定理144 5.3 插值问题148 5.4 径向基函数网络150 5.5 K-均值聚类152 5.6 权向量的递归最小二乘估计153 5.7 RBF网络的混合学习过程156 5.8 计算机实验:模式分类157 5.9 高斯隐藏单元的解释158 5.10 核回归及其与RBF网络的关系160 5.11 小结和讨论162 注释和参考文献164 习题165 第6章 支持向量机168 6.1 引言168 6.2 线性可分模式的最优超平面168 6.3 不可分模式的最优超平面173 6.4 使用核方法的支持向量机176 6.5 支持向量机的设计178 6.6 XOR问题179 6.7 计算机实验:模式分类181 6.8 回归:鲁棒性考虑184 6.9 线性回归问题的最优化解184 6.10 表示定理和相关问题187 6.11 小结和讨论191 注释和参考文献192 习题193 第7章 正则化理论197 7.1 引言197 7.2 良态问题的Hadamard条件198 7.3 Tikhonov正则化理论198 7.4 正则化网络205 7.5 广义径向基函数网络206 7.6 再论正则化最小二乘估计209 7.7 对正则化的附加要点211 7.8 正则化参数估计212 7.9 半监督学习215 7.10 流形正则化:初步的考虑216 7.11 可微流形217 7.12 广义正则化理论220 7.13 光谱图理论221 7.14 广义表示定理222 7.15 拉普拉斯正则化最小二乘算法223 7.16 用半监督学习对模式分类的实验225 7.17 小结和讨论227 注释和参考文献228 习题229 第8章 主分量分析232 8.1 引言232 8.2 自组织原则232 8.3 自组织的特征分析235 8.4 主分量分析:扰动理论235 8.5 基于Hebb的最大特征滤波器241 8.6 基于Hebb的主分量分析247 8.7 计算机实验:图像编码251 8.8 核主分量分析252 8.9 自然图像编码中的基本问题256 8.10 核Hebb算法257 8.11 小结和讨论260 注释和参考文献262 习题264 第9章 自组织映射268 9.1 引言268 9.2 两个基本的特征映射模型269 9.3 自组织映射270 9.4 特征映射的性质275 9.5 计算机实验Ⅰ:利用SOM解网格动力学问题280 9.6 上下文映射281 9.7 分层向量量化283 9.8 核自组织映射285 9.9 计算机实验Ⅱ:利用核SOM解点阵动力学问题290 9.10 核SOM和相对熵之间的关系291 9.11 小结和讨论293 注释和参考文献294 习题295 第10章 信息论学习模型299 10.1 引言299 10.2 熵300 10.3 最大熵原则302 10.4 互信息304 10.5 相对熵306 10.6 系词308 10.7 互信息作为最优化的目标函数310 10.8 最大互信息原则311 10.9 最大互信息和冗余减少314 10.10 空间相干特征316 10.11 空间非相干特征318 10.12 独立分量分析320 10.13 自然图像的稀疏编码以及与ICA编码的比较324 10.14 独立分量分析的自然梯度学习326 10.15 独立分量分析的最大似然估计332 10.16 盲源分离的最大熵学习334 10.17 独立分量分析的负熵最大化337 10.18 相关独立分量分析342 10.19 速率失真理论和信息瓶颈347 10.20 数据的最优流形表达350 10.21 计算机实验:模式分类354 10.22 小结和讨论354 注释和参考文献356 习题361 第11章 植根于统计力学的随机方法366 11.1 引言366 11.2 统计力学367 11.3 马尔可夫链368 11.4 Metropolis算法374 11.5 模拟退火375 11.6 Gibbs抽样377 11.7 Boltzmann机378 11.8 logistic信度网络382 11.9 深度信度网络383 11.10 确定性退火385 11.11 和EM算法的类比389 11.12 小结和讨论390 注释和参考文献390 习题392 第12章 动态规划396 12.1 引言396 12.2 马尔可夫决策过程397 12.3 Bellman最优准则399 12.4 策略迭代401 12.5 值迭代402 12.6 逼近动态规划:直接法406 12.7 时序差分学习406 12.8 Q学习410 12.9 逼近动态规划:非直接法412 12.10 最小二乘策略评估414 12.11 逼近策略迭代417 12.12 小结和讨论419 注释和参考文献421 习题422 第13章 神经动力学425 13.1 引言425 13.2 动态系统426 13.3 平衡状态的稳定性428 13.4 吸引子432 13.5 神经动态模型433 13.6 作为递归网络范例的吸引子操作435 13.7 Hopfield模型435 13.8 Cohen-Grossberg定理443 13.9 盒中脑状态模型445 13.10 奇异吸引子和混沌448 13.11 混沌过程的动态重构452 13.12 小结和讨论455 注释和参考文献457 习题458 第14章 动态系统状态估计的贝叶斯滤波461 14.1 引言461 14.2 状态空间模型462 14.3 卡尔曼滤波器464 14.4 发散现象及平方根滤波469 14.5 扩展的卡尔曼滤波器474 14.6 贝叶斯滤波器477 14.7 数值积分卡尔曼滤波器:基于卡尔曼滤波器480 14.8 粒子滤波器484 14.9 计算机实验:扩展的卡尔曼滤波器和粒子滤波器对比评价490 14.10 大脑功能建模中的 卡尔曼滤波493 14.11 小结和讨论494 注释和参考文献496 习题497 第15章 动态驱动递归网络501 15.1 引言501 15.2 递归网络体系结构502 15.3 通用逼近定理505 15.4 可控性和可观测性507 15.5 递归网络的计算能力510 15.6 学习算法511 15.7 通过时间的反向传播512 15.8 实时递归学习515 15.9 递归网络的消失梯度519 15.10 利用非线性逐次状态估计的递归网络监督学习框架521 15.11 计算机实验:Mackay-Glass吸引子的动态重构526 15.12 自适应考虑527 15.13 实例学习:应用于神经控制的模型参考529 15.14 小结和讨论530 注释和参考文献533 习题534 参考文献538

2015-07-05

OpenCV2计算机视觉编程手册源码

《OpenCV2计算机视觉编程手册》一书源码

2015-06-27

OpenCV Essentials

Chapter 1, Getting Started, deals with the basic installation steps and introduces the essential concepts of the OpenCV API. The first examples to read/write images and video and capture them from a camera are also provided. Chapter 2, Something We Look At – Graphical User Interfaces, covers user interface capabilities for our OpenCV-based applications. Chapter 3, First Things First – Image Processing, covers the most useful image processing techniques available in OpenCV. Chapter 4, What's in the Image? Segmentation, tackles the all-important problem of image segmentation in OpenCV. Chapter 5, Focusing on the Interesting 2D Features, covers the functions available for extracting keypoints and descriptors from an image. Chapter 6, Where's Wally? Object Detection, describes that object detection is a central problem in computer vision. This chapter explains the functionality available for object detection. Chapter 7, What Is He Doing? Motion, considers more than just a single static image. This chapter deals with motion and tracking in OpenCV. Chapter 8, Advanced Topics, focuses on some advanced topics such as machine learning and GPU-based acceleration.

2015-06-26

A Practical Introduction to Computer Vision with OpenCV

Contents Preface xiii 1 Introduction 1 1.1 A Difficult Problem 1 1.2 The Human Vision System 2 1.3 Practical Applications of Computer Vision 3 1.4 The Future of Computer Vision 5 1.5 Material in This Textbook 6 1.6 Going Further with Computer Vision 7 2 Images 9 2.1 Cameras 9 2.1.1 The Simple Pinhole Camera Model 9 2.2 Images 10 2.2.1 Sampling 11 2.2.2 Quantisation 11 2.3 Colour Images 13 2.3.1 Red–Green–Blue (RGB) Images 14 2.3.2 Cyan–Magenta–Yellow (CMY) Images 17 2.3.3 YUV Images 17 2.3.4 Hue Luminance Saturation (HLS) Images 18 2.3.5 Other Colour Spaces 20 2.3.6 Some Colour Applications 20 2.4 Noise 22 2.4.1 Types of Noise 23 2.4.2 Noise Models 25 2.4.3 Noise Generation 26 2.4.4 Noise Evaluation 26 2.5 Smoothing 27 2.5.1 Image Averaging 27 2.5.2 Local Averaging and Gaussian Smoothing 28 2.5.3 Rotating Mask 30 2.5.4 Median Filter 31 3 Histograms 35 3.1 1D Histograms 35 3.1.1 Histogram Smoothing 36 3.1.2 Colour Histograms 37 3.2 3D Histograms 39 3.3 Histogram/Image Equalisation 40 3.4 Histogram Comparison 41 3.5 Back-projection 43 3.6 k-means Clustering 44 4 Binary Vision 49 4.1 Thresholding 49 4.1.1 Thresholding Problems 50 4.2 Threshold Detection Methods 51 4.2.1 Bimodal Histogram Analysis 52 4.2.2 Optimal Thresholding 52 4.2.3 Otsu Thresholding 54 4.3 Variations on Thresholding 56 4.3.1 Adaptive Thresholding 56 4.3.2 Band Thresholding 57 4.3.3 Semi-thresholding 58 4.3.4 Multispectral Thresholding 58 4.4 Mathematical Morphology 59 4.4.1 Dilation 60 4.4.2 Erosion 62 4.4.3 Opening and Closing 63 4.4.4 Grey-scale and Colour Morphology 65 4.5 Connectivity 66 4.5.1 Connectedness: Paradoxes and Solutions 66 4.5.2 Connected Components Analysis 67 5 Geometric Transformations 71 5.1 Problem Specification and Algorithm 71 5.2 Affine Transformations 73 5.2.1 Known Affine Transformations 74 5.2.2 Unknown Affine Transformations 75 5.3 Perspective Transformations 76 5.4 Specification of More Complex Transformations 78 5.5 Interpolation 78 5.5.1 Nearest Neighbour Interpolation 79 5.5.2 Bilinear Interpolation 79 5.5.3 Bi-Cubic Interpolation 80 5.6 Modelling and Removing Distortion from Cameras 80 5.6.1 Camera Distortions 81 5.6.2 Camera Calibration and Removing Distortion 82 6 Edges 83 6.1 Edge Detection 83 6.1.1 First Derivative Edge Detectors 85 6.1.2 Second Derivative Edge Detectors 92 6.1.3 Multispectral Edge Detection 97 6.1.4 Image Sharpening 98 6.2 Contour Segmentation 99 6.2.1 Basic Representations of Edge Data 99 6.2.2 Border Detection 102 6.2.3 Extracting Line Segment Representations of Edge Contours 105 6.3 Hough Transform 108 6.3.1 Hough for Lines 109 6.3.2 Hough for Circles 111 6.3.3 Generalised Hough 112 7 Features 115 7.1 Moravec Corner Detection 117 7.2 Harris Corner Detection 118 7.3 FAST Corner Detection 121 7.4 SIFT 122 7.4.1 Scale Space Extrema Detection 123 7.4.2 Accurate Keypoint Location 124 7.4.3 Keypoint Orientation Assignment 126 7.4.4 Keypoint Descriptor 127 7.4.5 Matching Keypoints 127 7.4.6 Recognition 127 7.5 Other Detectors 129 7.5.1 Minimum Eigenvalues 130 7.5.2 SURF 130 8 Recognition 131 8.1 Template Matching 131 8.1.1 Applications 131 8.1.2 Template Matching Algorithm 133 8.1.3 Matching Metrics 134 8.1.4 Finding Local Maxima or Minima 135 8.1.5 Control Strategies for Matching 137 8.2 Chamfer Matching 137 8.2.1 Chamfering Algorithm 137 8.2.2 Chamfer Matching Algorithm 139 8.3 Statistical Pattern Recognition 140 8.3.1 Probability Review 142 8.3.2 Sample Features 143 8.3.3 Statistical Pattern Recognition Technique 149 8.4 Cascade of Haar Classifiers 152 8.4.1 Features 154 8.4.2 Training 156 8.4.3 Classifiers 156 8.4.4 Recognition 158 8.5 Other Recognition Techniques 158 8.5.1 Support Vector Machines (SVM) 158 8.5.2 Histogram of Oriented Gradients (HoG) 159 8.6 Performance 160 8.6.1 Image and Video Datasets 160 8.6.2 Ground Truth 161 8.6.3 Metrics for Assessing Classification Performance 162 8.6.4 Improving Computation Time 165 9 Video 167 9.1 Moving Object Detection 167 9.1.1 Object of Interest 168 9.1.2 Common Problems 168 9.1.3 Difference Images 169 9.1.4 Background Models 171 9.1.5 Shadow Detection 179 9.2 Tracking 180 9.2.1 Exhaustive Search 181 9.2.2 Mean Shift 181 9.2.3 Dense Optical Flow 182 9.2.4 Feature Based Optical Flow 185 9.3 Performance 186 9.3.1 Video Datasets (and Formats) 186 9.3.2 Metrics for Assessing Video Tracking Performance 187 10 Vision Problems 189 10.1 Baby Food 189 10.2 Labels on Glue 190 10.3 O-rings 191 10.4 Staying in Lane 192 10.5 Reading Notices 193 10.6 Mailboxes 194 10.7 Abandoned and Removed Object Detection 195 10.8 Surveillance 196 10.9 Traffic Lights 197 10.10 Real Time Face Tracking 198 10.11 Playing Pool 199 10.12 Open Windows 200 10.13 Modelling Doors 201 10.14 Determining the Time from Analogue Clocks 202 10.15 Which Page 203 10.16 Nut/Bolt/Washer Classification 204 10.17 Road Sign Recognition 205 10.18 License Plates 206 10.19 Counting Bicycles 207 10.20 Recognise Paintings 208 References 209 Index 213

2015-06-26

Emgu CV Essential

Preface 1 Chapter 1: Introduction to Emgu CV 5 What is Emgu CV? 5 Comparing image-processing libraries 6 License agreement 6 Documentation and other material 7 Ease of use 7 Performance 8 Summary of the comparison 9 Advantages of Emgu CV 9 Cross-platform 9 Cross-language support with examples 9 Other advantages 10 Summary 10 Chapter 2: Installing Emgu CV 11 Downloading Emgu CV 11 Installing Emgu CV 11 Installing on Windows 11 Installing on Linux 16 Getting the dependency 16 Building Emgu CV from source 17 Installing on OS X 18 Getting the dependency 19 Building Emgu CV from source 19 Troubleshooting 20 Windows 20 Linux 21 OS X 22 Summary 22 Chapter 3: Hello World 23 Hello World in C# 23 Creating a new project 24 Designing our form 27 Coding 27 Output 29 Hello World in VB.NET 30 Hello World in C++ 31 Summary 32 Chapter 4: Wrapping OpenCV 33 Architecture overview 33 OpenCV 33 Emgu CV 34 Function mapping 36 Structure mapping 36 Enumeration mapping 37 Summary 37 Chapter 5: Working with Images 39 Digital image representation 39 Pixels and data 39 Pixel resolution 40 Color image representation 41 Color depth 43 Working with images 44 Creating an image 44 Loading an image from a file 46 Operations with pixels 47 Method naming rules 49 Using operator overload 50 Generic operations support 51 Garbage collection 51 XML serialization 52 Summary 53 Chapter 6: Working with Matrices 55 Matrix and the Image class 55 Definition and parameters 56 Working with matrices 56 Creating a matrix 57 Operations with elements 58 Summary 59 Chapter 7: Shape Detection 61 Canny Edge Detector 61 Hough transforms 63 Hough Line transform 63 Hough Circle transform 65 Contour 67 Contour finding 68 Representation of contours 68 Sequences of vertexes 68 Free chain codes 69 Drawing contours 69 Polygon approximations 70 A contours example 70 Summary 72 Chapter 8: Face Detection 73 Biometric systems 73 Camera captures 75 Machine learning 76 Face detection or the Haar classifier 77 Boosting theory and supervised learning 78 Haar-like features 78 Code for face detection 81 Summary 83 Chapter 9: License Plate Recognition 85 License Plate Recognition 85 Algorithms for LPR 86 OCR 87 Tesseract-OCR 88 Code for License Plate Recognition 88 Assumption 89 Source code 89 GetWhitePixelMask 90 DetectLicensePlate 91 FindLicensePlate 92 Output 93 Summary 93 Chapter 10: Image Stitching 95 Image stitching 95 Algorithms for image stitching 96 Image matching 96 Image calibration 97 Image blending 97 Code 98 Summary 99 Index 101

2015-06-26

Practical OpenCV

About the Author ...............................................................................................................xiii About the Technical Reviewer ............................................................................................ xv Acknowledgments ............................................................................................................ xvii ■■Part 1: Getting Comfortable .......................................................................... 1 ■■Chapter 1: Introduction to Computer Vision and OpenCV ..................................................3 Why Was This Book Written? .........................................................................................................3 OpenCV ..........................................................................................................................................4 History of OpenCV ..................................................................................................................................................4 Built-in Modules ....................................................................................................................................................4 Summary .......................................................................................................................................5 ■■Chapter 2: Setting up OpenCV on Your Computer ..............................................................7 Operating Systems ........................................................................................................................7 Ubuntu ...................................................................................................................................................................7 Windows ..............................................................................................................................................................12 Mac OSX ..............................................................................................................................................................12 Summary .....................................................................................................................................12 ■■Chapter 3: CV Bling—OpenCV Inbuilt Demos ..................................................................13 Camshift ......................................................................................................................................13 Stereo Matching ..........................................................................................................................16 Homography Estimation in Video ................................................................................................16 Circle and Line Detection ............................................................................................................18 Image Segmentation ...................................................................................................................19 Bounding Box and Circle .............................................................................................................21 Image Inpainting .........................................................................................................................21 Summary .....................................................................................................................................22 ■■Chapter 4: Basic Operations on Images and GUI Windows ..............................................23 Displaying Images from Disk in a Window ..................................................................................23 The cv::Mat Structure ..................................................................................................................24 Creating a cv::Mat ...............................................................................................................................................25 Accessing elements of a cv::Mat ......................................................................................................................... 25 Expressions with cv::Mat ..................................................................................................................................... 25 Converting Between Color-spaces ..............................................................................................26 GUI Track-Bars and Callback Functions ......................................................................................27 Callback Functions .............................................................................................................................................27 ROIs: Cropping a Rectangular Portion out of an Image ...............................................................30 Region of Interest in an Image ............................................................................................................................ 30 Accessing Individual Pixels of an Image .....................................................................................33 Exercise ...............................................................................................................................................................33 Videos ..........................................................................................................................................34 Displaying the Feed from Your Webcam or USB Camera/File .............................................................................. 34 Writing Videos to Disk ..........................................................................................................................................36 Summary .....................................................................................................................................37 ■■ Part 2: Advanced Computer Vision Problems and Coding Them in OpenCV ......................................................................................... 39 ■■Chapter 5: Image Filtering ...............................................................................................41 Image Filters ...............................................................................................................................41 Blurring Images ...................................................................................................................................................45 Resizing Images—Up and Down ......................................................................................................................... 48 Eroding and Dilating Images ................................................................................................................................ 49 Detecting Edges and Corners Efficiently in Images ............................................................................................. 51 Edges ...................................................................................................................................................................51 Canny Edges ........................................................................................................................................................56 Corners ................................................................................................................................................................57 Object Detector App ....................................................................................................................60 Morphological Opening and Closing of Images to Remove Noise ...............................................63 Summary .....................................................................................................................................65 ■■Chapter 6: Shapes in Images ...........................................................................................67 Contours ......................................................................................................................................67 Point Polygon Test ...............................................................................................................................................70 Hough Transform .........................................................................................................................74 Detecting Lines with Hough Transform ................................................................................................................ 74 Detecting Circles with Hough Transform ............................................................................................................. 77 Generalized Hough Transform .....................................................................................................80 RANdom Sample Consensus (RANSAC) .......................................................................................80 Bounding Boxes and Circles ........................................................................................................91 Convex Hulls ................................................................................................................................92 Summary .....................................................................................................................................93 ■■Chapter 7: Image Segmentation and Histograms ............................................................95 Image Segmentation ...................................................................................................................95 Simple Segmentation by Thresholding ................................................................................................................ 96 Floodfill ..............................................................................................................................................................100 Watershed Segmentation .................................................................................................................................. 103 GrabCut Segmentation ......................................................................................................................................110 Histograms ................................................................................................................................111 Equalizing Histograms .......................................................................................................................................111 Histogram Backprojections ............................................................................................................................... 113 Meanshift and Camshift ....................................................................................................................................116 Summary ...................................................................................................................................117 ■■Chapter 8: B asic Machine Learning and Object D etection Based on Keypoints ............119 Keypoints and Keypoint Descriptors: Introduction and Terminology .........................................119 General Terms ....................................................................................................................................................120 How Does the Keypoint-Based Method Work? .................................................................................................. 120 SIFT Keypoints and Descriptors ................................................................................................121 Keypoint Detection and Orientation Estimation ................................................................................................. 121 SIFT Keypoint Descriptors ................................................................................................................................. 125 Matching SIFT Descriptors ................................................................................................................................ 125 SURF Keypoints and Descriptors ...............................................................................................131 SURF Keypoint Detection ...................................................................................................................................131 SURF Descriptor ................................................................................................................................................134 ORB (Oriented FAST and Rotated BRIEF) ...................................................................................136 Oriented FAST Keypoints ...................................................................................................................................137 BRIEF Descriptors ..............................................................................................................................................137 Basic Machine Learning ............................................................................................................140 SVMs ..................................................................................................................................................................141 Object Categorization ................................................................................................................142 Strategy .............................................................................................................................................................142 Organization ......................................................................................................................................................143 Summary ...................................................................................................................................153 ■■ Chapter 9: Affine and Perspective Transformations and Their Applications to Image Panoramas .....................................................................................................155 Affine Transforms ......................................................................................................................155 Applying Affine Transforms ................................................................................................................................ 156 Estimating Affine Transforms ............................................................................................................................. 158 Perspective Transforms .............................................................................................................161 Panoramas ................................................................................................................................166 Summary ...................................................................................................................................172 ■■Chapter 10: 3D Geometry and Stereo Vision .................................................................173 Single Camera Calibration .........................................................................................................173 OpenCV Implementation of Single Camera Calibration ...................................................................................... 176 Stereo Vision .............................................................................................................................179 Triangulation ......................................................................................................................................................179 Calibration .........................................................................................................................................................180 Rectification and Disparity by Matching ............................................................................................................ 186 Summary ...................................................................................................................................200 ■■ Chapter 11: Embedded Computer Vision: Running OpenCV Programs on the Raspberry Pi ................................................................................................................. 201 Raspberry Pi ..............................................................................................................................202 Setting Up Your New Raspberry Pi ............................................................................................202 Installing Raspbian on the Pi ............................................................................................................................. 203 Initial Settings ....................................................................................................................................................204 Installing OpenCV ...............................................................................................................................................205 Camera board ............................................................................................................................206 Camera Board vs. USB Camera ......................................................................................................................... 207 Frame-Rate Comparisons .................................................................................................................................. 214 Usage Examples ........................................................................................................................215 Color-based Object Detector .............................................................................................................................. 216 ORB Keypoint-based Object Detector ................................................................................................................ 217 Summary ...................................................................................................................................218 Index .................................................................................................................................219

2015-06-26

学习OpenCV(中文版)随书源码

学习OpenCV(中文版)一书的随书源码

2015-06-26

Learning OpenCV

Preface 1. Overview What Is OpenCV? Who Uses OpenCV? What Is Computer Vision? The Origin of OpenCV Downloading and Installing OpenCV Getting the Latest OpenCV via CVS More OpenCV Documentation OpenCV Structure and Content Portability Exercises 2. Introduction to OpenCV Getting Started First Program——Display a Picture Second Program——AVI Video Moving Around A Simple Transformation A Not-So-Simple Transformation Input from a Camera Writing to an AVI File Onward Exercises 3. Gettingto KnowOpenCV OpenCV Primitive Data Types CvMat Matrix Structure IplImage Data Structure Matrix and Image Operators Drawing Things Data Persistence Integrated Performance Primitives Summary Exercises........

2015-06-26

LINUX内核源代码情景分析(下)

七,基于socket的进程间的通信 八,设备驱动 九,多处理器SMP系统结构 十,系统引导和初始化

2015-06-17

FreeBSD操作系统设计与实现

第一部分 综述 第1章 BSD系统的历史和目标 1.1 UNIX系统的历史 1.1.1 UNIX系统的起源 1.1.2 Research小组的UNIX系统 1.1.3 AT&T UNIX System III和System V 1.1.4 伯克利软件发布(BSD) 1.1.5 UNIX无处不在 1.2 BSD和其他系统 1.3 BSD向开放源代码的转变 1.3.1 Networking Release 2 1.3.2 法律诉讼 1.3.3 4.4BSD 1.3.4 4.4BSD-Lite Release 2 1.4 FreeBSD的开发模式 1.5 参考文献 第2章 FreeBSD设计概述 2.1 FreeBSD的功能和内核 2.2 内核结构 2.3 内核服务 2.4 进程管理 2.4.1 信号 2.4.2 进程组和会话 2.5 内存管理 2.5.1 BSD内存管理设计要点 2.5.2 内核中的内存管理 2.6 I/O系统 2.6.1 描述符与I/O 2.6.2 描述符管理 2.6.3 设备 2.6.4 套接口IPC 2.6.5 分散/聚集I/O 2.6.6 多文件系统支持 2.7 设备 2.8 文件系统 2.9 网络文件系统 2.10 终端 2.11 进程间通信 2.12 网络通信 2.13 网络实现 2.14 系统运行 2.15 复习题 2.16 参考文献 第3章 内核服务 3.1 内核结构 3.1.1 系统进程 3.1.2 系统入口 3.1.3 运行时刻的内核结构 3.1.4 内核的入口 3.1.5 从内核返回 3.2 系统调用 3.2.1 调用结果的处理 3.2.2 从系统调用返回 3.3 陷阱和中断 3.3.1 陷阱 3.3.2 I/O设备中断 3.3.3 软件中断 3.4 时钟中断 3.4.1 统计和进程调度 3.4.2 超时 3.5 内存管理服务 3.6 时间服务 3.6.1 真实时间 3.6.2 外部表示 3.6.3 调整时间 3.6.4 时间间隔 3.7 用户、用户组和其他身份标识 3.7.1 主机标识符 3.7.2 进程组和会话 3.8 资源服务 3.8.1 进程优先级 3.8.2 资源利用 3.8.3 资源限制 3.8.4 文件系统配额 3.9 系统运行服务 3.10 复习题 3.11 参考文献 第二部分 进程 第4章 进程管理 4.1 进程管理概述 4.1.1 多程序机制 4.1.2 调度 4.2 进程状态 4.2.1 进程结构 4.2.2 线程结构 4.3 上下文切换 4.3.1 线程状态 4.3.2 底层上下文切换 4.3.3 主动上下文切换 4.3.4 同步 4.3.5 互斥同步 4.3.6 锁管理器的锁 4.3.7 其他同步 4.4 线程调度 4.4.1 4.4BSD的调度程序 4.4.2 线程调度 4.4.3 线程优先级的计算 4.4.4 线程优先级例程 4.4.5 线程运行队列和上下文切换 4.4.6 ULE调度程序 4.5 创建进程 4.6 终止进程 4.7 信号 4.7.1 信号的历史 4.7.2 发送信号 4.7.3 接收信号 4.8 进程组和会话 4.8.1 会话 4.8.2 作业控制 4.9 监管环境 4.9.1 监管环境的语义 4.9.2 监管环境的实现 4.9.3 监管环境的限制 4.10 进程的调试 4.11 复习题 4.12 参考文献 第5章 存储管理 5.1 术语 5.1.1 进程与内存 5.1.2 调页机制 5.1.3 替换算法 5.1.4 工作集模型 5.1.5 交换机制 5.1.6 虚拟内存的优点 5.1.7 虚拟内存的硬件要求 5.2 FreeBSD虚拟内存系统概述 5.3 内核的存储管理 5.3.1 内核映射和子映射 5.3.2 内核地址空间的分配 5.3.3 内核的存储分配程序 5.3.4 内核的区域存储分配程序 5.4 进程独立拥有的资源 5.4.1 FreeBSD的进程虚拟地址空间 5.4.2 缺页处理 5.4.3 映射到对象 5.4.4 对象 5.4.5 对象到页面 5.5 共享存储 5.5.1 mmap模型 5.5.2 共享映射 5.5.3 私有映射 5.5.4 压缩影子链 5.5.5 私有快照 5.6 创建新进程 5.6.1 保留内核资源 5.6.2 复制用户地址空间 5.6.3 不通过复制创建新进程 5.7 执行一个文件 5.8 进程地址空间的操作 5.8.1 改变进程大小 5.8.2 文件映射 5.8.3 改变保护权限 5.9 终止进程 5.10 调页器接口 5.10.1 vnode调页器 5.10.2 设备调页器 5.10.3 物理内存调页器 5.10.4 交换调页器 5.11 调页机制 5.11.1 硬件高速缓存的设计 5.11.2 页面填色 5.12 页面替换 5.12.1 调页参数 5.12.2 pageout守护进程 5.12.3 交换机制 5.12.4 换入进程 5.13 可移植性 5.13.1 pmap模块的作用 5.13.2 初始化和启动 5.13.3 分配和释放映射 5.13.4 改变映射的访问和固定属性 5.13.5 管理页表的使用信息 5.13.6 初始化物理页面 5.13.7 管理内部数据结构 5.14 复习题 5.15 参考文献 第三部分 I/O系统 第6章 I/O系统概述 6.1 从用户到设备的I/O映射 6.1.1 设备驱动程序 6.1.2 I/O队列 6.1.3 中断处理 6.2 字符设备 6.2.1 原始设备和物理I/O 6.2.2 面向字符的设备 6.2.3 字符设备驱动程序的入口点 6.3 磁盘设备 6.3.1 块设备驱动程序的入口点 6.3.2 磁盘I/O请求的排序 6.3.3 磁盘标签 6.4 描述符的管理和服务 6.4.1 打开文件项 6.4.2 管理描述符 6.4.3 异步I/O 6.4.4 文件描述符的上锁机制 6.4.5 描述符上的多路I/O操作 6.4.6 select调用的实现 6.4.7 数据在内核中的转移 6.5 虚拟文件系统的接口 6.5.1 vnode的内容 6.5.2 对vnode的操作 6.5.3 路径名转换 6.5.4 文件系统的导出服务 6.6 与文件系统无关的服务 6.6.1 名字缓存 6.6.2 缓冲区管理 6.6.3 缓冲区管理的实现 6.7 可叠加的文件系统 6.7.1 简单的文件系统层 6.7.2 联合安装的文件系统 6.7.3 其他文件系统 6.8 复习题 6.9 参考文献 第7章 设备 7.1 设备概述 7.1.1 PC的I/O体系结构 7.1.2 FreeBSD海量存储I/O子系统的结构 7.1.3 设备的命名和访问 7.2 GEOM层 7.2.1 术语和拓扑规则 7.2.2 改变拓扑 7.2.3 运行 7.2.4 拓扑的灵活性 7.3 CAM层 7.3.1 SCSI子系统 7.3.2 I/O请求通过CAM子系统的路径 7.4 ATA层 7.5 配置设备 7.5.1 识别设备 7.5.2 自动配置数据结构 7.5.3 资源管理 7.6 复习题 7.7 参考文献 第8章 本地文件系统 8.1 文件系统的分层管理 8.2 inode的结构 8.2.1 inode格式的变化 8.2.2 扩展属性 8.2.3 文件系统的新功能 8.2.4 文件标志 8.2.5 动态的inode 8.2.6 管理inode 8.3 命名 8.3.1 目录 8.3.2 在目录中查找名字 8.3.3 路径名转换 8.3.4 链接 8.4 配额 8.5 文件上锁 8.6 软更新 8.6.1 文件系统中的更新依赖 8.6.2 依赖关系的数据结构 8.6.3 跟踪位映射表的依赖关系 8.6.4 跟踪inode的依赖关系 8.6.5 跟踪直接块的依赖关系 8.6.6 跟踪间接块的依赖关系 8.6.7 跟踪新间接块的依赖关系 8.6.8 跟踪新目录项的依赖关系 8.6.9 跟踪新目录的依赖关系 8.6.10 跟踪删除目录项时的依赖关系 8.6.11 截短文件 8.6.12 回收文件和目录的inode节点 8.6.13 跟踪目录项重命名时的依赖关系 8.6.14 跟踪删除文件时的依赖关系 8.6.15 fsync对软更新的要求 8.6.16 删除文件时对软更新的要求 8.6.17 fsck对软更新的要求 8.6.18 软更新的性能 8.7 文件系统的快照 8.7.1 创建文件系统快照 8.7.2 维护文件系统快照 8.7.3 大型文件系统的快照 8.7.4 快照性能 8.7.5 后台fsck 8.7.6 用户可见的快照 8.7.7 动态的转储 8.8 本地文件库 8.8.1 文件库概述 8.8.2 用户的文件I/O 8.9 伯克利快速文件系统 8.9.1 伯克利快速文件系统的组成 8.9.2 引导块 8.9.3 优化存储空间利用率 8.9.4 读写文件 8.9.5 布局策略 8.9.6 分配机制 8.9.7 将块组成簇 8.9.8 基于扩展的分配 8.10 复习题 8.11 参考文献 第9章 网络文件系统 9.1 历史和概述 9.2 NFS的结构和操作 9.2.1 NFS协议 9.2.2 FreeBSD的NFS实现 9.2.3 客户机/服务器的交互操作 9.2.4 RPC的传输问题 9.2.5 安全问题 9.3 提高性能的技术 9.3.1 租约 9.3.2 崩溃恢复 9.4 复习题 9.5 参考文献 第10章 终端处理 10.1 终端处理模式 10.2 行规程 10.3 用户接口 10.4 tty结构 10.5 进程组、会话和终端控制 10.6 C-list 10.7 RS-232和调制解调器控制 10.8 终端操作 10.8.1 打开终端 10.8.2 输出到行规程 10.8.3 终端的输出 10.8.4 终端的输入 10.8.5 ioctl例程 10.8.6 调制解调器转换 10.8.7 关闭终端设备 10.9 其他行规程 10.10 复习题 10.11 参考文献 第四部分 进程间通信 第11章 进程间通信 11.1 进程间通信的模型 11.2 实现的结构和概述 11.3 内存管理 11.3.1 mbuf 11.3.2 存储管理算法 11.3.3 mbuf工具例程 11.4 数据结构 11.4.1 通信域 11.4.2 套接口 11.4.3 套接口地址 11.4.4 锁 11.5 建立连接 11.6 传送数据 11.6.1 发送数据 11.6.2 接收数据 11.7 关闭套接口 11.8 本地进程间通信 11.8.1 信号量 11.8.2 消息队列 11.8.3 共享内存 11.9 复习题 11.10 参考文献 第12章 网络通信 12.1 内部结构 12.1.1 数据流 12.1.2 通信协议 12.1.3 网络接口 12.2 套接口到协议的接口 12.2.1 协议的用户请求例程 12.2.2 协议的控制输出例程 12.3 协议到协议的接口 12.3.1 pr_output 12.3.2 pr_input 12.3.3 pr_ctlinput 12.4 协议和网络的接口 12.4.1 发送数据包 12.4.2 接收数据包 12.5 路由选择 12.5.1 内核路由选择表 12.5.2 路由选择查找 12.5.3 路由选择重定向 12.5.4 路由选择表接口 12.5.5 用户级的路由选择策略 12.5.6 用户级路由选择接口:路由选择套接口 12.6 缓冲和拥塞控制 12.6.1 协议缓冲策略 12.6.2 队列限制 12.7 原始套接口 12.7.1 控制块 12.7.2 输入处理 12.7.3 输出处理 12.8 网络子系统的其他主题 12.8.1 带外数据 12.8.2 地址解析协议 12.9 复习题 12.10 参考文献 第13章 网络协议 13.1 IPv4网络协议 13.1.1 IPv4地址 13.1.2 广播地址 13.1.3 组播 13.1.4 端口与关联 13.1.5 协议控制块 13.2 UDP协议 13.2.1 初始化 13.2.2 输出 13.2.3 输入 13.2.4 控制操作 13.3 Internet协议(IP) 13.3.1 输出 13.3.2 输入 13.3.3 转发 13.4 TCP协议 13.4.1 TCP连接状态 13.4.2 序号变量 13.5 TCP算法 13.5.1 定时器 13.5.2 往返时间的估计 13.5.3 建立连接 13.5.4 SYN缓存 13.5.5 关闭连接 13.6 TCP输入处理 13.7 TCP输出处理 13.7.1 发送数据 13.7.2 避免糊涂窗口综合症 13.7.3 避免小数据包 13.7.4 确认延迟和窗口更新 13.7.5 重发状态 13.7.6 慢启动 13.7.7 源拥塞的处理 13.7.8 缓冲与窗口大小分配 13.7.9 使用慢启动避免拥塞 13.7.10 快速重发 13.8 ICMP协议 13.9 IPv6 13.9.1 IPv6地址 13.9.2 IPv6数据包格式 13.9.3 套接口API的调整 13.9.4 自动配置 13.10 安全 13.10.1 IPSec概述 13.10.2 安全协议 13.10.3 密钥管理 13.10.4 IPSec实现 13.10.5 密码子系统 13.11 复习题 13.12 参考文献 第五部分 系统运行 第14章 启动和关机 14.1 概述 14.2 引导 14.3 初始化内核 14.4 初始化内核模块 14.4.1 基本服务 14.4.2 初始化内核线程 14.4.3 初始化设备模块 14.4.4 内核的可加载模块 14.4.5 启动进程间通信 14.4.6 启动内核线程 14.5 用户级初始化 14.5.1 /sbin/init 14.5.2 系统的启动脚本 14.5.3 /usr/libexec/getty 14.5.4 /usr/bin/login 14.6 系统运行 14.6.1 内核的配置 14.6.2 系统关机与自动重启 14.6.3 系统调试 14.6.4 同内核传递信息 14.7 复习题 14.8 参考文献 术语表

2015-06-17

The Design and Implementation of the FreeBSD Operating System

As in earlier Addison-Wesley books on the UNIX-based BSD operating system, Kirk McKusick and George Neville-Neil deliver here the most comprehensive, up-to-date, and authoritative technical information on the internal structure of open source FreeBSD. Readers involved in technical and sales support can learn the capabilities and limitations of the system; applications developers can learn effectively and efficiently how to interface to the system; system administrators can learn how to maintain, tune, and configure the system; and systems programmers can learn how to extend, enhance, and interface to the system. The authors provide a concise overview of FreeBSD's design and implementation. Then, while explaining key design decisions, they detail the concepts, data structures, and algorithms used in implementing the systems facilities. As a result, readers can use this book as both a practical reference and an in-depth study of a contemporary, portable, open source operating system. This book: * Details the many performance improvements in the virtual memory system * Describes the new symmetric multiprocessor support * Includes new sections on threads and their scheduling * Introduces the new jail facility to ease the hosting of multiple domains * Updates information on networking and interprocess communication Already widely used for Internet services and firewalls, high-availability servers, and general timesharing systems, the lean quality of FreeBSD also suits the growing area of embedded systems. Unlike Linux, FreeBSD does not require users to publicize any changes they make to the source code.

2015-06-16

Unix操作系统设计

译者序 前言 第1章 系统概貌 1.1 历史 1.2 系统结构 1.3 用户看法 1.3.1 文件系统 1.3.2 处理环境 1.3.3 构件原语 1.4 操作系统服务 1.5 关于硬件的假设 1.5.1 中断与例外 1.5.2 处理机执行级 1.5.3 存储管理 1.6 本章小结 第2章 内核导言 2.1 UNIX操作系统的体系结构 2.2 系统概念介绍 2.2.1 文件子系统概貌 2.2.2 进程 2.3 内核数据结构 2.4 系统管理 2.5 本章小结 2.6 习题 第3章 数据缓冲区高速缓冲 3.1 缓冲头部 3.2 缓冲池的结构 3.3 缓冲区的检索 3.4 读磁盘块与写磁盘块 3.5 高速缓冲的优点与缺点 3.6 本章小结 3.7 习题 第4章 文件的内部表示 4.1 索引节点 4.1.1 定义 4.1.2 对索引节点的存取 4.1.3 释放索引节点 4.2 正规文件的结构 4.3 目录 4.4 路径名到索引节点的转换 4.5 超级块 4.6 为新文件分配索引节点 4.7 磁盘块的分配 4.8 其他文件类型 4.9 本章小结 4.10 习题 第5章 文件系统的系统调用 5.1 系统调用Open 5.2 系统调用read 5.3 系统调用write 5.4 文件和记录的上锁 5.5 文件的输入/输出位置的调整lseek 5.6 系统调用close 5.7 文件的建立 5.8 特殊文件的建立 5.9 改变目录及根 5.10 改变所有者及许可权方式 5.11 系统调用stat和fstat 5.12 管道 5.12.1 系统调用pipe 5.12.2 有名管道的打开 5.12.3 管道的读和写 5.12.4 管道的关闭 5.12.5 例 5.13 系统调用dup 5.14 文件系统的安装和拆卸 5.14.1 在文件路径名中跨越安装点 5.14.2 文件系统的拆卸 5.15 系统调用link 5.16 系统调用unlink 5.16.1 文件系统的一致性 5.16.2 竟争条件 5.17 文件系统的抽象 5.18 文件系统维护 5.19 本章小结 5.20 习题 第6章 进程结构 6.1 进程的状态和状态的转换 6.2 系统存储方案 6.2.1 区 6.2.2 页和页表 6.2.3 内核的安排 6.2.4 u区 6.3 进程的上下文 6.4 进程上下文的保存 6.4.1 中断和例外 6.4.2 系统调用的接口 6.4.3 上下文切换 6.4.4 为废弃返回(abortive return)而保存上下文 6.4.5 在系统和用户地址空间之间拷贝数据 6.5 进程地址空间的管理 6.5.1 区的上锁和解锁 6.5.2 区的分配 6.5.3 区附接到进程 6.5.4 区大小的改变 6.5.5 区的装入 6.5.6 区的释放 6.5.7 区与进程的断接 6.5.8 区的复制 6.6 睡眠 6.6.1 睡眠事件及其地址 6.6.2 算法sleep和wakeup 6.7 本章小结 6.8 习题 第7章 进程控制 7.1 进程的创建 7.2 软中断信号 7.2.1 软中断信号的处理 7.2.2 进程组 7.2.3 从进程发送软中断信号 7.3 进程的终止 7.4 等待进程的终止 7.5 对其他程序的引用 7.6 进程的用户标识号 7.7 改变进程的大小 7.8 Shell程序 7.9 系统自举和进程init 7.10 本章小结 7.11 习题 第8章 进程调度和时间 8.1 进程调度 8.1.1 算法 8.1.2 调度参数 8.1.3 进程调度的例子 8.1.4 进程优先权的控制 8.1.5 公平共享调度 8.1.6 实时处理 8.2 有关时间的系统调用 8.3 时钟 8.3.1 重新启动时钟 8.3.2 系统的内部定时 8.3.3 直方图分析 8.3.4 记帐和统计 8.3.5 计时 8.4 本章小结 8.5 习题 第9章 存储管理策略 9.1 对换 9.1.1 对换空间的分配 9.1.2 进程的换出 9.1.3 进程的换入 9.2 请求调页 9.2.1 请求调页的数据结构 9.2.2 偷页进程 9.2.3 页面错 9.2.4 在简单硬件支持下的请求调页系统 9.3 对换和请求调页的混合系统 9.4 本章小结 9.5 习题 第10章 输入输出子系统 10.1 驱动程序接口 10.1.1 系统配置 10.1.2 系统调用与驱动程序接口 10.1.3 中断处理程序 10.2 磁盘驱动程序 10.3 终端驱动程序 10.3.1 字符表Clist 10.3.2 标准方式下的终端驱动程序 10.3.3 原始方式下的终端驱动程序 10.3.4 终端探询 10.3.5 建立控制终端 10.3.6 间接终端驱动程序 10.3.7 注册到系统 10.4 流 10.4.1 流的详细的示例 10.4.2 对流的分析 10.5 本章小结 10.6 习题 第11章 进程间通信 11.1 进程跟踪 11.2 系统V IPC 11.2.1 消息 11.2.2 共享存储区 11.2.3 信号量 11.2.4 总的评价 11.3 网络通信 11.4 套接字 11.5 本章小结 11.6 习题 第12章 多处理机系统 12.1 多处理机系统的问题 12.2 主从处理机解决方法 12.3 信号量解决方法 12.3.1 信号量定义 12.3.2 信号量实现 12.3.3 几个算法 12.4 Tunis系统 12.5 性能局限性 12.6 习题 第13章 分布式UNIX系统 13.1 卫星处理机系统 13.2 纽卡斯尔连接 13.3 透明型分布式文件系统 13.4 无存根进程的透明分布式模型 13.5 本章小结 13.6 习题 附录A 系统调用 参考文献 索引

2015-06-16

UNIX技术内幕

第1章 概论 1 1.1 历史背景 1 1.2 UNIX诞生的经过 1 1.3 UNIX版本6 2 1.4 各流派一览 2 1.5 为什么取得成功 3 1.5.1 简洁高效 3 1.5.2 健壮性 3 1.5.3 功能丰富 3 1.5.4 移植性 3 1.5.5 开放性 4 1.6 缩写及术语说明 4 第2章 UNIX综述 6 2.1 硬件平台 6 2.1.1 中断和自陷(Trap) 7 2.1.2 两种处理器模式 9 2.1.3 通用寄存器 10 2.1.4 I/O设备管理 10 2.1.5 栈(Stack) 11 2.1.6 常用指令 11 2.1.7 备注 19 2.2 UNIX内核综述 20 2.2.1 模块分类 20 2.2.2 各模块间的通信 20 2.2.3 源文件 21 2.2.4 语法规则和编码风格说明 23 2.3 思考题 27 第3章 虚拟内存 28 3.1 简介 28 3.2 虚拟内存的优点 29 3.2.1 安全性 29 3.2.2 提高空间利用率 30 3.2.3 多进程的支持 30 3.3 PDP11/40的虚拟内存机制 30 3.3.1 页地址寄存器(PAR) 32 3.3.2 页描述寄存器(PDR) 32 3.3.3 活动页寄存器地址 33 3.3.4 虚拟地址向物理地址的映射过程 33 3.3.5 异常处理 35 3.3.6 和现代页式虚存的比较 36 3.4 UNIX的虚存实现 36 3.4.1 进程空间分布 36 3.4.2 用户活动页寄存器设置函数estabur 37 3.4.3 用户空间映射函数sureg 41 3.5 内存管理 42 3.5.1 内核内存管理 42 3.5.2 用户内存管理 47 3.6 思考题 56 第4章 启动模块 57 4.1 操作流程 57 4.2 中断向量 58 4.3 启动函数start 60 4.4 备注 65 4.4.1 为什么需要引导程序和装入程序 65 4.4.2 0地址处指令分析 65 4.4.3 为什么要使用汇编语言 66 4.4.4 Windows启动过程浅析 66 4.5 思考题 67 第5章 进程管理和调度 68 5.1 程序员眼中的虚拟机 68 5.2 系统资源 68 5.3 进程上下文 70 5.4 进程调度 72 5.5 UNIX实现 73 5.5.1 进程上下文 73 5.5.2 进程的两种状态 80 5.5.3 调度过程 82 5.5.4 备注 128 5.6 思考题 134 第6章 中断处理过程 136 6.1 PSW寄存器 136 6.2 中断处理流程 136 6.3 中断向量 138 6.4 PDP 11/40的中断类型 139 6.4.1 电传终端接口输入中断 139 6.4.2 电传终端接口输出中断 140 6.4.3 纸带打孔机输入中断 140 6.4.4 纸带打孔机输出中断 140 6.4.5 时钟中断 140 6.4.6 行打印机中断 140 6.4.7 磁盘读写中断 140 6.5 一些常用函数 140 6.5.1 特殊指令 140 6.5.2 fubyte(fuibyte) 141 6.5.3 fuword(fuiword) 143 6.5.4 subyte(suibyte) 143 6.5.5 suword(suiword) 144 6.5.6 clearseg 144 6.5.7 copyseg 145 6.5.8 copyin/copyout 146 6.5.9 dpadd 148 6.5.10 ldiv/lrem/lshift 148 6.6 call函数 149 6.7 时钟中断 151 6.7.1 基本概念 151 6.7.2 处理过程 152 6.8 call函数调用分派切换器的理由 163 6.9 内核定时器 164 6.9.1 数据结构 164 6.9.2 定时器的创建 165 6.9.3 定时器的触发 167 6.10 一些例子 168 6.10.1 进程优先级的调整 168 6.10.2 进程分派切换实例 174 6.11 备注 178 6.11.1 中断服务函数中为什么不使用互斥锁 178 6.11.2 中断服务函数中为什么不访问u变量 178 6.11.3 关于内存管理违例自陷的处理过程 179 6.11.4 调度标志runrun和runin 179 6.12 思考题 179 第7章 自陷 180 7.1 自陷原理 180 7.2 自陷向量 180 7.3 PDP11/40的自陷类型 180 7.3.1 系统出错自陷 180 7.3.2 系统调用自陷 182 7.3.3 调试自陷 182 7.3.4 自陷优先级 183 7.4 自陷处理过程 184 7.4.1 汇编函数_trap 184 7.4.2 C函数trap 186 7.4.3 backup函数 191 第8章 文件系统 211 8.1 概述 211 8.2 框架 212 8.2.1 文件存储的实现 212 8.2.2 UNIX文件系统 219 8.2.3 UNIX文件系统的详细实现 224 8.3 文件访问接口 229 8.3.1 文件创建接口creat 230 8.3.2 文件打开接口open 235 8.3.3 文件关闭接口close 236 8.3.4 文件读接口read 237 8.3.5 文件写接口write 238 8.3.6 文件定位接口seek 239 8.3.7 特殊文件创建接口mknod 242 8.3.8 文件链接接口link 244 8.3.9 取消文件链接接口unlink 246 8.3.10 设备加载接口smount 248 8.3.11 设备卸载接口sumount 251 8.4 节点和块管理 253 8.4.1 节点缓存 253 8.4.2 块缓存 255 8.4.3 块访问接口 263 8.4.4 节点访问接口 294 8.5 块设备驱动 322 8.5.1 概述 322 8.5.2 根设备——rk11磁盘 326 8.6 备注 335 8.6.1 FAT16文件系统 335 8.6.2 多进程访问文件的问题 338 8.6.3 进程间同步 339 8.6.4 文件的删除 340 8.6.5 设备驱动的扩展 340 8.7 总结 341 8.8 思考题 341 第9章 字符设备驱动 342 9.1 交互终端——电传打字机(teletypewriter) 342 9.1.1 设备特性 343 9.1.2 操作寄存器 343 9.1.3 驱动框架 345 9.1.4 驱动函数 351 9.1.5 shell应用举例 378 9.1.6 内核打印接口 379 9.2 PC-11纸带打孔机 383 9.2.1 设备特性 383 9.2.2 操作寄存器 384 9.2.3 驱动框架 385 9.2.4 驱动函数 387 9.2.5 读取器状态转换图 392 9.3 LP-11行打印机 393 9.3.1 设备特性 393 9.3.2 操作寄存器 393 9.3.3 驱动框架 394 9.3.4 驱动函数 396 9.4 现代打印机 401 9.4.1 并口 401 9.4.2 和内核挂接 403 9.4.3 简单的打印程序 406 9.4.4 CUPS 408 9.5 其他字符设备 408 9.5.1 内存 409 9.5.2 磁盘 411 9.6 网络驱动程序 415 9.7 综合示例 416 9.8 总结 417 9.9 思考题 418 第10章 进程交换过程 419 10.1 概述 419 10.2 具体实现 421 10.2.1 进程换出函数xswap 422 10.2.2 程序段内存释放函数xccdec 423 10.2.3 交换函数swap 424 10.2.4 调用实例 425 10.3 综合示例 426 10.4 思考题 430 第11章 UNIX可执行文件 431 11.1 .out文件 431 11.1.1 可执行头 431 11.1.2 程序段 432 11.1.3 数据段 432 11.1.4 程序和数据重定向表 432 11.1.5 符号表 434 11.1.6 示例 437 11.2 动态链接过程* 442 11.2.1 静态共享 443 11.2.2 动态共享 446 11.2.3 GOT/PLT表和位置无关代码(PIC) 446 11.2.4 动态加载过程分析 450 第12章 系统调用 457 12.1 概述 457 12.2 系统调用的实现 457 12.2.1 用户实现 459 12.2.2 系统调用表和trap自陷 459 12.2.3 内核实现 469 12.3 各系统调用的实现 469 12.3.1 文件相关调用 471 12.3.2 进程相关调用 491 12.3.3 信号相关调用 538 12.3.4 调试功能调用 558 12.3.5 用户/组ID调用 586 12.3.6 时间相关调用 589 12.3.7 终端相关调用 591 第13章 进程间通信 596 13.1 概述 596 13.2 管道 596 13.2.1 相关系统调用 596 13.2.2 管道实现过程分析 602 13.2.3 应用示例 603 13.2.4 采用内存文件实现管道 608 13.2.5 思考题 610 13.3 文件 610 13.4 有名管道 611 13.5 进程间同步 611 13.5.1 信号量 612 13.5.2 互斥体 621 13.5.3 事件 622 13.6 死锁 634 13.7 其他进程间数据传输方式 636 13.7.1 消息(message) 636 13.7.2 信箱(mailbox) 648 13.7.3 共享内存 671 第14章 多线程的实现 686 14.1 概述 686 14.2 线程和经典进程的比较 686 14.3 线程的示例实现 686 14.3.1 相关数据结构 686 14.3.2 实现方案 689 14.3.3 线程创建调用CreateThread 691 14.3.4 内核改动 695 14.3.5 线程退出调用ExitThread 711 14.3.6 线程id获得调用gettid 712 14.3.7 线程挂起调用SuspendThread 712 14.3.8 线程恢复调用ResumeThread 714 14.3.9 线程终止调用TerminateThread 715 14.3.10 线程ID查询调用GetThreadID 719 14.3.11 线程名查询调用GetThreadName 720 14.3.12 使用示例 721 14.3.13 思考题 723 第15章 网络多用户 724 15.1 系统初始化过程 724 15.1.1 init进程 724 15.1.2 getty程序 725 15.1.3 login程序 725 15.2 telnet程序 730 15.2.1 工作原理 730 15.2.2 常用配置 731 15.3 NFS(网络文件系统) 732 15.3.1 基本原理 733 15.3.2 RPC(远程过程调用) 734 15.3.3 各过程的实现 737 15.3.4 简单示例 741 附录A 参考书目及资源 742 附录B 思考题答案 743

2015-06-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除