对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. centos7如何使用yum命令

    参照https://www.cnblogs.com/zhongguiyao/p/9029922.html 参照https://blog.csdn.net/shuaigexiaobo/article/d ...

  2. 关于Django部分

    1  安装 执行pip安装即可 pip install Django 2 开启项目 3 项目新建后所在位置: 4 开启端口命令 python manage.py runserver 0.0.0.0:9 ...

  3. Java异常学习总结二

    异常的处理方式 方式一:捕获异常(try-catch-finally) 捕获异常是通过三个关键词来实现的:try-catch-finally.用try来执行一段程序,如果出现异常,系统抛出一个异常,可 ...

  4. JAVA使用log4j(另SSM框架中使用log4j)

    1.引入jar包 log4j-1.2.13.jar 2.src下建立配置文件:log4j.properties #不+All,只写后一种LOG log4j.rootLogger =ALL,system ...

  5. 可空类型(Nullable)

    C# 单问号 ? 与 双问号 ?? ? : 单问号用于对 int,double,bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 NullAble 类型的. ...

  6. linux如何复制文件夹和移动文件夹

    linux下文件的复制.移动与删除命令为:cp,mv,rm一.文件复制命令cp 命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination)cp [option ...

  7. first*php*self*

    要完成一个简单的php程序,首先就是要分析一下要完成所需要实现哪些功能,以及页面的整体布局,以及会涉及到的一部分数据库的函数以及SQL语句. 今天自己简要做了一个php程序,拿到手后就开始创建所能用到 ...

  8. Android 开发 创建WiFi、WiFi热点 ---开发集合

    WIFI 权限 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> < ...

  9. ORA-20011 问题处理

    今天巡检发现alert中报如下错: ORA-20011: Approximate NDV failed: ORA-29913: error in executing ODCIEXTTABLEOPEN ...

  10. 【学习】基础知识:数组和矢量计量【Numpy】

    Numpy是高性能科学计算和数据分析的基础包.功能如下: ndarray 一个具有矢量算法运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环) 用于读 ...