风机桨叶故障诊断(五) 修改隐含层神经元个数的尝试

风机桨叶故障诊断(五) 修改隐含层神经元个数的尝试


     我们已经为训练一个更为稳健的神经网络做好了样本的准备工作,那么我们开始下一步的工作吧!

     我们已经有了样本集,目前我筛选出来了247个正样本,652个负样本。这样的样本的规模是否够用?是处在高方差还是高偏差?需不需要增加隐含层神经元个数以增加算法的复杂程度?这些问题都可以归结到一个问题,我们的算法现在处在什么样的状态?

     下面一步我打算进行模型选择,通过选择不同隐含层神经元个数时算法的不同表现来进行分析我们的算法现在处在什么样的状态,并且选择出最适合我们问题的隐含层神经元个数。

     所以接下来的任务很简单,在已经写好的训练BP神经网络的代码基础上外面套一层for循环,我从25个隐含层节点开始运行,每次增加25个节点,一直运行到625个节点结束(事实证明这个上限选的有点大了,浪费了很多时间)。对于每次的训练,记录下神经网络在训练集和测试集上的预测准确率。全部运算完毕后将会绘出图来。

     接下来的任务就是等待了

     ...

     ...

     漫长的等待终于运行完了,没想到居然跑了14个小时。其实像这样浪费时间的事情这些天一直在发生,因为之前没有过完整的机器学习系统开发的经验,神经网络这么细致的使用也是第一次,循环的上限选大了没想到会跑这么久,再加上本来电脑就慢。不管怎样终于运行完了,来看看结果(横坐标是隐含层神经元个数):

     

     可以看到,模型在训练集上的预测准确率一直在非常高的水平,但随着隐含层神经元数量的上升,测试集上的准确率却在下降。这说明我们的算法过拟合了,由此图我们得出以下结论:

     1.隐含层个数选取在25-100是当前情况下比较好的。

     2.we need more data! 算法过拟合了,说明获取更好更多的数据能够帮到我们

     看了我们当前的神经网络的结构(25个隐含层节点)已经是比较合理的了,样本我们暂时也获取不了更多,看了下一步要想办法从特征选取上入手尝试一下了,今天就到这里~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

风机桨叶故障诊断(六) 利用自编码器进行特征学习

风机桨叶故障诊断(六) 利用自编码器进行特征学习 在之前的工作中,我已经初步构建了三层的BP神经网络,并已经从样本集的选取,模型的选择(隐含层神经元个数),和输出层神经元阈值选择这…

风机桨叶故障诊断(七) 滑动窗与非极大值抑制NMS

风机桨叶故障诊断(七)滑动窗与非极大值一直NMS 到目前为止,我已经利用自编码神经网络提取特征后训练得到了BP神经网络(参见:点击打开链接),且在测试样本集上表现不错。下面我们就要应用到实际中…

Distinctive Image Features from Scale-Invariant Keypoints-SIFT算法译文

本文全篇转载自如下博客,感谢博主的无私分享 http://www.cnblogs.com/cuteshongshong/archive/2012/05/25/2506374.html ------------------------------------------------------------------------------------------------------ 从尺度不变的关键点选择可区分的…

将图像绘制成3维立体散点图

matlab源代码: Iimread(F:\绝缘子识别\绝缘子红外test图片\test (50).jpg); Irgb2gray(I); [wd,len]size(I); interval10; %设置绘制散点图的间隔,全部绘出会很卡 x[]; y[]; z[]; numfloor((len-1)/interval)1;%计算在当前间隔下图像的每一行…

二叉树的非递归遍历|前中后序遍历

二叉树的非递归遍历 文章目录 二叉树的非递归遍历前序遍历-栈层序遍历-队列中序遍历-栈后序遍历-栈 前序遍历-栈 首先我们应该创建一个Stack 用来存放节点,首先我们想要打印根节点的数据,此时Stack里面的内容为空,所以我们优先将头结点加入S…

C#灰度图转伪彩色图

/// <summary>/// 伪彩色图像构造器/// </summary>public class PseudoColorImageBuilder{/// <summary>/// 铁红色带映射表/// 每一行代表一个彩色分类&#xff0c;存放顺序是RGB/// </summary>public static byte[,] ironTable new byte[128, 3] {{…

砥志研思SVM(二) 拉格朗日乘子法与KKT条件

[1]最优化问题中的对偶性理论 [2]拉格朗日乘子法(上) [3]拉格朗日乘子法(下)

VS2015上配置opencv2.4.11

VS2015上配置opencv2.4.11版方法总结 最近给电脑重装了系统&#xff0c;需要的软件各种装。今天阅读了很多网上的博客&#xff0c;几经波折完成了opencv的配置。配置opencv与其他函数包或者软件相比算是麻烦的了&#xff0c;可能出现的问题也是五花八门&#xff0c;所以针对我的…

热传导方程的差分格式原理与matlab实现

function [ ] ParabolicEquation( h,k ) %求解抛物型方程中的一种&#xff1a;热传导方程 %h:x轴步长 %k:t轴步长rk/(h*h);%网格比 Mxfloor(1.0/h)1;%网格在x轴上的节点个数&#xff08;算上0&#xff09; Ntfloor(1.0/k)1;%网格在t轴上的节点个数&#xff08;算上0&#xff…

如何开发一个扫雷小游戏?

如何用C#开发一个扫雷小游戏&#xff1f; 十分自豪的说&#xff0c;计算机编程就是变魔术&#xff0c;每一个coder都是一个魔术师。 初学C#的时候&#xff0c;我相信很多人都和我一样&#xff0c;学会了基本语法&#xff0c;掌握了基本的数据结构&#xff0c;也见过了不少微软…

在emIDE中创建STM32项目

&#xfeff;emIDE是一个开源的嵌入式集成开发环境&#xff0c;基于Code::Blocks开发&#xff0c;能够支持多个平台和多个厂家的嵌入式硬件&#xff0c;继承了Code::Blocks的优点。 下载emIDE并安装&#xff0c;也可选择绿色版。若需要调试则需安装J-Link GDB Server。 1、打…

“Hello,Github!——如何配置并上传一个已有项目到Git上

“Hello&#xff0c;Github!"——如何配置并上传一个已有项目到Git上注意&#xff01;前言十分简短&#xff01;如今&#xff0c;Github已经成为了管理软件开发以及发现别人优秀代码的首选方法。所以还在等什么&#xff01;快点跟上脚步&#xff01;今天初次注册了Github账…

使用EmBitz开发STM32项目开发环境配置

&#xfeff;&#xfeff; 一、EmBitz软件获取与安装 1、EmBitz软件的获取 EmBitz原名Em::Blocks&#xff0c;是基于Code::Blocks开发的&#xff0c;面向嵌入式的C/C集成开发环境。支持J-Link和ST-Link调试器。使用J-Link仿真器时需安装J-Link GDB Server。 EmBitz下载地址&…

Python格式化输出方法

Python格式化输出 本文转自&#xff1a;Python格式化输出 今天写程序又记不清格式化输出细节了…… 索性整理一下。 python print格式化输出。 1. 打印字符串 print ("His name is %s"%("Aviad")) 效果&#xff1a; 2.打印整数 print ("He is %d yea…