31岁学习人工智能_人工智能ai 学习 - CSDN
  • 机器学习、深度学习、强化学习人工智能的关系是什么?人工智能学习算法大家庭1. 机器学习的定义2....人工智能 (Artificial Intelligence, AI) 浪潮正在席卷全球,在上讲中,我们给出了人工智能...

    人工智能的学习算法大家庭

      人工智能 (Artificial Intelligence, AI) 浪潮正在席卷全球,在上一讲中,我们给出了人工智能的定义、话题、四大技术分支、主要应用领域和三种形态:弱人工智能、强人工智能和超级人工智能,让大家了解了人工智能这个耳熟能详的概念。其中,我们区别了弱人工智能和强人工智能的概念:前者让机器具备观察和感知的能力,可以做到一定程度的理解和推理;而强人工智能让机器获得自适应能力,解决一些之前没有遇到过的问题。电影里的人工智能多半都是在描绘强人工智能,而这部分在目前的现实世界里难以真正实现;目前的科研工作主要集中在弱人工智能这部分,并且已经取得了一系列的重大突破。
    电影中的强人工智能——黑客帝国
      在这一讲中,我们打算理一下人工智能的发展历史,以及各个历史阶段当中侧重的不同算法。
      1956年,几个计算机科学家相聚在达特茅斯会议,提出了“人工智能”的概念,梦想着用当时刚刚出现的计算机来构造复杂的、拥有与人类智慧同样本质特性的机器。其后,人工智能就一直萦绕于人们的脑海之中,并在科研实验室中慢慢孵化。之后的几十年,人工智能一直在两极反转,或被称作人类文明耀眼未来的预言,或被当成技术疯子的狂想扔到垃圾堆里。直到2012年之前,这两种声音还在同时存在。
      2012年以后,得益于数据量的上涨、运算力的提升和机器学习新算法——深度学习的出现,人工智能开始大爆发,研究领域也在不断扩大,下图展示了人工智能研究的各个分支,包括计划调度、专家系统、多智能体系统、进化计算、模糊逻辑、机器学习、知识表示、计算机视觉、自然语言处理、推荐系统、机器感知等等。
    人工智能研究的各个分支
      诸多媒体流行词汇萦绕在我们耳边,比如人工智能 (Artificial Intelligence)、机器学习 (Machine Learning)、深度学习 (Deep Learning)、强化学习 (Reinforcement Learning)。不少人对这些高频词汇的含义及其背后的关系感到困惑,这一讲中,我们会从它们的发展历程、概念、算法种类进行介绍,并且理清它们之间的关系和区别;具体的算法原理留到之后的推送当中详解。

    1. 机器学习

      弱人工智能是如何实现的,“智能”又从何而来呢?这主要归功于一种实现人工智能的方法——机器学习。

    1. 机器学习的定义一:机器学习定义的第一类答案是IBM提出的认知计算 (Cognitive Computing)。其目标是构建不需要显式编程的机器(计算机、软件、机器人、网站、移动应用、设备等)。这种机器学习观点可追溯到Arthur Samuel在1959年的定义,“机器学习:让计算机无需显式编程也能学习的研究领域”。Arthur Samuel 是机器学习的创始人之一,在IBM的时候,他开发了一个程序来学习如何在西洋棋棋艺上超过他。
    2. 机器学习的定义二:Samuel的定义很好,但可能有点太模糊。1998年,另一位著名的机器学习研究者Tom Mitchell提出了一个更精确的定义,“正确提出的学习问题:如果计算机程序对于任务T的性能度量P通过经验E得到了提高,则认为此程序对经验E进行了学习”。为了阐述清楚,我们举一个例子:在下棋程序中,经验E指的就是程序的上万次的自我联系的经验,任务T就是下棋,性能度量P指的就是在比赛过程中取胜的概率,有了性能指标后,我们就能告诉系统是否学习该经验。
      机器学习定义
    3. 机器学习的算法分类:上述定义为机器学习设定了清晰的目标,但是,它们没有告诉我们如何实现该目标,我们应该让定义更明确一些。这就需要第二类定义,这类定义描述了机器学习算法,以下是一些流行的定义。在每种情况下,都会为算法提供一组示例供其学习。
       (1) 监督式学习:为算法提供训练数据,数据中包含每个示例的“正确答案”;例如,一个检测信用卡欺诈的监督学习算法接受一组记录的交易作为输入,对于每笔交易,训练数据都将包含一个表明它是否存在欺诈的标记。
       (2) 无监督学习:该算法在训练数据中寻找结构,比如寻找哪些示例彼此类似,并将它们分组到各个集群中。
    4. 机器学习的问题分类:我们希望在机器学习算法分类的基础上更具体一些,一种方法是通过分析机器学习任务能解决的问题类型,对任务进行细化:
       (1) 分类,一种监督学习问题,其中要学习的答案是有限多个可能值之一;例如,在信用卡示例中,该算法必须学习如何在“欺诈”与“诚信”之间找到正确的答案,在仅有两个可能的值时,我们称之为二元分类问题;用于实现分类的常用算法包括:支持向量机 (SVM)、提升 (boosted) 决策树和袋装 (bagged) 决策树、k-最近邻、朴素贝叶斯 (Naïve Bayes)、判别分析、逻辑回归和神经网络
       (2) 回归,一种监督学习问题,其中要学习的答案是一个连续值。例如,可为算法提供一条房屋销售及其价格的记录,让它学习如何设定房屋价格;常用回归算法包括:线性模型、非线性模型、规则化、逐步回归、提升 (boosted) 和袋装 (bagged) 决策树、神经网络和自适应神经模糊学习
       (3) 细分(聚类),一种无监督学习问题,其中要学习的结构是一些类似示例的集群。例如,市场细分旨在将客户分组到有类似购买行为的人群中;用于执行聚类的常用算法包括:k-均值和 k-中心点(k-medoids)、层次聚类、高斯混合模型、隐马尔可夫模型、自组织映射、模糊c-均值聚类法和减法聚类
       (4) 网络分析,一种无监督学习问题,其中要学习的结构是有关网络中的节点的重要性和作用的信息;例如,网页排名算法会分析网页及其超链接构成的网络,并寻找最重要的网页。谷歌等 Web 搜索引擎使用的就是这种算法,其他网络分析问题包括社交网络分析。
      机器学习算法、问题分类
    5. 机器学习工作流及定义三:上述两个定义的问题在于,开发一个机器学习算法并不足以获得一个能学习的系统。诚然,机器学习算法与学习系统之间存在着差距。我给出一个机器学习工作流,如下图所示;机器学习算法被用在工作流的“训练”步骤中,然后它的输出(一个经过训练的模型)被用在工作流的“预测”部分中。好的与差的机器算法之间的区别在于,我们在“预测”步骤中获得的预测质量。这就引出了机器学习的另一个定义:“机器学习的目的是从训练数据中学习,以便对新的、未见过的数据做出尽可能好的预测”。
      机器学习工作流

    2. 深度学习

      我们将从深度学习的发展历程、深度学习的概念、深度神经网络的分类几个方面来阐述。

    1. 深度学习发展历史
       (1) 1943年,由神经科学家麦卡洛克 (W.S.McCilloch) 和数学家皮兹 (W.Pitts) 在《数学生物物理学公告》上发表论文《神经活动中内在思想的逻辑演算》(A Logical Calculus of the Ideas Immanent in Nervous Activity)。建立了神经网络和数学模型,称为MCP模型。所谓MCP模型,其实是按照生物神经元的结构和工作原理构造出来的一个抽象和简化了的模型,也就诞生了所谓的“模拟大脑”,人工神经网络的大门由此开启。MCP当时是希望能够用计算机来模拟人的神经元反应的过程,该模型将神经元简化为了三个过程:输入信号线性加权,求和,非线性激活(阈值法),如下图所示:
      MCP模型 (2) 1958年,计算机科学家罗森布拉特 (Rosenblatt) 提出了两层神经元组成的神经网络,称之为“感知器” (Perceptrons),第一次将MCP用于机器学习分类:“感知器”算法算法使用MCP模型对输入的多维数据进行二分类,且能够使用梯度下降法从训练样本中自动学习更新权值。1962年,该方法被证明为能够收敛,理论与实践效果引起第一次神经网络的浪潮。
       (3) 1969年,纵观科学发展史,无疑都是充满曲折的,深度学习也毫不例外。1969年,美国数学家及人工智能先驱Marvin Minsky在其著作中证明了感知器本质上是一种线性模型 (Linear Model),只能处理线性分类问题,就连最简单的亦或 (XOR) 问题都无法正确分类。这等于直接宣判了感知器的死刑,神经网络的研究也陷入了将近20年的停滞。
       (4) 1986年,由神经网络之父Geoffrey Hinton在1986年发明了适用于多层感知器 (MLP) 的反向传播BP (Backpropagation) 算法,并采用Sigmoid进行非线性映射,有效解决了非线性分类和学习的问题。该方法引起了神经网络的第二次热潮。
      反向传播算法
       Sigmoid 函数是一个在生物学中常见的S型的函数(S型生长曲线)。在信息科学中,由于其单增以及反函数单增等性质,常被用作神经网络的阈值函数,将变量映射到[0, 1]:Sigmoid(x)=11+exSigmoid(x)=\frac{1}{1+e^{-x}}
       (5) 90年代时期,1991年BP算法被指出存在梯度消失问题,也就是说在误差梯度后项传递的过程中,后层梯度以乘性方式叠加到前层,由于Sigmoid函数的饱和特性,后层梯度本来就小,误差梯度传到前层时几乎为0,因此无法对前层进行有效的学习,该问题直接阻碍了深度学习的进一步发展;此外90年代中期,支持向量机 (SVM) 算法诞生等各种浅层机器学习模型被提出,SVM也是一种有监督的学习模型,应用于模式识别,分类以及回归分析等。支持向量机以统计学为基础,和神经网络有明显的差异,支持向量机等算法的提出再次阻碍了深度学习的发展。
       (6) 2006年——2012年(发展期),2006年,加拿大多伦多大学教授、机器学习领域泰斗、神经网络之父——Geoffrey Hinton和他的学生Ruslan Salakhutdinov在顶尖学术刊物《科学》上发表了一篇文章,该文章提出了深层网络训练中梯度消失问题的解决方案:无监督预训练对权值进行初始化+有监督训练微调。斯坦福大学、纽约大学、加拿大蒙特利尔大学等成为研究深度学习的重镇,至此开启了深度学习在学术界和工业界的浪潮。2011年,修正线性单元 (Rectified Linear Unit, ReLU) 激活函数被提出,该激活函数能够有效的抑制梯度消失问题:ReLU(x)=max(0,x)ReLU(x)=max(0, x)
       2011年以来,微软首次将深度学习应用在语音识别上,取得了重大突破。微软研究院和Google的语音识别研究人员先后采用深度神经网络 (DNN) 技术降低语音识别错误率20%~30%,是语音识别领域十多年来最大的突破性进展。2012年,DNN技术在图像识别领域取得惊人的效果,在ImageNet评测上将错误率从26%降低到15%。在这一年,DNN还被应用于制药公司的DrugeActivity预测问题,并获得世界最好成绩。
      在这里插入图片描述
       (7) 2012年——2017年(爆发期),2012年,Hinton课题组为了证明深度学习的潜力,首次参加ImageNet图像识别比赛,其通过构建的卷积神经网络 (CNN) AlexNet一举夺得冠军,且碾压第二名(SVM方法)的分类性能。也正是由于该比赛,CNN吸引到了众多研究者的注意。
      AlexNet 2016年,随着谷歌 (Google) 旗下的DeepMind公司基于深度学习开发的AlphaGo以4 : 1的比分战胜了国际顶尖围棋高手李世石,深度学习的热度一时无两。后来,AlphaGo又接连和众多世界级围棋高手过招,均取得了完胜。这也证明了在围棋界,基于深度学习技术的机器人已经超越了人。
      阿尔法狗 VS 李世石
       2016年末2017年初,该程序在中国棋类网站上以“大师” (Master) 为注册帐号与中日韩数十位围棋高手进行快棋对决,连续60局无一败绩;2017年5月,在中国乌镇围棋峰会上,它与排名世界第一的世界围棋冠军柯洁对战,以3比0的总比分获胜。围棋界公认阿尔法围棋的棋力已经超过人类职业围棋顶尖水平;同年,基于强化学习算法的AlphaGo升级版AlphaGo Zero横空出世,其采用“从零开始”、“无师自通”的学习模式,以100:0的比分轻而易举打败了之前的AlphaGo。除了围棋,它还精通国际象棋等其它棋类游戏,可以说是真正的棋类“天才”。
       此外在这一年,深度学习的相关算法在医疗、金融、艺术、无人驾驶等多个领域均取得了显著的成果。所以,也有专家把2017年看作是深度学习甚至是人工智能发展最为突飞猛进的一年。
    2. 深度学习的定义:深度学习是机器学习中一种基于对数据进行表征学习的算法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如人脸识别、面部表情识别)。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征
    3. 深度神经网络:深度学习的模型有很多,目前开发者最常用的深度学习模型与架构包括卷积神经网络 (CNN)、深度置信网络 (DBN)、受限玻尔兹曼机 (RBM)、递归神经网络 (RNN & LSTM & GRU)、递归张量神经网络 (RNTN)、自动编码器 (AutoEncoder)、生成对抗网络 (GAN)等等,更多的模型可以参考下图:
      在这里插入图片描述

    3. 强化学习

      强化学习在各个领域当中应用十分广泛,在这里主要给出它的定义、适用范围、组成成分和交互过程。

    1. 强化学习的定义:强化学习 (Reinforcement learning, RL) 是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益;其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。
    2. 强化学习适用范围:尽管我们在机器学习社区中广泛使用强化学习,但强化学习不仅仅是一个人工智能术语,它是许多领域中的一个中心思想,如下图(强化学习的多个方面,Many Faces of Reinforcement Learning)所示。事实上,许多这些领域面临着与机器学习相同的问题:如何优化决策以实现最佳结果,这就是决策科学 (Science of Decision-Making);在神经科学中,人类研究人脑并发现了一种遵循著名的强化算法的奖励系统;在心理学中,人们研究的经典条件反射和操作性条件反射,也可以被认为是一个强化问题;类似的,在经济学中我们研究理性博弈论;在数学中我们研究运筹学;在工程学中我们研究优化控制;所有的这些问题都可以被认为一种强化学习问题——它们研究同一个主题,即为了实现最佳结果而优化决策。
      强化学习的多个方面
    3. 强化学习基本组成成分:强化学习主要由智能体 (Agent)、环境 (Environment)、状态 (State)、动作 (Action)、奖励 (Reward)、策略 (Policy)、目标 (Objective) 组成。
       (1) 智能体:强化学习的本体,作为学习者或者决策者;
       (2) 环境:强化学习智能体以外的一切,主要由状态集合组成;
       (3) 状态:一个表示环境的数据,状态集则是环境中所有可能的状态;
       (4) 动作:智能体可以做出的动作,动作集则是智能体可以做出的所有动作;
       (5) 奖励:智能体在执行一个动作后,获得的正/负反馈信号,奖励集则是智能体可以获得的所有反馈信息;
       (6) 策略:强化学习是从环境状态到动作的映射学习,称该映射关系为策略。通俗的理解,即智能体如何选择动作的思考过程称为策略;
       (7) 目标:智能体自动寻找在连续时间序列里的最优策略,而最优策略通常指最大化长期累积奖励。在此基础上,智能体和环境通过状态、动作、奖励进行交互的方式为:智能体执行了某个动作后,环境将会转换到一个新的状态,对于该新的状态环境会给出奖励信号(正奖励或者负奖励)。随后,智能体根据新的状态和环境反馈的奖励,按照一定的策略执行新的动作。
      强化学习的个体和环境
       智能体通过强化学习,可以知道自己在什么状态下,应该采取什么样的动作使得自身获得最大奖励;因此,强化学习实际上是智能体在与环境进行交互的过程中,学会最佳决策序列。由于智能体与环境的交互方式与人类与环境的交互方式类似,可以认为强化学习是一套通用的学习框架,可用来解决通用人工智能的问题。因此强化学习也被称为通用人工智能的机器学习方法。

    4. 迁移学习

      迁移学习 (Transfer Learning) 顾名思义就是就是把已学训练好的模型参数迁移到新的模型来帮助新模型训练。考虑到大部分数据或任务是存在相关性的,所以通过迁移学习我们可以将已经学到的模型参数(也可理解为模型学到的知识)通过某种方式来分享给新模型从而加快并优化模型的学习效率不用像大多数网络那样从零学习 (Starting From Scratch)。

    1. 迁移学习的定义:迁移学习是机器学习技术的一种,其中在一个任务上训练的模型被重新利用在另一个相关的任务上,定义一:“迁移学习和领域自适应指的是将一个任务环境中学到的东西用来提升在另一个任务环境中模型的泛化能力” ——2016年“Deep Learning”,526页;迁移学习也是一种优化方法,可以在对另一个任务建模时提高进展速度或者是模型性能,定义二:“迁移学习就是通过从已学习的相关任务中迁移其知识来对需要学习的新任务进行提高。”——第11章:转移学习,机器学习应用研究手册,2009年;同在2009年,Sinno Jialin Pan和Qiang Yang发表了一篇迁移学习的《A Survey on Transfer Learning》,他们给出了迁移学习的数学定义三:Given a source domain DS={XS,fS(X)}D_S=\{X_S, f_S(X)\} and learning task TST_S, a target domain DT={XT,fT(X)}D_T=\{X_T, f_T(X)\} and learning task TTT_T, transfer learning aims to help improve the learning of the target predictive function fT()f_T(·) in DTD_T using the knowledge in DSD_S and TST_S, where DS̸=DTD_S\not=D_T, or TS̸=TTT_S\not=T_T.
    2. 迁移学习在深度学习中的应用:迁移学习还与多任务学习概念漂移等问题有关,它并不完全是深度学习的一个研究领域。尽管如此,由于训练深度学习模型所需耗费巨大资源,包括大量的数据集,迁移学习便成了深度学习是一种很受欢迎的方法。但是,只有当从第一个任务中学到的模型特征是容易泛化的时候,迁移学习才能在深度学习中起到作用。 “在迁移学习中,我们首先在基础数据集和任务上训练一个基础网络,然后将学习到的特征重新调整或者迁移到另一个目标网络上,用来训练目标任务的数据集。如果这些特征是容易泛化的,且同时适用于基本任务和目标任务,而不只是特定于基本任务,那迁移学习就能有效进行。”——深度神经网络中的特征如何迁移的?这种用于深度学习的迁移学习形式被称为推导迁移 (Inductive Transfer)。就是通过使用合适但不完全相同的相关任务的模型,将模型的范围(模型偏差)以有利的方式缩小。
      推导迁移
      举个例子,使用图像数据作为输入的预测模型问题中进行迁移学习是很常见的,它可能是一个以照片或视频数据作为输入的预测任务。 对于这些类型的问题,通常会使用预先训练好的深度学习模型来处理大型的和具有挑战性的图像分类任务,例如ImageNet 1000级照片分类竞赛,我们可以下载以下模型,并合并到以自己图像数据作为输入的新模型中:牛津的VGG模型、谷歌的Inception模型、微软的ResNet模型
    3. 迁移学习使用方法:我们可以在自己的预测模型问题上使用迁移学习,通常有两种方法:开发模型方法和预训练模型方法。
      对于开发模型方法,分为四步:
       (1) 选择源任务:必须选择一个与大量数据相关的预测模型问题,这个大量的数据需要与输入数据,输出数据和/或从输入到输出数据映射过程中学习的概念之间存在某种关系。
       (2) 开发源模型:接下来,必须为这个第一项任务开发一个熟练的模型;该模型必须比原始模型更好,以确保一些特征学习已经发挥了其作用。
       (3) 重用模型:然后可以将适合元任务的模型用作感兴趣的另一个任务模型的起点;这取决于所使用的建模技术,可能涉及到了全部或部分模型。
       (4) 调整模型:可选项,对感兴趣任务的调整输入—输出配对数据或改进模型。
      对于预训练模型方法,分为三步:
       (1) 选择源任务:从可用的模型中选择预训练的元模型,许多研究机构会发布已经在大量的且具有挑战性的数据集上训练好的模型,在可用模型的模型池里面也能找到这些模型。
       (2) 重用模型:然后可以将预训练的模型用作感兴趣的另一个任务模型的起点,这取决于所使用的建模技术,可能涉及使用全部或部分模型。
       (3) 调整模型:可选项,对感兴趣任务的调整输入—输出配对数据或改进模型。
      其中,第二类迁移学习方法在深度学习领域是很常见的。

    5. 机器学习 VS 深度学习 VS 强化学习 VS 迁移学习 VS 人工智能?

      以上我们分别介绍了机器学习、深度学习、强化学习、迁移学习算法,那么它们之前存在怎样的关系呢?它们和人工智能又存在怎样的关联呢?

    1. 机器学习 VS 深度学习:机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术,目前,学术界的各个人工智能研究方向(计算机视觉、自然语言处理等等),深度学习的效果都远超过传统的机器学习方法,再加上媒体对深度学习进行了大肆夸大的报道,有人甚至认为,“深度学习最终可能会淘汰掉其它所有机器学习算法”。这种看法是正确的吗?
      深度学习,作为目前最热的机器学习方法,但并不意味着是机器学习的终点,目前存在以下问题:
       (1) 深度学习模型需要大量的训练数据,才能展现出神奇的效果,但现实生活中往往会遇到小样本问题,此时深度学习方法无法入手,传统的机器学习方法就可以处理。
       (2) 有些领域,采用传统简单的机器学习方法,可以很好地解决,没必要采用复杂的深度学习方法。
       (3) 深度学习的思想,来源于人脑的启发,但绝不是人脑的模拟,举个例子:给一个三四岁的小孩看一辆自行车之后,再见到哪怕外观完全不同的自行车,小孩也十有八九能做出那是一辆自行车的判断,也就是说,人类的学习过程往往不需要大规模的训练数据,目前深度学习方法显然很难做到。
       (4) 目前在工业界,基于深度学习的人工智能项目落地非常困难。
      机器学习和深度学习
    2. 深度学习 VS 强化学习:深度学习和强化学习的主要区别在于:
       (1) 深度学习的训练样本是有标签的,强化学习的训练是没有标签的,它是通过环境给出的奖惩来学习。
       (2) 深度学习的学习过程是静态的,强化学习的学习过程是动态的;这里静态与动态的区别在于是否会与环境进行交互,深度学习是给什么样本就学什么,而强化学习是要和环境进行交互,再通过环境给出的奖惩来学习。
       (3) 深度学习解决的更多是感知问题,强化学习解决的主要是决策问题;有监督学习更像是”五官”,而强化学习更像“大脑”。
    3. 机器学习 VS 深度学习 VS 强化学习:机器学习、深度学习、强化学习之间的关系如下:
       (1) 机器学习:一切通过优化方法挖掘数据中规律的学科,多用于数据挖掘、数据分析和预测等领域。
       (2) 深度学习:一切运用了神经网络作为参数结构进行优化的机器学习算法,广泛地应用于是计算机视觉和自然语言处理领域。
       (3) 强化学习:不仅能利用现有数据,还可以通过对环境的探索获得新数据,并利用新数据循环往复地更新迭代现有模型的机器学习算法;学习是为了更好地对环境进行探索,而探索是为了获取数据进行更好的学习;目前实际应用场景还比较窄,主要包括AI游戏 (Atari),推荐系统(阿里巴巴),机器人控制(如吴恩达的无人机)。
       (4) 深度强化学习:一切运用了神经网络作为参数结构进行优化的强化学习算法 (Google AlphaGo, Master)。
    4. 机器学习 VS 深度学习 VS 迁移学习:当前的机器学习、深度学习存在一些局限性,我们采用迁移学习的方法可以解决这些痛点。
       (1) 我们可以在这个数据集上训练一个模型 A,并期望它在同一个任务和域A中的未知数据上表现良好;但是,当我们没有足够的来自于我们关心的任务或域的标签数据时(新的标签数据很难获取、费时、昂贵),传统的监督学习方法会失灵——它往往无法得出一个可靠的模型。
       (2) 表达能力的限制:因为一个模型毕竟是一种现实的反映,等于是现实的镜像,它能够描述现实的能力越强就越准确,而机器学习和深度学习都是用变量来描述世界的,它们的变量数是有限的。
       (3) 模型复杂度高:随着模型复杂度的提高,其参数个数和所需的数据量也是惊人的。
      在NIPS 2016,吴恩达表示,“在继深度学习之后,迁移学习将引领下一波机器学习技术”
    5. 总体关系:以上讨论的算法和人工智能的关系如下图所示,可以看出,提及的算法都是属于人工智能的范畴,他们相互交叉却不完全重合:机器学习是人工智能的算法基石,而其它算法都是机器学习的一个分支。
      各种人工智能算法之间的关系
      深度学习大佬Yoshua Bengio在 Quora 上有一段话讲得特别好,这里引用一下:Science is NOT a battle, it is a collaboration. We all build on each other’s ideas. Science is an act of love, not war. Love for the beauty in the world that surrounds us and love to share and build something together. That makes science a highly satisfying activity, emotionally speaking! 这段话的大致意思是:科学不是战争而是合作,任何学科的发展从来都不是一条路走到黑,而是同行之间互相学习、互相借鉴、博采众长、相得益彰,站在巨人的肩膀上不断前行。机器学习的研究也是一样,开放包容才是正道!
      Yoshua Bengio

    微信公众号同步

      关注微信公众号“机器学习和人工智能”,干货多多~
      我们会定期推送Python编程,人工智能基础算法,学术界、工业界最新动态,让更多的人了解人工智能~
      欢迎扫描下方二维码关注哈~
    在这里插入图片描述

    展开全文
  • 人工智能学习路线

    2018-06-25 15:48:31
    阶段人工智能基础 - 高等数学必知必会本阶段主要...同时对于AI研究尤为重要,例如人工智能中的智能很大部分依托“概率论”实现的。、数据分析1)常数e2)导数 3)梯度 4)Taylor5)gini系数6)信息熵与...

    相关视频资料下载见:https://blog.csdn.net/qwxwaty/article/details/80800701

    阶段一、人工智能基础 - 高等数学必知必会

    本阶段主要从数据分析、概率论和线性代数及矩阵和凸优化这四大块讲解基础,旨在训练大家逻辑能力,分析能力。拥有良好的数学基础,有利于大家在后续课程的学习中更好的理解机器学习和深度学习的相关算法内容。同时对于AI研究尤为重要,例如人工智能中的智能很大一部分依托“概率论”实现的。

    一、数据分析

    1)常数e
    2)导数 
    3)梯度 
    4)Taylor

    5)gini系数
    6)信息熵与组合数
    7)梯度下降
    8)牛顿法

    二、概率论

    1)微积分与逼近论
    2)极限、微分、积分基本概念 
    3)利用逼近的思想理解微分,利用积分的方式理解概率
    4)概率论基础
    5)古典模型

    6)常见概率分布
    7)大数定理和中心极限定理 
    8)协方差(矩阵)和相关系数 
    9)最大似然估计和最大后验估计

    三、线性代数及矩阵

    1)线性空间及线性变换 
    2)矩阵的基本概念 
    3)状态转移矩阵 
    4)特征向量 
    5)矩阵的相关乘法

    6)矩阵的QR分解 
    7)对称矩阵、正交矩阵、正定矩阵 
    8)矩阵的SVD分解 
    9)矩阵的求导 
    10)矩阵映射/投影

    四、凸优化

    1)凸优化基本概念 
    2)凸集 
    3)凸函数

    4)凸优化问题标准形式 
    5)凸优化之Lagerange对偶化 
    6)凸优化之牛顿法、梯度下降法求解

    阶段二、人工智能提升 - Python高级应用

    随着AI时代的到来以及其日益蓬勃的发展,Python作为AI时代的头牌语言地位基本确定,机器学习是着实令人兴奋,但其复杂度及难度较大,通常会涉及组装工作流和管道、设置数据源及内部和云部署之间的分流而有了Python库后,可帮助加快数据管道,且Python库也在不断更新发布中,所以本阶段旨在为大家学习后续的机器学习减负。

    一、容器

    1)列表:list
    2)元组:tuple
    3)字典: dict
    4)数组: Array

    5)切片
    6)列表推导式
    7)浅拷贝和深拷贝

    二、函数

    1)lambda表达式
    2)递归函数及尾递归优化

    3)常用内置函数/高阶函数 
    4)项目案例:约瑟夫环问题

    三、常用库

    1)时间库
    2)并发库 
    3)科学计算库

    4)Matplotlib可视化绘图库 
    5)锁和线程
    6)多线程编程

    阶段三、人工智能实用 - 机器学习篇

    机器学习利用算法去分析数据、学习数据,随后对现实世界情况作出判断和预测。因此,与预先编写好、只能按照特定逻辑去执行指令的软件不同,机器实际上是在用大量数据和算法去“自我训练”,从而学会如何完成一项任务。
    所以本阶段主要从机器学习概述、数据清洗和特征选择、回归算法、决策树、随机森林和提升算法、SVM、聚类算、EM算法、贝叶斯算法、隐马尔科夫模型、LDA主题模型等方面讲解一些机器学习的相关算法以及这些算法的优化过程,这些算法也就是监督算法或者无监督算法。

    一、机器学习

    1)机器学习概述

    二、监督学习

    1)逻辑回归 
    2)softmax分类 
    3)条件随机场 
    4)支持向量机svm

    5)决策树 
    6)随机森林 
    7)GBDT 
    8)集成学习

    三、非监督学习

    1)高斯混合模型 
    2)聚类 
    3)PCA

    4)密度估计

    5)LSI 
    6)LDA 
    7)双聚类

    四、数据处理与模型调优

    1)特征提取
    2)数据预处理
    3)数据降维

    4)模型参数调优
    5)模型持久化
    6)模型可视化

    阶段四、人工智能实用 - 数据挖掘篇

    本阶段主要通过音乐文件分类和金融反欺诈模型训练等项目,帮助大家对于上阶段的机器学习做更深入的巩固,为后续深度学习及数据挖掘提供项目支撑。

    项目一:百度音乐系统文件分类

    音乐推荐系统就是利用音乐网站上的音乐信息,向用户提供音乐信息或者建议,帮助用户决定应该听什么歌曲。而个人化推荐则是基于音乐信息及用户的兴趣特征、听歌历史行为,向用户推荐用户可能会感兴趣的音乐或者歌手。推荐算法主要分为以下几种:基于内容的推荐、协同过滤推荐、基于关联规则推荐、基于效用推荐、基于知识推荐等;推荐系统常用于各个互联网行业中,比如音乐、电商、旅游、金融等。

    项目二:千万级P2P金融系统反欺诈模型训练

    目前比较火的互联网金融领域,实质是小额信贷,小额信贷风险管理,本质上是事前对风险的主动把控,尽可能预测和防范可能出现的风险。本项目应用GBDT、Randomforest等机器学习算法做信贷反欺诈模型,通过数据挖掘技术,机器学习模型对用户进行模型化综合度量,确定一个合理的风险范围,使风险和盈利达到一个平衡的状态。

    阶段五、人工智能前沿 - 深度学习篇

    深度学习是实现机器学习的技术,同时深度学习也带来了机器学习的许多实际应用,拓展了AI的使用领域,本阶段主要从TensorFlow、BP神经网络、深度学习概述、CNN卷积神经网络、递归神经网、自动编码机,序列到序列网络、生成对抗网络,孪生网络,小样本学习技术等方面讲解深度学习相关算法以,掌握深度学习前沿技术,并根据不同项目选择不同的技术解决方案。针对公司样本不足,采用小样本技术和深度学习技术结合,是项目落地的解决方案。

    1)TensorFlow基本应用 
    2)BP神经网络
    3)深度学习概述
    4)卷积神经网络(CNN) 
    5)图像分类(vgg,resnet)
    6)目标检测(rcnn,fast-rcnn,faster-rcnn,ssd)
    7)递归神经网络(RNN)
    8)lstm,bi-lstm,多层LSTM

    9)无监督学习之AutoEncoder自动编码器
    10)Seq2Seq
    11)Seq2Seq with Attension
    12)生成对抗网络
    13)irgan
    14)finetune及迁移学习
    15)孪生网络
    16)小样本学习

    阶段六、人工智能进阶 - 自然语言处理篇

    自然语言处理(NLP)是计算机科学领域与人工智能领域中的一个重要方向。它已成为人工智能的核心领域。自然语言处理解决的是“让机器可以理解自然语言”这一到目前为止都还只是人类独有的特权,被誉为人工智能皇冠上的明珠,被广泛应用。本阶段从NLP的字、词和句子全方位多角度的学习NLP,作为NLP的基础核心技术,对NLP为核心的项目,如聊天机器人,合理用药系统,写诗机器人和知识图谱等提供底层技术。通过学习NLP和深度学习技术,掌握NLP具有代表性的前沿技术。

    1)词(分词,词性标注)代码实战 
    2)词(深度学习之词向量,字向量)代码实战 
    3)词(深度学习之实体识别和关系抽取)代码实战 
    4)词(关键词提取,无用词过滤)代码实战

    5)句(句法分析,语义分析)代码实战
    6)句(自然语言理解,一阶逻辑)代码实战
    7)句(深度学习之文本相似度)代码实战

    阶段七、人工智能进阶 - 图像处理篇

    数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。广泛的应用于农牧业、林业、环境、军事、工业和医学等方面,是人工智能和深度学习的重要研究方向。深度学习作为当前机器学习领域最热门的技术之一,已经在图像处理领域获得了应用,并且展现出巨大的前景。本阶段学习了数字图像的基本数据结构和处理技术,到前沿的深度学习处理方法。掌握前沿的ResNet,SSD,Faster RCNN等深度学习模型,对图像分类,目标检测和模式识别等图像处理主要领域达到先进水平。实际工作中很多项目都可以转化为本课程的所学的知识去解决,如行人检测,人脸识别和数字识别。

    一、图像基础

    图像读,写,保存,画图(线,圆,多边形,添加文字)

    二、图像操作及算数运算

    图像像素读取,算数运算,ROI区域提取

    三、图像颜色空间运算

    图像颜色空间相互转化

    四、图像几何变换

    平移,旋转,仿射变换,透视变换等

    五、图像形态学

    腐蚀,膨胀,开/闭运算等

    六、图像轮廓

    长宽,面积,周长,外接圆,方向,平均颜色,层次轮廓等

    七、图像统计学

    图像直方图

    八、图像滤波

    高斯滤波,均值滤波,双边滤波,拉普拉斯滤波等

    阶段八、人工智能终极实战 - 项目应用

    本阶段重点以项目为导向,通过公安系统人脸识别、图像识别以及图像检索、今日头条CTR广告点击量预估、序列分析系统、聊天机器人等多个项目的讲解,结合实际来进行AI的综合运用。

    项目一:公安系统人脸识别、图像识别

    使用深度学习框架从零开始完成人脸检测的核心技术图像类别识别的操作,从数据预处理开始一步步构建网络模型并展开分析与评估,方便大家快速动手进行项目实践!识别上千种人靓,返回层次化结构的每个人的标签。

    项目二:公安系统图像检索

    本项目基于卷积神经网在训练过程中学习出对应的『二值检索向量』,对全部图先做了一个分桶操作,每次检索的时候只取本桶和临近桶的图片作比对,而不是在全域做比对,使用这样的方式提高检索速度,使用Tensorflow框架建立基于ImageNet的卷积神经网络,并完成模型训练以及验证。

    项目三:今日头条CTR广告点击量预估

    点击率预估是广告技术的核心算法之一,它是很多广告算法工程师喜爱的战场。广告的价值就在于宣传效果,点击率是其中最直接的考核方式之一,点击率越大,证明广告的潜在客户越多,价值就越大,因此才会出现了刷点击率的工具和技术。通过对于点击量的评估,完成对于潜在用户的价值挖掘。

    项目四:序列分析系统

    时间序列分析(Time Series Analysis)是一种动态数据处理的统计方法,主要基于随机过程理论和数理统计方法,研究随机数据序列所遵从的统计规律以便用于解决实际问题。主要包括自相关分析等一般的统计分析方法,构建模型从而进行业务推断。经典的统计分析是假定数据序列具有独立性,而时间序列分析则侧重于研究数据样本序列之间的依赖关系。时间序列预测一般反应了三种实际变化规律:趋势变化、周期性变化和随机性变化。时间序列预测常应用于国民经济宏观控制、企业经营管理、市场潜力量预测、天气预报、水文预报等方面,是应用于金融行业的一种核心算法之一。

    项目五:京东聊天机器人/智能客服

    聊天机器人/智能客服是一个用来模拟人类对话或者聊天的一个系统,利用深度学习和机器学习等NLP相关算法构建出问题和答案之间的匹配模型,然后可以将其应用到客服等需要在线服务的行业领域中,聊天机器人可以降低公司客服成本,还能够提高客户的体验友好性。 在一个完整的聊天机器人实现过程中,主要包含了一些核心技术,包括但不限于:爬虫技术、机器学习算法、深度学习算法、NLP领域相关算法。通过实现一个聊天机器人可以帮助我们队AI整体知识的一个掌握。

    项目六:机器人写诗歌

    机器人写诗歌/小说是一种基于NLP自然语言相关技术的一种应用,在实现过程中可以基于机器学习相关算法或者深度学习相关算法来进行小说/诗歌构建过程。人工智能的一个终极目标就是让机器人能够像人类一样理解文字,并运用文字进行创作,而这个目标大致上主要分为两个部分,也就是自然语言理解和自然语言生成,其中现阶段的主要自然语言生成的运用,自然语言生成主要有两种不同的方式,分别为基于规则和基于统计,基于规则是指首先了解词性及语法等规则,再依据这样的规则写出文章;而基于统计的本质是根据先前的字句和统计的结果,进而判断下一个子的生成,例如马尔科夫模型就是一种常用的基于统计的方法。

    项目七:机器翻译系统

    机器翻译又称自动翻译,是指利用计算机将一种自然语言转换为另外一种自然语言的过程,机器翻译是人工智能的终极目标之一,具有很高的研究价值,同时机器翻译也具有比较重要的实用价值,机器翻译技术在促进政治、经济、文化交流等方面起到了越来越重要的作用;机器翻译主要分为以下三个过程:原文分析、原文译文转换和译文生成;机器翻译的方式有很多种,但是随着深度学习研究取得比较大的进展,基于人工网络的机器翻译也逐渐兴起,特别是基于长短时记忆(LSTM)的循环神经网络(RDD)的应用,为机器翻译添了一把火。

    项目八:垃圾邮件过滤系统

    邮件主要可以分为有效邮件和垃圾邮件两大类,有效邮件指的邮件接收者有意义的邮件,而垃圾邮件转指那些没有任何意义的邮件,其内容主要包含赚钱信息、成人广告、商业或者个人网站广告、电子杂志等,其中垃圾邮件又可以发为良性垃圾邮件和恶性垃圾邮件,良性垃圾邮件指的就是对收件人影响不大的信息邮件,而恶性垃圾邮件指具有破坏性的电子邮件,比如包含病毒、木马等恶意程序的邮件。垃圾邮件过滤主要使用使用机器学习、深度学习等相关算法,比如贝叶斯算法、CNN等,识别出所接收到的邮件中那些是垃圾邮件。

    项目九:手工数字识别

    人认知世界的开始就是从认识数字开始的,深度学习也一样,数字识别是深度学习的一个很好的切入口,是一个非常经典的原型问题,通过对手写数字识别功能的实现,可以帮助我们后续对神经网络的理解和应用。选取手写数字识别的主要原因是手写数字具有一定的挑战性,要求对编程能力及神经网络思维能力有一定的要求,但同时手写数字问题的复杂度不高,不需要大量的运算,而且手写数字也可以作为其它技术的一个基础,所以以手写数字识别为基础,贯穿始终,从而理解深度学习相关的应用知识。

    项目十:癌症筛选检测

    技术可以改变癌症患者的命运吗,对于患有乳腺癌患者来说,复发还是痊愈影响这患者的生命,那么怎么来预测患者的患病结果呢,机器学习算法可以帮助我们解决这一难题,本项目应用机器学习logistic回归模型,来预测乳腺癌患者复发还是正常,有效的预测出医学难题。

    项目十一:葡萄酒质量检测系统

    随着信息科技的快速发展,计算机中的经典算法在葡萄酒产业中得到了广泛的研究与应用。其中机器学习算法的特点是运用了人工智能技术,在大量的样本集训练和学习后可以自动地找出运算所需要的参数和模型。

    项目十二:淘宝网购物篮分析推荐算法

    购物篮分析(Market Basket Analysis)即非常有名的啤酒尿布故事的一个反应,是通过对购物篮中的商品信息进行分析研究,得出顾客的购买行为,主要目的是找出什么样的物品会经常出现在一起,也就是那些商品之间是有很大的关联性的。通过购物篮分析挖掘出来的信息可以用于指导交叉销售、追加销售、商品促销、顾客忠诚度管理、库存管理和折扣计划等业务;购物篮分析的最常用应用场景是电商行业,但除此之外,该算法还被应用于信用卡商城、电信与金融服务业、保险业以及医疗行业等。

    项目十三:手工实现梯度下降回归算法

    梯度下降法(英语:Gradient descent)是一个一阶最优化算法,通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法。

    项目十四:基于TensorFlow实现回归算法

    回归算法是业界比较常用的一种机器学习算法,通过应用于各种不同的业务场景,是一种成熟而稳定的算法种类;TensorFlow是一种常用于深度学习相关领域的算法工具;随着深度学习热度的高涨,TensorFlow的使用也会越来越多,从而使用TensorFlow来实现一个不存在的算法,会加深对TensorFlow的理解和使用;基于TensorFlow的回归算法的实现有助于后续的TensorFlow框架的理解和应用,并可以促进深度学习相关知识的掌握。

    项目十五:合理用药系统

    合理用药系统,是根据临床合理用药专业工作的基本特点和要求,运用NLP和深度学习技术对药品说明书,临床路径等医学知识进行标准化,结构化处理。如自动提取药品说明书文本里面的关键信息如:药品相互作用,禁忌,用法用量,适用人群等,实现医嘱自动审查,及时发现不合理用药问题,帮助医生、药师等临床专业人员在用药过程中及时有效地掌握和利用医药知识,预防药物不良事件的发生、促进临床合理用药工作。

    项目十六:行人检测

    行人检测是利用图像处理技术和深度学习技术对图像或者视频序列中是否存在行人并给予精确定位。学习完行人检测技术后,对类似的工业缺陷检测,外观检测和医疗影像检测等目标检测范畴类的项目可以一通百通。该技术可与行人跟踪,行人重识别等技术结合,应用于人工智能系统、车辆辅助驾驶系统、智能机器人、智能视频监控、人体行为分析、智能交通等领域。由于行人兼具刚性和柔性物体的特性 ,外观易受穿着、尺度、遮挡、姿态和视角等影响,使得行人检测成为计算机视觉领域中一个既具有研究价值同时又极具挑战性的热门课题。

    阶段九、人工智能实战 - 企业项目实战

    课程一、基于Python数据分析与机器学习案例实战教程

    课程风格通俗易懂,基于真实数据集案例实战。主体课程分成三个大模块(1)python数据分析,(2)机器学习经典算法原理详解,(3)十大经典案例实战。通过python数据科学库numpy,pandas,matplot结合机器学习库scikit-learn完成一些列的机器学习案例。算法课程注重于原理推导与流程解释,结合实例通俗讲解复杂的机器学习算法,并以实战为主,所有课时都结合代码演示。算法与项目相结合,选择经典kaggle项目,从数据预处理开始一步步代码实战带大家快速入门机器学习。旨在帮助同学们快速上手如何使用python库来完整机器学习案例。选择经典案例基于真实数据集,从数据预处理开始到建立机器学习模型以及效果评估,完整的讲解如何使用python及其常用库进行数据的分析和模型的建立。对于每一个面对的挑战,分析解决问题思路以及如何构造合适的模型并且给出合适评估方法。在每一个案例中,同学们可以快速掌握如何使用pandas进行数据的预处理和分析,使用matplotlib进行可视化的展示以及基于scikit-learn库的机器学习模型的建立。

    1)Python数据分析与机器学习实战课程简介
    2)Python快速入门
    3)Python科学计算库Numpy
    4)Python数据分析处理库Pandas
    5)Python可视化库Matplotlib
    6)回归算法
    7)模型评估
    8)K近邻算法
    9)决策树与随机森林算法
    10)支持向量机 
    11)贝叶斯算法
    12)神经网络
    13)Adaboost算法

    14)SVD与推荐
    15)聚类算法
    16)案例实战:使用Python库分析处理Kobe Bryan职业生涯数据
    17)案例实战:信用卡欺诈行为检测
    18)案例实战:泰坦尼克号获救预测
    19)案例实战:鸢尾花数据集分析
    20)案例实战:级联结构的机器学习模型
    21)案例实战:员工离职预测
    22)案例实战:使用神经网络进行手写字体识别
    23)案例实战:主成分分析
    24)案例实战:基于NLP的股价预测 
    25)案例实战:借贷公司数据分析

    课程二、人工智能与深度学习实战

    课程风格通俗易懂,必备原理,形象解读,项目实战缺一不可!主体课程分成四个大模块(1)神经网络必备基础知识点,(2)深度学习模型,(3)深度学习框架Caffe与Tensorflow,(4)深度学习项目实战。 课程首先概述讲解深度学习应用与挑战,由计算机视觉中图像分类任务开始讲解深度学习的常规套路。对于复杂的神经网络,将其展开成多个小模块进行逐一攻破,再挑战整体神经网络架构。对于深度学习模型形象解读卷积神经网络原理,详解其中涉及的每一个参数,对卷积网络架构展开分析与评估,对于现阶段火爆的对抗生成网络以及强化学习给出形象解读,并配合项目实战实际演示效果。 基于框架实战,选择两款深度学习最火框架,Caffe与Tensorflow,首先讲解其基本使用方法,并结合案例演示如何应用框架构造神经网络模型并完成案例任务。 选择经典深度学习项目实战,使用深度学习框架从零开始完成人脸检测,验证码识别,人脸关键点定位,垃圾邮件分类,图像风格转换,AI自己玩游戏等。对于每一个项目实战,从数据预处理开始一步步构建网络模型并展开分析与评估。 课程提供所涉及的所有数据,代码以及PPT,方便大家快速动手进行项目实践!

    1)深度学习概述与挑战
    2)图像分类基本原理门
    3)深度学习必备基础知识点
    4)神经网络反向传播原理
    5)神经网络整体架构
    6)神经网络案例实战图像分类任务
    7)卷积神经网络基本原理
    8)卷积参数详解
    9)卷积神经网络案例实战
    10)经典网络架构分析 
    11)分类与回归任务
    12)三代物体检测算法分析
    13)数据增强策略
    14)TransferLearning
    15)网络架构设计
    16) 深度学习框架Caffe网络结构配置
    17)Caffe
    18)深度学习项目实战人脸检测

    19)人脸正负样本数据源制作
    20)人脸检测网络架构配置习模型
    21)人脸检测代码实战
    22)人脸关键点定位项目实战
    23)人脸关键点定位网络模型
    24)人脸关键点定位构建级联网络
    25)人脸关键点定位测试效果与分析 
    26)Tensorflow框架实战
    27)Tensorflow构建回归模型
    28)Tensorflow构建神经网络模型
    29)Tensorflow深度学习模型
    30)Tensorflow打造RNN网络模型
    31)Tensorflow项目实战验证识别
    32)项目实战图像风格转换
    33)QLearning算法原理
    34)DQN网络架构
    35)项目实战DQN网络让AI自己玩游戏
    36)项目实战对抗生成网络等

    项目一、AI大数据互联网电影智能推荐(第一季)

    随着科技的发展,现在视频的来源和类型多样性,互联网视频内容充斥着整个网络,如果仅仅是通过翻页的方法来寻找自己想看的视频必然会感到疲劳,现在急需一种能智能推荐的工具,推荐系统通过分析用户对视频的评分分析,对用户的兴趣进行建模,从而预测用户的兴趣并给用户进行推荐。
    Python是一种面向对象的解释型计算机程序设计语言,Python具有丰富和强大的库。它常被昵称为胶水语言,而大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,企业面临海量数据的到来,大多选择把数据从本地迁移至云端,云端将成为最大的非结构化数据存储场所。本项目主要以客户咨询为载体,分析客户的群体,分布,旨在挖掘客户的内在需求,帮助企业实现更有价值的营销。

    一、教务管理系统业务介绍

    1)教务管理系统框架讲解

    2)系统业务逻辑介绍

    二、大数据需求分析

    1)明确数据需求 
    2)大数据分析过程

    3)分析难点和解决方案 
    4)大数据相关技术选型

    三、构建分布式大数据框架

    1)Hadoop分布式集群配置 
    2)ZooKeeper高可用 
    3)SQOOP数据转移

    4)ETL数据清洗 
    5)HIVE数据分析 
    6)HBase数据存储

    四、基于教务管理系统大数据分析

    1)业务数据分析指标设定
    2)操作MapReduce分而治之

    3)使用Hive进行数据整合抽离
    4)使用HBase存储非结构话数据

    五、大数据可视化

    1)可视化技术选型
    2)Echarts代码展示炫酷视图

    3)使用Tableau进行数据可视化展示

    项目二、电商大数据情感分析与AI推断实战项目(第一季)

    本项目从开发的角度以大数据、PHP技术栈为基础,使用真实商用表结构和脱敏数据,分三步构建商用系统、真实大数据环境、进行推断分析以及呈现结果。 项目课程的完整性、商业性,可以使学者尽可能完整地体会真实的商业需求和业务逻辑。完整的项目过程,使PHP技术栈的同学得以窥见和学到一个完整商业平台项目的搭建方法;真实大数据环境的搭建,使呈现、建立大数据的工具应用技术概念储备;基于大数据平台的分析需求的实现、呈现,将完整的一次大数据技术栈到分析结果的中线,平铺直述,为想要学习大数据并有开发基础的同学点亮新的能力。

    一、实践项目研发

    1)开发环境的安装配置
    2)表与数据
    3)LARAVEL的快速开发实践

    4)批量创建模型
    5)万能控制器与表配置
    6)统一视图的创建

    二、数据分析需求设立

    1)定义数据需求 
    2)分析计算过程

    3)分析难点和解决方案 
    4)大数据技术选型

    三、大数据平台搭建

    1)分布式环境的模拟建立 
    2)网络环境的调通 
    3)身份验证与集群控制

    4)Hadoop环境搭建和要点说明 
    5)MapReduce与Yarn的搭建和说明

    四、大数据分析脚本编写

    1)MapReduce脚本编写
    2)拆解数据需求
    3)Map逻辑详写

    4)Reduce逻辑详写
    5)结果整理与输出

    五、结果可视化

    1)可视化需求和技术选型
    2)展示页面的快速铺设

    3)可视化JS上手
    4)使用可视化JS展示结果

    项目三、AI法律咨询大数据分析与服务智能推荐实战项目(第一季)

    本项目结合目前流行的大数据框架,在原有成熟业务的前提下,进行大数据分析处理,真实还原企业应用,让学员身临其境的感受企业大数据开发的整个流程。
    项目的业务系统底层主要采用JAVA架构,大数据分析主要采用Hadoop框架,其中包括Kettle实现ETL、SQOOP、Hive、Kibana、HBASE、Spark以及人工智能算法等框架技术;采用真实大数据集群环境的搭建,让学员切身感受企业项目的从0到1的过程。

    一、系统业务介绍

    1)底层业务实现框架讲解

    2)功能模块讲解

    二、系统架构设计

    1)总体架构分析 
    2)数据流向

    3)各技术选型承载作用 
    4)部署方案

    三、详尽实现

    1)原始数据处理 
    2)ETL数据导入

    3)MR数据计算 
    4)Hive数据分析

    四、数据可视化

    1)采用Highcharts插件展示客户偏好曲线图

    2)使用Tableau进行数据分析可视化展示

    五、项目优化

    1)ZooKeeper实现HA

    2)集群监控的整体联调

    项目四、AI大数据基站定位智能推荐商圈分析项目实战(第一季)

    随着当今个人手机终端的普及、出行人群中手机拥有率和使用率已达到相当高的比例,根据手机信号在真实地理空间的覆盖情况,将手机用户时间序列的手机定位数据,映射至现实地理位置空间位置,即可完整、客观地还原出手机用户的现实活动轨迹,从而挖掘出人口空间分布与活动联系特征信息。
    商圈是现代市场中企业市场活动的空间,同时也是商品和服务享用者的区域。商圈划分为目的之一是研究潜在顾客分布,以制定适宜的商业对策。
    本项目以实战为基础结合大数据技术Hadoop、.Net技术全栈为基础,采用真实商业数据,分不同环节构建商用系统、真实大数据环境、进行推断分析及呈现数据。

    一、分析系统业务逻辑讲解

    1)大数据基站定位智能推荐商圈分析系统介绍

    2)数据前期清洗和数据分析目标指标的设定等

    二、大数据导入与存储

    1)关系型数据库基础知识 
    2)hive的基本语法
    3)hive的架构及设计原理 
    4)hive安装部署与案例等

    5)Sqoop安装及使用 
    6)Sqoop与关系型数据库进行交互等
    7)动手实践

    三、Hbase理论及实战

    1)Hbase简介、安装及配置 
    2)Hbase的数据存储与数据模型
    3)Hbase Shell

    4)Hbase 访问接口
    5)Hbase数据备份与恢复方法等
    6)动手实践(数据转储与备份)

    四、基站数据分析与统计推断

    1)背景与分析推断目标 
    2)分析方法与过程推断

    3)动手实践(分析既定指标数据)

    五、数据分析与统计推断结果的展示(大数据可视化)

    1)使用Tableau展示数据分析结果

    2)使用HighCharts、ECharts展示数据分析结果

    阶段十、阿里云认证

    课程一、云计算 - 网站建设:部署与发布

    阿里云网站建设认证课程教你如何掌握将一个本地已经设计好的静态网站发布到Internet公共互联网,绑定域名,完成工信部的ICP备案。

    课程二、云计算 - 网站建设:简单动态网站搭建

    阿里云简单动态网站搭建课程教你掌握如何快速搭建一个WordPress动态网站,并会对网站进行个性化定制,以满足不同的场景需求。

    课程三、云计算 - 云服务器管理维护

    阿里云服务器运维管理课程教你掌握快速开通一台云服务器,并通过管理控制台方便地进行服务器的管理、服务器配置的变更和升级、数据的备份,并保证其可以正常运转并按业务需求随时进行配置的变更。

    课程四、云计算 - 云数据库管理与数据迁移

    阿里云云数据库管理与数据迁移认证课程掌握云数据库的概念,如何在云端创建数据库、将自建数据库迁移至云数据库MySQL版、数据导入导出,以及云数据库运维的常用操作。

    课程五、云计算 - 云存储:对象存储管理与安全

    阿里云云储存认证课程教你掌握安全、高可靠的云存储的使用,以及在云端存储下载文件,处理图片,以及如何保护数据的安全。

    课程六、云计算 - 超大流量网站的负载均衡

    掌握如何为网站实现负载均衡,以轻松应对超大流量和高负载。

    课程七、大数据 - MOOC网站日志分析

    本课程可以帮助学员掌握如何收集用户访问日志,如何对访问日志进行分析,如何利用大数据计算服务对数据进行处理,如何以图表化的形式展示分析后的数据。

    课程八、大数据 - 搭建企业级数据分析平台

    模拟电商场景,搭建企业级的数据分析平台,用来分析商品数据、销售数据以及用户行为等。

    课程九、大数据 - 基于LBS的热点店铺搜索

    本课程可以帮助学员掌握如何在分布式计算框架下开发一个类似于手机地图查找周边热点(POI)的功能,掌握GeoHash编码原理,以及在地理位置中的应用,并能将其应用在其他基于LBS的定位场景中。
    课程中完整的演示了整个开发步骤,学员在学完此课程之后,掌握其原理,可以在各种分布式计算框架下完成此功能的开发,比如MapReduce、Spark。

    课程十、大数据 - 基于机器学习PAI实现精细化营销

    本课程通过一个简单案例了解、掌握企业营销中常见的、也是必需的精准营销数据处理过程,了解机器学习PAI的具体应用,指导学员掌握大数据时代营销的利器---通过机器学习实现营销。

    课程十一、大数据 - 基于机器学习的客户流失预警分析

    本课程讲解了客户流失的分析方法、流程,同时详细介绍了机器学习中常用的分类算法、集成学习模型等通用技能,并使用阿里云机器学习PAI实现流失预警分析。可以帮助企业快速、准确识别流失客户,辅助制定策略进行客户关怀,达到挽留客户的目的。

    课程十二、大数据 - 使用DataV制作实时销售数据可视化大屏

    帮助非专业工程师通过图形化的界面轻松搭建专业水准的实时可视化数据大屏,以满足业务展示、业务监控、风险预警等多种业务的展示需求。

    课程十三、大数据 - 使用MaxCompute进行数据质量核查

    通过本案例,学员可了解影响数据质量的因素,出现数据质量问题的类型,掌握通过MaxCompute(DateIDE)设计数据质量监控的方法,最终独立解决常见的数据质量监控需求。

    课程十四、大数据 - 使用Quick BI制作图形化报表

    阿里云Quick BI制作图形化报表认证课程教你掌握将电商运营过程中的数据进行图表化展现,掌握通过Quick BI将数据制作成各种图形化报表的方法,同时还将掌握搭建企业级报表门户的方法。

    课程十五、大数据 - 使用时间序列分解模型预测商品销量

    使用时间序列分解模型预测商品销量教你掌握商品销量预测方法、时间序列分解以及熟悉相关产品的操作演示和项目介绍。

    课程十六、云安全 - 云平台使用安全

    阿里云云平台使用安全认证课程教你了解由传统IT到云计算架构的变迁过程、当前信息安全的现状和形势,以及在云计算时代不同系统架构中应该从哪些方面利用云平台的优势使用安全风险快速降低90%。

    课程十七、云安全 - 云上服务器安全

    阿里云云上服务器安全认证课程教你了解在互联网上提供计算功能的服务器主要面临哪些安全风险,并针对这些风险提供了切实可行的、免费的防护方案。

    课程十八、云安全 - 云上网络安全

    了解网络安全的原理和解决办法,以及应对DDoS攻击的方法和防护措施,确保云上网络的安全。

    课程十九、云安全 - 云上数据安全

    了解云上数据的安全隐患,掌握数据备份、数据加密、数据传输安全的解决方法。

    课程二十、云安全 - 云上应用安全

    了解常见的应用安全风险,SQL注入原理及防护,网站防篡改的解决方案等,确保云上应用的安全。

    课程二十一、云安全 - 云上安全管理

    了解云上的安全监控方法,学会使用监控大屏来监控安全风险,并能够自定义报警规则,确保随时掌握云上应用的安全情况。


    展开全文
  • 人工智能就是机器学习和大数据; 机器学习是什么:就是算法模型; 算法模型是什么: 俗地说,模型就是机器学习采用的算法。“模型文件”一般说的是这个算法用到的各种输入、输出数据的值。 因为机器学习往往需要...

    人工智能就是机器学习和大数据;

    机器学习是什么:就是算法模型;

    算法模型是什么:

    俗地说,模型就是机器学习采用的算法。“模型文件”一般说的是这个算法用到的各种输入、输出数据的值。
    因为机器学习往往需要大量的运算,所以有必要将中间变量也存入文件中,以便可以多次地运算。
    机器学习是一类算法的通称,具体到某个算法,那模型的差异就很大了,就算某一类算法(比如神经元网络),它的不同形态(CNN、RNN、DNN、LSTM)构成的模型也有很大的差异。

    《统计学习方法》上来说,一个机器学习的三要素为模型、策略、算法,模型就是我们简单的理解,策略主要是是损失函数和正则化项,算法是指优化策略的算法

    如果你数学很好,可以这么理解。模型就是一个函数y = f(x),x是数据的各个特征,y是类别标签,模型就是把特征映射到类别的一个函数。
    当然,这只是一个简单的模型,如线性模型的函数为y = ax+b,这里面只有一个特征x,多个类别y。
    大多数模型的原理都是这简单的模型建立起来的;

    模型文件就是写好的算法下次可以不断地复用,如同jar包 python中的模块差不多;

    模型就是通过当前数据集得到一个复杂的多维函数,可以理解为 y = w1.x1+w2.x2+...+b 只是这个函数极为复杂,他的参数是要随之改变,而y就是我们的目标值,这个整体我们可以理解为一个策略或者一个函数,我们要做的就是优化w和b,使其每次y都跟真实的y无限接近。

    运用机器学习算法进行研究,其实就是寻找目标函数的过程。通过构建机器学习模型(形成函数集),用训练数据做驱动,寻找与训练数据匹配,并且在测试数据中表现优异的函数。所以构建机器学习模型就显得十分的重要了。以线性回归为例子,大家可以看一下下面的图。 
     取自李宏毅老师的课程ppt
    在寻找目标函数时,假如函数集范围太小,正如图左所示只是一次式项,那么很有可能目标函数不在函数集里面,也就说bias(偏差)比较大,远离了目标函数(也就是图中的靶心),这是我们经常说的欠拟合。而如果我们尽量把函数集设大一点(函数集尽可能的大就有希望能够包含目标函数),这样bias会变小,但是也带来了坏处,模型对噪音数据会特别敏感,一不小心就会出现过拟合的情况。因为我们本身并不知道目标函数到底长什么样,所以我们就要不断测试修改模型,希望能达到好的效果。下面是一点tips,大家可以参考一下。 
    欠拟合:1 增加特征 2 调整为更加复杂的模型 
    过拟合:1 增加数据量 2 正则化

    上面说的是传统机器学习中模型的设计,那么在深度学习中,我们又该如何设计?首先大家要理解一点,为什么要“deep”?下面大家继续看图。

     同样是取自李宏毅老师的课堂PPT
    大家仔细看图就会发现,1.随着隐藏层的增加,错误率在减低。2. 7X2K 对应的错误率是17.1% ,而与之参数量相当的1X16K 对应的错误率却是22.1% 。 理论上说,只要一层隐藏层里面神经元够多,那么这个模型足以接近任何函数。也就是说,我们没必要把神经网络弄deep,但是大家看图就会发现,deep 要比 一层效果好。其实这就包含了拆分与共享的思想,看图。

     统一处理 单层隐藏层

    拆分 共享 多层隐藏层
    原来我也觉得深度学习应该会需要大量的数据,事实上并不是,我使用mnist数做过实验,在数据量较少时,多层神经网络的效果要比单层神经网络要好,意不意外?惊不惊喜?所以当你数据较少又想用深度学习来处理数据时,不妨多搭几层。

    最后还要谈一下 no free lunch理论,no free lunch理论指的是没有最好的算法,只有最适合的算法。深度学习的模型有许多种,大家在选择是一定要根据自己问题来选择模型,比如说CNN对处理图像信息就非常的有用,而RNN对处理序列非常在行。所以大家还是要对每种算法都要了解清楚,选择合适自己的算法。
    --------------------- 
    作者:ml_lsc 
    来源:CSDN 
    原文:https://blog.csdn.net/u011421866/article/details/73292141 
    版权声明:本文为博主原创文章,转载请附上博文链接!

     

    一、机器学习的发展背景:人工智能

    人工智能(Artificial Intelligence,缩写为AI)是对人的意识、思维过程进行模拟的一门新学科。如今,人工智能从虚无缥缈的科学幻想变成了现实。计算机科学家们在人工智能的技术核心--机器学习(Machine Learning)和深度学习(Deep Learning)领域上已经取得重大的突破,机器被赋予强大的认知和预测能力。回顾历史,在1997年,IBM“深蓝”战胜国际象棋冠军卡斯帕罗夫;在2011年,具备机器学习能力的IBM Waston参加综艺节目赢得100万美金;在2016年,利用深度学习训练的Aplphago成功击败人类世界冠军。种种事件表明机器也可以像人类一样思考,甚至比人类做得更好。

     

    目前,人工智能在金融、医疗、制造等行业得到了广泛应用,全球投资从2012年的5.89亿美元猛增至2016年50多亿美元。麦肯锡预计,到2025年人工智能应用市场的总值将达到1270亿美元。与此同时,麦肯锡通过对2016年人工智能市场的投资进行深入分析,发现有将近60%的资金并购围绕机器学习来布局。其中,基于软件的机器学习初创公司比基于机器的机器人公司更受投资欢迎。从2013 年到2016 年,这一领域的投资复合年均增长率达到约80%。由此可见,机器学习已经成为目前人工智能技术发展的主要方向。

     

    二、机器学习与人工智能、深度学习的关系

    在介绍机器学习之前,先需要对人工智能、机器学习和深度学习三者之间的关系进行梳理。目前业界最常见的划分是:

     

    人工智能是使用与传统计算机系统完全不同的工作模式,它可以依据通用的学习策略,读取海量的“大数据”,并从中发现规律、联系和洞见,因此人工智能能够根据新数据自动调整,而无需重设程序。

     

    机器学习是人工智能研究的核心技术,在大数据的支撑下,通过各种算法让机器对数据进行深层次的统计分析以进行“自学”;利用机器学习,人工智能系统获得了归纳推理和决策能力;而深度学习更将这一能力推向了更高的层次。

     

    深度学习则是机器学习算法的一种,隶属于人工神经网络体系,现在很多应用领域中性能最佳的机器学习都是基于模仿人类大脑结构的神经网络设计而来的,这些计算机系统能够完全自主地学习、发现并应用规则。相比较其他方法,在解决更复杂的问题上表现更优异,深度学习是可以帮助机器实现“独立思考”的一种方式。

     

    总而言之,人工智能是社会发展的重要推动力,而机器学习,尤其是深度学习技术就是人工智能发展的核心,它们三者之间是包含与被包含的关系。如图1所示。

     

    图1 人工智能、机器学习、深度学习之间的关系

     

    三、机器学习:实现人工智能的高效方法

    从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法。但从实践的意义上来说,机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法。国外有些学者对机器学习进行了定义大同小异,有学者认为,机器学习是对能通过经验自动改进的计算机算法的研究;也有学者认为,机器学习是指利用数据或以往的经验,以此优化计算机程序的性能标准。由此可知,机器学习是通过经验或数据来改进算法的研究,通过算法让机器从大量历史数据中学习规律,得到某种模式并利用此模型预测未来,机器在学习的过程中,处理的数据越多,预测结果就越精准。

     

    机器学习在人工智能的研究中具有十分重要的地位。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。从20世纪50年代人们就开始了对机器学习的研究,从最初的基于神经元模型以及函数逼近论的方法研究,到以符号演算为基础的规则学习和决策树学习的产生,以及之后的认知心理学中归纳、解释、类比等概念的引入,至最新的计算学习理论和统计学习的兴起,机器学习一直都在相关学科的实践应用中起着主导作用。现在已取得了不少成就,并分化出许多研究方向,主要有符号学习、连接学习和统计学习等。

     

    (一)机器学习的发展历程

    机器学习发展过程大体可分为以下四个阶段:

     

    1.50年代中叶到60年代中叶

    在这个时期,所研究的是“没有知识”的学习,即“无知”学习;其研究目标是各类自组织系统和自适应系统;其主要研究方法是不断修改系统的控制参数以改进系统的执行能力,不涉及与具体任务有关的知识。指导本阶段研究的理论基础是早在40年代就开始研究的神经网络模型。随着电子计算机的产生和发展,机器学习的实现才成为可能。这个阶段的研究导致了模式识别这门新科学的诞生,同时形成了机器学习的二种重要方法,即判别函数法和进化学习。塞缪尔的下棋程序就是使用判别函数法的典型例子。不过,这种脱离知识的感知型学习系统具有很大的局限性。无论是神经模型、进化学习或是判别函数法,所取得的学习结果都很有限,远不能满足人们对机器学习系统的期望。在这个时期,我国研制了数字识别学习机。

     

    2.60年代中叶至70年代中叶

    本阶段的研究目标是模拟人类的概念学习过程,并采用逻辑结构或图结构作为机器内部描述。机器能够采用符号来描述概念(符号概念获取),并提出关于学习概念的各种假设。本阶段的代表性工作有温斯顿(Winston)的结构学习系统和海斯·罗思(Hayes Roth)等的基于逻辑的归纳学习系统。虽然这类学习系统取得较大的成功,但只能学习单一概念,而且未能投入实际应用。此外,神经网络学习机因理论缺陷未能达到预期效果而转入低潮。因此,使那些对机器学习的进展抱过大希望的人们感到失望。他们称这个时期为“黑暗时期”。

     

     

    3.70年代中叶至80年代中叶

    在这个时期,人们从学习单个概念扩展到学习多个概念,探索不同的学习策略和各种学习方法。机器的学习过程一般都建立在大规模的知识库上,实现知识强化学习。尤其令人鼓舞的是,本阶段已开始把学习系统与各种应用结合起来,并取得很大的成功,促进机器学习的发展。在出现第一个专家学习系统之后,示例归约学习系统成为研究主流,自动知识获取成为机器学习的应用研究目标。1980年,在美国的卡内基梅隆大学(CMU)召开了第一届机器学习国际研讨会,标志着机器学习研究已在全世界兴起。此后,机器归纳学习进入应用。1986年,国际杂志《机器学习》(Machine Learning)创刊,迎来了机器学习蓬勃发展的新时期。70年代末,中国科学院自动化研究所进行质谱分析和模式文法推断研究,表明我国的机器学习研究得到恢复。1980年西蒙来华传播机器学习的火种后,我国的机器学习研究出现了新局面。

     

    4.机器学习最新阶段始于1986年

    一方面,由于神经网络研究的重新兴起,对连接机制学习方法的研究方兴未艾,机器学习的研究已经在全世界范围内出现新的高潮,机器学习的基本理论和综合系统的研究得到加强和发展。另一方面,对实验研究和应用研究得到前所未有的重视,机器学习有了更强的研究手段和环境。从而出现了符号学习、神经网络学习、进化学习和基于行为主义(actionism)的强化学习等百家争鸣的局面。

     

    图2  机器学习的发展历程

     

    (二)机器学习的结构模型

    机器学习的本质就是算法。算法是用于解决问题的一系列指令。程序员开发的用于指导计算机进行新任务的算法是我们今天看到的先进数字世界的基础。计算机算法根据某些指令和规则,将大量数据组织到信息和服务中。机器学习向计算机发出指令,允许计算机从数据中学习,而不需要程序员做出新的分步指令。

     

    机器学习的基本过程是给学习算法提供训练数据。然后,学习算法基于数据的推论生成一组新的规则。这本质上就是生成一种新的算法,称之为机器学习模型。通过使用不同的训练数据,相同的学习算法可以生成不同的模型。从数据中推理出新的指令是机器学习的核心优势。它还突出了数据的关键作用:用于训练算法的可用数据越多,算法学习到的就越多。事实上,AI 的许多最新进展并不是由于学习算法的激进创新,而是现在积累了大量的可用数据。

     

    图3  机器学习的结构模型

     

     

    (三)机器学习的工作方式

    1.选择数据:首先将原始数据分成三组:训练数据、验证数据和测试数据;

     

    2.数据建模:再使用训练数据来构建使用相关特征的模型;

     

    3.验证模型:使用验证数据输入到已经构建的数据模型中;

     

    4.测试模型:使用测试数据检查被验证的模型的性能表现;

     

    5.使用模型:使用完全训练好的模型在新数据上做预测;

     

    6.调优模型:使用更多数据、不同的特征或调整过的参数来提升算法的性能表现。

     

    图4 机器学习的工作方式

     

    (四)机器学习发展的关键基石:

    (1)海量数据:人工智能的能量来源是稳定的数据流。机器学习可以通过海量数据来“训练” 自己,才能开发新规则来完成日益复杂的任务。目前全球有超过30亿人在线,约170 亿个连接的设备或传感器,产生了大量数据,而数据存储成本的降低,使得这些数据易于被使用。

     

    (2)超强计算:强大的计算机和通过互联网连接远程处理能力使可以处理海量数据的机器学习技术成为可能,具某媒体称,ALPHGO之所以能在与对李世石的对决中取得历史性的胜利,这与它硬件配置的1920个CPU和280个GPU超强运算系统密不可分,可见计算能力对于机器学习是至关重要的。

     

    (3)优秀算法:在机器学习中,学习算法(learning algorithms)创建了规则,允许计算机从数据中学习,从而推论出新的指令(算法模型),这也是机器学习的核心优势。新的机器学习技术,特别是分层神经网络,也被称为“深度学习”,启发了新的服务,刺激了对人工智能这一领域其他方面的投资和研究。

     

    图5  机器学习的关键基石

     

     

    (五)机器学习的算法分类

    机器学习基于学习形式的不同通常可分为三类:

     

    1.监督学习(Supervised Learning)    给学习算法提供标记的数据和所需的输出,对于每一个输入,学习者都被提供了一个回应的目标。监督学习主要被应用于快速高效地教熟AI现有的知识,被用于解决分类和回归的问题。常见的算法有:

     

    (1)决策树(Decision Trees):决策树可看作一个树状预测模型,它通过把实例从根节点排列到某个叶子节点来分类实例,叶子节点即为实例所属的分类。决策树的核心问题是选择分裂属性和决策树的剪枝。决策树是一个决策支持工具,它用树形的图或者模型表示决策及其可能的后果,包括随机事件的影响、资源消耗、以及用途。用于分析判断有无贷款意向的决策树示如图 所示,从商业角度看,常用于基于规则的信用评估、赛马结果预测等。

     

    图6 决策树

     

    (2)Adaboost算法:这是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。算法本身是改变数据分布实现的,它根据每次训练集之中的每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改权值的新数据送给下层分类器进行训练,然后将每次训练得到的分类器融合起来,作为最后的决策分类器。AdaBoost算法主要解决了:两类问题、多类单标签问题、多类多标签问题、大类单标签问题和回归问题; 优点:学习精度明显增加,并且不会出现过拟合问题,AdaBoost算法技术常用于人脸识别和目标跟踪领域。

     

    机器学习:开启智能创新之门

    图7 Adaboost

     

     

    (3)人工神经网络(Artificial Neural Network -ANN)算法:人工神经网络是由大量处理单元互联组成的非线性、自适应信息处理系统。它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理、记忆信息的方式进行信息处理。人工神经网络是并行分布式系统,采用了与传统人工智能和信息处理技术完全不同的机理,克服了传统的基于逻辑符号的人工智能在处理直觉、非结构化信息方面的缺陷,具有自适应、自组织和实时学习的特点。

     

    图8 人工神经网络

     

    (4)SVM(Support Vector Machine):SVM 法即支持向量机算法,由Vapnik等人于1995年提出,具有相对优良的性能指标。该方法是建立在统计学习理论基础上的机器学习方法。 SVM是一种二分算法。假设在N维空间,有一组点,包含两种类型,SVM生成a(N-1) 维的超平面,把这些点分成两组。比如你有一些点在纸上面,这些点是线性分离的。SVM会找到一个直线,把这些点分成两类,并且会尽可能远离这些点。从规模看来,SVM(包括适当调整过的)解决的一些特大的问题有:广告、人类基因剪接位点识别、基于图片的性别检测、大规模图片分类,适用于新闻分类、手写识别等应用。

     

    机器学习:开启智能创新之门

    图9 支持向量机算法

     

    (5)朴素贝叶斯(Naive Bayesian):贝叶斯法是一种在已知先验概率与类条件概率的情况下的模式分类方法,待分样本的分类结果取决于各类域中样本的全体。朴素贝叶斯分类器基于把贝叶斯定理运用在特征之间关系的强独立性假设上。优点:在数据较少的情况下仍然有效,可以处理多类别问题。缺点:对于输入数据的准备方式较为敏感。适用数据类型:标称型数据。现实生活中的应用例子:电子邮件垃圾副过滤、判定文章属性分类、分析文字表达的内容含义和人脸识别、情感分析、消费者分类。

     

    图10  朴素贝叶斯算法

     

     

    (6)K-近邻(k-Nearest Neighbors,KNN):这是一种分类算法,其核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 kNN方法在类别决策时,只与极少量的相邻样本有关。由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。

     

    机器学习:开启智能创新之门

    图11  K-近邻算法

     

    (7)逻辑回归(Logistic Regression):这是一种分类算法,主要用于二分类问题。逻辑回归是一种非常强大的统计方法,可以把有一个或者多个解释变量的数据,建立为二项式类型的模型,通过用累积逻辑分布的逻辑函数估计概率,测量分类因变量和一个或多个独立变量之间的关系。逻辑回归是一种非线性回归模型,相比于线性回归,它多了一个sigmoid函数(或称为Logistic函数)。通常,回归在现实生活中的用途如下:信用评估、测量市场营销的成功度、预测某个产品的收益、特定的某天是否会发生地震,路面交通流量分析、邮件过滤。

     

    机器学习:开启智能创新之门

    图12  逻辑回归算法

     

    (8)随机森林算法(Random Forest):随机森林算法可以用于处理回归、分类、聚类以及生存分析等问题,当用于分类或回归问题时,它的主要思想是通过自助法重采样,生成很多个树回归器或分类器。在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定,常用于用户流失分析、风险评估。

     

    机器学习:开启智能创新之门

    图13  随机森林算法

     

     

    (9)线形回归( Linear Regression):这是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。线性回归是回归分析中第一种经过严格研究并在实际应用中广泛使用的类型。这是因为线性依赖于其未知参数的模型比非线性依赖于其位置参数的模型更容易拟合,而且产生的估计的统计特性也更容易确定。

     

    图14  线形回归算法

     

    2.无监督学习(Unsupervised Learning)

    给学习算法提供的数据是未标记的,并且要求算法识别输入数据中的模式,主要是建立一个模型,用其试着对输入的数据进行解释,并用于下次输入。现实情况下往往很多数据集都有大量的未标记样本,有标记的样本反而比较少。如果直接弃用,很大程度上会导致模型精度低。这种情况解决的思路往往是结合有标记的样本,通过估计的方法把未标记样本变为伪的有标记样本,所以无监督学习比监督学习更难掌握。主要用于解决聚类和降维问题,常见的算法有:

     

    (1)聚类算法:把一组对象分组化的任务,使得在同一组的对象比起其它组的对象,它们彼此更加相似。常用的聚类算法包括:

     

    ①K-means算法:这是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。其优点是算法足够快速、简单,并且如果预处理数据和特征工程十分有效,那么该聚类算法将拥有极高的灵活性。缺点是该算法需要指定集群的数量,而K值的选择通常都不是那么容易确定的。另外,如果训练数据中的真实集群并不是类球状的,那么K均值聚类会得出一些比较差的集群。

     

    图15  K-means算法

     

     

    ②Expectation Maximisation (EM):这是一种迭代算法,用于含有隐变量(latent variable)的概率参数模型的最大似然估计或极大后验概率估计。EM算法的主要目的是提供一个简单的迭代算法计算后验密度函数,它的最大优点是简单和稳定,但容易陷入局部最优。

     

    图16  EM算法

     

    ③Affinity Propagation 聚类:AP 聚类算法是一种相对较新的聚类算法,该聚类算法基于两个样本点之间的图形距离(graph distances)确定集群。采用该聚类方法的集群拥有更小和不相等的大小。优点:该算法不需要指出明确的集群数量。缺点:AP 聚类算法主要的缺点就是训练速度比较慢,并需要大量内存,因此也就很难扩展到大数据集中。另外,该算法同样假定潜在的集群是类球状的。

     

    ④层次聚类(Hierarchical Clustering):层次聚类是一系列基于以下概念的聚类算法:是通过对数据集按照某种方法进行层次分解,直到满足某种条件为止。按照分类原理的不同,可以分为凝聚和分裂两种方法。优点:层次聚类最主要的优点是集群不再需要假设为类球形。另外其也可以扩展到大数据集。缺点:有点像 K 均值聚类,该算法需要设定集群的数量。

     

    机器学习:开启智能创新之门

    图17  层次聚类算法

     

     

    ⑤DBSCAN:这是一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。它将样本点的密集区域组成一个集群。优点:DBSCAN 不需要假设集群为球状,并且它的性能是可扩展的。此外,它不需要每个点都被分配到一个集群中,这降低了集群的异常数据。缺点:用户必须要调整「epsilon」和「min_sample」这两个定义了集群密度的超参数。DBSCAN 对这些超参数非常敏感。

     

    图18 DBSCAN算法

     

    (2)降维算法:其主要特征是将数据从高维降低到低维层次,最大程度的保留了数据的信息。代表算法是:

     

    ①主要代表是主成分分析算法(PCA算法):主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标(即主成分),其中每个主成分都能够反映原始变量的大部分信息,且所含信息互不重复。这种方法在引进多方面变量的同时将复杂因素归结为几个主成分,使问题简单化,同时得到的结果更加科学有效的数据信息。

     

    机器学习:开启智能创新之门

    图19  PCA算法

     

     

    ②局部线性嵌入(Locally linear embeddingLLE)LLE降维算法:一种非线性降维算法,它能够使降维后的数据较好地保持原有 流形结构 。该算法是针对非线性信号特征矢量维数的优化方法,这种维数优化并不是仅仅在数量上简单的约简,而是在保持原始数据性质不变的情况下,将高维空间的信号映射到低维空间上,即特征值的二次提取。

     

    图20  LLE降维算法

     

    3.强化学习(Reinforcement Learning)     该算法与动态环境相互作用,把环境的反馈作为输入,通过学习选择能达到其目标的最优动作。强化学习这一方法背后的数学原理与监督/非监督学习略有差异。监督/非监督学习更多地应用了统计学,而强化学习更多地结合了离散数学、随机过程这些数学方法。常见的算法有:

     

    ①TD(λ)算法:TD(temporal differenee)学习是强化学习技术中最主要的学习技术之一.TD学习是蒙特卡罗思想和动态规划思想的结合,即一方面TD算法在不需要系统模型情况下可以直接从agent经验中学习;另一方面TD算法和动态规划一样,利用估计的值函数进行迭代。

     

    机器学习:开启智能创新之门

    图21  TD(λ)算法

     

    ②Q_learning算法:Q_learning学习是一种模型无关的强化学习算法 ,又称为离策略TD学习(off-policy TD).不同于TD算法,Q_learning迭代时采用状态_动作对的奖赏和Q (s,a)作为估计函数,在Agent每一次学习迭代时都需要考察每一个行为,可确保学习过程收敛。

     

    机器学习:开启智能创新之门

    图22   Q_learning算法

     

     

    (六)机器学习过程举例说明

    所谓机器学习过程,是指观察有n个样本数据组成的集合,并根据这些数据来预测未知数据的性质,那么在给定数据集(所谓大数据)和具体问题的前提下,一般解决问题的步骤可以概括如下:

     

    1.数据抽象

    将数据集和具体问题抽象成数学语言,以恰当的数学符号表示。这样做自然是为了方便表述和求解问题,而且也更加直观。

     

    2.设定性能度量指标

    机器学习是产生模型的算法,一般来说模型都有误差。如果模型学的太好,把训练样本自身的一些特点当成所有潜在样本具有的一般性质,这种情况称为过拟合,这样的模型在面对新样本时就会出现较大误差,专业表述就是导致模型的泛化性能下降。与之相对的是欠拟合,模型对样本的一般性质都没学好,这种情况一般比较好解决,扩充数据集或者调整模型皆可。

     

    3.数据预处理

    之所以要做数据预处理,是因为提供的数据集往往很少是可以直接拿来用的。例如:如果样本的属性太多,一般有两种方法: 降维和特征选择。特征选择比较好理解,就是选择有用相关的属性,或者用另外一种表达方式:选择样本中有用、跟问题相关的特征。

     

    4.选定模型

    在数据集完美的情况下,接下来就是根据具体问题选定恰当的模型了。一种方式是根据有没有标记样本考虑。如果是有标记样本,可以考虑有监督学习,反之则是无监督学习,兼而有之就看半监督学习是否派的上用场。

     

    5.训练及优化

    选定了模型,如何训练和优化也是一个重要问题。如果要评估训练集和验证集的划分效果,常用的有留出法、交叉验证法、自助法、模型调参等如果模型计算时间太长,可以考虑剪枝如果是过拟合,则可通过引入正则化项来抑制(补偿原理)如果单个模型效果不佳,可以集成多个学习器通过一定策略结合,取长补短(集成学习)

     

    6.机器学习举例分析

    在机器学习领域特征比模型(学习算法)更重要。举个例子,如果我们的特征选得很好,可能我们用简单的规则就能判断出最终的结果,甚至不需要模型。比如,要判断一个人是男还是女,假设由计算机来完成这个任务,首先采集到各种数据(特征:姓名、身高、头发长度,籍贯、是否吸烟等等。因为根据统计我们知道男人一般比女人高,头发比女人短,并且会吸烟;所以这些特征都有一定的区分度,但是总有反例存在。我们用最好的算法可能准确率也达不到100%。然后再进行特征提取,提出对目标有意义的特征,删除无关的(籍贯),然后进行预处理,对特征提取结果的再加工,目的是增强特征的表示能力,防止模型(分类器)过于复杂和学习困难。接下来就是训练数据,这里我们通过监督学习或无监督的方法来拟合分类器模型。学习器通过分析数据的规律尝试拟合出这些数据和学习目标间的函数,使得定义在训练集上的总体误差尽可能的小,从而利用学得的函数来预测未知数据的学习方法预测出结果,最后对结果进行评价和改进。

     

    图23 机器学习过程举例说明

     

    (七)机器学习覆盖的范围

    从范围上来说,机器学习跟模式识别,统计学习,数据挖掘是类似的,同时,机器学习与其他领域的处理技术的结合,形成了计算机视觉、语音识别、自然语言处理等交叉学科。因此,一般说数据挖掘时,可以等同于说机器学习。同时,我们平常所说的机器学习应用,应该是通用的,不仅仅局限在结构化数据,还有图像,音频等应用。

     

     

    (1)模式识别

    模式识别=机器学习。两者的主要区别在于前者是从工业界发展起来的概念,后者则主要源自计算机学科。在著名的《Pattern Recognition And Machine Learning》这本书中,Christopher M. Bishop在开头是这样说的:“模式识别源自工业界,而机器学习来自于计算机学科。不过,它们中的活动可以被视为同一个领域的两个方面,同时在过去的十年间,它们都有了长足的发展”。

     

    (2)数据挖掘

    数据挖掘=机器学习+数据库。数据挖掘仅仅是一种方式,不是所有的数据都具有价值,数据挖掘思维方式才是关键,加上对数据深刻的认识,这样才可能从数据中导出模式指引业务的改善。大部分数据挖掘中的算法是机器学习的算法在数据库中的优化。

     

    (3)统计学习

    统计学习近似等于机器学习。统计学习是个与机器学习高度重叠的学科。因为机器学中的大多数方法来自统计学,甚至可以认为,统计学的发展促进机器学习的繁荣昌盛。例如著名的支持向量机算法,就是源自统计学科。两者的区别在于:统计学习者重点关注的是统计模型的发展与优化,偏数学,而机器学习者更关注的是能够解决问题,偏实践,因此机器学习研究者会重点研究学习算法在计算机上执行的效率与准确性的提升。

     

    (4)计算机视觉

    计算机视觉=图像处理+机器学习。图像处理技术用于将图像处理为适合进入机器学模型中的输入,机器学习则负责从图像中识别出相关的模式。计算机视觉相关的应用非常的多,例如百度识图、手写字符识别、车牌识别等等应用。这个领域将是未来研究的热门方向。随着机器学习的新领域深度学习的发展,大大促进了计算机图像识别的效果,因此未来计算机视觉界的发展前景不可估量。

     

    (5)语音识别

    语音识别=语音处理+机器学习。语音识别就是音频处理技术与机器学习的结合。语音识别技术一般不会单独使用,一般会结合自然语言处理的相关技术。目前的相关应用有苹果的语音助手siri等。

     

    (6)自然语言处理

    自然语言处理=文本处理+机器学习。自然语言处理技术主要是让机器理解人类的语言的一门领域。在自然语言处理技术中,大量使用了编译原理相关的技术,例如词法分析,语法分析等等,除此之外,在理解这个层面,则使用了语义理解,机器学习等技术。作为唯一由人类自身创造的符号,自然语言处理一直是机器学习界不断研究的方向。

     

    图24   机器学习覆盖的范围

     

    (八)机器学习在工业生产中的主要应用场景

    机器学习作为人工智能的最有效的实现方法,已经在工业制造等众多场景中得到了广泛应用,以下是机器学习在工业生产中的五个应用场景。

     

    1.代替肉眼检查作业,实现制造检查智能化和无人化

    例如工程岩体的分类,目前主要是通过有经验的工程师通过仔细鉴别来判断,效率比较低,并且因人而异会产生不同的判断偏差。通过采用人工智能,把工程师的经验转化为深度学习算法,判断的准确率和人工判断相当,得到对应的权值后开发出APP,这样工程人员在使用平板拍照后,就可以通过APP自动得到工程岩体分类的结果,高效而且准确率高。

     

     

    2.大幅改善工业机器人的作业性能,提升制造流程的自动化和无人化

    工业上有许多需要分捡的作业,如果采用人工的作业,速度缓慢且成本高,而且还需要提供适宜的工作温度环境。如果采用工业机器人的话,可以大幅减低成本,提高速度。例如图25所示的Bin Picking机器人。

     

    图25 Bin Picking(零件分检)机器人

     

    但是,一般需要分捡的零件并没有被整齐摆放,机器人虽然有摄像机看到零件,但却不知道如何把零件成功的捡起来。在这种情况下,利用机器学习,先让工业机器人随机的进行一次分捡动作,然后告诉它这次动作是成功分捡到零件还是抓空了,经过多次训练之后,机器人就会知道按照怎样的顺序来分捡才有更高的成功率,如图26所示。

     

    图26 利用机器学习进行散堆拾取

     

    如图27所示,经过机器学习后,机器人知道了分捡时夹圆柱的哪个位置会有更高的捡起成功率。

     

    图27 学习次数越多准确性越高

     

     

    如图28表明通过机器学习后,机器人知道按照怎样的顺序分捡,成功率会更高,图中数字是分捡的先后次序。

     

    图28 机器人确定分拣顺序

     

    如图29所示,经过8个小时的学习后,机器人的分捡成功率可以达到90%,和熟练工人的水平相当。

     

    图29 分捡成功率得到大幅提升

     

    3.工业机器人异常的提前检知,从而有效避免机器故障带来的损失和影响

    在制造流水线上,有大量的工业机器人。如果其中一个机器人出现了故障,当人感知到这个故障时,可能已经造成大量的不合格品,从而带来不小的损失。如果能在故障发生以前就检知的话,就可以有效得做出预防,减少损失。如图30中的工业机器人减速机,如果给它们配上传感器,并提前提取它们正常/不正常工作时的波形,电流等信息,用于训练机器学习系统,那么训练出来的模型就可以用来提前预警,实际数据表明,机器人会比人更早地预知到故障,从而降低损失。

     

    机器学习:开启智能创新之门

    图30   工业机器人故障预测

     

     

    如图9所示,经过机器学习后,模型通过观测到的波形,可以检知到人很难感知到的细微变化,并在机器人彻底故障之前的数星期,就提出有效的预警。图31是利用机器学习来提前预警主轴的故障,一般情况下都是主轴出现问题后才被发现。

     

    图31 主轴故障预测

     

    4.PCB电路板的辅助设计

    任何一块印制板,都存在与其他结构件配合装配的问题,所以印制板的外形和尺寸必须以产品整机结构为依据,另外还需要考虑到生产工艺,层数方面也需要根据电路性能要求、板型尺寸和线路的密集程度而定。如果不是经验丰富的技术人员,很难设计出合适的多层板。利用机器学习,系统可以将技术人员的经验转化为模型,从而提升PCB设计的效率与成功率,如图32所示。

     

    机器学习:开启智能创新之门

    图32 PCB板辅助设计

     

    5.快速高效地找出符合3D模型的现实零件

    例如工业上的3D模型设计完成后,需要根据3D模型中参数,寻找可对应的现实中的零件,用于制造实际的产品。利用机器学习来完成这个任务的话,可以快速,高匹配率地找出符合3D模型参数的那些现实零件。

     

    图33是根据3D模型设计的参数,机器学习模型计算各个现实零件与这些参数的类似度,从而筛选出匹配的现实零件。没有使用机器学习时,筛选的匹配率大概是68%,也就是说,找出的现实零件中有1/3不能满足3D模型设计的参数,而使用机器学习后,匹配率高达96%。

     

    图33 检索匹配的零件

     

     

     

    (九)机器学习中的日常生活场景

    1. 市民出行选乘公交预测

    基于海量公交数据记录,希望挖掘市民在公共交通中的行为模式。以市民出行公交线路选乘预测为方向,期望通过分析公交线路的历史公交卡交易数据,挖掘固定人群在公共交通中的行为模式,分析推测乘客的出行习惯和偏好,从而建立模型预测人们在未来一周内将会搭乘哪些公交线路,为广大乘客提供信息对称、安全舒适的出行环境,用数据引领未来城市智慧出行。

     

    2. 商品图片分类

    电商网站含有数以百万计的商品图片,“拍照购”“找同款”等应用必须对用户提供的商品图片进行分类。同时,提取商品图像特征,可以提供给推荐、广告等系统,提高推荐/广告的效果。希望通过对图像数据进行学习,以达到对图像进行分类划分的目的。

     

    3. 基于文本内容的垃圾短信识别

    垃圾短信已日益成为困扰运营商和手机用户的难题,严重影响到人们正常生活、侵害到运营商的社会形象以及危害着社会稳定。而不法分子运用科技手段不断更新垃圾短信形式且传播途径非常广泛,传统的基于策略、关键词等过滤的效果有限,很多垃圾短信“逃脱”过滤,继续到达手机终端。希望基于短信文本内容,结合机器学习算法、大数据分析挖掘来智能地识别垃圾短信及其变种。

     

    4. 国家电网客户用电异常行为分析

    随着电力系统升级,智能电力设备的普及,国家电网公司可以实时收集海量的用户用电行为数据、电力设备监测数据,因此,国家电网公司希望通过大数据分析技术,科学的开展防窃电监测分析,以提高反窃电工作效率,降低窃电行为分析的时间及成本。

     

    5.自动驾驶场景中的交通标志检测

    在自动驾驶场景中,交通标志的检测和识别对行车周围环境的理解起着至关重要的作用。例如通过检测识别限速标志来控制当前车辆的速度等;另一方面,将交通标志嵌入到高精度地图中,对定位导航也起到关键的辅助作用。希望机遇完全真实场景下的图片数据用于训练和测试,训练能够实际应用在自动驾驶中的识别模型。

     

    6.大数据精准营销中用户画像挖掘

    在现代广告投放系统中,多层级成体系的用户画像构建算法是实现精准广告投放的基础技术之一。期望基于用户历史一个月的查询词与用户的人口属性标签(包括性别、年龄、学历)做为训练数据,通过机器学习、数据挖掘技术构建分类算法来对新增用户的人口属性进行判定。

     

    7. 监控场景下的行人精细化识别

    随着平安中国、平安城市的提出,视频监控被广泛应用于各种领域,这给维护社会治安带来了便捷;但同时也带来了一个问题,即海量的视频监控流使得发生突发事故后,需要耗费大量的人力物力去搜索有效信息。希望基于监控场景下多张带有标注信息的行人图像,在定位(头部、上身、下身、脚、帽子、包)的基础上研究行人精细化识别算法,自动识别出行人图像中行人的属性特征。

     

    8.需求预测与仓储规划方案

    拥有海量的买家和卖家交易数据的情况下,利用数据挖掘技术,我们能对未来的商品需求量进行准确地预测,从而帮助商家自动化很多供应链过程中的决策。这些以大数据驱动的供应链能够帮助商家大幅降低运营成本,更精确的需求预测,能够大大地优化运营成本,降低收货时效,提升整个社会的供应链物流效率,朝智能化的供应链平台方向更加迈进一步。高质量的商品需求预测是供应链管理的基础和核心功能。

     

    9.股价走势预测

    随着经济社会的发展,以及人们投资意识的增强,人们越来越多的参与到股票市场的经济活动中,股票投资也已经成为人们生活的一个重要组成部分。然而在股票市场中,众多的指标、众多的信息,很难找出对股价更为关键的因素;其次股市结构极为复杂,影响因素具有多样性、相关性。这导致了很难找出股市内在的模式。希望在尽可能全面的收集股市信息的基础上,建立股价预测模。

     

    10.地震预报

    根据历史全球大地震的时空图,找出与中国大陆大地震有关的14个相关区,对这些相关区逐一鉴别,选取较优的9个,再根据这9个相关区发生的大震来预测中国大陆在未来一年内会不会有大震发生。

     

    11.穿衣搭配推荐

    穿衣搭配是服饰鞋包导购中非常重要的课题,基于搭配专家和达人生成的搭配组合数据,百万级别的商品的文本和图像数据,以及用户的行为数据。期待能从以上行为、文本和图像数据中挖掘穿衣搭配模型,为用户提供个性化、优质的、专业的穿衣搭配方案,预测给定商品的搭配商品集合。

     

    12.依据用户轨迹的商户精准营销

    随着用户访问移动互联网的与日俱增,如何根据用户的画像对用户进行精准营销成为了很多互联网和非互联网企业的新发展方向。希望根据商户位置及分类数据、用户标签画像数据提取用户标签和商户分类的关联关系,然后根据用户在某一段时间内的位置数据,判断用户进入该商户地位范围300米内,则对用户推送符合该用户画像的商户位置和其他优惠信息。

     

     

    13.气象关联分析

    在社会经济生活中,不少行业,如农业、交通业、建筑业、旅游业、销售业、保险业等,无一例外与天气的变化息息相关。为了更深入地挖掘气象资源的价值,希望基于共计60年的中国地面历史气象数据,推动气象数据与其他各行各业数据的有效结合,寻求气象要素之间、以及气象与其它事物之间的相互关系,让气象数据发挥更多元化的价值。

     

    14.交通事故成因分析

    随着时代发展,便捷交通对社会产生巨大贡献的同时,各类交通事故也严重地影响了人们生命财产安全和社会经济发展。希望通过对事故类型、事故人员、事故车辆、事故天气、驾照信息、驾驶人员犯罪记录数据以及其他和交通事故有关的数据进行深度挖掘,形成交通事故成因分析方案。

     

    15.基于兴趣的实时新闻推荐

    随着近年来互联网的飞速发展,个性化推荐已成为各大主流网站的一项必不可少服务。提供各类新闻的门户网站是互联网上的传统服务,但是与当今蓬勃发展的电子商务网站相比,新闻的个性化推荐服务水平仍存在较大差距。希望通过对带有时间标记的用户浏览行为和新闻文本内容进行分析,挖掘用户的新闻浏览模式和变化规律,设计及时准确的推荐系统预测用户未来可能感兴趣的新闻。

     

    四、深度学习:机器学习的更高智能进阶

    1.深度学习的背景

    2006年,加拿大多伦多大学教授、机器学习领域的泰斗Geoffrey Hinton和学生Salakhutdinov在Science上发表文章 《Reducing the Dimensionalitg of Data with Neural Neworks》,这篇文章有两个主要观点:1)多隐层神经网络有更厉害的学习能力,可以表达更多特征来描述对象;2)训练深度神经网络时,可通过降维(pre-training)来实现,老教授设计出来的Autoencoder网络能够快速找到好的全局最优点,采用无监督的方法先分开对每层网络进行训练,然后再来微调。该文章的发表翻开了深度学习的新篇章。2013年4月,深度学习技术被《麻省理工学院技术评论》(MIT TechnologyReview)杂志列为2013年十大突破性技术(Breakthrough Technology) 之首。与浅层学习模型依赖人工经验不同,深层学习模型通过构建机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。

     

    2.深度学习的定义

    深度学习是机器学习研究领域的分支,隶属于神经网络体系。深度学习通过建立、模拟人脑的信息处理神经结构来实现对外部输入的数据进行从低级到高级的特征提取,从而能够使机器理解学习数据,获得信息,因具有多个隐藏层的神经网络又被称为深度神经网络。深度学习将数据输入系统后,通过建模及模拟人脑的神经网从而进行学习的技术,像生物神经元一样,神经网络系统中有系列分层排列的模拟神经元(信息传递的连接点),且经过每个神经元的响应函数都会分配一个相应的“权值”,表示彼此之间的连接强度。通过每层神经元相互“连接”,计算机就可以由达到最佳方案时所有神经元的加权和,从而可以实现这一决策方案。

     

    3.深度学习的基础和实现

    ①深度学习的思想基础一误差逆传播算法(BP算法)

    BP神经网络(如图35) 是1986年Rumelhart和McClelland等人提出的,是一种按误差逆传播算法训练的多层前馈神经网络,它存储大量映射模式关系,无需揭示其映射方程。BP算法的核心思想是采用最速下降法(梯度下降法),通过反向传播调试网络的权值和阈值,使得其误差平方和最小。

     

    机器学习:开启智能创新之门

    图35 BP神经网络

     

     

    ②图像处理领域的里程碑一卷积神经网络(CNN)

    20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现网络结构可以降低反馈神经网络的复杂性,进而提出了卷积神经网络的概念。由于其避免了对图像的前期预处理,可以直接输入原始图像,CNN已经成为神经网络的标志性代表之一。

     

    图36  卷积神经网络(CNN)

     

    ③深度神经网络的实现基础一玻尔兹曼机和受限玻尔兹曼机

    玻尔兹曼机 是Hinton和Sejnowski提出的随机递归神经网络,也可以看做是随机的Hopfield网络,因样本分布遵循玻尔兹曼分布而命名为BM。

     

    机器学习:开启智能创新之门

    图37  玻尔兹曼机

     

    4.深度学习的重大成就

    利用机器学习,人工智能系统获得了归纳推理和决策能力;而深度学习更将这一能力推向了更高的层次。目前,在深度学习中,卷积神经网络(Convolutional Neural Network,简称CNN)作为最有效的深层神经网络,现在已经被越来越多地应用到许多智能领域之中,并且它们越来越像人类了,例如AlphaGo、SIRI和FACEBOOK等都应用了卷积神经网络。在中国目前非常关注的智能制造领域中,制造机器人是深度学习的经典案例,深度学习的机器人能够自动适应外部环境的变化,面对新型任务时可以自动重新调整算法和技术。

     

    5.深度学习的发展展望

    深度学习必将成为人工智能发展的核心驱动力。虽然深度学习在实际应用中取得了许多成就,但是仍有局限性:理论研究缺乏、无监督学习能力弱、缺少逻辑推理和记忆能力等。深度学习的研究多是基于实验训练进行的,但是对其内部原理,学习本质研究很少。现在的研究多是在网络架构、参数选择等方面,而且深度学习的还有进一步提升空间,也需要更加完备深入的理论支撑其发展。

     

    目前主流应用还是以监督学习为主的,但在实际生活中,无标签未知的数据占主体,所以更应该应用可以发现事物内在关系的无监督学习,未来还有更广阔的发展空间。深度学习是人工智能发展的巨大推力,目前阶段中深度学习更侧重于处理数据,在面对更复杂的任务时,则需要更多记忆能力和逻辑推理能力。

     

    五:机器学习的未来:挑战与机遇并存

    机器学习是人工智能应用的又一重要研究领域。当今,尽管在机器学习领域已经取得重大技术进展,但就目前机器学习发展现状而言,自主学习能力还十分有限,还不具备类似人那样的学习能力,同时机器学习的发展也面临着巨大的挑战,诸如泛化能力、速度、可理解性以及数据利用能力等技术性难关必须克服。但令人可喜的是,在某些复杂的类人神经分析算法的开发领域,计算机专家已经取得了很大进展,人们已经可以开发出许多自主性的算法和模型让机器展现出高效的学习能力。对机器学习的进一步深入研究,势必推动人工智能技术的深化应用与发展。

    展开全文
  • 人工智能AI:模拟人脑,辨认哪个是苹果,哪个是橙子。 机器学习ML:根据特征在水果摊买橙子,随着见过的橙子和其他水果越来越多,辨别橙子的能力越来越强,不会再把香蕉当橙子。 机器学习强调“...

    有三个词,这两年出现的频率越来越高:人工智能(AI),机器学习(ML),深度学习(DL),到底他们哥仨是什么关系?今天小编化繁为简,用几张图带你迅速看明白。关系如图,从提出概念的时间上来看也很清楚:

    人工智能AI:模拟人脑,辨认哪个是苹果,哪个是橙子。

    机器学习ML:根据特征在水果摊买橙子,随着见过的橙子和其他水果越来越多,辨别橙子的能力越来越强,不会再把香蕉当橙子。

    机器学习强调“学习”而不是程序本身,通过复杂的算法来分析大量的数据,识别数据中的模式,并做出一个预测--不需要特定的代码。在样本的数量不断增加的同时,自我纠正完善“学习目的”,可以从自身的错误中学习,提高识别能力。

    深度学习DL:超市里有3种苹果和5种橙子,通过数据分析比对,把超市里的品种和数据建立联系,通过水果的颜色、形状、大小、成熟时间和产地等信息,分辨普通橙子和血橙,从而选择购买用户需要的橙子品种。

    1、机器学习简史

    哲学上的三大终极问题:是谁?从哪来?到哪去?用在任何地方都是有意义的。

    ——尼古拉斯·沃布吉·道格拉斯·硕德

    虽然人工智能并不是最近几年才兴起的,但在它一直作为科幻元素出现在大众视野中。自从AlphaGo战胜李世石之后,人工智能突然间成了坊间谈资,仿佛人类已经造出了超越人类智慧的机器。而人工智能的核心技术机器学习及其子领域深度学习一时间成了人们的掌上明珠。面对这个从天而降的“怪物”,乐观者有之,悲观者亦有之。但追溯历史,我们会发现机器学习的技术爆发有其历史必然性,属于技术发展的必然产物。而理清机器学习的发展脉络有助于我们整体把握机器学习,或者人工智能的技术框架,有助于从“道”的层面理解这一技术领域。这一节就先从三大究极哲学问题中的后两个——从哪来、到哪去入手,整体把握机器学习,而后再从“术”的角度深入学习,解决是谁的问题。(本来想加个纵时间轴,无奈查了半天没找到方法,如果有人知道,求分享)

    图一 机器学习发展史(图片来源:Brief History of Machine Learning)

    1.1 诞生并奠定基础时期


    1949, Hebb, Hebbian Learning theory

    赫布于1949年基于神经心理的提出了一种学习方式,该方法被称之为赫布学习理论。大致描述为:

    假设反射活动的持续性或反复性会导致细胞的持续性变化并增加其稳定性,当一个神经元A能持续或反复激发神经元B时,其中一个或两个神经元的生长或代谢过程都会变化。

    Let us assume that the persistence or repetition of a reverberatory activity (or “trace”) tends to induce lasting cellular changes that add to its stability.… When an axon of cell A is near enough to excite a cell B and repeatedly or persistently takes part in firing it, some growth process or metabolic change takes place in one or both cells such that A’s efficiency, as one of the cells firing B, is increased

    从人工神经元或人工神经网络角度来看,该学习理论简单地解释了循环神经网络(RNN)中结点之间的相关性关系(权重),即:当两个节点同时发生变化(无论是positive还是negative),那么节点之间有很强的正相关性(positive weight);如果两者变化相反,那么说明有负相关性(negative weight)。


    1950, Alan Turing, The Turing test

    图二 图灵测试(图片来源:维基百科)

    1950年,阿兰·图灵创造了图灵测试来判定计算机是否智能。图灵测试认为,如果一台机器能够与人类展开对话(通过电传设备)而不能被辨别出其机器身份,那么称这台机器具有智能。这一简化使得图灵能够令人信服地说明“思考的机器”是可能的。

    2014年6月8日,一个叫做尤金·古斯特曼的聊天机器人成功让人类相信它是一个13岁的男孩,成为有史以来首台通过图灵测试的计算机。这被认为是人工智能发展的一个里程碑事件。


    1952, Arthur Samuel, “Machine Learning”

    图三 塞缪尔(图片来源:Brief History of Machine Learning)

    1952,IBM科学家亚瑟·塞缪尔开发了一个跳棋程序。该程序能够通过观察当前位置,并学习一个隐含的模型,从而为后续动作提供更好的指导。塞缪尔发现,伴随着该游戏程序运行时间的增加,其可以实现越来越好的后续指导。通过这个程序,塞缪尔驳倒了普罗维登斯提出的机器无法超越人类,像人类一样写代码和学习的模式。他创造了“机器学习”这一术语,并将它定义为:

    可以提供计算机能力而无需显式编程的研究领域

    a field of study that gives computer the ability without being explicitly programmed.


    1957, Rosenblatt, Perceptron

    图四 感知机线性分类器(图片来源:维基百科)

    1957年,罗森·布拉特基于神经感知科学背景提出了第二模型,非常的类似于今天的机器学习模型。这在当时是一个非常令人兴奋的发现,它比赫布的想法更适用。基于这个模型罗森·布拉特设计出了第一个计算机神经网络——感知机(the perceptron),它模拟了人脑的运作方式。罗森·布拉特对感知机的定义如下:

    感知机旨在说明一般智能系统的一些基本属性,它不会因为个别特例或通常不知道的东西所束缚住,也不会因为那些个别生物有机体的情况而陷入混乱。

    The perceptron is designed to illustrate some of the fundamental properties of intelligent systems in general, without becoming too deeply enmeshed in the special, and frequently unknown, conditions which hold for particular biological organisms.

    3年后,维德罗首次使用Delta学习规则(即最小二乘法)用于感知器的训练步骤,创造了一个良好的线性分类器。


    1967年,The nearest neighbor algorithm

    图五 kNN算法(图片来源:维基百科)

    1967年,最近邻算法(The nearest neighbor algorithm)出现,使计算机可以进行简单的模式识别。kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。这就是所谓的“少数听从多数”原则。


    1969, Minsky, XOR problem

    图六 XOR问题,数据线性不可分

    1969年马文·明斯基提出了著名的XOR问题,指出感知机在线性不可分的数据分布上是失效的。此后神经网络的研究者进入了寒冬,直到 1980 年才再一次复苏。

    1.2 停滞不前的瓶颈时期

    从60年代中到70年代末,机器学习的发展步伐几乎处于停滞状态。无论是理论研究还是计算机硬件限制,使得整个人工智能领域的发展都遇到了很大的瓶颈。虽然这个时期温斯顿(Winston)的结构学习系统和海斯·罗思(Hayes Roth)等的基于逻辑的归纳学习系统取得较大的进展,但只能学习单一概念,而且未能投入实际应用。而神经网络学习机因理论缺陷也未能达到预期效果而转入低潮。

    1.3 希望之光重新点亮


    1981, Werbos, Multi-Layer Perceptron (MLP)

    图七 多层感知机(或者人工神经网络)

    伟博斯在1981年的神经网络反向传播(BP)算法中具体提出多层感知机模型。虽然BP算法早在1970年就已经以“自动微分的反向模型(reverse mode of automatic differentiation)”为名提出来了,但直到此时才真正发挥效用,并且直到今天BP算法仍然是神经网络架构的关键因素。有了这些新思想,神经网络的研究又加快了。

    在1985-1986年,神经网络研究人员(鲁梅尔哈特,辛顿,威廉姆斯-赫,尼尔森)相继提出了使用BP算法训练的多参数线性规划(MLP)的理念,成为后来深度学习的基石。


    1986, Quinlan, Decision Trees

    图八 决策树(图片来源:维基百科)

    在另一个谱系中,昆兰于1986年提出了一种非常出名的机器学习算法,我们称之为“决策树”,更具体的说是ID3算法。这是另一个主流机器学习算法的突破点。此外ID3算法也被发布成为了一款软件,它能以简单的规划和明确的推论找到更多的现实案例,而这一点正好和神经网络黑箱模型相反。

    决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测。

    在ID3算法提出来以后,研究社区已经探索了许多不同的选择或改进(如ID4、回归树、CART算法等),这些算法仍然活跃在机器学习领域中。

    1.4 现代机器学习的成型时期


    1990, Schapire, Boosting

    图九 Boosting算法(图片来源:百度百科)

    1990年, Schapire最先构造出一种多项式级的算法,这就是最初的Boosting算法。一年后 ,Freund提出了一种效率更高的Boosting算法。但是,这两种算法存在共同的实践上的缺陷,那就是都要求事先知道弱学习算法学习正确的下限。

    1995年,Freund和schapire改进了Boosting算法,提出了 AdaBoost (Adaptive Boosting)算法,该算法效率和Freund于1991年提出的 Boosting算法几乎相同,但不需要任何关于弱学习器的先验知识,因而更容易应用到实际问题当中。

    Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数。他是一种框架算法,主要是通过对样本集的操作获得样本子集,然后用弱分类算法在样本子集上训练生成一系列的基分类器。


    1995, Vapnik and Cortes, Support Vector Machines (SVM)

    图十 支持向量机(图片来源:维基百科)

    支持向量机的出现是机器学习领域的另一大重要突破,该算法具有非常强大的理论地位和实证结果。那一段时间机器学习研究也分为NN和SVM两派。然而,在2000年左右提出了带核函数的支持向量机后。SVM在许多以前由NN占据的任务中获得了更好的效果。此外,SVM相对于NN还能利用所有关于凸优化、泛化边际理论和核函数的深厚知识。因此SVM可以从不同的学科中大力推动理论和实践的改进。

    而神经网络遭受到又一个质疑,通过Hochreiter等人1991年和Hochreiter等人在2001年的研究表明在应用BP算法学习时,NN神经元饱和后会出现梯度损失(gradient loss)的情况。简单地说,在一定数量的epochs训练后,NN会产生过拟合现象,因此这一时期NN与SVM相比处于劣势。


    2001, Breiman, Random Forests(RF)

    决策树模型由布雷曼博士在2001年提出,它是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。随机森林的名称中有两个关键词,一个是“随机”,一个就是“森林”。“森林”我们很好理解,一棵叫做树,那么成百上千棵就可以叫做森林了,这样的比喻还是很贴切的,其实这也是随机森林的主要思想—集成思想的体现。

    其实从直观角度来解释,每棵决策树都是一个分类器(假设现在针对的是分类问题),那么对于一个输入样本,N棵树会有N个分类结果。而随机森林集成了所有的分类投票结果,将投票次数最多的类别指定为最终的输出,这就是一种最简单的 Bagging 思想。

    1.5 爆发时期


    2006, Hinton, Deep Learning

    在机器学习发展分为两个部分,浅层学习(Shallow Learning)和深度学习(Deep Learning)。浅层学习起源上世纪20年代人工神经网络的反向传播算法的发明,使得基于统计的机器学习算法大行其道,虽然这时候的人工神经网络算法也被称为多层感知机,但由于多层网络训练困难,通常都是只有一层隐含层的浅层模型。

    神经网络研究领域领军者Hinton在2006年提出了神经网络Deep Learning算法,使神经网络的能力大大提高,向支持向量机发出挑战。 2006年,机器学习领域的泰斗Hinton和他的学生Salakhutdinov在顶尖学术刊物《Scince》上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。

    这篇文章有两个主要的讯息:1)很多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻划,从而有利于可视化或分类;2)深度神经网络在训练上的难度,可以通过“逐层初始化”( layer-wise pre-training)来有效克服,在这篇文章中,逐层初始化是通过无监督学习实现的。

    2015年,为纪念人工智能概念提出60周年,LeCun、Bengio和Hinton推出了深度学习的联合综述。

    深度学习可以让那些拥有多个处理层的计算模型来学习具有多层次抽象的数据的表示。这些方法在许多方面都带来了显著的改善,包括最先进的语音识别、视觉对象识别、对象检测和许多其它领域,例如药物发现和基因组学等。深度学习能够发现大数据中的复杂结构。它是利用BP算法来完成这个发现过程的。BP算法能够指导机器如何从前一层获取误差而改变本层的内部参数,这些内部参数可以用于计算表示。深度卷积网络在处理图像、视频、语音和音频方面带来了突破,而递归网络在处理序列数据,比如文本和语音方面表现出了闪亮的一面。

    当前统计学习领域最热门方法主要有deep learning和SVM(supportvector machine),它们是统计学习的代表方法。可以认为神经网络与支持向量机都源自于感知机。

    神经网络与支持向量机一直处于“竞争”关系。SVM应用核函数的展开定理,无需知道非线性映射的显式表达式;由于是在高维特征空间中建立线性学习机,所以与线性模型相比,不但几乎不增加计算的复杂性,而且在某种程度上避免了“维数灾难”。而早先的神经网络算法比较容易过训练,大量的经验参数需要设置;训练速度比较慢,在层次比较少(小于等于3)的情况下效果并不比其它方法更优。

    神经网络模型貌似能够实现更加艰难的任务,如目标识别、语音识别、自然语言处理等。但是,应该注意的是,这绝对不意味着其他机器学习方法的终结。尽管深度学习的成功案例迅速增长,但是对这些模型的训练成本是相当高的,调整外部参数也是很麻烦。同时,SVM的简单性促使其仍然最为广泛使用的机器学习方式。

    1.6 启示与未来的发展

    人工智能机器学习是诞生于20世纪中叶的一门年轻的学科,它对人类的生产、生活方式产生了重大的影响,也引发了激烈的哲学争论。但总的来说,机器学习的发展与其他一般事物的发展并无太大区别,同样可以用哲学的发展的眼光来看待。

    机器学习的发展并不是一帆风顺的,也经历了螺旋式上升的过程,成就与坎坷并存。其中大量的研究学者的成果才有了今天人工智能的空前繁荣,是量变到质变的过程,也是内因和外因的共同结果。

    机器学习的发展诠释了多学科交叉的重要性和必要性。然而这种交叉不是简单地彼此知道几个名词或概念就可以的,是需要真正的融会贯通:

    统计学家弗莱德曼早期从事物理学研究,他是优化算法大师,而且他的编程能力同样令人赞叹;

    乔丹教授既是一流的计算机学家,又是一流的统计学家,而他的博士专业为心理学,他能够承担起建立统计机器学习的重任;

    辛顿教授是世界最著名的认知心理学家和计算机科学家。虽然他很早就成就斐然,在学术界声名鹊起,但他依然始终活跃在一线,自己写代码。他提出的许多想法简单、可行又非常有效,被称为伟大的思想家。正是由于他的睿智和身体力行,深度学习技术迎来了革命性的突破。

    深度学习的成功不是源自脑科学或认知科学的进展,而是因为大数据的驱动和计算能力的极大提升。可以说机器学习是由学术界、工业界、创业界(或竞赛界)等合力造就的。学术界是引擎,工业界是驱动,创业界是活力和未来。学术界和工业界应该有各自的职责和分工。学术界的职责在于建立和发展机器学习学科,培养机器学习领域的专门人才;而大项目、大工程更应该由市场来驱动,由工业界来实施和完成。

    END

    碧茂课堂精彩课程推荐:

    1.Cloudera数据分析课;

    2.Spark和Hadoop开发员培训;

    3.大数据机器学习之推荐系统;

    4.Python数据分析与机器学习实战;

    详情请关注我们公众号:碧茂大数据-课程产品-碧茂课堂

    现在注册互动得海量学币,大量精品课程免费送!

    展开全文
  • 普通程序员如何正确学习人工智能方向的知识? 排名较高的几个回答有一些问题:1. 起点较高,不适合题主所问的普通程序员;2. 资源很多,但是没有主次之分,全部学习的话时间久,难度曲线也高低不平;3. 缺乏对...

                          普通程序员如何正确学习人工智能方向的知识?

    排名较高的几个回答有一些问题:1. 起点较高,不适合题主所问的普通程序员;2. 资源很多,但是没有主次之分,全部学习的话时间久,难度曲线也高低不平;3. 缺乏对AI领域的介绍,AI并不仅仅是机器学习。本人也算是一名普通程序员,也刚转入AI领域,因此结合自身经验,想回答这个问题。我的回答有以下特色:较为简单,介绍学习资源不多,但有主次之分。


    一. 本文的目的


    本文的目的是给出一个简单的,平滑的,易于实现的学习方法,帮助“普通”程序员踏入AI领域这个门。这里,我对普通程序员的定义是:拥有大学本科知识;平时工作较忙;自己能获取的数据有限。因此,本文更像是一篇 “from the scratch” 的AI入门教程。


    二. AI领域的特点


    AI,也就是人工智能,并不仅仅包括机器学习。曾经,符号与逻辑被认为是人工智能实现的关键,而如今则是基于统计的机器学习占据了主导地位。最近火热的深度学习正是机器学习中的一个子项。目前可以说,学习AI主要的是学习机器学习。但是,人工智能并不等同于机器学习,这点在进入这个领域时一定要认识清楚。关于AI领域的发展历史介绍推荐看周老师写的《机器学习简介》。下面一个问题是:AI的门好跨么?其实很不好跨。我们以机器学习为例。在学习过程中,你会面对大量复杂的公式,在实际项目中会面对数据的缺乏,以及艰辛的调参等。如果仅仅是因为觉得这个方向未来会“火”的话,那么这些困难会容易让人放弃。考虑到普通程序员的特点,而要学习如此困难的学科,是否就是没有门路的?答案是否定的。只要制定合适的学习方法即可。


    三. 学习方法


    学习方法的设定简单说就是回答以下几个问题:我要学的是什么?我怎样学习?我如何去学习?这三个问题概括说就是:学习目标,学习方针与学习计划。学习目标比较清楚,就是踏入AI领域这个门。这个目标不大,因此实现起来也较为容易。“过大的目标时就是为了你日后放弃它时找到了足够的理由”。学习方针可以总结为 “兴趣为先,践学结合”。简单说就是先培养兴趣,然后学习中把实践穿插进来,螺旋式提高。这种方式学习效果好,而且不容易让人放弃。有了学习方针以后,就可以制定学习计划,也称为学习路线。下面就是学习路线的介绍。


    四. 学习路线


    我推荐的学习路线是这样的,如下图:



    这个学习路线是这样设计的:首先了解这个领域,建立起全面的视野,培养起充足的兴趣,然后开始学习机器学习的基础,这里选择一门由浅入深的课程来学习,课程最好有足够的实验能够进行实战。基础打下后,对机器学习已经有了充足的了解,可以用机器学习来解决一个实际的问题。这时还是可以把机器学习方法当作一个黑盒子来处理的。实战经验积累以后,可以考虑继续进行学习。这时候有两个选择,深度学习或者继续机器学习。深度学习是目前最火热的机器学习方向,其中一些方法已经跟传统的机器学习不太一样,因此可以单独学习。除了深度学习以外,机器学习还包括统计学习,集成学习等实用方法。如果条件足够,可以同时学习两者,一些规律对两者是共通的。学习完后,你已经具备了较强的知识储备,可以进入较难的实战。这时候有两个选择,工业界的可以选择看开源项目,以改代码为目的来读代码;学术界的可以看特定领域的论文,为解决问题而想发论文。无论哪者,都需要知识过硬,以及较强的编码能力,因此很能考察和锻炼水平。经过这个阶段以后,可以说是踏入AI领域的门了。“师傅领进门,修行在个人”。之后的路就要自己走了。



    下面是关于每个阶段的具体介绍:


    0. 领域了解:在学习任何一门知识之前,首先第一步就是了解这个知识是什么?它能做什么事?它的价值在什么地方?如果不理解这些的话,那么学习本身就是一个没有方向的舟,不知道驶向何处,也极易有沉船的风险。了解这些问题后,你才能培养出兴趣,兴趣是最好的引路人,学习的动力与持久力才能让你应付接下来的若干个阶段。关于机器学习是什么,能做什么,它与深度学习以及人工智能的关系,可以看我写的博客 从机器学习谈起(https://link.zhihu.com/?target=http%3A//www.cnblogs.com/subconscious/p/4107357.html)。


    1. 准备工作:如果你离校过久,或者觉得基础不牢,最好事先做一下准备复习工作。“工欲善其事,必先利其器”。以下的准备工作不多,但足以应付后面阶段的学习。


      • 数学:复习以下基本知识。线性代数:矩阵乘法;高数:求导;概率论:条件与后验概率。其他的一些知识可以在后面的学习的过程中按需再补;

      • 英文:常备一个在线英文词典,例如爱词霸,能够不吃力的看一些英文的资料网页;

      • 翻墙:可以随时随地上Google,这是一个很重要的工具。不是说百度查的不能看,而是很多情况下Google搜出来的资料比百度搜的几十页的资料还管用,尤其是在查英文关键字时。节省时间可是很重要的学习效率提升;


    2. 机器学习:机器学习的第一门课程首推Andrew Ng的机器学习 (Machine Learning - Stanford University | Coursera)(https://link.zhihu.com/?target=https%3A//www.coursera.org/learn/machine-learning)。这门课程有以下特点:难度适中,同时有足够的实战例子,非常适合第一次学习的人。在 @子实(https://www.zhihu.com/people/e1cf0d2cc66295d097e289073a30e50e

    的回答下首推了cs229 (斯坦福大学公开课 :机器学习课程)(https://link.zhihu.com/?target=http%3A//open.163.com/special/opencourse/machinelearning.html) 这门课程,但我这里不推荐,为什么,原因有以下:



      • 时间:cs229 的时间太早,一些知识已经跟不上当今的发展,目前最为火热的神经网络一笔带过。而Cousera上神经网络可是用了两个课时去讲的!而且非常详细;

      • 教学:Ng在cs229 时候的教学稍显青涩,可能是面对网络教学的原因。有很多问题其实他都没有讲清楚,而且下面的人的提问其实也很烦躁,你往往不关心那些人的问题。这点在Coursera上就明显得到了改善,你会发现Ng的教学水平大幅度改善了,他会对你循循善诱,推心置腹,由浅入深的教学,在碰到你不明白的单词术语时也会叫你不要担心,更重要的,推导与图表不要太完善,非常细致清晰,这点真是强力推荐;

      • 字幕:cs229 的字幕质量比Coursera上的差了一截。Coursera上中文字幕翻译经过了多人把关,质量很有保证;

      • 作业:cs229 没有作业,虽然你可以做一些,但不会有人看。这点远不如Coursera上每周有deadline的那种作业,而且每期作业提交上去都有打分。更重要的是,每期作业都有实际的例子,让你手把手练习,而且能看到自己的成果,成就感满满!


    3. 实践做项目:学习完了基础课程,你对机器学习就有了初步了解。现在使用它们是没有问题的,你可以把机器学习算法当作黑盒子,放进去数据,就会有结果。在实战中你更需要去关心如何获取数据,以及怎么调参等。如果有时间,自己动手做一个简单的实践项目是最好的。这里需要选择一个应用方向,是图像(计算机视觉),音频(语音识别),还是文本(自然语言处理)。这里推荐选择图像领域,这里面的开源项目较多,入门也较简单,可以使用OpenCV(https://link.zhihu.com/?target=http%3A//opencv.org/)做开发,里面已经实现好了神经网络,SVM等机器学习算法。项目做好后,可以开源到到 Github(https://link.zhihu.com/?target=https%3A//github.com/) 上面,然后不断完善它。实战项目做完后,你可以继续进一步深入学习,这时候有两个选择,深度学习和继续机器学习;


    4. 深度学习:深度学习是目前最火热的研究方向。有以下特点:知识更新快,较为零碎,没有系统讲解的书。因此学习的资源也相对零散,下面是一些资源介绍。其中不推荐的部分并不代表不好,而是在这个初学阶段不合适:


      • 推荐,UFLDL: 很详尽的推导,有翻译,且翻译质量很高;(https://link.zhihu.com/?target=http%3A//ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial

      • 推荐,Deep learning (paper):论文,高屋建瓴,一览众山小;(https://link.zhihu.com/?target=https%3A//www.cs.toronto.edu/%7Ehinton/absps/NatureDeepReview.pdf

      • 推荐,Neural networks and deep learning:由浅入深;(https://link.zhihu.com/?target=http%3A//neuralnetworksanddeeplearning.com/

      • 推荐,Recurrent Neural Networks: RNN推导初步学习的最佳教程;(https://link.zhihu.com/?target=http%3A//www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/


      • 不推荐,Neural Networks for Machine Learning - University of Toronto | Coursera:太难;(https://link.zhihu.com/?target=https%3A//www.coursera.org/learn/neural-networks

      • 不推荐,Deep Learning (book):面面俱到,但缺乏深入;(https://link.zhihu.com/?target=http%3A//www.deeplearningbook.org/

      • 不推荐,CS231n:翻译与字幕问题;(https://link.zhihu.com/?target=http%3A//cs231n.stanford.edu/


    5. 继续机器学习:传统的机器学习有如下特点,知识系统化,有相对经典的书。其中统计学习(代表SVM)与集成学习(代表adaboost)是在实践中使用非常多的技术。下面是相关资源:


      • 推荐,机器学习:如果是在以前,机器学习方面的经典教材首推PRML,但现在周老师的书出来以后,就不再是这样了。首先推荐读周老师的书。这本书有一个特点,那就是再难的道理也能用浅显精炼的语言表达出来。正如周老师的名言:“体现你水平的地方是把难的东西讲容易了,而不是把容易的东西讲难,想把一个东西讲难实在太简单”;(https://link.zhihu.com/?target=https%3A//book.douban.com/subject/26708119/

      • 不推荐,Pattern Recognition And Machine Learning:当前阶段不推荐。PRML是以贝叶斯的观点看待很多机器学习方法,这也是它的一大特色。但对于初学者来说,这种观点其实并无必要。而且此书没有中文翻译,当前阶段硬啃很容易放弃;(https://link.zhihu.com/?target=https%3A//book.douban.com/subject/2061116/


    6. 开源项目:当知识储备较为充足时,学习可以再次转入实践阶段。这时候的实践仍然可以分两步走,学习经典的开源项目或者发表高质量的论文。开源项目的学习应该以尽量以优化为目的,单纯为读代码而学习效果往往不太好。好的开源项目都可以在Github(https://link.zhihu.com/?target=https%3A//github.com/) 里搜索。这里以深度学习为例。深度学习的开源优秀库有很多,例如torch,theano等等,这里列举其中的两个:


      • 推荐,DeepLearnToolbox:较早的一个深度学习库,用matlab语言撰写,较为适合从刚学习的课程转入学习(https://link.zhihu.com/?target=https%3A//github.com/rasmusbergpalm/DeepLearnToolbox

      • 推荐,tensorflow:Google的开源库,时至今日,已经有40000多个star,非常惊人。(https://link.zhihu.com/?target=https%3A//github.com/tensorflow/tensorflow


    7. 会议论文:一般较好的课程都会推荐你一些论文。一些著名的技术与方法往往诞生于一些重要的会议。因此,看往年的会议论文是深入学习的方法。在这个阶段,如果是在校学生,可以选择某个课题,以发论文为目的来学习研究。一般来说,论文是工作的产物。有时候一篇基于实验的论文往往需要你写很多代码,利用一些开源项目。因此开源项目的学习与读会议论文的工作两者之间是有相关的。两者可以同时进行学习。关于在哪里看论文,可以看一下CCF推荐排名(https://link.zhihu.com/?target=http%3A//www.ccf.org.cn/sites/ccf/paiming.jsp),了解一下这个领域里有哪些优秀的会议。下面介绍两个图像与机器学习领域的著名顶级会议:


      • CVPR:与另两个会议ICCV和ECCV合称计算机视觉领域的三大会。(https://link.zhihu.com/?target=http%3A//www.ccf.org.cn/sites/ccf/paiming.jsp

      • Conference on Neural Information Processing Systems:简称NIPS,许多重要的工作发表在这上面,例如关于CNN的一篇重要论文(https://link.zhihu.com/?target=https%3A//papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf)就是发表在上面。(https://link.zhihu.com/?target=https%3A//en.wikipedia.org/wiki/Conference_on_Neural_Information_Processing_Systems


    8. 自由学习:到这里了,可以说是进入这个门了。下面可以依据兴趣来自由学习。前阶段不推荐的学习资源也可随意学习,下面是点评。


      • cs229 (斯坦福大学公开课 :机器学习课程):Ng写的讲义很不错,其中关于SVM的推导部分很清晰,想学习SVM推荐;(https://link.zhihu.com/?target=http%3A//open.163.com/special/opencourse/machinelearning.html

      • Neural networks (Neural Networks for Machine Learning - University of Toronto | Coursera ):大牛的视角跟人就是不一样,看看Hinton对神经网络是怎么看的,往往会让你有种原来如此的感悟。其实看这门课程也等同于读论文,因为几乎每节课的参考资料里都有论文要你读;(https://link.zhihu.com/?target=https%3A//www.coursera.org/learn/neural-networks

      • cs231n (CS231n: Convolutional Neural Networks for Visual Recognition):最新的知识,还有详细的作业。国内应该有团队对字幕进行了翻译,可以找找;(https://link.zhihu.com/?target=http%3A//cs231n.stanford.edu/

      • PRML (Pattern Recognition And Machine Learning):作为一门经典的机器学习书籍,是很有阅读必要的,会让你对机器学习拥有一个其他的观察视角。(https://link.zhihu.com/?target=https%3A//book.douban.com/subject/2061116/


    五. 总结


    本文的目的是帮助对AI领域了解不深,但又想进入的同学踏入这个门。这里只说踏入,是因为这个领域的专精实在非常困难,需要数年的积累与努力。在进行领域学习前,充分认识自己的特点,制定合适的学习方法是十分重要的。首先得对这个领域进行充分了解,培养兴趣。在学习时,保持着循序渐进的学习方针,不要猛进的学习过难资源;结合着学习与实践相辅的策略,不要只读只看,实际动手才有成就感。学习某个资源时要有充分的目的,不是为了学开源项目而看代码,而是为了写开源项目而看;不是为了发论文而写论文,而是为了做事情而写论文。如果一个学习资源对你过难,并不代表一定是你的问题,可能是学习资源的演讲或撰写人的问题。能把难的问题讲简单的人才是真正有水平的人。所以,一定要学习优质资源,而不是不分青红皂白的学习。最后,牢记以兴趣来学习。学习的时间很长,过程也很艰难,而只有兴趣才是让你持之以恒,攻克难关的最佳助力。


    谨以此文与诸位在学海中乘舟的各位共勉。


    出处:https://www.zhihu.com/question/51039416/answer/138535202


    版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。


    展开全文
  • 在经历了蛮荒的PC互联网时代,混战的移动互联网时代,到现今最火的人工智能时代。大数据、云计算、机器学习的技术应用,已经使得IT从业者的门槛越来越高。套用句樊登读书会的宣传口号“keep learning”,保持对...
  • 人工智能、机器学习、深度学习、神经网络的区别 人工智能、机器学习、深度学习的包含关系如上图所示 1 人工智能 人工智能是计算机科学的个分支, 它试图让人们了解智能的实质,并生产出种新的能以与人类智能相似...
  • 想从事和人工智能相关的工作,大学可以选什么专业呢?AI相关的职业可以简单介绍一下吗? 人工智能是一门交叉学科,数学理论和计算机技术是其重要的组成部分。该领域的研究主要包括图像识别、语言识别、专家系统...
  • 人工智能学习线路图

    2018-12-19 12:12:39
    人工智能学习线路图 Python教程 Python 教程 Python 简介 Python 环境搭建 Python 中文编码 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 Python 循环语句 Python 数字 Python 列表(List)...
  • 人工智能 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是计算机科学的个分支,它企图了解...
  • 有人说,人工智能AI)是未来,人工智能是科幻,人工智能也是我们日常生活中的部分。这些评价可以说都是正确的,就看你指的是哪人工智能。今年早些时候,Google DeepMind的AlphaGo打败了韩国的围棋大师李世乭...
  • 问题学习人工智能需要哪些必备的数学基础? 此问题转载自: http://www.pmcaff.com/entry?id=1056613181409344对于大多数的新手来说,如何入手人工智能其实都是一头雾水,比如到底需要哪些数学基础、是否要有...
  • 人工智能 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是计算机科学的个分支,它企图了解...
  • AI 人工智能学习路线

    2019-02-14 14:07:27
    阶段人工智能基础 - 高等数学必知必会 本阶段主要从数据分析、概率论和线性代数及矩阵和凸优化这四大块讲解基础,旨在训练大家逻辑能力,分析能力。拥有良好的数学基础,有利于大家在后续课程的学习中更好的...
  • 不少朋友常常问,人工智能、机器学习和深度学习三者怎么区别,他们的有什么关系?因此,大圣众包(www.dashengzb.cn)小编为了让大家不再混淆,我们起来看看专家的详细讲解,一一揭秘!  人工智能是最早出现的...
  • 下图是AI、机器学习和深度学习三个概念的个关系图。AI的领域要相对较广泛,机器学习AI个子领域,而深度学习是机器学习领域中的个子集。深度学习网络与“典型”的前馈多层网络之间是有一些区别的,如下:...
  • 最近很长的段时间,人工智能的热度都维持在一定的高度。但是大家在关注或研究人工智能领域的时候,总是会遇到这样的几个关键词:深度学习、机器学习、神经网络。那他们之间到底是什么样的关系呢? 先说人工智能,...
  • 有人说,人工智能AI)是未来,人工智能是科幻,人工智能也是我们日常生活中的部分。这些评价可以说都是正确的,就看你指的是哪人工智能。 今年早些时候,Google DeepMind的AlphaGo打败了韩国的围棋大师李世...
  • 人工智能学习心得

    2020-06-24 15:43:57
    如果你不是想从事人工智能这个行业,或者是软件开发的行业,那么久没有必要往下看了,没有必要把时间浪费在你不想做的事情上,如果你还想继续往下看,那么说明你还是希望自己能够从事这个行业,这篇文章写给初入人工...
  • 那么作为个普通程序员,在已有C++/ java / python这样的语言技能栈的前提下,我们该如何拥抱变化,如何向人工智能(AI)靠拢? AI,机器学习,深度学习? 近两年科技领域有些火热名词常常会被我们津津乐道,诸如...
1 2 3 4 5 ... 20
收藏数 88,371
精华内容 35,348
关键字:

31岁学习人工智能