
机器学习
文章平均质量分 89
Dark_Scope
杭州搬砖中。。。
展开
-
采样方法(二)MCMC相关算法介绍及代码实现
0.引子书接前文,在采样方法(一)中我们讲到了拒绝采样、重要性采样一系列的蒙特卡洛采样方法,但这些方法在高维空间时都会遇到一些问题,因为很难找到非常合适的可采样Q分布,同时保证采样效率以及精准度。 本文将会介绍采样方法中最重要的一族算法,MCMC(Markov Chain Monte Carlo),在之前我们的蒙特卡洛模拟都是按照如下公式进行的:原创 2017-12-30 15:32:14 · 26837 阅读 · 3 评论 -
NE(Network Embedding)论文小览
NE(Network Embedding)论文小览自从word2vec横空出世,似乎一切东西都在被embedding,今天我们要关注的这个领域是Network Embedding,也就是基于一个Graph,将节点或者边投影到低维向量空间中,再用于后续的机器学习或者数据挖掘任务,对于复杂网络来说这是比较新的尝试,而且取得了一些效果。 本文大概梳理了最近几年流行的一些方法和论文,paper主要是来自t原创 2017-07-04 07:47:23 · 35338 阅读 · 4 评论 -
采样方法(一)
本篇文章先主要介绍一下经典的采样方法如Inverse Sampling、Rejective Sampling以及Importance Sampling和它在NLP上的应用,后面还会有一篇来尝试介绍MCMC这一组狂炫酷拽的算法。才疏学浅,行文若有误望指正。原创 2017-04-30 08:46:18 · 31861 阅读 · 31 评论 -
序列的算法(一·b)隐马尔可夫模型
序言….. 本系列对算法的讲解都会从两篇部分予以呈现:a. 湿货部分要浅入浅出,形象生动,读得明白。 b. 干货部分要一文以蔽之,公式罗列,看得通透;下面是(一)的 b 部分内容UnigramUnigram模型认为序列中的每一项都是独立发生的,所以很自然,假设我们有N个序列,每个序列长度是MnM_n,那么整个序列的联合概率分布就是: P(X)=∏iN∏jMip(Xji) P(X) =原创 2017-03-19 12:42:53 · 11946 阅读 · 5 评论 -
自动求导的二三事
知乎上看到一个回答,说是自己学习神经网络的时候都是自己对公式求导,现在常见的DL库都可以自动求导了。这个想必实现过神经网络的同学都有体会,因为神经网络的back-propagation算法本质上就是求导链式法则的堆叠,所以学习这部分的时候就是推来推去,推导对了,那算法你也就掌握了。粗粗一想,只要能把所有操作用有向图构建出来,通过递归去实现自动求导似乎很简单,一时兴起写了一些代码,整理成博客记录一下。原创 2017-03-17 16:33:32 · 12822 阅读 · 3 评论 -
序列的算法(一·a)马尔可夫模型
序列的世界(一.a)序言机器学习领域往往按照算法的应用分为各大领域,如NLP、CV、MT等等,一些算法往往也被打上各自应用的标签,但其实对于算法本身而言,只要你能按照他指定的格式输入数据,就能够产出相应的结果,并不是限定到某个领域,只要你能对问题抽象成算法需要的input,就可以在这个问题上发挥算法的价值。在这里我们会关注一系列输入是「序列」的算法,这里的序列包括但不限于「文本序列」、「时间序列」、原创 2017-03-11 14:50:29 · 19142 阅读 · 4 评论 -
维度打击,机器学习中的降维算法:ISOMAP & MDS
降维是机器学习中很有意思的一部分,很多时候它是无监督的,能够更好地刻画数据,对模型效果提升也有帮助,同时在数据可视化中也有着举足轻重的作用。一说到降维,大家第一反应总是PCA,基本上每一本讲机器学习的书都会提到PCA,而除此之外其实还有很多很有意思的降维算法,其中就包括isomap,以及isomap中用到的MDS。ISOMAP是‘流形学习’中的一个经典算法,流形学习贡献了很多降维算法,其中一些与很多原创 2016-11-19 13:15:28 · 39961 阅读 · 17 评论 -
从PCA和SVD的关系拾遗
从PCA和SVD的关系拾遗最近突然看到一个问题,PCA和SVD有什么关系?隐约记得自己照猫画虎实现的时候PCA的时候明明用到了SVD啊,但SVD(奇异值分解)和PCA的(特征值分解)貌似差得相当远,由此钻下去搜集了一些资料,把我的一些收获总结一下,以免以后再忘记。PCA的简单推导PCA有两种通俗易懂的解释,1)是最大化投影后数据的方差(让数据更分散);2)是最小化投影造成的损失。这两个思路最后都能推原创 2016-11-13 19:38:27 · 42111 阅读 · 21 评论 -
RNN以及LSTM的介绍和公式梳理
前言好久没用正儿八经地写博客了,csdn居然也有了markdown的编辑器了,最近花了不少时间看RNN以及LSTM的论文,在组内『夜校』分享过了,再在这里总结一下发出来吧,按照我讲解的思路,理解RNN以及LSTM的算法流程并推导一遍应该是没有问题的。RNN最近做出了很多非常漂亮的成果,比如Alex Graves的手写文字生成、名声大振的『根据图片生成描述文字』、输出类似训练语料的文字等应用,都让人感原创 2015-07-25 16:32:32 · 295193 阅读 · 47 评论 -
理解机器学习算法的一点心得
然后用不同的方法来优化这个问题,得到尽量好的结果,给人的感觉就像是一个黑盒,实际使用中需要不断地调参实验,但倘若你能理解好算法,至少能让这个盒子透明一点,这也是机器学习算法确实需要使用者去理解算法的原因,举个例子:传统算法比如一些高效的数据结构,我只需要知道一些接口就可以使用,不需要进行太多的理解,了解传统算法更多的是理解算法的思想,开阔思路,增强能力;而机器学习算法,你即使知道接口,也至少要调一些参数来达到实际使用的目的。原创 2014-05-10 18:08:34 · 23634 阅读 · 7 评论 -
GBDT(Gradient Boosting Decision Tree) 没有实现只有原理
阿弥陀佛,好久没写文章,实在是受不了了,特来填坑,最近实习了(ting)解(shuo)到(le)很多工业界常用的算法,诸如GBDT,CRF,topic model的一些算法等,也看了不少东西,有时间可以详细写一下,而至于实现那真的是没时间没心情再做了,等回学校了再说吧。今天我们要说的就是GBDT(Gradient Boosting Decision Tree)原创 2014-05-03 10:23:18 · 141013 阅读 · 37 评论 -
从item-base到svd再到rbm,多种Collaborative Filtering(协同过滤算法)从原理到实现
〇.说明 本文的所有代码均可在 DML 找到,欢迎点星星。一.引入 推荐系统(主要是CF)是我在参加百度的电影推荐算法比赛的时候才临时学的,虽然没拿什么奖,但是知识却是到手了,一直想写一篇关于推荐系统的文章总结下,这次借着完善DML写一下,权当是总结了。不过真正的推荐系统当然不会这么简单,往往是很多算法交错在一起,本文只是入门水平的总结罢了。 (本文所原创 2013-12-14 19:49:06 · 64027 阅读 · 48 评论 -
CNN(Convolutional Neural Networks)没有原理只有实现
零.说明: 本文的所有代码均可在 DML 找到,欢迎点星星。 注.CNN的这份代码非常慢,基本上没有实际使用的可能,所以我只是发出来,代表我还是实践过而已一.引入: CNN这个模型实在是有些年份了,最近随着深度学习的兴起又开始焕发青春了,把imagenet测试的准确度提高了非常多,一个是Alex的工作,然后最近好像Zeiler又有突破性原创 2013-12-03 23:03:30 · 24620 阅读 · 11 评论 -
SVM --从“原理”到实现
零. 本文所有代码均能在我 github上的 DML 找到,顺便求点Star一.引入 从一开始接触机器学习,就感觉SVM(支持向量机 Support Vector Machine)就是高端大气上档次的代名词啊,在深度学习出来之前一直都力压ANN一头,是应用得最好的算法了,本文借着实现DML的机会实现一下。二.原理 SVM的文章先不原创 2013-11-23 16:42:18 · 32598 阅读 · 4 评论 -
KNN(k-nearest neighbor algorithm)--从原理到实现
零. 本文所有代码实现均可以在 DML 找到,不介意的话请大家在github里给我点个Star一.引入 K近邻算法作为数据挖掘十大经典算法之一,其算法思想可谓是intuitive,就是从训练集里找离预测点最近的K个样本来预测分类 因为算法思想简单,你可以用很多方法实现它,这时效率就是我们需要慎重考虑的事情,最简单的自然是求出测试样本和训练集所有点的距原创 2013-11-13 12:31:40 · 24156 阅读 · 8 评论 -
AdaBoost--从原理到实现
一.引入 对于Adaboost,可以说是久闻大名,据说在Deep Learning出来之前,SVM和Adaboost是效果最好的 两个算法,而Adaboost是提升树(boosting tree),所谓“提升树”就是把“弱学习算法”二.原理三.实现原创 2013-11-03 14:33:07 · 187205 阅读 · 56 评论 -
决策树--从原理到实现
================================================================================算算有相当一段时间没写blog了,主要是这学期作业比较多,而且我也没怎么学新的东西接下来打算实现一个小的toy lib:DML,同时也回顾一下以前学到的东西当然我只能保证代码的真确性,不能保证其效率啊~~~~~~之后我会陆续原创 2013-10-27 13:07:05 · 71674 阅读 · 7 评论 -
【面向代码】学习 Deep Learning(四) Stacked Auto-Encoders(SAE)
==========================================================================================最近一直在看Deep Learning,各类博客、论文看得不少但是说实话,这样做有些疏于实现,一来呢自己的电脑也不是很好,二来呢我目前也没能力自己去写一个toolbox只是跟着Andrew Ng的原创 2013-08-13 10:21:27 · 42955 阅读 · 15 评论 -
【面向代码】学习 Deep Learning(三)Convolution Neural Network(CNN)
==========================================================================================最近一直在看Deep Learning,各类博客、论文看得不少但是说实话,这样做有些疏于实现,一来呢自己的电脑也不是很好,二来呢我目前也没能力自己去写一个toolbox只是跟着Andrew Ng的原创 2013-07-26 15:01:06 · 77930 阅读 · 50 评论 -
【面向代码】学习 Deep Learning(二)Deep Belief Nets(DBNs)
==========================================================================================最近一直在看Deep Learning,各类博客、论文看得不少但是说实话,这样做有些疏于实现,一来呢自己的电脑也不是很好,二来呢我目前也没能力自己去写一个toolbox只是跟着Andrew Ng的原创 2013-07-24 11:50:07 · 68300 阅读 · 99 评论 -
【面向代码】学习 Deep Learning(一)Neural Network
==========================================================================================最近一直在看Deep Learning,各类博客、论文看得不少但是说实话,这样做有些疏于实现,一来呢自己的电脑也不是很好,二来呢我目前也没能力自己去写一个toolbox只是跟着Andrew Ng的UFLDL原创 2013-07-23 16:24:00 · 111412 阅读 · 124 评论 -
NLP 学习笔记 04 (Machine Translation)
all is based on the open course nlp on coursera.org week 5,week 6 lecture---------------------------------------------------------------------------------------------------------------------------原创 2013-04-09 19:39:51 · 11864 阅读 · 0 评论 -
UFLDL练习(PCA and Whitening && Softmax Regression)
softmax纠结了两天,原因是自己不小心改了主程序还是照例只是贴贴代码,如果你有需要的话可以去看UFLDL的教程至于效果和UFLDL都是一样的,我就不重复贴图了啊,ps:代码是matlab的,不是python的PCA and Whitening:pca_gen.m%%=====================================================原创 2013-03-14 13:03:57 · 8122 阅读 · 10 评论 -
新浪微博小爬虫
一直琢磨着写个爬虫玩,上学期都没实行,于是花了大概一天写了这个东西 其实半天就把程序调试好了,可是在往mysql数据库里保存数据的时候出了问题 python的中文编码实在是非常麻烦,不光如此,因为有些用户的简介里有一些特殊符号,®或者笑脸之类的,于是在这里纠结了很久,好歹最后是成功了(其实也就是过滤掉了那些特殊符号) 效率来说呢,开始的时候一原创 2013-03-08 13:21:50 · 27185 阅读 · 45 评论 -
NLP 学习笔记 02 (Tagging Problems, and Hidden Markov Models)
(all content based on the coursera course nlp)--------------------------------------------------------------------------------------------------------这一周的主要课程是tagging problems首先是简单介绍了一下supervise原创 2013-03-06 11:06:08 · 4827 阅读 · 0 评论 -
UFLDL练习(Sparse Autoencoder)
最近开始学习UFLDL,一个deep learning的教程这个练习的地址:http://deeplearning.stanford.edu/wiki/index.php/Exercise:Sparse_AutoencoderSparse Autoencoder是用神经网络进行feature learning的一个算法,详细的就见教程,我只是贴贴代码从早上十点多一直debug到下午原创 2013-03-03 18:24:46 · 23843 阅读 · 30 评论 -
NLP 学习笔记 01
coursera上MichaelCollins的课程nlp开始了,在读大部头(mlapp)学习ML的过程中看看nlp也着实不错,可以做一些实践 这个课程老师语速很慢,讲解思路十分清晰,推荐给大家。在学习中我可能会把两周的内容在我的blog做一个总结(也许是一周的,看内容的多少了,这第一周的内容太详实了,总结起来太费劲了),方便以后学习和查看--------------------原创 2013-02-28 18:37:48 · 13325 阅读 · 3 评论 -
二维机器学习测试数据生成
最近在看mlapp的第七八章,讲的是线性回归和逻辑回归的内容当然就难免写点代码来进行实验,总喜欢自己做一些数据而不只是写一个原函数再加上噪声毕竟自己点点点出来然后得到学习的直线比较有feel,所有就需要这样一个东西:一个坐标系上点点点出一些点,然后自动生成点的数据放在程序里来跑估计是东西太小,都没看人做个,纠结一番还是自己动手做了一个【【【【【【【【地址在此,请用支持html5原创 2013-02-01 14:52:48 · 3225 阅读 · 2 评论 -
贝叶斯线性回归(Bayesian Linear Regression)
mlapp看到了第七章,跳了第六章没看,第七章主要是讲线性回归的,前面首先是最朴素的线性回归,接着是ridge线性回归(其实就是带惩罚参数的回归),然后就是本文要总结的贝叶斯线性回归。把prml和mlapp综合起来看了,效果还不错,有些东西互有详略,可以互做补充。1.引入 贝叶斯线性回归的引入主要是在最大似然估计中很难决定模型的复杂程度,ridge回归加入的惩罚参数其实也是解决这个原创 2013-01-31 11:01:37 · 43877 阅读 · 6 评论 -
关于“人工智能”的思考
(一点点想法和思考) “人工智能”,窃以为是计算机科学最引人入胜的一个方向,可惜的是我们还没能看到有任何突破性的进展,就像网易公开课对“斯坦福机器学习”课程的描述一样,“人工智能”似乎遇到了一个瓶颈。虽然如你所见,似乎智能化在ios上的siri之后越来越接近人们的生活了,但其实本质上并没有任何的突破。张钹院士有这样一个比喻“人类的技术发展正如同开门,当我们找不到这扇门的钥匙时,如果能原创 2013-01-12 21:29:39 · 3949 阅读 · 2 评论 -
[机器学习]信息论(Information theory)的一些point
信息论(Information theory)的一些points①—熵(entropy) 对于一个变量X~p(X服从p分布),该变量的熵是描述该变量的不确定性的一个值 eg:对于一个有k个状态的离散随机变量X,有 a.当log以2为底的时候称之为 bits,结果可以视为多少个二进制位可以表示该变量原创 2013-01-02 20:39:49 · 18562 阅读 · 4 评论 -
机器学习 cs229学习笔记6(增强学习 reinforcement learning,MDP)
==========================================================================上周生病再加上课余的一些琐事,这边的进度就慢下来了,本篇笔记基于 斯坦福大学公开课cs229 的 lecture16,lecture 17=====================================================原创 2012-12-05 09:26:36 · 33551 阅读 · 9 评论 -
机器学习 cs229学习笔记5 (ICA Independent components analysis)
(all is based on the stanford's open-course CS229 lecture 15)因为对ICA理解得不是很深刻在网上东搜西搜搜到一个牛人的bloghttp://www.cnblogs.com/jerrylead/他也写了cs229的学习笔记系列,和我的一比较顿时我就自惭形秽了,不过既然都差不多快写完了,我也就继续坚持着吧毕竟我的本意是给自己留原创 2012-11-26 21:11:35 · 5567 阅读 · 4 评论 -
机器学习 cs229学习笔记4 (EM for factor analysis & PCA(Principal components analysis))
=============================================================================EM FOR FACTOR ANALYSIS=============================================================================通过cs229学习笔记3 (EM a原创 2012-11-22 12:35:50 · 8024 阅读 · 0 评论 -
关于多元正态分布的条件分布的证明
之前在机器学习 cs229学习笔记3 (EM alogrithm,Mixture of Gaussians revisited & Factor analysis )中直接给出了多元正态分布的条件概率正好今天上课讲了多元正态分布的内容,但没有涉及条件概率,所以下来baidu了一下,找到一个不错的ppt(ps:其实试着自己搞了一下。。。。没搞出来,所以说数学功底弱啊。。。。)下面是ppt转载 2012-11-20 23:03:17 · 26044 阅读 · 5 评论 -
机器学习 cs229学习笔记3 (EM alogrithm,Mixture of Gaussians revisited & Factor analysis )
(all is based on the stanford's open-course cs229 lecture 13)接上次笔记 机器学习 cs229学习笔记2 (k-means,EM & Mixture of Gaussians)如何确定EM算法converge呢?当然是比较前后两次迭代的似然函数的大小,如果相差极小,则可以证明算法已经converge了假设一次迭代开始时的参原创 2012-11-19 21:08:06 · 8082 阅读 · 3 评论 -
机器学习 cs229学习笔记2 (k-means,EM & Mixture of Gaussians)
(all is based on stanford's opencourse cs229 lecture 12)首先介绍的是聚类算法中最简单的K-Means算法////////////////////////////////////////////////////////////////////////////////////////////////////////////////////原创 2012-11-14 09:31:01 · 5734 阅读 · 0 评论 -
机器学习 cs229学习笔记1
(all is based on the stanford open course cs229.Lecture 11.)regularization(正规化)防止过拟合:保留所有的参数贝叶斯学习方法:增加先验概率,常用为高斯分布N(0,λ),使算法更倾向于选择更小的参数体现在最大似然估计上就是增加惩罚项目,||Θ||^2///////////////////////////////原创 2012-11-11 11:40:07 · 4636 阅读 · 4 评论 -
机器学习-笔记9-总结
时间真快,10周的课程就已经结束了十周,8个programming exercise,18个quiz,感谢 看着长长地视频列表,心中有些小小的成就感,在此感谢coursera提供的课程,感谢Andrew教授的精彩课程,为我打开了机器学习这扇大门 还是先简单说说最后一周的内容吧,首先是Large Scale Machine Learning ,即讲机器学习算法如何应对大量的数据,总结下来原创 2012-11-09 12:40:46 · 2177 阅读 · 0 评论 -
机器学习-笔记8
这是机器学习第8,9周内容的笔记,因为国庆的缘故有些耽误,所以两个部分放在一起总结归纳。 首先是聚类(Clustering),主要介绍的是K-Means算法,其实这个算法思想很简单,之前在《集体智慧编程》上面就了解过,这次补充学习了一些小细节。 算法的实质就是:(随机初始化聚点) 1、将样例的每个点分配给离它最近的那个聚点 2、统计所有同类点的中点,将聚点移原创 2012-11-09 12:40:44 · 2239 阅读 · 0 评论