CN105825269B - 一种基于并行自动编码机的特征学习方法及*** - Google Patents
一种基于并行自动编码机的特征学习方法及*** Download PDFInfo
- Publication number
- CN105825269B CN105825269B CN201610147007.5A CN201610147007A CN105825269B CN 105825269 B CN105825269 B CN 105825269B CN 201610147007 A CN201610147007 A CN 201610147007A CN 105825269 B CN105825269 B CN 105825269B
- Authority
- CN
- China
- Prior art keywords
- working machine
- machine
- weight matrix
- data
- supervisor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Databases & Information Systems (AREA)
- Machine Translation (AREA)
Abstract
本发明提供一种基于并行自动编码机的特征学***均。本发明能够更加高效地实现特征学习;能够将并行自动编码机的数据处理的时间复杂度由二次复杂度降为线性复杂度。
Description
技术领域
本发明涉及数据挖掘技术领域,具体地说,本发明涉及一种基于并行自动编码机的特征学习方法及***,它可以应用于金融、通信、图像处理、Web数据分析、大数据分析等多个行业。
背景技术
随着社会发展的信息化和网络化,信息技术已经越来越深的影响到社会生活的各个方面,计算机的发展极大地提高了社会生产效率。人们越来越多的依靠计算机和互联网来提高生活水平、工作效率,不断的改造社会、改进生活质量。然而随着计算机逐渐应用于各个方面,不可避免的产生了大量的信息和数据。并且这些信息和数据并不仅仅是数据,它其中隐藏的信息越来越被人们所重视。
人们在日常生活和工作中无时无刻不在获取信息,分析信息,并以此作为决策的依据。然而随着互联网的不断发展,信息量不断增大,信息的复杂度也不断提升。研究如何使计算机能够理解并自主处理获得的数据和信息,进而帮助甚至代替人们做出决策,成为人们急切需求。数据挖掘是从大量的数据中提取隐含的潜在有用信息的技术。而机器学习是从大量有用信息中进行学习并做出决策的技术。
特征学习(feature learning)是机器学习领域中的一个重要研究问题。特征学习又称作表示学习(learning representation),它的目标是自动学习一个从原始输入数据到新的特征表示的变换,使得新的特征表示可以有效应用在各种机器学习任务中,从而把人从繁琐的特征工程中解放出来。特征学习通常能够提升机器学习算法的性能。和机器学习中的分类方式类似,根据训练数据的区别,可以把特征学习算法分为两类:监督特征学习和无监督特征学习。在监督特征学习中,通常需要利用有标签的数据。监督特征学习包括:神经网络,多层感知机和有监督字典学习等。无监督特征学习(unsupervised featurelearning):是指从未标注数据中学习数据的新的特征表示。无监督表示学习算法通常也是降维算法,用来从高维输入数据中发现有意义的低维特征表示。目前,无监督特征学习算法包括字典学习算法、主成分分析算法、独立成分分析算法、自动编码机算法、矩阵分解算法以及众多形式的聚类问题算法等。
其中,自动编码机(Autoencoder)算法是一种已经得到广泛应用的无监督表示学习方案。它包含了编码部分和解码部分,是深度学习结构的一个典型例子。Hinton和Salahutdinov提出的编码机使用原始数据作为输入,产生的特征作为输出;而解码机则用编码机产生的特征作为输入,重构出原始数据作为输出。编码机和解码机均由堆叠的受限玻尔兹曼机(RBM)构成。RBM常被用来作为构建深度结构的基础部分,一个RBM可以被表示成一个无向二分图,包括了一组二值化的隐含变量,一组变量和变量间联系的边。RBM的每一条边对应着一个权值。这些权值共同定义了能够表示可视结点和隐含结点联合分布的能量函数。基于RBM技术,层与层之间的变量变得相对独立,这样极大的方便了相关计算。一个RBM可以被视为一个独立的网络层,具体来说,可视层变量对应着当前层的输入数据,而隐含层变量则对应着特征输出。RBM的权值能够通过使用对比散度来最大化可见变量的概率来优化。
为了便于理解,下面介绍一种典型的基于并行自动编码机的特征学习方案。图1示出了一种典型的自动编码机的逻辑结构示意图。如图1所示,该典型的自动编码机包括编码机和解码机,编码机可以由多个堆叠的(级联的)RBM模型组成,编码机的输入通常是一个输入向量,记为x,编码机的输出为隐藏层(图中以code表示)数据,隐藏层数据通常为一个向量。解码机也可以由多个堆叠的(级联的)RBM模型组成。隐藏层输出的向量作为该解码机的输入,解码机输出一个输出向量,记为图1中,整个神经网络由一个输入层、一个输出层和三个隐藏层以及各层之间的神经构成。但需要说明的是,本发明所用到的神经网络并不限于此,基本神经网络只需要一个输入层、一个输出层和一个隐藏层即可,该基本神经网络由两个单层神经网络构成,输入层、隐藏层以及它们之间的神经构成第一个单层神经网络,隐藏层、输出层以及它们之间的神经构成第二个单层神经网络。
并行自动编码机需要基于大量的已知数据对模型进行训练,以得到优化的权值向量,进而获得更加准确的特征学***台及其独特的MapReduce思想实现。MapReduce操作包括Map(映射)操作和Reduce(化简)操作两个部分,对应地,用于实现并行自动编码机的Apache Hadoop平台包括管理机(主机)和多个可并行工作的工作机。管理机主要用于收集数据并为工作机分发和调度任务。在MapReduce机制中,管理机首先进行Map操作,为各个工作机规划任务,然后将任务分发到各个工作机。然后,各个工作机则各自执行管理机所分配的任务。在典型的方案中,整个自动编码机的模型参数被分解为多个权值组合,每个工作机分别负责计算和更新自动编码机的一部分权值(即一个权值组合)。多个工作机并行地执行迭代操作。在单次迭代操作中,每个工作机首先读取一条输入数据(通常是输入向量x),然后执行正向传播,经过编码和解码得到输出数据(通常是输出向量)。然后执行反向传播,根据输入向量x和输出向量计算出误差并基于该误差对该工作机所对应的权值组合进行更新,最后将误差和更新后的权值组合反馈至管理机。管理机收到各个工作机所反馈的信息后,执行Reduce操作,汇总各个工作机的误差和权值更新,再将上一次迭代运算所得的完整误差信息和权值更新信息(指所有工作机所反馈的信息)传递给各个工作机,以便进行下一次的迭代。这样不断迭代,直至满足预设的停止条件。经过上述训练过程后,各个工作机对应权值组成的权值向量即可视为特征学习模型的模型参数向量,从而获得基于自动编码机的特征学习模型。
上述基于Apache Hadoop平台的并行自动编码机方案具有良好的可扩展性、容错性和兼容性。然而,当数据规模增大时,这种并行自动编码机方案所需的计算能力将非线性地增长,因此,这种方案面临海量数据计算任务时,在数据处理效率和时间上往往难以满足要求。当前迫切需要一种更加高效的基于并行自动编码机的特征学习解决方案。
发明内容
本发明的任务是克服现有技术的不足,提供更加高效的基于并行自动编码机的特征学习解决方案。
根据本发明的一个方面,提供了一种基于并行自动编码机的特征学习方法,该特征学习方法涉及管理机、多个工作机以及训练数据集,所述训练数据集被划分为多个部分数据集,每个工作机均与一个或多个所述部分数据集对应;所述特征学习方法包括下列步骤:
1)管理机执行Map操作,为各个工作机规划任务并将任务分发给每个工作机;其中,各个工作机的任务一致,均是基于所输入的数据对自动编码机的权值矩阵进行训练;所述权值矩阵包含了所述自动编码机的所有权值;
2)每个工作机分别读取该工作机对应的部分数据集;
3)各个工作机并行地执行管理机所分发的任务,对自动编码机的权值矩阵进行训练,然后每个工作机将它所训练的权值矩阵反馈给管理机;
4)管理机执行Reduce操作,对各个工作机反馈的权值矩阵进行算数平均。
其中,所述训练数据集被划分为多个子训练数据集,每个子训练数据集被划分为多个部分数据集,每个工作机均与一个子训练数据集的一个所述部分数据集对应;
所述步骤2)中,每个工作机所读取的是当前子训练数据集中它所对应的部分数据集;
所述步骤4)还包括:所述管理机执行Reduce操作对各个工作机反馈的权值矩阵进行算数平均后,得到基于当前子训练数据集进行更新后的权值矩阵,所述管理机将更新后的权值矩阵分配给各个工作机作为下一轮训练的初值权值矩阵,然后重新执行步骤1)~4),直至所有子训练数据集均处理完毕。
其中,所述步骤1)还包括:管理机将相关初始化参数发至各工作机节点,所述相关初始化参数包括:数据规模、隐藏层配置、输入数据路径、正则化参数和随机数种子中的一项或多项。
其中,所述步骤3)中,每个工作机执行管理机所分发的任务的过程如下:读取当前部分数据集中的一条数据作为输入数据,计算出隐藏层和输出层的值,然后利用得到的输出层的值与原输入数据之间的误差更新所述权值矩阵,工作机读取当前部分数据集中的下一条数据,然后重复上述过程,直至当前部分数据集中的每一条数据均至少输入过一遍。
其中,所述步骤3)中,基于随机梯度下降算法,根据所述的输出层的值与原输入数据之间的误差更新所述权值矩阵。
其中,所述自动编码机由第一单层神经网络和第二单层神经网络组成,所述权值矩阵包括对应于第一单层神经网络的第一权值矩阵和对应于第二单层神经网络的第二权值矩阵;
所述步骤3)中,每个工作机执行管理机所分发的任务的过程如下:
31)计算隐藏层向量h=sigmoid(W1x+B1);
其中,sigmoid为激活函数,W1为第一权值矩阵,B1为第一偏置向量,M为输入向量的维度,K为隐藏层节点数目;
32)计算解码后的输出向量
其中,W2为第二权值矩阵,B2为第二偏置向量,“.*”表示点乘,I为指示函数向量,向量I中的任意一个元素满足:
33)计算输出层误差向量
计算隐藏层误差向量
其中,downstream表示任一单层神经网络的输出;
34)基于输出层误差向量Eout和隐藏层误差向量Eh对第一权值矩阵W1和第二权值矩阵W2进行更新。
根据本发明的另一方面,提供了一种基于并行自动编码机的特征学***台的管理机和基于Spark平台的多个工作机;
其中,所述管理机用于执行Map操作,为各个工作机规划任务并将任务分发给每个工作机;以及执行Reduce操作,对各个工作机反馈的权值矩阵进行算数平均;其中,各个工作机的任务一致,均是基于所输入的数据对自动编码机的权值矩阵进行训练;所述权值矩阵包含了所述自动编码机的所有权值;
所述多个工作机用于分别读取该工作机对应的部分数据集;以及并行地执行管理机所分发的任务,对自动编码机的权值矩阵进行训练,然后每个工作机将它所训练的权值矩阵反馈给管理机。
其中,所述训练数据集被划分为多个子训练数据集,每个子训练数据集被划分为多个部分数据集,每个工作机均与一个子训练数据集的一个所述部分数据集对应;
所述工作机还用于在基于一个子训练数据集进行训练时,读取该子训练数据集中该工作机所对应的部分数据集;
所述管理机还用于执行Reduce操作对各个工作机反馈的权值矩阵进行算数平均后,得到基于当前子训练数据集进行更新后的权值矩阵,将更新后的权值矩阵分配给各个工作机作为下一轮训练的初值权值矩阵。
其中,所述管理机还用于将相关初始化参数发至各工作机节点,所述相关初始化参数包括:数据规模、隐藏层配置、输入数据路径、正则化参数和随机数种子中的一项或多项。
其中,所述工作机还用于按照下述过程执行管理机所分发的任务:读取当前部分数据集中的一条数据作为输入数据,计算出隐藏层和输出层的值,然后利用得到的输出层的值与原输入数据之间的误差更新所述权值矩阵,工作机读取当前部分数据集中的下一条数据,然后重复上述过程,直至当前部分数据集中的每一条数据均至少输入过一遍。
与现有技术相比,本发明具有下列技术效果:
1、本发明能够充分发挥分布式集群***的计算潜力,更加高效地实现特征学习。
2、本发明能够将并行自动编码机的数据处理的时间复杂度由二次复杂度降为线性复杂度。
3、在对稀疏数据进行处理时,本发明能够通过屏蔽计算过程中的无效计算和无效存储开销,进一步减少时间和空间的浪费,从而在保证计算正确性的情况下,大幅度提高模型训练速度。
4、本发明的基于并行自动编码机的特征学习模型训练结果准确度高。
5、本发明特别适合完成海量数据计算任务。
附图说明
以下,结合附图来详细说明本发明的实施例,其中:
图1示出了现有技术中一种典型的自动编码机的逻辑结构示意图;
图2示出了图2示出了本发明一个实施例的用于实现并行自动编码机的***平台;
图3示出了本发明一个实施例的并行自动编码机的训练方法的流程图;
图4示出了本发明中具有不同数目工作机的平台上,自动编码机的模型参数训练时间随数据规模变化的曲线;
图5示出了现有技术中一种自动编码机运行时间随数据规模变化的曲线。
具体实施方式
图2示出了本发明一个实施例的用于实现并行自动编码机的***平台,该***平台包括管理机(Manager)、多个工作机(Worker)以及多个数据分片存储装置。其中管理机可部署在云端,它与每个工作机分别互联。每个工作机分别与一个数据分片存储装置互联。其中,管理机主要用于收集数据并为工作机分发和调度任务。工作机负责完成具体计算。多个工作机可以并行地工作。需要说明,这种***结构仅是示例性的,在本发明的其它实施例中,也可以采用其它类型的***平台构架,只要该***平台构架包括管理机和与之互联的多个工作机以及相应的数据存储***即可。
图2的实施例中,所采用的***平台是一种Spark平台。Spark是针对MapReduce在迭代式机器学***台可以部署在Hadoop集群环境下,拥有直接访问HDFS文件***的能力。传统的MapReduce技术(例如Apache Hadoop平台)中,MapReduce中间过程和计算结果需要读写HDFS。而Spark技术不同于此,在执行MapReduce操作的过程中,Spark平台将计算结果保存在内存中,从而不必频繁读写HDFS,大幅减少了IO操作。采用Spark平台,能够更好地适应本实施例的并行自动编码机的训练方法,进而提升算法运行效率,使算法运算时间极大地缩短。
下面,进一步介绍基于上述***平台的并行自动编码机的训练方法。图3示出了本实施例的并行自动编码机的训练方法的流程图,包括下列步骤:
步骤101:管理机执行Map操作,即将相关初始化参数发至各工作机节点,例如数据规模,隐藏层配置,输入数据路径,正则化参数,随机数种子等。
步骤102:每个工作机读取其对应的输入数据。不同于现有技术中将所有输入数据分别输入每个工作机的做法,本实施例中,通过将不同部分的数据被划分至不同的工作机,分别对自动编码机的权值进行训练。另一方面,本实施例中,每个工作机均负责训练自动编码机的所有权值,也就是说,每个工作机均可以独立地训练完整的自动编码机模型,只是用于训练的数据不是完整的。由于每个工作机的输入数据的数据量大大减小,因此本实施例中***能够通过多个工作机的并行处理来加速自动编码机的训练。为便于说明,下文中将每个工作机负责处理的数据的集合称为部分数据集。
尽管每个工作机负责处理的仅是它所对应的部分数据集,但其数据量仍然十分庞大。本实施例中,输入数据以样本为单位参与工作机的迭代计算,即输入工作机的每条数据代表一个样本。以文本数据为例:数据格式为“文本编号:单词号出现次数,单词号出现次数,…,单词号出现次数\n”,例如“1:1 2,4 1,5 2\n”,其中“\n”为换行符。如果把很多文本放在一起,也可以采用每一行代表一个点的数据格式,其基本数据格式为:“文本编号单词号出现的次数\n”。按照这种基本数据格式,前文中的文本数据例子“1:1 2,4 1,5 2\n”将改写为:“1 1 2\n 1 4 1\n 1 5 2\n”。
本实施例中,***激活函数采用sigmoid函数,输入数据中的单词在某文本中出现次数将被归一化到(0,1)范围内。在文本数据中,最常用的对某个单词出现次数的归一化做法是:该单词出现次数/部分数据集中的最大出现次数。在计算机的处理过程中,每条数据通常以一个输入向量来表示。
本实施例中,利用随机数种子各自初始化自编码机权值,由相同的种子保证了每个工作机上的神经网络初始状态相同。
步骤103:各个工作机并行地执行管理机所分发的任务,对自动编码机的权值矩阵进行训练,然后每个工作机将它所训练的权值矩阵反馈给管理机。本实施例中,工作机采用迭代的方式对自动编码机的权值矩阵进行训练,每次迭代处理一条输入数据。假设部分数据集是一段文本数据或多段文本数据的集合,那么一条输入数据就是上述文本数据的一行。本步骤中,工作在读取一条输入数据后,执行正向传播,即利用输入数据计算出隐藏层和输出层(指正向传播的输出层)的值。计算完毕后再执行反向传播,即利用得到的输出数据误差计算出神经网络的参数,完成参数更新。此时就完成了自动编码机的一次迭代,之后,工作机读取下一条输入数据,进行下一次的迭代,这样不断重复,直至将输入数据中的每条数据至少计算一遍。
本实施例中,在每次迭代时,采用随机梯度下降算法对神经网络的参数(主要是指自动编码机的权值)进行更新。相比于诸如L-BFGS等有二次收敛能力的算法,计算量和空间消耗都有了明显的降低,特别适合于自动编码机。另外本实施例还具有压缩特征得到数据高效表示的能力,同时能够自动剔除不符合模型的特例并补全不完整数据。
进一步地,以两个单层神经网络组成的自动编码机为例,介绍一个优选实施例中完成一次迭代的算法,该算法如下:
步骤1031:根据公式(1)计算隐藏层向量h。本实施例中,h为K*1列向量,它是正向传播过程的输出。
h=sigmoid(W1x+B1) (1)
其中,sigmoid为激活函数,sigmoid(a)=1/(1+e-a)。W1为K*M矩阵,它是第一权值矩阵。B1为K*1列向量,它是第一偏置向量。M为输入向量的维度,特别地,文本数据中M指字典长度。K为隐藏层节点数目。x为输入向量。
步骤1032:根据公式(2)计算解码后的输出向量
W2为M*K矩阵,它是第二权值矩阵。B2为M*1列向量,它是第二偏置向量。“.*”表示点乘,I为指示函数向量,它是M*1的列向量,向量I中的任意一个元素满足:
步骤1033:根据公式(3)、(4)计算误差向量Eout和Eh。Eout表示输出层误差向量,Eh表示隐藏层误差向量。
downstream表示任一单层神经网络的输出。
步骤1034:根据公式(5)、(6)计算权值矩阵的更新矩阵。其中ΔW1为
第一权值矩阵W1的更新矩阵。ΔW2为第二权值矩阵W2的更新矩阵。
步骤1035:基于步骤1034得出的更新矩阵,根据公式(7)对第一权值矩阵W1和第二权值矩阵W2进行更新。
W=W+Φ(xinΔW-αW) (7)
其中,Φ为预设的步长,通常为常数,α为预设的正则化参数。W泛指第一权值矩阵W1或者第二权值矩阵W2,ΔW泛指第一权值矩阵的更新矩阵ΔW1或者第二权值矩阵的更新矩阵ΔW2。xin泛指单层神经网络的输入数据,在计算W1的更新时,xin代表输入向量,在计算W2的更新时,xin代表隐藏层向量。
步骤1035执行完毕后就完成了一次迭代,下一次的迭代将基于更新后的权值矩阵执行。需说明的是,在上述公式(2)中,增加了点乘指示函数向量I的这一部分,其目的是在反向传播时屏蔽无效计算和操作。本实施例中,针对自动编码机低效处理稀疏数据的缺陷,创造性的提出屏蔽计算过程中的无效计算和无效存储开销的思路。现有自动编码机在处理稀疏数据时,一般将稀疏数据转换为非稀疏数据进行处理,不仅导致时间和空间的巨大浪费,而且由于大量无效数据的填充也极大地影响了***计算结果的正确性。故而,本发明针对此问题,从根本实现上对算法进行改进,在计算过程中,只着眼于有效值以及其对应神经元,反向传播时屏蔽无效计算和操作。成功地将时间复杂度由二次复杂度降为线性复杂度,保证计算正确性的情况下,大幅度提高了模型训练速度。
在完成所对应的部分数据集的处理后,各个工作机分别将自己训练得到的权值上传至管理机。
步骤104:管理机接收各个工作机训练得到的权值,然后进行Reduce操作,即对所有工作机得到的权值矩阵计算平均,得到最终的权值矩阵,从而完成对并行自动编码机的训练。
上述实施例仅包含一次MapReduce操作。需要说明的是,在另一个实施例中,可将输入数据划分成更多数目的部分数据集,并将一次MapReduce操作拆分成多次MapReduce进行处理。该实施例中,每完成一次MapReduce操作,管理机就将当前计算的权值发送至各个工作机,各个工作机将所接收的权值作为下一次MapReduce操作时的初始权值。该实施例特别适合于输入数据数据量过大,或者能够明显观察到平台的性能开始下降的应用场景。基于神经网络初始值与正确性理论(即同样的神经网络初始值,对不同数据样本进行拟合,最终结果所代表的数据分布相同),该实施例对分布式***的每一个节点上初始化同样的神经网络。每计算一定规模的数据,对模型的参数进行收集归并更新模型参数,不断迭代得到最终权值。这种方案能够在保证模型的并发性以及计算结果正确性的前提下,实现自动编码机的并行计算,大幅提高自动编码机的工作效率。
为了验证本发明的实际技术效果,发明人以基于用户对电影打分的数据集的推荐***为例进行了测试。其中,用户对电影打分的数据集的一部分作为训练数据交给自动编码机执行训练过程,获得训练后的自动编码机,然后将输入数据代入到自动编码机里,得出未知部分的用户对电影的打分,进而将用户感兴趣的电影推荐给用户。将训练后的自动编码机输出的结果和真实结果进行对比,就可以得到MAE(mean absolute error),RMSE(rootmean square error)等测试指标。测试表明,本发明的MAE,RMSE等测试指标与现有技术中其它训练方法得到的自动编码机基本一致,证明按照本发明方法的训练自动编码机具有良好的准确度。
进一步地,图4示出了本发明中具有不同数目工作机的平台上,自动编码机的模型参数训练时间随数据规模变化的曲线。其中,工作机配置为RAM:8GB、CPU:4GHZ;横坐标为输入数据条数(单位:千),纵坐标为运行时间(单位:s)。从图4中可以看出,本发明的自动编码机的运行速度快,同时训练时间随样本数的增长仅呈线性增长,相比现有技术中的非线性增长,可以显著减少训练时间。另一方面,图4中三条表示不同工作机数量下运行结果的曲线,还显示本发明的算法具有优秀的并行效率。图5示出了现有技术中一种基于MATLAB实现的DeepLearningTool中SAE在配置为RAM 8GB,CPU 4GHZ的计算机上的运行时间随数据规模变化的曲线。其中,DeepLearningTool可参考Rasmus Berg Palm(2012).http:// www.mathworks.com/matlabcentral/fileexchange/38310-deep-learning-toolbox。其中SAE是Deeplearningtool中的一个实现代码的名字。可以看出,该算法的时间复杂度为二次复杂度,它是非线性的。这种非线性现有并行自编码机每次迭代都需要大量的数据传输,进而消耗大量的时间。当迭代次数达到一定级别时,运行时间将高到不可忍受。
最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其它的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。
Claims (10)
1.一种基于并行自动编码机的特征学习方法,涉及管理机、多个工作机以及训练数据集,所述训练数据集被划分为多个部分数据集,每个工作机均与一个或多个所述部分数据集对应;所述特征学习方法包括下列步骤:
1)管理机执行Map操作,为各个工作机规划任务并将任务分发给每个工作机;其中,各个工作机的任务一致,均是基于所输入的数据对自动编码机的权值矩阵进行训练;所述权值矩阵包含了所述自动编码机的所有权值;
2)每个工作机分别读取该工作机对应的部分数据集;
3)各个工作机并行地执行管理机所分发的任务,对自动编码机的权值矩阵进行训练,然后每个工作机将它所训练的权值矩阵反馈给管理机;
4)管理机执行Reduce操作,对各个工作机反馈的权值矩阵进行算数平均。
2.根据权利要求1所述的基于并行自动编码机的特征学习方法,其特征在于,所述训练数据集被划分为多个子训练数据集,每个子训练数据集被划分为多个部分数据集,每个工作机均与一个子训练数据集的一个所述部分数据集对应;
所述步骤2)中,每个工作机所读取的是当前子训练数据集中它所对应的部分数据集;
所述步骤4)还包括:所述管理机执行Reduce操作对各个工作机反馈的权值矩阵进行算数平均后,得到基于当前子训练数据集进行更新后的权值矩阵,所述管理机将更新后的权值矩阵分配给各个工作机作为下一轮训练的初值权值矩阵,然后重新执行步骤1)~4),直至所有子训练数据集均处理完毕。
3.根据权利要求1或2所述的基于并行自动编码机的特征学习方法,其特征在于,所述步骤1)还包括:管理机将相关初始化参数发至各工作机节点,所述相关初始化参数包括:数据规模、隐藏层配置、输入数据路径、正则化参数和随机数种子中的一项或多项。
4.根据权利要求1或2所述的基于并行自动编码机的特征学习方法,其特征在于,所述步骤3)中,每个工作机执行管理机所分发的任务的过程如下:读取当前部分数据集中的一条数据作为输入数据,计算出隐藏层和输出层的值,然后利用得到的输出层的值与原输入数据之间的误差更新所述权值矩阵,工作机读取当前部分数据集中的下一条数据,然后重复上述过程,直至当前部分数据集中的每一条数据均至少输入过一遍。
5.根据权利要求4所述的基于并行自动编码机的特征学习方法,其特征在于,所述步骤3)中,基于随机梯度下降算法,根据所述的输出层的值与原输入数据之间的误差更新所述权值矩阵。
6.根据权利要求5所述的基于并行自动编码机的特征学习方法,其特征在于,所述自动编码机由第一单层神经网络和第二单层神经网络组成,所述权值矩阵包括对应于第一单层神经网络的第一权值矩阵和对应于第二单层神经网络的第二权值矩阵;
所述步骤3)中,每个工作机执行管理机所分发的任务的过程如下:
31)计算隐藏层向量h=sigmoid(W1x+B1);
其中,sigmoid为激活函数,W1为第一权值矩阵,B1为第一偏置向量,M为输入向量的维度,K为隐藏层节点数目;
32)计算解码后的输出向量
其中,W2为第二权值矩阵,B2为第二偏置向量,“.*”表示点乘,I为指示函数向量,向量I中的任意一个元素满足:
33)计算输出层误差向量
计算隐藏层误差向量
其中,downstream表示任一单层神经网络的输出;
34)基于输出层误差向量Eout和隐藏层误差向量Eh对第一权值矩阵W1和第二权值矩阵W2进行更新。
7.一种基于并行自动编码机的特征学***台的管理机和基于Spark平台的多个工作机;
其中,所述管理机用于执行Map操作,为各个工作机规划任务并将任务分发给每个工作机;以及执行Reduce操作,对各个工作机反馈的权值矩阵进行算数平均;其中,各个工作机的任务一致,均是基于所输入的数据对自动编码机的权值矩阵进行训练;所述权值矩阵包含了所述自动编码机的所有权值;
所述多个工作机用于分别读取该工作机对应的部分数据集;以及并行地执行管理机所分发的任务,对自动编码机的权值矩阵进行训练,然后每个工作机将它所训练的权值矩阵反馈给管理机。
8.根据权利要求7所述的基于并行自动编码机的特征学习***,其特征在于,所述训练数据集被划分为多个子训练数据集,每个子训练数据集被划分为多个部分数据集,每个工作机均与一个子训练数据集的一个所述部分数据集对应;
所述工作机还用于在基于一个子训练数据集进行训练时,读取该子训练数据集中该工作机所对应的部分数据集;
所述管理机还用于执行Reduce操作对各个工作机反馈的权值矩阵进行算数平均后,得到基于当前子训练数据集进行更新后的权值矩阵,将更新后的权值矩阵分配给各个工作机作为下一轮训练的初值权值矩阵。
9.根据权利要求7或8所述的基于并行自动编码机的特征学习***,其特征在于,所述管理机还用于将相关初始化参数发至各工作机节点,所述相关初始化参数包括:数据规模、隐藏层配置、输入数据路径、正则化参数和随机数种子中的一项或多项。
10.根据权利要求7或8所述的基于并行自动编码机的特征学习***,其特征在于,所述工作机用于按照下述过程执行管理机所分发的任务:读取当前部分数据集中的一条数据作为输入数据,计算出隐藏层和输出层的值,然后利用得到的输出层的值与原输入数据之间的误差更新所述权值矩阵,工作机读取当前部分数据集中的下一条数据,然后重复上述过程,直至当前部分数据集中的每一条数据均至少输入过一遍。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610147007.5A CN105825269B (zh) | 2016-03-15 | 2016-03-15 | 一种基于并行自动编码机的特征学习方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610147007.5A CN105825269B (zh) | 2016-03-15 | 2016-03-15 | 一种基于并行自动编码机的特征学习方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105825269A CN105825269A (zh) | 2016-08-03 |
CN105825269B true CN105825269B (zh) | 2018-06-26 |
Family
ID=56987252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610147007.5A Active CN105825269B (zh) | 2016-03-15 | 2016-03-15 | 一种基于并行自动编码机的特征学习方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105825269B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3494520A1 (en) | 2016-08-04 | 2019-06-12 | Google LLC | Encoding and reconstructing inputs using neural networks |
CN107784364B (zh) * | 2016-08-25 | 2021-06-15 | 微软技术许可有限责任公司 | 机器学习模型的异步训练 |
CN107169560B (zh) * | 2017-04-19 | 2020-10-16 | 清华大学 | 一种自适应可重构的深度卷积神经网络计算方法和装置 |
CN108491431B (zh) * | 2018-02-09 | 2021-09-17 | 淮阴工学院 | 一种基于自编码机和聚类的混合推荐方法 |
CN109614984A (zh) * | 2018-10-29 | 2019-04-12 | 深圳北斗应用技术研究院有限公司 | 一种同源图像检测方法和*** |
CN109919313B (zh) * | 2019-01-31 | 2021-06-08 | 华为技术有限公司 | 一种梯度传输的方法及分布式训练*** |
CN111062416B (zh) * | 2019-11-14 | 2021-09-21 | 支付宝(杭州)信息技术有限公司 | 用户聚类及特征学习方法、设备、计算机可读介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833228A (zh) * | 2012-07-27 | 2012-12-19 | 江苏亿通高科技股份有限公司 | 一种云计算环境下免疫网络的病毒检测***及方法 |
CN103544528A (zh) * | 2013-11-15 | 2014-01-29 | 南京大学 | 一种基于Hadoop的BP神经网络分类方法 |
CN105184368A (zh) * | 2015-09-07 | 2015-12-23 | 中国科学院深圳先进技术研究院 | 一种分布式极限学习机优化集成框架方法***及方法 |
-
2016
- 2016-03-15 CN CN201610147007.5A patent/CN105825269B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833228A (zh) * | 2012-07-27 | 2012-12-19 | 江苏亿通高科技股份有限公司 | 一种云计算环境下免疫网络的病毒检测***及方法 |
CN103544528A (zh) * | 2013-11-15 | 2014-01-29 | 南京大学 | 一种基于Hadoop的BP神经网络分类方法 |
CN105184368A (zh) * | 2015-09-07 | 2015-12-23 | 中国科学院深圳先进技术研究院 | 一种分布式极限学习机优化集成框架方法***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105825269A (zh) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105825269B (zh) | 一种基于并行自动编码机的特征学习方法及*** | |
US9787705B1 (en) | Extracting insightful nodes from graphs | |
CN113535984B (zh) | 一种基于注意力机制的知识图谱关系预测方法及装置 | |
Ciaburro | MATLAB for machine learning | |
CN110175628A (zh) | 一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法 | |
Goodwin et al. | Real-time digital twin-based optimization with predictive simulation learning | |
US20230186138A1 (en) | Training of quantum neural network | |
US20130144925A1 (en) | Systems and methods for solving computational problems | |
CN105893609A (zh) | 一种基于加权混合的移动app推荐方法 | |
CN105593849A (zh) | 数据库访问 | |
CN107220311B (zh) | 一种利用局部嵌入话题建模的文本表示方法 | |
US10942939B2 (en) | Systems and methods for unsupervised streaming feature selection in social media | |
CN112183881A (zh) | 一种基于社交网络的舆情事件预测方法、设备及存储介质 | |
CN104850533A (zh) | 一种带约束的非负矩阵分解方法及求解方法 | |
CN112148776A (zh) | 基于引入语义信息的神经网络的学术关系预测方法和装置 | |
CN110175469A (zh) | 一种社交媒体用户隐私泄漏检测方法、***、设备及介质 | |
Lagemann et al. | Deep learning of causal structures in high dimensions under data limitations | |
Rai | Advanced deep learning with R: Become an expert at designing, building, and improving advanced neural network models using R | |
Liu et al. | Illustration design model with clustering optimization genetic algorithm | |
Piegorsch et al. | Computational Statistics in Data Science | |
CN102779288B (zh) | 一种基于场理论的本体分析方法 | |
CN109871414A (zh) | 基于上下文向量图核的生物医学实体关系分类方法 | |
Mehta | Mastering Python scientific computing | |
Bellot | Learning probabilistic graphical models in R | |
Khandare et al. | Analysis of python libraries for artificial intelligence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |