我为什么不在乎人工智能

2023-11-06

有人听说我想创业,给我提出了一些“忽悠”的办法。他们说,既然你是程序语言专家,而现在人工智能(AI)又非常热,那你其实可以搞一个“自动编程系统”,号称可以自动生成程序,取代程序员的工作,节省许许多多的人力支出,这样就可以趁着“AI 热”拉到投资。

有人甚至把名字都给我想好了,叫“深度程序员”(DeepCoder = Deep Learning + Coder)。口号是:“有了 DeepCoder,不用 Top Coder!” 还有人给我指出了这方向最新的,吹得神乎其神的研究,比如微软的 Robust Fill……

我谢谢这些人的关心,然而其实我并不在乎,也不看好人工智能。现在我简单的讲一下我的看法。

机器一样的心

很多人喜欢鼓吹人工智能,自动车,机器人等技术,然而如果你仔细观察,就会发现这些人不但不理解人类智能是什么,不理解人工智能有什么局限性,而且这些“AI 狂人”们的心,已经严重的机械化了。他们或多或少的失去了人性,仿佛忘记了自己是一个人,忘记了人最需要的是什么,忘记了人的价值。这些人就像卓别林在『大独裁者』最后的演讲里指出的:“机器一样的人,机器一样的心。”

每当提到 AI,这些人必然野心勃勃地号称要“取代人类的工作”,“节省劳动力开销”。暂且不讨论这些目标能否实现,它们与我的价值观,从一开头就是完全矛盾的。一个伟大的公司,应该为社会创造实在的,新的价值,而不是想方设法“节省”什么劳动力开销,让人失业!想一下都觉得可怕,我创造一个公司,它最大的贡献就是让成千上万的人失业,为贪得无厌的人节省“劳动力开销”,让贫富分化加剧,让权力集中到极少数人手里,最后导致民不聊生,导致社会的荒芜甚至崩溃……

我不可想象生活在那样一个世界,就算那将使我成为世界上最有钱的人,也没有了意义。世界上有太多钱买不来的东西。如果走在大街上,我看不到人们幸福的笑容,悠闲的步伐,没有亲切的问候,关爱和幽默感,看不见甜蜜浪漫的爱情,反而看见遍地痛不欲生的无家可归者,鼻孔里钻进来他们留下的冲人的尿骚味,走到哪里都怕有人抢劫,因为人们实在活不下去了,除了偷和抢,没有别的办法活……

如果人工智能成功的话,这也许就是最后的结果。幸运的是,有充足的证据显示,人工智能是永远不会成功的。

我的人工智能梦

很多人可能不知道,我也曾经是一个“AI 狂热者”。我也曾经为人工智能疯狂,把它作为自己的“伟大理想”。我也曾经张口闭口拿“人类”说事,仿佛机器是可以跟人类相提并论,甚至高于人类的。当深蓝电脑战胜卡斯帕罗夫,我也曾经感叹:“啊,我们人类完蛋了!” 我也曾经以为,有了“逻辑”和“学习”这两个法(kou)宝(hao),机器总有一天会超越人类的智能。可是我没有想清楚这具体要怎么实现,也没有想清楚实现了它到底有什么意义。

故事要从十多年前讲起,那时候人工智能正处于它的冬天。在清华大学的图书馆,我偶然地发现了一本尘封已久的 Peter Norvig 的大作『Paradigms of Artificial Intelligence Programming』(PAIP)。像个考古学家一样,我开始逐一地琢磨和实现其中的各种经典 AI 算法。PAIP 的算法侧重于逻辑和推理,因为在它的年代,很多 AI 研究者都以为人类的智能,归根结底就是逻辑推理。他们天真地以为,有了谓词逻辑,一阶逻辑这些东西,可以表达“因为所以不但而且存在所有”,机器就可以拥有智能。于是他们设计了各种基于逻辑的算法,专家系统(expert system),甚至设计了基于逻辑的程序语言 Prolog,把它叫做“第五代程序语言”。最后,他们遇到了无法逾越的障碍,众多的 AI 公司无法实现他们夸口的目标,各种基于“神经元”的机器无法解决实际的问题,巨额的政府和民间投资化为泡影,人工智能进入了冬天。

我就是在那样一个冬天遇到了 PAIP,它虽然没能让我投身于人工智能领域,却让我迷上了 Lisp 和程序语言。也是因为这本书,我第一次轻松而有章法的实现了 A* 等算法,并且理解到里面的真谛。也是因为 PAIP,我第一次理解到了程序的“模块化”是什么,我开始在自己的程序里使用小的“工具函数”,而不再担心很多人忧心忡忡的“函数调用开销”。PAIP 和 SICP 这两本书,最后导致了我投身于程序语言领域,并且有幸获得这个领域鼻祖们的指点。

在 PAIP 之后,我又迷了一阵子机器学习(machine learning),因为有人告诉我,机器学习是人工智能的新篇章。然而我逐渐的意识到,所谓的人工智能和机器学习,跟真正的人类智能,关系其实不大。相对于实际的问题,PAIP 里面的经典算法其实相当幼稚,复杂度很高,根本不可能解决大规模的实际问题。最重要的问题是,我看不出 PAIP 里面的算法跟“智能”有任何关系。而“机器学习”这个名字,完全就是一个幌子。很多人都看出来了,机器学习说白了就是统计学里面的“拟合函数”,换了一个具有迷惑性的名字而已。

吓人的外衣之下

人工智能的研究者们总是喜欢抬出“神经元”一类的名词来吓人,跟你说他们的算法是受了人脑神经元工作原理的启发。注意了,“启发”是一个非常模棱两可的词,由一个东西启发得来的结果,可以跟这个东西毫不相干。比如我也可以说,Yin 语言的设计是受了九阴真经的启发 :P

世界上这么多 AI 研究者,有几个真的研究过人脑,解刨过人脑,拿它做过实验,或者读过脑科学的研究成果?最后你发现,几乎没有 AI 研究者真正做过人脑或者认知科学的研究。著名的认知科学家 Douglas Hofstadter 早就在接受采访时指出,这帮所谓“AI 专家”,对人脑和意识(mind)是怎么工作的,其实完全不感兴趣,也从来没有深入研究过,却号称要实现“通用人工智能”(Artificial General Intelligence, AGI),这就是为什么 AI 直到今天都只是一个虚无的梦想。

纵观历史上机器学习能够做到的事情,都是一些字符识别(OCR),语音识别,人脸识别一类的,我把这些统称为“识别系统”。当然,识别系统是很有价值的,我经常用手机上的语音输入法,人脸识别对于警察和间谍机关,显然意义重大。虽然很重要,识别系统跟真正的“智能”,却相去非常远,而且这些识别系统的普及,导致了人工智能的能力被严重的神化。说白了,这些识别系统,也就是统计学的拟合函数能做的事情:输出一堆像素或者音频,输出一个个的单词文本。很多人分不清“文字识别”和“语言理解”的区别。OCR 和语音识别系统,虽然能依靠统计的方法,知道你说的是哪些字,却不能真正理解你在说什么。

聊一点深入的话题,看不懂的人可以跳过这一段。“识别”和“理解”的差别,就像程序语言里面“语法”和“语义”的差别。程序语言的文本,首先要经过词法分析器(lexer),语法分析器(parser),才能送进解释器(interpreter),只有解释器才能实现程序的语义。类比一下,自然语言的语音识别系统,其实只相当于程序语言的词法分析器(lexer)。大部分的 AI 系统,连语法分析器(parser)都没有,所以主谓宾,句子结构都分析不清楚,更不要说理解其中的含义了。IBM 的语音识别专家 Frederick Jelinek 曾经开玩笑说:“每当我开掉一个语言学家,识别率就上升了。” 其原因就是语音识别仅相当于一个 lexer,而语言学家研究的是 parser 以及 interpreter。当然了,你们干的事情太初级了,所以语言学家帮不了你们,但这并不等于语言学家是没有价值的。

各大公司最近叫得最响亮的“AI 技术”,就是 Siri,Cortana,Google Assistant,Amazon Echo 一类含有语音识别功能的工具,叫做“个人助手”。这些东西里面,到底有多少可以叫做“智能”的东西,我想用过的人都应该明白。我每一次试用 Siri 都被它的愚蠢所折服,可以让你着急得砸了水果手机。那另外几个同类,也没有好到哪里去。很多人被“微软小冰”忽悠过,咋一看真能理解你说的话,然而聊一会你就发现,小冰不过是一个“网络句子搜索引擎”而已。它只是按照你句子里的关键字,随机搜出网上已有的句子。大部分这类句子出自问答类网站,比如百度知道,知乎,等等。一个很简单的实验,就是反复发送同一个词给小冰,比如“智能”,看它返回什么内容,然后拿这个内容到 Google 或者百度搜索,你就会找到那个句子真正的出处。人都喜欢自欺欺人,看到几个句子回答得挺有“诗意”,就以为它是在跟你对话,而其实它是牛头不对马嘴,所以你才感觉有“诗意”。大部分人跟小冰对话,都喜欢只把其中“符合逻辑”的部分截图下来,然后惊呼:“哇,小冰好有趣!” 他们没有告诉你的是,没贴出来的对话,几乎全都是鸡同鸭讲。

我并不是说这些产品完全没有价值。我用过 Siri 和 Google Assistant,我发现它们还是有用的,特别是在开车的时候。因为开车时操作手机容易出事,所以我可以利用语音控制。比如我可以对手机说:“导航到最近的加油站。” 然而实现这种语音控制,根本不需要理解语言,你只需要用语音识别输入一个函数调用:导航(加油站)。个人助手在其它时候用处都不大。我不想在家里和公共场所使用它们,原因很简单:我懒得说话,或者不方便说话。点击几下屏幕,我就可以精确地做到我想要的事情,这比说话省力很多,也精确很多。个人助手完全不理解你在说什么,这种局限性本来无可厚非,然而各大公司却拿这些个人助手来煽风点火,各种夸大,闭口不提他们的局限性,让外行们以为人工智能就快实现了,这就是为什么我必须鄙视一下他们。

由于有了这些“个人助手”,有些人就号称类似的技术可以用来制造“机器客服”,使用机器代替人作为客服。他们没有想清楚的是,客服看似“简单工作”,跟这些语音控制的玩意比起来,难度却是天壤之别。客服必须理解公司的业务,必须能够精确地理解客户在说什么,必须形成真正的对话,要能够为客户解决真正的问题,而不能只抓住一些关键字进行随机回复。另外,客服必须能够从对话信息,引发现实世界的改变,比如呼叫配送中心停止发货,向上级请求满足客户的特殊要求,拿出退货政策跟客户辩论,拒绝他们的退货要求,抓住客户心理,向他们推销新服务等等,各种需要“人类经验”才能处理的事情。所以机器能不但要能够形成真正的对话,理解客户的话,它们还需要现实世界的大量经验,需要改变现实世界的能力,才可能做客服的工作。由于这些个人助手全都是在忽悠,所以我看不到有任何希望,能够利用现有的技术实现机器客服。

很多人看到 AlphaGo 的胜利,以为所谓 Deep Learning 终究有一天能够实现人类级别的智能。在之前的一篇文章里,我已经指出了这是一个误区。很多人以为人觉得困难的事情(比如围棋),就是体现真正人类智能的地方,其实不是那样的。我问你,心算除法(23423451345 / 729)难不难?这对于人是很难的,然而任何一个傻电脑,都可以在 0.1 秒之内把它算出来。围棋,国际象棋之类也是一样的原理。这些机械化的问题,根本不能反应真正的人类智能,它们只需要蛮力。

纵观人工智能领域发明过的吓人术语,从 Artificial Intelligence 到 Artificial General Intelligence,从 Machine Learning 到 Deep Learning,…… 我总结出这样一个规律:人工智能的研究者们特别喜欢制造吓人的名词,当人们对一个名词失去信心,他们就会提出一个不大一样的,新的名词,免得人们把对这个名词的失望,转移到新的研究上面。然而这些名词之间,终究是换汤不换药。因为没有人真的知道人的智能是什么,所以也就没有办法实现“人工智能”。

生活中的每一天,我这个“前 AI 狂热者”都在为“人类智能”显示出来的超凡能力而感到折服。甚至不需要是人,任何高等动物(比如猫)的能力,都让我感到敬畏。我发自内心的尊重人和动物。我不再有资格拿“人类”来说事,因为面对这个词汇,任何机器都是如此的渺小。

自动编程是不可能的

现在回到有些人最开头的提议,实现自动编程系统。我现在可以很简单的告诉你,那是不可能实现的。微软的 Robust Fill 之类,全都是在扯淡。我对微软最近乘着 AI 热,各种煽风点火的做法,表示少许鄙视。不过微软的研究员也许知道这些东西的局限,只是国内小编在夸大它的功效吧。

你仔细看看他们举出的例子,就知道那是一个玩具问题。人给出少量例子,想要电脑完全正确的猜出他想做什么,那显然是不可能的。很简单的原因,例子不可能包含足够的信息,精确地表达人想要什么。最最简单的变换也许可以,然而只要多出那么一点点例外情况,你就完全没法猜出来他想干什么。就连人看到这些例子,都不知道另一个人想干什么,机器又如何知道?这根本就是想实现“读心术”。甚至人自己都可以是糊涂的,他根本不知道自己想干什么,机器又怎么猜得出来?所以这比读心术还要难!

对于如此弱智的问题,都不能 100% 正确的解决,遇到稍微有点逻辑的事情,就更没有希望了。论文最后还“高瞻远瞩”一下,提到要把这作法扩展到有“控制流”的情况,完全就是瞎扯。所以 RobustFill 所能做的,也就是让这种极其弱智的玩具问题,达到“接近 92% 的准确率”而已了。另外,这个 92% 是用什么标准算出来的,也很值得怀疑。

任何一个负责的程序语言专家都会告诉你,自动生成程序是根本不可能的事情。因为“读心术”是不可能实现的,所以要机器做事,人必须至少告诉机器自己“想要什么”,然而表达这个“想要什么”的难度,其实跟编程几乎是一样的。实际上程序员工作的本质,不就是在告诉电脑自己想要它干什么吗?最困难的工作(数据结构,算法,数据库系统)已经被固化到了库代码里面,然而表达“想要干什么”这个任务,是永远无法自动完成的,因为只有程序员自己才知道他想要什么,甚至他自己都要想很久,才知道自己想要什么……

有句话说得好:编程不过是一门失传的艺术的别名,这门艺术的名字叫做“思考”。没有任何机器可以代替人的思考,所以程序员是一种不可被机器取代的工作。虽然好的编程工具可以让程序员工作更加舒心和高效,任何试图取代程序员工作,节省编程劳力开销,克扣程序员待遇,试图把他们变成“可替换原件”的做法(比如 Agile,TDD),最终都会倒戈,使得雇主收到适得其反的后果。同样的原理也适用于其它的创造性工作:厨师,发型师,画家,……

所以别妄想自动编程了。节省程序员开销唯一的办法,是邀请优秀的程序员,尊重他们,给他们好的待遇,让他们开心安逸的生活和工作。同时,开掉那些满口“Agile”,“Scrum”,“TDD”,“软件工程”,光说不做的扯淡管理者,他们才是真正浪费公司资源,降低开发效率和软件质量的祸根。

傻机器的价值

我不反对继续投资研究那些有实用价值的人工智能,然而我觉得不应该过度夸大它的用处,把注意力过分集中在它上面,仿佛那是唯一可以做的事情,仿佛那是一个划时代的革命,仿佛它将取代一切人类劳动。我的个人兴趣,其实不在人工智能上面。那我要怎么创业呢?很简单,我觉得大部分人其实不需要很“智能”的机器,“傻机器”才是对人最有价值的。所以设计新的,可靠的,造福于人的傻机器,应该是我创业的目标。当然我这里所谓的“机器”,包括了硬件和软件。

只举一个例子,有些 AI 公司想研制“机器佣人”,可以自动打扫卫生做家务。我觉得这问题几乎不可能解决,还不如直接请真正智能的——阿姨来帮忙。我可以做一个阿姨服务平台,方便需要服务的家庭和阿姨进行配对。给阿姨配备更好的工具,通信,日程,支付设施,让她工作不累收钱又方便,让家庭也省心放心,那岂不是两全其美?哪里需要什么智能机器人,难度又高,又贵又不好用。显然这样的阿姨服务平台,结合真正的人的智能,轻而易举就可以让那些机器佣人公司死在萌芽之中。

当然我不会真去做个阿姨服务平台,我只是举个例子。许许多多对人有用的傻机器,还在等着我们去发明。这些机器设计起来虽然需要灵机一动,然而实现起来难度却不高,给人带来便利,经济上见效也快。这些东西不对人的工作造成竞争,反而可能制造更多的就业机会,可以说是利国利民。利用人的智慧,加上机器的蛮力,让人们又省力又能挣钱,才是最合理的发展方向。


出处:http://www.yinwang.org/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我为什么不在乎人工智能 的相关文章

  • 浅谈vlan中pvid的作用

    vlan中的pvid其实就是处理标签的一种方式 在端口为access模式的时候pvid access端口本身的vlan 也无法单独配置 在端口为trunk的时候pvid是可以根据需求配置的 默认的pvid vlan1 而在trunk端口模式
  • GIT使用(踩坑)

    1 关于远程路径的设置 双反斜线 和 单斜线 的问题 这样写可以 git remote add origin L BottleCapDetection 这样写也可以 git remote add origin L BottleCapDete
  • 如何将本地文件上传至阿里云ECS中

    本人尝试利用SSH Secure Shell Client软件登录阿里云ECS 发现并无法登录 但尝试后发现WinSCP可以对ECS的文件进行操作 偷懒不想使用ssh命令上传文件 同时可视化操作会安心一些 具体操作如下 第一步 开启阿里云E
  • 在IDEA中配置Git

    文章目录 在IDEA中配置Git 开发中IDEA的Git常见操作 初始化并提交项目到远程仓库 项目leader 1 在GitHub中创建远程仓库 2 将maven工程交给Git管理 3 配置忽略文件 4 提交到本地仓库 5 推送到远程仓库
  • react 之 styled-components

    css样式并不像JavaScript语法有作用域 因此css样式作用于全局很容易造成全局污染 为了防止这类问题发生 我们可以遵循CSS的BEM规范 即 blockName elementName modifierName 模块名 元素名 修
  • 【C++泛型编程】模板偏特化、局部类和型别映射(Int2Type,Type2Type)以及型别选择

    1 模板偏特化 模板偏特化是让你在template的所有可能实体中特化出一组子集 下面是一个模板全特化的例子 假设有一个类模板 名为Widget template
  • STM32CubeMX串口配置及库printf打印

    最新版STM32CubeMXV5 0 0已经上传到了网盘 或者自己通过软件在线升级 STM32CubeMX运行环境搭建包含两个部分 首先是 Java运行环境安装 其次是STM32CubeMX软件安装 Java 软件和STM32CubeMX
  • java 之泛型详解

    1 什么是泛型 引入 关于泛型 先来说几句集合 都知道集合是可以存储任意对象 当我们创建一个集合时如果没有声明它的存储类型 那该集合便自动提升为Object类型 提示 在我们创建对象的时候 如果没有明确指出一种数据类型 那么编译器会默认为O
  • linux磁盘信息文件,linux系统获取硬盘使用信息

    1 df命令 Linux下可以用df命令获取硬盘的使用情况 通过man可以获取df命令的详细情况 df命令经常用的参数为 a 显示全部的档案系统和各分割区的磁盘使用情形 i 显示i nodes的使用量 k 大小用k来表示 默认值 t 显示某
  • Prescan学习笔记:短暂接触

    因为老师的项目需要用到Prescan 来模拟真实的驾驶场景 因此使用它搭了一些模型 这里写下使用心得 注意 Prescan是一个非常注重产品版权的软件 因此我们使用的也是通过正规渠道向其购买的 而且其licence定期更换 需要再次更新或者
  • Java5 新特性

    Java 5 语言新特性体验 2006 04 06 22 28 38 作者 yuhen 1 Boxing UnBoxing 在1 4及以前的版本 Java并不支持自动装箱 如下面的例子 Java 1 4 public class progr
  • 【华为OD机试真题 Java】@分割可用字符集

    前言 本专栏将持续更新华为OD机试题目 并进行详细的分析与解答 包含完整的代码实现 希望可以帮助到正在努力的你 关于OD机试流程 面经 面试指导等 如有任何疑问 欢迎联系我 wechat steven moda email nansun09
  • 合上笔记本屏幕 Ubuntu 20.04 不休眠

    将系统配置文件 etc systemd logind conf 的其中一行 改成如下所示 sudo vim etc systemd logind conf HandleLidSwitch ignore 重启服务 sudo service s
  • Windows Server操作系统概述

    文章目录 一 计算机系统的层次结构 二 五大基本功能 1 处理器管理 2 储蓄器管理 3 文件管理 4 设备管理 5 作业管理 三 应用场景 四 发展历程 1 Unix 概述 相关版本 应用场景 2 Linux 概述 相关版本 应用场景 3
  • 【Linux】超好用的编译工具 —— gcc/g++

    文章目录 前言 一 安装gcc g 二 背景知识 三 gcc如何完成 1 预处理 进行宏替换 2 编译 生成汇编 3 汇编 生成机器可识别代码 4 连接 生成可执行文件或库文件 5 记忆选项的小技巧 6 一个重要的概念 函数库 7 再谈链接
  • Mapxtreme2008v6.8 vs2008(asp.net)几个修改项目

    1 添加普通按钮实现全图显示 添加动态图层 用ajax实现局部刷新 单击按钮后老是提示Command js中GetMap 有误 后经查找代码做如下改动后成功 MapXtremeWebResources Command js中原代码为mapI
  • php Access-Control-Allow-Origin 解决跨域问题

    第1种 在代码里面加 header信息 推荐 header Access Control Allow Origin 如果需要设置允许所有域名发起的跨域请求 可以使用通配符 或者 header Access Control Allow Ori
  • 【毕业设计】可伸缩带式输送机结构设计【二维图+三维图+论文】

    摘 要 带式输送机是一种连续机械 被广泛应用于国民经济各个部门 因为它有许多优点 如运行平衡 运转可靠 能耗低 对环境污染小 便于集中控制和实现自动化 管理维护方便等 为了满足特定需求 本文根据地面主提升带式输送机的原始参数 结合常规上运带
  • 我的OpenCV4学习之旅(1)-OpenCV4初步了解

    我的OpenCV4学习之旅 1 OpenCV4初步了解 OpenCV4学习笔记总结资料来自 OpenCV4 快速入门 哔哩哔哩 OpenCV4 C 快速入门视频30讲 Opencv4简单介绍 OpenCV4是目前最流行的计算机视觉处理库之一
  • AD绘制总线

    1 绘制总线 总线以及总线入口 2 总线入口点击空格键可以进行旋转 3 绘制完成后放置每个子线标号 4 放置总线的标号格式必须为 XXX m n 备注 总线标号没内部指定的m至n总数必须与实际的子线数量相等否则PCB报错

随机推荐

  • bi 建模流程图_PowerBI开发 第二篇:数据建模

    在分析数据时 不可能总是对单个数据表进行分析 有时需要把多个数据表导入到PowerBI中 通过多个表中的数据及其关系来执行一些复杂的数据分析任务 因此 为准确计算分析的结果 需要在数据建模中 创建数据表之间的关系 在PowerBI中 关系
  • 粒子群算法求解单目标优化问题——附Matlab代码实现

    粒子群算法求解单目标优化问题 附Matlab代码实现 粒子群算法 Particle Swarm Optimization PSO 是一种模拟鸟群或鱼群捕食行为的优化算法 它的基本思想是将一组解看作 粒子 并模拟每个粒子在解空间中移动的过程
  • 基础实验篇

    PX4控制器的外部通信 01 实验名称及目的 PX4控制器的外部通信 在进行硬件在环仿真时 我们常常需要向设计的Simulink控制器中发送数据 传感器数据 故障触发 控制指令 参数调整等 同时接收一些感兴趣的数据 RflySim平台的Si
  • Java学习笔记-锁

    Java学习笔记 锁 Lock 锁 从JDK5 0开始 Java提供了更强大的线程同步机制 通过显式定义同步锁对象来实现同步 同步锁使用Lock对象充当 java util concurrent locks Lock接口是个控制多线程对共享
  • linux磁盘空间不足的实用技巧

    1 删除日志 rm rf var log 安装了Anaconda后 发现这个文件越来越大 以下列一些删除不需要文件的方法 2 Anaconda 删除没有被硬依赖到其他地方的包 conda clean p 3 Anaconda 清理缓存的压缩
  • MySQL中视图与表的区别

    1 MySQL中视图和表的区别以及联系 1 视图是已经编译好的SQL语句 是基于SQL语句的结果集的可视化的表 而表不是 2 视图没有实际的物理记录 而表有 3 表是内存 视图是窗口 4 表占用物理存储空间而视图不占用物理存储空间 视图只是
  • undefined reference to ‘mysql_init@4‘ error: ld returned 1 exit status<-报错信息,用codeblocks连接MySQL时的报错

    解决方案 本文引用的是别人的文章 我自己总结一下 你能走到这一步出错说明你前面看了其他博主的文章 那么你只用利用文中提供网盘资源来代替你本来需要添加的include头文件的引用和lib库文件的链接即可 剩下的参考其他文章实现会更简单易懂 由
  • React组件之间如何通信?

    父组件向子组件传递 父组件在调用子组件的时候 在子组件标签内传递参数 子组件通过props属性就能接收父组件传递过来的参数 子组件向父组件传递 父组件向子组件传一个函数 然后通过这个函数的回调 拿到子组件传过来的值 兄弟组件之间的通信 父组
  • Spring源码分析(四)Bean生命周期源码分析2:合并BeanDefinition、FactoryBean

    Spring容器启动 扫描得到所有BeanDefinition之后 就会先实例化所有非懒加载的单例Bean的 入口 Spring容器启动刷新的方法里 org springframework context support AbstractA
  • 烂怂if-else代码优化方案

    0 问题概述 代码可读性是衡量代码质量的重要标准 可读性也是可维护性 可扩展性的保证 因为代码是连接程序员和机器的中间桥梁 要对双边友好 Quora 上有一个帖子 What are some of the most basic things
  • 【神经网络】图解LSTM和GRU

    图解LSTM和GRU 1 问题 循环神经网络 RNN Recurrent Neural Network 受到短期记忆的影响 如果一个序列足够长 就很难将早期产生的信息带到后续的步骤中来 因此 如果试图处理一段文字来做预测 RNN可能会从一开
  • 使用rke搭建k8s集群

    1 下载rke 选择合适的版本 https github com rancher rke 下载后上传到服务器 修改为rke 且移动号可执行目录 mv rke linux amd64 usr local bin rke 修改为可执行权限 ch
  • markdown+CSDN+Typora+知乎+微信公众号最佳偷懒写作方法

    目录 markdown 思想 适用范畴 基本语法 重点语法 高级语法 Typora 补充工具 公式编辑 保存和导出 导入 定制化主题 图片拖拽 超链接 列表 LaTex 公式 表格 生成目录 编辑模式 导出与公众号 md与CSDN 导入 导
  • 用户留存分析—SQL

    SELECT log day 日期 count user id day0 新增数量 count user id day1 count user id day0 次日留存率 count user id day3 count user id d
  • 星罗棋布:关于VPS测试脚本集锦内容

    2021 09 25 更新 优化排版 引言 莫忧世事兼身事 须著人间比梦间 勿埋我心 当我们获得一个服务器后 会想知道它的性能如何 宝塔自带跑分的应用 但是测试的数据比较片面 所以就有了各种各样的测试脚本 勿埋我心带你了解一下有哪些常用的V
  • VMware安装win10系统的心路历程

    友情提示 尽量使用原版或别人用过的 很早之前使用VMware装过win2008和centos7 都是傻瓜安装 没想到这次安装win10一点都不傻瓜 软件版本 VMware Workstation 15 Pro 1 按照常识先下载iso文件
  • hive建表

    https blog csdn net wgyzzzz article details 107446435 一 hive建表语法 二 hive外部表 1 准备测试数据 放入虚拟机 data目录下 2 创建外部表 3 装载数据 4 查询tes
  • unity使用setTrigger需注意地方

    使用上可以参考另一篇文章 RPG游戏主角状态机 Trigger触发器 注意都是从Any State开始的 否则你在使用Aniamtor的Trigger参数触发时没反应
  • 网页开发基础常见html、css

    目录 HTML基础 一 段落 行内和换行标签 二 文本样式标签 三 表格标签 四 表单标签 五 多行文本标签 六 列表标签 七 超链接标签 八 图像标签 HTML基础 html语言基本格式 常用的HTML标签 一 段落 行内和换行标签 二
  • 我为什么不在乎人工智能

    有人听说我想创业 给我提出了一些 忽悠 的办法 他们说 既然你是程序语言专家 而现在人工智能 AI 又非常热 那你其实可以搞一个 自动编程系统 号称可以自动生成程序 取代程序员的工作 节省许许多多的人力支出 这样就可以趁着 AI 热 拉到投