原文链接:http://blog.echen.me/2011/07/18/introduction-to-restricted-boltzmann-machines/
原作者代码地址:https://github.com/echen/restricted-boltzmann-machines
部分翻译:http://www.cnblogs.com/zhangchaoyang/articles/5537643.html
cnblogs上的这篇没有完全翻译,我主要翻译这篇没有提及但我需要用到的部分(就是指这篇译文中缺失的例子部分)。关于RBM概念介绍部分的翻译,请参考:http://www.cnblogs.com/zhangchaoyang/articles/5537643.html ===>这篇文章中有的本文将不再赘述
背景:假设你要求一群用户从0-100分来给一组电影打分。在经典的因子分析中,你可以尝试依据一组隐藏因子来解释每部电影及用户。例如,像星球大战和指环王这类电影与“科幻小说和魔幻”这类隐藏因子可能强相关,而喜欢瓦力和玩具总动员的用户与“皮克斯动画工作室”这一隐藏因子可能强相关。
RBM可以理解为一种二值化的因子分析法(这是对它的一种理解方式,当然还有其他的理解方式及用途,原文作者主要采用二值化因子分析法去解释并实现)。与以往让用户采用一个连续的分数段为电影打分不同的是,这里只是告诉你他们“喜欢”还是“不喜欢”一部电影(1或0),之后RBM将会尝试找到之所以这样去选择电影的隐藏因子。
例如,假设我们有一组共六部电影(哈利·波特、阿凡达、指环王3、角斗士、泰坦尼克号和星梦泪痕)并且让用户告诉我们他们想看哪些。如果我们想学到两个隐藏单元潜在的电影偏好---比如,在我们六部电影里呈现出了两个自然分组:“科幻小说/魔幻”组(包括哈利·波特、阿凡达和指环王3)以及“奥斯卡获得者”组(包括指环王、角斗士和泰坦尼克号),所以我们可能希望我们的隐藏单元将会与这些分组相对应---那么,RBM可能看起来像这样:
假设我们的两个隐藏单元确实与“科幻小说/魔幻”及“奥斯卡获得者”相对应。
按照原文作者给出的代码(https://github.com/echen/restricted-boltzmann-machines),让我们来演示一些例子。
首先,我使用一些造的数据来训练RBM:
该网络学习到了以下权重:
请注意,第一个隐藏单元看起来对应“奥斯卡获得者”,第二个隐藏单元看起来对应“科幻小说/魔幻”,跟我们预期一致。
如果给RBM一个新的用户输入会发生什么呢?(可视层到隐藏层)比如George, 他的偏好是(Harry Potter = 0, Avatar = 0, LOTR 3 = 0, Gladiator = 1, Titanic = 1, Glitter = 0) ,结果是“奥斯卡获得者”对应的隐藏单元被置1(而不是“科幻小说/魔幻”),正确地猜出乔治可能更喜欢“奥斯卡获得者”类型的电影。
如果我们只**“科幻小说/魔幻”对应的单元,并且让RBM训练一段时间会发生什么呢?(隐藏层到可视层)在我的试验中,有三次哈利·波特、阿凡达和指环王3被置1;有一次阿凡达和指环王3被置1,而哈利波特没有;有两次,哈利·波特和指环王3被置1,而阿凡达没有。注意,给予我们的训练集,这些生成的偏好的确匹配了我们觉得真正的科幻迷想要看的电影。
来源:网络
1、k近邻算法是学习机器学习算法最为经典和简单的算法,它是机器学习算法入门最好的算法之一,可以非常好并且快速地理解机器学习的算法的框架与应用。它是一种经典简单的分类算法,当然也可以用来解决回归问题。 2、kNN机器学习算法具有以下的特点: (1)思想极度简单 (2)应用的数学知识非常少 (3)解决相关问题的效果非常好 (4)可以解释机器学习算法使用过程中的很多细节问题 (5)更加完整地刻画机器学习...
在求解具有高维搜索空间的优化问题时,由于搜索空间随问题大小呈指数增长,经典优化算法无法提供合适的解,因此使用精确技术(如穷举搜索)来解决这些问题是不可能的实用。完毕在过去的几十年里对受自然现象行为启发的算法越来越感兴趣。许多研究者表明,这些算法非常适合于解决复杂的计算问题,如目标函数的优化、模式识别、控制目标、图像处理、滤波器建模等。到目前为止,研究者们已经采用了各种启发式方法来解决这些问题例如遗...
一、实验要求 <1>打印出二叉树的三种遍历序。 <2>设计算法按中序次序输出二叉树中各结点的值及其所对应的层次数。 <3>求二叉树的高度。 <4>求二叉树的结点数。 <5>...
最近了解了卷积神经网络(CNN),CNN是受语音信号处理中时延神经网络(TDNN)影响而发明的。本篇的大部分内容都来自关于TDNN原始文献Waibel A, Hanazawa T, Hinton G, et al. Phoneme recognition using time-delay neural networks[J] (TDNN的原始论文)的理解和整理。该文写与1989年,在识别"...
随着互联网科技的飞速发展,自媒体平台正在发挥着越来越大的影响力,企业进行互联网的品牌建设,一定会通过网络媒体,推广自己在网络中的知名度以及品牌内容,从而形成公众认识的企业品牌形象。同事个人自媒体也在发光发热,多少人在自媒体这个行业里赚到了人生的第一桶金。公总号作为自媒体的代表,自然也吸引了不少人的加入,导致现在的微信公总号也是越来越难做了。现在微信公总号的粉丝价格已经涨到了2-3元一个粉丝的地步。...
前言 需要使用VMware来创建ubuntu虚拟机。 安装VMware 我是参考伪万能的洋桑 安装的VMware。 但是一定要去官网去下载最新的VMware,如果使用旧版的在打开创建好的虚拟机会出现蓝屏问题。 关于**问题,直接搜最新的***即可。 安装ubuntu 参考悠悠happy安装ubuntu。 这里需要下载iso文件。几个G的那种,不要下载错了。 这里想要图形化界面,下载ubuntu-1...
Test case example: Test Case ID: CUST.01 Function: Add a new Customer Data Assumptions: Customer database has been restored General Description: Add a new customer, via the Customer Add...
刚好项目有需求要使用到,了解后觉得挺有意思的就发出来跟大家分享下,主要还是为了以后自己可以回头翻翻,大神勿喷啊 下面开始进入正题: 一个原始字符串,经过不断的修改,删除最后变成另外一个字符串,怎么体现出这个字符串的修改痕迹呢,这里面有个最小路径的概念,也就是原始字符串->目标字符串最少要经过多少步骤 假设原字符串:src="abCd"; 假设新字符串:dst="...
1、点击File,选择New --> Maven Project 2、勾选create a simple project(skip archetype selection),选择Working set,点击Next 3、填写Artifact信息,Packaging选择pom,点击Finish jar为Java工程; pom为父工程 war为Web工程 4、父工程结构...
Java条件语句之 if Java条件语句之 if…else Java条件语句之多重 if Java条件语句之嵌套 if Java条件语句之 switch 1、 switch 后面小括号中表达式的值必须是整型或字符型 2、 case 后面的值可以是常量数值,如 1、2;也可以是一个常量表达式,如 2+2 ;但不能是变量或带有变量的表达式,如 a * 2 3、 case 匹配后,执行匹...
I'm developing an app with Python on Google App Engine at http://shs1509-grc.appspot.com/ And since I am in China, appspot is blocked, and my users have to use the hostname http://shs1509-grc.appsp0t....
My Code to execute a simple click button automation is given below , I am very new to appium so I am just trying to get my app and click one button , as i have given my exception down it is stopping m...
I have a multiple Input Checkbox List and I want to create a JS function that when the user selects more than specified count items in the checkbox list, it will reject the action but if they have few...
I am using solrj as client for indexing documents on the solr server. I am having problem while deleting the indexes by 'id' from the solr server. I am using following code to delete the indexes: Afte...
I'd like to start this off by saying batch scripting is something I ever do, and it's for an assignment in my class, so please bear with me. I am trying to take an array index and swap one of the indi...