计算机视觉
一颗中二的哨牙
袁勇的博客
小村长的博客
CNN以及深度学习方向
待读列表
继续阅读 »
什么是强化学习
简单通俗来讲就是Agent在Environment中探索找到最优策略Policy,使得Reward最多的学习策略(游戏)。它是一个MDP(Markov Decision Process)马尔可夫决策过程:一个状态$S_{t}$是MarKov当且仅当
$P(S_{t+1}|S_{t})=P(S_{t+1}|S_{t},S_{t-1},...,S_{0})$。再通俗点讲就是未来只取决于现在。
继续阅读 »
动态计算图模型时代
经典的深度学习框架比如caffe,mxnet,tensorflow等都是使用的静态计算图模型(当然最近tensorflow推出新的Execution模式—Eager,mxnet也开始使用新的前端框架Gluon…这是后话),也就是先定义一个计算图,然后往里面“喂”数据,这是经典的Define-and-Run模式…..(我也不知道继续该怎么编了,反正大家都知道怎么用tensorflow和caffe,就是和我们用numpy不一样)直到Chainer横空出世,引入了动态图机制,让深度学习研究工作者眼前焕然一新,pytorch也来了,春天近了。
继续阅读 »
作者简介
塞德希尔·穆来纳森(Sendhil Mullainathan)
哈佛大学终身教授,哈佛大学行为经济学领域重要领头人。与普林斯顿大学心理学教授埃尔德·沙菲尔等人联合创立非营利性组织ideas42,致力于利用行为科学帮助人们解决社会问题。在麻省理工学院,与《贫穷的本质》作者阿比吉特·班纳吉等人联合创立“贫困行动实验室”,并于2002年荣获“麦克阿瑟天才奖”。出生于印度农村,7岁时随父母移民美国。1993年,获得康奈尔大学计算机科学、数学和经济学3个学士学位。1998年,获得哈佛大学经济学博士学位。
埃尔德·沙菲尔(Eldar Shafir)
1988年,获得麻省理工学院认知科学博士学位。古根海姆奖获得者。普林斯顿大学心理
继续阅读 »
此文译自 Dmitry A. Soshnikov 的 ECMA-262-3 in detail. Chapter 8. Evaluation strategy.
概述
本文将讨论在 ECMAScript 中向函数传递参数的策略。
计算机科学里对这种策略一般称为“evaluation strategy”,即在编程语言中求解或计算某些表达式的值的一系列规则。将参数传递给函数是其中的一个案例。
写这篇文章的原因是因为论坛上有一些类似的讨论,大家都呼吁给出 ECMAScript 中参数传递策略的最精确的说明。本文给出了相应的定义,希望对大家有所帮助。
很多程序员都确信在 JavaScript 中(甚至其它一些语言),对象是按引用传
继续阅读 »
1. 设计模式概念
设计模式这个术语是由Erich Gamma等人在1990年代从建筑设计领域引入到计算机科学的。它是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。
设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。面向对象设计模式通常以类或对象来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类或对象。设计模式能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。
并非所有的软件模式都是设计模式,设计模式特指软件“设计”层次上的问题。还有其它非设计模式的模式,如架构模式。同时,算法不能算是一种
继续阅读 »
这是李彦宏写的书,就是饱受诟病却也颇为有用的百度的董事长兼首席执行官。当然,写书的那个时候还没有百度,甚至谷歌也没有。1991年1月第一版。这是一本小书,采用章回体小说形式,但据称内容全部属实。当然,从作者眼光属实。
1991年李彦宏毕业于北京大学信息管理专业,后赴美国布法罗纽约州立大学完成计算机科学硕士学位。在美国近十年的时间里,李彦宏先后担任道琼斯公司高级顾问,INFOSEEK工程师,设计了实时金融系统,创建了ESP技术等等等等。1999年底携风投资金回国创建百度。
全书共十五回合,记录了93-98这几个世界互联网发展最为猛烈的年头里在硅谷发生的一个个惊心动魄的商战故事。其中包括网景,IBM,微软,苹果,美国在线,英特尔,惠
继续阅读 »
前言
上一篇文章Java 注解介绍讲解了下Java注解的基本使用方式,并且通过自定义注解实现了一个简单的测试工具;本篇文章将介绍如何使用Spring Boot的AOP来简化处理自定义注解,并将通过实现一个简单的方法执行时间统计工具为样例来讲解这些内容。
AOP概念
面向侧面的程序设计(aspect-oriented programming,AOP,又译作面向方面的程序设计、观点导向编程、剖面导向程序设计)是计算机科学中的一个术语,指一种程序设计范型。该范型以一种称为侧面(aspect,又译作方面)的语言构造为基础,侧面是一种新的模块化机制,用来描述分散在对象、类或函数中的横切关注点(crosscutting concern)。
继续阅读 »
作者简介:Steve Yegge是一名程序员,也是博主,写了很多关于编程语言,生产力,和软件文化的文章。他拥有华盛顿大学计算机科学本科学位,20年的业界经验,开发领域涉及嵌入式操作系统、可扩展的电子商务系统、移动设备应用、提升软件生产力的工具等。他曾供职于亚马逊和Google等公司。
徐旭铭,编了十几年程,翻译过几本书,现在在亚马逊当码农。工作和兴趣都是写代码,喜欢看上去很麻烦的问题。住在西雅图,闲暇时喜欢看美剧。
这本书真是太有意思了,里面充斥了作者对各种语言以及开发现象和编程风格的吐槽,但是读来并不让人反感,也不觉得偏激,真是太有才了,真羡慕可以把吐槽文也写得这么棒的人。在书中,作者着重推荐了《重构》注意是Refactori
继续阅读 »
算法原理
先上一张堆排序动画演示图片:
1. 不得不说说二叉树
要了解堆首先得了解一下二叉树,在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。
二叉树的每个结点至多只有二棵子树(不存在度大于 2 的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第 i 层至多有 2i - 1 个结点;深度为 k 的二叉树至多有 2k - 1 个结点;对任何一棵二叉树 T,如果其终端结点数为 n0,度为 2 的结点数为 n2,则n0 = n2 + 1。
树和二叉树的三个主要差别:
- 树的结
继续阅读 »