机器学习之人工神经网络算法
机器学习中有一个重要的算法,那就是人工神经网络算法,听到这个名称相信大家能够想到人体中的神经。其实这种算法和人工神经有一点点相似。当然,这种算法能够解决很多的问题,因此在机器学习中有着很高的地位。下面我们就给大家介绍一下关于人工神经网络算法的知识。
1.神经网络的来源
我们听到神经网络的时候也时候近一段时间,其实神经网络出现有了一段时间了。神经网络的诞生起源于对大脑工作机理的研究。早期生物界学者们使用神经网络来模拟大脑。机器学习的学者们使用神经网络进行机器学习的实验,发现在视觉与语音的识别上效果都相当好。在BP算法诞生以后,神经网络的发展进入了一个热潮。
2.神经网络的原理
那么神经网络的学习机理是什么?简单来说,就是分解与整合。一个复杂的图像变成了大量的细节进入神经元,神经元处理以后再进行整合,最后得出了看到的是正确的结论。这就是大脑视觉识别的机理,也是神经网络工作的机理。所以可以看出神经网络有很明显的优点。
3.神经网络的逻辑架构
让我们看一个简单的神经网络的逻辑架构。在这个网络中,分成输入层,隐藏层,和输出层。输入层负责接收信号,隐藏层负责对数据的分解与处理,最后的结果被整合到输出层。每层中的一个圆代表一个处理单元,可以认为是模拟了一个神经元,若干个处理单元组成了一个层,若干个层再组成了一个网络,也就是”神经网络”。在神经网络中,每个处理单元事实上就是一个逻辑回归模型,逻辑回归模型接收上层的输入,把模型的预测结果作为输出传输到下一个层次。通过这样的过程,神经网络可以完成非常复杂的非线性分类。
4.神经网络的应用。
图像识别领域是神经网络中的一个著名应用,这个程序是一个基于多个隐层构建的神经网络。通过这个程序可以识别多种手写数字,并且达到很高的识别精度与拥有较好的鲁棒性。可以看出,随着层次的不断深入,越深的层次处理的细节越低。但是进入90年代,神经网络的发展进入了一个瓶颈期。其主要原因是尽管有BP算法的加速,神经网络的训练过程仍然很困难。因此90年代后期支持向量机算法取代了神经网络的地位。
在这篇文章中我们大家介绍了关于神经网络的相关知识,具体的内容就是神经网络的起源、神经网络的原理、神经网络的逻辑架构和神经网络的应用,相信大家看到这里对神经网络知识有了一定的了解,希望这篇文章能够帮助到大家。
人工智能,机器学习和深度学习的区别是什么
为了搞清三者关系,我们来看一张图:
如图所示:人工智能***,此概念也***问世;然后是机器学习,出现的稍晚;最后才是深度学习。
从低潮到繁荣
自从 1956 年计算机科学家们在达特茅斯会议(Dartmouth Conferences)上确认人工智能这个术语以来,人们就不乏关于人工智能奇思妙想,研究人员也在不遗余力地研究。在此后的几十年间,人工智能先是被捧为人类文明光明未来的钥匙,后又被当作过于自大的异想天开而抛弃。
但是在过去几年中,人工智能出现了爆炸式的发展,尤其是 2015 年之后。大部分原因,要归功于图形处理器(GPU)的广泛应用,使得并行处理更快、更便宜、更强大。另外,人工智能的发展还得益于几乎无限的存储空间和海量数据的出现(大数据运动):图像、文本、交易数据、地图数据,应有尽有。
下面我们从发展的历程中来一一展开对人工智能、机器学习和深度学习的深度学习。
人工智能人工智能先驱们在达特茅斯开会时,心中的梦想是希望通过当时新兴的计算机,打造拥有相当于人类智能的复杂机器。这就是我们所说的“通用人工智能”(General AI)概念,拥有人类五感(甚至更多)、推理能力以及人类思维方式的神奇机器。在电影中我们已经看过无数这样的机器人,对人类友好的 C-3PO,以及人类的敌人终结者。通用人工智能机器至今只存在 于电影和科幻小说里,理由很简单:我们还实现不了,至少目前为止。
我们力所能及的,算是“弱人工智能”(Narrow AI):执行特定任务的水平与人类相当,甚至超越人类的技术。现实中有很多弱人工智能的例子。这些技术有人类智能的一面。但是它们是如何做到的?智能来自哪里?这就涉及到下一个同心圆:机器学习。
机器学习
机器学习是实现人工智能的一种方法。机器学习的概念来自早期的人工智能研究者,已经研究出的算法包括决策树学习、归纳逻辑编程、增强学习和贝叶斯网络等。简单来说,机器学习就是使用算法分析数据,从中学习并做出推断或预测。与传统的使用特定指令集手写软件不同,我们使用大量数据和算法来“训练”机器,由此带来机器学习如何完成任务。
许多年来,计算机视觉一直是机器学习***的领用领域之一,尽管还需要大量的手动编码才能完成任务。研究者会手动编写一些分类器(classifier),如边缘检测筛选器,帮助程序辨别物体的边界;图形检测分类器,判断物体是否有八个面;以及识别“S-T-O-P”的分类器。在这些手动编写的分类器的基础上,他们再开发用于理解图像的算法,并学习如何判断是否有停止标志。
但是由于计算机视觉和图像检测技术的滞后,经常容易出错。
深度学习
深度学习是实现机器学习的一种技术。早期机器学习研究者中还开发了一种叫人工神经网络的算法,但是发明之后数十年都默默无闻。神经网络是受人类大脑的启发而来的:神经元之间的相互连接关系。但是,人类大脑中的神经元可以与特定范围内的任意神经元连接,而人工神经网络中数据传播要经历不同的层,传播方向也不同。
举个例子,你可以将一张图片切分为小块,然后输入到神经网络的***层中。在***层中做初步计算,然后神经元将数据传至第二层。由第二层神经元执行任务,依次类推,直到最后一层,然后输出最终的结果。
每个神经元都会给其输入指定一个权重:相对于执行的任务该神经元的正确和错误程度。最终的输出由这些权重共同决定。因此,我们再来看看上面提到的停止标志示例。一张停止标志图像的属性,被一一细分,然后被神经元“检查”:形状、颜色、字符、标志大小和是否运动。神经网络的任务是判断这是否是一个停止标志。它将给出一个“概率向量”(probability vector),这其实是基于权重做出的猜测结果。在本文的示例中,系统可能会有 86% 的把握认定图像是一个停止标志,7% 的把握认为是一个限速标志,等等。网络架构然后会告知神经网络其判断是否正确。
不过,问题在于即使是最基础的神经网络也要耗费巨大的计算资源,因此当时不算是一个可行的方法。不过,以多伦多大学 Geoffrey Hinton 教授为首的一小批狂热研究者们坚持采用这种方法,最终让超级计算机能够并行执行该算法,并证明该算法的作用。如果我们回到停止标志那个例子,很有可能神经网络受训练的影响,会经常给出错误的答案。这说明还需要不断的训练。它需要成千上万张图片,甚至数百万张图片来训练,直到神经元输入的权重调整到非常精确,几乎每次都能够给出正确答案。不过值得庆幸的是Facebook 利用神经网络记住了你母亲的面孔;吴恩达 2012 年在谷歌实现了可以识别猫的神经网络。
如今,在某些情况下,通过深度学习训练过的机器在图像识别上表现优于人类,这包括找猫、识别血液中的癌症迹象等。谷歌的 AlphaGo 学会了围棋,并为比赛进行了大量的训练:不断的和自己比赛。
总结
人工智能的根本在于智能,而机器学习则是部署支持人工智能的计算方法。简单的将,人工智能是科学,机器学习是让机器变得更加智能的算法,机器学习在某种程度上成就了人工智能。
本文作者 Michael Copeland 曾是 WIRED 编辑,现在是硅谷知名投资机构 Andreessen Horowitz 的合伙人。
机器学习的基本流程是什么
1 抽象成数学问题
明确问题是进行机器学习的***步。机器学习的训练过程通常都是一件非常耗时的事情,胡乱尝试时间成本是非常高的。
这里的抽象成数学问题,指的我们明确我们可以获得什么样的数据,目标是一个分类还是回归或者是聚类的问题,如果都不是的话,如果划归为其中的某类问题。
2 获取数据
数据决定了机器学习结果的上限,而算法只是尽可能逼近这个上限。
数据要有代表性,否则必然会过拟合。
而且对于分类问题,数据偏斜不能过于严重,不同类别的数据数量不要有数个数量级的差距。
而且还要对数据的量级有一个评估,多少个样本,多少个特征,可以估算出其对内存的消耗程度,判断训练过程中内存是否能够放得下。如果放不下就得考虑改进算法或者使用一些降维的技巧了。如果数据量实在太大,那就要考虑分布式了。
3 特征预处理与特征选择
良好的数据要能够提取出良好的特征才能真正发挥效力。
特征预处理、数据清洗是很关键的步骤,往往能够使得算法的效果和性能得到显著提高。归一化、离散化、因子化、缺失值处理、去除共线性等,数据挖掘过程中很多时间就花在它们上面。这些工作简单可复制,收益稳定可预期,是机器学习的基础必备步骤。
筛选出显著特征、摒弃非显著特征,需要机器学习工程师反复理解业务。这对很多结果有决定性的影响。特征选择好了,非常简单的算法也能得出良好、稳定的结果。这需要运用特征有效性分析的相关技术,如相关系数、卡方检验、平均互信息、条件熵、后验概率、逻辑回归权重等方法。
4 训练模型与调优
直到这一步才用到我们上面说的算法进行训练。现在很多算法都能够封装成黑盒供人使用。但是真正考验水平的是调整这些算法的(超)参数,使得结果变得更加优良。这需要我们对算法的原理有深入的理解。理解越深入,就越能发现问题的症结,提出良好的调优方案。
5 模型诊断
如何确定模型调优的方向与思路呢?这就需要对模型进行诊断的技术。
过拟合、欠拟合 判断是模型诊断中至关重要的一步。常见的方法如交叉验证,绘制学习曲线等。过拟合的基本调优思路是增加数据量,降低模型复杂度。欠拟合的基本调优思路是提高特征数量和质量,增加模型复杂度。
误差分析 也是机器学习至关重要的步骤。通过观察误差样本,全面分析误差产生误差的原因:是参数的问题还是算法选择的问题,是特征的问题还是数据本身的问题……
诊断后的模型需要进行调优,调优后的新模型需要重新进行诊断,这是一个反复迭代不断逼近的过程,需要不断地尝试, 进而达到***状态。
6 模型融合
一般来说,模型融合后都能使得效果有一定提升。而且效果很好。
工程上,主要提升算法准确度的方法是分别在模型的前端(特征清洗和预处理,不同的采样模式)与后端(模型融合)上下功夫。因为他们比较标准可复制,效果比较稳定。而直接调参的工作不会很多,毕竟大量数据训练起来太慢了,而且效果难以保证。
7 上线运行
这一部分内容主要跟工程实现的相关性比较大。工程上是结果导向,模型在线上运行的效果直接决定模型的成败。 不单纯包括其准确程度、误差等情况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性是否可接受。
这些工作流程主要是工程实践上总结出的一些经验。并不是每个项目都包含完整的一个流程。这里的部分只是一个指导性的说明,只有大家自己多实践,多积累项目经验,才会有自己更深刻的认识。
机器学习,是什么原理呢?
机器学习是有一个很明确的定义的
就是利用经验改善系统性能的技术方向
经验目前指的就是数据,改善系统性能,指的就是能,改善完成一个特定任务的模型的精度,
目前的机器学习,通过数据来建模,最后完成一些分类任务,举个例子,利用过去一段时间的气象数据,来预测明天的气温是多少度
机器学习与传统计算机工作的原理有何不同?
这个问题问得非常好
传统编程解决问题的思路就是,人来把这个规律转换成代码,让计算机执行
而机器学习的思路是,先造一个特定解决问题的模型,然后通过学习数据来优化模型中的参数,达到更好地解决问题
所以区别就是一个是人来学习,总结出规律。一个是人先做一个简单的规律,然后通过数据来优化这个规律的形状
机器学习模型可解释的重要及必要性
机器学习模型可解释的重要及必要性
不管你是管理自己的资金还是客户资金,只要你在做资产管理,每一步的投资决策都意义重大,做技术分析或基本面分析的朋友很清楚地知道每一个决策的细节,但是通过机器学习、深度学习建模的朋友可能就会很苦恼,因为直接产出决策信号的模型可能是个黑盒子,很难明白为什么模型会产出某一个信号,甚至很多保守的私募基金把模型的可解释性放入了事前风控。其实,模型的可解释性是很容易做到的,难点在于研究员是否对模型有深入的思考和理解。
介绍
机器学习领域在过去十年中发生了显著的变化。从一个纯粹的学术和研究领域方向开始,我们已经看到了机器学习在各个领域都有着广泛的应用,如零售,技术,医疗保健,科学等等。在21世纪,数据科学和机器学习的重要目标已经转变为解决现实问题,自动完成复杂任务,让我们的生活变得更加轻松,而不仅仅是在实验室做实验发表论文。机器学习,统计学或深度学习模型工具已基本成型。像Capsule Networks这样的新模型在不断地被提出,但这些新模型被工业采用却需要几年时间。因此,在工业界中,数据科学或机器学习的主要焦点更多在于应用,而不是理论。这些模型可以在正确数据上有效应用来解决现实问题是至关重要的。
机器学习模型本质上就是一种算法,该算法试图从数据中学习潜在模式和关系,而不是通过代码构建一成不变的规则。所以,解释一个模型是如何在商业中起作用总会遇到一系列挑战。在某些领域,特别是在金融领域,比如保险、银行等,数据科学家们通常最终不得不使用更传统更简单的机器学习模型(线性模型或决策树)。原因是模型的可解释性对于企业解释模型的每一个决策至关重要。然而,这常常导致在性能上有所牺牲。复杂模型像如集成学习和神经网络通常表现出更好更精准的性能(因为真实的关系在本质上很少可以通过线性划分的),然而,我们最终无法对模型决策做出合适的解释。为了解决和探讨这些差距,本文中,我会重点解释模型可解释性的重要及必要性。
动机
作为一名在企业工作的数据科学家并时常指导他人,我发现数据科学仍然常常被视为一个黑盒,它能用“魔法”或“炼金术”提供人们想要的东西。然而,严酷的现实是,如果不对模型进行合理足够的解释,现实世界的项目很少成功。如今,数据科学家通过构建模型并为业务提供解决方案。企业可能不知道模型实现的复杂细节,却要依靠这些模型做出决策,他们确实有权提出这样的问题:“我怎样才能相信你的模型?”或“你的模型是如何决策的”?”回答这些问题是数据科学实践者和研究人员数年来一直在尝试的事情。
数据科学家知道,模型解释性与模型性能之前有一个权衡。在这里,模型性能不是运行时间或执行性能,而是模型在做出预测时的准确度。有几种模型(包括简单的线性模型甚至基于树的模型),他们的预测的原理很好直观理解,但是需要牺牲模型性能,因为它们的产生的结果偏差或者方差很高(欠拟合:线性模型),或者容易过拟合(基于树的模型)。更复杂的模型,如集成模型和近期快速发展的深度学习通常会产生更好的预测性能,但被视为黑盒模型,因为要解释这些模型是如何真正做出决策是一件非常困难的事情。
虽然有些人说,知道模型性能好就行了,为什么还要知道它背后的原理呢? 然而,作为人类,大多数决策基于逻辑和推理。 因此,人工智能(AI)作出决策的模式无疑会受到怀疑。 在很多现实情况下,有偏差的模型可能会产生真正的负面影响。 这包括预测潜在的犯罪、司法量刑、信用评分、欺诈发现、健康评估、贷款借款、自动驾驶等,其中模型的理解和解释是最重要的。 数据科学家、作家Cathy O’ Neil在她的著名著作《Weapons of Math Destruction》中也强调了这一点。
著名学者和作家凯特克劳福德在NIPS 2017主题演讲《The Trouble with Bias》中谈到了偏差在机器学习中的影响以及它对社会的影响。
有兴趣的读者也可以看看她在纽约时报的著名文章《 Artificial Intelligence’s White Guy Problem》,向我们展示了机器学习应用的案例,包括图像分类、犯罪风险预测、交付服务可用性等等,这些应用对黑人极不亲善。 如果我们想利用机器学习来解决这些问题,所有这些真实世界的场景都在告诉我们模型解释是多么的重要。
在过去的一年里,我在解决行业问题的同时也看到了对模型解释的需求,同时我也在写我的新书《Practical Machine Learning with Python2》。在这段时间里,我有机会与DataScience.com的优秀员工进行互动,他们非常清楚在机器学习模型中人类可解释性的必要性和重要性。他们也一直在积极研究解决方案,并开发了流行的python框架Skater。后续我们将深入研究Skater,并在本系列文章中做一些实际的模型解释。
理解模型解释
机器学习(尤其是深度学习)仅在最近几年才得到广泛的行业采用。因此,模型解释作为一个概念仍然主要是理论和主观的。
任何机器学习模型都有一个响应函数,试图映射和解释自(输入)变量和因(目标或响应)变量之间的关系和模式。
模型解释试图理解和解释响应函数做出的这些决定。模型解释的关键在于透明度以及人们理解模型决策的容易程度。模型解释的三个最重要的方面解释如下。
什么主导了模型预测?我们应该找出特征的相互作用,以了解在模型的决策策略中哪些特征可能是重要的。这确保了模型的公平性。
为什么模型做出某个特定决策?我们还应该能够验证为什么某些关键特征在预测期间推动某个模型所做出的某些决定。这确保了模型的可靠性。
我们如何相信模型预测?我们应该能够评估和验证任何数据点以及模型如何作出决策。对于模型按预期运行的直接利益相关者来说,这应该是可证明的,并且易于理解。这确保了模型的透明度。
可解释性是指人(包括机器学习中的非专家)能够理解模型在其决策过程中所做出的选择(怎么决策,为什么决策和决策了什么)。
在模型比较时,除了模型的性能,如果一个模型的决策比另一个模型的决策更容易被人类理解,则说该模型比另一个模型具有更好的可解释性。
模型解释的重要性
在解决机器学习问题时,数据科学家通常倾向于注意模型性能指标,如准确性、精确度和召回率等(毫无疑问,这很重要!)。但是,度量标准只能说明模型预测性决策的一部分内容。随着时间的推移,由于环境中各种因素造成的模型概念漂移,性能可能会发生变化。因此,了解什么促使模型作出某些决定是极为重要的。
我们中的一些人可能会认为模型已经工作得很好了,为什么还要深入挖掘呢?一定要记住,当解决现实世界中的数据科学问题时,为了让企业相信你的模型预测和决策,他们会不断提问“我为什么要信任你的模型?”,这非常合理。如果一个人患有癌症或糖尿病,如果一个人可能对社会构成风险,或者即使客户流失,您是否会满意于只是预测和做出决定(如何)的模型?也许另外一种会更好,如果我们可以更多地了解模型的决策过程(为什么以及如何),我们可能更喜欢它。这为我们提供了更多的透明度,说明为什么模型会做出某些决定,在某些情况下可能会出错,并且随着时间的推移它可以帮助我们在这些机器学习模型上建立一定的信任度。
这一部分关键的一点是,现在是时候停止将机器学习模型视为黑盒子,不仅尝试和分析数据,而且还要分析模型如何做出决策。实际上,走向这条道路的一些关键步骤是由著名论文《Why Should I Trust You?》(解释了任意分类器的预测)”开始的,由MT Ribeiro,S. Singh和C. Guestrin在SIGKDD 2016上介绍了LIME(Local Interpretable Model-Agnostic Explanations)(局部可解释模型 - 不可知论解释)的概念。
他们在论文中提到了一些值得记住的关键点。
然而,理解预测背后的原因在评估信任方面非常重要,如果计划基于预测采取行动,或者选择是否部署新模型,则对模型的信任是至关重要的。 无论人类是直接使用机器学习分类器作为工具还是在其他产品中部署模型,仍然存在一个至关重要的问题:如果用户不信任模型或预测,他们将不会使用它。
这是我们在本文中多次讨论的内容,也是决定数据科学项目在业界成功与否的关键因素之一。这就推动了模型解释的必要性和重要性。
模型解释方法的标准
对于模型解释方法的分类有特定的标准。在Christoph Molnar的“Interpretable Machine Learning,Making Guide for Making Black Box Models Explainable”中提到了一个很好的指导标准:
内在或事后?内在解释性是关于利用机器学习模型的,它本质上是解释性的(像线性模型、参数模型或基于树的模型)。事后解释性意味着选择和训练一个黑盒模型(集成方法或神经网络)并在训练后应用可解释性方法(特征重要性,部分依赖关系图)。我们将在我们的系列文章中更多地关注事后模型可解释的方法。
是针对某个模型的还是通用的?特定于模型的解释工具对固有模型解释方法非常具体,这些解释方法完全取决于每个模型的能力和特征。这可以是系数,p值,与回归模型相关的AIC分数,决策树的规则等等。通用的模型解释方法还是依赖于事后对模型的分析,可用于任何机器学习模型。通常通过分析特征输入和输出对来运行。根据定义,这些方法无法访问任何模型内部,如权重,约束或假设。
本地还是全局?这种解释的分类会谈到解释方法是解释单个预测还是整个模型行为?或者如果范围介于两者之间?我们将尽快讨论更多关于局部和全局的解释。
这并不是对可解释方法进行分类的一套完整的标准,因为这仍然是一个新兴的领域,但这可以是一个很好的标准,可以在多种方法之间进行比较和对比。
模型解释的范围
我们如何界定解释的范围和界限?一些有用的方面可以是模型的透明度,公平性和可靠性。本地还是全局模型解释是定义模型解释范围的明确方法。
全局解释性
这就是要试图理解“模型如何做出预测?”和“模型的子集如何影响模型决策?”。为了一次理解和解释整个模型,我们需要全局解释。全局可解释性是指能够基于完整数据集上的依赖(响应)变量和独立(预测)特征之间的条件相互作用来解释和理解模型决策。试图理解特征的相互作用和重要性,往往是理解全局解释的好的一步。当然,在尝试分析交互时,在超过两个或三个维度后对特征进行可视化变得非常困难。因此,经常查看可能会影响全局知识模型预测的模块化部分和特征子集,对全局解释是有所帮助的。完整的模型结构知识,假设和约束是全局解释所必需的。
局部解释性
这就是要了解“为什么模型会为单个实例做出特定决策?”以及“为什么模型会为一组实例做出特定决策?”。对于局部的可解释性,我们不关心模型的内在结构或假设,我们把它当作一个黑箱子。为了理解单个数据点的预测决策,我们专门关注该数据点,并在该点附近的特征空间中查看局部子区域,并尝试根据此局部区域了解该点的模型决策。局部数据分布和特征空间可能表现完全不同,并提供更准确的解释而不是全局解释。局部可解释模型 - 不可知论解释(LIME)框架是一种很好的方法,可用于模型不可知的局部解释。我们可以结合使用全局解释和局部解释来解释一组实例的模型决策。
模型透明度
这就是要了解“从算法和特征中创建模型的过程如何?”。我们知道,典型的机器学习模型都是关于利用一个算法在数据特征之上构建一个表示,将输入映射到潜在的输出(响应)。模型的透明性可以尝试理解模型如何构建的更多技术细节,以及影响其决策的因素。这可以是神经网络的权值,CNN滤波器的权值,线性模型系数,节点和决策树的分割。然而,由于企业对这些技术细节可能并不十分熟悉,试图用不可知的局部和全局解释方法来解释模型决策有助于展示模型的透明度。
结论
模型可解释是一个对现实世界机器学习项目非常重要的一件事情。让我们试着去研究人类可解释的机器学习,让每个人都打开机器学习模型的黑箱,并帮助人们增加对模型决策的信任。
写在最后:模型解释性很重要,这能够加深我们对模型的信心,尤其是在金融市场中,当模型持续回撤时,信心比黄金还重要。之前有一个私募团队使用了StockRanker策略,但是迟迟不肯上实盘,后来在弄清楚模型的理论原理和每一步细节、处理流程后,终于有信心上实盘,实盘前期遇到回撤也能明白是正常情况,并非模型预测失效,扛住前期的回撤后策略净值开始上升。因此,机器学习模型可解释很重要,模型也是可以解释的,只是需要研究员付出更多的心血
关于机器学习原理和机器学习算法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。