对TensorFlow深度学习中常见参数的总结分析

  神经网络中常见的参数有:初始学习率、学习率衰减率、隐藏层节点数量、迭代轮数、正则化系数、滑动平均衰减率、批训练数量七个参数。   对这七个参数,大部分情况下,神经网络的参数选优是通过实验来调整的。   一个想法是,通过测试数据来评判参数的效果,但是这种方法会导致过拟合测试数据,失去评判未知数据的意义。而我们训练神经网络的目的,恰恰是为了预测未知数据。   所以,为了评判各种参数的效果,一般会从训练数据中抽取一部分作为验证数据。   验证数据的选取方法也是非常重要的,一般来说选取的验证数据分布越接近测试数据分布,模型在验证数据上的表现越可以体现模型在测试数据上的表现。

  • 不同参数模型的效果比较

      以前提到过,设计神经网络时候的5种优化方法。一个是神经网络结构设计上,需要使用激活函数和多层隐藏层;另一个是,神经网路优化时,可以使用指数衰减的学习率、加入正则化的损失函数、滑动平均模型。   影响最大的是:调整神经网络的结构,包括隐藏层和激活函数。这说明, 神经网络的结构对最终模型的效果有本质影响。   另外的,滑动平均模型、指数衰减率和正则化项对正确率的提升并不是特别明显。这是因为滑动平均模型和指数衰减的学习率在一定程度上都是限制神经网络中参数更新的速度。如果模型的收敛速度很快,这两种优化对最终模型的影响不大。   这两个个优化手段,能否说优化作用不大呢?   其实不是的。当问题更加复杂时,迭代不会这么快接近收敛,这时候滑动平均模型和指数衰减的学习率可以发挥更大的作用。   还有一个正则化项,对模型效果带来的提升要相对显著。使用了正则化项损失函数的神经网络模型可以降低大约6%的错误率。   只优化交叉熵的模型可以更好的拟合训练数据(交叉熵损失更小),但是却不能很好的挖掘数据中潜在的规律来判断未知的测试数据,所以在测试数据上正确率低。

  总结一下的话,激活函数和隐藏层对模型的效果带来质的飞跃;滑动平均模型、学习率衰减率、正则化项对最终正确率的提升效果不明显,但是需要解决的问题和使用的神经网络更加复杂时,这些优化方法将更有可能对训练效果产生更大的影响。

TensorFlow笔记之常见七个参数的更多相关文章

  1. tensorflow笔记(一)之基础知识

    tensorflow笔记(一)之基础知识 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7399701.html 前言 这篇no ...

  2. tensorflow笔记(三)之 tensorboard的使用

    tensorflow笔记(三)之 tensorboard的使用 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7429344.h ...

  3. tensorflow笔记(四)之MNIST手写识别系列一

    tensorflow笔记(四)之MNIST手写识别系列一 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7436310.html ...

  4. tensorflow笔记(五)之MNIST手写识别系列二

    tensorflow笔记(五)之MNIST手写识别系列二 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7455233.html ...

  5. tensorflow笔记:多层LSTM代码分析

    tensorflow笔记:多层LSTM代码分析 标签(空格分隔): tensorflow笔记 tensorflow笔记系列: (一) tensorflow笔记:流程,概念和简单代码注释 (二) ten ...

  6. 深度学习Bible学习笔记:第七章 深度学习中的正则化

    一.正则化介绍 问题:为什么要正则化? NFL(没有免费的午餐)定理: 没有一种ML算法总是比别的好 好算法和坏算法的期望值相同,甚至最优算法跟随机猜测一样 前提:所有问题等概率出现且同等重要 实际并 ...

  7. TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点

    TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点 首先提醒一下,第7讲的最后滑动平均的代码已经更新了,代码要比理论重要 今天是过拟合,和正则化,本篇后面可能或更有兴趣, ...

  8. TensorFlow笔记-07-神经网络优化-学习率,滑动平均

    TensorFlow笔记-07-神经网络优化-学习率,滑动平均 学习率 学习率 learning_rate: 表示了每次参数更新的幅度大小.学习率过大,会导致待优化的参数在最小值附近波动,不收敛:学习 ...

  9. TensorFlow笔记-06-神经网络优化-损失函数,自定义损失函数,交叉熵

    TensorFlow笔记-06-神经网络优化-损失函数,自定义损失函数,交叉熵 神经元模型:用数学公式比表示为:f(Σi xi*wi + b), f为激活函数 神经网络 是以神经元为基本单位构成的 激 ...

随机推荐

  1. Android开发 :androidstudio device offline

    使用设备调试的时候,偶尔的就会遇到androidstudio device offline,尽管尝试开启/关闭  USB调试 .都无济于事. 如果PC安装了360手机助手就好办了(我的360手机助手 ...

  2. 如何从 VSS 迁移到Team Foundation Server

    TFS 2012自带了vss upgrade wizard工具, 在Team Foundation Server管理控制台左侧的最后一个菜单其他工具和组件中,选择Visual SourceSafe升级 ...

  3. weex Mac创建项目

    序言:本来在win 10 上创建项目真的很顺利!后来入手一个mac就从mac 上下载了最新的android studio开始搞起了weex,问题来了,weex-toolkit脚手架还是老的,我觉得是w ...

  4. Promise事件比timeout优先

    Promise, setTimeout 和 Event Loop 下面的代码段,为什么输出结果是1,2,3,5,4而非1,2,3,4,5?(function test() { setTimeout(f ...

  5. 特性(attribute)

    一.什么是特性? 特性(attribute)是被指定给某一声明的一则附加的声明性信息. 在C#中,有一个小的预定义特性集合.在学习如何建立我们自己的定制特性(custom attributes)之前, ...

  6. .NET MVC 过滤器使用

    来看以下两种情况 1. 如果我们需要对某个模块做权限控制,通常的做法是写一个基类(BaseController),让这个基类继承Controller类,在BaseController的构造方法中进行权 ...

  7. GIT BRANCHING

    GIT BRANCHING generalizations Let's take a moment to review the main concepts and commands from the ...

  8. 关于Encode in UTF-8 without BOM

    定义BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码.它的编码是FEFF. 说明 在 UTF-8 文件中放置 BOM ...

  9. mysql创建表和数据库

    创建数据库,创建数据库表,例子.MySQL语句   1.创建数据库:    创建的代码:create  数据库的代码:database   数据库表名:随便起,只要自己记住就行.test create ...

  10. 初学JSON和AJAX心得透过解惑去学习

    虽然复制代码再改参数,也能正常运作.但是看懂里面语法,就可以客制成适合你自己程序.例如录制Excel巨集,会有一些赘句,这时候整合就是很重要工作. [大纲] 时间分配 AJAX Markdown教学及 ...