Saturday, July 22, 2017

Python: Intalling opencv

依照环境配置选择安装文件,这里环境是64 bit与Python 2.7.3,所以应选的安装文件名称是opencv_python-2.4.13.2-cp27-cp27m-win_amd64.whl。CMD的当前目录调整至安装文件所在文件夹下,键入如下命令:
1
pip install opencv_python-2.4.13.2-cp27-cp27m-win_amd64.whl
安装完成后,在Python Shell输入import cv2,无返回错误即表示安装成功。

Anaconda Spyder

似乎为Python IDLE (Python GUI)安装的opencv并不可以直接在Anaconda Spyder上启动。
如何为Anaconda Spyder安装额外的Package?Installing packages。这里需要运行Anaconda Prompt。
在Anaconda Prompt直接运行conda install opencv,返回如下,它提示python版本大于等于3.5(小于3.6):
可是本地的Spyder是2.7版,显然这些package都不可以安装。
转到Anaconda Cloud,搜索opencv,其中opencv(2.4.11)版本对应python2.7(Win64bit).
单击进入opencv(2.4.11)页面,在Anaconda Prompt键入如下命令:
如下,自动运行安装,可能提示需要升级部分依赖的package,Y就好。
安装结束后,在Spyder键入运行,输出2.4.11即是安装成功。

References

Python: Intalling scikit-image

依照环境配置选择安装文件,这里环境是64 bit与Python 2.7.3,所以应选的安装文件名称是scikit_image-0.13.0-cp27-cp27m-win_amd64.whl。CMD的当前目录调整至安装文件所在文件夹下,键入如下命令:
1
pip install scikit_image-0.13.0-cp27-cp27m-win_amd64.whl
安装完成的提示界面如下。
在Python Shell输入import skimage,无返回错误即表示安装成功。

References

Friday, July 7, 2017

Machine Learning

机器学习(Machine learning)是计算机科学的应用之一,按照Arthur Samuel(1959)的定义,计算机在无确定设定之下具备学习的能力。源自模式识别及AI计算学习理论的研究,机器学习深入研究和构建具有数据学习及预测性质的算法,这类算法可以克服有限的静态程序仅能依靠数据驱使的预测和决策,它通过采样输入建立一个模型。机器学习应用在一系列无法(十分困难或不可能)准确设计和编辑程序任务环节,典型案例如电子邮件过滤、网络入侵者识别、内部恶意的数据破坏,光学人物识别、学习分等和计算机视觉。
机器学习非常接近计算机统计,后者也是重点围绕着计算机应用制定预测。机器学习与数学最优化联系紧密,后者连接方法、理论和应用域至前者。有时,机器学习属于数据挖掘,后者子领域围绕着探索性数据分析并以非监督学习著称。机器学习也可以是非监督的,并且被用于学习和建立不同实体的底线行为资料,而后用于寻找有意义的异象。
在于数据分析领域,机器学习是一种用于设计复杂模型和算法的方法,用在预测;在商业领域,这以预测分析著称。这些分析模型允许研究人员、数据科学家、工程师和分析人员“制造可信的、可重复的决定和结果”,并通过数据中历史关系及趋势的学习揭示“隐藏的洞察力”。
2016年,机器学习是一个热词处于过高期望的巅峰,依据2016年加德纳技术成熟度曲线。因为发现模式是艰难的,经常没有足够的可获得的训练数据,而且也因为高预期而经常导致不成功。
Tom M. Mitchell的定义有比较广泛的引用:“一个计算机程序可以学习对应于任务T的经验E,表现为量度P,前提是表现为任务T,作为量度T,改进经验E”。该定义是对机器学习基本操作而非认知术语的定义,而后参考Alan Turing在他的论文中建议“计算的机械和智慧”,提问“机器可以思考吗?”已被提问“机器可以实现我们的能力吗(作为思考实体)?”在建议中他探讨了一个会思考机器和不同的潜在可能不同的特征。
机器学习任务可以区分为三个广义分类,取决于一个学习系统的学习信号或反馈。他们是监督学习:计算机呈现示例输入和要求的输出,他们来自一个“老师”,目标是学习一个通用规则使得输入映射输出。 非监督学习:没有标签给定的学习算法,需要自己学习在输入内容中搜寻结构。非监督学习本身也是目的(发现数据潜藏的模式),或者一种结束方法(特征学习)。 加强学习:一个计算机程序与动态环境发生交互,该程序附带一定的目的(例如驱使车辆或与他人游戏对战)。程序可以收到报酬的反馈,或者惩罚带有负面问题。
监督和非监督学习之间是半监督学习,此时教师给出不完整的训练信号:一个丢失很多目标的训练集。转换是这一原则的特例,此时问题实例的全部集合已知在于学习时间,不计目标丢失的部分。
在其他的机器学习问题分类之中,基于先前的经验学会学习了解自身的归纳偏向。发展学习(为机器人学习详尽说明)导致它自身的序列(也称为课程)。
当人考虑到一个机器学习系统预期输出时,机器学习任务的其他类型就出现了。
在分类中,输入材料分化为2或更多个类,学习者必须制造一个模型,它属于一个或多个(多标签分类)这些类别不可见输入材料。这就是一个典型的监督路径。垃圾邮件过滤就是分类的示例,它的输入时邮件信息,类别是“垃圾邮件”或“非垃圾邮件”。
在回归中,也是监督问题,输出时连续而非离散的数值。
在聚类中,一组输入可划分为多个组。不像分类,这些组在先前并不被了解,这就是一个典型的非监督任务。
密度估计发现一定空间的输入材料的分布情况。
维度减化将输入降低至低维空间。主题建模就是一个相关问题,此时程序将拥有一系列人类语言文件,它的任务是从中找出这些文件相似的主题。
作为科学促进力量,机器学习产生自对于人工智能的探寻。人工智能在早期阶段就已经作为学科,一些研究人员就已经对在数据中开展机器学习抱有很大兴趣。他们尝试着手解决不同符号方法,他们也称之为“神经网络”;大部分感知器和其他模型后来被重塑,通过通用的线性统计模型。还用到了概率推理,尤其是在自动医学诊断方面。
然而,逻辑及知识为基础的方法愈发重要,导致AI和机器学习之间的断裂。概率系统经受着理论和数据可及性和表现能力实践问题的困扰。至1980年,专家系统占据着AI的主要地位,统计已式微。基于符号和知识学习的处理仍伴随着AI,引导归纳逻辑程序,但更多的统计线研究已经远离AI主体、模式识别和信息获取。神经网络研究已经被AI和计算机科学几乎同时废弃。这一状况继续在AI和计算机科学领域之外,作为“连接机制”,与其他学科的研究人员包括Hopfield、Rumelhart和Hinton。他们的主要成就出现在1980年代中期,伴随着后向传播重塑。
机器学习作为一个单独的领域被重新组织,开始繁荣起始于1990年代。该领域将自身目标由实现人工智能转变至解决那些实践中可以解决的问题。它关注的焦点从源自AI的符号方法调整至借鉴统计和概率理论的方法和模型。它也受益于数字信息逐渐增多的可及性,越来越多依靠互联网发布。
机器学习和数据挖掘常常应用相同的方法和明显地重复,但是这些机器学习基于训练数据已知的属性,聚焦在预测,数据挖掘聚焦(早先)在数据中未知属性的发现。数据挖掘应用许多机器学习方法,但有不同的目标,另一方面,机器学习也使用数据挖掘方法,如“非监督学习”或者作为一个预处理步骤改进学习器精度。这两方面主要的混乱来自他们处理的基本假设(两者经常有各自的会议和期刊,ECML PKDD是一个例外);在机器学习方面,性能常常评估对应已知知识的能力,知识发现和数据挖掘关键任务是发现之前未发现的知识。评估已掌握的知识,一个非正式(非监督)方法将易于被其他监督方法超过,比如一个典型的知识发现和数据挖掘,监督方法由于没有训练数据而不能应用。
机器学习已与优化密切联系,许多学习问题被构建为示例的一个训练集合损失功能的最小化。失去功能意味着训练的模型预测和问题的实质之间不符合,模型被训练用于纠正示例的一个集合的标签的预安排的预测。两个领域的差异从一般化的目标产生;然而优化算法可以最小化损失的训练集,机器学习是最小化未见示例的损失。
机器学习和统计是比较接近的领域。根据Michael I. Jordan,机器学习的概念,从方法论原则到理论工具,已经有长期的历史前统计。他还建议术语数据科学作为一个占位符称呼全部领域。 Leo Breiman区分了两个统计模型范式:数据模型和算法模型。其中,算法模型意味着或多或少的机器学习算法如随机树。 一些统计工作者已经应用了来自机器学习的方法,产生一个混合领域,称为统计学习。
一个学习器的核心目的是归纳整理它自身的经验。在此背景下归一化是一个机器学习在已经拥有训练数据集后处理新的、未见的示例或任务的能力。训练示例来自一些通常未知的概率分布(考虑到发生空间的代表性),学习器将建立一个有关这种空间的通用模型,保证在新示例下可以有效率地生成精确的预测。
机器学习算法的计算分析和他们的性能是一个理论计算机科学的分支,以计算学习理论而为人知。因为训练集合是有限的,未来是不确定的,学习理论通常并不一定保证算法的性能。反之,性能表现的概率边界是相当普遍的。方差偏移分解是定量归一化误差的方法。
在归一化的背景之下按照最优的性能,假设的复杂性应与潜在数据的功能复杂性匹配。假设不如功能复杂,而后模型与数据不契合。模型的复杂性响应攀升,训练错误减少。但是如果假设太过复杂,模型倾向于过度拟合,归一化将会更加虚弱。
加上性能范围,计算学习理论研究时间复杂性和学习的可行性。在计算学习理论中,如果一个计算在多项式时间完成,它就应该可行。这两种时间复杂性的结果。积极结果显示一定类别的功能可以在多项式时间学习。消极结果显示特定类别不能在多项式时间学习。
决策树学习 决策树学习利用决策树作为一个预测模型,它勾勒出有关于一个事项目标数值的观测结论。
关联规则学习 关联规则学习是一个发现大型数据库中变量之间有趣关联的方法。
人工神经网络 人工神经网络算法,通称“神经网络”,是一个学习算法,启发来自生物神经网络结构和功能,处理信息使用一个能够计算的连接方式。现代神经网络是非线性统计数据模型工具。他们通常模拟输入和输出之间的复杂关系,为了找到数据中的模式,或捕捉到观测变量之间未知联合概率分布的统计结构。
深度学习 过去时间来,拉低硬件价格与GPU个人应用的发展对于深度学习概念(本身在人工神经网络包含多重隐含层)发展助力良多。该过程努力模拟人类大脑转化光和声为图像和听力。一些成功的深度学习应用是计算机视觉和讲话识别。
归纳逻辑程序设计 归纳逻辑程序设计是作为一个针对输入示例统一表示法的一个利用逻辑程序设计控制学习的方式、背景知识和假设。已知一个已知知识的编码和一组作为表现事实逻辑数据库的示例,一个归纳逻辑程序设计系统将衍生一个假设的逻辑程序设计,他们只有积极示例(不含消极示例)。归纳程序设计是有关任何表现假设的程序语言(不含逻辑程序设计),诸如函数程序。
支持向量机 支持向量机是一组用于分类和回归的有关监督学习的方法。已知一个训练示例集合,每一个都是从属于两类别之一。支持向量机训练算法构建一个模型预测一个新示例属于这类还是那类。
聚类 聚类分析将观测集合分配到子集(称“类”)之中,以便于依据相似的标准或准则相似的观测记录划分为同类之中,来自不同类别的观测记录是不近似的。不同的聚类技术对数据结构产生不同的假设,经常按照一些相似性度量被定义,内部密实度和类别之间的分离程度被评估(相似性相同类别)。其他方法基于评估密度和图形连接性。聚类非监督学习的一个方法,一个统计数据分析的普通技术。
贝叶斯网络 一个贝叶斯网络,简化网络或单向无循环图形模型是表现随机变量集合的概率图形模型,他们的条件独立通过单向无循环图形。例如,一个贝叶斯网络表现疾病和综合征之间的概率关系。已知综合征,网络用于计算不同疾病发生概率。有效算法表现在推理和学习方面。
加强学习 加强学习是有关一个代理应该在环境中采取行动以便于最大化长期奖励。加强学习算法试图找到指出世界状态的政策。加强学习与监督学习问题不同,在于正确的输入/输出对从来不会表现,子优化动作精确准确。
陈述学习 若干学习算法,大部分非监督学习算法,目标是通过训练发现输入的最佳表达。经典示例如主成分分析和聚类分析。陈述学习算法经常试图保持他们输入信息,但利用一种方法转换使他更有用,经常在开始分类或预测之前,允许来自未知数据的输入重建,然而并不是必要的信息 多样的学习算法试图在约束之下完成,约束是习得的陈述是低维的。稀疏编码算法试图在约束之下完成,该约束是习得的陈述是稀疏的(许多是0)。多线性子空间学习算法以直接学习低维陈述为目标,不曾重塑他们至(高维)矢量。深度学习算法发现陈述的多水平,或者特征的层次,更高的水平、更多抽象的特征。强调的是,智能机器是一个学习陈述,它解开观测数据潜在的变动因素。
相似性和量度学习 在本问题,学习机器是已知的示例对,他们被认为是相似和缺少相似对象的对。而后它需要学习一个相似性可以预测功能(或一个距离量度功能)。它有时用于推荐系统。
基因算法 基因算法是检索启发式,模仿自然选择过程,使用方法如突变和杂交产生新的基因类型,以此冀希望发现已知问题的好解决方案。在机器学习中,基因算法在1980和1990年代一些用处。反之亦然,机器学习技术已经用于改进基因和进化算法的性能。
基于规则的机器学习 基于规则的机器学习是任何机器学习方法的通用术语,包括识别、学习或进化“规则”以存储、操作或应用、知识。这是与其他的机器学习相反的,他们普遍仅识别单一的模型且能应用在任何方面以预测。基于规则的机器学习方式包含学习分类系统,关联规则学习和人工免疫系统。
学习分类系统 学习分类系统是一个基于规则机器学习算法的体系,它融合一个学习组件(监督学习、加强学习或非监督学习)的发现模块。他们试图识别内容独立规则集合,集体存储和分段应用知识以预测。
2006年,在线电影公司网飞已经开始第一轮“网飞大奖”竞赛,目的是找到一个更好预测用户偏好的程序设计,改进至少10%的效率已有的“电影配准”程序(电影推荐算法)。由AT&T实验室与Big Chaos、Pragmatic Theory组成的联合团队开发一个组合模型赢得了2009年100万美元大奖。待大奖颁出之后,网飞意识到观看者分类并不是观看模式(一切给予推荐)最好的指标,他们相应地修改了推荐引擎。
2012年,太阳微系统公司联合创始人Vinod Khosla预测未来20年80%的医务岗位将被自动机器学习医疗诊断软件取代。
2014年,据报道,机器学习算法已经应用在艺术历史研究艺术绘画,其中已经揭示早先未被发现的艺术家之间的相互影响。
分类机器学习模型可以通过精度估计技术验证,如Holdout方法,它拆分数据为训练集(三分之二)和测试集(三分之一),评估训练模型在测试集的性能。比较而言,N层交叉验证方法随机拆分数据为k个子集,k-1个示例用于训练模型,第k示例用于检验训练模型的预测能力。加上Holdout和交叉验证方法,bootstrap自数据集采样N个示例,,用于评估模型精度。
除总体精度外,调查者频繁地报告敏感性(真阳率)和特殊性(真阴率)。相似地,调查者有时报告了假阳率或假阴率。然而,这些比率就是无效揭示分子和分母的比例。总和操作特征是一个有效展示模型诊断能力的方法。总和操作特征显示先前涉及比率的分子和分母,因而总和操作比率提出比普通利用地接收操作特征更多的信息
机器学习产生一些道德问题。包含偏差的数据集训练的系统可能在应用中表现这些偏差,因此数字化文化偏见。负责任的数据收集是机器学习的关键部分。
因为语言包含偏差,语料库训练的机器将必然也学习偏差。

References