程序员是否必须会算法

Submitted by wukezhou on Thu, 07/06/2017 - 10:45

本章的标题既然是“程序员与算法”,就必然要涉及一个基本问题,那就是“程序员是否必须会算法”。这是一个充满争议的问题,虽然并不像“生存还是毁灭”之类的选择那样艰难而沉重,但也绝不是一个轻松的话题。朋友们在我的“算法系列”博客专栏上发表的评论和回复,并不都是我所期待的赞美和鼓励,也常常会有一些冷言冷语。比如,“穷举也算是算法吗”或者“请你说明一下算法在XX系统中能起到什么作用”。

有一次,一个网友通过邮件问我:“你写的都是小儿科的东西,几十行代码就能搞定,能不能整一点高深的算法?”我反问他什么是他所理解的高深的算法,他答复说:“像遗传算法、蚁群算法之类的。”于是我给了他一个遗传算法求解0-1背包问题的例子(参见第16章),并告诉他,这也就是几十行代码的算法,怎么理解成是高深的算法?他刚开始不承认这是遗传算法,直到我给了他Denis Cormier公开在北卡罗来纳州立大学服务器上的遗传算法的源代码后,他才相信他一直认为深不可测的遗传算法的原理原来是这么简单。

从大数据到块数据

Submitted by yanqin on Thu, 07/06/2017 - 10:18
大数据时代的到来,颠覆了我们的传统社会,但是大数据真的是万能的吗?事实上,大数据也存在一些悖论。因此,一些研究者提出了块数据的概念以弥补大数据的不足。

Going Deeper with Convolutions

Submitted by like on Thu, 07/06/2017 - 09:48
We propose a deep convolutional neural network ar- chitecture codenamed Inception that achieves the new state of the art for classification and detection in the Im- ageNet Large-Scale Visual Recognition Challenge 2014 (ILSVRC14). The main hallmark of this architecture is the improved utilization of the computing resources inside the network. By a carefully crafted design, we increased the depth and width of the network while keeping the compu- tational budget constant. To optimize quality, the architec- tural decisions were based on the Hebbian principle and the intuition of multi-scale processing. One particular in- carnation used in our submission for ILSVRC14 is called GoogLeNet, a 22 layers deep network, the quality of which is assessed in the context of classification and detection.

隐马尔可夫模型

Submitted by meixun on Thu, 07/06/2017 - 09:28
隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数。然后利用这些参数来作进一步的分析,例如模式识别。 是在被建模的系统被认为是一个马尔可夫过程与未观测到的(隐藏的)的状态的统计马尔可夫模型。 下面用一个简单的例子来阐述: 假设我手里有三个不同的骰子。第一个骰子是我们平常见的骰子(称这个骰子为D6),6个面,每个面(1,2,3,4,5,6)出现的概率是1/6。第二个骰子是个四面体(称这个骰子为D4),每个面(1,2,3,4)出现的概率是1/4。第三个骰子有八个面(称这个骰子为D8),每个面(1,2,3,4,5,6,7,8)出现的概率是1/8。

深度学习助力实现智能行为分析和事件识别

Submitted by pengkun on Thu, 07/06/2017 - 09:10
行为识别是指通过分析视频、深度传感器等数据,利用特定的算法,对行人的行为进行识别、分析的技术。这项技术被广泛应用在视频分类、人机交互、安防监控等领域。行为识别包含两个研究方向:个体行为识别与群体行为(事件)识别。近年来,深度摄像技术的发展使得人体运动的深度图像序列变得容易获取,结合高精度的骨架估计算法,能够进一步提取人体骨架运动序列。利用这些运动序列信息,行为识别性能得到了很大提升,对智能视频监控、智能交通管理及智慧城市建设等具有重要意义。同时,随着行人智能分析与群体事件感知的需求与日俱增,一系列行为分析与事件识别算法在深度学习技术的推动下应运而生。下面将介绍我们最新的相关研究。

Deep Learning三剑客,30年的不悔坚持,终成引领人工智能的传奇,终成引领人工智能的风云人物

Submitted by shiwenbin on Thu, 07/06/2017 - 08:53
人工智能的主流算法Deep Learning深度学习的历史,堪称Deep History, 也是深度学习三剑客Geoff Hinton, Yann LeCun 和Yoshua Bengio共同走过的30年艰难而辉煌的不悔人生。他们如何从当年的地下小团体成为今天引领人工智能的风云人物,我们来看看其中的精彩故事

Python实现的遗传算法

Submitted by wukezhou on Wed, 07/05/2017 - 11:21

一、遗传算法介绍

        遗传算法是通过模拟大自然中生物进化的历程,来解决问题的。大自然中一个种群经历过若干代的自然选择后,剩下的种群必定是适应环境的。把一个问题所有的解看做一个种群,经历过若干次的自然选择以后,剩下的解中是有问题的最优解的。当然,只能说有最优解的概率很大。这里,我们用遗传算法求一个函数的最大值。
        f(x) = 10 * sin( 5x ) + 7 * cos( 4x ),    0 <=  x <= 10

1、将自变量x进行编码

      取基因片段的长度为10, 则10位二进制位可以表示的范围是0到1023。基因与自变量转变的公式是x = b2d(individual) * 10 / 1023。构造初始的种群pop。每个个体的基因初始值是[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]

2、计算目标函数值

      根据自变量与基因的转化关系式,求出每个个体的基因对应的自变量,然后将自变量代入函数f(x),求出每个个体的目标函数值。

用 JS 实现简单的神经网络算法

Submitted by meixun on Wed, 07/05/2017 - 09:16
神经网络试图模拟大脑的神经元之间的关系来处理信息。它的计算模型通常需要大量彼此连接的节点。每个神经元通过某种特殊的输出函数来处理来自其它相邻神经元的加权输入值。 神经元之间的信息传递的强度,用所谓的加权值来定义,算法会不断的调整加权值来实现自我的学习过程。

高质量数据集哪里来?机器学习公司的十大数据搜集策略

Submitted by shiwenbin on Wed, 07/05/2017 - 09:04
长期以来,在机器学习中不合理的数据利用效率一直是引起广泛讨论的话题。也有人认为,曾经阻碍人工智能领域取得各种重大突破的,并不是什么高深的算法,而是缺乏高质量的数据集。然而讨论的共同中心是,在当下最前沿的机器学习方面,数据是一个相当关键的组成部分。