
机器学习
文章平均质量分 69
kabuto_hui
渡己亦渡人
展开
-
手动实现打乱训练集并生成一个batch的简单方法
在训练一个深度学习模型之前,我们会将数据集划分为训练集、验证集和测试集。在训练的时候,我们往往会将训练集打乱,划分成多个batch来进行训练。一般情况下,我们可以使用tf.data.Dataset或者tf.TFRecordReader()来实现。如果不使用这两个方法,我们利用numpy也可以实现这个功能。 下面我将定义一个类,来简单实现这个功能:import numpy as...原创 2019-12-02 11:49:01 · 1991 阅读 · 0 评论 -
TensorFlow学习笔记(2)-构建神经网络及其可视化
文章目录1. 添加隐藏层2. 生成实验数据3. 定义网络结构4. 可视化4.1 loss曲线4.2 显示当前训练曲线参考资料 tensorflow给我的感觉就是定义了一系列的计算方法和流程,但是网络的构建还是需要自己去定义的。比如隐藏层的个数,隐藏层的神经元的数量等等。所以,首先定义一个添加隐藏层的函数。1. 添加隐藏层import tensorflow as tfdef add_la...原创 2019-01-16 10:49:55 · 915 阅读 · 1 评论 -
TensorFlow学习笔记(1)-基础笔记
文章目录1. 计算图的概念2. 常量与变量3. 交互式使用4. Fetch & Feed参考资料:1. 计算图的概念 TensorFlow 程序通常被组织成一个构建阶段和一个执行阶段。 在构建阶段, op 的执行步骤 被描述成一个图。在执行阶段, 使用会话执行执行图中的 op。 TensorFlow的名字中已经说明了它最为重要的两个特点:Tensor和Flow。其中Tensor意...原创 2019-01-09 11:40:06 · 1101 阅读 · 1 评论 -
《Machine Learning In Action》学习笔记(1)-KNN(k-近邻算法)
knn算法我在之前的博客从零开始-Machine Learning学习笔记(20)-kNN(k-Nearset Neignbor)学习笔记中也已经提到了,大家如果感兴趣可以回过头去看看,knn原理非常简单。不需要训练,当有待分类样本时,只需要从数据集中选取k个与这个样本距离最近的样本,将k个样本中最多的label作为该待分类样本的label。 我将书中所给的代码使用Python3编译,添加...原创 2018-12-19 23:11:36 · 278 阅读 · 0 评论 -
《机器学习》-周志华版学习笔记目录
原定于11月分完成周志华老师所著的《机器学习》的学习,并整理出学习笔记的计划,截至今天总算是基本完成了。中间出了一趟差,周内的还需要做一些项目上的工作,其实时间还是非常的紧的,所以每天基本是上是早上看书,下午项目,晚上总结笔记这样一个时间安排。有的时候真的是看不进去,也不理解,就想着算了吧,算了吧。但是想想飞逝的时间,就不禁产生了一种紧张感,就是这种紧张感让我硬着头皮看下去。 看书时常有不...原创 2018-12-01 00:06:29 · 1641 阅读 · 3 评论 -
从零开始-Machine Learning学习笔记(32)-强化学习
文章目录1. K-摇臂赌博机1.1 探索与利用1.2 $\epsilon$-贪心1.3 Softmax2. 有模型学习2.1 策略评估2.2 策略改进2.3 策略迭代与值迭代3. 免模型学习3.1 蒙特卡罗强化学习3.2 时序查分学习4. 值函数近似5. 模仿学习5.1 直接模仿学习5.2 逆强化学习 下图是强化学习的一个简单的示意图。强化学习任务通常用马尔可夫决策过程(Markov Dec...原创 2018-11-30 23:37:37 · 981 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(30)-概率图模型
概率模型:(probabilistic model)提供了一种描述框架,将学习任务归结于计算变量的概率分布。生成式模型:对联合概率建模;判别式模型:对条件概率建模。概率图模型:(probabilistic graphical model)是一类用图来表达变量相关关系的概率模型。它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的边表示变量间的概率相关关系,即"变量关系图"...原创 2018-11-27 23:41:30 · 573 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(29)-半监督学习
让学习器不依赖外界交互、自动地利用未标记样本来提升学习性能,就是半监督学习(semi-supervised learning)。利用未标记样本学习主要有主动学习和半监督学习,其中半监督学校主要包括 “纯半监督学习” 和 “直推学习”。主动学习: 先拿有标记的样本训练一个模型,然后拿这个模型去未标记的数据上验证,这个验证需要引入专家知识,以尽量少的“查询”来获取尽量好的性能。纯半监督学习: ...原创 2018-11-26 23:19:50 · 631 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(31)-规则学习
文章目录1. 基本概念2. 序贯覆盖3. 剪枝优化3.1 预剪枝-CN2算法3.2 后剪枝-RIPPER算法4. 一阶规则学习5. 归纳逻辑程序设计(ILP)5.1 最小一般泛化5.2 逆归结1. 基本概念 “规则学习” (rule learning)是从训练数据中学习出一组能用于对未见示例进行判别的规则。 形式上一般为:式子中,右边的部分称为规则体(Body),表示该条规则的前...原创 2018-11-28 23:10:04 · 4681 阅读 · 1 评论 -
从零开始-Machine Learning学习笔记(28)-特征选择与稀疏学习
特征选择的目的主要有两个:首先,我们在现实任务中经常会遇到维数灾难问题,这是由于属性过多而造成的,若能从中选择出重要的特征,使得后续学习过程仅需在-部分特征上构建模型,则维数灾难问题会大为减轻。这与降维的目的类似。第一个原因是,去除不相关特征往往会降低学习任务的难度,这就像侦探破案一样,若将纷繁复杂的因素抽丝剥茧,只留下关键因素,则真相往往更易看清。1. 子集搜素与评价 在众多的特征中如...原创 2018-11-25 21:22:44 · 725 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(27)-降维与度量学习
文章目录1. k近邻学习 - (k-Nearest Neighbor, KNN)2. 低维嵌入3. 主成分分析(Principal Component Analysis, PCA)4. 核化线性降维 - KPCA(Kernelized PCA, KPCA)5. 流形学习5.1 等度量映射((Isometric Mapping, Isomap)5.2 局部线性嵌入(Locally Linear Em...原创 2018-11-22 23:39:59 · 579 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(34)-XGBoost原理详解
文章目录0. 写在前面1. XGBoost简介2. XGBoost原理介绍2.1 推导最优值函数(打分函数)2.2 损失增益2.3 XGBoost的完整流程3. 后记参考资料0. 写在前面 最近刚看完AdaBoost和GBDT部分,就想着一鼓作气将XGBoost的内容了解一下。在写这篇博文的时候,在网上也查找了大量的文章,但是看得还是云里雾里的。在看完了作者的Slide讲解后,思路就比较清晰...原创 2019-03-04 22:07:09 · 675 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(35)-最大熵模型
文章目录0. 前言1. 最大熵模型的定义2. 求解最优化问题3. 改进的迭代尺度法(Improved Iterative Scaling, IIS)4. 最大熵模型的总结5. 参考资料0. 前言 假设离散随机变量X的概率分布是P(x),其熵为:H(P)=−∑xP(x)logP(x)H(P) = -\sum_{x} P(x)\log P(x)H(P)=−x∑P(x)logP(x)熵...原创 2019-03-06 11:07:34 · 920 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(33)-AdaBoost、Boosting tree、GBDT
从零开始-Machine Learning学习笔记(33)-AdaBoost、Boosting tree、GBDT1. AdaBoost 在周志华先生的《机器学习》的集成学习(第8章)一章中,给出了Adaboost算法的伪代码,这里对继续对这个算法进行详细的解释。 AdaBoost的基本原理就是训练N个弱学习器,将这N个弱学习器进行加权结合:【上面的算法可以总结为】:初始化样...原创 2019-03-04 11:23:47 · 440 阅读 · 0 评论 -
计算FLOPs和Parameters数量
在卷积中要计算的parameter数量:输入: 【H_in, W_in, C_in】卷积核大小: 【K_h, K_w】输出: 【H_out, W_out, C_out】parameters = (K_h * K_w * C_in)*C_out + C_out(偏置)FLOPs是指: floatin...原创 2019-09-06 11:34:08 · 703 阅读 · 0 评论 -
关于XGBoost常问的一些问题的总结
l Xgboost和GBDT有什么异同? 传统GBDT以CART作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。 传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数。顺便提一下,xgboost工具支持自定义代价函数,只要函数可...原创 2019-09-06 11:31:41 · 1464 阅读 · 0 评论 -
ROC-AUC的编程实现
之前笔试的时候看到的问题,通常我们都知道AUC是ROC去下面覆盖的面积,计算的方式也是计算每个小梯形的面积然后叠加出来的。后来我查阅了一下,发现了两个更为简单的方法,所以在此记录一下:AUC的物理意义是任取一个正例和任取一个负例,正例排序在负例之前的概率。方法1:其中M是正样本的个数, N是负样本的个数。方法2:对于相同的prob,取一半。 具体操作...原创 2019-09-06 11:28:00 · 876 阅读 · 0 评论 -
tf.data.Dataset与tfrecord学习笔记
目录1.tf.data.Dataset2.tfrecord2.1 使用tfrecord的原因2.2 tfrecord的写入2.3 tfrecord的读取3.两种方式的区别参考资料:1.tf.data.Dataset# 从tensor中获取数据dataset = tf.data.Dataset.from_tensor_slices(img_paths)...原创 2019-09-06 11:19:51 · 3621 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(39)-Softmax回归
文章目录1. Logistic Regression(逻辑回归)2. Softmax回归1. Logistic Regression(逻辑回归) 在逻辑回归中,我们使用Sigmoid函数求取预测的概率:hθ(x(i))=11+e−θTx(i)h_{\theta}(x^{(i)}) = \frac{1}{1+e^{-{\theta^{T}x^{(i)}}}}hθ(x(i))=1+e−θ...原创 2019-05-08 16:59:08 · 376 阅读 · 0 评论 -
经典论文阅读(4)-InceptionV2
经典论文阅读(4)-InceptionV2及TensorFlow实现文章目录经典论文阅读(4)-InceptionV2及TensorFlow实现0. 前言1. 使用mini-batch进行批量标准化2. mini-BatchNormalization的好处3. 训练BN和使用BN进行推理(inference)4. 文章中的另一改进-将Inception模块中的5X5卷积用两层3X3卷积来代替5....原创 2019-05-03 17:59:47 · 2644 阅读 · 0 评论 -
经典论文阅读(3)-GoogLeNet-InceptionV1及其tensorflow实现
文章目录0. 前言1. Motivation2. Inception结构3. GoogLeNet-InceptionV14. InceptionV1的tensorflow实现参考资料0. 前言 GoogLeNet是Google开发的一个卷积神经网络模型,获得了ILSVRC2014的冠军。GoogLeNet增加了模型的宽度和深度,它的深度有22层,但是参数却之后500万个,AlexNet是它的...原创 2019-04-02 17:29:51 · 1375 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(37)-L1正则化优化方法PGD(近端梯度下降)
【本文转载自LASSO回归与L1正则化 西瓜书,感谢BIT_666同学】 1.结构风险与经验风险在支持向量机部分,我们接触到松弛变量,正则化因子以及最优化函数,在朴素贝叶斯分类,决策树我们也遇到类似的函数优化问题。其实这就是结构风险和经验风险两种模型选择策略,经验风险负责最小化误差,使得模型尽可能的拟合数据,而结构风险则负责规则化参数,使得参数的形式尽量简洁,从而...转载 2019-03-13 15:54:54 · 3278 阅读 · 1 评论 -
从零开始-Machine Learning学习笔记(38)-基于SVD的推荐系统
文章目录0. 前言1. 关于SVD与特征值分解2. 基于SVD的推荐系统2. 1 相似度2.2 使用SVD对未打分的物品进行打分2.3 基于SVD的推荐函数3. 基于SVD的图像压缩4. SVD的评价参考资料0. 前言 本文总结于Peter Harrington的《Machine Learning in Action》的第14章-利用SVD简化数据。1. 关于SVD与特征值分解 SVD...原创 2019-03-17 16:43:58 · 621 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(36)-EM算法总结
文章目录0. 前言1. EM算法流程2. EM算法的经典例子-三硬币模型3. 参考资料0. 前言 EM(Expectation Maximization)算法是1977由Dempster等人提出来的,是一种迭代算法。其每次迭代过程分为两步:E步:求期望(Expectation);M步:求极大值(Maximization)。 EM算法的应用场景: 当模型含有隐变量或者潜在变量(latent...原创 2019-03-07 11:29:16 · 558 阅读 · 3 评论 -
从零开始-Machine Learning学习笔记(25)-集成学习
文章目录1. Boosting - AdaBoosting2. Bagging与随机森林2.1 Bagging - 并行式集成学习2.2 随机森林3. 结合策略3.1 平均法3.2 投票法3.3 学习法 - Stacking4. 多样性增强 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统(multi-classifier syst...原创 2018-11-19 21:38:34 · 491 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(24)-贝叶斯分类器
首先还是先取出周志华先生在《机器学习》贝叶斯分类器一章中对于贝叶斯决策论的定义:贝叶斯决策论是概率框架下实施决策的基本方法。在分类任务中,在所有相关概率都已知的情况下,贝叶斯决策论考虑的是如何基于这些概率和误判损失来选择最优的标记。 基于最小化条件风险,我们可以得到最小化分类错误率的贝叶斯最优分类器:h∗(x)=argmaxc∈yP(c∣x)h^{*}(x) = \arg \...原创 2018-11-19 16:09:41 · 868 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(11)-SVM支持向量机(2)【核函数】
在之前的笔记中,我们假设样本是线性可分的,即存在一个划分超平面能将样本正确分类,然而在实际任务中,原始的样本空间也许不能线性可分。在上一个笔记中提到对于不能线性可分的样本,我们添加了一个松弛变量就完成了对线性不可分的支持向量机的求解。其原理是什么,我将在这个笔记中详细总结。1.核函数 对于线性不可分的样本,我们的处理思想是:把这些样本映射到更高的维度中,在高维度中找一个划分超平面...原创 2018-04-27 16:13:31 · 527 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(10)-SVM支持向量机(1)
1995年,苏联的弗拉基米尔·瓦普尼克(Vladimir N. Vapnik)在Machine Learning上发表了最初的SVM文章。传统的统计模式识别方法只有在样本趋向无穷大时,其性能才有理论的保证。统计学习理论(STL)研究有限样本情况下的机器学习问题。SVM的理论基础就是统计学习理论。 SVM以训练误差作为优化问题的约束条件,以置信范围值最小化作为优化目标,即SVM是一种基于结...原创 2018-04-25 21:10:58 · 800 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(6)-机器学习性能评估
通常我们建立起一个机器学习系统时,系统的表现不尽如人意。这时就需要想出一些办法来改进系统的性能。但是我们应该从哪些方面去着手改进性能呢?Stanford的Andrew Ng给我们提供了以下的几个思路:获取更多的训练实例(通常有效,但是代价较大)尝试减少特征的数量尝试获得更多的特征尝试增加多项式特征尝试减少归一化程度λλ\lambda尝试增加归一化程度λλ\lambda...原创 2018-04-24 17:27:06 · 754 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(5)-神经网络
从零开始-Machine Learning学习笔记(5)-神经网络0. 前言 神经网络目前使用得最为广泛的定义是“神经网络是具有适应性的简单单元组成的广泛并行互连网络,它的组织能够模拟生物神经系统对真实世界级物体所作出的交互反应”。 二十世纪四十年代M-P神经元模型、Hebb学习率,五十年代的感知机、Adaline等成果相继出现,迎来了神经网络发展的第一个高潮期。但是M...原创 2018-04-10 17:54:08 · 1628 阅读 · 2 评论 -
从零开始-Machine Learning学习笔记(4)-Logistic Regression(逻辑回归模型)
从零开始-Machine Learning学习笔记(4)-Logistic Regression(逻辑回归模型/对数几率回归模型)1.逻辑回归简介 在之前,我们使用线性回归(Linear Regression)来进行回归学习,使用的数据主要是有标签的数据,而且这个标签与我们的feature(特征)具有一定的线性关系。但是如果我们遇到一种二分类问题,标签一般为y=0/1,这个时候就...原创 2018-03-21 22:52:17 · 754 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(2)-Linear Regression(线性回归)
线性回归常被用于对一些连续型的数据做出预测,比如预测房屋的价格,鲍鱼的年龄,企业销售量的预测,还有更有意思的应用如预测名人的离婚率。 什么叫回归,为什么数据预测的过程称之为回归。其实回归一词跟数值预测没有任何的关系,它来源于达尔文的表兄弟Francis Galton,Galton在1877年完成了第一次回归预测,目的是根据上一代的豌豆种子(双亲)的尺寸,来预测下一代的豌豆种子(孩...原创 2018-03-05 16:50:51 · 930 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(1)-机器学习概述
机器学习,顾名思义就是机器像人一样进行“学习”,是近两年来最为人津津乐道的名词之一,这一名称的由来却鲜为人所提起。在最近阅读周志华先生的《机器学习》一书之中,在其第一章的小故事中得到这一名词的由来。 1952年,阿瑟·萨缪尔在IBM公司研制了一个具有学习能力的西洋跳棋程序,可以对大量的棋局中分析出当前局面的“好棋”与“坏棋”,不断提高弈棋水平。1956年,约翰·麦卡锡邀请萨缪尔在...原创 2018-03-05 16:50:04 · 754 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(0)-写在前面
从零开始-Machine Learning学习笔记(0)-写在前面 我记得我跟机器学习近距离接触的时候还是我在大二的时候参加全国大学数学建模大赛。那个时候学校会组织一些赛前培训,在培训中我第一次接触到线性回归算法,遗传算法,神经网络,元胞自动机,主成分分析法等。大部分是用Matlab来实现。那个时候对于这些算法的理解仅仅是在用的层面上,至于每个参数的作用是什么其实理解的并不太深厚。但是觉...原创 2018-03-05 16:48:25 · 515 阅读 · 3 评论 -
从零开始-Machine Learning学习笔记(3)-线性回归中的特征缩放与正规方程
1.特征缩放 我们在使用多元线性回归的时候,会有多个变量,每个变量的量纲不一样导致其数值上也会不一样。比如我们对与房屋价格的预测上,房间的大小的单位是平方米,其数值大小在几十到几百,而房间数则是一个10以内的数值。如果我们绘制代价函数J的等高线图就可以清楚的看到特征之间的数值差异过大会导致等高线图呈现一个扁长的状态,而这样会导致梯度下降算法要迭代很多次才能收敛。 因此,为了...原创 2018-03-07 16:41:26 · 965 阅读 · 0 评论 -
自学机器学习---一条你可能缺少的路线图
原作者是Jason Brownlee,于2014年6月发表在Start Machine Learning。 Dr. Jason Brownlee是一位优秀的丈夫,骄傲的父亲,学术研究员,作家,专业的机器学习开发者和从业者;他致力于帮助开发人员开始学习并掌握机器学习。 在这篇文章中,我为实用机器学习制定了一个具体的自学路线图,您可以用来定位自己并规划自己下一步的学习计划。 我思翻译 2017-11-01 21:42:42 · 666 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(12)-SMO算法解析
SMO-Sequential Minimal Optimization,序列最小优化,SMO的基本思路就是:先固定αiαi\alpha_i之外的所有参数,然后求αiαi\alpha_i的极值。但是问题中存在约束条件:∑mi=0αiyi=0∑i=0mαiyi=0\sum_{i=0}^{m}\alpha_iy_i=0。如果固定了αiαi\alpha_i之外的其他变量,则αiαi\alpha_i...原创 2018-05-18 21:43:30 · 813 阅读 · 1 评论 -
从零开始-Machine Learning学习笔记(14)-PCA主成分分析
从零开始-Machine Learning学习笔记(14)-基于PCA的人脸识别 PCA(Principal Component Analysis, PCA)主成分分析法是一种应用比较广的降维技术,也是在模式识别领域中的一种行之有效的特征提取方法,是一种最优正交变换。1.原理 降维的目的是减少预测变量的个数,并且这些预测变量都是相互独立的。 对于一个样本空间,...原创 2018-06-07 23:30:49 · 423 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(15)-数据处理分析工具Pandas学习笔记
1. 导入与导出数据import pandas as pdpd.read_csv(filename) #从CSV文件导入数据pd.read_table(filename) #从限定分隔符的文本文件导入数据pd.read_excel(filename) #从Excel文件导入数据pd....原创 2018-08-31 17:23:12 · 392 阅读 · 0 评论 -
从零开始-Machine Learning学习笔记(26)-聚类
文章目录0. 前言1. 聚类的性能度量和距离计算1.1 性能度量1.2 距离计算2. 原型聚类2.1 K-means2.2 学习向量化LVQ(Learning Vector Quantization, LVQ)2.3 高斯混合聚类3. 密度聚类 - DBSCAN算法4. 层次聚类 - AGNES5. 写在最后0. 前言 原本计计划用两个早晨看完这一章节的,没想到竟然很顺利的只用了一早上就看完...原创 2018-11-21 22:47:55 · 1627 阅读 · 0 评论