来自:https://docs.opencv.org/master/dc/dd6/ml_intro.html#ml_intro_ann
与ML中同时构建和训练的许多其他模型不同,在MLP模型中,这些步骤是分开的。首先,使用非默认构造函数或方法ANN_MLP :: create创建具有指定拓扑的网络。所有权重都设置为零。然后,使用一组输入和输出向量训练网络。训练过程可以重复多次,也就是说,可以根据新的训练数据调整权重。

可以使用StatModel :: train的其他标志:ANN_MLP :: TrainFlags。

神经网络

ML实现了前馈人工神经网络,或者更具体地,多层感知器(MLP),其是最常用的神经网络类型。MLP由输入层,输出层和一个或多个隐藏层组成。每层MLP包括一个或多个与前一层和下一层神经元定向连接的神经元。以下示例表示具有三个输入,两个输出的3层感知器,以及包含五个神经元的隐藏层:

MLP中的所有神经元都是相似的。它们中的每一个都有几个输入链接(它将前一层中几个神经元的输出值作为输入)和几个输出链接(它将响应传递给下一层中的几个神经元)。从前一层检索的值与某些权重相加,每个神经元个体加上偏差项。使用激活函数来转换总和,激活函数f对于不同的神经元也可以是不同的。F

换句话说,给定层n的输出,层n + 1的输出y_i被计算为:

可以使用不同的激活功能。ML实现三个标准功能:

身份函数(cv :: ml :: ANN_MLP :: IDENTITY):F(x )= x
对称sigmoid(cv :: ml :: ANN_MLP :: SIGMOID_SYM):),其中是MLP的默认选择。带有\ beta = 1,\ alpha = 1的标准sigmoid 如下所示:β= 1 ,α = 1

高斯函数(cv :: ml :: ANN_MLP :: GAUSSIAN):,目前尚不完全支持。
在ML中,所有神经元具有相同的激活函数,具有由用户指定的相同的自由参数(),并且不会被训练算法改变。

因此,整个训练有素的网络如下工作:

将特征向量作为输入。矢量大小等于输入层的大小。
将值作为输入传递给第一个隐藏层。
使用权重和激活函数计算隐藏层的输出。
将输出传递到下游,直到计算输出层。
因此,要计算网络,您需要知道所有权重。权重由训练算法计算。该算法采用训练集,具有相应输出向量的多个输入向量,并迭代地调整权重以使网络能够对所提供的输入向量给出期望的响应。

网络规模越大(隐藏层数及其大小)越大,潜在的网络灵活性就越大。训练集上的错误可以任意小。但同时学习网络也“学习”训练集中存在的噪声,因此测试集上的错误通常在网络大小达到极限后开始增加。此外,较大的网络训练时间比较小的网络长,因此使用cv :: PCA或类似技术预处理数据是合理的,并且仅在必要特征上训练较小的网络。

另一个MLP功能是无法按原样处理分类数据。但是,有一种解决方法。如果输入或输出中的某个特征(对于的n类分类器)层是分类的并且可以采用M> 2个不同的值,则将其表示为M个元素的二进制元组是有意义的,其中当且仅当该特征等于M中的第i个值时,第i个元素才为1。它增加了输入/输出层的大小,但加快了训练算法的收敛速度,同时实现了这些变量的“模糊”值,即概率元组而不是固定值。

ML实现了两种训练MLP的算法。第一种算法是经典的随机顺序反向传播算法。第二个(默认)是批处理RPROP算法。

也可以看看

ANN-MLP(神经网络--多层感知器)相关推荐

  1. 用 CvANN_MLP(OpenCV 的神经网络-多层感知器) 进行路牌判别

    原载于 用 CvANN_MLP 进行路牌判别. 这原是智能计算课程大作业. (有时候我真的不知道怎么措辞,应该用"分类识别",还是"判别",还是"断别 ...

  2. OpenCV 神经网络 - 多层感知器(MLP)

    一.简述 人工神经网络(ANN) 简称神经网络(NN),能模拟生物神经系统对物体所作出的交互反应,是由具有适应性的简单单元(称为神经元)组成的广泛并行互连网络. 二.M-P神经元 "M-P神 ...

  3. 【Python-ML】神经网络-多层感知器增加梯度检验

    # -*- coding: utf-8 -*- ''' Created on 2018年1月26日 @author: Jason.F @summary: 多层感知器实现,加梯度检验 训练集:http: ...

  4. 【Python-ML】神经网络-多层感知器

    # -*- coding: utf-8 -*- ''' Created on 2018年1月26日 @author: Jason.F @summary: 多层感知器实现 训练集:http://yann ...

  5. 感知器的c++实现_使用FastAI和PyTorch的多层感知器

    我将向您展示如何使用FastAIv1和Pytorch构建神经网络(多层感知器)并成功训练它以识别图像中的数字.Pytorch是一个非常流行的深度学习框架,FastAI v1是一个使用现代最佳实践简化训 ...

  6. 深度学习(一)多层感知器MLP/人工神经网络ANN

    目录 一.定义和公式 1. 多层感知器 Multi Layer Perceptron MLP 2. MLP实现非线性分类 3. Keras介绍 二. 代码实战 1. 建立MLP模型实现二分类 1.1  ...

  7. 神经网络与机器学习 笔记—多层感知器(MLP)

    多层感知器(MLP) Rosenblatt感知器和LMS算法,都是单层的并且是单个神经元构造的神经网络,他们的局限性是只能解决线性可分问题,例如Rosenblatt感知器一直没办法处理简单异或问题.然 ...

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

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

  9. 多层感知器(Muti-Layer Perception ,MLP)

    理解神经网络主要包括两大内容,一是神经网络的结构,其次则是神经网络的训练和学习,其就好比我们的大脑结构是怎么构成的,而基于该组成我们又是怎样去学习和识别不同事物的. 最典型的MLP包括包括三层:输入层 ...

最新文章

  1. lg-1 x 怎么算_阿迪达斯crazy byw x实战测评 crazy byw x脚感怎么样
  2. 玩转oracle 11g(23):区分大小写和字符集不同
  3. 服务器系统盘安装在sdb,从U盘自动安装centos5.3到服务器
  4. 蓝桥杯 BASIC-10 基础练习 十进制转十六进制
  5. NLP工具包(Albert+BiLSTM+CRF)
  6. 64位Win8企业版出现“Unknown Hard Error”系统警告的一个解决方法
  7. php中if函数的,【后端开发】php中if函数用法
  8. 2021年影响会计人员的十大信息技术榜单出炉,RPA再次登榜
  9. 内容创作费时费力?这款AI写作神器超给力!
  10. 宋红康JVM 学习笔记
  11. 数据挖掘:探索性数据分析(EDA)
  12. 基于STM32的便携式多功能医用交互设备
  13. 我的新书:《Jetpack Compose:Android全新UI编程》已出版
  14. 安装Window Server 2008的些配置
  15. AutoCAD辅助工具有哪些?如何使用?
  16. linux无线命令管理工具,Linux无线网络实用工具Top 10
  17. 百度搜索结果页面的参数 相关提示位置(rsp)
  18. 记录eset nod32的使用~
  19. 虚拟机连接本地wifi网络
  20. 弹弹堂之 弹坑技术( 鱼儿游 )

热门文章

  1. iOS开发中,出现错误:Apple Mach-O Linker Error
  2. hitcontraining_uaf
  3. QQ聊天记录快速备份 v0.9
  4. 电源设计调试过程中的异常现象介绍
  5. java基于keda事件驱动的k8s 容器自动伸缩
  6. 配电室环境的分布式远程管理
  7. C++的基类指针指向派生类对象,vector实现多态性
  8. 会声会影安装闪退解决办法_会声会影使用中常见问题及解决办法(一)
  9. 库函数memset()
  10. android games 1,Beginning Android Games