深度学习tensorflow入门-3

数据挖掘张帅 发表了文章 • 0 个评论 • 62 次浏览 • 2016-12-10 18:25 • 来自相关话题

Tensorflow现在已经可以用windows跑了,亲测可用,不再用装虚拟机了。
深度学习tensorflow入门-3 查看全部
Tensorflow现在已经可以用windows跑了,亲测可用,不再用装虚拟机了。
深度学习tensorflow入门-3

深度学习tensorflow入门-2

数据挖掘张帅 发表了文章 • 2 个评论 • 103 次浏览 • 2016-12-08 15:15 • 来自相关话题

这个使用的CNN,正确率达到了100%。
 tensorflow深度学习入门2 查看全部
这个使用的CNN,正确率达到了100%。
 tensorflow深度学习入门2

深度学习tensorflow入门

数据挖掘张帅 发表了文章 • 1 个评论 • 70 次浏览 • 2016-12-07 18:12 • 来自相关话题

自己的博客,来繁荣版面。
 
深度学习tensorflow入门
自己的博客,来繁荣版面。
 
深度学习tensorflow入门

#专题分享会第二期#SVM(支持向量机)算法简介

数据挖掘史昱天 发表了文章 • 0 个评论 • 97 次浏览 • 2016-12-07 15:56 • 来自相关话题

支持向量机SVM(Support Vector Machine)是一种原创性(非组合)的具有明显直观几何意义的分类算法,具有较高的准确率。源于Vapnik和Chervonenkis关于统计学习的早期工作(1971年),第一篇有关论文由Boser、Guyon、Vapnik发表在1992年。思想直观,但细节异常复杂,内容涉及凸分析算法、核函数、神经网络等高深的领域。通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
其思路是简单情况,线性可分,把问题转化为一个凸优化问题,可以用拉格朗日乘子法简化,然后用既有的算法解决。复杂情况,线性不可分,用映射函数将样本投射到高维空间,使其变成线性可分的情形。利用核函数来减少高维度计算量。



















利用拉格朗日乘子法解决约束问题的求解










将该式代回得到以下推导










求对偶变量alpha的值,一般使用SMO算法,此处只介绍公式,不再展开,如果感兴趣可以参考文末链接(支持向量机通俗导论(理解SVM的三层境界)





接下来谈谈线性不可分的情况,因为线性可分这种假设实在是太有局限性了:下图就是一个典型的线性不可分的分类图,我们没有办法用一条直线去将其分成两个区域,每个区域只包含一种颜色的点。 要想在这种情况下的分类器,有两种方式,一种是用曲线去将其完全分开,曲线就是一种非线性的情况,跟之后将谈到的核函数有一定的关系。 






简而言之:在线性不可分的情况下,支持向量机通过某种事先选择的非线性映射(核函数)将输入变量映射
到一个高维特征空间,在这个空间中构造最优分类超平面。我们使用支持向量机进行数据集分类工作的过程
首先是同预先选定的一些非线性映射将输入空间映射到高维特征空间










由于求解核函数的内容过多,且大多为公式和图片,如果有兴趣的同学可以直接到以下链接查看内容
http://blog.csdn.net/macyang/article/details/38782399/
支持向量机通俗导论(理解SVM的三层境界) 查看全部
支持向量机SVM(Support Vector Machine)是一种原创性(非组合)的具有明显直观几何意义的分类算法,具有较高的准确率。源于Vapnik和Chervonenkis关于统计学习的早期工作(1971年),第一篇有关论文由Boser、Guyon、Vapnik发表在1992年。思想直观,但细节异常复杂,内容涉及凸分析算法、核函数、神经网络等高深的领域。通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
其思路是简单情况,线性可分,把问题转化为一个凸优化问题,可以用拉格朗日乘子法简化,然后用既有的算法解决。复杂情况,线性不可分,用映射函数将样本投射到高维空间,使其变成线性可分的情形。利用核函数来减少高维度计算量。
QQ截图20161207151748.png


2.png


3.png


4.png

利用拉格朗日乘子法解决约束问题的求解

5.png


6.png

将该式代回得到以下推导

7.png


8.png

求对偶变量alpha的值,一般使用SMO算法,此处只介绍公式,不再展开,如果感兴趣可以参考文末链接(支持向量机通俗导论(理解SVM的三层境界)

9.png

接下来谈谈线性不可分的情况,因为线性可分这种假设实在是太有局限性了:下图就是一个典型的线性不可分的分类图,我们没有办法用一条直线去将其分成两个区域,每个区域只包含一种颜色的点。 要想在这种情况下的分类器,有两种方式,一种是用曲线去将其完全分开,曲线就是一种非线性的情况,跟之后将谈到的核函数有一定的关系。 

10.png


简而言之:在线性不可分的情况下,支持向量机通过某种事先选择的非线性映射(核函数)将输入变量映射
到一个高维特征空间,在这个空间中构造最优分类超平面。我们使用支持向量机进行数据集分类工作的过程
首先是同预先选定的一些非线性映射将输入空间映射到高维特征空间

11.png


12.png

由于求解核函数的内容过多,且大多为公式和图片,如果有兴趣的同学可以直接到以下链接查看内容
http://blog.csdn.net/macyang/article/details/38782399/
支持向量机通俗导论(理解SVM的三层境界)

共轭梯度法(Conjugate Gradient Method)

数据挖掘王开新 发表了文章 • 0 个评论 • 61 次浏览 • 2016-11-27 21:14 • 来自相关话题

例行转载
共轭梯度法(Conjugate Gradient Method)

#专题分享会第一期#资料汇总以及下期预告

兴趣小组周思佳 发表了文章 • 0 个评论 • 92 次浏览 • 2016-11-22 13:09 • 来自相关话题

数据挖掘兴趣小组本学期第一次分享会于11月18日18:30在院楼224举行。分享会共有六位同学展示了自己最近的实践经历和学习成果,讨论从18:30持续到22:00。
 
来看看大家都讨论了哪些问题吧:
 





首先,14级情报学硕士刘伙玉以自己作为算法工程师的实习经历为切入点,给大家分享了构建推荐系统的流程,从推荐系统的框架到线上线下评估的方法,介绍了需要掌握的相关工具,让大家对推荐系统算法有了一个整体的了解。
 
同样是实践类的介绍,16级硕士李柯则选择了自己大三时的国创项目“木材切面纹理图像特征提取与选择”和毕业论文“基于视觉模型的量化索引调制数字水印算法研究”,主要介绍了算法设计选择的过程和改进方法。
 





而在算法方面,16级硕士陈超群主要介绍了逻辑回归(LR)算法,围绕逻辑回归模型,同时介绍了相关的优化算法,包括梯度下降算法、牛顿法、拟牛顿法、共轭梯度法等。14级本科生李新春则介绍了期望极大算法(EM),给出了含有隐变量的概率模型参数估计方法。
 
最后,16级硕士郜梦蕊从特征工程入手,介绍了特征清洗、特征采样、特征选择、特征监控等方面的内容;而14级本科生王开新则重点介绍了贝叶斯与多项式拟合、L1L2正则项、LARs算法、GBDT算法等多个方面。
 





附上相关资料链接:
 
【逻辑回归模型介绍以及优化算法】
http://www.imtechcenter.com/?/article/50
【如何处理正负样本不均衡】
http://www.imtechcenter.com/?/article/48
【特征降维】
http://www.imtechcenter.com/?/article/47
【特征选择】
http://www.imtechcenter.com/?/article/46
【EM算法的应用与关键步骤分析】
http://www.imtechcenter.com/?/article/41
【贝叶斯与多项式拟合】
http://www.imtechcenter.com/?/article/38
【LARS与Lasso和Forward Stagewise】
http://www.imtechcenter.com/?/article/43
【梯度提升(Gradient Boosting)】
http://www.imtechcenter.com/?/article/44
 
下期专题分享会预告
将会重点探讨概率图模型(HMM,MEMM,CRF等)、word2vecor、SVM等算法。
 
下期专题分享会预告
将会重点探讨深度学习等。

  查看全部
数据挖掘兴趣小组本学期第一次分享会于11月18日18:30在院楼224举行。分享会共有六位同学展示了自己最近的实践经历和学习成果,讨论从18:30持续到22:00。
 
来看看大家都讨论了哪些问题吧:
 
1.jpg


首先,14级情报学硕士刘伙玉以自己作为算法工程师的实习经历为切入点,给大家分享了构建推荐系统的流程,从推荐系统的框架到线上线下评估的方法,介绍了需要掌握的相关工具,让大家对推荐系统算法有了一个整体的了解。
 
同样是实践类的介绍,16级硕士李柯则选择了自己大三时的国创项目“木材切面纹理图像特征提取与选择”和毕业论文“基于视觉模型的量化索引调制数字水印算法研究”,主要介绍了算法设计选择的过程和改进方法。
 
2.jpg


而在算法方面,16级硕士陈超群主要介绍了逻辑回归(LR)算法,围绕逻辑回归模型,同时介绍了相关的优化算法,包括梯度下降算法、牛顿法、拟牛顿法、共轭梯度法等。14级本科生李新春则介绍了期望极大算法(EM),给出了含有隐变量的概率模型参数估计方法。
 
最后,16级硕士郜梦蕊从特征工程入手,介绍了特征清洗、特征采样、特征选择、特征监控等方面的内容;而14级本科生王开新则重点介绍了贝叶斯与多项式拟合、L1L2正则项、LARs算法、GBDT算法等多个方面。
 
3.jpg


附上相关资料链接:
 
【逻辑回归模型介绍以及优化算法】
http://www.imtechcenter.com/?/article/50
【如何处理正负样本不均衡】
http://www.imtechcenter.com/?/article/48
【特征降维】
http://www.imtechcenter.com/?/article/47
【特征选择】
http://www.imtechcenter.com/?/article/46
【EM算法的应用与关键步骤分析】
http://www.imtechcenter.com/?/article/41
【贝叶斯与多项式拟合】
http://www.imtechcenter.com/?/article/38
【LARS与Lasso和Forward Stagewise】
http://www.imtechcenter.com/?/article/43
【梯度提升(Gradient Boosting)】
http://www.imtechcenter.com/?/article/44
 
下期专题分享会预告
将会重点探讨概率图模型(HMM,MEMM,CRF等)、word2vecor、SVM等算法。
 
下期专题分享会预告
将会重点探讨深度学习等。

 

[转载]networkx绘图无法显示中文的解決方法

编程与开发王开新 发表了文章 • 0 个评论 • 83 次浏览 • 2016-11-19 17:06 • 来自相关话题

亲测可用。如果是python3,改的时候注意不要用unicode,因为在python3里将unicode()换成了str()
 
下面附链接networkx 繪圖無法顯示中文的解決方法 查看全部
亲测可用。如果是python3,改的时候注意不要用unicode,因为在python3里将unicode()换成了str()
 
下面附链接networkx 繪圖無法顯示中文的解決方法

尺度-排序转换算法及其统一路径

数据挖掘戚尔鹏 发表了文章 • 2 个评论 • 182 次浏览 • 2016-11-15 14:56 • 来自相关话题

以下内容并非严格意义上的算法,但它确实传递了一种巧妙的转换思想。内容取自叶鹰教授和我合作的一片论文《漂移幂函数的数值拟合与理论分析》,已被《情报学报》录用,贴出来的目的有二:一是供数据挖掘小组交流使用,二是供研究生发文参考。出于版权考虑,现将主要思想说明如下:
在信息生产过程(information production processes, IPPs)中,源(source)可以产出项(item)。尺度-频数(size-frequency)函数f和排序-频数(rank-frequency)函数g两类模型可以定量描述这类过程。










以上便是尺度-排序的转换思想,接下来举例说明。为便于理解,我们将背景设为信息计量学,以论文为源,以引文为项,构建h指数及相关统计量的理论表达。
1、说明性例子之“漂移幂函数”




















 
2、说明性例子之“负指数函数”

























 
研究发现,以上经典模型用于一般理论参考无可厚非,但实际数据并非尽善尽美,我们也发现一些问题,并已作相关报道。若有人有兴趣,我会在合适的时间贴出来。
 
参考文献:
戚尔鹏,叶鹰. 漂移幂函数的数值拟合与理论分析[J]. 《情报学报》, in press.
Ye F Y. A theoretical approach to the unification of informetric models by wave-heat equations[J]. Journal of the American Society for Information Science and Technology, 2011, 62(6): 1208-1211.
Ye F Y. A progress on the shifted power function for modeling informetric laws[J]. Malaysian Journal of Library and Information Science, 2014, 19(1): 1-15.
Egghe  L., Rousseau R. Introduction to Informetrics [M]. Elsevier Science Publisher, 1990.
Egghe L, Rousseau R. Generalized Success-Breeds-Success principle leading to time-dependent informetric distributions[J]. Journal of the American Society for Information Science, 1995, 46(6): 426-445.
Egghe L. General evolutionary theory of information production processes and applications to the evolution of networks[J]. Journal of Informetrics, 2007, 1(2): 115-122.
Egghe L. Lotkaian informetrics and applications to social networks[J]. Bulletin of the Belgian Mathematical Society-Simon Stevin, 2009, 16(4): 689-703.
Rousseau R. A table for estimating the exponent in Lotka law[J]. Journal of Documentation, 1993, 49(4): 409-412.
Egghe L, Rousseau R. Theory and practice of the shifted Lotka function[J]. Scientometrics, 2012, 91(1): 295-301.
Egghe L, Rousseau R. The Hirsch index of a shifted Lotka function and its relation with the impact factor[J]. Journal of the American Society for Information Science and Technology, 2012, 63(5): 1048-1053. 查看全部
以下内容并非严格意义上的算法,但它确实传递了一种巧妙的转换思想。内容取自叶鹰教授和我合作的一片论文《漂移幂函数的数值拟合与理论分析》,已被《情报学报》录用,贴出来的目的有二:一是供数据挖掘小组交流使用,二是供研究生发文参考。出于版权考虑,现将主要思想说明如下:
在信息生产过程(information production processes, IPPs)中,源(source)可以产出项(item)。尺度-频数(size-frequency)函数f和排序-频数(rank-frequency)函数g两类模型可以定量描述这类过程。

1.png


2.png

以上便是尺度-排序的转换思想,接下来举例说明。为便于理解,我们将背景设为信息计量学,以论文为源,以引文为项,构建h指数及相关统计量的理论表达。
1、说明性例子之“漂移幂函数”

3.png


4.png


5.png


6.png

 
2、说明性例子之“负指数函数”

7.png


8.png


9.png


10.png


11.png

 
研究发现,以上经典模型用于一般理论参考无可厚非,但实际数据并非尽善尽美,我们也发现一些问题,并已作相关报道。若有人有兴趣,我会在合适的时间贴出来。
 
参考文献:
戚尔鹏,叶鹰. 漂移幂函数的数值拟合与理论分析[J]. 《情报学报》, in press.
Ye F Y. A theoretical approach to the unification of informetric models by wave-heat equations[J]. Journal of the American Society for Information Science and Technology, 2011, 62(6): 1208-1211.
Ye F Y. A progress on the shifted power function for modeling informetric laws[J]. Malaysian Journal of Library and Information Science, 2014, 19(1): 1-15.
Egghe  L., Rousseau R. Introduction to Informetrics [M]. Elsevier Science Publisher, 1990.
Egghe L, Rousseau R. Generalized Success-Breeds-Success principle leading to time-dependent informetric distributions[J]. Journal of the American Society for Information Science, 1995, 46(6): 426-445.
Egghe L. General evolutionary theory of information production processes and applications to the evolution of networks[J]. Journal of Informetrics, 2007, 1(2): 115-122.
Egghe L. Lotkaian informetrics and applications to social networks[J]. Bulletin of the Belgian Mathematical Society-Simon Stevin, 2009, 16(4): 689-703.
Rousseau R. A table for estimating the exponent in Lotka law[J]. Journal of Documentation, 1993, 49(4): 409-412.
Egghe L, Rousseau R. Theory and practice of the shifted Lotka function[J]. Scientometrics, 2012, 91(1): 295-301.
Egghe L, Rousseau R. The Hirsch index of a shifted Lotka function and its relation with the impact factor[J]. Journal of the American Society for Information Science and Technology, 2012, 63(5): 1048-1053.

#专题分享会第二期# 最大熵模型

数据挖掘戚尔鹏 发表了文章 • 0 个评论 • 151 次浏览 • 2016-11-15 14:24 • 来自相关话题

监督学习的模型可以是概率模型,也可以是非概率模型,分别用条件概率分布P(Y|X)和决策函数Y=f(X)表示,最大熵模型(Maximum Entropy Model)属于前者。
“熵”概念最初由德国物理学家鲁道夫·克劳修斯提出,表示一个系統在不受外部干扰时,其内部最稳定的状态。中国学者在翻译时,考虑到熵是能量(Q)跟温度(T)的商且跟火有关,便译作熵。
参照这个定义,Shannon于1948年把信息熵定义为离散随机事件的出现概率。如果一个随机变量X的可能取值为X={x1, x2,…, xk},概率分布为P(X = xi) = pi(i =1, 2, ... , n),则随机变量X的熵为





最大熵原理是概率模型学习中一个准则,思想是:在学习概率模型时,所有可能的模型中熵最大的模型是最好的模型;若概率模型需要满足一些约束,则在满足已知约束的条件集合中选择熵最大模型。换言之,对一个随机事件的概率分布进行预测时,除了要满足全部已知约束外,千万不要对未知情况做任何假设,概率分布最均匀,预测的风险最小,因此得到的概率分布的熵是最大。
举例:假设X有5个取值{A, B, C, D, E},现要估计各值概率,当然满足约束条件(概率之和为1)的概率分布有无穷多个,若无其他信息,则各值概率均为1/5。若存在约束条件P(A)=1/2,则其余4值概率均为1/8。
在此背景下,最大熵模型即要求p(Y|X)熵最大。实际上,p(Y|X)熵为条件熵,记作H(Y|X),它表示:在X发生的前提下,Y发生所“新”带来的熵定义为Y的条件熵,等于(X,Y)发生所包含的熵减去X单独发生包含的熵,即H(Y|X) = H(X,Y) – H(X),推导为:





用统计建模的形式来描述最大熵模型:给定训练数据


,现在要通过最大熵原则来建立一个概率判别模型,该模型的任务是对于给定的X=x以条件概率分布p(Y|X=x)输出Y。
首先引入特征函数f(x,y)描述x和y之间的某一事实,定义为:





特征函数本质为一种信号指示,二值取法又便于计数。
其次来看经验分布,即我们能从训练集中直接得到的概率分布,包括联合分布的经验分布


和边缘分布的经验分布


,有




上述经验概率怎么得到?动手数一数就可以了。
特征函数f(x,y)关于经验分布


的期望,用


表示为




同样地,特征函数f(x,y)关于模型p(Y|X)的期望,用


表示为




上式问题在于,如果我们已经知道了P(x,y)的表达形式,我们不就可以解出模型p(Y|X)了吗?还一本正经地运用最大熵模型干啥呢?实际上,我们从训练集并不能直接得出P(x,y),换言之,它是经验的。但我们的目标从始至终都没有改变,即训练得到p(Y|X),所以采取策略为:




于是有




条件熵H(Y|X)(记作H(P))亦可调整为




如果训练是有效的,即我们能用训练得到的结果去预测测试集数据,那么有


,于是




以上便是最大熵模型思想,其结构化表述是




参考文献
李航《统计学习方法》
http://www.tuicool.com/articles/6RzqeyF
http://www.cnblogs.com/ooon/p/5677098.html
http://blog.csdn.net/erli11/ar ... 18655
 
  查看全部
监督学习的模型可以是概率模型,也可以是非概率模型,分别用条件概率分布P(Y|X)和决策函数Y=f(X)表示,最大熵模型(Maximum Entropy Model)属于前者。
“熵”概念最初由德国物理学家鲁道夫·克劳修斯提出,表示一个系統在不受外部干扰时,其内部最稳定的状态。中国学者在翻译时,考虑到熵是能量(Q)跟温度(T)的商且跟火有关,便译作熵。
参照这个定义,Shannon于1948年把信息熵定义为离散随机事件的出现概率。如果一个随机变量X的可能取值为X={x1, x2,…, xk},概率分布为P(X = xi) = pi(i =1, 2, ... , n),则随机变量X的熵为

1.png

最大熵原理是概率模型学习中一个准则,思想是:在学习概率模型时,所有可能的模型中熵最大的模型是最好的模型;若概率模型需要满足一些约束,则在满足已知约束的条件集合中选择熵最大模型。换言之,对一个随机事件的概率分布进行预测时,除了要满足全部已知约束外,千万不要对未知情况做任何假设,概率分布最均匀,预测的风险最小,因此得到的概率分布的熵是最大。
举例:假设X有5个取值{A, B, C, D, E},现要估计各值概率,当然满足约束条件(概率之和为1)的概率分布有无穷多个,若无其他信息,则各值概率均为1/5。若存在约束条件P(A)=1/2,则其余4值概率均为1/8。
在此背景下,最大熵模型即要求p(Y|X)熵最大。实际上,p(Y|X)熵为条件熵,记作H(Y|X),它表示:在X发生的前提下,Y发生所“新”带来的熵定义为Y的条件熵,等于(X,Y)发生所包含的熵减去X单独发生包含的熵,即H(Y|X) = H(X,Y) – H(X),推导为:

2.png

用统计建模的形式来描述最大熵模型:给定训练数据
3.png
,现在要通过最大熵原则来建立一个概率判别模型,该模型的任务是对于给定的X=x以条件概率分布p(Y|X=x)输出Y。
首先引入特征函数f(x,y)描述x和y之间的某一事实,定义为:

4.png

特征函数本质为一种信号指示,二值取法又便于计数。
其次来看经验分布,即我们能从训练集中直接得到的概率分布,包括联合分布的经验分布
5.png
和边缘分布的经验分布
6.png
,有
7.png

上述经验概率怎么得到?动手数一数就可以了。
特征函数f(x,y)关于经验分布
8.png
的期望,用
9.png
表示为
10.png

同样地,特征函数f(x,y)关于模型p(Y|X)的期望,用
11.png
表示为
12.png

上式问题在于,如果我们已经知道了P(x,y)的表达形式,我们不就可以解出模型p(Y|X)了吗?还一本正经地运用最大熵模型干啥呢?实际上,我们从训练集并不能直接得出P(x,y),换言之,它是经验的。但我们的目标从始至终都没有改变,即训练得到p(Y|X),所以采取策略为:
13.png

于是有
14.png

条件熵H(Y|X)(记作H(P))亦可调整为
15.png

如果训练是有效的,即我们能用训练得到的结果去预测测试集数据,那么有
16.png
,于是
17.png

以上便是最大熵模型思想,其结构化表述是
18.png

参考文献
李航《统计学习方法》
http://www.tuicool.com/articles/6RzqeyF
http://www.cnblogs.com/ooon/p/5677098.html
http://blog.csdn.net/erli11/ar ... 18655
 
 

图像分割实现 SVM&Kmeans

兴趣小组李新春 发表了文章 • 1 个评论 • 180 次浏览 • 2016-11-14 22:48 • 来自相关话题

                                                               图像分割实现 SVM&Kmeans
 
    图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。简单来说就是给出一张图像,利用一定算法将图片分为几个特定的部分,最为常见的比如“抠图”,将一个物体(可以是一只猫、一棵树等)和背景分离,从而达到从原来图片中抠出该物体的效果。
   限于笔者刚接触图像处理领域不久以及自己的认知水平,下面就以最简单的“抠图”稍作介绍。显然我们可以利用功能强大的Photoshop来实现这一过程,我们可以利用魔棒、色彩选择、钢笔锚点等功能来简单地实现抠图过程,如果想更光滑地将图片抠出,可以考虑采用一些高级功能,比如蒙版、路径、通道等。由此也可见Photoshop的功能之强大。这些功能的原理以及如何用代码实现是一件非常有趣的事情,有兴趣的读者可以去了解相关资料。下面先简单介绍一下图像分割的常用算法。
    现在常用的图像分割算法主要有以下几种:基于阈值分割、基于边缘分割、基于区域分割、基于聚类分析分割、基于小波变换分割、基于数学形态分割、基于人工神经网络分割、基于遗传算法分割等。
    下面就笔者自己的理解对上面算法进行简单介绍。基于阈值的分割算法利用一个或多个阈值将图像灰度直方图分为几类,即完成对图像的分割;基于边缘的分割算法是检测灰度级别有突变的地方,这儿往往是图像中不同部分的交接之处,故在此分割即可将图像分成多个部分;基于区域的分割算法可以分为两种,从整体到部分逐渐分裂以及从部分到整体逐渐合并,从而达到分割图像的目的;基于聚类分析的算法是对图像中的所有像素点进行自动聚类;基于小波变换、数学形态、人工神经网络和遗传算法的分割算法都是利用了专门的数学方法和理论知识,这里不多介绍。本文中采取了SVM和K-means两大算法来实现简单的图像分割。两者都是机器学习领域“十大算法”中的成员。
    SVM算法: SVM算法是有监督学习中最为重要的算法之一,它基于训练集和测试集进行工作的,本次实验中的样本是像素点的(R,G,B)值。主要思路是先分别人工选取30个背景点和30个前景点作为训练集,30个背景点的标签都是0, 30个前景点的标签都是1。然后利用SVM对训练集进行训练,其中用到了K-交叉验证对参数(c, g)进行寻优。然后得到最优模型,继而对整张图像所有像素点的(R,G,B)值进行测试,即将图像像素点分为两类,从而完成了对图像的分割。代码见附件中的LibsvmPictureCut.m (程序所用包为台湾大学林智仁教授等开发的Libsvm包,可在参考文献2中的链接进行下载),详细过程截图请见图1至图3。
 
    图1:littleduck.jpg 选取训练集






 
    图2:littleduck.jpg 最后图像分割结果(左到右:原图、前景)

   





    图3:cat1.jpg 最终分割结果(左到右:原图、前景)






 
    K-means算法: K-means算法是无监督学习中最为重要的算法之一,本次实验中的样本也是像素点的(R,G,B)值。主要思路是将所有像素点的(R,G,B)值分为两类。代码见附件中的KmeansPictureCut.m ,详细过程截图请见图4至图5。
 
    图4:littleduck.jpg 分割结果(左到右:原图、前景、背景)






 
    图5: cat1.jpg 分割结果(左到右:原图、前景、背景)






 
    SVM和K-means算法对比分析:
    1.  SVM需要人工指定训练集,选取像素点时要注意选取有代表性的特征点;K-means是无监督学习,无需人工干预。
    2.  从littleduck.jpg来看,K-means工作效果和SVM差不多,但是K-means无需寻找最优参数,效率高,运行时间少,而SVM运行就比较慢;但是从cat1.jpg来看,显然SVM比K-means优秀,分析原因不难得知,cat1.jpg的猫身上有很多和背景颜色差不多的像素点,利用SVM可以人工干预将这些点标签为前景,但是K-means却没有人工干预,那么自然地将这些像素点分类为背景了。
    以上算法和附件里面程序仅适用于简单图片的分割,即类似于上面展示的图片,对于那些复杂的图片,还需更加强大的算法或更优的程序来实现。
    最后,本文未免有不足之处,欢迎大家对本文进行讨论,希望以后可以更多地接触机器学习和神经网络以及各种优化算法,同时也希望大家一块进步。源码、图片素材见附件。
 
参考文献:
[1] 王小川等.Matlab神经网络43个案例分析[M].北京: 北京航空航天大学出版社 ,2013:114-159
[2] Libsvm官网http://www.csie.ntu.edu.tw/~cjlin/libsvm/
  查看全部
                                                               图像分割实现 SVM&Kmeans
 
    图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。简单来说就是给出一张图像,利用一定算法将图片分为几个特定的部分,最为常见的比如“抠图”,将一个物体(可以是一只猫、一棵树等)和背景分离,从而达到从原来图片中抠出该物体的效果。
   限于笔者刚接触图像处理领域不久以及自己的认知水平,下面就以最简单的“抠图”稍作介绍。显然我们可以利用功能强大的Photoshop来实现这一过程,我们可以利用魔棒、色彩选择、钢笔锚点等功能来简单地实现抠图过程,如果想更光滑地将图片抠出,可以考虑采用一些高级功能,比如蒙版、路径、通道等。由此也可见Photoshop的功能之强大。这些功能的原理以及如何用代码实现是一件非常有趣的事情,有兴趣的读者可以去了解相关资料。下面先简单介绍一下图像分割的常用算法。
    现在常用的图像分割算法主要有以下几种:基于阈值分割、基于边缘分割、基于区域分割、基于聚类分析分割、基于小波变换分割、基于数学形态分割、基于人工神经网络分割、基于遗传算法分割等。
    下面就笔者自己的理解对上面算法进行简单介绍。基于阈值的分割算法利用一个或多个阈值将图像灰度直方图分为几类,即完成对图像的分割;基于边缘的分割算法是检测灰度级别有突变的地方,这儿往往是图像中不同部分的交接之处,故在此分割即可将图像分成多个部分;基于区域的分割算法可以分为两种,从整体到部分逐渐分裂以及从部分到整体逐渐合并,从而达到分割图像的目的;基于聚类分析的算法是对图像中的所有像素点进行自动聚类;基于小波变换、数学形态、人工神经网络和遗传算法的分割算法都是利用了专门的数学方法和理论知识,这里不多介绍。本文中采取了SVM和K-means两大算法来实现简单的图像分割。两者都是机器学习领域“十大算法”中的成员。
    SVM算法: SVM算法是有监督学习中最为重要的算法之一,它基于训练集和测试集进行工作的,本次实验中的样本是像素点的(R,G,B)值。主要思路是先分别人工选取30个背景点和30个前景点作为训练集,30个背景点的标签都是0, 30个前景点的标签都是1。然后利用SVM对训练集进行训练,其中用到了K-交叉验证对参数(c, g)进行寻优。然后得到最优模型,继而对整张图像所有像素点的(R,G,B)值进行测试,即将图像像素点分为两类,从而完成了对图像的分割。代码见附件中的LibsvmPictureCut.m (程序所用包为台湾大学林智仁教授等开发的Libsvm包,可在参考文献2中的链接进行下载),详细过程截图请见图1至图3。
 
    图1:littleduck.jpg 选取训练集

1.png


 
    图2:littleduck.jpg 最后图像分割结果(左到右:原图、前景)

   
2.png


    图3:cat1.jpg 最终分割结果(左到右:原图、前景)

3.png


 
    K-means算法: K-means算法是无监督学习中最为重要的算法之一,本次实验中的样本也是像素点的(R,G,B)值。主要思路是将所有像素点的(R,G,B)值分为两类。代码见附件中的KmeansPictureCut.m ,详细过程截图请见图4至图5。
 
    图4:littleduck.jpg 分割结果(左到右:原图、前景、背景)

4.png


 
    图5: cat1.jpg 分割结果(左到右:原图、前景、背景)

5.png


 
    SVM和K-means算法对比分析:
    1.  SVM需要人工指定训练集,选取像素点时要注意选取有代表性的特征点;K-means是无监督学习,无需人工干预。
    2.  从littleduck.jpg来看,K-means工作效果和SVM差不多,但是K-means无需寻找最优参数,效率高,运行时间少,而SVM运行就比较慢;但是从cat1.jpg来看,显然SVM比K-means优秀,分析原因不难得知,cat1.jpg的猫身上有很多和背景颜色差不多的像素点,利用SVM可以人工干预将这些点标签为前景,但是K-means却没有人工干预,那么自然地将这些像素点分类为背景了。
    以上算法和附件里面程序仅适用于简单图片的分割,即类似于上面展示的图片,对于那些复杂的图片,还需更加强大的算法或更优的程序来实现。
    最后,本文未免有不足之处,欢迎大家对本文进行讨论,希望以后可以更多地接触机器学习和神经网络以及各种优化算法,同时也希望大家一块进步。源码、图片素材见附件。
 
参考文献:
[1] 王小川等.Matlab神经网络43个案例分析[M].北京: 北京航空航天大学出版社 ,2013:114-159
[2] Libsvm官网http://www.csie.ntu.edu.tw/~cjlin/libsvm/