[机器学习]-SCUT
此文用来记录自己在机器学习领域的学习进展
持续更新….
2017年11月
11月上旬
- 尝试空洞卷积(扩张卷积,Dilated Convolutions)、可变形卷积(Deformable Convolutional Networks)对表情识别是否有改进。前者变化不大,后者代码出错,尚未尝试。
- 研究Capsule第一篇论文《Dynamic Routing Between Capsules》的代码实现,并在mnist进行测试。分别是Tensorflow版本 和Keras版本
- 学习图像分割的传统方法,整理后的文档:《图像分割 传统方法 整理》
11月中旬
- 研究Capsule的第二篇论文《Matrix Capsules with EM routing》。这篇论文涉及深入的CNN原理架构及其不足之处,以及Capsule的创新点和EM在神经网络中的切入点。. 对这论文的理解及代码实现流程写在:如何看待Capsule的第二篇论文Matrix Capsules with EM Routing?
- 对CapsulesNet 进行资料整理解析,包括对CNN的不足解析及Capsule的创新。整理后的文档:CapsulesNet 的解析及整理.
- 关于人脸识别的论文:
- 特征提取之LBP(局部二值模式) 1994
- 基于Adaboost和级联的人脸检测器,称Viola-Jones检测器:简单特征的优化级联在快速目标检测中的应用. 2001
- opencv的“Haar分类器”:用对角特征Haar-like特征对检测器进行扩展。——–2002年
- DPM、LSVM目标检测——————————————————-2010年前
- MSRA在2014年的新技术 Joint Cascade Face Detection and Alignmen [ECCV 2014]
- DeepID1 CVPR 2014
- DeepID2 CVPR 2014
- DeepID2+ CVPR 2015
- CNN级联实现Viola-Jones人脸检测器 CVPR 2015
- Google的FaceNet** **CVPR 2015-03
- 人脸检测中级联卷积神经网络的联合训练 Joint Training of Cascaded CNN for Face Detection **CVPR 2016
- 详情细看自己整理的论文解析(尚未发)
2017年10月
10月上旬
- 国庆中秋8天超级长假当然是 浪~浪~狼~浪~浪~浪完就回实验室啦 = =
- 学习 Pix2Pix:基于CGAN的图片转换器,通过素描简笔图,生成完整图论文《Image-to-Image Translation with Conditional Adversarial Networks》.它的效果首页 ,keras的实现代码:github. 细读了其论文细想及在keras实现的代码。它是 参考CGAN和InfoGAN思路,改造部分模型结构实现的,开始 学习模仿代码编写。解读 .
10月中旬
- 在搞各种课程的小组大作业的前期准备。其中多媒体通信大作业准备做动漫手绘图自动上色。然后爬了700+动漫人物图片,转换成手绘图,并做成数据集。放入pix2pix相似的代码网络,跑了400次,效果惨不忍睹。大概是数据集不够大,且图片太复杂。目前转为图片风格迁移。尚未详看代码
- 看论文(部分是10月上旬看的),详情可看有道云笔记or解读链接:
- A-SoftMax Loss , L-softmax loss的改进版本:《SphereFace: Deep Hypersphere Embedding for Face Recognition》2017 添加两个限制条件||W||=1和b=0,使预测仅取决于W和x之间的角度.解读.原论文是caffe实现,pytorch代码
- 损失函数改进L-SoftMax Loss《Large-Margin Softmax Loss for Convolutional Neural Networks》2016 变换cos不等式,加强约束,使得类内距离较小、类间距离较大的特征.解读1 . 解读2 . MxNet代码
- **变分自编码器(Variational Auto-Encoder,VAE)**2014生成模型和判别模型组合的另一个套路VAE.解读1 . 解读2
- 分形网络结构——FractalNet 《Ultra-Deep Neural Networks without Residuals 2016 》浅深层结合,层深度指数型增长。采用DropPath。极深卷积神经网络领域对于 ResNet 的替代品。拓展:SBN(阶段提升)、TSN(泰勒阶级). 解读1 . 解读2. 官方caffe,Keras代码
- 对FractalNet进行改造优化:Deep Convolutional Neural Network Design Patterns论文中对这的分析为:Stagewise Boosting Networks(阶段提升网络,SBN)和Taylor Series Networks(泰勒级数网络,TSN)。他对FractalNet进行改造优化,作为拓展版本并比较。
- 可变形卷积《Deformable Convolutional Networks》2017对卷积核每个采样点位置都增加偏移变量。用convolution去学习dilatation值,和STN异曲同工。解读1 . 解读2
- 深度模型加速新思路 简单样本和复杂样本经过网络有差异,结构、loss、返回网络的判断 的改变。解读
- 少样本识别复杂数据《Low-shot Visual Recognition by Shrinking and Hallucinating Features》2016 . 结合one-shot 和transfer learning.解读1 解读2
- 与深度残差网络对立的(广度)WRN《Wide Residual Network 》2016 对深度和广度进行了分析,以及结论。解读
- 给黑白照上色彩《Colorful Image Colorization》 2016。 通过对大量彩色照片训练,给出灰度图片色彩预期,让神经网络预测输出上色照。解读
- 与BN类似的《Layer Normalization》2016 batch Normalisation是对某个神经元的所有样本输出进行归一化N(0,1)。Layer Normalization是对某一层中所有神经元输出进行归一化。解读
- Pix2Pix基于CGAN的图片转换《Image-to-Image Translation with Conditional Adversarial Networks》2016 通过素描简笔图,生成完整图。效果图。采用cgan和infogan的思想,已阅读完keras实现的代码。
- 买了本《计算机视觉 模型、学习和推理》进行学习。
10月下旬
- 看论文:
- 深度学习中的泛化《Generalization in Deep Learning》Yoshua Bengio与MIT发表新论文。里面有Rademacher 复杂度和VC维。未看懂。不过公式推导以及整体概念,对了解泛化很有作用.
- 浅看了下谷歌大脑提出新型激活函数 Swish:f(x) = x · sigmoid(x)。持续优于 ReLU 和其他激活函数
- Hinton的Capsule论文《Dynamic Routing Between Capsules》动态路由. CNN的下一次革命。目前训练特别慢
- SE-Net《Squeeze and Excitation Networks》。认为同一层的不同通道之间有关联,让同层的所有通道经过FC,返回对应通道权值大小,乘回原通道,再作为下一层的输入。ImageNet2017 image classification 的冠军。将该方法用在SE-ResNets、SE-DenseNets在表情识别上,有稍微的效果提升。
- 自由控制复杂度的网络:《Dynamic Deep Neural Networks: Optimizing Accuracy-Efficiency Trade-offs by Selective Execution》深度模型加速新思路。深度模型加速新思路
- 看《计算机视觉 模型、学习和推理》里面的知识。关于概率分布模型、视觉学习、复杂数据密度建模、回归分类模型、图模型、网络模型、图像预处理特征提取等的知识概括得特别好。(可能相对深度学习方法稍微有点传统,不过经典方法是通用的,特别是数学上的方法)
2017年9月
9月上旬
- 有点忘了具体干嘛了,好像经常下雨,有两三天窝在租房看动漫 = =
- 刷 leetcode,边玩边刷了30多道题(目前leetcode共刷了有55道左右)
- 师兄让我整理人脸数据集(对已有的9K+的raw人脸图片进行分类,即用较好的模型参数对这9K张预测,将预测较好的再人工筛选一遍,从而尝试扩大数据集。整理了一两天(港真,看着有点e心= =),由于这些raw图片的表情很一般。想尝试用其他方法扩大人脸数据集。师兄让我自己去找方法解决,真好。
- 想采用opencv来从电影抓取人脸图片,再将图片清洗一遍,从而扩大表情数据集。在编译安装opencv3上花了几天时间(还重装电脑了 ort …),最终编译安装好了opencv。ubuntu16.04 编译 opencv3.1.0 (Anaconda)
弄了几部电影,抓出来的人脸表情还行。有个问题是opencv里面人脸检测是采用haar或者lbp等较老切不怎么准的方法,接下来学习RCNN、Fast-RCNN以及Faster-RCNN,还有师弟介绍了的 DLib包和 Yolo 1/2的方法。
9月中旬
下载了八九部恐怖搞笑电影,抓取了一堆图片,进行预处理后,用已在fer2013训练好的model83(两个残差结构模型)去预测每张图片的表情情况,发现效果不佳(泛化能力不好),于是进行手动筛选剔除。其实 扩大数据集目的是看看对模型的准确率或者泛化能力会不会提高,提高多少。之后发现与其选取7中表情,不如单单整理一种表情,放进去看看效果如何。如果选取disgust。从几千张图片中只挑出了二十张图片左右 = =。。。数量惨不忍睹。接下来fanqiang去google Image爬了一百张左右对应的图片,进行人脸截取、预处理后丢进去训练(250次左右disgust有提高到70.9% 原63.6%。 一百多张图片不够,如是去ck+中的disgust图片放进去(177张)继续训练了520+次,disgust是70.9%,可能ck+的数据预处理没有和前面保持一致或者disgust无法再提高)。下一步将把ck+的所有有用数据提出来,放进去训练看看效果。
- 整理表情分类的代码(200+代码方法已经整理完毕)。主要涉及 数据预处理、Inception、残差、BN、Pooling、Conv、Structure、Net in Net、Maxout等等等等。最高达到70%(而当时记录是72+%,现已经73+%)
- 采用自己目前想出来的方法(混淆矩阵),均能提高0.1%-0.6%左右,还没有时间进行下一步推导及思考,但加入 复杂度感知会更好些。
- 18号-22号上课时间。开始进入课程学习时间了。
- 看看论文,泛看。准备接下来有计划看2017年新出的论文方法。
9月下旬
- 学习师兄的 图片预处理 代码。并且从ck+和jaffe数据集中提取出全部或单fear图片,webdisgust112一起加入fer2013中训练(采用model8双残差),轮流进行了几次实验,看看逐步加入数据集,在混淆矩阵中能否起到提高单标注的预测准确率。(单次加入webdisgust112能提高disgust,之后加入的能提高部分fear,不是特别明显。准确率也在69.6%浮动。)
- 接着中旬的任务,看物体检测的相关论文:SPPNet、FastRCNN、FasterRCNN(YOLO、SSD、MaskRCNN还没看)。有篇综述挺好 Modern History of Object Recongnition
- 零散地看一些论文:
- DCNN中的设计模式综述(解析深度卷积神经网络的14种设计模式) 论文《 Deep Convolutional Neural Network Design Patterns》.里面提及的 Freeze-Drop-Path 和 Stagewise Boosting Networks(SBN)的不错。解读 .
- 双通道生成对抗网络TP-GAN:论文《Beyond Face Rotation: Global and Local Perception GAN for Photorealistic and Identity Preserving Frontal View Synthesis》.提出了双通道生成对抗网络,根据侧脸生成正面人脸,感知全局结构和局部细节,合成逼真的真面人脸视图.解读 .
- 径向变换实现图像增强 论文《Training Neural Networks with Very Little Data A Draft》通过极坐标空间中的径向变换(radial transform) 实现图像增强,改进数据多样性,提升神经网络的泛化表现。[解读](https://arxiv.org/pdf/1708.04347.pdf http://mp.weixin.qq.com/s/ws1R-VPyJY6J18OttBDYog) .
- 孪生网络(Siamese Networks),以少样本精准分类(One-shot Learning)。实现了论文《Siamese Neural Networks for One-shot lmage Recognition》方法gihub代码。解读. 英文原文:interpretation。
- 条件GAN《Conditional Generative Adversarial Nets》。再次翻阅 。在G和D中都加入条件信息来引导模型的训练,并将其应用于跨模态问题。解读
2017年8月
8月上旬
- 8月2号购买深度学习并进行学习,于8月6号学习完 “应用数学与机器学习基础”和 “深度网络:现代实践”两大部分,最后一部分“深度学习研究”准备在中下旬回家时候继续学习.
- 整理Keras中example的代码.并将其集到自己的代码中. 目前mnist的example整理完毕.
- 学习GAN: DCGAN,ACGAN,InfoGAN 及其代码实现。
8月中旬
- 按照acgan代码,完成 Semi-superviseGAN的简单代码实现.目前正在跑其在mnist和cifar10的效率. 关于GAN,这个推导建议再学习 - 令人拍案叫绝的Wasserstein GAN
- 发现Semi-superviseGAN提出来的D,若D采用简单模型,有67.7%,若采用model51(三不同分支再合并加MLP的模型)有75.88%的准确率(均迭代了128次,未做其他调优处理).[此处自己实现的并非是半监督.如果采用半监督写法,准确率一应该能上涨5%或更多]
- 学习推导文老师提出的 逆向思维, 推导证明出来的公式及判别方式,与老师的想法有偏差.尚未解决.
- 看完了 NLP汉语自然语言处理原理与实践, 理解完里面的基本原理及操作,不过那儿的语法词法只是粗略看完.
- 学习 Word2vec 思想及方法. word2vec 中的数学原理详解,8月初参加的kaggle比赛中,胡杨师兄及辉强写了 Word2vec操作相关代码.(比赛不准备搞了吧哎,学会方法先)
- 拿Semi-superviseGAN进行训练生成-判别网络,判别网络采用师兄留下的较好的模型结构,GAN进行预训练参数,训练后,再拿判别网络去fer2013进行再次训练,发现效果一般般。(在其他数据集上表现也一般般,没太多区别呃)
8月下旬
- 实验室放假10天,回家到处玩到处浪。
- 回到实验室后,把《深度学习》书的第三部分看完(这部分很有意思,很有深度,目前我掌握的知识不够,不能很好吸收作者提供的感悟。)
- 整理表情识别的代码,学 残差结构(Residual)和 Inception 模型 结构等的keras代码实现,以及她们的排列组合的效果。
2017年7月
7月上旬
7月3号进入实验室.
- 熟悉实验室环境,部署实验室个人电脑环境(安装python环境,创建个人代码管理等等)
- 熟悉图片分类(从fer2013分类开始),自己先独立实现基础的十多层卷积神经网络进行调优预测(准确率到60%左右)
- 搭建处方录入系统的tornado框架简单雏形(其他的均由辉强实现)
7月中下旬:
- 学习并整理侯志师兄(研究生刚毕业)留下来的代码,他采用 集成方法将准确率提到73%多,单方法有68%左右(目前整理的代码最高68%).我整理的是卷积网络进行fer2013分类的模型(共有200个模型,我这段时间整理了60个模型)
- 边整理师兄的代码,边查阅其使用到的思想方法(看论文,博客等).
- 看完李航老师的 统计学习方法 ,将其公式都推导了一遍. 对 核函数等尚有疑惑 .
- 重看周志华老师的机器学习, 半监督学习概率图强化学习均只看了一半,规则学习没看.感觉这知识点比较发散,静不下心慢慢推导.
- 在网络博客上学习机器学习深度学习的相关知识: 自编码,DBN,LSTM,MCMC相关的知识,以及上面两本书中的知识.
- 学习卷积神经网络中的 结构变化 的思想方法 —— MaxoutNet, Spatial Transformer Networks, STNGlobal Average Pooling 还有Net2Net等
2017年1月-2017年6月
本科毕业设计是<基于深度学习的图片推荐系统的研究与实现>
1. 一月初买了周志华老师的 机器学习 进行学习.
2. 来校时候(大四)开始学卷积神经网络,RBM以及推荐系统的知识.
3. 实现了基于卷积神经网络提取服装图片特征,并用简单MLP进行个性化分类;用基于项目/用户的协同过滤推荐,LFM和RBM的 基于模型的协同过滤推荐 ,从而完成了毕业设计代码.
4. 6月份答辩完开始浪浪浪
2017年之前
我是2017年1月才开始接触机器学习.