
学习笔记
文章平均质量分 91
htshinichi
社畜
展开
-
【笔记】机器学习入门(二)
第一周有三大节,第一节是introduction,简单介绍了机器学习的分类,监督学习和非监督学习各自的特点和区别,残念的是做了三次课后作业,都没能全部做对,多选题对于英语差的我来说真的是太不友好了。第二节主要讲述了单变量的线性回归问题。 【模型表述】 依旧是通过预估房价的例子来构建了模型,对于数据集的描述,使用了m来表示数据集中训练的数据样本数量,使用x表示输入变量(特征),使用y表示输出变量(原创 2017-12-04 23:34:06 · 251 阅读 · 0 评论 -
【机器学习】K近邻法
这一篇就来复习一下“懒惰学习”的著名代表K近邻法(K-nearest neighbor,K-NN)。 我个人认为这个学习方法的思路很容易理解,尤其是在二维空间内,将《统计学习方法》上的例题看懂就很清楚了。 题外话:在我刚学机器学习的时候经常把KNN误记成是某个神经网络,毕竟和CNN,DNN,RNN一样都有NN嘛2333 k近邻法 输入 实例的特征向量(对应于特征...原创 2018-03-28 19:35:03 · 296 阅读 · 0 评论 -
【机器学习】降维方法(一)----主成分分析(PCA)
发现其实还有很多知识点还未整理和掌握,包括降维、模型评估、特征选择、稀疏学习、聚类算法等。在实践中穿插着整理和学习吧。先从降维方法开始。线性降维欲获得低维子空间,最简单的方法就是对原始高维空间进行线性变换。 给定样本X∈Rn×mX∈Rn×mX\in\Bbb R^{n\times m},即有mmm个数据样本,每个样本有nnn个特征(nnn维),记为xi=(x(1)i,x(2)i,......原创 2018-04-19 16:09:44 · 2564 阅读 · 0 评论 -
【机器学习】降维方法(二)----线性判别分析(LDA)
判别分析首先了解了一下判别分析。 判别分析(Discriminant Analysis)是多元统计中用于判别样本所属类型的一种方法。通过训练已知分类类别的样本集来建立判别准则,然后用于判别新的预测样本的类别。常用的判别分析方法有:1.最大似然法:其基本思想为,通过训练样本集求出各种组合情况下该样本被分为任何一类的概率,确定参数。对于新样本的类别判别,只需要计算它被分到每一类中去的...原创 2018-04-24 15:41:42 · 2277 阅读 · 0 评论 -
【机器学习】隐马尔可夫(一)----模型定义
咸鱼了一个多月,黑色五月过得异常难受,找实习好烦,心态一直调整不好。然后。。突然就想起了隐马尔可夫,我每天的心理状态是别人无法观测到的,每一天的状态组在一起就是一个状态序列,而我的行为活动是其他人可见的,每一天的行为组合在一起就是观测序列,当知道我月初的各种状态的概率分布,也知道了我这个人每种状态转移的概率分布和在某种状态下做出某种行为活动的概率分布时,是不是就能通过我这一个月每天的行为活动组成的序列来判断我每天的状态呢。emmm,隐马尔可夫带你成为一个能看懂人心的“神棍”。原创 2018-06-05 22:16:57 · 373 阅读 · 0 评论 -
【机器学习】隐马尔可夫(二)----概率计算问题
前一篇说到隐马尔可夫有三个基本问题,其中概率计算问题是首当其冲需解决的问题。 概率计算问题就是在给定模型λ=(A,B,π)λ=(A,B,π)λ=(A,B,π)和观测序列O=(o1,o2,...,oT)O=(o1,o2,...,oT)O=(o_1,o_2,...,o_T),计算观测序列OOO出现的概率P(O|λ)P(O|λ)P(O|λ)乘法公式的推广在做隐马尔可夫公式推导前,我们需要复...原创 2018-06-06 14:40:26 · 1403 阅读 · 0 评论 -
【ONNX】ONNX结构分析
ONNX结构分析onnx将每一个网络的每一层或者说是每一个算子当作节点Node,再由这些Node去构建一个Graph,相当于是一个网络。最后将Graph和这个onnx模型的其他信息结合在一起,生成一个model,也就是最终的.onnx的模型。onnx.helper----node、graph、model在构建onnx模型这个过程中,这个文件至关重要。其中make_node、make_grap...原创 2018-11-23 17:34:44 · 24303 阅读 · 11 评论 -
【ONNX】拆分单个节点ONNX
拆分ONNX了解了onnx的结构后,我们可以根据它的结构将其拆分成多个单节点的onnx模型,以便于对整体模型的单个节点进行测试和分析。代码如下:import onnxfrom onnx import helperimport sys,getopt#加载模型def loadOnnxModel(path): model = onnx.load(path) return ...原创 2019-04-11 09:54:48 · 7995 阅读 · 15 评论 -
【caffe】利用protobuf读取prototxt文件
在网上看到了不少使用caffe python接口来编写生成prototxt文件的帖子,也找到了用protobuf的python接口读取caffemodel的方法,不过一直没看到用protobuf读prototxt的方法(我想要用caffe.proto解析,而不是用字符串直接读入)。由于我对protobuf不是很熟悉,想了半天,突然想起caffe提供了用prototxt绘制网络结构图的draw_ne...原创 2018-12-04 10:01:49 · 4037 阅读 · 1 评论 -
【caffe】根据prototxt修改caffemodel
需求:想要在已训练或预训练的caffe模型中将网络结构prototxt删掉几层,并且将这几层的参数从caffemodel中也删除(这样可以减小caffemodel的大小)。import caffeimport caffe_pb2BEFORE_MODIFY_DEPLOY_NET = "yourpath/before_modify_deploy.prototxt"AFTER_MODIFY_DE...原创 2018-12-18 10:46:11 · 3347 阅读 · 0 评论 -
【ONNX】各深度学习框架的模型转ONNX
文章目录pytorchpytorch安装pytorch转onnx关于pytorch模型的题外话cntkcntk安装cntk转onnxmxnetmxnet安装mxnet转onnxcaffe2caffe2安装caffe2转onnxtensorflowtensorflow安装onnx-tensorflow安装tensorflow转onnxcaffecaffe->caffe2->onnx或ca...原创 2019-04-11 09:17:22 · 18675 阅读 · 5 评论 -
【数据】相似性和相异性的度量
我们在考虑数据的时候,常常会讨论数据间的相似性和相异性。我们使用术语邻近度来表示相似性和相异性。【相异度】我们定义两个对象之间的相异度是这两个对象差异程度的数值度量,我们通常所说的相异度其实就是距离。距离越小,相异度越低,则对象越相似。【度量】距离具有一些众所周知的性质(假设D(x,y)D(x,y)D(x,y)是点xxx和yyy的距离) 1.非负性 对于所有xxx和yy...原创 2018-03-28 19:09:14 · 2718 阅读 · 0 评论 -
【机器学习实战】逻辑回归----sklearn库中的LogisticRegression类
LogisticRegression类逻辑回归的基本思想在前面已经写过,就不再赘述。主要是为了了解并使用scikit-learn中逻辑回归类库,在实践前先整理一下里面的参数、属性和方法。 我们使用##加载线性模型from sklearn import linear_modelmodel=linear_model.LogisticRegression()来加载逻辑回归模型。...原创 2018-04-16 23:37:02 · 10153 阅读 · 0 评论 -
【机器学习】集成学习(四)----随机森林
从前面的提升树,到GBDTGBDTGBDT,再到RFRFRF,我们可以发现在集成学习中,基分类器选择决策树往往能有很不错的效果,这是因为它们通常具有较低的偏差和较高的方差(分类误差小,但容易过拟合),这样的特性使其在平均过程中更有利。这一篇我们就来了解一下随机森林这个算法的方法。 随机森林(RandomForestRandomForestRandom Forest),是在以决策树为基分类器构建B...原创 2018-04-10 20:46:12 · 1333 阅读 · 0 评论 -
【笔记】机器学习入门(一)
准备这两个月跟随Andrew Ng大神结合西瓜书入门机器学习,在此记录一下学习情况,也顺便督促自己能够坚持下去。。【什么是机器学习?】 Arthur Samuel(1959).Machine Learning:Field of study that gives computers the ability to learn without being explicitly programmin原创 2017-12-04 10:29:15 · 301 阅读 · 0 评论 -
【机器学习】贝叶斯分类器
一看到贝叶斯,就想起了概率论与数理统计,emmm,很不喜欢概率论,然而又不得不学(╥╯^╰╥)【贝叶斯公式】不管怎么样,复习贝叶斯公式是关键。 通常把某事件YYY的发生概率叫做实验前概率,又叫先验概率,记作P(Y)P(Y)P(Y),若事件XXX和YYY有某种关系,即YYY和XXX不是互相独立的,那么XXX发生后,YYY发生的概率被叫做条件概率或者实验后概率,又叫后验概率,记作P(Y|...原创 2018-03-29 19:17:13 · 798 阅读 · 2 评论 -
【机器学习】支持向量机(一)----实质与间隔
机器学习的几大算法也算是过完一遍了,准备把学习笔记写到博客上,一来复习,二来避免笔记本丢失,三来可以随时再看看,hh,废话不多说,先从我花时间最长的svm开始【SVM的实质】SVM的实质是最大间隔分类器,顾名思义,它在做分类任务时(二分类),会通过找到训练样本到决策边界的最大间隔来最后确定决策边界。 SVM分为三类:1.线性可分支持向量机又称硬间隔支持向量机,其特点是训练数据...原创 2018-03-25 18:12:32 · 899 阅读 · 0 评论 -
【数学基础】常用概率论与数理统计基础
概率论基础果然不学不行啊,本以为考研躲过了,结果出来混总是要还的(╯︵╰),那就参考着《深度学习》这本书上内容学习学习^_^【随机变量】随机变量是指定义在样本空间上的实值函数,它的取值可以是离散的或者是连续的。 随机变量取值 特点 类别 离散 在一定空间内变量的取值为有限个或者可数无限多个 伯努利随机变量、二项随机变量、几何随机变量和泊松随机变量...原创 2018-03-31 11:07:54 · 714 阅读 · 0 评论 -
【机器学习】支持向量机(二)----间隔最大化与原始问题
上一篇文章描述了支持向量机的基本思想和间隔的定义,这一篇我们就可以开始好好讨论一下硬间隔最大化,软间隔最大化到底是什么gui【硬间隔最大化】先不看软硬(笑),间隔最大化,顾名思义就是令我的训练样本在分离超平面上的几何间隔最大就是咯,那么如何用数学的语言来描述呢?(题外话:往往我们要说上好几句才能解释清楚的原理或是算法,用上数学语言,就变得言简意赅了,这就是数学的魅力,虽然我的数学还处于...原创 2018-03-25 20:10:50 · 2557 阅读 · 10 评论 -
【机器学习】支持向量机(三)----拉格朗日对偶性与对偶问题
上一篇,讲的是硬间隔最大化和软间隔最大化的原始学习问题,回顾一下。 1.硬间隔最大化(线性可分支持向量机)学习算法 原始问题: minωT,b12||ω||2minωT,b12||ω||2\min\limits_{ω^T,b}\frac{1}{2}||ω||^2 s.t. yi(ωTxi+b)−1≥0yi(ωTxi+b)−1≥0y_i(ω^Tx_i+b)-1\ge02.软间隔最...原创 2018-03-26 00:10:26 · 2915 阅读 · 4 评论 -
【机器学习】决策树(一)----学习步骤和常用算法ID3以及C4.5
决策树分开两部分,是因为CART算法还是有些麻烦的,对于回归树我还是存在一些问题,希望后面整理的时候能够理清楚。【学习思想】决策树的学习思想还是很通俗易懂的。一般我们去买东西,我们会对这个东西的一些特征做一个衡量来决定是否购买,比如我们可能会看这个东西的大小是否合适,如果合适,我们可能会看这个东西的材质是否满意,满意的话我们会继续在意它的价格是否合理。这样一步一步下来,我们就能构造出一...原创 2018-03-31 17:15:47 · 648 阅读 · 0 评论 -
【机器学习】决策树(二)----CART算法
才写完上一篇,就和朋友讨论到了集成学习的厉害,随即就扯到了CART,本来一直不明白CART回归树明明输出的一块一块的区域,为什么还叫回归。。被朋友一图点醒,果然还是要边学理论边实践,才会有更好的理解。CART算法同样由特征选择、树的生成以及树的剪枝组成。 总的来说就两步:一、基于训练集生成决策树,生成的决策树要尽量大;二、用验证集对已生成的树进行剪枝并选择最优子树,这时用损失函数最小作为剪枝...原创 2018-04-02 00:41:38 · 1038 阅读 · 1 评论 -
【机器学习】支持向量机(四)----核技巧的应用与核函数
说完训练数据线性可分(近似可分),我们就该考虑考虑训练数据非线性可分的情况了,非线性问题往往并不好求解,所以我们希望能用解线性分类问题的方法来解决这个问题。因此我们需要将非线性问题转化为线性问题,通过解转化后的线性问题的方法求解原来的非线性问题。 比如上面左边的图中,训练数据无法用直线(线性模型)将正负实例点正确分开,但用了一条椭圆曲线(非线性模型)可以将它们正确分开。我们将这左图中坐标...原创 2018-03-26 23:41:52 · 2689 阅读 · 0 评论 -
【机器学习】集成学习(二)----AdaBoost算法
AdaBoost是Boosting这类算法中的著名代表,它有多种推导方式,比较容易理解的就是基学习器的线性组合来最小化指数损失函数。【AdaBoost算法过程】输入:训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)}T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\},其中xi...原创 2018-04-09 23:04:46 · 535 阅读 · 1 评论 -
【机器学习】集成学习(三)----前向分步算法、提升树与GBDT
对于前一篇的AdaBoost算法我们其实可以这样理解,模型是加法模型、损失函数为指数函数、学习算法为前向分步算法时的二类分类学习方法。其实加法模型就是基分类器的线性组合啦,那么前向分步算法是什么呢?【加法模型】我们将f(x)=∑m=1Mβmb(x;γm)f(x)=∑m=1Mβmb(x;γm)f(x)=\sum\limits_{m=1}^Mβ_mb(x;γ_m)作为加法模型,其中b(x;...原创 2018-04-10 10:35:02 · 2166 阅读 · 0 评论 -
【机器学习】集成学习(一)----基本思想和方法
集成学习可谓是机器学习中的大杀器,诸如GBDT(梯度提升树),RF(随机森林)这些算法都是用到了集成学习的思想。这一篇主要就是复习一下Boosting,Bagging和Stacking这三种方法和常用的结合策略。集成学习(Ensemble Learning)也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based lear...原创 2018-04-03 01:40:23 · 4904 阅读 · 0 评论 -
【机器学习】逻辑回归
svm总算告一段落,真正复习起来,发现还有好多东西没有深入的去推导和学习,学习之路漫漫且修远。 说起逻辑回归(《统计学习方法》上叫它逻辑斯谛回归,西瓜书上叫它对数几率回归),它经常和线性回归、SVM放在一起说,NG老师就是用线性回归引出逻辑回归,又用逻辑回归引出SVM的概念。其实逻辑回归的本质是线性模型(在西瓜书第三章中介绍了三种线性模型:线性回归,对数几率回归,线性判别分析),因此我们先通过线...原创 2018-03-28 00:14:34 · 417 阅读 · 0 评论