强化学习(RL)如今是机器学习的一大令人激动的领域,当然之前也是。自从 1950 年被发明出来后,它在这些年产生了一些有趣的应用,尤其是在游戏(例如 TD-Gammon,一个西洋双陆棋程序)和及其控制领域,但是从未弄出什么大新闻。直到 2013 年一个革命性的发展:来自英国的研究者发起了一项 Deepmind 项目,这个项目可以学习去玩任何从头开始的 Atari 游戏,甚至多数比人类玩的还要好,它
自编码器是能够在无监督的情况下学习输入数据的有效表示(叫做编码)的人工神经网络(即,训练集是未标记)。这些编码通常具有比输入数据低得多的维度,使得自编码器对降维有用(参见第 8 章)。更重要的是,自编码器可以作为强大的特征检测器,它们可以用于无监督的深度神经网络预训练(正如我们在第 11 章中讨论过的)。最后,他们能够随机生成与训练数据非常相似的新数据;这被称为生成模型。例如,您可以在脸部图片上训
在最后一章中,我们提出两个问题,一个来自生物学,一个来自哲学: 在生物学中,“利他主义问题”是自然选择与利他主义之间的明显冲突,自然选择表明动物生存在不断竞争的状态中来生存和繁殖,利他主义是许多动物帮助其他动物的倾向,甚至是显然对他们不利。见 https://en.wikipedia.org/wiki/Altruism_(biology)。 在道德哲学中,人性问题是,人类是否从根本上是善良的,或者
计算机科学领域过度痴迷于排序算法。根据 CS 学生在这个主题上花费的时间,你会认为排序算法的选择是现代软件工程的基石。当然,现实是,软件开发人员可以在很多年中,或者整个职业生涯中,不必考虑排序如何工作。对于几乎所有的应用程序,它们都使用它们使用的语言或库提供的通用算法。通常这样就行了。 所以如果你跳过这一章,不了解排序算法,你仍然是一个优秀的开发人员。但是有一些原因你可能想要这样: 尽管有绝大多数
我们知道如何使用训练数据将一个点划分为两类之一。 我们的分类只是对类别的预测,基于最接近我们的新点的,训练点中最常见的类别。 假设我们最终发现了我们的新点的真实类别。 然后我们会知道我们的分类是否正确。 另外,我们将会有一个新点,可以加入到我们的训练集中,因为我们知道它的类别。 这就更新了我们的训练集。 所以,我们自然希望,根据新的训练集更新我们的分类器。 本章将介绍一些简单的情况,其中新的数据会
官方网站上《10 Minutes to pandas》的一个简单的翻译,原文在这里。这篇文章是对 pandas 的一个简单的介绍,详细的介绍请参考:秘籍 。习惯上,我们会按下面格式引入所需要的包。
我们已经一起进行到这次讨论旅程的最后一个部分了。希望我们一起完成了对你有用的东西,包括了通过PHP的一些例子来介绍设计模式的概念和更有用的成果,比如测试驱动开发这样的更好的开发技术。 设计模式是你的便成工具包里面一个很有用的工具,用来处理一个复杂的设计问题。设计模式提供固定的,证明是正确的技术来帮助你使你的设计更灵活。使用设计模式还让你可以轻松地与其他的工程师进行轻松地沟通,因为设计模式的名字现在
第十七课:旋转 虽然本课有些超出OpenGL的范围,但是解决了一个常见问题:怎样表示旋转? 《第三课:矩阵》中,我们了解到矩阵可以让点绕某个轴旋转。矩阵可以简洁地表示顶点的变换,但使用难度较大:例如,从最终结果中获取旋转轴就很麻烦。 本课将展示两种最常见的表示旋转的方法:欧拉角(Euler angles)和四元数(Quaternion)。最重要的是,本课将详细解释为何要尽量使用四元数。 旋转与朝向
本章我们将学习如何在jME3中播放3D动画。 概述 3D动画一般使用Blender、Maya、3DS Max、ZBrush等专业工具制作。jME3不能用于制作3D动画,但它可以导入包含3D动画数据的模型,然后在游戏中播放。 根据游戏开发的一般需求,jME3.1目前支持3种动画: 骨骼动画(Skeleton Animation) 骨骼动画用于制作动画角色,可以表演出角色的各种行为,例如“行走”、“攻
在调试时,你应该区别不同类别的错误,才能更快地追踪定位: 语法错误是 Python 将源代码翻译成字节代码的时候产生的,说明程序的结构有一些错误。例如:省略了 def 语句后面的冒号会产生看上去有点重复的错误信息 SyntaxError: invalid syntax 。 运行时错误是当程序在运行时出错,解释器所产生的错误。大多数运行时错误会包含诸如错误在哪里产生和正在执行哪个函数等信息。例如:一
最常与面向对象编程联系在一起的语言特性就是 继承 。继承指的是在现有类的基础下进行修改,从而定义新类的能力。在本章中,我会用表示卡牌(playing cards)、一副牌(deck of hands)和牌型(poker hands)的类,来展示继承这一特性。 如果你不玩扑克牌,你可以阅读 http://en.wikipedia.org/wiki/Poker 了解一下,但这不是必须的;我会告诉你完成
本章介绍另一个内置类型:元组,同时说明如何结合使用列表、字典和元组。我还将介绍一个有用的特性,即可变长度参数列表,以及汇集和分散操作符。 说明:“tuple”并没有统一的发音,有些人读成“tuh-ple”,音律类似于“supple”; 而在编程的语境下,大部分读成“too-ple”,音律类似于“quadruple”。 元组是不可变的 元组是一组值的序列。 其中的值可以是任意类型, 使用整数索引,
本章介绍另一个内建数据类型:字典(dictionary)。 字典是Python中最优秀的特性之一;许多高效、优雅的算法即以此为基础。 字典即映射 字典 与列表类似,但是更加通用。 在列表中,索引必须是整数;但在字典中,它们可以是(几乎)任何类型。 字典包含了一个索引的集合,被称为 键(keys) ,和一个值(values)的集合。 一个键对应一个值。这种一一对应的关联被称为 键值对(key-val
引擎表示服从时间抢占的运算过程。换句话说,一个引擎下面的运算过程是普通的程序作为定时器可抢占的进程。 一个引擎用三个参数来调用: 分配时间片(运行时间单元)的数目 成功过程 失败过程 如果引擎的计算在分配的时间片内完成了,那么就把计算的结果作为参数来调用成功过程,如果没有计算完成,那么把未计算完的部分作为参数来调用失败过程。 比如,考虑一个引擎,其下的运算是一个循环,该循环打印非负整数的序列。该引
Scheme的一个显著标志是它支持跳转或者nonlocal control。特别是Scheme允许程序控制跳转到程序的任意位置,相比之下条件语句和函数调用的限制要更多一些。Scheme的nonlocal control操作符是一个名为call-with-current-continuation的过程。下面我们会看到如何用这个操作符创建一些惊人的控制效果。 13.1 call-with-curren