机器学习基础(一)——人工神经网络与简单的感知器

(2012-07-04 19:57:20)

转载▼
标签:

杂谈

分类: machineのlearning

从最开始做数据挖掘而接触人工智能的知识开始,就不断听学长,老师说起神经网络算法。从这个角度来讲,神经网络真的可以被称作“传说中的”知识了。所以说,我是持着一种跪拜的心态开始这部分的学习的。

人工神经网络的一大代表性的用途就是接受和处理传感器产生的复杂的输入并进行自适应性的学习。受生物学的启发,人工神经网络由一系列简单的单元相互紧密联系构成的,每个单元有一定数量的实数输入和唯一的实数输出。

神经网络实际上是一类算法的总和,其中一部分算法的基础是被称为感知器的单元。什么是感知器呢?说的啰嗦一点,就是以一个实数向量作为输入,计算输入的线性组合,其大于某个阈值时输出1,否则输出0的单元。实际上,用一个简单的式子就可以表示

这就是数学的魅力。。

为什么要建立感知器这个概念呢?感知器实际上是n维实例空间里的超平面决策面,它可以表示所有原子布尔函数,事实上,所有的布尔函数都可以用至多两层的感知器网络来表示。说白了,就是把任意一个布尔函数表达式表示成我们离散数学里的合取范式和析取范式。

为了训练出我们想要的布尔函数,我们可以走两条路,一条是根据现成的公式对权值进行直接调整,另一条是通过求使误差最小的时候的权值向量来间接地训练权值。前者对应感知器法则,后者就用到了传说中的梯度下降原理。

不同的训练方法在大体上是有共同点的,一般来说是从随机的权值开始,反复地输入样例,每当有错误结果的时候就根据一定的方法来修改权值,直到达到要求为止。先说比较简单的感知器法则吧,废话不说直接上公式:

其中,


    在这里,t和o分别是训练样例的目标输出以及感知器的结果,η被称为学习速率。从直观上来讲,这个过程就是根据结果的差值和x的值基于一个学习速率来进行权值的调节,结果差得越多,调节的幅度越大,x越大,调节的幅度越大,从而保持一种变换速率相对于x的稳定。

感知器法则很简单,下面就来介绍稍微复杂但是更加神奇的delta法则。如果训练样例是线性不可分的,它会收敛到目标的最佳近似。为了使它可用,我们要先修改一下感知器的定义。很简单,我们取消掉阈值的限制,直接将线性组合的结果输出就可以了。同时,我们还要定义一个概念——训练误差

很好理解,每个训练样例的误差平方和的一半(均方误差),它是权值向量的函数。我们的目标就是把它最小化,要用什么方法呢?普通的高中生都知道——求导。这就引出了梯度下降算法。

具体说这个算法之前先说一些废话吧。其实从我小学把数学从幼稚的“算数”这个字眼中剥离出来开始,我就对她怀着一种无尽的鄙视之情,这种感情一直保持到了大一结束,在我高考数学考砸的那段时间达到顶峰。一直觉得这种东西最大的用处就是一帮白痴爬不上旗杆没法测量它的长度只好测量它的影子来算一下相似三角形等等。从我真正的静下心来体会算法开始,数学才真正成为了门神学。大学高数基本没听过课,印象比较深的是大一下期中考试梯度和方向导数的两道题因为印在了背面而漏掉了,交卷一瞬间蒙的答案竟然是对的。那次考试那道题班里几乎全军覆没。一直没怎么把它当回事儿,直到大二看machine learning视频的第一堂课老师降到梯度下降算法的时候,不禁血脉贲张泪流满面。其实很多东西都是这样,你对她了解越深,越觉得她可爱与伟大。

不扯淡了。梯度是什么呢?梯度是一个向量,它的每个成员是E对每个w的偏导数。高数书里讲过,梯度的方向是函数上升最快的方向,反过来,它的相反数就是下降最快的方向。因此,我们从这个角度出发用一种比较贪心的策略来寻找问题的局部最优解,它的训练法则是:

其中:                    

梯度下降算法仍然存在一些问题,它的收敛过程比较慢,而且有可能得到局部最优解。为了解决这些问题,随机梯度下降应运而生,它其实是对梯度下降的一种近似,通过简单改动一下原来的算法就可以了,这里就不把算法列出来了,梯度下降是对所有训练样例求和后计算权值更新,而随机近似梯度下降是根据每个单独样例的误差增量计算权值更新,从而减少了计算步骤和陷入局部最优解得可能性。

先写这么多吧,作为机器学习的一大类代表性的东西,神经网络科研究的东西太多太多,上面写的东西还远远不算入门,接下来还有多层网络的算法以及很多延伸,关于多层网络的算法我会在下一篇文章提到。而且我现在自学的书是二十年前的一本比较经典的书,已经过时的太多太多了,接下来怎么跟上时代的步伐还要不断地学习和摸索。。。哎,共勉吧~~~

机器学习基础(一)——人工神经网络与简单的感知器相关推荐

  1. 机器学习实战-57: 人工神经网络分类算法(Artificial Neural Network)

    机器学习实战-57: 人工神经网络分类算法 深度学习原理与实践(开源图书)-总目录,建议收藏,告别碎片阅读! 人工神经网络(Artificial Neural Network)分类算法属于监督学习算法 ...

  2. 神经网络算法-论证单层感知器的局限性

    神经网络算法-论证单层感知器的局限性 今天课上学习了一个思路 将真值表转换到平面直角坐标系中 来论证线性可分还是不可分,挺有意思记录一下. 简单感知器模型实际上仍然是MP模型的结构,但是它通过采用监督 ...

  3. 深度学习(神经网络)[1]——单层感知器

    深度学习(神经网络)[1] -- 单层感知器 算法描述 python实现 示例运行结果 可视化 算法描述 最原始的神经网络模型,类似于神经网络中的单个神经元,该算法局限性也很大,只适用于解决线性可分的 ...

  4. [Mitchell 机器学习读书笔记]——人工神经网络

    1.简介 神经网络学习方法对于逼近实数值.离散值或向量值的目标函数提供了一种健壮性很强的方法.在现实中,学习解释复杂的现实世界中的传感器数据,人工神经网络(Artificial Neural Netw ...

  5. 机器学习基础、sklearn数据集、转换器与预估器

    机器学习基础 机器学习开发流程 机器学习算法分类 机器学习模型是什么 需要明确几点问题: 算法是核心,数据和计算是基础 找准定位 大部分复杂模型的算法设计都是算法工程师在做,而我只是一个调包侠 分析很 ...

  6. 零基础入门深度学习 | 第一章:感知器

    北京 | 高性能计算之GPU CUDA课程11月24-26日3天密集学习 快速带你晋级阅读全文> 无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作 ...

  7. 神经网络入门回顾(感知器、多层感知器)

    神经网络属于"联结主义",和统计机器学习的理论基础区别还是很不一样. 以我自己的理解,统计机器学习的理论基于统计学,理论厚度足够强,让人有足够的安全感:而神经网络的理论更侧重于代数 ...

  8. 【机器学习基础】三层神经网络

    本文介绍了传统的三层神经网络模型,首先介绍了网络中的神经单元概念,将一个神经单元视为一个逻辑回归模型.因此,神经网络可以看作是逻辑回归在(宽度,深度)上的延伸:然后,前向传播是一个复合函数不断传播的过 ...

  9. 麦子学院机器学习基础(5)-(神经网络NN))(python)

    一 多层前向神经网络 输入层(input layer)-> 隐藏层(hideen layer)->输出层(outpu layer) 每层由单元组成 神经网络算法设计 算法介绍 二 训练实例 ...

最新文章

  1. 单例设计模式详解。。。。。。。。。。。
  2. html5 测试视频
  3. 【sparse coding】【转】sparse coding稀疏表达论文列表
  4. 【mongo】centos6.9安装mongo2.6.3
  5. 【♻️markdown之一次编写,到处使用♻️】markdown文件转word
  6. Java初学者习题20道(转)
  7. 密码学 / 哈希算法
  8. 前端:CSS/15/全局CSS设置,常用的兼容性调试技巧,CSSHACK
  9. 算法---回溯法--模板解法
  10. iOS 关于本地持久化存储的探讨
  11. iis打不开php,php出现404找不到网页错误 iis配置问题解决
  12. 线程中常用的锁,有哪几种?
  13. 分享到微信微博QQ空间JS代码大全
  14. 电容去耦原理笔记(彻底理解并伴有公式计算)
  15. 【数据结构】哈希(Hash)
  16. JAVA基础之类和对象
  17. 如何解决IE浏览器阻止下载文件
  18. 随机森林实现及调参的R与Python对比——以泰坦尼克幸存者数据为例
  19. Revit 导出插件使用说明及注意事项
  20. linux login as,PuTTY登录后SSH提示login as怎么回事?

热门文章

  1. OpenStack AMQP与kombu
  2. 简单c语言图形界面,求个用最简单的的代码来实现图形界面…
  3. 计算机二级能学到知识吗,2017年关于计算机二级msoffice学习知识点
  4. 批处理 操作mysql_超简单使用批处理(batch)操作数据库
  5. java字符串逐个分解_改进JAVA字符串分解的方法
  6. maya室内模型_超全室内外设计贴图素材库合辑 | 57G
  7. 九价抢不到?多试试这几个GitHub上的开源项目
  8. Spring Boot 2.x基础教程:使用Redis的发布订阅功能
  9. 皮一皮:所以这也是大数据的一种?
  10. 日本政府用AI分配对象了!给你分一个的话,敢不敢要?