前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >工作流程(第3部分) - 特征提取

工作流程(第3部分) - 特征提取

作者头像
花落花飞去
发布2017-12-25 11:44:39
1.3K0
发布2017-12-25 11:44:39
举报
文章被收录于专栏:人工智能人工智能

本译文自EROGOLhttp://www.erogol.com 发表的 ML Work-Flow (Part 3) - Feature Extraction,文中版权、图像代码的数据均归作者所有。为了本土化,本文略作修改。

在这篇文章中,我将讨论在一个成功的ML中的特征提取(Feature Feature,也称为特征构建,Feature Aggregation ...)的细节。提取到一个好的特征表示与这个领域相关的程度,它对你的最终结果有着重要的影响。 即使您保持所有设置相同,但使用不同的特征提取方法,您在最后仍会观察到截然不同的结果。 因此,选择正确的特征提取方法需要细致的工作。

特征提取是一个将给定的原始数据转换为嵌入在一个标准化、独特和机器可理解的空间中的实例点的过程。 标准化是指具有相同长度的可比较的表示; 所以一开始你就就要计算具有非常多样的结构差异(如不同长度文档)的实例的相似性或差异性。 独特意味着不同的类实例具有不同的特征值,这样就方便我们在新的数据空间中观察不同类的集群。机器可理解的表示主要是给定实例的数字表示。 你可以通过阅读来理解任何文档,但是机器只能理解数字所暗含的语义。

现在,我们可以把特征提取分成两个主要的小标题:

经验法

通常专家数据分析师用专业知识,数据分析和分析观测的推理混合发现特征。 这对于那种自动化解决方案对于某些没有太大帮助的行业的学科(如NLP和计算机视觉)尤其重要。 我们知道什么是最重要的,哪些规则隐含在这些领域。 然而,对于具有交易历史的客户的原始数据库,完全不知道对特定的客户进行引导之后会有什么样的特特征。 这需要结合人类的直觉,专业知识等方式来推断。

方法是分析,推理,假设,测试和递归的迭代。分析数据,声明一些实例之间的一些共同点,用统计工具测试您的假设,如果是真的,则将其添加到已批准的功能集中,否则重新定义声明或者忽略。 (我想这需要一个单独的博客文章来进行更多的讨论。)

SENTIO SPORTS,我也想为足球队和球员做同样的事情。例如,我们试图根据球队和球员的计算特征来预测未来比赛的结果。然而,这些功能并不是自动化的,我试图分析历史数据,以提出不同价值观之间的试金石价值,相关性和因果关系。这就像在大海捞针一样,特别是如果你对足球没有足够的了解(就像我,但我相信数字!)。

算法方法

确定性算法:

如果我们正在研究一个我们知道将实例与另一实例分开的重要方面的学科,那么我们就可以找到一套确定性的规则来发现这些规则。在计算机视觉等许多领域,情况就是这样,人们不断地提出新的算法。这些方法通常依赖于一些人类认知和认知的研究。一旦研究人员提供了基于图像边缘和角落的人类视觉感知的一些线索,计算机视觉社区设备算法在给定图像上发现相同的结构并将这些结构转换为数字形式。例如,他们计算某些方向的边数,并通过这些数字创建直方图。在这方面,这些是确定性的方法,如果提供相同的数据,则可以得到相同的特征值。

我主要是在特征学习和计算机视觉方面经验丰富,但我将尝试总结一些特定领域的已知特征提取算法;

  • NLP
    • Bag of Words: 这是非常简单但非常强大的特征提取方法。它只是在给定的语料库(称为词汇表)中找到一组重要的单词,然后在每个文档中对这些单词进行计数,并为每个文档创建一个词频率的直方图。很多情感分析,文档分类应用还是使用BoW作为特征提取方法。
    • N-Grams:不要把每个单词作为一个单一的单元,而是包含一定程度的组合信息并考虑单词组。
    • 特征散列:即使作为特征提取后续处理以提高效率的后处理更为常见,也可以将其自身定义为特征提取方法。这个想法是将基本的散列技巧应用于给定的数据来提取特征。因此,我们认为任何类似的项目都会有相似的散列值。
  • 计算机视觉
    • SIFT:尺度不变特征变换可能是最常见的特征提取算法,特别是在工业应用中。它基本上是不同比例的图像缩放+边缘检测+感兴趣区域+不同定向ROI的直方图组合。 (SIFT的最佳教程
    • [图片]
      [图片]
    • HOG:定向梯度直方图是行人检测的艺术状态。与SIFT几乎没有像对比度标准化那样的技术差异。
      [图片]
      [图片]
      HOG - 定向梯度直方图
    • LBP:本地二进制模式是获取图像的纹理定义的最简单和最快的方式,并且具有非常成功的人脸识别应用程序。
    • Bag of Words:这是BoW应用程序,通过给定图像补丁的SIFT,HOG或LPB定义的可视化词语来映射域。(教程
      [图片]
      [图片]
      袋子的图像的话
  • 声音识别

(我知道不多,但我知道,具有很多功能多功能的工具箱

  • MFCC
  • LPC
  • PLP
特征(表示)学习算法:

这是现在正在改变的地方。特征学习是学习原始实例转换为代表性和歧视性的表示,这对于任何进一步的监督或无监督的目的是有用的。顾名思义,在这些方法中,我们学习了表示以及最终的预测模型。如果我们问为什么这是有用的,这里有一些要点。

  • 不可知论的应用:相同的学习算法可以学习像很少或根本没有变化的图像或文本的不同领域的功能。
  • 域适配:您可以训练一个模型,并将其用于来自不同资源的许多不同数据集。它还通过更好的泛化性能来衡量域转移问题。(区域移动被解释为来自不同数据资源的两个数据集的统计差异,因此从一个数据集学习的任何模型可能给另一个数据集带来不好的结果)。这种方法有很多实际的成果。计算机视觉社区的人们在Image-Net上使用预先训练的神经网络进行任何其他分类任务,即使目标概念不涉及Image-Net。我相信这是真正的AI的一个非常坚实的一步。
  • 多任务学习:学习功能可以用于任何目标,如检索和分类。
  • 多感官输入:只需很少的预处理,您就可以同时向单个模型提供不同的感官数据,并最终学习合作的表示。例如,可以同时提供声音和文本数据来为每个实例学习单个表示。

特别是在科学时代,特别是微软,Facebook,谷歌等大型科技公司的关注下,对于特色学习的研究活动非常多。它也是深度学习社区的一个子话题。

尽管有大量不同的特征学习算法,但我在这里列出了一些:

  • 深度学习
    • 自动编码器
    • 限制玻尔兹曼机器
    • 卷积神经网络
    • 去卷积神经网络
      [图片]
      [图片]

神经网络 - 每个图层都包含不同级别的特征值。

  • 稀疏编码(LeCun的作品)
  • 压缩感应(自动编码器的前身)
  • 结构稀疏度算法
  • 递归稀疏编码(理论上相当于神经网络)
    [图片]
    [图片]
    稀疏编码
  • 矩阵分解(基本教程
  • PCA
  • SVD

实际问题

那么,我们在许多不同的角度谈论了特征提取,像算法到一般的方法论。现在,我将谈谈特征提取步骤的实际问题。

给力你一大堆数据,希望为你的最终“目的”提取“可能”的“最佳”特征。你可以参考下面几点,来确定你的选择。

  • 数据量:你的数据有多大?你可能知道最好的算法,但是如果它不能用你的数据进行扩展,这是毫无意义的,甚至是耗时的。你应该考虑在预期的系统中的计算问题。
  • 最佳:探讨目前的情况,并对问题进行研究。人工没有任何研究,只凭传闻证据,结果可能会令人失望。
  • 可能性:你可能找到最先进的特征提取方法,但是你不了解它。那么就要选择你了解的并且个你的实验相关的算法。很多人只是通过调用相关函数来使用算法,不了解算法的含义。我觉得这是一个非常严重的错误。因为你正在进入一条黑暗的道路,这会影响到下一个不步骤。您应该了解所有细节,尤其是特征提取算法的期望输入和预期输出,以便您可以检查正确性并理解每个特征值的含义。
  • 目的:为什么你需要这些功能。这是另一个基本问题。一些功能可能适用于分类,而另一些功能则适用于检索。

作为一个非常笨但重要的点,“ 检查NULL值!”。在每个特征提取过程之后,不要忘记检查所有数据的NULL值。否则,你会发现自己处于非常朦胧的状态,所以一定要检查那些NULL值。

目前为止就是这些。在这周,如果我发现任何关于特征提取的更多评论或重要的东西,我也会把它们写在在这里。感谢收看。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 经验法
  • 算法方法
    • 特征(表示)学习算法:
    • 实际问题
    相关产品与服务
    人脸识别
    腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档