Skip to content

Instantly share code, notes, and snippets.

View alanse7en's full-sized avatar

Xuesong Deng alanse7en

View GitHub Profile
@alanse7en
alanse7en / TEST_SVM_ON_VIPER.md
Last active May 24, 2016 00:26
#实验结果

Training phase

20000 training instances The number of support vectors is around 15000, which means that most of the training data are near the separating hyper-plane. The training accuracy is around 80%

Test on full data

  • Accuracy = 52.3734% (662/1264) (classification)
  • Accuracy = 62.5791% (791/1264) (classification)
  • Accuracy = 61.0759% (772/1264) (classification)
  • Accuracy = 60.9968% (771/1264) (classification)
@alanse7en
alanse7en / Co-occurrence Re-ID.md
Created January 22, 2015 06:34
#reading_paper
  • Motivation:We are largely motivated by the observation that the co-occurrence patterns of visual codewords behave similar for images from different views.
@alanse7en
alanse7en / 实验计划.md
Last active August 29, 2015 14:13
#to_do
  • 不同卷积层输出的特征之间+salience matching
  • 不同全连接层输出+LADF
  • 不同卷积层输出+global averaging+LADF
@alanse7en
alanse7en / DeepID_FACE_笔记.md
Created January 15, 2015 06:16
#reading_paper
  • 每张人脸图片被分成了60个patch(5个全局5个局部,共十个区域,每个区域三个尺度,每个尺度还有一张对应的水平flipping)。
  • 60个patch每个都对应训练一个CNN,每个CNN输出的特征维数为160。
  • 为了能有效地训练CNN,训练数据比测试的数据大,每个人对应的图片多。
  • 分类器,并没有直接使用CNN的分类结果,而是结合joint-bayesian
  • 关于借鉴这个方法到Person Re-ID 上,Person怎么去切分区域?Person的变化应该更多,能不能利用这样的网络训练得到有效的信息?

The advantages of using Rectified Linear Units in neural networks are

  • If hard max function is used as activation function, it  induces the sparsity in the hidden units.
  • ReLU doesn't face gradient vanishing problem as with sigmoid and tanh function. Also, It has been shown that deep networks can be trained efficiently using ReLU even without pre-training.
  • ReLU can be used in Restricted Boltzmann machine to model real/integer valued inputs.
@alanse7en
alanse7en / 站队.md
Last active August 29, 2015 14:13
#random_thoughts

讨论各种问题的时候越来越发现大家都有这样的趋势,发现一个不好就会开始幻想它的对立面是好的。但往往大家反感的事情本身和大家幻想的另一个方案都是坏的。或者说坏的不是我们争论的那个事情本身,坏的是我们自己。

  • 传统CNN里的卷积核是一个generalized linear model(GLM)之后经过一个sigmoid(现在通常是ReLu)的非线性激励函数,假设卷积有K个filter,那么这K个filter代表的特征应该是可分的,或者说对属于同一个类别的不同变形具有不变性。
  • 但是通过GLM来建模,也就是假设这些latent的filter是线性可分的,显然这样的假设并不总是成立,甚至通常都不成立。
  • 传统的CNN为了解决这种不可分的问题,往往会选择比较多的filter个数,也就是比较大的K值,来保证所有的变形都被分到正确的concept里。
  • 比如说人和猫是不同的概念,但不是线性可分的,为了避免错分,我们只有建立更多的子概念(增加filter的个数),黄种人、黑人等等。
  • 但是过多的filter也会带来问题。主要有两个问题:1)首先是复杂的问题中这样的变形的个数往往过多,造成参数的急剧增加,2)这给下一层的网络的学习造成了困难,因为下一层网络的作用就是结合这一层的网络的信息,形成更高语义的信息,那么对于当前这一层当中相同概念的不同变形的filter,下一层必须要能够有一定的处理。
  • maxout网络可以通过分段线性的方法近似表示一个convex可分的问题,但是同样的,并不是所有的问题都是convex的。
  • 这说明我们需要更general的非线性的卷积核,也就是Network in Network中的micro network,文中提到的多层感知机(multilayer perceptron)。
  • multilayer perceptron的卷积核,实际相当于先做一个一般的卷积,再做几个1*1的卷积(只改变filter的个数,不改变feature map的大小)。
  • 这么看来,相当于构建了一个层次更深的网络。
  • Global average pooling 的合理性在于,经过了一个多层的复杂的网络之后,每一个filter代表的都是high-level的信息,而不是low-level的像一些曲线或者纹理之类的信息。对于这种high-level的信息,对整个feature map做pooling相当于检测这个map中有没有这个filter要检测的concept,这个pooling的结果已经可以很好地用来做分类或者检测之类的工作,不需要fully connected之后再训练分类器。
  • Network in Network
  • Deep network with rectified linear unit(ReLu)
  • GoogLeNet