百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

深度学习之神经网络特征综述

wptr33 2025-02-28 17:41 27 浏览


深度学习依赖于神经网络所提取的特征而闻名,在以往传统的学习方法中,特征往往是通过具有经验的专家来提取的,而深度学习方法中的特征提取是通过人工神经网络自动提取的,相比而言,深度学习方法对于特征的提取不仅要求更低,不需要专家的参与,而且少了人为的干预,对于特征本身的提取也更加全面,这也是深度学习最近几年在实际应用中越来越受欢迎的原因之一。





特征的概念

特征在字面意思上的解释是对于人或事物可以识别的特殊的象征或标志,简单来说,特征往往比其他非特征部分更容易让人们所分辨。既然特征是一个显著性的标志,那么我们对比不同物体的时候,是否只需要抓住这些特征就能够对比出两类物体呢?答案是肯定的,实际上我们人类在分辨物体的时候,大脑中所处理的信息就是当前物体的特征信息。


我们的大脑进化了亿万年,早已经是已知的生物中最强大的神经网络了,其特征提取能力更是一骑绝尘,没有其他任何可以替代人脑的第二个智慧容器了。人脑进化到目前的优势之一就是特征的快速提取,我们的大脑就像一个滤波器,会在很短的时间内,帮我们筛选出有用的信息,滤除掉冗余的信息,在这一点上人工神经网络还需要很长的路要走。



按照人脑的信息对比,特征即是对当前任务处理有用的信息,反之对当前任务处理无用的信息则是冗余信息。人脑由于遗传和进化的原因,自然对特征的提取相当准确,这帮助人类在物竞天择、适者生存的自然法则下胜出,从而站立在生物链的最顶端。和人脑相比,现在以深度学习人工神经网络为主的人工智能发展还处于工业革命时代的前夕,当人工智能的发展到了一定阶段,理论上像《终结者》、《黑客帝国》中的智能体都是轻而易举就能实现的。


人工神经网络想要达到人脑的处理效果和效率,就要提高对于特征的理解和提取,无论是分辨不同的对象还是找到目标的位置,都需要对具体物体的特征进行高精度的提取,拿到特征后才能进行下一步操作。目前人工神经网络能够提取到的特征虽然说已经比较全面了,但这都是在单一任务下的特征提取效果,如果是多任务下的特征提取,情况就不太乐观了。



上面说的多任务是指让人工智能同时执行多个不同的任务,比如训练一个神经网络,让这个神经网络既要学会下棋,又要学会弹钢琴,这个时候,人工神经网络往往达不到我们的预期,所以目前的人工智能还是弱人工智能,也就是说,目前的人工智能能够在某一领域达到或者超越人类,比如Alpha GO在围棋领域已经超越人类,但是不能够同时在多个领域超越人类,这也是判定弱人工智能和强人工智能的边界。






特征的可解释性

特征的可解释性一直是业界的一大难题。甚至于在欧盟内部因为以深度学习为主神经网络模型给不出合理的特征解释,而被停止商用,这也是行业内外很多人士对于深度学习并不推崇的原因之一。当然就像有些经典语录一样,虽然嘴上说着不喜欢,但是身体却很诚实,这在深度学习当中也是常见的现象,有些嘴上说着深度学习就是一个黑盒子,没有可解释性,只有传统的人工特征提取方法才是安全的方法,但是在实际工作中却不得不使用深度学习的方法来完成工作,这也是免不了真香定律。



一般来说传统的学习方法虽然提取特征的过程比较繁琐,需要专业人员来进行提取,也有可能会造成提取的特征不全,但是因其具有良好的可解释性,一直在学术界备受推崇,而深度学习在前几年并不受业界研究者的待见,只有在工业界才可以看到其身影,近两年随着落地应用越累越多,才逐渐被大家所接受。


举个例子,以红酒分类为例,在传统的人工提取特征的方法中,想要拿到红酒的特征,必须要专业的红酒专家来分析不同的红酒成分来确定不同的红酒种类,这些不同的红酒成分就是红酒的特征,比如颜色、口感、年份、酒精度、原料、是否起泡、微量元素含量等等,都是需要红酒专家来确定的,等专家们确定好这些特征了,然后再通过一些传统的机器学习方法对这些特征进行分类,就完成了对红酒的分类。



上面对红酒分类的整个过程,最复杂的就是人工对特征的提取过程,虽然过程繁琐,但是我们知道这些特征代表的意义是什么,也就是特征的可解释性非常好。反观深度学习中对于特征的提取就没有这么讲究了。一般来说,只要是输入神经网络中的数据,不管是什么数据,对于神经网络而言都是一堆矩阵,只要定好标签,给上一定范围内的随机参数,让其反复的进行学习即可,神经网络通过反向传播算法,最终会学习出正确的输出结构,而输入数据的特征在学习的过程中就形成了。



至于神经网络中的特征到底是什么,就没有人能解释得清楚了,通过神经网络拿到的特征,无论是网络层中哪个部位取出的特征,都只能显示出一堆矩阵,具体代表了什么现实意义,是没有任何线索可以追踪的。从另一方面来说,由于神经网络中的特征是模型在学习的过程中逐渐生成的,所以这些特征没有人为的干预,特征的分布更加客观,更有利于模型进行分类或者回归,这是传统的人工设计的特征无法相比的。






网络层中的特征

传统的特征提取方法是通过人工提取而来,人工神经网络中的特征是通过网络层计算得来的,最简单的特征提取方法就是在确定好数据标签y’后,通过反向传播算法和线性层来提取特征,比如y=wx+b,其中y是输出值,x是固定输入,w是权重,b是偏差,w和b都会随着模型的反向传播不断更新。一般通过损失函数E=1/2(y-y’)求得损失,然后通过反向传播算法降低损失E,由于损失函数中的y’是固定的,只有改变输出y,让y和y’越来越接近,才能够达到我们的目的,而改变y的值回到了前向输出公式y=wx+b上,在这个公式中,能够改变的值就只有w和b,所以最终我们通过改变w和b的值让输出的y发生变化,让其和标签y’更加接近。可见,在输入x不变的前提下,w和b的改变会让输出y越来越接近标签y’。



再复杂一些就是添加一个非线性函数,比如y=f(wx+b),这个f就是非线性函数,其作用就是将原来的线性空间的数值映射到非线性空间,让模型具有非线性的分类或者拟合能力。其本质是对维度的提升,比如在低维空间中线性不可分的问题,也就是不能使用一条直线对其分割的问题,我们只有使用非线性方法才能对其分割,比如使用曲线和折线对其分割,而在高维空间中就可以使用线性方法对其分割了。所以说低维空间中的线性不可分问题转到高维空间中就变成了线性可分的问题。



神经网络中的特征是通过学习而获得的,正常情况下,在网络层较浅的时候,提取到的特征不会有很强的标志性,这个标志性是指特征对原数据的代表性。而到了网络层数较深的时候,模型提取到的特征会有较强的代表性。当要解决的任务越复杂,对模型的参数要求也越高,往往这个时候的网络层数也更深,即意味着能够解决更复杂的任务。所以可以认为网络层数越深,对于特征的提取能力越强。


但是凡事都会出现物极必反的现象,神经网络也是一样,按照正常逻辑,网络层数越深,往往意味着模型的能力越强,所处理的任务会越好。但是这种想法忽略了一个重点,那就是要被处理的任务本身,一般来说我们只需要设计出一个模型刚好能够满足被处理的任务就可以了,但是神经网络是在训练的过程中才逐渐理解到该任务到底需要多大的神经网络才是合适的,也就是说在处理任务之前,我们并不知道到底要多深的网络才是合适的。这种困惑导致网络模型往往设计的比要处理的任务实际需要的网络模型大了很多。



网络模型过大,对于简单任务来说是一件吃力不讨好的事情,不但增加了冗余的参数量,导致对于硬件要求的提升,还会增减额外的训练时间以及影响推理速度。最主要的是模型过大过深,还会导致在处理简单任务的时候出现模型退化的问题,也就是说网络越深,精度反而会降低。一般是网络在较浅的时候,精度是逐渐提高的,当网络深度达到一定阈值后,精度又会逐渐降低。


好在华人学者Kaiming He等人早在2015年时候就提出了Deep Residual Learning的方法,论文中提出了一种新的网络结构Res-Net,采用了恒等映射的方法,消除了多余的网络层数,使得一个较深的网络能够随着任务的复杂度而自适应的训练所需的网络层参数,而非统一训练,从而解决了网络退化这个问题。



网络层中的特征变化有利于我们进行不同的任务,一般来说网络层数越浅,特征的维度也越低,特征所表现出的信息越细节,覆盖越局部,内容也越具体。反之,网络层数越深,特征维度也越高,特性表现出的信息也越整体,覆盖越全面,内容也越抽象。根据这些特性,我们可以很好的设计不同任务的网络,比如分类网络对于特征的信息越全面更有利于分类,这时候的网络我们可以设计得更深一些,而像检测、分割等任务,不仅仅需要全面的信息,还需要局部的信息,尤其是在做细粒度分割任务的时候,浅层网络所带来的细节部位的分割精度是深度网络所达不到的,这时候一般就需要浅层网络联合深层网络一起完成任务。



神经网络的快速发展是最近这几年才大规模开始的,关于神经网络特征的理解,也是仁者见仁,智者见智,但是总体的目标是不变的,那就是朝着越来越高效的特征提取方向发展。不管是以前的CNN模型,还是这两年的transformers模型,以及提出的各种注意力的方法,都是在设计怎么去除掉对于当前任务无关的冗余信息,增加对于当前任务有用的信息权重,从而实现特征的高效提取,以达到快速高效的完成任务。






作者:智谷炼药协会学徒

相关推荐

MySQL进阶五之自动读写分离mysql-proxy

自动读写分离目前,大量现网用户的业务场景中存在读多写少、业务负载无法预测等情况,在有大量读请求的应用场景下,单个实例可能无法承受读取压力,甚至会对业务产生影响。为了实现读取能力的弹性扩展,分担数据库压...

Postgres vs MySQL_vs2022连接mysql数据库

...

3分钟短文 | Laravel SQL筛选两个日期之间的记录,怎么写?

引言今天说一个细分的需求,在模型中,或者使用laravel提供的EloquentORM功能,构造查询语句时,返回位于两个指定的日期之间的条目。应该怎么写?本文通过几个例子,为大家梳理一下。学习时...

一文由浅入深带你完全掌握MySQL的锁机制原理与应用

本文将跟大家聊聊InnoDB的锁。本文比较长,包括一条SQL是如何加锁的,一些加锁规则、如何分析和解决死锁问题等内容,建议耐心读完,肯定对大家有帮助的。为什么需要加锁呢?...

验证Mysql中联合索引的最左匹配原则

后端面试中一定是必问mysql的,在以往的面试中好几个面试官都反馈我Mysql基础不行,今天来着重复习一下自己的弱点知识。在Mysql调优中索引优化又是非常重要的方法,不管公司的大小只要后端项目中用到...

MySQL索引解析(联合索引/最左前缀/覆盖索引/索引下推)

目录1.索引基础...

你会看 MySQL 的执行计划(EXPLAIN)吗?

SQL执行太慢怎么办?我们通常会使用EXPLAIN命令来查看SQL的执行计划,然后根据执行计划找出问题所在并进行优化。用法简介...

MySQL 从入门到精通(四)之索引结构

索引概述索引(index),是帮助MySQL高效获取数据的数据结构(有序),在数据之外,数据库系统还维护者满足特定查询算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构...

mysql总结——面试中最常问到的知识点

mysql作为开源数据库中的榜一大哥,一直是面试官们考察的重中之重。今天,我们来总结一下mysql的知识点,供大家复习参照,看完这些知识点,再加上一些边角细节,基本上能够应付大多mysql相关面试了(...

mysql总结——面试中最常问到的知识点(2)

首先我们回顾一下上篇内容,主要复习了索引,事务,锁,以及SQL优化的工具。本篇文章接着写后面的内容。性能优化索引优化,SQL中索引的相关优化主要有以下几个方面:最好是全匹配。如果是联合索引的话,遵循最...

MySQL基础全知全解!超详细无废话!轻松上手~

本期内容提醒:全篇2300+字,篇幅较长,可搭配饭菜一同“食”用,全篇无废话(除了这句),干货满满,可收藏供后期反复观看。注:MySQL中语法不区分大小写,本篇中...

深入剖析 MySQL 中的锁机制原理_mysql 锁详解

在互联网软件开发领域,MySQL作为一款广泛应用的关系型数据库管理系统,其锁机制在保障数据一致性和实现并发控制方面扮演着举足轻重的角色。对于互联网软件开发人员而言,深入理解MySQL的锁机制原理...

Java 与 MySQL 性能优化:MySQL分区表设计与性能优化全解析

引言在数据库管理领域,随着数据量的不断增长,如何高效地管理和操作数据成为了一个关键问题。MySQL分区表作为一种有效的数据管理技术,能够将大型表划分为多个更小、更易管理的分区,从而提升数据库的性能和可...

MySQL基础篇:DQL数据查询操作_mysql 查

一、基础查询DQL基础查询语法SELECT字段列表FROM表名列表WHERE条件列表GROUPBY分组字段列表HAVING分组后条件列表ORDERBY排序字段列表LIMIT...

MySql:索引的基本使用_mysql索引的使用和原理

一、索引基础概念1.什么是索引?索引是数据库表的特殊数据结构(通常是B+树),用于...