| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 深度学习入门——感知机(学习笔记) -> 正文阅读 |
|
[人工智能]深度学习入门——感知机(学习笔记) |
感知机概念? ? ? ?首先我们需要大致了解生物神经元的工作流程,在生物神经网络中,每个神经元与其他神经元通过突触进行连接。神经元之间的信息传递,属于化学物质的传递。当它兴奋时,就会向与它相连的神经元发送化学物质,从而改变这些神经元的电位。如果某些神经元的电位超过了一个阈值,那么它就会被激活,接着向其他神经元发送化学物质,如此进行层层传播。 ? ? ? ? 感知机模拟生物神经元的工作流程,通过设置各个神经元的某种连接权重,将神经元接收到的所有输入值按照权重叠加起来,再与当前神经元的阈值进行比较,最终通过激活函数向外表达输出。其模型可以用以下公式表示(为第i个神经元的输入,为第i个神经元的连接权重,为阈值,f为激活函数,y是最终输出): ??? ? ? ? ? 感知机最初并不知道正确的权重应该是多少,在一开始只是设置一个随机值,然后根据训练数据计算得到输出,再通过计算误差(实际值与输出值之差)来调整权重,使其修改后计算的误差减小,最终使得输入的每个数据都能计算出正确的结果,这就是感知机的学习过程。所谓的神经网络的学习规则,就是调整神经元之间的连接权值和神经元内部阈值的规则。感知机是一种简单的二分类的线性分类模型(二分类中,一般用y=1表示一类,用y=0表示另一类),对于输入数据是二维的,感知机的几何意义是找一条直线将表示输入数据的平面中的点分开;那么如果输入数据是三个维度的,则相当于找到一个平面,在三维空间中将它们分成两类;对于更高维度的数据,就是寻找对应的超平面。该平面和超平面方程都是由权值参数来确定的。 ? 感知机学习过程和权值更新规则: 第一步,随机初始化权值,为了统一描述,用代替b。 第二步,输入一个样本和对应的期望结果y。 第三步,激活函数加工后的感知机输出结果: 第四步,计算误差,以误差为基础对每个权值,按以下规则进行调整(称为学习率,是一个人为设置的常量,一般在 0-1 之间,用来控制每次权重的调整力度。它本身的值是比较难确定的,依赖于人工的经验(属于超参数范畴),如果太小,网络调参的次数较多,收敛会很慢;如果太大,会错过参数的最优解。一般将其初始值设置为一个较小的值,如0.1): 第五步,循环以上步骤,对所有样本进行训练,直到训练一定轮数或者误差达到最小时停止。 注: 1. 在使用感知机实现分类问题时,根据某个样本的误差,对权值进行调整时,可能引起其他原本分类正确的样本出错。所以每次调整之后,要把所有样本都重新计算一遍。 2. 为了减小每个样本由于误差不同而进行多次调整的问题,可以把所有样本的误差求和,然后再对权值进行一次调整,实现每次调整让总体误差最小。 3. 能线性分割不同样本的直线非常多,根据初始参数和学习率,最终得到的权值参数结果并不唯一。 4. 感知机旨在通过最小化损失函数,来优化分类超平面,从而达到对新实例实现准确预测。而由于感知机只有输出层神经元可以进行激活函数的处理,即它只拥有单层的神经元,因此它的学习能力是相对有限的。如果这些样本本身不是用一条直线可以分割的(即非线性可分),那么这个学习过程就无法终止。因此,感知机无法解决线性不可分问题。 多层感知机? ? ? ? 随着研究的进行,人们发现在输入层与输出层之间增加隐含层,构成一种多层神经网络结构,每一层神经元仅与下一层的神经元全连接在同一层之内,神经元彼此不连接,而且跨层之间的神经元,彼此也不相连。这样的结构可以解决非线性分类的问题,增强感知机的分类能力,这就是多层感知机(输入层不算入神经网络层次,且隐含层和输出层中的神经元都拥有激活函数)。 ? ? ? ?由于当时感知机只给出了最后一层神经元权值的训练方法,所以其他层的参数则只能人为设置。单层感知机能够根据已知数据来学习参数,在线性可分的问题领域具有很好的效果,但它不能处理线性不可分问题。而多层感知机只能训练最后一层参数, 实用性有限。反向传播算法(即BP 算法)的提出,使得多层神经网络的训练变得简单可行,证明了多层神经网络具有很强的学习能力。从而将神经网络的研究推向了新的高潮(BP 算法将会在下一篇学习笔记中涉及)。 感知机案例代码
分类结果图示: ?注:如有问题,欢迎批评指正! ? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 10:41:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |