自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 【游戏 AI】10 - 转向行为 I

本文描述的转向行为概念是在前一节运动学算法的基础上扩展增加了速度和旋转,在某些类型中,比如驾驶游戏,转向行为占主导地位;在其他类型的游戏中,它们更依赖于具体游戏内容:有些角色可能需要它们,有些角色则不需要。现有的各种转向行为算法,命名往往含糊不清或互相冲突。随着这一领域的发展,还没有出现明确的命名方案来区分单个原子转向行为和将多个原子转向行为结合在一起的复合行为。在这本文中,我将区分这两种行为:基本行为和由基本行为组成的复合行为。虽然在各种论文和代码样本中有大量的转向行为命名,但其中大多是一个或两个主题

2020-10-09 22:59:28 779

原创 【游戏 AI】9 - 运动学移动算法

如上一篇文章所说的,移动算法通常分为两大类:运动学移动算法 和 动态移动算法。这篇文章主要介绍运动学移动算法,相比较而言,运动学移动算法虽然更简单,但却十分实用。运动学移动算法输入是静态数据(位置和方向,没有速度),输出是所需的速度。输出通常只是一个开或关、或者是目标方向、以全速移动、静止。运动学算法不使用加速度,尽管速度的突然变化可能被平滑在几个帧。许多游戏甚至将事情简化得更简单:它强迫角色的方向与它所行进的方向一致;如果角色是静止的,它要么面对一个预先设定的方向,要么面对它移动的最后一个方向。如果

2020-07-30 10:56:16 860

原创 【游戏AI】8 - 移动算法基础

除非你开发的游戏是一个纯经济模拟器,否则游戏中的角色基本都需要移动。在移动算法中,角色都会有一个当前的位置和可能附加的控制其移动的物理道具,比如一辆车,然后算法使用这些属性来计算出角色下一步应该在哪里。所有的运动算法都有相同的基本形式:它们获取关于自身状态和世界状态的几何数据,然后给出一个几何形式的输出,来表示它们接下来要进行的移动。下图显示了这一点,角色的速度属性设为可选项,因为只有特定的移动算法才需要它。有些移动算法只需要很少的输入:例如,只需要角色的位置和要追赶的敌人的位置。另一些则需要与游戏状

2020-07-28 20:32:28 1254

原创 【游戏 AI】7 - AI 引擎

layout: posttitle: “游戏 AI - 6”subtitle: “AI 引擎”author: “Kang Cai”header-img: “img/post-bg-dreamer.jpg”header-mask: 0.4tags:游戏 AI在行业早期的时候,一款游戏基本上都是从零开始创建的。有些代码是从以前的项目中拖出来的,有些代码被重新编写和重用,但大多数都是新的。少数公司使用相同的基本代码来编写多款游戏,前提是游戏的风格和类型相似。例如,LucasArts(201.

2020-07-15 21:58:00 635

原创 【游戏 AI】6 - AI 与硬件的关系

AI 开发人员工作的最大限制是机器的物理限制。游戏 AI 没有数日的处理时间和 TB 级的内存,我们甚至无法使用运行游戏的计算机的所有处理器和内存。其他任务需要空间和时间,比如图形、声音、网络和输入。在团队中,不同团队的开发人员必须同时从事他们的专业工作,CPU和内存预算通常会有严格的限制。学术界或商业研究中的 AI 技术没有得到广泛应用的原因之一是它们的处理时间或内存需求,在一个简单的演示中引人注目的算法可能会使成品游戏直接卡死。本节讨论与AI代码的设计和构造相关的底层硬件问题,这里所包含的大部分内容

2020-07-14 21:53:38 489

原创 【游戏 AI】5 - 游戏 AI 的三要素

从软件工程的角度来看,游戏总是因为编程糟糕而受到批评:它们使用技巧、神秘的优化和未经验证的技术来获得额外的速度或简洁的效果。尽管游戏引擎可能会被重用,但游戏玩法代码通常不会,或者至少不会在编写时考虑到这一点,而较大的时间压力意味着程序员通常会为了完成游戏而去做任何他们需要做的事情,游戏 AI 也不例外。在游戏中的 AI 和其他编程行业或学术界认为的 AI 之间存在着巨大的鸿沟。根据我的经验,游戏的 AI 等同于 “特殊技巧+启发式方法+算法”,其中黑客表示临时的解决方案并表现出整洁效果,启发式并不是必需,

2020-07-09 20:06:54 503

原创 机器学习 · 总览篇 XI 特征工程

总览篇第4篇到第10篇主要是围绕着模型来介绍的,具体讲述的是机器学习模型的构建和学习的过程;本文是总览篇的最后一篇文章,介绍特征工程,准确来说特征工程是独立与机器学习存在的一个主题,但却是机器学习应用中不可缺少的一环。特征工程在2006年深度学习大热之前,是与“模型”处于同等地位的内容,随着深度学习的兴起,特征工程一部分工作由深度学习的深度网络完成,使特征工程的地位明显降低,然而特征工程真的就因此不重要了吗?并不是,特征工程在当今时代仍然发挥着重要的作用,甚至可以说是无处不在。文章首发于我的博客,转.

2020-07-09 12:41:05 461 1

原创 机器学习 · 总览篇 X 可学习性 & VC理论

VC 理论中 VC维 和 VC界 作为机器学习可学习性的最重要的理论基础,对于机器学习方法的研究和使用具有十分重要的指导意义。比如对于一个任务,我准备使用的机器学习方法是否合理、数据量至少需要多少,这些问题如何在进行实验之前就能被解答?答案就在本文中。文章首发于我的博客,转载请保留链接 ????机器学习主要研究的是怎么去学习解决一个问题,这里面包含了一个隐含的前提条件:对于待学习的问题,学习方法必须是可行的。那么怎么去判定一个学习方法对于问题的可学习性呢?PCA Learning 就是关于机器学习

2020-07-09 12:40:11 789

原创 机器学习 · 总览篇 IX 三要素之算法 - 牛顿法与拟牛顿法

在机器学习中,与梯度下降法一样,牛顿法与拟牛顿法在解决目标函数的最优化问题方面也起着重要的作用。本篇是机器学习三要素之算法的第二篇,也是三要素介绍的最后一篇。最近的5篇文章完整地介绍了机器学习的三要素,对三要素的掌握对于机器学习的学习至关重要,所有机器学习方法的想法和实现都离不开这三个要素。算法。文章首发于我的博客,转载请保留链接 ????与梯度下降法一样,在解决机器学习目标函数的最优化问题时,牛顿法与拟牛顿法也起着重要的作用。本文将分三节分别介绍 牛顿法一族、拟牛顿法一族 以及 两者与梯度下降法

2020-07-09 12:39:13 1109

原创 机器学习 · 总览篇 VIII 三要素之算法 - 梯度下降法及其变种

机器学习最后一个要素-算法,准确来说是优化算法,特别是数值优化(Numerical Optimization)或凸优化(Convex Optimization),属于运筹学(最优化理论)的一部分。机器学习中广泛使用的凸优化方法主要分为梯度下降法和拟牛顿法,这两类方法都派生出大量的变种,本文将介绍梯度下降法及其变种。文章首发于我的博客,转载请保留链接 ????一、运筹学和凸优化本文要介绍的机器学习最后一个要素-算法,其实就是使用了运筹学、特别是凸优化的相关知识,所以本文首先分别介绍运筹学和凸优化。

2020-07-09 12:38:45 682

原创 【游戏 AI】逻辑越复杂越好吗?

一种常见的错误是认为游戏中的AI越复杂,玩家对角色的感觉就越好。事实上,创造优秀的 AI 就是要将游戏的要求与正确的行为、以及产生这些行为的正确算法相匹配,在本书中有一系列令人眼花缭乱的技巧,正确的方法并不总是最直观的选择。无数难以实现的复杂人工智能的例子导致了糟糕的,甚至愚蠢的行为。同样,如果使用得当,一个非常简单的技巧也可以是完美的。一、当简单的事情看起来很棒《吃豆人》是最早的具有任何形式角色的游戏之一人工智能,其中幽灵 AI 有3种状态:一种是玩家收集点数时的正常状态;第二种状态,当玩家吃了电源后

2020-07-09 11:34:38 369

原创 机器学习 · 总览篇 VII 三要素之策略-正则化

上一篇文章和本文主要介绍三要素的第二要素-策略:上一篇文章中已经介绍了策略中平衡经验风险和结构风险的正则化系数,衡量经验风险的代价函数和损失函数;本文继续介绍最后一个重要的内容,衡量结构风险的正则化项。文章首发于我的博客,转载请保留链接 ????在上一篇文章中提到过,策略部分就是评判“最优模型”(最优参数的模型)的准则和方法,图1是目标函数的函数形式,图1 机器学习模型的目标函数形式如图1所示,目标函数包含了表征经验风险的代价函数和表征结构风险的正则化项,上篇文章已经介绍了正则化系数和损

2020-07-09 10:50:27 337

原创 机器学习 · 总览篇 VI 三要素之策略-损失函数

上一篇文章介绍了机器学习三要素中的第一个要素-模型,模型部分限制了预测模型函数的假设空间。本文将要介绍的第二个要素-策略,策略部分就是要定量判断不同参数下模型的优劣,为第三步求解最优模型做基础。由于策略部分想要介绍的内容较多,所以分成了两篇,这是第一篇,主要是对正则化系数和损失函数的介绍。本文首发于我的知乎专栏《机器怎么学习》中机器学习·总览篇(6) 三要素之策略 - 损失函数,转载请保留链接 ????机器学习的学习目标是获得假设空间(模型)的一个最优解,在模型部分,我们固定了模型函数的形式,在此

2020-07-09 10:49:47 693

原创 【游戏 AI】3 - 算法与数据结构

提前说明一下,这篇文章没有具体的介绍 AI 的实现,只是对后面其它文章的一个纲领性的概述。实现本书描述的技术有三个关键要素:算法本身,算法所依赖的数据结构(表征形式),以及向算法表示游戏世界的方式。一、算法算法是为人工智能问题生成解决方案的一步一步的过程。我们将着眼于在游戏关卡中生成路径以达到目标的算法,确定向哪个方向移动以拦截逃跑的敌人的算法,了解玩家下一步应该做什么的算法,以及其他许多算法。数据结构是算法的另一面。它们以一种算法可以快速操作的方式保存数据,从而得到解决方案。通常,数据结构需要.

2020-07-09 10:45:54 415

原创 机器学习 · 总览篇 V 三要素之模型

上一篇文章介绍了机器学习的三要素-模型、策略、算法,但只是比较粗略地介绍,本文将着重介绍三要素之模型,视角主要放在不同模型间的区别上本文首发于我的知乎专栏《机器怎么学习》中 机器学习·总览篇(5) 三要素之模型,转载请保留链接 ????机器学习首要考虑的问题是学习什么样的模型,如在《机器学习·总览篇(4) 机器学习的三要素》中描述的,模型就是所要学习的条件概率分布或决策函数。模型的假设空间(hypothesis space)包含所有可能的条件概率分布和决策函数,一般是无穷多种可能性,而训练(数据经

2020-07-08 20:24:37 302

原创 【游戏AI】2 - 游戏AI模型

在这本书中有大量的算法和技术。读者很容易迷失其中,所以从全局着眼去了解各个部分是如何组合在一起的十分重要。为了有所帮助,我使用了一个统一的结构来讨论游戏中使用的AI。这不是唯一可选的模型,也不是唯一贴合本书中技术的模型。但是为了使讨论更清楚,我将展示每种技术如何适用于制作游戏 AI 角色的通用结构。下图描述了这个通用模型。它将人工智能任务分成三个部分:运动、决策和策略。前两个部分包含基于字符的算法,最后一个部分针对某一团队或某一方进行操作。围绕着这三个AI元素的是一套完整的附加基础设施。并不是所有的

2020-07-08 20:23:14 567 1

原创 机器学习 · 总览篇 IV 机器学习的三要素

从基本理论上看,如前一篇介绍统计推断的文章所说,统计推断是机器学习十分重要的理论基础,所以机器学习狭义上就是指代统计学习方法;从方法框架上看,机器学习(统计学习方法)的组成有三个要素:模型、策略和算法。我们通常接触到的所谓“深度学习”、“支持向量机”、“罗吉斯蒂克回归”、“决策树”等等,都离不开这三要素。毫不夸张的说,学习机器学习的关键,就是掌握它这三个要素。本文首发于我的知乎专栏《机器怎么学习》中 机器学习·总览篇(4) 机器学习的三要素,转载请保留链接 ????一、机器学习的三要素数据在机器

2020-07-08 20:18:47 656

原创 机器学习 · 总览篇 III 统计推断: 频率学派和贝叶斯学派

统计推断作为重要的机器学习基础,对它的了解十分必要,否则我们做机器学习只是在黑盒操作,对其原理和结果难以解释本文首发于我的知乎专栏《机器怎么学习》中 机器学习·总览篇(3) 统计推断: 频率学派和贝叶斯学派,转载请保留链接 ????一、机器学习和统计推断的关系这一小节谈到的机器学习是狭义上的概念,特指归纳学习,也是现在通常意义上的机器学习.机器学习领域中的一个方向是通过统计推断中的『数值优化』来解决问题,称为统计学习机器学习是人工智能(交叉学科,定位尚不清晰)的一个子领域;统计推断是统计学

2020-07-08 20:14:32 916

原创 机器学习 · 总览篇 II 机器学习的发展历程

学习任何领域,"了解"总是第一步,而认识该领域的发展历程是"了解"一个领域十分有效的方法本文首发于我的知乎专栏《机器怎么学习》中 机器学习·总览篇(2) 机器学习的定义和类别,转载请保留链接 ????机器学习的发展历程机器学习的发展和人工智能发展是离不开的,机器学习是人工智能研究发展到一定阶段的必然产物。人工智能的研究历史有着一条从以“推理”为重点,到以“知识”为重点,再到以“学习”为重点的自然、清晰的脉络。下面是人工智能发展的三个时期:推理期: 时间为1950s~1970s,人们认为只

2020-07-08 20:13:59 1936 1

原创 机器学习 · 总览篇 I 机器学习的定义和类别

天下难事,必作于易。机器学习作为一个有广泛研究范围和应用范围的领域,要在整个领域有很深的造诣是十分困难的一件事情,一个好的途径是先去了解和掌握概况,然后再去选择感兴趣的研究方向。要做到前面这一点,根据我一贯认同的“总览-掌握-超越”三步走的方法,应该是能相对容易地达成,所以也就首先有了这个机器学习的总览篇第一篇文章,后续会继续分享有监督学习篇、深度学习篇(由于内容丰富故单独一篇)、强化学习篇、无监督学习篇、半监督学习篇这五篇,每一篇会包含10篇以内的文章,文章宗旨是简明扼要、博采众长。本文首发于我的.

2020-07-08 20:13:11 675

原创 【游戏AI】1 - 什么是AI

一、学术AI为了讲述这个故事,我将学术AI分为三个时期:早期时代,象征时代,自然计算(统计)时代。当然,这是一个过度粗略的简化,它们在某种程度上都有重叠,但我发现这是一个有用的区别。如果要收集一份更细致和充实的报告,见文章《Max Lungarella, Fumiya Iida, Josh Bongard, and Rolf Pfeifer. 50 Years of Artificial Intelligence. Springer Science & Business Media, 2007.

2020-07-08 20:09:07 277

原创 【Computer vision】HSV与常见颜色的对应关系

[code=C/C++]if(vcoutif(v>120&&scoutif(v>=95&&vcoutif( (h>=270||h=0.25 )coutif( (h>=30&&h=0.25 )coutif( (h>=135&&h=0.25 )coutcout[/code]

2015-03-03 14:42:17 579

原创 【Computer vision】OPENCV RGB与BGR互换

opencv中为什么图像局矩阵是以BGR而不是RGB显示像素的大小,这个其实与图像的表示定义有关,几个最初定义它的大牛互相不认同,就产生了如今的BGR与RGB混乱的局面,不过总体上来说,大部分还是默认RGB的格式,比如ffmpeg;然后还有极少部分使用BGR,如opencv。 所以在遇到以上问题时,需要先将BR通道互换,才能继续下一步处理,通常的做法有: (1)void cvConvert

2015-03-02 14:10:57 3305

原创 【Machine Learning】基于语义的图像检索视频技术

目前的搜索引擎给用户带来的使用体验是,用户在搜索时需要一定的技巧,不然很难搜到令自己满意的结果。比如当我们要搜索关于“在草原上奔跑的马”的视频,以百度为例,得到的结果全是通过标签匹配到的结果,有的视频甚至连一根草一匹马都没有,只是播放一首关于草原牧马的歌曲,这样的搜索结果不说是毫无意义的吧,至少是令人反感。不仅如此,如果我们要包含“俯视角草原上奔跑的马”的视频,我相信,打入这些文字是不能再现有的搜

2015-01-26 15:11:27 1046

原创 【Machine Learning】音特征提取技巧

研究音频信息处理方向已有一年之久,深刻认识到音频特征的选取对实验结果的影响之大,无论是从最底层的时域、频域的基础特征,还是经典的MFCC、PLP特征,甚至是无监督特征,其中的任何一种在不同的应用场合下都有其优势,不同特征的结合也会有比较大的影响,然而,说到底还是离不开以上这些基本的类型。如何在实验中对上述的某一样的特征进行更加精细的分析呢?下面会给大家提供一些思路。       1、窗长和跳步

2015-01-26 14:55:17 792

原创 【Computer Vision】OPENCV内存泄漏

前些日子在做视频处理的时候遇到了不少OPENCV开销内存的问题,由于需要开销的内存比较乱,所以在释放的时候难免欠考虑,所以在这里做一个总结,供自己和大家参考。1、cvFindContours的内存泄漏这个比较隐蔽,它用到的两个参数CvSeq、CvMemStorage,事先没有显式的声明,但在cvFindContours函数调用过程中,会给CvSeq和CvMemStorage分配内存,而且两

2015-01-26 14:18:47 817

数据库迭代查询作业(绝对能运行)

数据库迭代查询作业 emp(eno, ename, salary, mgr),其中mgr是员工领导,设计约束:要求领导的工资不能低于他的下属平均工资。(注意,这是一个递归查询) 下面是一些样例数据 CREATE TABLE dbo.Employees ( empid INT NOT NULL PRIMARY KEY, mgrid INT NULL REFERENCES dbo.Employees, empname VARCHAR(25) NOT NULL, salary MONEY NOT NULL, CHECK (empid mgrid) ); INSERT INTO dbo.Employees(empid, mgrid, empname, salary) VALUES(1, NULL, 'David', $10000.00); INSERT INTO dbo.Employees(empid, mgrid, empname, salary) VALUES(2, 1, 'Eitan', $7000.00); INSERT INTO dbo.Employees(empid, mgrid, empname, salary) VALUES(3, 1, 'Ina', $7500.00); INSERT INTO dbo.Employees(empid, mgrid, empname, salary) VALUES(4, 2, 'Seraph', $5000.00); INSERT INTO dbo.Employees(empid, mgrid, empname, salary) VALUES(5, 2, 'Jiru', $5500.00); INSERT INTO dbo.Employees(empid, mgrid, empname, salary) VALUES(6, 2, 'Steve', $4500.00); INSERT INTO dbo.Employees(empid, mgrid, empname, salary) VALUES(7, 3, 'Aaron', $5000.00); INSERT INTO dbo.Employees(empid, mgrid, empname, salary) VALUES(8, 5, 'Lilach', $3500.00); INSERT INTO dbo.Employees(empid, mgrid, empname, salary) VALUES(9, 7, 'Rita', $3000.00); INSERT INTO dbo.Employees(empid, mgrid, empname, salary) VALUES(10, 5, 'Sean', $3000.00); INSERT INTO dbo.Employees(empid, mgrid, empname, salary) VALUES(11, 7, 'Gabriel', $3000.00); INSERT INTO dbo.Employees(empid, mgrid, empname, salary) VALUES(12, 9, 'Emilia' , $2000.00); INSERT INTO dbo.Employees(empid, mgrid, empname, salary) VALUES(13, 9, 'Michael', $2000.00); INSERT INTO dbo.Employees(empid, mgrid, empname, salary) VALUES(14, 9, 'Didi', $1500.00);

2013-06-13

空空如也

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

TA关注的人

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