cs231n.stanford.edu
图像分类、目标检测、人脸识别、语义分割、风格迁移、GAN生成、VQA多模态、点云分割、姿态估计、游戏学习等
避免后期训练还在大幅震荡,可以直接在反向传播更新权重 w+=-lr * dx 时再除上一个随训练epoch不断提高的偏置,越到后期越稳定 最后模型不学习停止更新,这也是AdaGrad优化算法的思想(还能继续更新的是RMSProp,现在的主流是Adam,Adam=RMSProp+动量)
这和衰减学习率效果是一样的,这样操作可以使我们可以使用较大的学习率,前期训练的也更快
牛顿法是二阶优化算法,考虑曲率,二阶导数可以明显加快收敛的速度
知道了损失函数,牛顿法通过Hessian矩阵近似描述了平面的弯曲程度,可以直接到这个近似的最低点,收敛速度比梯度下降更快。但Hessian矩阵太大,大模型、大数据 计算不了,所以这个优化算法用不了(拟牛顿法BGFS、L-BGFS对此有优化,但还是不够 没用)
图像卷积算法的输入,可以把方向梯度直方图HOG特征也作为输入,它很好地描述了目标的表象和形状 梯度 边缘的方向密度分布
YOLO很快,它打破了主流的目标检测思想,他将检测问题直接当作回归问题来处理,这是一个很简洁的方法,训练速度很快
将全图划分为S×S的格子, 每个格子负责对落入其中的目标进行检测,一次性预测所有格子所含目标的边界框、置信度、以及每一类预测分类的评分
缺点就是输出数量有限制 很小的识别不到,但综合来看,它还是特别好的
Object Detection code links:
R-CNN
(Cafffe + MATLAB): https://github.com/rbgirshick/rcnn
Probably don’t use this; too slow
Fast R-CNN
(Caffe + MATLAB): https://github.com/rbgirshick/fast-rcnn
Faster R-CNN
(Caffe + MATLAB): https://github.com/ShaoqingRen/faster_rcnn
(Caffe + Python): https://github.com/rbgirshick/py-faster-rcnn
YOLO
http://pjreddie.com/darknet/yolo/
最好优化算法使用torch.optim.LBFGS
因为风格迁移的数据集不大,这是一个用单张图的很好的优化问题,只要做后向传播就好了,所以很适合用LBFGS的应用场景,二阶的办法会比Adam好很多
一个式子快速理解LSTM
torch一键安装,灵活性更高,并且可以手动定义覆写各种模型和前后传播 适合研究,还有各种预训练模型 适合fine-tuning
torch底层是lua语言,它是专门写嵌入式相关的所以很高效,实时编译 循环很快
tensorflow是完全由工业界主导的框架,所以更好的用于生产,更好的编码质量和测试覆盖,还可以可视化计算图等 tensorboard可视化调试工具,很好的支持多GPU 分布式并行 并且通信直接计算更有效率。
但缺点是,安装还有各种报错太多,并且没什么预训练模型,源码也很复杂难懂,适用于不需要怎么创新的工业应用稳定的