cnn 调参经验。

调参资料总结
Neural Network: Trick of the Trade  Neural Networks: Tricks of the Trade
Practical Recommendations for Gradient-based Training of Deep Architectures  arxiv.org/abs/1206.5533


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

Deep Learning for Vision: Tricks of the Trade Marc’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 Deeplearning4j deeplearning4j 的 googlegroups 也很推荐。这篇其实干货不多,但是也有一些了。包括对于训练的理解,并不全是干货般的总结。

Suggestions for DL from Llya Sutskeve Hinton 亲传弟子介绍深度学习的实际 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 Practice Uber 的 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 Tricks L 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 MapReduce NIPS’14 的论文,简单并行化 LBFGS里面的双循环(最耗时,计算量巨大)。

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

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

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

Large-Scale High-Precision Topic Modeling on Twitter Twitter 高级研究员的 KDD’14论文。有不少实用技巧,比如短文本特征,LR结果概率化修正,正样本抽样,PU学习后负样本选取。
### MATLAB 中 CNN 的超参数调节方法与技巧 在 MATLAB 中,卷积神经网络(CNN)的性能很大程度上依赖于其超参数的选择。以下是对如何在 MATLAB 中进行 CNN 超参数调节的方法和技巧: #### 1. **选择合适的工具箱** MATLAB 提供了 Deep Learning Toolbox 来支持深度学习模型的设计、训练和评估。如果用户的英语水平有限,建议下载更高版本的 MATLAB,因为新版本通常会提供更多中文帮助文档和支持[^1]。 #### 2. **理解超参数的作用** 在调整超参数之前,必须清楚每个超参数的具体作用及其对模型的影响。例如,在 `trainNetwork` 函数中常用的超参数包括: - 学习率 (`InitialLearnRate`):初始的学习速率决定了权重更新的速度。 - 动量系数 (`Momentum`):用于加速梯度下降方向上的收敛速度。 - 批大小 (`MiniBatchSize`):每次迭代使用的样本数量。 - 正则化因子 (`L2Regularization`):防止过拟合的重要手段之一。 对于更复杂的场景,还可以考虑使用自适应学习率技术,这可以通过设置 `'Solver'` 参数为 `'adam'` 或其他优化算法来实现[^2]。 #### 3. **手动调整 vs 自动调参** ##### 手动调整 用户可以根据经验或实验逐步修改上述提到的关键超参数,并观察它们对验证集精度的影响。这种方法虽然耗时较长,但对于初学者来说是一个很好的实践机会。 ##### 自动调参 为了提高效率,MATLAB 还提供了 Bayesian Optimization 等自动调优功能。通过指定可变范围内的多个候选值,Bayesian Optimizer 将尝试寻找最优组合。启用此特性只需简单配置如下选项即可: ```matlab options = trainingOptions('sgdm', ... 'MaxEpochs', 30, ... 'ValidationData', validationSet, ... 'ValidationFrequency', 5, ... 'Verbose', false, ... 'Plots', 'training-progress',... 'OptimizeHyperparameters',{'InitialLearnRate','L2Regularization'},... 'HyperparameterOptimizationOptions',struct(... 'AcquisitionFunctionName','expected-improvement-plus',... 'ShowPlots',true,... 'MaxTime',60)); net = trainNetwork(trainingImages,layers,options); ``` #### 4. **利用预定义架构简化流程** 当面对特定任务如目标检测时,可以直接采用官方推荐的数据集及相应网络结构作为起点。比如针对遥感图像的目标识别问题,可以参考 DOTA 数据集中给出的标准做法[^4]。 #### 5. **结合经典控制理论改进效果** 除了纯粹依靠机器学习方法外,有时也可以引入传统工程领域里的思路来进行辅助调控。像 LQR 和 PID 控制策略就被成功应用于某些动态系统的建模当中[^5]。尽管这些概念最初并非专为 DL 设计而生,但在适当条件下仍能发挥意想不到的效果。 --- ### 示例代码片段 以下是基于 SGDM 求解器的一个基本 CNN 构造实例以及相应的超参数设定演示: ```matlab layers = [ imageInputLayer([28 28 1]) convolution2dLayer(5,20) batchNormalizationLayer reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(10) softmaxLayer classificationLayer]; maxEpochs = 20; miniBatchSize = 128; options = trainingOptions('sgdm', ... 'InitialLearnRate', 0.01, ... % 初始学习率 'LearnRateSchedule', 'piecewise', ... % 分阶段降低学习率 'LearnRateDropFactor', 0.1, % 下降倍数 'LearnRateDropPeriod', 5, % 多少轮之后开始衰减 'MaxEpochs', maxEpochs, % 总共训练多少次 'MiniBatchSize', miniBatchSize, % 单批次处理图片数目 'Shuffle', 'every-epoch', % 是否打乱顺序 'ValidationData', imdsValidation, % 验证数据集合 'ValidationFrequency', 30, % 每隔几步做一次检验 'Plots', 'training-progress'); % 显示进度图表 % 开始训练过程 convnet = trainNetwork(imdsTrain, layers, options); ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值