
Machine Learning
文章平均质量分 80
wepon_
Machine learning、DM、computer vision。
展开
-
Kaggle入门——使用scikit-learn解决DigitRecognition问题
scikit-learn是一个基于NumPy、SciPy、Matplotlib的开源机器学习工具包,采用Python语言编写,主要涵盖分类、回归和聚类等算法,例如knn、SVM、逻辑回归、朴素贝叶斯、随机森林、k-means等等诸多算法,官网上代码和文档都非常不错,对于机器学习开发者来说,是一个使用方便而强大的工具,节省不少开发时间。scikit-learn官网指南:http://scikit-learn.org/stable/user_guide.html上一篇文章《大数据竞赛平台—Kaggle原创 2014-12-17 10:07:41 · 17487 阅读 · 14 评论 -
《Neural networks and deep learning》概览
最近阅读了《Neural networks and deep learning》这本书(online book,还没出版),算是读得比较仔细,前面几章涉及的内容比较简单,我着重看了第三章《Improving the way neural networks learn》,涉及深度神经网络优化和训练的各种技术,对第三章做了详细的笔记(同时参考了其他资料,以后读到其他相关的论文资料也会补充或更改),欢迎有原创 2015-03-12 12:34:05 · 30354 阅读 · 5 评论 -
正则化方法:L1和L2 regularization、数据集扩增、dropout
本文是《Neural networks and deep learning》概览 中第三章的一部分,讲机器学习/深度学习算法中常用的正则化方法。(本文会不断补充)正则化方法:防止过拟合,提高泛化能力在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合)。其直观的表现如下图所示,随着训练过程,网络在training data上的error渐渐减小,但是在验证集上原创 2015-03-14 18:12:20 · 130011 阅读 · 43 评论 -
卷积神经网络的一些细节
节选自语义分析的一些方法(二),以后会不断补充。——by wepon结合文献『Deep Learning for Computer Vision』, 以下讲讲卷积神经网络的一些注意点和问题。激励函数,要选择非线性函数,譬如tang,sigmoid,rectified liner。在CNN里,relu用得比较多,原因在于:(1)简化BP计算;(2)使学习更快。(3)避免饱和问题(sa原创 2015-02-27 19:35:11 · 5960 阅读 · 0 评论 -
交叉熵代价函数
本文是《Neural networks and deep learning》概览 中第三章的一部分,讲machine learning算法中用得很多的交叉熵代价函数。1.从方差代价函数说起代价函数经常用方差代价函数(即采用均方误差MSE),比如对于一个神经元(单输入单输出,sigmoid函数),定义其代价函数为: 其中y是我们期望的输出,a为神经元的实际输出【 a=σ(z), where z=wx+原创 2015-03-13 13:18:56 · 156304 阅读 · 18 评论 -
Kaggle比赛-Otto Group Product Classification-打败一半参赛队伍的简单解法
简介Otto Group Product Classification Challenge是Kaggle上目前正在进行的一个比赛,目前已1000+队伍参赛,由Otto公司赞助1W美刀,数据也是来自于该公司的产品,提供了train.csv、test.csv、samplesubmission.csv三份数据。train.csv里包含了6万多个样本,每个样本有一个id,93个特征值feat_1~feat_原创 2015-03-24 23:02:45 · 7314 阅读 · 2 评论 -
2015阿里天池大数据竞赛-Solution
竞赛介绍:链接这篇文章记录2015阿里天池大数据竞赛中,我的一些代码,由于目前还在比赛中,仅分享一个naive solution,基于规则,代码主页在我的github上:链接,下面是代码说明。有兴趣的请看代码注释,恕不详述。 本repo目录说明data 存放数据preprocess 数据预处理rule 根据规则生成提交文件model 训练机器学习模型(暂时不分享)代码使用说原创 2015-04-14 00:02:06 · 18773 阅读 · 5 评论 -
libsvm和liblinear的使用总结
0.安装方法unix系统下的安装方法:到官网下载源包(目前最新版本为libsvm-3.20、liblinear-1.96),解压后,打开终端进入makefile所在的目录,键入make即可。以下为一些基本的使用命令,ubuntu系统下。1.生成符合要求的数据格式,以图像数据为例从图像库得到csv文件 (csv文件里每一行存储一张图:label,feat1,feat2,…..),在终端下键入:pyt原创 2015-04-22 23:50:06 · 6950 阅读 · 1 评论 -
DeepLearning tutorial(5)CNN卷积神经网络应用于人脸识别(详细流程+代码实现)
本文主要讲解将CNN应用于人脸识别的流程,程序基于python+numpy+theano+PIL开发,采用类似LeNet5的CNN模型,应用于olivettifaces人脸数据库,实现人脸识别的功能,模型的误差降到了5%以下。本程序只是个人学习过程的一个toy implement,模型可能存在overfitting,因为样本小,这一点也无从验证。但是,本文意在理清程序开发CNN模型的具体步骤,特别是针对图像识别,从拿到图像数据库,到实现一个针对这个图像数据库的CNN模型,我觉得本文对这些流程的实现具有参考原创 2015-01-29 20:35:43 · 119056 阅读 · 104 评论 -
图像语义分析--深度学习方法
本文 转自:语义分析的一些方法(三),主要论述了基于深度学习方法的图像语义分析,包括图片分类、图片搜索、图片标注(image2text、image2sentence),以及训练深度神经网络的一些tricks,最后还简要地提及语义分析方法在腾讯广点通上的实际应用。文中没有复杂的公式、原理,但总结了图像语义分析一些star-of-art的方法,值得一读。转载 2015-02-27 19:40:30 · 32822 阅读 · 5 评论 -
流形学习-高维数据的降维与可视化
1.流形学习的概念流形学习方法(Manifold Learning),简称流形学习,自2000年在著名的科学杂志《Science》被首次提出以来,已成为信息科学领域的研究热点。在理论和应用上,流形学习方法都具有重要的研究意义。假设数据是均匀采样于一个高维欧氏空间中的低维流形,流形学习就是从高维采样数据中恢复低维流形结构,即找到高维空间中的低维流形,并求出相应的嵌入映射,以实现维数约简或者数据可视化。原创 2015-05-22 19:55:12 · 47632 阅读 · 2 评论 -
朴素贝叶斯理论推导与三种常见模型
朴素贝叶斯(Naive Bayes)是一种简单的分类算法,它的经典应用案例为人所熟知:文本分类(如垃圾邮件过滤)。很多教材都从这些案例出发,本文就不重复这些内容了,而把重点放在理论推导(其实很浅显,别被“理论”吓到),三种常用模型及其编码实现(Python)。如果你对理论推导过程不感兴趣,可以直接逃到三种常用模型及编码实现部分,但我建议你还是看看理论基础部分。另外,本文的所有代码都可以从我的gith原创 2015-09-09 21:41:03 · 80435 阅读 · 32 评论 -
KMeans聚类算法思想与可视化
1.聚类分析1.0 概念聚类分析简称聚类(clustering),是一个把数据集划分成子集的过程,每一个子集是一个簇(cluster),使得簇中的样本彼此相似,但与其他簇中的样本不相似。聚类分析不需要事先知道样本的类别,甚至不用知道类别个数,因此它是一种无监督的学习算法,一般用于数据探索,比如群组发现和离群点检测,还可以作为其他算法的预处理步骤。下面的动图展示的是一个聚类过程,感受一下:1.1 基本原创 2015-08-20 18:52:00 · 54347 阅读 · 11 评论 -
数据预处理
常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍;1. 标准化(Standardization or Mean Removal and Variance Scaling)变换后各维特征有0均值,单位方差。也叫z-sco原创 2016-02-03 14:12:49 · 9800 阅读 · 3 评论 -
DeepLearning tutorial(6)易用的深度学习框架Keras简介
之前我一直在使用Theano,前面五篇Deeplearning相关的文章也是学习Theano的一些笔记,当时已经觉得Theano用起来略显麻烦,有时想实现一个新的结构,就要花很多时间去编程,所以想过将代码模块化,方便重复使用,但因为实在太忙没有时间去做。最近发现了一个叫做Keras的框架,跟我的想法不谋而合,用起来特别简单,适合快速开发。(其实还有很多其他的深度学习框架都是比较容易用的。)1. Ke原创 2015-04-30 17:03:10 · 66214 阅读 · 78 评论 -
机器学习算法中如何选取超参数:学习速率、正则项系数、minibatch size
本文是《Neural networks and deep learning》概览 中第三章的一部分,讲机器学习算法中,如何选取初始的超参数的值。(本文会不断补充)学习速率(learning rate,η)运用梯度下降算法进行优化时,权重的更新规则中,在梯度项前会乘以一个系数,这个系数就叫学习速率η。下面讨论在训练时选取η的策略。固定的学习速率。如果学习速率太小,则会使收敛过慢,如果学习速率太大,则原创 2015-03-14 23:49:23 · 70454 阅读 · 7 评论 -
大数据竞赛平台——Kaggle 入门
大数据竞赛平台——Kaggle 入门篇这篇文章适合那些刚接触Kaggle、想尽快熟悉Kaggle并且独立完成一个竞赛项目的网友,对于已经在Kaggle上参赛过的网友来说,大可不必耗费时间阅读本文。本文分为两部分介绍Kaggle,第一部分简单介绍Kaggle,第二部分将展示解决一个竞赛项目的全过程。如有错误,请指正!1、Kaggle简介Kaggle是一个数据分析的竞赛平台,网址:ht原创 2014-12-14 21:34:01 · 302082 阅读 · 56 评论 -
DeepLearning tutorial(1)Softmax回归原理简介+代码详解
DeepLearning tutorial(1)Softmax回归原理简介+代码详解@author:wepon@blog:http://blog.youkuaiyun.com/u012162613/article/details/43157801本文介绍Softmax回归算法,特别是详细解读其代码实现,基于python theano,代码来自:Classifying MNIST原创 2015-01-26 20:06:44 · 37436 阅读 · 5 评论 -
DeepLearning tutorial(2)机器学习算法在训练过程中保存参数
DeepLearning tutorial(2)机器学习算法在训练过程中保存参数@author:wepon@blog:http://blog.youkuaiyun.com/u012162613/article/details/43169019参考:pickle — Python object serialization、DeepLearning Getting starte原创 2015-01-26 23:45:09 · 12722 阅读 · 7 评论 -
DeepLearning tutorial(4)CNN卷积神经网络原理简介+代码详解
DeepLearning tutorial(4)CNN卷积神经网络原理简介+代码详解@author:wepon@blog:http://blog.youkuaiyun.com/u012162613/article/details/43225445本文介绍多层感知机算法,特别是详细解读其代码实现,基于python theano,代码来自:Convolutional Neural原创 2015-01-28 07:48:28 · 88494 阅读 · 25 评论 -
利用Python PIL、cPickle读取和保存图像数据库
利用Python PIL、cPickle读取和保存图像数据库 @author:wepon@blog:http://blog.youkuaiyun.com/u012162613/article/details/43226127计算机视觉、机器学习任务中,经常跟图像打交道,在C++上有成熟的OpenCV可以使用,在Python中也有一个图像处理库PIL(Python Image L原创 2015-01-28 09:40:54 · 30951 阅读 · 11 评论 -
DeepLearning tutorial(3)MLP多层感知机原理简介+代码详解
DeepLearning tutorial(3)MLP多层感知机原理简介+代码详解@author:wepon@blog:http://blog.youkuaiyun.com/u012162613/article/details/43221829本文介绍多层感知机算法,特别是详细解读其代码实现,基于python theano,代码来自:Multilayer Perceptron,如果你想原创 2015-01-28 03:18:22 · 72375 阅读 · 12 评论 -
机器学习(Machine Learning)&深度学习(Deep Learning)资料
机器学习(Machine Learning)&深度学习(Deep Learning)资料機器學習、深度學習方面不錯的資料,轉載。原作:https://github.com/ty4z2008/Qix/blob/master/dl.md原作作者會不斷更新,本文更新至2014-12-21《Brief History of Machine Lea转载 2014-12-21 13:26:16 · 7979 阅读 · 1 评论 -
【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库
kNN算法,即K最近邻(k-NearestNeighbor)分类算法,是最简单的机器学习算法之一,算法思想很简单:从训练样本集中选择k个与测试样本“距离”最近的样本,这k个样本中出现频率最高的类别即作为测试样本的类别。分类过程如下:1 首先我们事先定下k值(就是指k近邻方法的k的大小,代表对于一个待分类的数据点,我们要寻找几个它的邻居)。这边为了说明问题,我们取两个k值,分别为3和5;2 根据事先确定的距离度量公式(如:欧氏距离),得出待分类数据点和所有已知类别的样本点中,距离最近的k个样本。3 统原创 2014-12-06 01:33:19 · 39506 阅读 · 12 评论 -
【DeepLearning工具】Fedora下安装theano
【DeepLearning工具】Fedora下安装Theanoauthor:wepon@blog:http://blog.youkuaiyun.com/u012162613/article/details/426512331、Theano简介Theano是深度学习的一个python库,在deeplearning.net上有它的tutorial,它可以方便我们写深度学习模型,它提供了原创 2015-01-12 21:53:27 · 4554 阅读 · 0 评论 -
【机器学习算法实现】主成分分析(PCA)——基于python+numpy
【机器学习算法实现】主成分分析(PCA)——基于python+numpy@author:wepon@blog:http://blog.youkuaiyun.com/u012162613/article/details/421773271、PCA算法介绍主成分分析(Principal Components Analysis),简称PCA,是一种数据降维技术,用于数据预处理。一般我们获原创 2014-12-26 21:16:51 · 100570 阅读 · 28 评论 -
【机器学习算法实现】logistic回归__基于Python和Numpy函数库
【机器学习算法实现】系列文章将记录个人阅读机器学习论文、书籍过程中所碰到的算法,每篇文章描述一个具体的算法、算法的编程实现、算法的具体应用实例。争取每个算法都用多种语言编程实现。所有代码共享至github:https://github.com/wepe/MachineLearning-Demo 欢迎交流指正!logistic回归一般用于二分类问题,比如判断一封邮件是否为垃圾邮件,判断照片中的人是男是女,预测一场比赛输还是赢......当然也可以用于多分类问题,比如k类别,就进行k次logistic原创 2014-12-10 12:07:39 · 31466 阅读 · 9 评论 -
【简化数据】奇异值分解(SVD)
【简化数据】奇异值分解(SVD)@author:wepon@blog:http://blog.youkuaiyun.com/u012162613/article/details/422142051、简介奇异值分解(singular Value Decomposition),简称SVD,线性代数中矩阵分解的方法。假如有一个矩阵A,对它进行奇异值分解,可以得到三个矩阵:原创 2014-12-28 15:28:00 · 37359 阅读 · 3 评论 -
相似度计算
相似度计算@author:wepon@blog:http://blog.youkuaiyun.com/u012162613/article/details/42213883《Machine Learning in Action》笔记,相似度计算,基于python+numpy。在推荐系统中,我们需要计算两个物品的相似度,对于物品的描述,一般都可以量化为一个向量,于是两个物品之原创 2014-12-28 14:52:40 · 15100 阅读 · 1 评论 -
2014年人工智能领域的突破
2014 in Computing: Breakthroughs in Artificial Intelligence原文:http://www.technologyreview.com/news/533686/2014-in-computing-breakthroughs-in-artificial-intelligence/The most striking res转载 2014-12-30 14:30:05 · 2839 阅读 · 0 评论 -
DeepLearning tutorial(7)深度学习框架Keras的使用-进阶
上一篇文章总结了Keras的基本使用方法,相信用过的同学都会觉得不可思议,太简洁了。十多天前,我在github上发现这个框架的时候,关注Keras的人还比较少,这两天无论是github还是微薄,都看到越来越多的人关注和使用Keras。所以这篇文章就简单地再介绍一下Keras的使用,方便各位入门。主要包括以下三个内容:训练CNN并保存训练好的模型。将CNN用于特征提取,用提取出来的特征训练SVM。原创 2015-05-08 16:01:40 · 25404 阅读 · 36 评论