自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (6)
  • 收藏
  • 关注

原创 《Deep Neural Networks for YouTube Recommendations》学习笔记

Google出品,学习一下! 文章脉络清晰,主要包括六个部分:YouTube使用DNN的背景、整体推荐系统框架、候选集生成(candidate generation)、排序(ranking)、总结、感谢,其中候选集生成和排序是推荐系统框架的重要组成部分。本文主要学习下整体推荐系统框架、候选集生成(candidate generation)、排序(ranking)这三个部分1.整体推荐系统框架不得不说

2017-05-05 17:54:26 9723 3

原创 《Wide and Deep Learning for Recommender Systems》学习笔记

顾名思义,Google提出的这篇文章将Wide Model和Deep Model结合起来进行,思路非常值得学习。1.Wide Model首先说一下Wide Model,就是上图中左边的那一部分,是一个简单的逻辑回归模型。这一部分比较简单,不多有一个新的思路就是交叉特征:论文中一个比较形象的例子 For binary features, a cross-product transformation

2017-05-02 14:26:35 12988 3

原创 Jupyter notebook远程访问服务器

1.背景  一直苦恼于本地机器和服务器上都要配置一些机器学习方面的环境,今天花了点时间研究了下Jupter notebook远程访问服务器,所以记录一下。  有些步骤非必须,这里尽量写清楚,读者理解后自行决定如何安装,本文以非root用户安装。2.安装步骤(1)登录服务器(2)检查是否有安装jupyter notebook,终端输入jupyter notebook,如果报错就是没有啦,那么就要用下面

2017-02-18 13:20:31 37934 13

原创 python利用LSTM进行时间序列分析预测

关键词:python、Keras、LSTM、Time-Series-Prediction      关于理论部分,可以参考这两篇文章(RNN、LSTM),本文主要从数据、代码角度,利用LSTM进行时间序列预测。(1)原始时间序列数据(只列出了18行)1455.2199711399.4200441402.1099851403.4499511441.4699711457.59997614

2017-01-12 12:52:38 85292 74

原创 奇异值分解(SVD)及其扩展详解

SVD是一种常用的矩阵分解技术,是一种有效的代数特征提取方法。SVD在协同过滤中的主要思路是根据已有的评分情况,分析出评分者对各个因子的喜好程度以及电影包含各个因子的程度,最后再反过来分析数据得出预测结果。RSVD、SVD++、ASVD是基于SVD的改进算法。本文算法主要考虑个性化推荐领域1.Matrix Factorization Model 和 Baseline Predictors   SVD

2017-01-10 13:36:19 9301 6

原创 协同过滤算法

1.初识协同过滤 (CF)   要理解什么是协同过滤 (Collaborative Filtering, 简称 CF),首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。   协同过滤一般是在海量的用户中发掘出一小部分和你品位比较类似的,

2017-01-05 10:18:19 2144

原创 最大熵模型

以前看最大熵模型感觉是懵懵懂懂,最近看完条件随机场(CRF)之后,再来看最大熵模型,发现两者关联很大,再结合逻辑斯蒂回归,理解起来就比较容易,这里是整理笔记。1.定义

2017-01-01 10:54:54 3616 2

原创 条件随机场(CRF)

条件随机场应该是机器学习领域比较难的一个算法模型了,难点在于其定义之多(涉及到概率图模型、团等概率)、数学上近似完美(涉及到概率、期望计算,最优化方面的知识),但是其在自然语言处理方面应用效果比较好,所以本文结合李航老师的《统计学习方法》学习一下。1.定义1.1 图  图是由结点和连接结点的边组成的集合。结点和边分别记作v和e,结点和边的集合分别记作V和E,图记作G=(V,E)。无向图是指边没有方向

2016-12-28 11:15:51 42360 8

原创 隐马尔可夫模型(HMM)

隐马尔可夫模型原理部分可以概括为三句话:一个定义、两个假设、三个问题  HMM是一个五元组(Y,X,π,A,B),其中Y是状态(输出)的集合,X是观察值(输入)集合,π是初始状态的概率,A是状态转移概率矩阵,B是输出观察值概率矩阵。1.定义  隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态的序列,再由各个状态随机生成一个观测而产生观测的序列的过程。  隐马尔可夫

2016-12-26 15:10:18 9829

原创 EM算法

1.背景知识(1)期望离散型  X1,X2,X3,……,Xn为这离散型随机变量,p(X1),p(X2),p(X3),……p(Xn)为这几个数据的概率函数。在随机出现的几个数据中p(X1),p(X2),p(X3),……p(Xn)概率函数就理解为数据X1,X2,X3,……,Xn出现的频率f(Xi).则:   设Y是随机变量X的函数:Y=g(X)(g(X)是连续函数)它的分布律为若绝对收敛,则有: 连

2016-12-21 16:25:32 3605

原创 倒排索引详解及C++实现

1.介绍  倒排索引是现代搜索引擎的核心技术之一,其核心目的是将从大量文档中查找包含某些词的文档集合这一任务用O(1)或O(logn)的时间复杂度完成,其中n为索引中的文档数目。也就是说,利用倒排索引技术,可以实现与文档集大小基本无关的检索复杂度,这一点对于海量内容的检索来说至关重要。2.示例  假设我们有如下几篇文档:  D1 = “谷歌地图之父跳槽Facebook”   D2 = “谷歌地图之

2016-12-17 11:41:13 8773 1

转载 基于MapReduce的PageRank算法实现

PageRank对网页排名的算法,曾是Google发家致富的法宝。以前虽然有实验过,但理解还是不透彻,这几天又看了一下,这里总结一下PageRank算法的基本原理。1.什么是pagerank  PageRank的Page可是认为是网页,表示网页排名,也可以认为是Larry Page(google 产品经理),因为他是这个算法的发明者之一,还是google CEO(^_^)。PageRank算法计算每

2016-12-15 19:36:05 7405

原创 深度信念网络(DBN)

1.初识深度信念网络  深度信念网络是一个概率生成模型,与传统的判别模型的神经网络相对,生成模型是建立一个观察数据和标签之间的联合分布,对P(Observation|Label)和 P(Label|Observation)都做了评估,而判别模型仅仅而已评估了后者,也就是P(Label|Observation)。  DBNs由多个限制玻尔兹曼机(Restricted Boltzmann Machine

2016-12-13 12:47:20 84838 9

转载 限制玻尔兹曼机(RBM)

1.限制玻尔兹曼机的感性认识要回答这个问题大概还要从神经网络说起。(1)人工神经网络一言以蔽之,人工神经网络用于学习一个输入到输出的映射,通常由三层组成,输入层,隐层和输出层。各层之间的每个连接都有一个权值,人工神经网络的训练过程就是学习这个权值。典型的,可以使用随机梯度下降法。(2)递归人工神经网络递归人工神经网络的关键在于“递归”二字,其表现为各节点可以形成一个有向环。可以看到,递归神经网络和普

2016-12-12 16:06:28 8241 1

原创 计算广告干货整理

序本文旨在整理、分享计算广告领域的一些干货,包括paper、dataset、slide、code、video(侵删),如果看到本文的你有什么好的干货可以留言给我,持续更新,欢迎学习交流!1.Paper2007(OWL-QN)Scalable Training of L1-Regularized Log-Linear Models2010(FTRL)Follow-the-Regularized-

2016-12-09 16:48:07 8383 5

原创 稀疏编码器(Sparse Encoder)

1.介绍在自动编码器一文中,我们已经简单介绍了基于隐藏神经元数量较小的假设,本文主要基于隐藏神经元数量较大的假设。此时,我们仍然通过给自编码神经网络施加一些其他的限制条件来发现输入数据中的结构。比如我们给隐藏神经元加入稀疏性限制。稀疏性可以被简单地解释如下:假设神经元的激活函数时sigmoid函数,那么当神经元的输出接近于1的时候我们认为它被激活,而输出接近于0的时候认为它被抑制,那么使得神经元大部

2016-12-08 20:14:38 8002 4

原创 自动编码器(Auto Encoder)

1.初识Auto Encoder1986 年Rumelhart 提出自动编码器的概念,并将其用于高维复杂数据处理,促进了神经网络的发展。自编码神经网络是一种无监督学习算法,它使用了反向传播算法,并让目标值等于输入值,比如 。图1是一个自编码神经网络的示例。 图1自动编码器(autoencoder) 是神经网络的一种,该网络可以看作由两部分组成:一个编码器函数h = f(x) 和一个生成重构的解码

2016-12-08 14:16:32 29428 1

原创 Long-Short-Term-Memories(LSTM)

1.传统RNN存在的问题在循环神经网络一文中,对前向传播、后向传播进行了仔细的推导,回顾一下,可以发现传统RNN很容易产生梯度消失、爆炸的问题。可能公式会显得有点抽象,这里举一个例子:那么,LSTM是如何解决这个问题的呢?2.RNN && LSTM如图1所示,这就是一个传统的RNN模型,激活函数用的是tanh 图1图2与图1拥有类似的网络结构,只不过内部会更加复杂,即包括输入、忘记、输出门。

2016-12-06 17:05:03 9932

原创 循环神经网络(RNN)

1.NN & RNN在神经网络从原理到实现一文中已经比较详细地介绍了神经网络,下面用一张图直观地比较NN与RNN地不同。从图1中可以看出,RNN比NN多了指向自己的环,即图1中的7,8,9,10节点及其连线。图2显示RNN展开的网络结构。在传统的神经网络中,我们假设所有的输入(包括输出)之间是相互独立的。对于很多任务来说,这是一个非常糟糕的假设。如果你想预测一个序列中的下一个词,你最好能知道哪些词在

2016-12-05 17:03:49 23591

原创 深度学习(DL):卷积神经网络(CNN):从原理到实现

序深度学习现在大火,虽然自己上过深度学习课程、用过keras做过一些实验,始终觉得理解不透彻。最近仔细学习前辈和学者的著作,感谢他们的无私奉献,整理得到本文,共勉。1.前言(1)神经网络的缺陷在神经网络一文中简单介绍了其原理,可以发现不同层之间是全连接的,当神经网络的深度、节点数变大,会导致过拟合、参数过多等问题。(2)计算机视觉(图像)背景通过抽取只依赖图像里小的子区域的局部特征,然后利用这些特

2016-12-01 20:30:30 51260 6

原创 神经网络从原理到实现

1.简单介绍 在机器学习和认知科学领域,人工神经网络(artificial neural network,缩写ANN),简称神经网络(neural network,缩写NN)或类神经网络,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结

2016-11-29 17:14:10 65529 2

原创 NumPy手册

NumPy(Numerical Python的简称)是高性能科学 和数据分析的基础包。其重要功能如下: 1. ndarray,一个具有矢量运算和复杂广播能力的快速且节省空间的多维数组。 2. 用于对数组数据进行快速运算的标准数学函数(无需编写循环)。 3. 线性代数、随机数生成以及傅里叶变换功能。import numpy as np1.数据创建函数Demo:data = [1.1,2.2,3.

2016-11-17 17:16:29 19212

原创 python手册

写在前面:本文专注于python常见的内置函数、模块、语法,不包括numpy、scipy、pandas等1.utf-8编码# -*- coding: utf-8 -*-2.内存管理import gcdel obj #删除对象名gc.collect()3.文件读取以如下文件为例,文件名为test.txt,文本内容如下:WIFIAPTag,passengerCount,timeStampE1

2016-11-16 16:41:22 1794

原创 2017校招面经(BAT、搜狗、搜狐、一点资讯、360、华为优招)

总体流程:简单介绍下自己、各个公司面经、总结、薪资1.简单介绍面试岗位:机器学习 | 数据挖掘 | 算法工程师 | 基础研究比赛经历:天池比赛Top 10,滴滴算法大赛Top 5科研经历:实验室主要方向:计算机视觉+生物信息。在研一上课的时候,实验室有师兄在做计算广告ctr预估、异构平台搭建,自己也算是耳融目染,学习了一些吧。个人背景:本科普通院校信息管理与信息系统(计算机与管理的交叉学科),考研到

2016-10-14 14:37:11 27045 32

转载 Word2Vec原理详解

写在前面为了更方便读者学习,笔者下载了word2vec源码共享在云盘(google官网有时会访问不了),地址。还有关于word2vec实战的 地址下面是转载内容:word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单、高效,因此引起了很多人的关注。由于 word2vec 的作者 Tomas Mikolov 在两篇相关的论文 [3,4]

2016-09-05 13:17:53 16084 3

原创 一些比较有意思的题目

递归问题往往存在子问题,本文中的递归问题不属于之前的专题,故单列一个专题。1.从一个n位数中寻找m位数,并输出最小值来源:面试一家创业公司的题目Example 输入:698592 k = 4 输出 :6592Solution:一种比较常见的思路是枚举全部k=4的数字,然后再取最小值,然而这样复杂度会很高。本文的思路是不断递归求得最小值,注意边界,可以显著降低复杂度。void find_min

2016-09-01 16:39:49 3718

原创 模型融合

本文包括常见的模型融合方法、代码链接、进阶的思路。1.线性加权融合方法从算法的角度来看,则最常用的是采用加权型的混合推荐技术,即将来自不同推荐算法生成的候选结果及结果的分数,进一步进行组合(Ensemble)加权,生成最终的推荐排序结果。具体来看,比较原始的加权型的方法是根据推荐效果,固定赋予各个子算法输出结果的权重,然后得到最终结果。很显然这种方法无法灵活处理不同的上下文场景,因为不同的算法的结果

2016-08-25 21:55:52 13524 4

原创 C/C++基本知识点

1.C中static有什么作用(1)隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。(2)static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量。(3)sta

2016-08-25 11:08:49 2405

原创 树模型(三):集成学习

本文主要包括常见机器学习算法的实现,其中数学推导、原理、并行实现会给出链接。 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各

2016-08-22 14:34:28 5554

原创 梯度下降、牛顿法、拟牛顿法

介绍 在向量微积分中,标量场的梯度是一个向量场。标量场中某一点上的梯度指向标量场增长最快的方向,梯度的长度是这个最大的变化率。更严格的说,从欧几里得空间Rn到R的函数的梯度是在Rn某一点最佳的线性近似。在判别式模型中,我们往往需要学习参数,从而使得我们的模型f(x)可以逼近实际的y。如果学习参数,则通常会用到梯度下降、牛顿、拟牛顿学习算法。 参考自网络资源1.梯度下降1.1 为何使用梯度作为

2016-08-10 18:50:23 17533

原创 MapReduce入门

介绍本文理论部分主要是Google MapReduce,配置&使用是依托阿里云平台。 MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念”Map(映射)”和”Reduce(归约)”,是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定

2016-08-08 11:10:09 3557 3

转载 海量数据处理

本文转自结构之法算法之道blog1、何谓海量数据处理?所谓海量数据处理,其实很简单,海量,海量,何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。那解决办法呢?针对时间,我们可以采用巧妙的算法搭配合适的数据结构,如Bloom filter/Hash/bit-map/堆/数据库或倒排索引/trie/,针对空间,无非就一个办法:大而化小:分而治之/

2016-08-07 22:39:00 2912

原创 线程、进程

线程、进程方面学习笔记整理1、线程的基本概念 线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。优势:易于调度。提高并发性。通过线程可方便有效地实现并发性。进程可创建多个

2016-08-07 12:45:41 1709

原创 C++ 智能指针

介绍 C++提供了4种智能指针用于对分配的内存进行自动释放,这些智能指针如下:auto_ptr、unique_ptr、shared_ptr、weak_ptr。其中auto_ptr在C++98标准引入,后三种在C++11标准中加入。而auto_ptr已经被C++11所摒弃,建议使用后三种智能指针,这4种智能指针使用模板(template)实现。C++11将boost里的这一套纳入了标准。1.au

2016-08-07 00:06:54 2369

转载 分布式机器学习的故事

文章转自王益的《分布式机器学习的故事》1.大数据带来的新机遇一个新时代起源分布式机器学习是随着“大数据”概念兴起的。在有大数据之前,有很多研究工作为了让机器学习算法更快,而利多多个处理器。这类工作通常称为“并行计算”或者“并行机器学习”,其核心目标是把计算任务拆解成多个小的任务,分配到多个处理器上做计算。分布式计算或者分布式机器学习除了要把计算任务分布到多个处理器上,更重要的是把数据(包括训练数据以

2016-08-05 16:15:11 2133

转载 C++ 编译、链接

C++程序在编译的时候主要有以下几个过程: 1.预编译(预处理):主要是对伪指令(以#开头的指令)和特殊符号进行处理。伪指令主要包括:(1)宏指令:如#define NAME ADU,#undef等。对于第一个指令,预编译主要是进行替换,除了NAME字符串常量;对于第二个则取消该宏定义,以后出现该宏的地方不进行替换。(2)条件编译指令:如#ifndef,#ifdef,#else,#elif,#end

2016-08-04 20:56:58 1598

转载 随机采样方法

背景 随机模拟也可以叫做蒙特卡罗模拟(Monte Carlo Simulation)。这个方法的发展始于20世纪40年代,和原子弹制造的曼哈顿计划密切相关,当时的几个大牛,包括乌拉姆、冯.诺依曼、费米、费曼、Nicholas Metropolis, 在美国洛斯阿拉莫斯国家实验室研究裂变物质的中子连锁反应的时候,开始使用统计模拟的方法,并在最早的计算机上进行编程实现。随机模拟中有一个重要的问题就是给

2016-08-04 16:35:40 2896

原创 暴力枚举法专题

介绍 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。以全排列为基础可以扩展出很多关于分布、期望等问题。本文主要介绍两种模拟全排列的方式。1.next_permutation 在C++中,algorithm文件提供了next_permutation这一函数的实现,这一函数在使用时,需要保证数组有序,

2016-08-03 10:59:20 1969

原创 网易2017校园招聘数据挖掘笔试题

刚刚做完笔试题,感觉网易笔试编程题有难度,贴出题目,有时间做做。 1.藏宝图 题目描述 牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串s和t,根据古老的传说,牛牛需要每次都回答t是否是s的子序列。注意,子序列不要求在原字符串中是连续的,例如串abc,它的子串序列就有{空串,a,b,c,ab,ac,bc,abc}8种。 输入描述

2016-08-02 22:33:14 9059 9

原创 C++ vector 实现二维数组

简介 在STL中Vector这一容器,无论是在封装程度还是内存管理等方面都由于传统C++中的数组。本文主要是关于使用Vector初始化、遍历方面的内容。其他二维的思想也是类似的。 1.初始化 (1)利用Vector的push_back函数vector<vector<int>> vec;vector<int> a;a.push_back(1);a.push_back(2);a.push_b

2016-08-01 20:25:04 136982 10

最新最全2005-2013信息系统项目管理师历年真题(含上午题、案例分析、论文)试题和答案

最新最全2005-2013信息系统项目管理师历年真题(含上午题、案例分析、论文)试题和答案,希望对你们有用

2015-01-21

基于Qt毕业生就业信息管理系统

数据库是SQLite,测试用户名test,密码123 基于Qt毕业生就业信息管理系统,实现基本的管理功能,如增删改查、数据库备份与还原等功能。

2015-01-21

2012年5月、12月软件设计师真题及答案

2012年真题,就是字有点小,不过对复习很有帮助

2013-06-09

MFC,VC皮肤加载

解压后按照TXT文本上的方法来加载,绝对有用。

2013-06-09

C++对象模型

《C++对象模型》看完之后受益匪浅!

2012-08-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除