zoukankan      html  css  js  c++  java
  • 人工智能、机器学习和深度学习


    • 人工智能(Artificial Intelligence)是一个最广泛的概念,人工智能的目的就是让计算机这台机器能够像人一样思考。
    • 机器学习(MachineLearning)是实现人工智能的方式,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,使之不断改善自身的性能。
    • 深度学习(Deep Learning)是一种机器学习的方法,它试图使用包含复杂结构或由多重非线性变换构成的多个处理层(神经网络)对数据进行高层抽象的算法。
    1. 人工神经网络是机器学习中的一类算法
    2. 深度学习就是其中一种神经网络算法。
    3. 深度学习还有个别名叫(UnsupervisedFeature Learning)顾名思义就是,不要人参与特征的选取过程。
    4. 深度学习的实质是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。

    所以“深度模型”是手段,“特征学习”是目的。
    “深度”:通过多隐层感知器,组合底层特征行程跟加抽象的高层表示属性类别或特征,已发现数据的分布式特征。
    “学习”:模拟人脑分析学习的神经网络。

    • 神经网络是一组大致模仿人类大脑构造设计的算法,用于识别模式。神经网络通过机器感知系统解释传感器数据,能够对原始输入进行标记或聚类等操作。神经网络所能识别的模式是数值形式,因此图像、声音、文本、时间序列等一切现实世界的数据必须转换为数值。
      在深度学习网络中,每一个节点层在前一层输出的基础上学习识别一组特定的特征。随着神经网络深度增加,节点所能识别的特征也就越来越复杂,因为每一层会整合并重组前一层的特征。


    • 深度学习的过程是分为训练和推理(既“评估”)两个过程,通过训练过程来获得数据模型,然后用于评估新的数据。
      数据模型分为两种:
    1. 判别模型(DiscriminativeModel):可以直接用来判别事物的(比如分类)。既然直接可以用来分类,也就是说我们可以在已知属性的条件下,对该记录进行判断。所以,判别模型是对条件概率进行的建模,也就是(p(Y|X))。这里(X)就是属性集合,实际上就是一个向量;而(Y)则可能是一个值(此时对应分类问题),可能是一个向量(此时对应序列标注问题)。判别模型常用于处理分类问题(比如鉴定垃圾邮件)、图像识别等等。
      生成模型(GenerativeModel):可以描述数据的生成过程。换句话说,已知了这个模型,我们就可以产生该模型描述的数据。而数据由两部分组成,也就是((X,Y)),前者是特征,后者则是类别((Y)是标量)或者序列类别((Y)是向量)。要描述整个数据,也就是要对(p(X,Y))进行建模,所以是对联合概率进行建模。生成模型本身不是做分类或者序列标注的,但是可以用来解决这些问题,也可以用于生成式问题,比如聊天机器人、比如AI谱曲等问题。
    • 机器学习可以分成下面几种类别:
    1. 监督学习: 从给定的训练数据集中学习出一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求是包括输入和输出,也可以说是特征和目标。训练数据中的目标是由人标注的。常见的监督学习算法包括回归分析统计分类
    2. 无监督学习: 与监督学习相比,训练集没有人为标注的结果。常见的无监督学习算法有聚类
    3. 半监督学习: 介于监督学习与无监督学习之间。它主要考虑如何利用少量的标注样本和大量的未标注样本进行训练和分类的问题。。
    4. 增强学习: 通过观察来学习做成如何的动作。每个动作都会对环境有所影响,学习对象根据观察到的周围环境的反馈来做出判断。
      在传统的机器学习领域,监督学习最大的问题是训练数据标注成本比较高,而无监督学习应用范围有限。利用少量的训练样本和大量无标注数据的半监督学习一直是机器学习的研究重点。


    当前非常流行的深度学习GAN模型和半监督学习的思路有相通之处,(GAN)是“生成对抗网络”(Generative Adversarial Networks)的简称,包括了一个生成模型(G)和一个判别模型(D)(GAN)的目标函数是关于(D)(G)的一个零和游戏,也是一个最小-最大化问题。
    (GAN)实际上就是生成模型和判别模型之间的一个模仿游戏。生成模型的目的,就是要尽量去模仿、建模和学习真实数据的分布规律;而判别模型则是要判别自己所得到的一个输入数据,究竟是来自于真实的数据分布还是来自于一个生成模型。通过这两个内部模型之间不断的竞争,从而提高两个模型的生成能力和判别能力。

  • 相关阅读:
    [c++]在类中定义常量的几个做法
    VC6中使用高版本系统API的方法
    Delphi编程中实现窗口分割
    Win32 SDK窗口程序代码(含详细注释)
    [c++]在C++中定义常量的两种方法的比较
    VC6里的_WIN32_WINNT宏
    [VC]自己实现TRACE功能
    [delphi]保证程序只运行一个实例
    转载:C# 设置文件夹权限(代码简单)
    VC:动态链接库
  • 原文地址:https://www.cnblogs.com/q735613050/p/7270673.html
Copyright © 2011-2022 走看看