从最简单的感知器学习到的一些有趣的现象

看了一些深度学习神经网络的视频,最近有了一点新的体会,在google的一个小工具上,地址:http://playground.tensorflow.org 一个神经网络训练的模拟器,发现了一些有意思的事情,有了些新的体会

这里分享给大家。

1 权值,刚开始都是设置的随机初始值,但是随着训练的深入,你会发现权值变化的一些规律,这里一二分类为列,某些对最终分类帮助性大的因素即输入的权值会越来越大,而那些对分类作用小的因素,甚至对分类起反作用的因素的权值会逐渐变得很小,或者为负值,有些同学会问权值之和是不是为1,显然不是,这里是不是和概率论的知识混淆了,下面一图来展示

我们的初始值大概是这个样子:对于这个数据集有点类似异或的关系,但是观察坐标轴你会发现这个图的正中间的坐标原点是(0,0)所以它与异或有些不同但同样不是最简单的感知器即两个输入能进行分类的,所以我们这里采用改进的感知器,另外增加了三个元素即增加了一些非线性的因素。

大家先看这个小图有没有发现什么,对于x1它是相当于数据集(1,3)(3,5)(3,7)等等的x值,而小图也显示它将整个图分为ie左右两半,而对于x2则是数据集中的y值,它将图分为上下两半,其他的都类似,这样我们来看最后一个因素,x1*x2,这个会决定什么,查看它的小图,你会发现它几乎已经将数据集分成了最终的效果图,大概就是x1*x2为负值是一类,x1*x2是正值为另一类,这里大家可以看图来理解。

所以现在大家可以来预测了,后面我们开始训练后,随着训练次数的迭代,那些输入的权值会越来越大,那些则会削弱。我们来看图,这里我们列举多个结果图,它们的初始全职不同,但是训练结果对于权值的分布是类似的,(另外跟大家解释一下,神经元之前的连线代表权值,蓝色为正,黄色为负,越粗绝对值越大):

初始值:

结果:

初始值:

结果:

对于线性可分的,我这里也给一个例子,大家可以看出来,凭借x1和x2已经可以将数据分开了,其他三个因素几乎用不着:大家看权值:

大家可以看出来全职变化的规律了吧。

2,对于多层神经元的模型,神经元的层次越深,这个神经元“考虑的因素越多”,就像我们俗话说的,考虑全面,将各种因素考虑在内,事情才能办的更好,这里同样对于我们的输出来说,层次越多,综合各种因素越强,对于训练集来说最终的分类结果也会越好,这也是对简单的问题,采用过于复杂的模型对导致过拟合的原因。

同样来张图向大家展示,大家可以逐层次的看神经元的小图来与输入,和输出比较:

时间: 2024-10-12 01:34:28

从最简单的感知器学习到的一些有趣的现象的相关文章

多层感知器学习

1.多层感知器简介 多层感知器(MLP)可以看做一个逻辑回归,不过它的输入要先进行一个非线性变换,这样数据就被映射到线性可分的空间了,这个空间我们称为隐藏层.通常单层隐藏层就可以作为一个感知器了,其结构如下图所示: 这里输入层首先通过权重矩阵和偏置得到总输出值并且通过tanh函数作一个非线性变换就可以得到hidden layer,然后从hidden layer到output layer可以使用之前的逻辑回归进行操作. 这里我们同样使用SGD算法来对参数进行更新,参数共有四个,分别是input-h

机器学习算法一:感知器学习

问题描述: 给定线性可分数据集:T={(x1,y1),(x2,y2),...,(xN,yN)},存在超平面S:$w\cdot x+b=0$ $ \left\{\begin{matrix} w\cdot x+b>0,y=+1\\  w\cdot x+b<0,y=-1 \end{matrix}\right. $ 学习策略: 定义点x0到超平面S的距离为: $\frac{1}{\left \| w \right \|}\left | w \cdot x +b \right |$ 对于误分类的数据$(

Python_sklearn机器学习库学习笔记(七)the perceptron(感知器)

一.感知器 感知器是Frank Rosenblatt在1957年就职于Cornell航空实验室时发明的,其灵感来自于对人脑的仿真,大脑是处理信息的神经元(neurons)细胞和链接神经元细胞进行信息传递的突触(synapses)构成. 一个神经元可以看做将一个或者多个输入处理成一个输出的计算单元.一个感知器函数类似于一个神经元:它接受一个或多个输入,处理 他们然后返回一个输出.神经元可以实时,错误驱动的学习,神经元可以通过一个训练样本不断的更新参数,而非一次使用整套的数据.实时学习可能有效的处理

Coursera机器学习基石 第2讲:感知器

第一讲中我们学习了一个机器学习系统的完整框架,包含以下3部分:训练集.假设集.学习算法 一个机器学习系统的工作原理是:学习算法根据训练集,从假设集合H中选择一个最好的假设g,使得g与目标函数f尽可能低接近.H称为假设空间,是由一个学习模型的参数决定的假设构成的一个空间.而我们这周就要学习一个特定的H——感知器模型. 感知器模型在神经网络发展历史中占有特殊地位,并且是第一个具有完整算法描述的神经网络学习算法(称为感知器学习算法:PLA).这个算法是由一位心理学家Rosenblatt在1958年提出

ML(2)——感知器

感知器(PLA--Perceptron Learning Algorithm),也叫感知机,处理的是机器学习中的分类问题,通过学习得到感知器模型来对新实例进行预测,因此属于判别模型.感知器于1957年提出,是神经网络的基础. 感知器模型 以最简单的二分类为例,假设医院需要根据肿瘤患者的病患特x1肿瘤大小,x2肿瘤颜色,判断肿瘤是良性(+1)还是恶性(-1),那么所有数据集都可以在一个二维空间表示:如果能找到一条直线将所有1和-1分开,这个数据集就是线性可分的,否则就是线性不可分.将两个特征向量分

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

神经网络属于“连接主义”,和统计机器学习的理论基础区别还是很不一样. 以我自己的理解,统计机器学习的理论基于统计学,理论厚度足够强,让人有足够的安全感:而神经网络的理论更侧重于代数,表征能力特别强,不过可解释性欠佳. 这两个属于机器学习的两个不同的流派,偶尔也有相互等价的算法. 本文回顾神经网络最简单的构件:感知器.多层感知器. 感知器 感知器是二类分类的线性分类模型,将实例划分为正负两类的分离超平面(separating hyperplane),属于判别模型. 感知器基于线性阈值单元(Line

python机器学习——感知器

最近在看机器学习相关的书籍,顺便把每天阅读的部分写出来和大家分享,共同学习探讨一起进步!作为机器学习的第一篇博客,我准备从感知器开始,之后会慢慢更新其他内容. 在实现感知器算法前,我们需要先了解一下神经元(neuron)的工作原理,神经元有很多树突和一个轴突,树突(Dendrites)可以从其他神经元接收信息并将其带到细胞体(Cell nucleus),轴突(Axon)可以从细胞体发送信息到其他神经元.树突传递过来的信息在细胞体中进行计算处理后,如果结果超过某个阈值,轴突会传递信号到其他的神经元

统计学习方法(感知器)

感知机 假设:输入空间是 x?Rn 输出空间是 y={+1,-1} 由如下2.1函数进行分类称之为感知器 其中,w为权值向量,b为偏置 sign(.)是符号函数,记为如下所示: 感知机是一种线性分类模型,属于判别模型. 感知机模型的假设空间是定义在特征空间中的 所有线性分类模型(linear classification model)或 线性分类器(linear classifier) 即函数集合{f|f(x) = wx +b} 求感知机模型2.1,即求得模型参数w,b. 感知机预测,通过学习得

学习理论之感知器与最大间隔分类器

到目前为止,我们使用的学习方法都是批量学习(batch learning)方式,即首先给定训练集学习出拟合假设函数中的参数,然后评价的效果的时候使用独立的测试集.本篇博文将会介绍一种在线学习(online learning)方式,即算法必须在学习的过程中不断地作出预测,而不是批量学习方式一样,学习过程结束后才作出预测. 在线学习方式下,学习算法按顺序学习一个样本序列:.  具体来讲就是,算法先根据,利用假设函数(参数首先初始化为某些较合适的值),给出的预测值,预测完了之后,利用的实际值和预测值信