caffe调参经验资料文章

本文汇总了深度学习领域的专家如Yann LeCun、Yoshua Bengio和Geoffrey Hinton等人的调参建议,涵盖了从《神经网络训练中的Tricks之高效BP》到《深度学习在视觉领域的技巧》等多个经典书籍与文章。内容涉及调参资料总结、神经网络训练技巧、优化策略、DL调参技巧、RNN性能优化、CNN数据处理、训练小技巧、BP算法高效实现、深度学习实际tricks、RNN性能设置、神经网络最佳实践、特征工程选择等多方面,为深度学习领域提供了宝贵的实践指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

调参是个头疼的事情,Yann LeCun、Yoshua Bengio和Geoffrey Hinton这些大牛为什么能够跳出各种牛逼的网络?
下面一些推荐的书和文章:调参资料总结

Neural Network: Trick of the Trade

Practical Recommendations for Gradient-based Training of Deep Architectures

神经网络训练中的Tricks之高效BP(反向传播算法) 翻译文章。神经网络训练中的Tricks之高效BP(反向传播算法),来自与于《Neural Networks: Tricks of the Trade》一书第二版中的第一章 Efficient BackProp 的部分小节。

Deep Learning for Vision: Tricks of the TradeMarc’Aurelio Ranzato 在 CVPR 上 的 presentation slides/talk(Youtube 等地方可以搜到)。caffe 作者之一贾扬清推荐。涉及到了许多 DL 的调参技巧(在 slides 比较靠后的地方)

Optimizing RNN performance百度 Silicon Valley AI Lab 的分享,现在主要是 GEMM 的性能优化,以后还会有并行 GPU,GRU 和 LSTM 的实现技巧等……

Must Know Tips/Tricks in Deep Neural Networks来自 NJU LAMDA 实验室的 Xiu-Shen Wei 的总结,主要集中于 CNN,包括各种数据处理上可能带来的性能和表现的差异。图表丰富,有理有据。

训练深度神经网络的时候需要注意的一些小技巧这篇是综合翻译,没给出都从哪节选的。我收集的英文版在下面:

Training Tricks from Deeplearning4jdeeplearning4j 的 googlegroups 也很推荐。这篇其实干货不多,但是也有一些了。包括对于训练的理解,并不全是干货般的总结。

Suggestions for DL from Llya SutskeveHinton 亲传弟子介绍深度学习的实际 tricks,包括data, preprocessing, minibatches, gradient normalization, learning rate, weight initialization, data augmentation, dropout和ensemble。

Efficient Training Strategies for Deep Neural Network Language Models讨论了如何设置 batch-size, initial learning rate, network initialization,但最有趣的结论应该是:普通的 deep feed-forward architecture比recurrent NN 在 model long distance dependency 效果和效率都更好。

Neural Networks Best PracticeUber 的 data scientist 写的。比如: Rectifier is becoming popular as an activation function. However, I find its theory dubious and my experiments have not shown that it is always better. That said, I’m experimenting with new activation functions. (Little trivia: I’m borrowing many ideas from my graduate work in computational wave propagation.)

How transferable are features in deep neural networks?也是争议比较大的一篇文章,finetuning 有一定帮助,但是不够细致。

Dark Knowledge from Hinton有心人整理的 Hinton 提到的 Dark Knowledge 的一些资源。

Stochastic Gradient Descent TricksL eon Bottou 写的 Stochastic Gradient Descent Tricks 挺好,做工程也要做的漂亮。

Advice for applying Machine Learning主要集中在如何观察数据来选择方法。

How to Debug Learning Algorithm for Regression Model主要都是讲回归中遇到的各种“预期不符”的结果。配合 ESL 第二章和第三章内容看效果加成。

Large-scale L-BFGS using MapReduceNIPS’14 的论文,简单并行化 LBFGS里面的双循环(最耗时,计算量巨大)。

特征工程选择系列特征工程系列文章:Part1.单变量选取 Part2.线性模型和正则化 Part3.随机森林 Part4.稳定性选择法、递归特征排除法(RFE)及综合比较。有 Python 代码。

机器学习代码心得之有监督学习的模块 机器学习代码心得之迭代器和流水处理新一代大神微博@陈天奇怪 的系列文章,有兴趣的直接顺着看吧。

STOCHASTIC GRADIENT BOOSTING: CHOOSING THE BEST NUMBER OF ITERATIONSKaggle 达人 YANIR SEROUSSI 告诉你如何选择 Stochastic Gradient Boosting 的训练最佳 iteration 超参数。不过我比较存疑,因为如果条件允许,当然迭代的越多越好……

Large-Scale High-Precision Topic Modeling on TwitterTwitter 高级研究员的 KDD’14论文。有不少实用技巧,比如短文本特征,LR结果概率化修正,正样本抽样,PU学习后负样本选取。

一些地址:

Efficient BackProp (Neural Networks: Tricks of the Trade, 2nd)

http://blog.youkuaiyun.com/zouxy09/article/details/45288129

Deep Learning for Vision: Tricks of the Trade(CVPR. Marc’Aurelio Ranzato)

http://bavm2013.splashthat.com/img/events/46439/assets/34a7.ranzato.pdf

Optimizing RNN performance (Silicon Valley AI Lab)

Must Know Tips/Tricks in Deep Neural Networks(NJU LAMDA, Xiu-Shen Wei)

Training Tricks from Deeplearning4j

http://deeplearning4j.org/trainingtricks.html

Suggestions for DL from Llya Sutskeve

Efficient Training Strategies for Deep Neural Network Language Models

Neural Networks Best Practice

Dark Knowledge from Hinton

Stochastic Gradient Descent Tricks(Leon Bottou)

http://leon.bottou.org/publications/pdf/tricks-2012.pdf

Advice for applying Machine Learning

https://jmetzen.github.io/2015-01-29/ml_advice.html

How to Debug Learning Algorithm for Regression Model

http://vitalflux.com/machine-learning-debug-learning-algorithm-regression-model/

Large-scale L-BFGS using MapReduce

Selecting good features

– Part I: univariate selection: http://blog.datadive.net/selecting-good-features-part-i-univariate-selection/ – Part II: linear models and regularization:http://blog.datadive.net/selecting-good-features-part-ii-linear-models-and-regularization/ – Part III: random forests: http://blog.datadive.net/selecting-good-features-part-iii-random-forests/ – Part IV: stability selection, RFE and everything side by side:http://blog.datadive.net/selecting-good-features-part-iv-stability-selection-rfe-and-everything-side-by-side/

机器学习代码心得之​有监督学习的模块

http://www.weibo.com/p/1001603795687165852957

Stochastic Gradient Boosting: Choosing the Best Number of Iterations

Large-Scale High-Precision Topic Modeling on Twitter

H2O World - Top 10 Deep Learning Tips & Tricks - Arno Candel

http://www.slideshare.net/0xdata/h2o-world-top-10-deep-learning-tips-tricks-arno-candel

How To Improve Deep Learning Performance: 20 Tips, Tricks and Techniques That You Can Use To Fight Overfitting and Get Better Generalization

http://machinelearningmastery.com/improve-deep-learning-performance/

Neural Network Training Speed Trick

https://medium.com/machine-learning-at-petiteprogrammer/neural-network-training-speed-trick-92d6b22a7754#.4v6qukpn7

### 关于NULL的理解 在C语言中,`NULL` 是一个特殊的宏定义,其本质是一个值为 `0` 的指针。这里的 `0` 并不是一个普通的整数零,而是一个特定的内存地址——即 **空地址** 或者称为 **零地址**[^1]。 具体来说,在不同的编程环境中,`NULL` 可能有不同的实现方式。例如: - 在 C++ 中,通常会简单地将 `NULL` 定义为 `0`。 - 而在纯 C 环境下,则可能将其定义为 `(void*)0`,这表明它是一个指向 `void*` 类型的特殊指针[^2]。 #### NULL的实际意义 当程序员使用 `NULL` 来初始化或者赋值给某个指针时,实际上是在告诉该指针不指向任何有效的内存位置。这种做法有助于防止程序尝试访问非法或未分配的内存区域从而引发崩溃或其他不可预测的行为。 然而需要注意的是,如果试图解引用一个被设置成 `NULL` 的指针(比如通过此指针对其所假设存在的对象执行操作),大多数现代操作系统都会触发保护机制并抛出异常—这就是所谓的“段错误(segmentation fault)”现象。 下面展示如何安全地处理涉及 `NULL` 的情况的一个例子: ```c #include <stdio.h> #include <stdlib.h> int main() { int *p = NULL; // 正确地声明了一个初始为空(null)状态下的整型指针 if (p != NULL){ printf("%d\n", *p); } else{ puts("Pointer is null, cannot dereference."); } return EXIT_SUCCESS; } ``` 上述代码片段展示了良好的实践方法:总是先检查指针是否非空再对其进行进一步的操作。 ### Fast R-CNN学习资源推荐 对于希望深入研究Fast R-CNN算法及其应用的人来说,可以从以下几个方面入手获取相关资料和笔记: 1. 原论文阅读:“Rich feature hierarchies for accurate object detection and semantic segmentation.” 这篇由Ross Girshick等人发表的文章详细介绍了R-CNN系列模型的基础理论框架以及改进版本Fast/Faster R-CNN的设计思路。 2. GitHub项目探索:许多开发者基于原始研究成果开发出了开源实现库,这些仓库不仅包含了完整的源码还附带详细的文档说明。例如官方caffe实现或者其他社区贡献如PyTorch迁移版等都是非常宝贵的第一手参考资料。 3. 博客文章总结:网络上也有不少个人撰写的教程类博文专门讲解Fast R-CNN的工作原理、训练流程还有调参技巧等内容,适合初学者快速入门的同时也能帮助有一定基础的人巩固知识点。 4. MOOC课程观看:一些知名大学开设的数据科学/机器视觉方向在线教育平台提供了系统的授课视频材料覆盖到目标检测领域内的经典技术包括但不限于Fast R-CNN家族成员们。 5. 技术论坛交流讨论:像Stack Overflow,Cross Validated这样的问答网站聚集了大量的专业人士可以就遇到的具体问题寻求解答;另外Reddit子板块r/MachineLearning也是分享心得体验的好地方。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值