经典智能算法快速入门——神经网络概念篇

在大数据年代,各种机器学习算法的应用也日渐广泛。虽然在实际生产中只要调用各种成熟的算法库即可解决机器学习问题,但我们也需要对这些算法有概念上的了解。小编在这里就逐渐为大家带来各种经典算法的快速入门,希望大家有所收获。

悠久历史

神经网络是一个非常古老的传说。

自从40年代初心理学家 W.W.Mcculloch 和梳理逻辑家 W.Pitts 提出 M-P 模型以来,大家对其研究可谓是一波三折,跌宕起伏。神经网络不断地从「看好」到「被打击,到「被冷落」,再到「被看好」中循环。

以下列举了一些主要的神经网络发展的里程碑:

  1. 1957年,Rosenblatt 第一次建立神经网络感知模型。
  2. 1960年,B.Windrow 提出自适应线性单元,可用于自适应滤波,预测等。
  3. 1969年,M.Minsky 证明单层,甚至多层的神经网络感知能力有限,单层网络甚至不能解决抑或问题。
  4. 1982年,J.J.Hopfield 提出 hopfield 网络模型,首次引入网络能量。
  5. 1984年,Hinton 等人将模拟退火算法引入到神经网络中,提出了 Boltzmann 机网络模型。
  6. 1986年,D.E.Rumelhart 和 J.LMcclelland 提出了著名的 Backword-Propagation 算法。
  7. 1987年,R.Hecht - Nielsen 提出了对向传播神经网。
  8. 1992年,Holland 用模拟生物进化的方式提出了遗传算法, 用来求解复杂优化问题。
  9. 1995年,Mitra 结合模糊逻辑理论,概率论建立了模糊神经网络。
  10. 2006年,Hinton 等人提出深度学习,从此揭开了全新的一个篇章。

在学术界,神经网络作为一种以仿生模型开始建立的智能算法,一直有着较大的争议。

首先,不像 SVM 等经典算法,其本源上并没有一个清晰的数学模型;其次自从 1969 年 M.Minsky 提出单层甚至多层神经网络的感知能力有限后,人们对其有效性产生了很大的怀疑;再者,虽然神经网络模型比较容易理解,但是对其的训练却是 NP-Hard 问题,在实际应用中缺少了很多可行性。

当然,单纯地说神经网络只是人们对大脑探索的一个美好的梦不免过于偏颇;事实上,在解决很多复杂问题时神经网络一直有着很好的应用。

复杂问题

那么什么是复杂问题呢?

相对计算机而言,高难度的数值计算,方程求解是相对容易的问题;而连 1 岁小朋友都可以轻易做到的识别图片中的某一个物体,对传统计算机算法而言却是十分难。

对于那些「感性」,「模糊」,「定义不清」等不需要唯一精确结论的问题,绝大多数传统的算法都无能为力。

神经网络往往这在里大放异彩。

这种「复杂」的问题如果非要用数学来表示的话,那往往需要将问题所关心的对象投射到一个个非常高维度的向量之中(比如一张 n*m 大小的彩色图片,会被投射到 n*m 维度的向量,而每个像素的颜色则表示成每维向量的值),然后「模糊」地找出这些向量之间的关系或者是向量的特征。

对于经典的基于「图灵机」的算法而言,在如此庞大的问题空间中搜索,需要耗费的时间难以想象;而大脑这个大自然创造的「超大规模并行」神经网络,却往往可以在瞬间得到答案。

应用场景

说了一堆玄乎的道理,下面小编就来列举一些情况,帮助判断何时应当使用神经网络,何时有应该考虑其他方法。

首先我们先来看一下不该使用的情况:

  • 对于通过公式,步骤,状态机等描述的问题,应该考虑使用传统方法解决;
  • 对于问题答案都是很有限的问题,应该考虑通过查表解决;
  • 对于能通过专有硬件来解决的问题(比如真随机数生成等);
  • 你尝试要解决的问题会不断地向你无法预料的方向发展「进化」,因为某个类型的神经网络一般只擅长解决一类问题,不断发展的问题无法通过单一神经网络解决;
  • 对指定问题你如果不能十分容易地产生大量的输入输出数据,那神经网络将很难被训练成;
  • 对于那些要求精确解答的问题;

接着,我们再来看一些神经网络也许比较适合的场景:

  • 手中有着大量的被标记过的数据,但是你却对这些数据及其标记的逻辑关系无从下手;
  • 问题内部的约束或条件非常非常复杂(难以用常规方法表示),但你有能通过人类的直觉感到问题应该容易解决;
  • 对问题的答案没有精确要求,而且可以随着时间的改变做小范围的波动。

具体的应用场景来看,神经网络包括:分类,类聚,回归,异常识别,关联挖掘,特征学习等.

那么,那么机器人是否可以用一个神经网络来实现呢(模拟大脑)?

小编的答案是:你想多了。

当前的神经网络还无法单独撑起整个机器人的复杂功能。绝大多数的技能都是由人类对场景模式预编程的结果。包括你熟悉的 Siri,Cotana 等。当然,机器人在处理具体事务的时候,必然会借助神经网络来解决一些模式识别问题。

神经网络与 SVM

这是一个非常有争议的话题,在历史中已经被无数人折腾过了。小编在这里仅仅列一些已被绝大多数人接受的观点。

神经网络和 SVM 在智能算法发展史中代表着两个派别的泰斗级选手。现在绝大多数市面上所能看到的图像识别,行为预测,主题分类等领域的应用,无不是他们俩的身影。

二者在模型上的差异也是显而易见的:神经网络以仿生学起家,模型并非天然图灵机,而 SVM 则一出生便有着精确的数学模型。

正因如此,传统神经网络对比于 SVM 的一个最大的缺点便是它往往不易得到全局的最优解,而且在很多情况下其容易被不精确的训练数据给迷惑,也就是 Overfitting。其实这一点并不难理解,人类大脑也是非常容易被局部最优所误导。

SVM 天生不具备这些问题,而且由于其模型也更加适合图灵机表示,所以大多数情况下,SVM 的计算速度会快于神经网络。但 SVM 也有一些缺陷,比如 SVM 一般只适合做二元分类(元分类的 SVM 复杂度将会大大提高),而且我们必须人为地根据应用场景选择特定的 Kernel 函数。这点上说,神经网络并不需要人为其对数据经行分类降维选 Kernel 等操作,实为更加智能一些。

当然,也有研究指出,其实神经网络和 SVM 是互相等价的。比如,线性(Kernel) SVM 和单层的神经网络是等价的,而多层的神经网络又和 SVM 森林是等价的。

原文发布于微信公众号 - 包子铺里聊IT(baozitraining)

原文发表时间:2015-08-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

澳门大学讲座教授陈俊龙:从深度强化学习到宽度强化学习 - 结构,算法,机遇及挑战

AI 科技评论按:2018 年 5 月 31 日-6 月 1 日,中国自动化学会在中国科学院自动化研究所成功举办第 5 期智能自动化学科前沿讲习班,主题为「深度...

17760

机器学习的稳健算法

机器学习通常被认为是解决困难问题的一个魔法解决方案,它将使我们从单纯的人类中解脱出来。但事实上,对于数据科学家和机器学习工程师来说,有很多问题比带有限规则集的图...

226110
来自专栏ATYUN订阅号

赫尔辛基大学AI基础教程:回归(4.3节)

我们在本节中的主要学习目标是监督学习方法的另一个很好的例子,它也和最近邻分类一样简单:线性回归。以及它的近亲逻辑回归。

11270
来自专栏腾讯高校合作

犀牛鸟·学问 | ECCV 2018论文宣讲研讨会回顾(二)

23220
来自专栏人工智能

停车还是减速?伯克利实例演示对抗样本带来的潜在隐患

来源:BAIR 编译:Bot 近年来,深层神经网络(DNN)在图像处理、文本分析和语音识别等各种应用领域取得了长足进步,它因此也被作为重要组成部分纳入到许多信息...

31660
来自专栏机器之心

资源 | 最入门级别的机器学习图书:Chris Bishop发布在线新书

选自MBML book 参与:蒋思源 PRML 大神、微软剑桥研究院院长 Chris Bishop 与 John Winn 的机器学习新书 Model Base...

29560
来自专栏AI科技评论

干货 | 2 分钟论文:神经网络开始自我学习,说是用了架构搜索新算法

来源 / Two Minute Papers 翻译 / 严谨文 校对 / 凡江 整理 / 雷锋字幕组 本期论文:结合分层表示的高级架构搜索 Hierarchic...

32770
来自专栏小樱的经验随笔

层次分析法(详解)

注:文章内容主要参阅 《matlab数学建模算法实例与分析》,部分图片来源于WIKI 文章分为2部分: 1第一部分以通俗的方式简述一下层次分析法的基本步骤和思想...

56550
来自专栏AI科技评论

学界 | FAIR 田渊栋:2017 年的一些研究和探索

今年的主要研究方向是两个:一是强化学习及其在游戏上的应用,二是深度学习理论分析的探索。 今年理论方向我们做了一些文章,主要内容是分析浅层网络梯度下降非凸优化的收...

26540
来自专栏机器学习算法与Python学习

深度学习CNN发展大事件一览

深度学习(DeepLearning)尤其是卷积神经网络(CNN)作为近几年来模式识别中的研究重点,受到人们越来越多的关注,相关的参考文献也是层出不穷,连续几年都...

15900

扫码关注云+社区

领取腾讯云代金券