在微博上见过很多好资料,可是以前一直没有时间好好看,都只能先转发或者收藏,最后一个学期,一定要先把这些库存一点点清掉。
——————————————————————————————————————————
1.0 卷积神经网络CXXNET
@陈天奇怪 和 @antinucleon 完成的卷积神经网络代码 cxxnet(核心2k代码)和 GPU/CPU 矩阵库 mshadow(3k代码+1k注释)
评论:
@antinucleon: 天奇伟大,跟着大神受益匪浅。mshadow设计精巧,完美统一了CPU和GPU编程。依赖mshadow,cxxnet里一个Layer平均10行。在我的780 GTX上训练ImageNet可以达到211pic / sec的速度
@李沐M:建议 typedef Tensor<gpu,2> GPUMatrix 之类,直观一点。构造函数应该可以不用Shape2吧,直接丢进数字会更方便点?
@陈天奇怪:回复@李沐M: 因为所有的dimension的tensor都是同一个模板实现的,直接丢数字还真不知道怎么搞..或许cxx11的intializer list可以
@李沐M:回复@陈天奇怪: O网页链接 c++11或者boost都行。不过如果你用了c++11就意味着对gcc版本有要求了
@陈天奇怪:回复@李沐M: 其实Tensor<gpu,x>也有好处,在写代码的时候可以直接take一个模板xpu然后输入参数是Tensor<xpu,x>,然后写出来的代码cpu,gpu都可以用。
@yuzzzzzzzzz:基于这个实现的CNN和caffe比效率哪个高呢?
@陈天奇怪:回复@yuzzzzzzzzz: 在效率上应该是没有什么差别,因为最终编译出来的代码应该差不多。差别是用mshadow实现的时候写公式而不是直接写CUDA kernel。
卷积神经网络代码 cxxnet 地址
GPU/CPU矩阵库 mshadow 地址
——————————————————————————————————————————
2.0 CUDA-CONVNET2.0
谷歌Alex Krizhevsky 写了一篇在GPU集群并行Convolutional Neural Network的文章并公布了源代码
Paper:One weird trick for parallelizing convolutional neural networks
地址
code地址 (PS:据说google要关闭code.google.com了)
之前看过Alex的cuda-convnet1.0的代码,表示很痛苦,粗粗看了一下2.0,代码确实整洁多了。
——————————————————————————————————————————
3.0
卷积神经网络总结 代码与论文
——————————————————————————————————————————
4.0
My deep learning reading list
主要是顺着Bengio的PAMI review的文章找出来的。包括几本综述文章,将近100篇论文,各位山头们的Presentation。全部都可以在google上找到。
BTW:由于我对视觉尤其是检测识别比较感兴趣,所以关于DL的应用主要都是跟Vision相关的。在其他方面比如语音或者NLP,很少或者几乎没有。个人非常看好CNN和Sparse Autoencoder,这个list也反映了我的偏好,仅供参考。
评论:
@夏粉_百度:个人建议通过读一些材料后,掌握深度学习本质后(比如能说清楚它的优缺点,在理论体系中的坐标位置),少量时间用于更新进展,更多时间应该花在思考上,比如如何改进和应用。我们提出的首个大规模稀疏特征上的深度学习算法DANOVA就是不断思考的结果,比人工特征效率提升千倍。欢迎加入[email protected]
@阿邦dd:回复@图像视觉研究:直接跑他们的代码吧。。觉得dl文章那么多,也就是从imagenet那篇开始成为state-of-art的,在之前的dl方法,性能都不行
@图像视觉研究:回复@阿邦dd:确实,现在是边看文章边研究代码,收获比光看文章要大很多
——————————————————————————————————————————
5.0
LDA工程实践之算法篇-2 SparesLDA
标准 LDA 算法中的Gibbs Sampling 算法实际上采样的时候速度太慢, 这就是为什么学者基于 LDA 模型的稀疏性给出了 SparseLDA 算法,在速度上可以比标准采样方法要快几十倍,所以在工业应用中当然应该要实现 Sparse 的算法。
——————————————————————————————————————————
6.0
@张栋_机器学习
这篇文章是我读过的最好的机器学习文章之一:总结了 “机器学习实践中学到的 12 条教训” 这些教训在任何教课书里都无法学到,只有在实践和具体应用中能体会到,非常珍贵!
@龙星镖局 Domingos 可是机器学习领域的大拿,他的很多工作也都是比较实用的,比如Markov Logic,meta-cost,Sum-Product Networks 等等。 另外,清华大学@刘知远THU 研究员翻译的中文版也很到位。
Pedro Domingos. A Few Useful Things to Know about Machine Learning.
论文地址:http://vdisk.weibo.com/s/hxqSZfjTE0X
翻译版本:机器学习的那些事 译者:刘知远
译文地址:http://www.360doc.com/content/13/1020/18/7673502_322833764.shtml
——————————————————————————————————————————
7.0
《用 Python 和 OpenCV 检测图片上的条形码》正规商品的包装上都会有条形码,有想过自己写一个程序/算法来检测识别图形码么?
——————————————————————————————————————————
8.0
@梁斌penny:
过拟合一部分原因和训练数据少,抽样不好有关,一部分和模型变量数量有关,还有一部分和模型本身有关,比如线性模型不容易过拟合,非线性的就容易。最后其实可以利用过拟合,堵不如疏,多个过拟合的model就好像多个有偏见的人,把他们ensemble好就行了,此乃君王治国,厂长制厂之道啊。
@南大周志华:
Ensemble在做理论分析的时候通常是假设弱学习器。至于过拟合的作用,20年前就有研究,见Solich和Krogh的95年著名文章Learning with ensembles: How overfitting can be useful,他们不是你说的美军,是欧洲军
@龙星镖局:建议读 地址
@硅谷猎头TomZhang:把样本分为10份,随机用9份训练,剩下1份校核,做十次试验,解决小样本问题
@梁斌penny:回复@硅谷猎头TomZhang:是的,你说的这个是一种常用方法10-fold
@SMTNinja:回复@硅谷猎头TomZhang: 你说的是 10-fold cross validation. 这只能解决由训练数据分隔方法不同所导致的对模型好坏判断不准确的问题. 这和过拟合不是一个问题..
@为娶白富美发SCI:弱弱的问下梁博,集成学习由多个弱学习模型组成,那过拟和是不是指强学习模型呢,这样会不会冲突?
@梁斌penny:回复@为娶白富美发SCI:你不要拘泥于美军的东西,弱学习可以ensemble,过拟合的model为什么不能ensemble。。只要数量足够多,就相当于投票嘛
——————————————————————————————————————————
9.0
@曹胖胖要减肥
给大家推荐两个机器学习课程,log实验室年度呕心沥血之作,张志华老师在交大IEEE班和ACM班机器学习课程全纪录
统计机器学习 地址
机器学习导论 地址
@陈天奇怪: 不错,似乎比较偏向统计和Bayesian
——————————————————————————————————————————
10
@王威廉
如何欺骗一个深度学习模型?怀俄明大学三位科学家写了一篇文章,告诉你如何可以故意向state-of-the-art的ImageNet深度学习模型输入人类无法识别的图像,却得到99%确信度的图像类别输出。