UFLDL笔记——自我学习

注:最近打算将UFLDL教程重新看一遍,其实里面有很多关于神经网络以及深度学习的知识点很有用,但是只是学习深度学习的话有一些内容就有点多余,所以想整理一个笔记,记录下神经网络到深度学习的一些知识点。整个教材已经非常好,网上有原版的英文版,也有翻译的中文版,这个只是自己的学习笔记,对原来教程中的内容进行了梳理,有些图也是引用的原来的教程,若内容上有任何错误,希望与我联系,若内容有侵权,同样也希望告知,我会尽快删除。

这个笔记主要分为以下几个部分: - 神经网络 - 自编码器与稀疏性 - Softmax回归 - 自我学习 - 深度网络 - 其他,如PCA

四、自我学习

1、自我学习的概念

在现实生活中存在着大量的无标注的数据,即数据中只存在着特征属性,而没有类别标签,要想有效地利用这些无标注的数据,一种办法是人工标注这些数据,然而,人工标注这些数据需要花费大量的人力和物力。另一种方法是利用算法对这些无标注的数据进行学习,学习出更好的特征描述,自我学习便是这样一个概念,即从大量的无标注的数据中学习到特征的更好表示。

1、特征学习

在前面介绍了使用自编码器学习到特征的表示方法,具体过程为,对于mm无标注的训练样本{x(1),x(2),⋯,x(m)},可以学到如下的稀疏自编码器模型:

其中,稀疏自编码器的模型参数为:W(1),b(1),W(2),b(2)。对于稀疏自编码器模型来说,隐含层代表的是特征的另一种表示,可能是一种更好的表示,如下图所示:

假设有mlm_l个标注的样本{(x(1),y(1)),(x(2),y(2)),⋯,(x(m1),y(ml))},利用稀疏自编码模型得到更好的特征表示。如对于输入x(1)\mathbf{x}^{(1)},经过稀疏编码器得到其特征表示为a(1),通常有两种方法处理这两种特征表示:

  • “替代表示(Replacement Representation)”,即直接将a(1)替代x(1)。
  • “级联表示(Concatenation Representation)”,即将上述两种特征组合在一起,使用新向量(x(1),a(1))代替原先的特征x(1)

经变换后的特征变成了替代表示{(a(1),y(1)),(a(2),y(2)),⋯,(a(m1),y(ml))}或者是级联表示{((x(1),a(1)),y(1)),((x(2),a(2)),y(2)),⋯,((x(m1),a(m1)),y(ml))}

通常采用级联表示可以或得更好的效果。

对于上述的特征表示,可以对其使用常用的分类器,如SVM,Logistic回归等等对其进行学习和预测。

2、从自我学习到深层网络

在自我学习的过程中,首先通过未标注的数据训练一个稀疏自编码器,即对于给定的未标注的样本{x(1),x(2),⋯,x(m)},训练过程如下图所示:

对于一个新的样本x \mathbf{x},我们可以通过训练好的稀疏自编码器提取出其特征a \mathbf{a}。然而对于一个分类问题,我们关心的是样本的标签yy,对于有标注的样本{(x(1),y(1)),(x(2),y(2)),⋯,(x(m1),y(ml))},利用训练好的稀疏自编码器得到新的特征a \mathbf{a},利用替代表示,得到新的数据集表示形式{(a(1),y(1)),(a(2),y(2)),⋯,(a(m1),y(ml))},我们需要训练的是从特征a到标签yy的映射,可以使用logistic回归分类器,其具体形式如下:

将上述两个过程结合在一起,就可以表示为如下的图:

该模型首先通过一些未标注的样本训练出稀疏自编码器的权重W(1),b(1),然后利用对标注的样本,利用稀疏自编码器对其进行特征学习,学习到新的特征表示a \mathbf{a},再利用logistic回归得到其第二层的权重和偏置W(2),b(2)。

在上述得到初步的模型之后可以通过微调,通常是在有大量的标注数据的条件下利用梯度下降法对整个模型进行微调。

参考文献

1、英文版:UFLDL Tutorial

2、中文版:UFLDL教程

若需要PDF版本,请关注我的新浪博客@赵_志_勇,私信你的邮箱地址给我。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习AI算法工程

算法工程师的面试难不难,如何准备?-图像处理/CV/ML/DL到HR面总结

把一些相关的知识点总结一下。这个比长,感兴趣的挑自己相关的那部分看。 都是一些基础知识,面相关岗位问到的比较多。 (回答时对算法要有一定的见解,最好不要照书上的...

81750
来自专栏人工智能LeadAI

零基础入门深度学习 | 第五章: 循环神经网络

无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习这个超热的技术,会不会感...

61170
来自专栏程序生活

CS224n 笔记1-自然语言处理与深度学习简介1 自然语言处理简介2 词向量(Word Vectors)3 基于奇异值分解(SVD)的方法4 基于迭代的算法-Word2vec

1 自然语言处理简介 我们从讨论“什么是NLP”开始本章的内容 1.1 NLP有什么特别之处 自然(人工)语言为什么如此特别?自然语言是一个专门用来表达语义的系...

31130
来自专栏WD学习记录

机器学习 学习笔记(20)深度前馈网络

深度前馈网络(deep feedforward network),也叫做前馈神经网络(feedforward neural network)或者多层感知机(mu...

44940
来自专栏应用案例

入门必看!一文读懂神经网络中的激活函数(二)

看看深度学习之激活函数 本篇接着上一篇推文入门《必看!从零开始了解到训练神经网络(一)》,在介绍完神经网络的基本原理和结构之后,继续介绍神经网络中的关键之一 —...

674100
来自专栏人工智能LeadAI

常见激活函数总结 | 深度学习笔记2

01激活函数概览 基本上,入门深度学习的第一件事情就是了解”神经元”的构造,激活函数算是最基本的一个”部件”了吧.那激活函数到底有什么用呢?为什么需要激活函数?...

47180
来自专栏决胜机器学习

机器学习(十六) ——SVM理论基础

机器学习(十六)——SVM理论基础 (原创内容,转载请注明来源,谢谢) 一、概述 支持向量机(supportvector machine,SVM),是一种分类...

39170
来自专栏闪电gogogo的专栏

浅读K-means

百度百科释义为   K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法...

20860
来自专栏mantou大数据

[机器学习Lesson 2]代价函数之线性回归算法

x(1) 指的是 第一个训练集里值为2104的输入值, 这个就是第一行里的x x(2) 等于1416。这是第二个x y(1) 等于460,这是第一个训练集样本的...

529100
来自专栏CDA数据分析师

三分钟看懂机器学习中应该注意哪些问题?

本文简单谈谈机器学习中应该注意的一些问题。仅供大家参考学习和讨论。 1. 特征预处理 机器学习中的输入数据必须是数值类型的,但是现实问题中不免会有一些类别类型的...

200100

扫码关注云+社区

领取腾讯云代金券