
Machine Learn
文章平均质量分 85
yqtaowhu
硕士研究生,关注方向:C++,Linux,数据挖掘,机器学习,计算机视觉
Github:https://github.com/yqtaowhu
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
梯度下降算法的C++实现
#include<iostream>#include<vector>#include<fstream>using namespace std;int main() { double theta0 = 0, theta1 = 0; double v = 0.005; double cost = INT_MAX; vector<double>x; vector<doubl原创 2016-09-27 21:41:58 · 6457 阅读 · 0 评论 -
Tensorflow实现卷积神经网络
\quad如果不明白什么是卷积神经网络,请参考:计算机视觉与卷积神经网络 下面基于开源的实现简单梳理如何用tensorflow实现卷积神经网络.实现卷积神经网络加载数据集# 加载数据集import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_d原创 2017-04-29 15:29:16 · 5285 阅读 · 7 评论 -
Tensorflow入门-实现神经网络
\quad学习tensorflow一段时间了,感觉非常的好用,在使用是,有时候最重要的是想好神经网络的结构,这样就可以随意的在神经网络中加如隐含层了,特别主要的是矩阵的维度相乘的问题,下面将使用tensorflow实现神经网络,做一下自己的理解.实现无隐含层的神经网络下面以手写数字识别的例子作为说明.读入数据import tensorflow as tffrom tensorflow.exampl原创 2017-04-16 17:09:23 · 5554 阅读 · 0 评论 -
AlexNet原理及Tensorflow实现
\quadAlexNet的出现点燃了深度学习的热潮,下面对其进行介绍,并使用tensorflow实现.1. AlexNet网络结构图片来源:AlexNet的论文\quad整个网络有8个需要训练的层,前5个为卷积层,最后3层为全连接层.第一个卷积层输入的图片大小为:224*224*3第一个卷积层为:11*11*96即尺寸为11*11,有96个卷积核,步长为4,卷积层后跟ReLU,因此输出的尺寸为原创 2017-05-02 16:10:46 · 40204 阅读 · 13 评论 -
python实现神经网络
声明:本文是A Neural Network in 11 lines of Python学习总结而来,关于更详细的神经网络的介绍可以参考从感知机到人工神经网络。如果你读懂了下面的文章,你会对神经网络有跟深刻的认识,有任何问题,请多多请教Very simple Neural Network首先确定我们要实现的任务:\qquad\qquad\qquad\qquad输出的为样本为XX为4*3,有4个样本3原创 2017-01-16 17:57:48 · 22796 阅读 · 7 评论 -
深度学习防止过拟合的方法
\quad过拟合即在训练误差很小,而泛化误差很大,因为模型可能过于的复杂,使其”记住”了训练样本,然而其泛化误差却很高,在传统的机器学习方法中有很大防止过拟合的方法,同样这些方法很多也适合用于深度学习中,同时深度学习中又有一些独特的防止过拟合的方法,下面对其进行简单的梳理.1. 参数范数惩罚\quad范数正则化是一种非常普遍的方法,也是最常用的方法,假如优化: minObj(θ)=L(y,f(x原创 2017-05-02 20:52:11 · 24001 阅读 · 0 评论 -
基于HMM的中文分词
关于HMM模型的介绍,网上的资料已经烂大街,但是大部分都是在背书背公式,本文在此针对HMM模型在中文分词中的应用,讲讲实现原理。尽可能的撇开公式,撇开推导。结合实际开源代码作为例子,争取做到雅俗共赏,童叟无欺。没有公式,就没有伤害。模型介绍第一次听说HMM模型是从李开复的博文论文中听说的:李开复1988年的博士论文发表了第一个基于隐马尔科夫模型(HMM)的语音识别系统Sphinx,被《商业周刊》评为转载 2017-07-18 17:05:49 · 4954 阅读 · 1 评论 -
VGGNet原理及Tensorflow实现
\quadVGGNet是常用的网络,通常可以直接拿来用,或者可以将前面的层拿出进行fine-tune,用于训练我们自己的模型,同时vgg的官方对训练的参数进行了开源,便于进行transfer-learning.VGG 网络结构原创 2017-07-31 16:39:53 · 1212 阅读 · 0 评论 -
Gradient Boosting 总结
1、如果计算特征的重要性参考:Tree ensemble算法的特征重要度计算原创 2017-08-04 10:15:55 · 1045 阅读 · 0 评论 -
CNN的反向求导及练习
http://www.cnblogs.com/tornadomeet/p/3468450.html转载 2017-09-16 09:46:54 · 1725 阅读 · 0 评论 -
卷积的各种形式
1、卷积的各种结构:Convolution arithmetic tutorial2、如何理解转置卷积(transpose conv) 如何理解深度学习中的deconvolution networks?转载 2017-09-16 10:54:10 · 2070 阅读 · 0 评论 -
推荐系统入门
1. 推荐系统的意义\quad互联网大爆炸时期的信息过载的解决方案:\quad对用户而言:找到好玩的东西,帮助决策,发现新鲜事物。 \quad对商家而言:提供个性化服务,提高信任度和粘性,增加营收。2. 推荐系统的构成\quad前台的展示页面,后台的日志系统,推荐算法等部分组成,如下图所示:3. 推荐系统的评测3.1 离线实验即线下的部分,用于训练模型优点:不需要有对实际系统的控制权;不需要用原创 2017-03-14 21:33:30 · 24489 阅读 · 2 评论 -
Caffe学习-手写数字识别
1. Caffe训练方法综述\quadcaffe非常简单,训练时只需写prototxt文件即可,其大致的步骤为:Resize图片,转换存储格式(LMDB/LevelDB)定义网络结构(编辑prototxt)定义solver(编辑另一个prototxt)一行命令开始训练(可以基于已有的权重赋值)\quad如下图所示,其训练的过程,关于卷积神经网络(CNN)可以参考:计算机视觉与卷积神经网络下原创 2017-03-11 17:56:44 · 7766 阅读 · 0 评论 -
计算机视觉与卷积神经网络
人工神经网络到卷积神经网络如下图所示一个典型的人工神经网络:关于更多的人工神经网络请参考:从感知机到人工神经网络人工神经网络同样能应用到计算机视觉中,但是对于一副图像来说,假如其大小为227*227*3,即使对其做采样到32*32*3其输入的维度依然很高。如果用人工神经网络来对图片进行分类的话,它将面临这主要的两个问题: w参数的量级将会非常大,会消耗大量的计算资源 将会引起过拟合原创 2017-01-01 16:45:17 · 19856 阅读 · 6 评论 -
K-近邻算法
本文内容是根据自己阅读《机器学习实践》得来。完整的代码和数据可访问官网或者我的GitHub:1:算法简单描述给定训练数据样本和标签,对于某测试的一个样本数据,选择距离其最近的k个训练样本,这k个训练样本中所属类别最多的类即为该测试样本的预测标签。简称kNN。通常k是不大于20的整数,这里的距离一般是欧式距离。K-近邻算法的优缺点: 优点: 精度高、对异常值反应不敏感、无数据出入假定 缺点原创 2016-09-29 22:14:23 · 835 阅读 · 0 评论 -
基于朴素贝叶斯分类算法实现垃圾邮箱分类
贝叶斯决策理论在机器学习中,朴素贝叶斯是基于贝叶斯决策 的一种简单形式,下面给出贝叶斯的基本公式,也是最重要的公式: 其中X是一个m*n的矩阵,m为他的样本数,n为特征的个数,即我们要求的是:在已知的样本情况下的条件概率。 )表示的是条件概率 )为先验概率 为什么需要朴素贝叶斯这里有两个原因:由统计学知识,如果每个特征需要N个样本,那么对于10个特征需要个样本,这个数原创 2016-11-08 18:24:13 · 29940 阅读 · 15 评论 -
从感知机到人工神经网络
感知机算法感知机(Perceptron)算法是一种很好的二分类在线算法,它要求是线性可分的模型,感知机对应于在输入的空间中将实例划分成正负样本,分离它们的是分离超平面,即判别的模型。如下图所示:可用一个决策边界w*x+b将正负样本进行区分。其中w为权重,b为偏置项。(w*x1+b)>0被分为正样本,否则为负样本。 来源:统计学习方法感知机学习策略假定要本线性可分,感知机的学习目标就是求的能将正负要原创 2016-12-31 17:42:41 · 19116 阅读 · 4 评论 -
深入理解支持向量机
从感知机到支持向量机支持向量机(support vector machine,SVM)是一种二类的分类模型,它的基本模型是:特征空间中间隔最大的线性分类器。间隔最大使其有别于感知机算法,感知机算法是对线性可分问题进行二分类的算法,它是要满足能将其分开即可,因此SVM与感知机的区别在于间隔最大这一特点。如下图所示: 来源:机器学习从上图中可以看到,有许多的线段都可以将正负样本分开,而感知机可以从这些原创 2017-01-02 16:06:49 · 3742 阅读 · 2 评论 -
基于ID3算法生成决策树
决策树的类型有很多,有CART、ID3和C4.5等,其中CART是基于基尼不纯度(Gini)的,而ID3和C4.5都是基于信息熵的,它们两个得到的结果都是一样的,本次定义主要针对ID3算法。在构造决策树时,第一个问题就是:当前的那个特征在划分数据是起着决定性的作用。为了找到决策性的特征必须对每个特征进行评估。因此本文针对ID3算法使用的信息熵方法划分数据的特征来进行实验。信息熵如果待分类的的事物有多原创 2016-11-05 17:23:41 · 1791 阅读 · 0 评论 -
深入理解K-Means聚类算法
概述什么是聚类分析聚类分析是在数据中发现数据对象之间的关系,将数据进行分组,组内的相似性越大,组间的差别越大,则聚类效果越好。不同的簇类型聚类旨在发现有用的对象簇,在现实中我们用到很多的簇的类型,使用不同的簇类型划分数据的结果是不同的,如下的几种簇类型。明显分离的可以看到(a)中不同组中任意两点之间的距离都大于组内任意两点之间的距离,明显分离的簇不一定是球形的,可以具有任意的形状。基于原型的簇是对象原创 2016-12-18 20:50:09 · 226766 阅读 · 19 评论 -
统计学习方法--决策树
概述\qquad决策树(Decision tree)一种常见的回归和分类的方法,决策树易于理解,其符合人类的思维方式,便于解释等特点。决策树的学习过程通常分为3个步骤:特征选择、决策树的生成、剪枝。 \qquad决策树可以看出一个if-then规则的集合,下面给出一副图进行对决策树宏观的认识,这里我们的任务是要将红色的点和绿色的点进行分类:\qquad在平面上选择最好的划分点,即如何切分数据点效果原创 2017-01-03 22:54:06 · 3435 阅读 · 2 评论 -
Ensemble learning:Bagging,Random Forest,Boosting
概述\qquad集成学习(ensemble learning)构建多个基础的分类器,然后将多个分类器进行组合的一种学习方式。其通常也被称为多分类器系统(multi-classifer system)。下图显示了集成学习的一种普遍的方式:\qquad从图中可以看到,首先从原始的数据集中构造多个数据集,然后分别构造单个分类器,最后将这些分类器进行组合的到组合的分类器。\qquad一个很自然的问题:为什么原创 2017-01-05 22:19:25 · 4378 阅读 · 0 评论 -
Python机器学习库scikit-learn
概述scikit-learn 是机器学习领域非常热门的一个开源库,基于Python 语言写成。可以免费使用。 而且使用非常的简单,文档感人,非常值得去学习。下面是一张scikit-learn的图谱:我们可以看到,机器学习分为四大块,分别是 classification (分类), clustering (聚类), regression (回归), dimensionality reduction (原创 2016-12-20 15:45:51 · 8685 阅读 · 0 评论 -
深度探讨机器学习中的ROC和PR曲线
引言\quad 在 21 Must-Know Data Science Interview Questions and Answers 的文章中,有这类似这样的问题,它问的是Explain what precision and recall are. How do they relate to the ROC curve?关于这个问题其实有许多需要回答的,不仅仅是他们的表现形式不同,同时它涉及到下机原创 2017-01-13 16:46:32 · 46820 阅读 · 4 评论 -
偏置方差分解Bias-variance Decomposition
http://blog.youkuaiyun.com/pipisorry/article/details/50638749转载 2017-09-12 16:46:18 · 1259 阅读 · 0 评论