一、关于特征
特征是机器学习的原材料,对最终模型的影响是毋庸置疑的。如果数据被很好的表达成了特征,通常线性模型就能达到满意的精度,那么对于特征,我们需要考虑什么呢?
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 需要多层来获得更抽象的特征表达。那么多少层才合适呢?用什么架构来建模呢?怎么进行非监督训练呢?
相关推荐
《Deep Learning》这本书对于希望深入了解机器学习特别是深度学习的读者来说,是一本宝贵的资源。通过阅读本书,读者可以系统地掌握深度学习的理论基础,并为未来在人工智能领域的深入研究和应用打下坚实的基础。
本次介绍的《DEEP LEARNING(中文).pdf》是AI领域的一本重要著作,其内容涵盖了深度学习的基础理论和实践应用,非常适合希望深入了解深度学习的初学者和从业者。 从文件提供的部分内容可以看出,文档内容非常丰富...
《深度学习必读Keras大神》学习纪录(目前进度:第五章)关于书籍书本采用Jerry老师推荐的《深度学习深度学习必读-Keras大神带你用Python实作》作者:弗朗索瓦·乔莱特(FrançoisChollet)译者:叶欣睿出版社:旗标...
二、提出的深度学习算法 1. 自适应特征重标定:通过挤压-激活模块(Squeeze-Excitation module)调整网络的细粒度分类能力,增强模型对微小差异的敏感性,从而更好地识别多样化的病变特征。 2. 全局最大-平均池化...
coursea课程 neural network and deep learning 课后编码作业所需用到的代码
R Deep Learning Cookbook by Dr. PKS Prakash English | 4 Aug. 2017 | ISBN: 1787121089 | ASIN: B071NDMWN2 | 288 Pages | AZW3 | 6.91 MB Powerful, independent recipes to build deep learning models in ...
LearningOpenCV英文版+学习OpenCV中文版+书中例程 + Leaning OpenCV3 完整版 图像处理学习入门资料,英文原LearningOpenCV,中文版学习opencv,以及书中涉及到的例程。对图像处理入门很大的帮助。
"深度学习PyTorch"是当今人工智能领域中最热门的话题之一,尤其在计算机视觉、自然语言处理等方向上,PyTorch扮演着至关重要的角色。这个压缩包文件"torch-1.10.0-cp36-cp36m-linux_aarch64_test"显然是PyTorch的一...
在本文中,我们将深入探讨如何在C#编程环境中与HALCON图像处理引擎进行联合编程,以便充分利用HALCON的强大功能。HALCON是由MVTec公司开发的一款广泛应用的机器视觉软件,它提供了丰富的形状匹配、模板匹配、1D/2D码...
《Leaning OpenCV》英文原版附带得源码,很有用得东西哦!
【Github项目文档】DeepLearningTutorial项目说明Deep Learning,Leaning deep,Have fun!介绍如果你是深度学习/卷积神经网络的初学者,且对图像分类、目标检测、分割等CV相关领域感兴趣,请继续↓↓↓↓↓↓↓↓↓↓...
C-leaning:学习C语言
本书是《Python学习手册》的第五版,由Mark Lutz编写,是学习Python编程语言的经典教程。该书深入浅出地介绍了Python的各个方面,适合初学者和有经验的程序员阅读。书中探讨了Python语言的多种用途,包括但不限于...
machine leaning 谷歌课程
此讲义属于斯坦福大学吴恩达老师的课程pdf原版,可配合公开课进行学习。
机器学习入门必看教程,认真研究每一个公式背后的意义,不要放过每一个参数,变量和运算符存在的意义!会大大提高数学功底和分析能力!
matlab kinect 代码