Deep Leaning (深度学习)学习笔记二

一、关于特征

 

       特征是机器学习的原材料,对最终模型的影响是毋庸置疑的。如果数据被很好的表达成了特征,通常线性模型就能达到满意的精度,那么对于特征,我们需要考虑什么呢?

 

1.1、特征表示的粒度

       学习算法在一个什么粒度上的特征表示,才能发挥作用?就一个图片来说,像素级的特征根本没有价值。例如一辆摩托车,从像素级别,根本得不到任何信息,其无法进行摩托车和非摩托车区分。而如果特征是一个具有结构性(或者说有含义)的时候,比如是否具有车把手,是否具有车轮,就很容易把摩托车和非摩托车区分,学习算法才能发挥作用。

 

1.2、 初级(浅层)特征表示

       既然像素级的特征表示方法没有作用,那怎样的表示才有用呢?

       1995年前后,有两位学者收集了很多黑白风景照片,从这些照片中,提取出400个小碎片,每个照片碎片的尺寸均为16*16像素,不妨把这400个碎片标记为S[i],i=0,...,399.接下来,再从这些黑白风景照片中,随机提取另一个碎片,尺寸也是16*16像素,不妨把这个碎片标记为T。

他们提出的问题是,如何从这400个碎片中,选取一组碎片,S[k],通过叠加的方法,合成一个新的碎片,而这个新的碎片,应当与随机选择的目标碎片T,尽可能形似,同时,S[k]的数量尽可能少,用数学的语言表示就是:

       Sum_k(a[k]*S[k]) -->T,其中a[k]是在叠加碎片S[k]时的权重系数。

       为了解决这个问题,他们发明了一个算法,稀疏编码(Sparse Coding)。

       稀疏编码是一个重复迭代的过程,每次迭代分两步:

1)选择一组S[k],然后调整a[k],使得Sum_k(a[k]*S[k])最接近T;

2)固定住a[k],在400个碎片中,选择其它更合适的碎片S‘[k],替代原先的S[k],使得Sum_k(a[k]*S'[k])最接近T。

       经过几次迭代后,最佳的S[k]组合,就被选出来了,令人惊奇的是,被选出来的S[k],基本上都是照片上不同物体的边缘线,这些线段形状相似,区别在于方向。

       也就是说,复杂图形,往往由一些基本结构组成,比如下图(5.jpg),一个图可以通过用64中正交的edges(可以理解成正交的基本结构)来线性表示。比如样例的x可以用1-64个edges中的三个按照0.8,0.3,0.5的权重调和而成。而其他基本edge没有贡献,因此均为0.

 

1.3、结构性特征表示

       小块的图形可以由基本edge构成,更结构化,更复杂,具有概念性的图形如何表示呢?这就需要更高层次的特征表示,比如V2,V4。因此V1看像素级是像素级。V2看V1是像素级,这个就是层次递进的,高层表达由底层表达的组合而成。专业点就是基basis。V1取提出的basis是边缘,然后V2层是V1层这些basis的组合,这时候V2区得到的又是高一层的basis。即上一层的basis组合的结果,上上层又是上一层的组basis.....(所以有大牛说Deep Leaning 就是“搞基”,因为难听,所以美其名曰Deep Leaning或者UNsuperVised feature Learning)

       直观上说,就是找到make sense 的小patch再将其进行combine,就得到了上一层的feature,递归的向上leaning feature。

       在不同object上做traing是,所得的edge basis 是非常相似的,但object parts和models就会completely different了(那咱们分辨car或者face是不是就容易多了):

       从文本来说,一个doc 表示什么意思?我们描述一件事情,用什么来表示比较合适?用一个一个字吗,我看不是,字就是像素级别了,起码应该是term,换句话说每个doc都由term构成,但这样表示概念的能力就够了吗,可能也不够,需要再上一步,达到topic级,有了topic,再到doc就合理。但每个层次的数量差距很大,比如doc表示的概念-->topic(千或万量级)-->term(10万量级) -->word(百万量级)。

        一个人在看一个doc的时候,眼睛看到的是word,由这些word在大脑里自动切词形成term,在按照概念组织的方式,先验的学习,得到topic,然后再进行高层次的learning。

 

1.4、需要有多少个特征?

       我们知道需要层次的特征构建,由浅入深,但每一层该有多少个特征呢?

任何一种方法,特征越多,给出的参考信息就越多,准确性会得到提升。但特征多意味着计算复杂,探索的空间大,可以用来训练的数据在每个特征上就会稀疏,就会带来各种问题,并不一定特征越多越好。

       好了,到这一步终于可以聊deep leaning了,上面我们聊到为什么会有deep leaning (让机器自动学习良好的特征,而免去人工选取过程,还有参考人的分层视觉处理系统),我们得到一个结论就是deep learning 需要多层来获得更抽象的特征表达。那么多少层才合适呢?用什么架构来建模呢?怎么进行非监督训练呢?

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值