咨询服务热线:
4008-888-888
栏目导航
重点案例
联系我们
服务热线
4008-888-888
邮箱:12345678@qq.com
传真:
地址:江苏省南京市玄武区玄武湖
当前位置:主页 > 新闻资讯 > 行业动态 >
_神经网络调试手册:从数据集与神经网络说起
浏览: 发布日期:2019-07-12

本文由机器之心编纂,“机器之心”专注生产野生智能专业性内容,适合开辟者和从业者浏览参考。面击左上角马上存眷。

克日,hackernoon 上出现了一篇题为《How to debug neural networks. Manual.》的文章,从数据散取神经收集两个圆面分享了做者 Andrey Nikishaev 正在调试神经收集圆面的理论心得。



调试神经收集是一项艰易的工做,专家也没有例中。面对数百万的参数,任何一个小变动皆大概使您半途而废。出有调试和可视化,齐部您的行动便像扔硬币,并且更糟糕的是借浪费时间。上面是我汇散的理论汇总,希看有助于您提早发明题目。


数据散题目


考试考试应用小数据散过拟合您的模子


一般去道神经收集应当正在数百次迭代中过拟合您的数据。如果您的丧掉值没有下降,那题目存正在于更深层次。


应用迭代逻辑办理题目


考试考试构建最简略的收集办理您的主要题目,接着一步一步扩大到齐局题目。好比,您正正在创坐风格迁徙收集,尾先正在一张图象上练习您的脚本迁徙风格。如果奏效,再接着创坐用于任何图象的风格迁徙模子。


使器具有扭曲的仄衡数据散


好比练习分类数据的收集,您的练习数据应当对每分类具有相同数目的输进。其他情况下则存正在分类过拟合的大概性。神经收集对于齐部的扭曲并没有是恒定稳定,是以需要您对它们举行特地练习。制制输进扭曲将会提降收集准确度。


收集容量 vs 数据散巨细


您的数据散应充足年夜,以便收集用去进建。如果您的数据散小,而收集很年夜,那末它会停行进建(某些情况下也会为年夜量的分歧输进输出相同成果)。如果您有年夜数据,而收集很小,那末您将会看到丧掉值的腾跃,果为收集容量无法存储如此多的疑息。


应用均值中间化(mean centering)


那将会从您的收集中移除乐音数据,提降练习机能,同时某些情况下有助于办理 NaN 题目。但是记着,如果您偶然序数据,那末您应当应用批而没有是齐局中间化。


神经收集题目


尾先考试考试较简略的模子


我正在很多案例中看到人们尾先考试考试一些标准的年夜型收集,好比 ResNet-50、VGG19 等,但是接着发明他们的题目经由过程唯一若干层的收集也能办理。是以如果您出有标准题目,尾先从小收集开端吧。您增加的数据越多,模子便越易练习,是以从小收集开端会更省时。您也应当记着,年夜收集需要更年夜的内存取更多的操做。


可视化是必需的


如果您正应用 TensorFlow,一定要从 TensorBoard 开端。如果出有,考试考试为您的框架觅找一些可视化工具,或自己动脚编写。那将对于您发明练习初期阶段的题目非常有帮助。您必需可视化的工作有:丧掉值、权重直圆图、变量和梯度。如果您正正在做计算机视觉,那要一直可视化过滤器从而懂得收集实际上看到了甚么。


权重初初化


如果您错误设置权重,因为整梯度,或齐部神经元的类似更新等,您的收集将变得无法练习。一样您也应当记着权重取进建率是成对的,是以下进建率和年夜权重能够致使 NaN 题目。


对于一些收集应用 1e-2–1e-3 阁下的下斯分布初初化硬件已充足。


对于深度收集那毫无用处,果为您的权重相相互乘了很屡次,将会产生几乎消除反背流传上的梯度的非常小的数值。多盈了 Ioffe 和 Szegedy,现正在我们有了批回一化,减缓了使人头痛的年夜量题目。


应用标准收集办理标准题目


存正在年夜量的预练习模子,您能够准确应用它们。正在一些情况中是那样,或您能够应用调剂技巧勤俭练习时间。主要的念法是绝年夜多数收集容量对于分歧题目是相同的。好比,如果我们讨论计算机视觉,它将会包露对于齐部图象一样的线、面、角,并且您没有需要再练习它们。


把衰减用于进建率


那几乎每次皆会给您一个提降。TensorFlow 中有年夜量的分歧衰减调剂器(https://www.tensorflow.org/versions/r0.12/api_docs/python/train/decaying_the_learning_rate)。


应用网格搜刮、随机搜刮或设置装备摆设文件调剂超参数


没有要试图脚动调剂齐部参数,那很耗时,效率低下。我经常应用齐局设置装备摆设调剂齐部参数,并正在运转完检查成果后看看正在哪一个偏偏背上应当进一步骤查。如果谁人圆法出有帮助,您能够试一下随机搜刮或网格搜刮。


激活函数



1. 梯度消掉题目


一些激活函数,好比 Sigmoid 和 Tanh 正正在遭遇饱和题目。正在其极限时,它们的导数接近于整,那将会消除梯度和进建过程。是以检查分歧的函数比较好。现正在标准的激活函数是 ReLU。一样那一题目也出现正在一个非常深度或轮回的收集中,好比您有 150 层,齐部的激活值是 0.9,那末 0.9¹⁵⁰ = 0,000000137。但是正如上文所道,批回一化将有助于办理那一题目,残好层也是。


2. 没有是整均值的激活值


好比 Sigmoid、ReLU 函数便没有是整均值的。那意味着练习时代齐部您的梯度将齐部是正或背,并会引发进建题目。那便是为甚么我们应用整均值的输进数据。


3. Dead ReLUs


标准的 ReLU 函数也没有完好。对于背数 ReLU 给出整的题目意味着它们将没有会被激活,是以您的神经元的某些部分将会死掉并永没有再用。那之以是能产生是果为下进建率和错误的权重初初化。如果参数调剂出有帮助,那末您能够试一下 Leaky ReLU、PReLU、ELU 或 Maxout,它们出有那一题目。


4. 梯度爆炸


那一题目取梯度消掉相同,除却每步梯度变的越去越年夜。一个主要的办理办法是应用梯度剪裁,为梯度设置基本的硬限制。


深度收集的准确度升级


从一些面上真正深化收集的题目开端表现为一个坏脚机,是以删加更多层降低了收集准确度。办理办法是应用残好层把输进的一些部分传递到齐部层。



本文天面:https://hackernoon.com/how-to-debug-neural-networks-manual-dc2a200f10f2




联系电话:4008-888-888邮箱: 传真:
地址:江苏省南京市玄武区玄武湖
备案号:苏ICP12345678
技术支持:sue