公告:
编码表示 您当前所在位置:时时彩计划群微信号 > 编码表示 > 正文

对此主题感兴趣的读者可以在我的GitHub存储库中查看这些步骤

来源:未知作者:admin 更新时间:2018-04-19 17:03
快三彩票筹划圈套 彩票收集器 500万不时彩彩票网 合作过滤是推荐体系应用的一种方法,经由进程网络来自许多其余用户的口胃或偏好消息来猜测特定用户的兴趣。合作过滤技术的基础假定是,如果用户A对某个成绩与人B有不异的口胃或见地,那末A更有能够在不同的成

  快三彩票筹划圈套彩票收集器500万不时彩彩票网合作过滤是推荐体系应用的一种方法,经由进程网络来自许多其余用户的口胃或偏好消息来猜测特定用户的兴趣。合作过滤技术的基础假定是,如果用户A对某个成绩与人B有不异的口胃或见地,那末A更有能够在不同的成绩上具备B的见地。

  在本文中,您将学习如何依照用户的口胃和观看和评级不异和其余电影的其余用户的口胃猜测用户将给予电影的评分。

  Autoencoder是一种深度学习神经网络架构,可完成合作过滤领域的最新性能。在文章的第一部分,我会给你一个实践概述和简略的自动编码器及其扩大Deep Autoencoders的基本数学。在第二部分中,咱们将深入实际的内容,并将向您展示如安在TensorFlow中渐渐完成这一技术。在本文中,我将仅包括和批评模型中最主要的部分。全部模型,输入管道和预处理能够或者在相应的GitHub存储库中检查。

  在咱们专一于Deep Autoencoders以前,咱们应当谈判它的更简略的版本。Autoencoder 是一种人工神经网络,用于学习一组输入数据的表现(编码),但凡用于完成降维。

  在结构上,自动编码器的情势是一个前馈神经网络,它具备输入层,一个潜藏层和一个输入层(图1)。输入层具备与输入层不异数目的神经元以重修其本人的输入。这使得自动编码器成为无监督学习的一种情势,这意味着不必要标识表记标帜数据 - 只必要一组输入数据而不是输入 - 输入对。

  Autoencoder具备比输入层更小的潜藏层是有用的。这类成果迫使模型经由进程学习数据中的相关性在潜藏层中树立数据的紧缩表现。

  从输入到潜藏层的转换被称为编码步骤,从潜藏层到输入层的转换称为解码步骤。咱们也能够或者在数学上将这些转换界说为映射:

  该映射是经由进程将输入数据向量x乘以权重矩阵,增加偏置项并将所得到的向量施加非线性运算σ(比方S形,tanh或整流线性单位)来完成的。

  在熬炼时代,编码器将输入数据样本 x并将其映射到所谓的潜藏或潜伏表现z。 而后解码器将z映射到输入 向量x,该向量是(在最好的情况下)输入数据x的切当表现。请把稳,但凡情况下,输入x的切当重新树立是不可能的。

  简略自动编码器的扩大是Deep Autoencoder(图2)。从图2中能够或者看出,与简略的计数器部分唯一的差别在于潜藏层的数目。

  额定的潜藏层使Autoencoder能够或者从数学长学习数据中更繁杂的底层情势。Deep Autoencoder的第一层能够或者学习原始输入中的一阶特性(比方图象中的边沿)。第二层能够或者学习对应于一阶特性的表面中的图案的二阶特性(比方,依照哪些边沿倾向于一起出现 - 比方以组成表面或角检测器)。Deep Autoencoder的更深层每每学习更高阶的功效。

  如前所述,您将学会猜测用户将给予电影的评级。就此而言,咱们将应用闻名的MovieLens数据集。MovieLens是一个基于网络的推荐体系和在线社区,为用户推荐观看电影。

  意味着用户 nr 1 给了电影 nr 595 的五星评级。光阴戳能够或者被疏忽, 因为它不会被应用。

  咱们实行的深层学习情势必要一个特定的数据结构来停止培训和测试。这个数据结构是一个 UxM 矩阵, 其中 U 是用户的数目和 M 的电影数目。每行 i ∈ U 是唯一的用户 id 和每列 j ∈ M 一个唯一的电影 id。在图3中能够或者看到这样一个矩阵的可视化。

  此矩阵中的每个条款都是用户给出特定电影的评分。输入0意味着用户没有给这部电影任何评估。比方,用户Nr.1给予电影Nr.3评级为4星,而电影Nr.1完整没有评级。

  在模型实行和熬炼以前,必要对数据停止其余重新处理步骤 - 将数据划分为熬炼和测试数据集。这一步非常简略。到目前为止,咱们有一个User-Movie Matrix,其中每行都是评级列表。要从列表中得到熬炼和测试集,咱们必须从每行中取一部分评级,并仅将它们用于熬炼,而仅将其余子集用于测试。

  作为描写进程的一个例子,咱们斟酌一个仅包括15部电影的小得多的数据集。一个特定的用户能够给这些电影如下评级:

  请记着,0表现该电影未被评级。现在咱们将前10部电影中的一部分作为熬炼集并假定其余的还没有被评分:

  因此, 原始数据的最后5电影评级被用作测试数据, 而电影1–10被屏蔽为未分级:

  这只是一个简略的演示,如何得到不同的组合。在原始的MovieLens数据会合,我为每个用户仅应用10个电影评级停止测试,其余(绝大多数)用于模型的熬炼。

  Deep Autoencoder被完成为一个类,其中包括一切必须的操纵,如类内的推理,优化,丧失,精确性等。

  在构造器中,权重和偏差的内核初始化器被设置。不才一步中,网络中的一切权重和偏差都会被初始化。权重是正态分布的,均匀值为0.0,方差为0.02,而偏差在开端时都设置为0.0。

  在这个特定的例子中,网络有三个潜藏层,每层包括128个神经元。输入层(和输入层)的巨细对应于数据会合一切以后影片的数目。

  给定输入数据样本x(用户 - 电影矩阵的一行),计算网络输入的正向经由进程。潜藏层应用sigmoid作为激活函数。请把稳,最后一层没有非线性或偏置项。

  经由进程网络猜测,咱们能够或者计算这些猜测与相应标签(网络输入x)之间的丧失。为了计算丧失的均匀值,咱们还必要知道非零标签的数目 - 换句话说,便是熬炼集顶用户的总评分数。

  网络的优化/熬炼步骤彷佛有点辣手,让咱们一步一步谈判。给定输入x,计算相应的输入。您能够已经把稳到,输入x中的大部分值都是零值,因为用户一定没有观看和评估数据会合的一切5953电影。因此,倡议不要直接应用网络的原始猜测。相同,咱们必须肯定命据输入x中的零值索引并将与这些索引对应的猜测向量中的值也设置为零。猜测的这类操纵极大地减少了网络的熬炼光阴,使网络无机遇将熬炼勤恳会合在用户实际得到的评分上。

  在此步骤以后,能够或者计算丧失和正则化丧失(可选)。AdamOptimizer将丧失函数最小化。请把稳,该方法前去一个均方根偏差(RMSE)而不是均方偏差(MSE),以得到更好的精度测量。

  在熬炼阶段的一些时代以后,神经网络已经在每个用户的熬炼日期调会合看到一切的评分乘以光阴。此时该模型应当已经领会了数据中潜伏的潜藏情势和用户对应的合作电影口胃。给定用户评分熬炼样本x,模型猜测输入x。该向量由输入x的重新树立(如预期的那样)组成,但现在还包括输入x中先前为零的额定值。这意味着该模型给未评级的电影评级。这个评级对应于用户的口胃 - 模型已经从数据中辨认和学习的品味。

  为了能够或者测量模型的精确性,必要培训和测试数据集。依照熬炼集停止猜测。雷同于熬炼阶段,咱们只斟酌对应于测试会合非零值的索引的输入值。

  现在咱们能够或者计算猜测值与实际额定值之间的均方根偏差丧失(RMSE)。RMSE表现猜测值与观察值之间差其余样本标准偏差。比方,0.5的RMSE意味着均匀猜测评分与实际评分相差0.5星。

  最后一步搜罗实施熬炼进程并搜查模型性能。在这一点上,我不会过细谈判树立数据输入管道,图表,会话等的细节,因为这些步骤但凡是已知的。对此主题感兴趣的读者能够或者在我的GitHub存储库中检查这些步骤。

  在这里,您能够或者观察前50个时代的熬炼和测试表现。经过50个迭代后,咱们在测试集的猜测和实际评分之间得到0.929星的偏差。

 

关于我们
联系我们
  • 杭州浩博建筑装饰工程有限公司
  • 联系地址:杭州市益乐路方家花苑43号2楼
  • 电 话:0571-85360638
  • 传 真:0571-85360638