机器学习基础(一)——人工神经网络与简单的感知器
来源:互联网 发布:数据挖掘实战 pdf 编辑:程序博客网 时间:2024/05/28 04:52
机器学习基础(一)——人工神经网络与简单的感知器
(2012-07-04 19:57:20)杂谈
分类: machineのlearning
人工神经网络的一大代表性的用途就是接受和处理传感器产生的复杂的输入并进行自适应性的学习。受生物学的启发,人工神经网络由一系列简单的单元相互紧密联系构成的,每个单元有一定数量的实数输入和唯一的实数输出。
神经网络实际上是一类算法的总和,其中一部分算法的基础是被称为感知器的单元。什么是感知器呢?说的啰嗦一点,就是以一个实数向量作为输入,计算输入的线性组合,其大于某个阈值时输出1,否则输出0的单元。实际上,用一个简单的式子就可以表示
这就是数学的魅力。。
为什么要建立感知器这个概念呢?感知器实际上是n维实例空间里的超平面决策面,它可以表示所有原子布尔函数,事实上,所有的布尔函数都可以用至多两层的感知器网络来表示。说白了,就是把任意一个布尔函数表达式表示成我们离散数学里的合取范式和析取范式。
为了训练出我们想要的布尔函数,我们可以走两条路,一条是根据现成的公式对权值进行直接调整,另一条是通过求使误差最小的时候的权值向量来间接地训练权值。前者对应感知器法则,后者就用到了传说中的梯度下降原理。
不同的训练方法在大体上是有共同点的,一般来说是从随机的权值开始,反复地输入样例,每当有错误结果的时候就根据一定的方法来修改权值,直到达到要求为止。先说比较简单的感知器法则吧,废话不说直接上公式:
其中,
感知器法则很简单,下面就来介绍稍微复杂但是更加神奇的delta法则。如果训练样例是线性不可分的,它会收敛到目标的最佳近似。为了使它可用,我们要先修改一下感知器的定义。很简单,我们取消掉阈值的限制,直接将线性组合的结果输出就可以了。同时,我们还要定义一个概念——训练误差
很好理解,每个训练样例的误差平方和的一半(均方误差),它是权值向量的函数。我们的目标就是把它最小化,要用什么方法呢?普通的高中生都知道——求导。这就引出了梯度下降算法。
具体说这个算法之前先说一些废话吧。其实从我小学把数学从幼稚的“算数”这个字眼中剥离出来开始,我就对她怀着一种无尽的鄙视之情,这种感情一直保持到了大一结束,在我高考数学考砸的那段时间达到顶峰。一直觉得这种东西最大的用处就是一帮白痴爬不上旗杆没法测量它的长度只好测量它的影子来算一下相似三角形等等。从我真正的静下心来体会算法开始,数学才真正成为了门神学。大学高数基本没听过课,印象比较深的是大一下期中考试梯度和方向导数的两道题因为印在了背面而漏掉了,交卷一瞬间蒙的答案竟然是对的。那次考试那道题班里几乎全军覆没。一直没怎么把它当回事儿,直到大二看machine learning视频的第一堂课老师降到梯度下降算法的时候,不禁血脉贲张泪流满面。其实很多东西都是这样,你对她了解越深,越觉得她可爱与伟大。
不扯淡了。梯度是什么呢?梯度是一个向量,它的每个成员是E对每个w的偏导数。高数书里讲过,梯度的方向是函数上升最快的方向,反过来,它的相反数就是下降最快的方向。因此,我们从这个角度出发用一种比较贪心的策略来寻找问题的局部最优解,它的训练法则是:
其中:
梯度下降算法仍然存在一些问题,它的收敛过程比较慢,而且有可能得到局部最优解。为了解决这些问题,随机梯度下降应运而生,它其实是对梯度下降的一种近似,通过简单改动一下原来的算法就可以了,这里就不把算法列出来了,梯度下降是对所有训练样例求和后计算权值更新,而随机近似梯度下降是根据每个单独样例的误差增量计算权值更新,从而减少了计算步骤和陷入局部最优解得可能性。
先写这么多吧,作为机器学习的一大类代表性的东西,神经网络科研究的东西太多太多,上面写的东西还远远不算入门,接下来还有多层网络的算法以及很多延伸,关于多层网络的算法我会在下一篇文章提到。而且我现在自学的书是二十年前的一本比较经典的书,已经过时的太多太多了,接下来怎么跟上时代的步伐还要不断地学习和摸索。。。哎,共勉吧~~~
- 机器学习基础(一)——人工神经网络与简单的感知器
- 机器学习与神经网络(一):人工神经网络模型简介
- 神经网络与机器学习笔记——Rosenblatt感知器
- 机器学习系列:(十)从感知器到人工神经网络
- 机器学习系列:(十)从感知器到人工神经网络
- 机器学习笔记——人工神经网络
- 人工神经网络的设计与实现(二) 感知机
- 人工神经网络(四)感知器学习规则推导
- 人工神经网络(四)感知器学习规则推导
- 感知器 人工神经网络
- 机器学习——感知机与神经网络
- 人工神经网络(二)单层感知器
- 人工神经网络(二)单层感知器
- 机器学习与神经网络(二):感知器的介绍和Python代码实现
- 简单的感知学习原理例子 人工神经网络 Perceptron Learning Rule
- [Mitchell 机器学习读书笔记]——人工神经网络
- 机器学习入门——初步认知人工神经网络
- R机器学习算法系列——人工神经网络
- bitmap海量数据
- 监听器 Listener
- synchronized锁不住?
- 【C语言】计算输入整数中每个数字出现的次数
- 51nod 1013 3的幂的和(逆元 or 矩阵快速幂)
- 机器学习基础(一)——人工神经网络与简单的感知器
- LeetCode-- Longest Substring Without Repeating Characters
- WordPress代码编辑页面支持的HTML标签
- 跟我开始从0学Android--从0学java--java简单介绍开始第一个java项目
- Android实现底部半透明弹出框PopUpWindow
- java三种工厂模式:简单工厂、工厂方法、抽象工厂
- 快速排序法(QuickSort)——交换类排序法(java实现)
- 浅谈CSS盒子模型
- Android 点击变色,报错 java.lang.IllegalStateException