zoukankan      html  css  js  c++  java
  • 深度学习-面试

    但是一般写程序的时候,我们想直接在test时用   , 这种表达式。(where  ) 

    因此我们就在训练的时候就直接训练  。 所以训练时,第一个公式修正为    。 即把dropout的输入乘以p 再进行训练,这样得到的训练得到的weight 参数就是  ,测试的时候除了不使用dropout外,不需要再做任何rescale。Caffe 和Lasagne 里面的代码就是这样写的。

     面试一些题目:

    时间复杂度:O(T*n*k*m)

    n:元素个数,k:第一步中选取的元素个数,m:每个元素的特征项个数,T:第5步中迭代的次数

    batch norm的作用:

    全连接层后,激励层前

    a)避免训练过程中网络层落入饱和区导致的梯度消失,加快网络训练

    b)减少对初始值的依赖

    c)实际是一种正则化,减少对dropout的需求

    dropout层

    a)别让神经元记住太多东西,有一种泛化能力

    b)每次关掉一部分感知器,得到一个新的模型,做融合,不听一家之言

    防止过拟合:

    a)数据扩充(resize 256*256 随机裁剪227*227,水平翻转)

    b)dropout

    c)正则化 weight_decay

    d)early stop

    正则化能够解决过拟合

    偏差和方差之间的一个tradeoff

    5次多项式比2次多项式复杂,正则化是一种控制模型复杂度的一种方法

    梯度下降迭代的不动点(梯度为0的点)有三类——极大值,极小值,鞍点

    极小值!=最小值

    鞍点saddle point)的数学含义是:目标函数在此点上的梯度(一阶导数)值为 0但从改点出发的一个方向是函数的极大值点,而在另一个方向是函数的极小值点。

    1.梯度下降能找到函数极小值。
    2.能找到极小值的原因是负梯度方向是函数值最速下降方向。(泰勒展开)
    3.想要用梯度下降找到最小值要求是凸函数。
    4.1如果不是凸函数,要么把目标函数近似成凸函数
    4.2.或者用一些智能优化算法例如模拟退火,以一定的概率跳出局部极值,但是这些算法都不保证能找到最小值。

     

    对批量梯度下降法和随机梯度下降法的总结:

    批量梯度下降---最小化所有训练样本的损失函数,使得最终求解的是全局的最优解,即求解的参数是使得风险函数最小,但是对于大规模样本问题效率低下。

    随机梯度下降---最小化每条样本的损失函数,虽然不是每次迭代得到的损失函数都向着全局最优方向,但是大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近,适用于大规模训练样本情况。

  • 相关阅读:
    weka 文本分类(1)
    python 笔记1
    PAT乙级 1028. 人口普查(20)
    PAT乙级 1027. 打印沙漏(20)
    PAT乙级 1026. 程序运行时间(15)
    Eclipse常用快捷键
    MyBatis源码分析(各组件关系+底层原理
    springmvc异常处理
    Elasticsearch学习(一)————简单命令
    mybatis传入参数类型parameterType详解
  • 原文地址:https://www.cnblogs.com/wuxiangli/p/7192217.html
Copyright © 2011-2022 走看看