zoukankan      html  css  js  c++  java
  • 谈谈如何训练一个性能不错的深度神经网络

    谈谈如何训练一个性能不错的深度神经网络

    深度学习大火,将各个数据集的state of the art不断地刷新,到了开源代码一放出,有种全民皆可刷排名的节奏。

    不过可别把刷数据想的那么简单,不然大家去哪发paper,怎么混饭吃= = 但是我不想发paper就想占坑刷数据怎么办,看到cifar10都尼玛刷到了95%了,我这用caffe自带的小demo才得出78%的结果,caffe你确定不是在骗我?

    caffe确实没在骗你= =今天我给大家介绍一下如何刷出一个性能接近paper的神经网络

    以CNN为例,基本分为三步:

    第一步使用leaky relu,dropout(具体参见blog.kaggle.com/2015/01/02/cifar-10-competition-winners-interviews-with-dr-ben-graham-phil-culliton-zygmunt-zajac/

    第二步,数据扰动,将数据上下左右平移,放大缩小,泛绿,泛红,反色等等,做很多的合理的扰动,

    第三步,固定步长学习,直到训练不动,找一个高精度的solverstate作为起点,将学习率下降再训练,按理说降到1e-4就训练的差不多了

    其实当你研究多了就发现,真正提高性能的还是第二步,其他的只能说是锦上添花,数据扰动才是根本,当然这也揭示了分类器本身的缺陷。

    当然了,有人问,你网络结构还没给呢,这个嘛,paper跟实验接触多了,自己自然就会设计了,我倒是觉得网络结构不是主要的,因为CNN的致命缺陷其他分类器也都有,要解决只能说是都一起解决。

    MNIST我靠数据扰动将结果刷到了99.58%,结构很简单粗暴无脑,cifar10扰动太少只是88%,做多了上90%应该很轻松,ImageNet,呵呵,看看金连文老师微博上对百度在ImageNet上的评论你就知道我想说什么了。

    (百度把指标刷到了4.58%,主要的工作就是(1)更多的银子(144块GPU集群)(2)更大的网络(6个16层212M的模型集成)(3)更多的数据(每张图合成出上万种变化)——金连文)

  • 相关阅读:
    HTTP处理程序介绍
    c# Enum获取name,value和description
    如何成为优秀的软件人才
    关于系统设计分层
    从DLL中加载启动窗体
    摩斯密码
    休息下
    关于博文转载
    整合TextBox与Label 创建新控件EFLabelText
    ProC连接Oracle
  • 原文地址:https://www.cnblogs.com/yymn/p/4595779.html
Copyright © 2011-2022 走看看