自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BVL的博客

半吊子文人,左撇子码农

  • 博客(56)
  • 收藏
  • 关注

原创 论文笔记之 Collaborative Deep Learning for Recommender Systems

这篇论文是KDD2015的一篇用DL去做RS的论文。想法挺有意思的。看过论文的同学都知道整体的模型可以用下图表示:这里只讲讲整体的思路与理解:1)这是一个CF和CBF结合用bayes去做2)CBF主要是体现在整个用SDAE提取item特征。3)bayes体现在,网络中的各种参数是加了一个beyas先验生成的。4)CF体现在,对于u和i这两个向量的生成,用两个不同的高斯先验,来生成,lambda_v...

2018-04-13 11:09:02 3311

原创 TF-IDF

1.TF-IDF是什么?TF-IDF :term frequency-inverse document frequency 1.tf-idf 作为一种权重经常被用作信息检索和文本挖掘领域 2.这样一种权重时通过统计计算得出的。来衡量 在一个语料库或者文本集中, 一个term 或者 word对于一个文档的重要性。(比如,有k个文档,其中一个文档d种有一个词w,衡量 w对于k中的d的重要性

2017-12-21 11:34:27 1443

转载 推荐系统经典论文文献及业界应用

Survey方面的文章及资料Adomavicius G,Tuzhilin A. Toward the next generation ofrecommender systems: A survey of the state-of-the-art and possibleextensions[J]. Knowledge and Data Engineering, IEEETransaction

2017-12-16 22:46:12 2754

原创 论文笔记之Dynamic Routing Between Capsules

相信大家最近被hinton的这篇capsule的论文刷屏了,这篇论文是发表在nips2017上的。其实capsule这个概念最早是hinton的一篇发表在ICANN 2011上的论文中提出的,不过当初没有引起太大的关注。今年的早些时候,hinton也在多个公开场合表达capsule这样一种想法。在此,笔者在这里记录下自己对这篇论文的理解。首先在这里推荐几篇与这篇论文相关的,笔者认为比较有用的资源,可

2017-11-26 16:58:20 7253 1

原创 机器学习备忘录(持续记录)

有时候,看一些机器学习相关的概念,可能是当时懂的不是很深刻,过了一段时间就又忘了,因此在这里,将所遇到的知识,在这里一点点记录,仅作为备忘录。1.negative sampling往往在word2vec中运用到,在用softmax计算分母的时候,由于语料太大(1-hot),全遍历一遍计算效率不高,很难简单用sotfmax之后的大向量表示各个word的概率。因此,采用了对语料按一定分布进行采样计算lo

2017-11-09 13:21:01 1045

原创 Attention Model(mechanism) 的 套路

最近刷了一些attention相关的paper(照着here的列表+自己搜的paper),网上相关的资料也有很多,在此只讲一讲自己对于attention的理解,力求做到简洁明了。一.attention 的本质 attention其实就是一个加权求和。attention处理的问题,往往面临的是这样一个场景: 你有kk个dd维的特征向量hi(i=1,2,...,k)h_i (i=1,2,...

2017-11-07 18:09:38 38322 11

原创 最优化问题之如何逃离(跳出)鞍点(Saddle Points)

看了点鞍点相关的知识,做一下备录。 我们知道在,优化问题中,深度学习的优化问题中,经常存在鞍点,就是这一点的导数为0,从某些维度看是极小值,从另一些维度看是极大值,比如:深度学习的寻优过程中,鞍点所造成的困难,远比局部最小值大的多,因为 1)在高维参数空间,鞍点存在较多 2)大量工作表面局部最优解,对于模型而言已经足够好。此外,正是因为深度学习中鞍点的大量存在,传统的牛顿法不适合,

2017-09-21 14:48:56 10818

原创 论文笔记之Label-Free Supervision of Neural Networks with Physics and Domain Knowledge

这一篇是AAAI 2017的best paper。出自Stanford ,随手查了一下,二作Stefano Ermon指导的AAAI 2017的另一篇paper,拿了Best Student Paper Award (CompSust Track)。在此膜拜一发。一.题目理解不得不说,一篇好的paper,题目很重要,是否吸引人。比如这一篇,猛地一看感觉很有内容,想法很新颖。 label-free

2017-09-15 22:02:26 3792

原创 TensorFlow 后台输出卡在Raising pool_size_limit_ from 100 to 110好久

有时候运行TensorFlow代码,后台一直在打印如下信息,而自己的train信息没有任何显示:tensorflow/core/common_runtime/gpu/pool_allocator.cc:244] PoolAllocator: After 9639 get requests, put_count=4341 evicted_count=1000 eviction_rate=0.23036

2017-08-22 20:44:29 5044

原创 caffe学习之layer_factory(工厂方法)

在caffe中,创建layer对象,是通过工厂方法来创建的。 相关代码,均定义在caffe/include/caffe/layer_factory.hpp,以及其实现类。一.LayerRegistry主要的实现是由LayerRegistry 类来完成的。 先上代码:class LayerRegistry { public: typedef shared_ptr<Layer<Dty

2017-08-17 13:14:37 2424

原创 论文笔记之Synthetic Data for Text Localisation in Natural Images(人工合成带有文本的图片)

Synthetic Data for Text Localisation in Natural Images是VGG实验室2016年CVPR的一篇论文。这篇论文所做的主要贡献有两点: 1.将word人工的嵌入到自然图片中,人工生成带有文本的图片(synthText)。 2.提出一种FRCN的网络来检测文本。本文主要针对第一点贡献进行详细讲解,是如何人工生成数据。 源代码:here一

2017-08-07 16:51:59 5891 1

原创 OpenCV 相关函数记录汇总(持续更新)

此文,将作为本人在实践中,遇到的opencv相关函数的一个汇总,并不断更新,方便后续查询。python和c++均可找到相关对应。 当然在此首推opencv官方文档图像操作 函数名 作用 参考文档 minAreaRect 计算包住所有像素点的最小矩阵 [1]、[2] findContours 找到图片中物体的轮廓,返回的是轮廓的点集 [1]、[2] d

2017-08-04 11:17:34 1209 1

原创 Deep Learning 之 训练过程中出现NaN问题

相信很多人都遇到过训练一个deep model的过程中,loss突然变成了NaN。在这里对这个问题做一个总结。一般来说,出现NaN有以下几种情况: 1.如果在迭代的100轮以内,出现NaN,一般情况下的原因是因为你的学习率过高,需要降低学习率。可以不断降低学习率直至不出现NaN为止,一般来说低于现有学习率1-10倍即可。 2.如果当前的网络是类似于RNN的循环神经网络的话,出现NaN

2017-07-25 17:01:21 11552 1

原创 caffe学习之convert_imageset:图片格式转lmdb/leveld格式

caffe中data_layer的输入数据的格式是lmdb或者leveld格式的。(hdf5_data_layer等layer暂不考虑)但是我们面对的原始数据往往是.jpg/.png格式的,所以需要进行一定的处理才能作为输入数据。 在这里主要用到的工具便是caffe源码中已经写好的一个工具caffe/tools/convert_imageset.cpp,只需对图片做一些处理便可自动帮你将图

2017-07-18 12:59:13 1539

转载 NRL: network representation learning & NE: network embedding. 相关论文总结

Must-read papers on NRL/NE.NRL: network representation learning. NE: network embedding.DeepWalk: Online Learning of Social Representations.Bryan Perozzi, Rami Al-Rfou, Steven Skiena. KDD 2014. paper

2017-07-18 11:36:34 4025

原创 AI==喜茶??

2017年7月10日,上海,雨。  刚从某CV方向的公司下班,骑着小黄车朝着浦东某郊区租了一个月的床位行驶着,雨打在脸上,有点生疼。我不禁在思考,这一切到底为了什么?  大四刚毕业的我,还有一个多月便开始研究生的学习阶段。趁着暑期没事或者说不敢有其他事,赶紧找了家实习公司继续充电,生怕错过这样一个AI浪潮。  时间回到去年这个时候,那时候的我们还在忙着保研,追寻的研究方向似乎只有两种:机器学习

2017-07-10 21:06:18 4282 3

原创 Caffe学习之finetune

finetune的好处想必大家都知道,在此不多说,那么在caffe中又是如何实现的呢。上代码: ./build/tools/caffe train -solver xxx.prototxt -weights xxx.caffemodel意思就是用xxx.caffemodel里的训练好的权重初始化xxx.prototxt,里所要初始化的网络。那么如何将xxx.caffemodel里的参数运用到自己的模

2017-07-08 16:54:24 1439

原创 Caffe学习之自定义创建新的Layer层

caffe源码中已经帮我封装好了各种各样的layer,但是有时候现有的layer不能满足设计的网络要求,这个时候需要自己定义一个新的layer,本文参考here,进行简单讲解,具体方式如下:一.创建.hpp文件 1.添加你的layer头文件置于 include/caffe/layers/ 下,比如include/caffe/layers/your_layer.hpp 2.your_la

2017-07-08 15:56:38 6745 1

原创 Caffe学习之ProtoBuffer

本文简单介绍一下caffe的protobuffer的机制ProtocolBuffer是google开源的一种数据交换的方法,类似于xml等。在caffe里扮演着解析配置文件,传递消息和参数的作用。(便于规范序列化以及反序列化)具体作用,以solver.prototxt为例,可以概括为一句话: 运行时,能够将solver.prototxt中的配置参数按照caffe.proto的协议解析并加载的到内

2017-07-08 14:27:53 1541

原创 Caffe学习之caffe具体运行流程分析

最近一段时间因实习需要,学习了一下caffe,在此陆陆续续记录一些和caffe相关的笔记。我们都知道要运行一个caffe model的时候需要在命令行下输入:./build/tools/caffe train -solver xxx.prototxt 然后模型就跑起来了,但是具体程序的入口——main是哪个,执行的顺序是如何的可能不是特别清晰,为了更加理解caffe,在此对其流程做一个具体的分析。分

2017-07-08 11:50:12 5107

原创 python机器学习实战之 Decision Tree For Titanic in Kaggle

最近陆续准备熟悉一下sklearn库,在此做一下记录。这篇文章是简短的对于decision tree的kaggle上的实战记录,详细的请见github一.数据集:Titanic 是一个二分类问题,给你每个人的一些feature,判断最后是否会Survive。二.数据处理:参考here1.丢弃无用的'PassengerId','Name','Ticket'特征2.Embarked,one-hot

2017-06-04 12:31:18 1751

原创 Data Mining Competition中数据缺失值处理

在数据挖掘以及机器学习中,拿到的数据,经常是某些记录的某些字段是缺失的,面对这种情况,可以有以下几种处理方法:1.直接drop这条记录 2.缺失值用众数填补 3.缺失值用中位数填补 4.缺失值用rand(mean-std,mean+std)随机数填补

2017-06-02 21:19:31 1703

原创 Deep Learning 最优化方法之Adam

本文是Deep Learning 之 最优化方法系列文章的Adam方法。主要参考Deep Learning 一书。先上结论: 1.Adam算法可以看做是修正后的Momentum+RMSProp算法 2.动量直接并入梯度一阶矩估计中(指数加权) 3.Adam通常被认为对超参数的选择相当鲁棒 4.学习率建议为0.001再看算法:其实就是Momentum+RMSProp

2017-05-21 23:06:52 42524 3

原创 Deep Learning 最优化方法之RMSProp

本文是Deep Learning 之 最优化方法系列文章的RMSProp方法。主要参考Deep Learning 一书。先上结论 1.AdaGrad算法的改进。鉴于神经网络都是非凸条件下的,RMSProp在非凸条件下结果更好,改变梯度累积为指数衰减的移动平均以丢弃遥远的过去历史。 2.经验上,RMSProp被证明有效且实用的深度学习网络优化算法。 相比于AdaGrad的历史梯

2017-05-21 23:02:50 64500 3

原创 Deep Learning 最优化方法之AdaGrad

本文是Deep Learning 之 最优化方法系列文章的Nesterov(牛顿动量)方法。主要参考Deep Learning 一书。先上结论:1.简单来讲,设置全局学习率之后,每次通过,全局学习率逐参数的除以历史梯度平方和的平方根,使得每个参数的学习率不同2.效果是:在参数空间更为平缓的方向,会取得更大的进步(因为平缓,所以历史梯度平方和较小,对应学习下降的幅度较小)3.缺点是,使得学习率过早,过

2017-05-21 22:55:22 21950 9

原创 Deep Learning 最优化方法之Nesterov(牛顿动量)

本文是Deep Learning 之 最优化方法系列文章的Nesterov(牛顿动量)方法。主要参考Deep Learning 一书。先上结论: 1.Nesterov是Momentum的变种。 2.与Momentum唯一区别就是,计算梯度的不同,Nesterov先用当前的速度v更新一遍参数,在用更新的临时参数计算梯度。 3.相当于添加了矫正因子的Momentum。

2017-05-21 22:51:58 25200 5

原创 Deep Learning 最优化方法之Momentum(动量)

本文是Deep Learning 之 最优化方法系列文章的Momentum(动量)方法。主要参考Deep Learning 一书。先上结论: 1.动量方法主要是为了解决Hessian矩阵病态条件问题(直观上讲就是梯度高度敏感于参数空间的某些方向)的。 2.加速学习 3.一般将参数设为0.5,0.9,或者0.99,分别表示最大速度2倍,10倍,100倍于SGD的算法。

2017-05-21 22:48:16 74612 3

原创 Deep Learning 最优化方法之SGD

本文是Deep Learning 之 优化方法系列文章的SGD方法。主要参考Deep Learning 一书。在这里SGD和min-batch是同一个意思,抽取m个小批量(独立同分布)样本,通过计算他们平梯度均值。后面几个改进算法,均是采用min-batch的方式。先上一些结论:1.SGD应用于凸问题时,k次迭代后泛化误差的数量级是O(1/sqrt(k)),强凸下是O(1/k)。2.理论上GD比SG

2017-05-21 22:31:00 16389

原创 Deep Learning 之 最优化方法

写在前面本文主要是对Deep Learning一书最优化方法的总结,具体详细的算法,另起博文展开。深度学习中,经常需要用到优化方法,来寻找使得损失函数最小的最优解。先上一些结论: 1.选择哪种优化算法并没有达成共识 2.具有自适应学习率(以RMSProp 和AdaDelta 为代表)的算法族表现得相当鲁棒,不分伯仲,但没有哪个算法能脱颖而出。 3.对于当前流行的优化算法包括括SG

2017-05-21 22:18:40 17667 2

原创 Deep Learning 之 参数初始化

本文仅对常见的参数初始化方法进行总结(大部分内容来自deep learning一书),原理性的问题不进行过多的探讨。**Deep Learning中参数初始化十分重要,一般来说有以下这些原因:** 1.初始点的选取,有时候能够决定算法是否收敛 2.当收敛时,初始点可以决定学习收敛的多快,是否收敛到一个代价高或低的点 3.初始化也可以影响泛化 4.初始参数需要破坏不同神经元间的“对称性”,因为

2017-04-26 10:27:55 9823

原创 数据归一化好处

数据预处理,归一化除了统一标量到(0,1)之间方便计算以外,在求loss function时还利于找到全局最优解如图:归一化前,不同标度:归一化后,相同标度:

2017-02-10 19:11:37 7933

原创 神经网络 动量因子

其中动量系数一般取(0,1),直观上理解就是要是当前梯度方向与前一步的梯度方向一样,那么就增加这一步的权值更新,要是不一样就减少更新。

2017-02-10 19:02:47 17161 2

原创 BGD vs SGD vs mini-batch GD

神经网络中梯度下降,更新权值有多种选择,BGD,SGD,mini-batch GDBGD:所有样本跑一次网络后,更新权值。这种方式优点是,精确,和loss function对应。缺点就是效率不高,慢SGD:跑一个样本更新一次权值,优点:快,缺点:因为用一个样本就更新权值,很容易就找不到全局最优解。mini-batch GD:更新跑一定两样本,更新一次权值,结合BGD和SGD综合考虑。

2017-02-10 18:46:12 1985

原创 论文笔记之Diffusion-Convolutional Neural Networks

本文是2016年NIPS上的论文也是在graph上采用cnn进行了探讨。思路看似十分简单: 对于一张graph而言,有N个node,每个node有F个feature,每个节点关注H hop以内的信息 架构: 对于 node classification 输入:H*N*N*F 第一层:(其实对于每个node而言,通过这一层的映射,会得到一个H*F的map。对于map上的每个元素,是这么得来的

2017-01-11 14:41:05 6341

原创 论文笔记之Structural Deep Network Embedding

本论文是kdd2016的一篇论文主要的目的也是做node embedding。主要的想法就是通过deep autoencode对node进行embedding,不过在在embedding的时候不仅考虑了1-hop的信息而且考虑了n-hop的信息。使其变成半监督学习的模式(其实就是对loss function改了改)输入是一个graph的n*n的邻接矩阵S,其实可以看成有n个数据的训练集,每个数据的f

2017-01-09 20:09:43 6519 1

原创 论文笔记之Learning Deep Representations for Graph Clustering

本篇论文是2014年AAAI的一篇论文。思想也比较简单,主要是采用SAE(栈式自编码),在graph上进行node embedding,将embedding得到的每个node的vector做为输入,进行graph cluster。论文中采用的是最常用的k-means方法来cluster。算法如下: step1 得到graph的n*n的邻接矩阵S和度矩阵Dstep2 将D’S作为SAE的输入

2017-01-09 19:32:56 4080

原创 论文笔记之Fully Convolutional Networks for Semantic Segmentation

最近了解到了Image Semantic Segmentation方面的知识,在此做一个记录。 这篇论文是2015cvpr的best paper,可以说是在cnn上做图像语义分割的开山之作。**1.语义分割定义:** 语义就是指物体的类别,即属于同一类别的物体都算作一类比如图像中的3个人算作一类,5辆汽车算作一类等,它们都属于同一类别,即“人类”、“汽车”一般规定要进行分割的n个类别的物体(即我

2016-12-27 17:16:37 3334 3

原创 神经网络中自定义LOSS的BP计算

先回顾一下高数当中学的链式法则 然后BP的想法就是不断的用链式法则,直到链到能到能看到被导的未知数为止,如下图,就是直到链到一个表达式中含有要求的被导变量 比如求dJ/dwi 那就一直链式法则下去,直到看到dzi=wi*yi-1+bi为止,因为到这里对wi的导数直接就可求得为yi-1,而之前链式过程中所要求的导数在上一layer已经算的,所以可以BP从后往前算导数。 具体求解就如下图所示。

2016-12-26 17:18:20 1842

原创 From RNN To LSTM

最近看了一些rnn和lstm的资料,算是科普性的了解了,在此做一个总结。目录: 1RNN 1)RNN结构 2)RNN(本质) 3) The Problem of Long-Term Dependencies of RNN 2LSTM 1)LSTM结构 2)LSTM结构详解 3)Variants on Long Short Term Me

2016-12-26 15:17:41 2495

原创 word2vec 过程理解&词向量的获取

网上有很多这方面的资源,详细各位都能够对于word2vec了解了大概,这里只讲讲个人的理解,目的:通过对于一个神经网络的训练,得到每个词对应的一个向量表达基于: 这个神经网络,是基于语言模型,即给定T个词的字符串s,计算s是自然语言的概率p(w1,w2,…,wt)而构建的,更直白点,就是通过输入wi的上下相邻的n个词(n-gram方法),来就算输出是wi的概率方案:CBOM和skip-gram两种,

2016-12-15 10:21:41 7836

空空如也

空空如也

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

TA关注的人

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