首页 > 其他分享 >我的4年学习心得:AI 应该是一个整体!

我的4年学习心得:AI 应该是一个整体!

时间:2022-10-20 12:34:24浏览次数:54  
标签:智慧 分类 AI 知识 学习心得 整体 抽象 人类 我们


 Datawhale干货 

作者:太子长琴,算法工程师,Datawhale成员

本文涉及到的思考从我 2017 年接触人工智能就开始萌芽了,由于个人经历关系,我一开始是从认知科学的角度开始自己的工程师生涯的,看的论文也更偏向如何构建真正的人工智能。比如,Few-Shot 或 One-Shot Learning、因果推理、快速思考、学习如何学习,甚至开始思考语言学以及究竟什么是智能。很自然地也熟知了图灵、冯诺依曼、维特根斯坦。直至现在依然对这些理论相当沉迷,这是我当初下定决心从事 AI 的原因。

虽然目前从事 NLP 研发工作,但我对自己的定位一直都是 AI 工程师,AI 不应该被割裂,它从来都是个整体。

分类是本能

言归正传,我们今天将从基础的分类说起。乍一看这个问题好像很简单:分类不就是对给定样本根据特征不同做划分吗?

从表面来看这么说当然没问题,但让我们再往深多想一点点,为什么是分类?或者说,为什么要做分类?

要回答这个问题我们得先了解分类到底在干什么? 不妨先看个小例子,就拿 Ng 的猫咪识别器举例吧。

我的4年学习心得:AI 应该是一个整体!_编程语言

先想人是怎么区分猫和其他动物的,大多数情况下,即便是小孩子,只要给他们看少数几张(甚至一张)照片,他们就知道 “猫咪” 长啥样子了。他们不需要学习大量照片,也不需要常识(好比预训练)。这说明人类在做分类时,不仅仅是在做分类,他们还从特征中构建出了更加抽象的“概念”,也可以理解为「知识」。这正是人类「学习」的过程。正是由于人类的好奇心让我们想去学习,而在人类刚刚出现时并没有现成的“知识体系”,所以很自然地要从观察到的不同个体中去学习。

面对未知个体,很自然地我们就会尝试将其纳入我们已有的知识体系,这时候自然而然地就开始做分类了。综上所述,「分类」根本上是人类自然进化来的「学习」 方法,也是我们认识和了解这个世界的基本方法。

换个角度来看,将未知个体快速归到已知类别也是最省脑力的方法。这也可以解释为什么我们倾向于贴标签。

想象一下这样的描述:“他狮子座,A 型血,乐观,有幽默感”,是不是很有画面感?但其实仔细思考一下,这些描述并没有太多意义,每个人都有乐观和幽默的一面,星座血型更加不能说明什么。但这就是很符合我们的认知习惯,有助于我们快速在大脑中 “刻画” 出一个人形象的人来。

而且,人类倾向于觉得 “即便有个错误的认知也比完全一抹黑要好” 。我可以举个例子,假设公司某个项目出问题了,老板吩咐你和你的另一个同事小林赶紧去解决,假设你是那种谋定而后动型,喜欢先花很多时间思考;而小林正好和你相反,马上开始跑这跑那,一会儿打电话,一会儿找人沟通。现在,假设过了两个小时候,项目问题突然消失了(也就是说,实际可能并不是公司这边的问题),你觉得老板会觉得你和小林谁的表现更好些?

这就是人类认知上的问题,我们倾向于觉得遇到问题时总应该做点什么,也就是说,即使你做的事情毫无意义甚至还浪费了大家的时间和精力,但大多数人就是会认为比什么都不做好。

先别着急失望悲观,我们退一步看,其实人类本身就有很强的自我纠正能力,并不怕错;而且错误的认知并非没有意义,它至少让我们知道了那样是不对的。

虽然小林的认知是错误的(并不知道原因就开始行动),但他的行为无疑给大家极大的 “安慰”,而且并没有损失不是。你还别说,“安慰” 某种程度上就像信仰一样,我们可不能轻易说它没用。综上,星座血型有人信不足为奇,喜欢贴标签更加正常,毕竟又不损失什么。

知识是力量

现在,我们应该对分类有了一个比较深入的了解。接下来讨论人类通过 “分类” 学习到 “知识” 的过程。

说这个之前,我先介绍个关于学习和认知的模型:DIKW 模型,D 表示 Data(数据)、I 表示 Information(信息)、K 表示 Knowledge(知识)、W 表示 Wisdom(智慧)。

我的4年学习心得:AI 应该是一个整体!_编程语言_02

四个层次一个比一个抽象,我们现在的 AI 基本还停留在「数据」到「信息」的阶段,未来很重要的就是「知识」这一步。至于「智慧」,只要活得足够久(拥有足够多的知识)自然有可能会产生智慧,现在谈论为时尚早。提到「知识」,顺带讨论一下其实很早之前就有但现在突然很火的知识图谱,这玩意儿现在看来更像是个 “常识图谱”,Ontology 勉强能算,但这方面的研究又不多。不过这可以理解,毕竟具体的东西更容易做,科研需要一步一步实践。

言归正传,我们还是从人类学习到「知识」的过程开始,并假定是婴幼儿。继续拿猫咪识别器举例子,当婴儿在看到一张猫的图片后,大脑会在瞬间完成特征提取工作。这里有两个需要注意的:第一,这些特征应该并不是从零开始得到的,而是基于婴儿脑中已有的「知识」(也许是 “特征”),比如猫的一张脸,上面有两只眼睛、一个鼻子等,这些可能从婴儿脑中已有的动物或者人的面孔而来。第二,特征是整体的,婴儿可能并不会特别关注鼻子或眼睛长得怎样,他们首先用的是宏观轮廓特征,当两个图片很相像时,才会去关注具体的细节。

在这个过程中,「知识」是什么?在哪里?怎么存储的?需要时怎么使用的?发现错误时怎么更新的?

从之前的分析我们已经知道「知识」就是信息的抽象,也可以理解为特征的抽象。我觉得这里和因子分析法有点类似,它最终得到的不同因子的组合有点类似「知识」的概念,而且往往需要人肉去给个抽象的描述。

当然,「知识」又不仅仅只是简单的特征抽象,它首先就一定是综合的、可以跨领域通用的。比如,我们上面提到的 “脸” 这个知识,其实更宏观点应该是 “一张脸+四条腿” 这个抽象的知识,我们也许不知道(可能也无需知道)这个知识具体叫什么,但我们知道 “鱼” 不是它,“人” 也不是它,但比 “鱼” 像。其次,它应该既可以从具体的样本学习而来,也可以从已有的 “知识体系” 学习而来,而且还应该具备根据具体样本或知识体系更新已有体系能力。

往简单方向思考,我觉得可以先将「知识」看作是某种模式,具体而言就是一个模板或框架。模式会优先执行,搞不定时,具体特征再进一步处理。对于未知样本,我们同样首先提取模式处理。各种各样的模式之间可能并不需要继续分层次,模式的分层只需到能应付具体的场景即可。比如做猫咪识别,就到 “一张脸+四条腿” 这个层次,即便是有其他非动物的识别,也只是很多个不同的平行模式。

接下来需要探讨如何获得这些模式,理想状态下,按照人类的标准,我们可以从任何单个样本中提取到模式,并强化或更新已有的 “模式体系”。从可操作的角度看,模式可以看作是宏观层面的分类模型,而具体的个体则可以看作是微观层面的分类模型。这提醒我们在构建系统时,可以尝试采用分层的思想,不同层负责不同的职能。层内可以互相关联成网,也就是说,图谱的构建不仅要在具体的实体和关系之间进行,也应该在抽象的模式和模式关系之间进行。

智慧是生命

「智慧」是更加抽象的概念,我们首先需要尽可能地将它具体化——具备什么样的特征才能算具有「智慧」?

我们这里应该排除掉 “情绪” 或 “情感” 方面的感受,比如沉着、冷静等,这些特质可以看作是人类特有的,它们的功能可以看作是辅助 “大脑” 这台仪器产生「智慧」的工具。智慧的第一个特征应该是 “全面”,即面对问题会考虑多个因素(模式),类似芒格所提倡的跨学科多模型思维;第二个特征应该是 “长远”,即除了考虑当下也会充分考虑未来的各种可能性,也就是要有一定的前瞻性;第三个特征应该是 “深入”,即能够尽可能直达本质,也就是能将具体问题抽象到本质,再从抽象出发提出具体的针对性的方法。

通过上面的分析,我们应当可以大胆预测,当一个人拥有足够多的知识时,他就有可能产生「智慧」;那么同样,当一个机器拥有足够多的知识时,他也有可能产生「智慧」。

如果一个机器产生了「智慧」或者足够「智慧」 以至于我们无法将他与人区分,我们是否可以认为他是一个新的生命体、新的物种?当然,我们这里说的生命或物种是指至少和人类相当的“生命体”。需要说明的是,我们所说的无法区分除了 “智能” 角度外,也包括 “情绪” 角度,我们可以假定机器足以 “智慧” 到虽然他们不懂 “情绪” 但能理解它。这就类似我们不懂狗狗说话,但我们能够理解他们表达的意思。

如果到了这个阶段,人类又将如何自处?该以何种身份、何种形式存在?也许,人类会进化到 “肉体消亡、灵魂永存”,彼时的人类还能被称为 “人类” 吗?

我的4年学习心得:AI 应该是一个整体!_人工智能_03

太子长琴

算法工程师


我的4年学习心得:AI 应该是一个整体!_机器学习_04


标签:智慧,分类,AI,知识,学习心得,整体,抽象,人类,我们
From: https://blog.51cto.com/u_15699042/5779819

相关文章

  • 从整体视角了解情感分析、文本分类!
     Datawhale作者:太子长琴,算法工程师,Datawhale成员文本分类是自然语言处理(NLP)最基础核心的任务,或者换句话说,几乎所有NLP任务都是「分类」任务,或者涉及到「分类」概念。比如分......
  • 五子棋AI
    瞎写的,传上来备份一下#pragmaGCCoptimize(3)#include<algorithm>#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include<ctime>......
  • git clone开启云上AI开发
    摘要:相比于传统的软件开发,AI开发存在以下4个痛点:算法繁多;训练时间长;算力需求大;模型需手动管理,我们可以使用云上AI开发的方式来缓解以上4个痛点。本文分享自华为云社区《​​......
  • 【服务器数据恢复】RAID5第一块硬盘离线但热备盘未激活,第二块硬盘离线导致RAID5崩溃的
    服务器数据恢复环境:IBM某型号服务器,5个SAS硬盘组建RAID5(4个数据盘,1个热备盘);linuxredhat操作系统;上层应用为oa,数据库为oracle;oracle已经不对本案例中的oa提供后续支持。......
  • CF1250C Trip to Saint Petersburg
    题目传送门思路线段树入门题。不妨固定一个右端点\(r\),把所有右端点小于\(r\)的区间都在\(1\)至此区间的左端点处update一个\(p\),然后每次都给区间\(1\)至\(......
  • csu 1551: Longest Increasing Subsequence Again BIT + 思维
    预处理last[i]表示以第i个开始,的合法后缀。pre[i]表示以第i个结尾,的合法前缀。那么每一个数a[i],肯定是一个合法后缀last[i]+一个合法前缀,那么合法前缀的数字要小于a[i],并......
  • Error:java: Compilation failed: internal java compiler error
    IDEA编译报错,jdk设置问题,查看pom中的编译版本(如果是maven项目的话)1、查看项目的jdk(Ctrl+Alt+shift+S)File->ProjectStructure->ProjectSettings->Project2、查看模......
  • accept4( ) failed (24: Too many open files)
    生产环境因为并发量突然增大,导致系统登录页面刷新失败原因:nginx连接数过多,达到性能瓶颈解决方法:修改nginx.conf配置文件,如下:#允许使用cpn数量worker_processes4;eve......
  • Chap4 循环结构 第八小组 学习心得
    循环结构的相应知识    循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环,是编程中必不可少......
  • js function chain call implementation principle analysis All In One
    jsfunctionchaincallimplementationprincipleanalysisAllInOnejs函数链式调用实现原理解析AllInOnedemofunctionChain(){//ES5}classChain{......