zoukankan      html  css  js  c++  java
  • 模型数据和容量

    神经网络虽然看上去像一个黑盒子,实际上它的边边角角的超参数决定了这个神经网络的特性。

    根据神经网络的输入输出,凭借洞察力可以看穿这个黑盒子内部的数据流动情况。

    当发现浅层网络效果差时,直觉告诉我,特征可能需要进行多步处理,所以要加深神经网络。

    当加深神经网络之后,发现梯度难以反向传播的到最开始的几层,导致前几层参数更新缓慢。

    有人说,使用受限玻尔兹曼机逐层训练。
    有人说,使用resnet让前一层跟后一层进行直连。
    有人说,使用LSTM设置一个状态,其实也相当于上一层的信息穿透当前层,传到下一层。
    有人说,使用net2net。先训练一个小型网络,让这个小型网络慢慢变深、变大。
    有人说,sigmoid激活函数导致梯度容易消失,改成relu试试。有人说,relu的负半轴信息丢失了,改成leaky relu试试。

    当加深神经网络之后,有人凭借敏锐的直觉猜测层与层之间的数据分布在不停变化,导致过去学到的知识变得无用,从而影响收敛速度。于是有了BatchNormalizetion。

    全连接表达能力虽强,但是表达力强也可能是一件坏事。只有当模型容量和数据大小相匹配的时候,才能达到最好的效果。

    如果模型偏小,数据太多,那就要加深、加大网络规模。
    如果数据偏小,模型需要大些,那就需要多弄些数据,这就是数据增强。

    CNN、RNN、胶囊网络、Dropout都是在对全连接做减法,效果都有提升。这说明表达力强不一定是好事,也能造成额外的干扰。模型结构的精简本身就是一种“先验”知识。而神经网络+先验知识往往是奇迹发生的地方。吴恩达说过一句话:神经网络不是盛放数据的管道,而是一个可以被数据变形的雕塑。

    在训练神经网络时,最后一层如果不加上softmax就会参差不齐,有的样本梯度改变太大,有的样本梯度改变太小,学习率都无法挽救回来,所以softmax是必须要有的。最后一层不要使用其它方式进行激活、只能使用softmax激活。

    提到数据增强,不同的信息媒介有不同的数据增强方式。文本、语音、图像各有各的数据增强方式。数据增强其实就是构造若干种变换,使得这些变换作用之后不影响数据的固有标签。图像数据的增强包括各种翻转、旋转、错切、变色等。文本的数据增强方式包括重写、易位(汉语的语序对于句子的意思影响很小)。

    以前我一直有一个错误观点,认为模型越大越好。实际上这种观点是错误的,大模型在小数据下不仅容易过拟合,也很容易不收敛。

    庄子《逍遥游》说:“且夫水之积也不厚,则其负大舟也无力。覆杯水于坳堂之上,则芥为之舟,置杯焉则胶,水浅而舟大也。风之积也不厚,则其负大翼也无力。”。

    如果说数据是船,模型是水,模型必须得要足够大才能容纳下大量的数据。
    如果说数据是水,模型是船,数据必须要足够多才能够把干瘪混乱的模型支撑起来。

    模型太小,数据太多,犹如天资愚钝之人学习大量知识。学的过程中,他总是像狗熊掰棒子,捡起了这一个丢了那一个,处在永恒的波动之中,一直来回震荡,不知道自己应该何去何从,在海量的知识面前迷失了自我。即便是降低学习率,让这个蠢人心态平静一些,这个蠢人初时会有进步,但是学习一段时间之后又会遇到瓶颈,水平无论如何也无法提升上去。这时如果再让他平静一些,学习率低一些,这个蠢人就会变得越来越麻木,学习率趋近于0了,最终只能是更加过拟合,成长空间依旧有限。

    模型太大,数据太少,犹如聪明人做数学题。若是蠢人尚且会去寻找样本之间的规律,来减少自己的记忆负担。聪明人则一拍脑袋,这么简单的问题,打表、暴力就可以解决了。聪明人根本不去仔细思索这些数据,导致数据略微变形,他就无法理解,最终显得他反倒不如蠢人聪明。而实际上,蠢人只是爱惜脑容量,不肯自己硬背、对知识有自己的理解罢了。

    神经网络犹如澎湃大海,浪花此起彼伏。倘若盯着细节观察,永远也发现不了规律。神经网络本身就是一种科学,一种神奇的凭直觉的科学。

  • 相关阅读:
    Java 给Word指定字符串添加批注
    Java 打印Word文档
    Java 在PDF中添加页面跳转按钮
    C# 添加、修改、删除Excel图表数据标签
    C# 添加、读取、删除Excel文档属性
    Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行
    【Luogu5348】密码解锁(莫比乌斯反演,数论)
    AtCoder Grand Contest 015
    AtCoder Grand Contest 014
    Codeforces Round #556 (Div. 1)
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/9795697.html
Copyright © 2011-2022 走看看