机器学习总结(七):基本神经网络、BP算法、常用激活函数对比

bp神经网络预测未来数据,bp神经网络如何预测 网络的训练过程与使用过程了两码事rbsci。比如BP应用在分类,网络的训练是指的给你一些样本,同时告诉你这些样本属于哪一类,然后代入网络训练,使得这个网络具备一定的分类能力,训练完成以后再拿一个未知类别的数据通过网络进行分类。这里的训练过程就是先伪随机生成权值,然后把样本输入进去算出每一层的输出,并最终算出来预测输出(输出层的输出),这是正向学习过程;最后通过某种训练算法(最基本的是感知器算法)使得代价(预测输出与实际输出的某范数)函数关于权重最小,这个就是反向传播过程。... 阅读详情

1.   神经网络

(1)为什么要用神经网络?

对于非线性分类问题,如果用多元线性回归进行分类,需要构造许多高次项,导致特征特多学习参数过多,从而复杂度太高。

(2)常用的激活函数及其优缺点

阶跃函数sgn(x)(理想,但不连续,不光滑);

Sigmoid函数(下图左):


优点:能够把输入的连续实值压缩到0到1之间;

缺点:(1)容易饱和,当输入非常大或非常小的时候,神经元的梯度就接近0了,这使得在反向传播算法中反向传播接近于0的梯度,导致最终权重基本没什么更新;(2)Sigmoid的输出不是0均值的,这会导致后层的神经元的输入是非0均值的信号,这会对梯度产生影响,假设后层神经元的输入都为正(e.g. x>0elementwise in f=wTx+b),那么对w求局部梯度则都为正,这样在反向传播的过程中w要么都往正方向更新,要么都往负方向更新,导致有一种捆绑的效果,使得收敛缓慢。  

解决方法:注意参数的初始值设置来避免饱和情况。

Tanh函数(下图右):

 优点:0均值,能够压缩数据到-1到1之间;

 缺点:同Sigmoid缺点第二个,梯度饱和;


ReLU函数:


优点:(1)因为是线性,而且梯度不会饱和,所以收敛速度会比Sigmoid/tanh快很多;(2)相比于Sigmoid/tanh需要计算指数等,计算复杂度高,ReLU只需要一个阈值就可以得到激活值;

缺点:训练的时候很脆弱,有可能导致神经元坏死。举个例子:由于ReLU在x<0时梯度为0,这样就导致负的梯度在这个ReLU被置零,而且这个神经元有可能再也不会被任何数据激活。如果这个情况发生了,那么这个神经元之后的梯度就永远是0了,也就是ReLU神经元坏死了,不再对任何数据有所响应。实际操作中,如果你的learning rate 很大,那么很有可能你网络中的40%的神经元都坏死了。

解决方法:设置合适的较小的learning rate.

Maxout函数:



优点:ReLU是Maxout的变形,具有ReLU的优点,同时没有它的缺点,可以拟合任意的凸函数

缺点:把参数double了,造成参数增多。

(3)误差逆传播算法(BP)

数据预处理:归一化

如何训练数据:增量学习:一个样本一个样本的输入,调整权重阈值,要求输入模式要有足够的随机性,对输入模式的噪声比较敏感,即对于剧烈变化的输入模式,训练效果比较差,适合在线处理。批量学习:全部样本一次性输入调整,不存在输入模式次序问题,稳定性好,但是只适合离线处理。

基本思想:输出层的预测值与目标值的误差往回传播。

两个过程:(1)工作信号正向传递;(2)误差信号反向传递。

隐含层节点个数选取经验: ,m为输入层节点数,n为输出层,a为1~10之间的调节常数。

反向传递过程:(1)在(0,1)范围内随即初始化网络中所有连接权和阈值;(2)对所有的样本(x,y),计算当前样本输出,根据误差平方和的最速下降方向,连续调整网络的权值和阈值。(这个规则叫 学习规则或Hoff学习规则)。

优点:很强的非线性映射能力,一个3层的BP神经网络能够实现对任意非线性函数进行逼近。

缺点:(1)容易陷入局部极小,可以多次随即初始化;(2)训练时学习新样本有遗忘旧样本的趋势;(3)训练次数多使得学习效率低,收敛速度慢。

改进:(1)增加动量项,加快收敛。


(2)“模拟退火”:在每一步都以一定的概率接受比当前解更差的结果,接受次优解;

(3)使用随机梯度下降,加入随机因素,有机会跳出局部极小;

(4)遗传算法,逼近全局最小。

如何防止过拟合:(1)早停:将数据集分为训练集和验证集,若训练集误差降低但验证集误差升高,则停止训练,同时返回最小验证集误差的连接权和阈值;(2)正则化:在误差目标函数后加一个用于描述网络复杂度的部分,L1,L2正则化;(3)Dropout:开始,删除掉隐藏层随机选取的一半神经元,然后在这个更改的神经元网络上正向和反向更新,然后再恢复之前删除过的神经元,重新选取一般神经元删除,正向反向,更新w,b.重复此过程,最后学习出来的神经网络中的每个神经元都是在一半神经元的基础上学习的,当所有神经元被恢复后,为了补偿,我们把隐藏层的所有权重减半。

L1正则化和L2的区别:

L1范数:向量中各个元素的绝对值和,可以把特征拉稀疏。L0(向量中非0元素个数)也可实现稀疏,但是难以优化求解,而且L1范数是L0的最优凸近似。

L2范数:向量中各个元素平方和再开方,会把各个维度的权重拉平均一些,抑制住各个维度权重幅度的方差。

为什么Dropout可以减少overfitting?

每次扔掉了一般隐藏层的神经元,相当于在不同的神经网络训练了,减少了神经元的依赖性,迫使神经网络去学习更加健硕的特征。

(4)常用的cost function

均方误差函数(MSE)(激活函数选择sigmoid):

   比如一个神经元,单输入单输出,计算代价函数对w和b的导数:

   这样在更新w和b时,由于sigmoid函数两边趋于平缓,导致更新非常慢;

交叉熵代价函数(cross-entropy):


为什么可以作为代价函数?(1)非负性;(2)当真实输出a和期望输出y接近的时候,接近于0;

对w和b求偏导:

优点:误差大,更新多,误差小,学习慢

(5)多分类问题softmax

与sigmoid不同的是输出层函数不同:


特点:每个输出值都大于等于0,而且总和为1,有概率分布的特点。

是否有学习慢的问题(取决于对w和b的偏导):

代价函数:


求导:


与误差有关,不存在。

(6)初始化权重

随机初始化:容易梯度饱和,sigmoid函数特点;

正态分布初始化:均值为0,标准差为1/sqrt(输入层节点个数),可以把数据压缩在-1~1之间,学习过程不会被减慢。

(7)学习率和正则化参数如何设置?

学习率:可以从0.001,0.01,0.1,1,10开始尝试,如果发现cost开始增大,停止,实验更小的微调;

正则化参数:先不设定正则项,把学习率调好,然后再实验1,10,100.找到大致合适的再微调。


其他几种常见网络:

RBF网络:

基本思想:一种单隐层前馈神经网络,使用径向基函数作为隐层神经元激活函数,输出层是对隐层神经元输出的线性组合。

函数模型:

隐层的功能:将低维空间通过非线性函数映射到一个高维空间,然后在这个高维空间进行曲线的拟合。

径向基函数中心如何确定:随机选择h个样本,通过聚类得到h个聚类汇中心;

方差如何确定(cmax为中心之间最大距离,h为隐层节点个数):

 隐含层到输出层权值如何确定:梯度下降,代价函数为均方误差。

神经网络模型之BP算法及实例分析 神经网络BP算法及预测实例 阅读详情

相关推荐

神经网络中BP算法的原理与用Python实现源码

(1)什么是梯度下降和链式求导法则 1.梯度下降 假设我们有一个函数J(w),如下图所示。 现在,我们要求当w等于什么的时候,J(w)能够取到最小值。从图中我们知道最小值在初始位置的左边,也就意味着如果想要使J(w)最小,w的值需要减小。而初始位置的切线斜率a>0(也是该位置对应的导数大于0),w=w-eta*a(eta是学习率)就能让w的值减小,循环求导更新w直到J(w)取到最

Microstrong 1万+

机器学习--神经网络训练:批次(batch)和动量(momentum)

之前介绍过了,把训练数据分为很多个batch,然后每个batch算梯度并更新,所有batch全部计算过一次为一个,在一个echo完成后下一个echo前,需要先进行(洗牌,打乱次序),即再次将训练数据重新分配,与之前的分配方式区别开。

projectfailed的博客 2867

机器学习——bp神经网络

人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。激活函数的引入为的是增加整个网络的表达能力 (即非线性),否则,若干线性操作层的堆叠仍然只能起到线性映射的作用,无法形成复杂的函数。

zhangjngkai的博客 4002

机器学习、线性回归、逻辑回归、BP神经网络的关系

机器学习是指计算机通过经验来学习和改进的过程。 线性回归是一种机器学习算法,它的目的是预测一个连续输出值(也称为目标变量)与一个或多个输入变量(也称为特征)之间的关系。线性回归假设输入特征与输出之间是一个线性关系,也就是说,输出与输入之间的关系可以表示为一个线性方程。 逻辑回归是另一种机器学习算法,它用于预测一个离散输出值(例如,一个二元结果,如是或否)与一个或多个输入变量之间的关系。与线性回归不...

weixin_35755562的博客 843

【深度学习入门到精通系列】神经网络中动量的概念

其中动量系数一般取(0,1),直观上理解就是要是当前梯度方向与前一步的梯度方向一样,那么就增加这一步的权值更新,要是不一样就减少更新。

NJU phd 在读。 2276

基于机器学习的数据预测matlab仿真,对比BP神经网络、RBF神经网络以及PSO优化RBF神经网络

人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(Connection Model),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。生物神经网络主要是指人脑的神经网络,它是人工神经网络的技术原型。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 441

BP神经网络的Matlab实现——人工智能算法

这几天在各大媒体上接触到了人工智能机器学习,觉得很有意思,于是开始入门最简单的机器算法——神经网络训练算法(Neural Network Training);以前一直觉得机器学习很高深,到处是超高等数学、线性代数、数理统计。入坑发现确实是这样!但是呢由项目实例驱动的学习比起为考试不挂科为目的的学习更为高效、实用!在遗传算法、神经网络算法的学习入门之后觉得数学只要用心看没问题的(即使是蒙特卡洛和马尔

善水的博客 19万+

算法——BP神经网络

BP神经网络(Backpropagation Neural Network),也称为反向传播神经网络,是一种最常见和广泛应用的前馈型人工神经网络模型。BP神经网络由多个层次组成,包括输入层、隐藏层和输出层。每个层级都由多个神经元构成,它们通过带有权重的连接相互连接。信息在网络中从输入层向前传递,通过各层的激活函数进行计算和转化,最终到达输出层。BP神经网络的训练过程中,使用反向传播算法来调整网络中的连接权重。

百锦再的博客 1万+

【机器学习】BP神经网络基本结构

BP神经网络是一种监督学习算法,它通过最小化预测输出与实际目标之间的误差来调整网络参数。BP算法的核心思想是将输出误差沿网络反向传播,从而指导各层权重的调整。

鑫宝的博客 3902

机器学习-10-神经网络python实现

本系列是机器学习课程的系列课程,主要介绍基于python实现神经网络。

IT从业者的成长历程 2434

Apollo&Carla联合仿真环境搭建与实战调试

本文详细介绍了Apollo与Carla联合仿真环境的搭建与实战调试流程,涵盖硬件配置、软件依赖安装、Apollo环境配置、Carla仿真器安装、桥接服务设置以及常见问题解决方案。通过逐步指导,帮助开发者高效实现自动驾驶仿真测试,提升开发效率。

ee345的博客 200

神经网络的BP算法推导详解

一个神经网络程序包含以下几部分内容。   1.数据表达和特征提取。对于一个非深度学习神经网络,主要影响其模型准确度的因素就是数据表达和特征提取。同样的一组数据,在欧式空间和非欧空间,就会有着不同的分布。有时候换一种思考问题的思路就会使得问题变得简单。所以选择合适的数据表达可以极大的降低解决问题的难度。同样,在机器学习中,特征的提取也不是一种简单的事。在一些复杂问题上,要通过人工的方式设计有效的特...

知识搬运工的博客 4万+

【一】PCIe基础知识

Linux PCIe基础知识

他山之石 可以攻玉 4万+

BP神经网络

今天来讲BP神经网络,神经网络在机器学习中应用比较广泛,比如函数逼近,模式识别,分类,数据压缩,数据 挖掘等领域。接下来介绍BP神经网络的原理及实现。   Contents     1. BP神经网络的认识   2. 隐含层的选取   3. 正向传递子过程   4. 反向传递子过程   5. BP神经网络的注意点   6. BP神经网络的C++实现     1. BP神经

ACdreamer 20万+

避坑指南:PyCINRAD处理CINRAD雷达数据时遇到的5个典型报错及解决方案

本文针对使用PyCINRAD库处理CINRAD雷达基数据时常见的5个典型报错,提供了详细的解决方案。内容涵盖环境配置、数据读取、PPI可视化及性能优化等核心环节,重点解决了版本兼容性、数据异常处理和中文乱码等实际问题,帮助用户高效处理雷达基数据并生成准确的PPI图像。

cc789的博客 1068

华三模拟器实战:3分钟搞定路由器DHCP地址池配置(附常见错误排查)

本文提供华三模拟器中路由器DHCP地址池的实战配置指南。通过分步详解,帮助用户在3分钟内完成基础设置,并深入讲解多地址池、中继配置等进阶应用。文章重点剖析了DHCP服务无法工作的常见原因,提供从客户端到服务器的系统性排错方法,助力快速定位并解决地址分配失败、获取参数错误等典型问题。

w1x2y3的博客 360

机器学习——BP神经网络详细介绍及案例Python代码实现

机器学习——BP神经网络详细介绍及案例Python代码实现 BP(Back Propagation)网络 也称误差反向传播,1985年由Rumelhart 和 McCelland提出

杨老师的小跟班(*∩_∩*) 1万+

【脑电绘图教程 2】使用Brainstorm进行脑电处理及源定位

Brainstorm 是一个开源应用程序,支持MEG、EEG、fNIRS、ECoG、深度电极和其他电生理学的数据分析,尤其用于MEG、EEG的源定位。Brainstorm的主要优点是其简单直观的图形界面,不需要进行任何编程,即可上手MEG、EEG分析,此外,它还支持多种数据类型(基本上EEGLab支持的,它都支持),并且具有数据批量处理功能,可以很方便的分析自己的数据。

qq_40735196的博客 1万+

机器学习——神经网络(四):BP神经网络

BP神经网络(Back Propagation)   误差逆传播算法(error Back Propagation 简称BP),实际上是多层感知器的一种,在1986由Rumelhart和Hinton为首的科学小组提出。BP神经网络具有任意复杂的模式分类能力和优良的多维函数映射能力,解决了简单感知器不能解决的异或问题和其他问题。从结构而言具有输入层、隐含层和输出层;从本质上来讲是以网络误差平方为目标函数、采用梯度下降法来计算目标函数的最小值。 主要过程: (1)工作信号向前正向传播的子过程 (

Liu Feng's Blog 1万+

基于Matlab生成并可视化多架飞机轨迹仿真(附源码)

这使我们可以轻松地对直线和恒定转弯进行建模,并具有额外的自由度,可以在直线段和曲线段之间平滑过渡。同样,空气中的物体会经历重力的影响,遵循抛物线(二次)路径。需要更多的航点来适应这些变化,但是轨迹的其余部分需要更少的点。第三个轨迹,如下所示,代表了一架速度更高的飞机。它由两个恒定的转弯组成,飞机在第二个转弯的中间减速。一旦知道(并设置了)物体穿过空间的物理路径,物体的速度作为行进距离的函数就通过三次埃尔米特插值来确定。在此示例中,学习了内部使用的插值符背后的概念,并展示了如何使用少量航点重现场景。

珞瑜的博客 5464

RK3568平台(网络篇)WIFI模块RTL8821CU调试

RTL8821CU是瑞昱半导体推出的usb接口的wifi,下面的教程将介绍如何将RTL8821CU移植到rk3588的平台上。移植usb wifi需要修改的文件Android hal层需要修改的文件//kernel需要修改的文件kernel/arch/arm64/boot/dts/rockchip/rk3399-tve1030g.dtsi //除去板上的sdio的wifi。

weixin_49303682的博客 3905

【机器学习】BP神经网络正向计算

反向传播(Backpropagation,简称BP)神经网络是人工神经网络中最常用和最基础的模型之一。虽然BP神经网络以其反向传播算法而闻名,但正向计算同样是网络运行的关键组成部分。本文将详细介绍BP神经网络的正向计算过程,包括其基本原理、数学表示和实现方法。

鑫宝的博客 1950

机器人的“大脑”进化论:从专用控制器到高性能SoC的异构计算时代

摘要:随着AI与机器人技术融合,高性能芯片成为机器人智能化的关键。本文分析了机器人对芯片的核心需求,包括多模态数据处理、实时控制和智能决策能力。系统级芯片(SoC)因集成CPU、GPU/NPU等模块而成为主流选择。市场呈现分层格局:中低端设备(如扫地机器人)采用"MCU+轻量SoC"方案,满足基础功能;高端机器人则依赖"高性能SoC+独立GPU"处理复杂任务。除主控芯片外,完整的机器人系统还需传感器接口、驱动、通信等配套芯片。未来,芯片技术的进步将持续推动机器人智能化

致力于lidar应用开发 83

一文看懂——BP神经网络

BP神经网络这么耳熟能详,你还不打算真的详吗QAQ

WenJGo的博客 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

bp神经网络基本术语与公式总结

这篇文章深入讨论了BP神经网络的关键要素,重点介绍了多种激活函数(如Sigmoid、tanh和ReLU)及其应用场景、特点,同时探讨了损失函数(如交叉熵和均方误差)、学习率调整策略,以及防止过拟合的方法(包括正则化、数据增强和早停等)。文章还提到了L2正则化在降低模型复杂度和提升泛化能力中的作用,为理解和实施BP神经网络提供了全面的技术支持。

weixin_68880828的博客 3079

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

BP神经网络原理和算法推导流程(吴恩达机器学习)

1 反向传播算法和BP网络简介 误差反向传播算法简称反向传播算法(即BP算法)。使用反向传播算法的多层感知器又称为BP神经网络。BP算法是一个迭代算法,它的基本思想为:(1)先计算每一层的状态和激活值,直到最后一层(即信号是前向传播的);(2)计算每一层的误差,误差的计算过程是从最后一层向前推进的(这就是反向传播算法名字的由来);(3)更新参数(目标是误差变小)。迭代前面两个步骤,直到...

wu740027007的博客 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: 机器学习总结(六):集成学习(Boosting,Bagging,组合策略)
下一篇: 机器学习总结(八):常用机器学习算法优缺点对比、适用条件
西电校草
博客等级 码龄13年 246粉丝 19原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值