K-means算法的优化目标和初始化要点

原创 2018-07-08 23:23 阅读(208)次
K-means算法的优化目标 K-means算法的原来我在上一篇 K-means算法原理 提到了。但具体实现还有几个要点需要注意。 K-means算法的结果很依赖于一开始初始化类别点,不同初始化点会得到不同的聚类结果,但全局最优解往往只有一个,其他的结果只能是局部最优解。 如何分辨全局最优解还是局部最优解? 这就需要一个判定的方法。这和分类,回归问题一样(最小化代价函数),需要找到K-means算法的最优化目标。 运行K-means算法中有两组重要的变量将会随着算法运行而不断改变,第1个就是每个数据点在每轮循环的时候所属于的类别,也就是每个类别暂时包含的数据点集合。第2个即...

K-means算法原理

原创 2018-07-06 21:31 阅读(124)次
  想到聚类算法,最出名的应该就是K-means算法了。本文从数学的角度来介绍K-means算法的原理 不过我上几周跟一位程序员朋友聊天,提到聚类,他不经意的回了一句,就是分类是吧。这不禁让我想起我初学机器学习的时候也是没搞清楚分类和聚类的区别。这里我们先明确一下两者的不同。 分类是监督学习的一种,也就是训练数据含有label,且label的名称(或者叫类别)和总数量是固定的,算法通过训练数据后得到模型,对新的未知label数据(预测数据)进行label的预测。 聚类是非监督学习的一种,训练数据不含有label,算法直接作用于预测数据,将其分为指定数量的类别,这里的类别没有已知名称,...

概率和贝叶斯公式推导

原创 2018-06-14 17:18 阅读(154)次
概率和贝叶斯公式的推导 其中一部分来自知乎猴子的文章 https://www.zhihu.com/question/26895086/answer/224503078 https://www.zhihu.com/question/27462939 和  http://blog.chinaunix.net/uid-26548237-id-3853399.html   这个也是转载的,不过原地址文章图片有部分无法显示了,所以我还是注明是chinaunix这个地址吧。 我们经常会在生活中听到这句话:选择比努力更重要相信。你也无数次听过这句话,但是有没有想过:这句话背后的...

(转自CSDN)深度学习入门必须理解这25个概念

转载 2018-06-06 21:34 阅读(111)次
最近在一个公众号看到推送了这篇文章,写得还是通俗易懂的,如果有基础的小伙伴看起来应该很不错,我觉得用来复习巩固知识非常合适 我联系博主,还没回复,容我转载过来自己时常复习。如有不妥,请联系我删除。 原文地址:https://blog.csdn.net/pangjiuzala/article/details/72630166    作者 Star先生神经网络基础1)神经元(Neuron)——就像形成我们大脑基本元素的神经元一样,神经元形成神经网络的基本结构。想象一下,当我们得到新信息时我们该怎么做。当我们获取信息时,我们一般会处理它,然后生成一个输出。类似地,在神经网络的情况...

最优化方法入门(一)

原创 2018-05-30 00:36 阅读(131)次
一直很不明白为什么招机器学习岗位都要求研究生以上的学历。笔者面试过很多人,也遇到过一些名牌大学高材生和研究生,发现在软件开发方面其实这些人并未必比一些培训机构出来的小伙子更适合。因为他们中的本科生很可能也是在大学中虚度光阴(基本都是哈,因为重点大学牛逼的都去考研考博了),而研究生为了考研确实在数学上下了一些功夫,但或许因为为了考得上,还要把很多精力放在政治,英语等科目上,在软件开发方面说实话并没有什么实战经验,甚至存在浑水摸鱼的情况,要价还很高。不过直到我在学习机器学习的时候,发现数学的重要性后,认为研究生(我指确实认真读书的那些研究生)确实有一定优势,基本就是数学和英语方面。而最优化理论又是...

bias和variance 偏差和方差 的理解(转载知乎)

转载 2018-05-16 02:08 阅读(525)次
关于偏差和方差我看过很多的文章,大同小异,都是那4幅图(靶心),不过我在知乎上看到如下的解释到是挺形象的。我截取了一段,他其他部分分析的是具体机器学习算法如KNN,随机森林,初学者可以先忽略。作者:milter链接:https://www.zhihu.com/question/20448464/answer/339471179来源:知乎 1、引子假设我们有一个回归问题,我们搞到一批训练数据D,然后选择了一个模型M,并用数据D将M训练出来,记作Mt,这里我们故意把模型M与训练出的模型Mt区分开,是为了后面叙述时概念上的清晰。 现在,我们怎么评价这个模型的好坏呢?你可能会不屑地说,这么简单的问题还...

交叉熵(转载知乎)

转载 2018-05-14 17:07 阅读(185)次
我看了很多关于交叉熵和相对熵的帖子,大同小异,没有太多考虑入门水平的人的理解力。难得在知乎上看到这个回答,我觉得很棒,进行了转载。知乎关于交叉熵的回答有很多,我只转载的CyberRep答案。如果不能转载,还烦请联系我。 如果不知道什么是熵,要可以看看我这篇 信息量和信息熵作者:CyberRep链接:https://www.zhihu.com/question/41252833/answer/195901726来源:知乎讨论这个问题需要从香农的信息熵开始。小明在学校玩王者荣耀被发现了,爸爸被叫去开家长会,心里悲屈的很,就想法子惩罚小明。到家后,爸爸跟小明说:既然你犯错了,就要接受惩罚,...

信息量和信息熵

原创 2018-05-13 19:07 阅读(165)次
介绍信息量是为了介绍信息熵,而介绍信息熵是为了机器学习中常用到的一个概念,交叉熵。 先解释一下信息:信息是用来消除不确定性的消息。 信息量:顾名思义,表示信息多少,是一种量化方式,但信息是用概率来量化的。 一个消息中包含了几个事件,x表示其中一个事件,p(x)表示x这个事件发生的概率,这个概率一般是先验概率。 比如公司抽奖,将全体员工的工号写在乒乓球上,放入抽奖箱,老板抽取,公司员工共50人,那这时候抽中我的概率就是1/50。抽中任何人的概率都是1/50。 而信息量的公式       代入p=1/50 等于 5.6439 这时候有个同事偷放入了写有他...

tensorflow主要函数用法(持续更新)

原创 2018-05-13 02:20 阅读(111)次
tensorflow有很多函数便于神经网络的计算。本文将持续更新。 tf.clip_by_value tf.clip_by_value(    t,    clip_value_min,    clip_value_max,    name=None) 将tensor限制在最小值和最大值之间。修建了tensor 参数t ,主要用来避免数学上一些不应该出现的计算,比如分母是0,log0等这类计算出现 常见用法如下。v = tf.constant([[l.O, 2.0, 3.0], (4.0,5.0,6.0]]) ...

常见但不要滥用的优化机器学习结果的方式

原创 2018-05-10 11:50 阅读(114)次
机器学习的结果就是预测函数,或者叫做model(mahout里面是称之为model)。 当我们使用这个预测函数,不论是回归还是分类或者聚类,我们把新的数据传入到预测函数,多少还是需要人工判断一下预测结果的准确度的。当发现结果不理想的时候,一般可以从以下几个方面考虑。 首先,在极少的情况下,你可以把这个预测函数可视化,也就是画图展示出来。这有个苛刻的条件,你的特征项不能超过3个,否则3维以上的图形是很难画出来的。如果你有幸特征项是在3个以下,请尝试画出函数图,看看是否过拟合训练数据。 抛弃理想情况,更多的我们是要观察一下机器学习算法的训练数据是否合适。 首先看看训练样本数量是否足够,特别是多分...

监督学习的数据集的划分和模型的选择

原创 2018-05-09 17:41 阅读(141)次
对于监督学习中的训练样本数据,划分技巧是很重要的。 往往我们的划分是七三分,70%训练集,30%测试集。 但这并不是最好的。 因为不管是回归还是分类问题,在多次项 polynomial 的选择上有很多。在讨论过拟合问题中我们提到过,高次项过多是过拟合的一种表征,而都是1次项组成又容易发生欠拟合。 多次项如何选择呢。就需要数据集的划分出验证集来做验证。 数据集首先应该打乱顺序,因为一些数据可能存在递增递减,或者按时间段起伏的特点,如果在划分数据的时候是按顺序划分,很可能让每份数据差别很大。所以需要随机并按比例分。 其次数据集应该分为三分,60%训练集,20%验证集,20%测试集。 为什么会多出了...

tensorflow安装

原创 2018-04-22 01:34 阅读(311)次
TensorFlow 是目前最好的深度学习框架吧,是开源的人工智能框架。 谷歌开源的。好吧,这个名气够大了。 有两种安装方式:从源码安装和基于python包管理器的各种安装方式。 tensorflow主要依赖是两个包,Protocol Buffer 和  Bazel。  Protocol Buffer 是用来序列化和反序列化的,主要是数据传递用。他序列化后得到的是二进制,反序列化的时候需要用描述数据格式的schema,好处是数据序列化后非常小,而且反序列化很快速,比 xml和json要高效很多。 Bazel是一个构建工具,类似ant,maven。tens...

数学概率的那些“差”

原创 2018-04-21 11:47 阅读(109)次
平均数,一般用字母μ表示 算数平均数 ,mean,表达的都是同一种意思,一般是指 不过还有加权平均数,即每项都有不同权重值。即 标准差,一般用字母σ表示   方差,variance  为总体方差,  为变量,  为总体均值,  为总体例数。

矩阵和向量的转换

原创 2018-04-18 02:17 阅读(124)次
向量是维度N*1的矩阵,是一种特殊的矩阵 不过在机器学习计算中,经常需要把矩阵和向量互相转换。比如神经网络中的fminunc方法的使用就需要把矩阵作为向量传递(方法约定参数和返回值都是向量)。这就想我们需要符合方法参数的定义把单个对象放到List或者set进行传递一样。 假设有1个或者多个矩阵,要变成一个向量vector = [matrix1(:);matrix2(:)] 如上,将matrix1和matrix2中的元素遍历出来放在, 每个元素都作为矩阵中的一行b = [1:1:3;2:2:6;3:3:9]; a = [1:1:3;2:2:6;3:3:9]; c = [a(:);b(:)];...

神经网络的cost function

原创 2018-04-12 23:53 阅读(130)次
神经网络作为一个机器学习算法,跟逻辑回归,线性回归一样,也可以通过最小化代价函数cost function J(θ)来求预测函数h(θ)的θ。 逻辑回归的正则化cost function是 神经网络的cost function 是从上面的公式推导的 因为神经网络中输出层节点的激活函数都逻辑回归。但神经网络的输出层可能是K个节点,也就是输出是一个K维向量,在计算cost function的时候我们需要把这K维的值的cost都累加起来。 而正则项部分,因为神经网络中每个上层节点到下层节点都有权重(或者叫参数θ),所以需要都把他们加上,但不加上bias项的参数,这和逻辑回归是一样的,因为bias的...

神经网络实现多分类的思路

原创 2018-04-12 17:34 阅读(362)次
在逻辑回归算法的分类问题中,我们提到过    多分类问题的求解思路。 在神经网络中,思考的方向也是一样的。 即是给预测的类别(预测概率最高的类别)为1,其他分类为0来表示。 神经网络中的实现思路 是在输出层做出N个节点(N为类别总数),这样在输出不在是一个数,而是一个N维向量,这个向量在预测认为最有可能的分类对应的维度上表示为1,其他维度上表示为0. 如      被认为是第2类别。 但第几个类别不是我们空谈,需要训练样本支持,也是就是学习的训练样本的y值也应该是一个N维矩阵,并仅在认为的类别对应的维度上表示为1,其他为0。 如...

梯度下降法处理正则化后的逻辑回归,解决过拟合

原创 2018-04-08 01:00 阅读(134)次
逻辑回归的代价函数是 这个可以看  分类之逻辑回归的代价函数costfunction 过拟合问题和正则化可以看这里       欠拟合,过拟合问题     正则化-解决过拟合 正则化后就是加入了惩罚项:  带入梯度下降法     得到 这和线性回归部分看似相同,但记得h(θ)是sigmoid函数,而线性回归h(θ)是线性方程。 会发现,其实是在θj的部分,多乘上一个 ,而由于α , λ , m 皆为正数,所以实际上每进行一个梯度下降的循环,θj都缩小一些。而后面...

正规方程法处理正则化后的线性回归,解决过拟合

原创 2018-04-08 00:00 阅读(335)次
没有正则化的线性回归正规方程法可以看这边 : 线性回归之正规方程法求解 正规方程法是通过 这个推导出的,现在  带入求导可推出(推导过程略,都是数学的东西) andrew ng在他的视频中推导出了结果: 跟未正则化的正规方程法相比,增加了λ 和一个 (n+1)* (n+1)的矩阵的相乘,n是样本的特征项数。 这个矩阵和单元矩阵略有不同,差别是第1行第1列的位置为0而不是1。 本文完。 本站作品的版权皆为作品作者所有。本站文字和内容为本站编辑或翻译,部分内容属本站原创,所以转载前务必通知本站并以超链接形式注明内容来自本站,否则以免带来不必要的麻烦。本站内容欢迎分...

梯度下降处理正则化后的线性回归,解决过拟合

原创 2018-04-07 23:12 阅读(220)次
过拟合问题 和正则化 在   欠拟合,过拟合问题  和 正则化-解决过拟合  中解释过。 现在我们要把正则化应用到线性回归算法中来解决可能出现的过拟合问题。 就是把           带入到梯度下降   更正: 在这里的J(θ0,θ1)  应该是 J(θ) 中 得到 可以看出来,θ0的梯度下降是跟之前未加入正则化的时候一样的。这也符合了我们正则化-解决过拟合  提到的,惩罚项不包过θ0的说法。 j 输入1到n的部分,可以将θj提取出来得到...

正则化-解决过拟合

原创 2018-04-07 16:20 阅读(133)次
过拟合的问题我已经介绍过了: 过拟合 我们知道过拟合的表征就是预测函数有太多高阶项比如3次方,4次方,或者更高。那我们可以通过降低或者去除这些项来解决过拟合问题,正则化的本质是为了简化预测函数的模型,使函数曲线更平滑,而减少这些高次项带来的过拟合。 由于h(x)是一个以x为自变量的函数,我们无法控制输入的数据x,所以简化函数的手段就是去减少或者去除某些参数θk。 去除高次项需要一些正确人工判断,人工就存在主观,可能带来错误,把一些对正确预测结果有帮助的特征项(但可能帮助很小,但却被扩大而造成过拟合)去掉。此时减少这些被扩大的影响比去除掉此特征项更合适。 在做预测函数h(x)求参数θ解...

欠拟合,过拟合问题

原创 2018-04-03 15:56 阅读(127)次
所谓欠拟合就是预测函数h_θ(x)的cost function(loss function)过大,没有和训练样本较好的拟合在一起,本质上是机器学习还没有学习到训练数据的特征中隐含的关系。往往初期的预测函数都是欠拟合的。随着减少cost function的,h_θ(x)会逐渐拟合训练数据。通俗的说就是预测函数还很不准确(不可用)的阶段。经过梯度下降等算法计算后依然欠拟合的话,可能的原因是特征维度过少,导致拟合的函数无法满足训练集,误差较大(high bias)。解决方法: 1. 添加其他特征项,有时候我们模型出现欠拟合的时候是因为特征项不够导致的,可以添加其他特征项来很好地解决。例如,...

octave 求最值的优化方法fminunc

原创 2018-04-02 18:07 阅读(208)次
octave(matlab)中有一个fminunc方法,可以用优化算法进行求解,算法有BFGS,L-BFGS,共轭梯度法等。 fminunc有个限制,就是指能用来求参数大于等于2的(也就是二元或二元以上方程)。 如果要求一元方程的最值求解,要用fminbnd方法,本文不涉及。 fminunc方法接受2个或者3个参数: 1.  FCN     指向需要求最值的函数的指针 2.  X0        初始的参数值,可以假设如(0;0) 3.  OPTIONS  &nbs...

用优化算法解线性回归

原创 2018-04-02 17:51 阅读(149)次
之前介绍过用梯度下降法和正规方程法求解线性回归。 本文将介绍用优化算法求解线性回归。 优化算法有很多种,见 优化算法清单,时间有限,我还在学习和补充中。优化算法中的其中一种就是求最值问题。线性回归的求解思路就是把cost function求最小化。 因为线性回归只有一个特征项的时候,但对应的函数为  ,我们会对应一个2*1矩阵的参数对应,第一个参数θ_0恒等于1,也就是大于等于2维的参数矩阵。 此时需要使用fminunc方法, 方法介绍见   octave 求最值的优化方法fminunc 直接上代码 步骤1,定义需要优化的线性回归的代价函数 funct...

数学-极大似然估计

转载 2018-04-02 00:30 阅读(109)次
这是一个基于概率的算法。 转自百度百科的原理  极大似然估计 它是建立在极大似然原理的基础上的一个统计方法,极大似然原理的直观想法是,一个随机试验如有若干个可能的结果A,B,C,... ,若在一次试验中,结果A出现了,那么可以认为实验条件对A的出现有利,也即出现的概率P(A)较大。极大似然原理的直观想法我们用下面例子说明。设甲箱中有99个白球,1个黑球;乙箱中有1个白球.99个黑球。现随机取出一箱,再从抽取的一箱中随机取出一球,结果是黑球,这一黑球从乙箱抽取的概率比从甲箱抽取的概率大得多,这时我们自然更多地相信这个黑球是取自乙箱的。一般说来,事件A发生的概率与某一未知参数&...

数学-最小二乘法

转载 2018-03-23 16:54 阅读(111)次
我这里转载知乎上 司马懿 的回答,我个人认为通俗易懂,写得非常好。原文地址在 知乎-最大似然估计和最小二乘法怎么理解?的回答 设想一个例子,教育程度和工资之间的关系。我们观察到的数据无非就是一个教育程度,对应着一个工资。我们希望的自然是找到两者之间的规律:如果把教育程度的初中、高中、大学、研究生及博士定义为1234的话,我们希望找到类似于工资=1000 +2000x教育程度  的这种规律,其中1000和2000是我们需要从数据里面发现的,前者称之为底薪,后者称之为教育增量薪水。 如果我们就观察到两个数据,那解起来很简单,直接把两个数据带进去,二元一次方程组,就得到底薪和教育...

数学-arg

原创 2018-03-23 16:24 阅读(97)次
公式中常见到 arg min()  或者 arg max() 他们的含义是 argument of the maximum/minimum。 即 arg max f(x): 当f(x)取最大值时,x的取值集合 arg min f(x):当f(x)取最小值时,x的取值集合 如:    f(x)  = 1 - |x|   .         arg max f(x)  就是 {0} ,  因为当x = 0 的时候, 1-|x| = 1 是f(x)的极限。 如果...

数学-范数

转载 2018-03-22 17:43 阅读(131)次
范数分为   向量范数和矩阵范数。范数,是具有“长度”概念的函数。 参考:https://blog.csdn.net/zouxy09/article/details/24971995   https://blog.csdn.net/jack_20/article/details/72896459   https://www.zhihu.com/question/20473040          引用了其中很多学习到的内容 向量范数:  对N维度的空间中任意一个向量X,按照一定的法...

数学-线性,非线性

转载 2018-03-22 17:12 阅读(116)次
在机器学习中,经常讨论线性和非线性,这是一个入门级扫盲,我记录下来完全是自己查阅。 我查看了不同的一些网上说法,选择这个解释 转载自:  https://zhidao.baidu.com/question/94379061.html 线性linear,指量与量之间按比例、成直线的关系,在空间和时间上代表规则和光滑的运动; 非线性non-linear则指不按比例、不成直线的关系,代表不规则的运动和突变。 线性:指量与量之间按比例、成直线的关系,在数学上可以理解为一阶导数为常数的函数; 非线性:则指不按比例、不成直线的关系,一阶导数不为常数。 线性关系:两个变量之间存在一次方函...

数学概念- 矩阵特征值,特征向量

原创 2018-03-22 17:00 阅读(118)次
笔者深入地学习机器学习后,发现多年前的数学已经都还给了老师。还有一些是没有学习过的知识。 这里我打算我需要重新确认的数学知识记录下来。 但我能力有限,很多是转载,在这里先感谢那些在网上编写这些数学知识的达人。 矩阵特征值和特征向量我反正是还给老师了,重新学习后,感觉还是需要一些生动的比拟来解释。 这些是我结合知乎和CSDN上的内容的整合。 定义: 设A是n阶矩阵,如果数λ和n维非零向量x使关系式    成立,那么,这样的数λ称为矩阵A的特征值,非零向量v称为A的对应于特征值λ的特征向量。 首先得先弄清矩阵的概念:一个矩阵代表的是一个线性变换规则,而一个矩阵的乘法运行代表...

共轭梯度法

原创 2018-03-22 10:26 阅读(114)次
参考了百度文库的此文,加以个人理解:https://wenku.baidu.com/view/593769d8a76e58fafbb00393.html 无约束最优化问题,即为在不对所求问题定义域或值域做任何限制情况下,对目标函数求最小值的一类问题。 简单说就是 y=f(x)的函数,就是对x,y都没有限制,求f(x)最小值的问题。 无约束最优化问题的求解方法大多是采用逐次一维搜索的迭代算法。这类迭代算法可分为两类。一类需要用目标函数的导函数,称为解析法;另一类不涉及导数,只用到函数值,称为直接法。 看我的 梯度下降法  一文的很快会发现梯度下降就是第一类。 其中属于解析型的...