当前位置:首页 > 智能硬件 > 人工智能AI
[导读] 一、多层前向神经网络 多层前向神经网络由三部分组成:输出层、隐藏层、输出层,每层由单元组成; 输入层由训练集的实例特征向量传入,经过连接结点的权重传入下一层,前一层的输出是下一层的输

一、多层前向神经网络

多层前向神经网络由三部分组成:输出层、隐藏层、输出层,每层由单元组成;
输入层由训练集的实例特征向量传入,经过连接结点的权重传入下一层,前一层的输出是下一层的输入;隐藏层的个数是任意的,输入层只有一层,输出层也只有一层;
除去输入层之外,隐藏层和输出层的层数和为n,则该神经网络称为n层神经网络,如下图为2层的神经网络;
一层中加权求和,根据非线性方程进行转化输出;理论上,如果有足够多的隐藏层和足够大的训练集,可以模拟出任何方程;
 

二、设计神经网络结构

使用神经网络之前,必须要确定神经网络的层数,以及每层单元的个数;
为了加速学习过程,特征向量在传入输入层前,通常需要标准化到0和1之间;
离散型变量可以被编码成每一个输入单元对应一个特征值可能赋的值
比如:特征值A可能去三个值(a0,a1,a2),那么可以使用3个输入单元来代表A
如果A=a0,则代表a0的单元值取1,其余取0;
如果A=a1,则代表a1的单元值取1,其余取0;
如果A=a2,则代表a2的单元值取1,其余取0;

神经网络既解决分类(classificaTIon)问题,也可以解决回归(regression)问题。对于分类问题,如果是两类,则可以用一个输出单元(0和1)分别表示两类;如果多余两类,则每一个类别用一个输出单元表示,所以输出层的单元数量通常等一类别的数量。
没有明确的规则来设计最佳个数的隐藏层,一般根据实验测试误差和准确率来改进实验。

三、交叉验证方法

如何计算准确率?最简单的方法是通过一组训练集和测试集,训练集通过训练得到模型,将测试集输入模型得到测试结果,将测试结果和测试集的真实标签进行比较,得到准确率。
在机器学习领域一个常用的方法是交叉验证方法。一组数据不分成2份,可能分为10份,
第1次:第1份作为测试集,剩余9份作为训练集;
第2次:第2份作为测试集,剩余9份作为训练集;
......
这样经过10次训练,得到10组准确率,将这10组数据求平均值得到平均准确率的结果。这里10是特例。一般意义上将数据分为k份,称该算法为K-fold cross validaTIon,即每一次选择k份中的一份作为测试集,剩余k-1份作为训练集,重复k次,最终得到平均准确率,是一种比较科学准确的方法。

四、BP算法

通过迭代来处理训练集中的实例;
对比经过神经网络后预测值与真实值之间的差;
反方向(从输出层=>隐藏层=>输入层)来最小化误差,来更新每个连接的权重;

4.1、算法详细介绍
输入:数据集、学习率、一个多层神经网络构架;
输出:一个训练好的神经网络;
初始化权重和偏向:随机初始化在-1到1之间(或者其他),每个单元有一个偏向;对于每一个训练实例X,执行以下步骤:
1、由输入层向前传送:
结合神经网络示意图进行分析:

由输入层到隐藏层:

由隐藏层到输出层:

将两个公式进行总结,可以得到:

Ij为当前层单元值,Oi为上一层的单元值,wij为两层之间,连接两个单元值的权重值,sitaj为每一层的偏向值。我们要对每一层的输出进行非线性的转换,示意图如下:

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

车间多台PLC做数据采集,不一定要上SCADA网关。Python装好协议库后,通过以太网直连Modbus TCP、S7、Ethernet/IP,或用串口直连Modbus RTU,把寄存器、DB块、标签统一成点表,定时批量...

关键字: PLC Snap7直读S7数据块 python

在高速PCB设计领域,工程师常面临批量修改元件封装和验证设计规则的重复性工作。以某5G通信模块设计为例,其包含2000余个元件,手动替换封装需40小时,而人工DRC检查遗漏率高达15%。通过Python与Tcl脚本的二次...

关键字: python Cadence Altium

在嵌入式硬件开发中,测试环节常占据项目周期40%以上时间。本文介绍如何利用Python构建高效自动化测试框架,通过脚本驱动实现批量测试、数据采集和结果分析,将测试效率提升3-5倍,同时降低人为操作误差。

关键字: 嵌入式硬件 测试自动化 python

视频Transformer模型在视频理解、动作识别等任务中展现出强大性能,然而其高计算复杂度和内存消耗限制了实际应用。为解决这一问题,本文从算法和硬件层面出发,探讨视频Transformer模型的稀疏化加速方法,包括算法...

关键字: Transformer模型 python

在FPGA工具的软件世界中,用于在FPGA上开发设计的ide似乎每年都在加速,我在这里使用“加速”是一个双关语。这就意味着不缺少安装技巧和技巧。所以我在这里再次使用AMD FPGA工具版本2024.2,因为我在这个安装过...

关键字: FPGA Linux python

在本教程中,我们将指导您使用BleuIO USB BLE加密狗创建一个BLE实时macOS菜单栏应用程序。BleuIO是一个非常通用的工具,它简化了BLE(低功耗蓝牙)应用程序的开发,使其成为希望轻松构建创新项目的开发人...

关键字: BleuIO 低功耗蓝牙 python

在当今快速发展的硬件设计领域,自动生成Verilog代码已成为提高设计效率和准确性的重要手段。Verilog作为一种广泛应用的硬件描述语言(HDL),其代码自动生成技术可以大大缩短产品开发周期,降低设计成本。本文将介绍几...

关键字: Verilog FPGA python

在Linux系统编程中,经常需要在程序中执行外部命令并获取其执行结果。无论是基于C/C++、Python、Bash脚本还是其他编程语言,都提供了相应的方法来实现这一功能。本文将以C/C++和Python为例,详细介绍如何...

关键字: Linux系统 外部命令 python

Pipenv是一款旨在将所有包管理工具的优点集中利用于python领域中的工具,兼容性高,使用Pipenv可以自动创建项目和管理虚拟环境,且安装或删除包时会自动在Pipfile中添加和移除相应的包。

关键字: python 管理工具 虚拟环境

随着大数据的兴起,Python 和机器学习迅速成为时代的宠儿。本书在内容编排上避免了枯燥的理论知识讲解,依循“理论简述——实际数据集——Python 程序实现算法”分析数据的思路。

关键字: python 机器学习 数据集
关闭