随笔分类 -  机器学习

摘要:workers = [] for _ in xrange(opts.concurrent_steps): t = threading.Thread(target=self._train_thread_body) t.start() workers.append(t) Word2vec.py使用了多线程 一般认为py... 阅读全文
posted @ 2015-12-16 20:17 阁子 阅读(1954) 评论(0) 推荐(0)
摘要:opts = Options() with tf.Graph().as_default(), tf.Session() as session: model = Word2Vec(opts, session) if FLAGS.interactive: #print('load model from file %s %s', opts.save_path, os.p... 阅读全文
posted @ 2015-12-16 20:17 阁子 阅读(3206) 评论(0) 推荐(0)
摘要:考虑不可分的例子 通过使用basis functions 使得不可分的线性模型变成可分的非线性模型 最常用的就是写出一个目标函数 并且使用梯度下降法 来计算 梯度的下降法的梯度计算 关于线性和非线性的隐层 非线性隐层使得网络可以计算更加复... 阅读全文
posted @ 2015-12-15 14:50 阁子 阅读(6321) 评论(0) 推荐(0)
摘要:这里做了一些小的修改,感谢谷歌rd的帮助,使得能够统一处理dense的数据,或者类似文本分类这样sparse的输入数据。后续会做进一步学习优化,比如如何多线程处理。具体如何处理sparse 主要是使用embedding_lookup_sparse,参考https://github.com/tenso... 阅读全文
posted @ 2015-11-30 20:08 阁子 阅读(10617) 评论(1) 推荐(1)
摘要:Word2vec 更完整版本(非demo)的代码在 tensorflow/models/embedding/ 首先需要安装bazel 来进行编译 bazel可以下载最新的binary安装文件,这里下载0.1.0版本的bazel https://github.com/bazelbuild/bazel/releases/download/0.1.0/bazel-0.1.0-i... 阅读全文
posted @ 2015-11-27 15:59 阁子 阅读(3155) 评论(0) 推荐(0)
摘要:只是简单demo, 可以看出tensorflow非常简洁,适合快速实验 import tensorflow as tf import numpy as np import melt_dataset import sys from sklearn.metrics import roc_auc_score def init_weights(shape): return... 阅读全文
posted @ 2015-11-21 19:31 阁子 阅读(3854) 评论(0) 推荐(0)
摘要:首先 实现一个尽可能少调用tf.nn模块儿的,自己手写相关的function import tensorflow as tf import numpy as np import melt_dataset import sys from sklearn.metrics import roc_auc_score def init_weights(shape): retu... 阅读全文
posted @ 2015-11-21 16:41 阁子 阅读(8397) 评论(0) 推荐(0)
摘要:简单demo的代码路径在tensorflow\tensorflow\g3doc\tutorials\word2vec\word2vec_basic.py Sikp gram方式的model思路 http://tensorflow.org/tutorials/word2vec/index.md 另外可以参考cs224d课程的课件。 窗口设置为左右1个词 对应... 阅读全文
posted @ 2015-11-19 10:24 阁子 阅读(13130) 评论(1) 推荐(1)
摘要:CSC321 Winter 2015: Introduction to Neural Networks 来自 http://www.cs.toronto.edu/~rgrosse/csc321/lec6.pdf ppt较为简洁明了 CS224d: Deep Learning for Natural Language Processing 来自 http://c... 阅读全文
posted @ 2015-11-13 17:43 阁子 阅读(665) 评论(0) 推荐(0)
摘要:稀疏矩阵有多种表示方法 Compressed Row Storage 来自 矩阵向量乘法效率较低 这个比较好理解, val: 非0的val按照行顺序排列 col_ind: 列索引 10这个val是第一列 -2对应第5 列 val(a_ij)对应col_ind(j) 如何表示出行信息? Row_ptr(1) = 1 表... 阅读全文
posted @ 2015-11-13 15:51 阁子 阅读(1151) 评论(0) 推荐(0)
摘要:先采用一个简单的输入文本做测试 [root@cq01-forum-rstree01.cq01.baidu.com rnnlm]# pwd /home/users/chenghuige/rsc/app/search/sep/anti-spam/rnnlm [root@cq01-forum-rstree01.cq01.baidu.com rnnlm]# cat shijiebei2.txt 喜欢 ... 阅读全文
posted @ 2015-11-10 15:51 阁子 阅读(1742) 评论(0) 推荐(0)
摘要:也就是构造一棵Huffman Tree,输入是按照词汇频次由高到低排序的 采用层次SoftMax的做法,是为了使得训练和预测时候的softmax输出加速,原有multinomal softmax,是和 训练词汇量|V|成正比的,而现在由于二叉树的特性,变成了log(|V|),也就是平均每个预测只做log(|V|)次 的binary的softmax。当然还有另外一种不采用HSTree的方法也... 阅读全文
posted @ 2015-11-09 16:09 阁子 阅读(1036) 评论(0) 推荐(0)
摘要:https://github.com/yandex/faster-rnnlm Gdb ./rnnlm r -rnnlm model-good.faster -train thread.title.good.train.txt -valid thread.title.good.valid.txt -hidden 5- -direct-order 3 -direct 200 -bptt 4 ... 阅读全文
posted @ 2015-11-08 14:42 阁子 阅读(1241) 评论(1) 推荐(0)
摘要:如何评估语言模型 (>) Perplexity 一个语言模型表现更好好就是说它在测试集合表现更好,也就是说使得测试数据能有更高产生概率(assign a higher score to test data) 在这个基础上表征了这一特征,perplextiy越低则表示测试数据产生概率越高。 N起归一作用,在这里避免了长度偏见,较长句子会使得概率较小一些。 考虑 I... 阅读全文
posted @ 2015-10-28 15:51 阁子 阅读(1614) 评论(0) 推荐(0)
摘要:Convolution: 在了解convolution前,先认识下为什么要从全部连接网络发展到局部连接网络。在全局连接网络中,如果我们的图像很大,比如说为96*96,隐含层有要学习100个特征,则这时候把输入层的所有点都与隐含层节点连接,则需要学习10^6个参数,这样的话在使用BP算法时速度就明显慢... 阅读全文
posted @ 2015-10-20 22:50 阁子 阅读(564) 评论(0) 推荐(0)
摘要:一开始我们设定F(x)也就是每个样本的预测值是0(也可以做一定的随机化) Scores = { 0, 0, 0, 0, 0, 0, 0, 0} 那么我们先计算当前情况下的梯度值 GetGradientInOneQuery = [this](int query, const Fvec& scores) { //和实际代码稍有出入 简化版本 _grad... 阅读全文
posted @ 2015-03-25 18:22 阁子 阅读(5774) 评论(0) 推荐(1)
摘要:考虑一个简单的例子来演示GBDT算法原理 下面是一个二分类问题,1表示可以考虑的相亲对象,0表示不考虑的相亲对象 特征维度有3个维度,分别对象 身高,金钱,颜值 cat dating.txt #id,label,hight,money,face _0,1,20,80,100 _1,1,60,90,25 _2,1,3,95,95 _3,1,66,95,60 _4,0,30,95... 阅读全文
posted @ 2015-03-25 15:59 阁子 阅读(11174) 评论(2) 推荐(0)
摘要:这里以二元分类为例子,给出最基本原理的解释 GBDT 是多棵树的输出预测值的累加 GBDT的树都是 回归树 而不是分类树 分类树 分裂的时候选取使得误差下降最多的分裂 计算的技巧 最终分裂收益按照下面的方式计算,注意圆圈内的部分是固定值 GBDT 二分类 GBDT在实现中可以完全复用上面的计算... 阅读全文
posted @ 2015-03-09 21:43 阁子 阅读(34929) 评论(0) 推荐(1)
摘要:NG的课件1也讲到了牛顿法,它对应的update rule是 H对应Hessian矩阵 http://en.wikipedia.org/wiki/Hessian_matrix http://aria42.com/blog/2014/12/understanding-lbfgs/ 给出了关于牛顿法更详细的解释... 阅读全文
posted @ 2014-12-09 08:00 阁子 阅读(757) 评论(0) 推荐(0)
摘要:NG的课件1,引出常用的优化方法梯度下降法(gradient descent) 对于 ordinary least squares regression, cost function为 求最小值,意味着求导数为0的位置 考虑只有一个样本 这叫做LMS update rule (Least Mean Squares) 对应所有样本的训练集合 ... 阅读全文
posted @ 2014-12-09 07:43 阁子 阅读(687) 评论(0) 推荐(0)