乐于分享
好东西不私藏

AI发展史 | 福岛邦彦:点燃视觉的火炬——福岛邦彦与那场迟到了四十年的掌声

AI发展史 | 福岛邦彦:点燃视觉的火炬——福岛邦彦与那场迟到了四十年的掌声

“福岛邦彦(Kunihiko Fukushima),1936年出生,京都大学电气工程博士,是日本科学家、卷积神经网络(CNN)的奠基人。他于1979年提出的“Neocognitron”模型,是首个实现卷积和池化结构的深度神经网络,为现代人工智能的发展奠定了重要基础。”

01. 人物介绍

那位让机器学会“看见”的温柔长者

在东京一个寻常的街区里,曾住着一位不寻常的老人。

他不曾在社交媒体上留下只言片语,不曾在闪光灯下高声宣讲,甚至在整个深度学习席卷全球的狂欢年代里,他的名字也鲜少出现在大众视野。然而,当你对着手机说“嘿,帮我看看这是什么花”,当你走过机场闸机被摄像头自然识别,当你用手中的设备搜索一张模糊的老照片——在那每一个看似平常的瞬间,他的影子都会悄然掠过。

他叫福岛邦彦。

如果说人工智能是一场关于“模仿人类”的宏大叙事,那么福岛邦彦,就是那个最早、最安静、也最坚定地教会机器“看见”的人。

这个故事,要从很久很久以前讲起。

它不是关于天才的横空出世,而是关于一个普通人,如何用一生的时间,去守护一个看似“无用”的问题。


一、少年:那个对“为什么”痴迷的孩子

一九三六年,日本大阪。

昭和初年的关西地区,空气中混杂着工业城市的煤烟与水乡的潮气。那年冬天,一个男婴在大阪的产房里发出第一声啼哭。他的父亲在一家贸易公司做职员,每天拎着公文包穿梭于大阪与神户之间;母亲是传统的家庭主妇,把家收拾得井井有条,对邻居永远挂着温和的微笑。

这个家庭算不上富裕,但足够安稳。他们给男孩取名“邦彦”——“邦”是家国,“彦”是才俊。父母期望他成为一个有出息的人,但没有人想到,这个孩子将来会以一种如此独特的方式——让机器模仿大脑的方式——来荣耀这个名字。

福岛邦彦的童年,和许多聪慧的孩子并无二致:他安静,内敛,不怎么爱说话,但眼睛总是亮晶晶的。

他喜欢拆东西。

不是破坏,是拆解。家里那只老式座钟,每到整点就会敲响,铜色的钟摆晃来晃去,他觉得那是世界上最神秘的魔法。有一天趁父母出门,他搬来小板凳,踮着脚尖把座钟从墙上取下来,放在地板上,像拆解一个精密的谜题那样,小心翼翼卸下螺丝,打开后盖。

齿轮,一个挨着一个。发条,一圈绕着一圈。擒纵机构一卡一松,整点报时的锤子就会敲响音簧。

他跪在座钟面前,看了整整一个下午。

后来,他又拆了收音机。那台老式电子管收音机,打开后盖能看到橙色的灯丝微微发光,空气中的电磁波被检波管捕捉,变成声音——这怎么可能的呢?他想不明白。他把零件一个一个摆在地板上,试图画出它们之间的连线图。

母亲回家,看到满地的零件,先是吓了一跳,然后笑了。她没有责备他,只是问:“装得回去吗?”

他装回去了,虽然多出来两个螺丝。

但他记住了那个感觉:世界是可以被理解的。只要你有足够的耐心,去拆解它,去看清它内部运转的秩序。

这种对“看不见的秩序”的痴迷,贯穿了他的一生。

小学时,他的成绩平平,数理化不错,但并不拔尖。老师对他的评价是:“这孩子喜欢问一些奇怪的问题。”

比如,有一次自然课上,老师讲“眼睛如何看到东西”。老师说,外界的光线进入眼睛,在视网膜上成像,然后信号通过视神经传到大脑,我们就“看到”了。

所有人都点头,开始抄笔记,只有福岛举手。

“老师,视网膜上的像是倒过来的,但我们看到的不是倒的,这是为什么?”

老师愣了一下,解释说大脑会把图像“翻转”过来。

“那大脑怎么知道应该翻转呢?它自己看到那个倒像了吗?”小福岛追问。

全班哄堂大笑。老师也笑了,说:“这个问题太深了,等你长大再研究吧。”

他真的没有忘记。

多年以后,他回忆起这个场景时说:“我当时并不是想为难老师。我只是真的觉得奇怪——如果大脑里有一个‘小人’在看那个倒像,那‘小人’的眼睛里不又有一个更小的‘小人’在看吗?这不对。这里面一定还有别的机制。”

你看,一个孩子的好奇心,有时候就是如此朴素——却又直指问题的核心。

上中学时,他偶然读到了一本关于脑科学的科普书。那本书里画着大脑的剖面图,密密麻麻的神经元像是一片神秘森林。书里说,人的眼睛看到一朵花,花的光信号变成电信号,电信号沿着神经元层层传递——然后,“一朵花”就出现在了脑海里。

福岛合上书,久久没有出声。

(图片来源:AI生成)

他跑到院子里摘了一朵牵牛花,举在眼前仔细端详。紫色的花瓣,黄色的花蕊,清晨的露珠还在上面颤颤的。

光就是光,怎么就变成“紫色”了呢?怎么就变成“花”了呢?

他第一次清晰地意识到:人类视觉系统里,一定藏着某种极其精妙的信息处理机制。这种机制不是魔法,是物理,是数学,是可以被写下来的规律。

他想找到那个规律。

这个念头,像一枚种子,落入了少年心里最柔软的那片泥土。它在那里沉睡了几年,等待合适的阳光和雨露。


二、求学:在两种“智能”之间

一九五五年,福岛邦彦考入京都大学电气工程系。

京都是古都,千年时光沉淀在鸭川的水声里,沉淀在哲学之道的落樱中。在这座城市读书,似乎天然就带着一丝思辨的气质。哲学之道是一条沿着水渠的石板小路,因西田几多郎等哲学家常在此散步而得名。年轻的福岛偶尔也会沿着这条路走,一边走一边想:如果人类能造出一个会思考的机器,那么造出这台机器的人,应该叫什么?是工程师,还是哲学家?

当时的日本正在战后重建。京都没有像东京那样被大面积轰炸,古建筑保存得相对完好,但整座城市还是能从空气中嗅到一种“百废待兴”的气息。大学里弥漫着朴素的乐观主义:科技会改变一切,电气化会解放人类,工程师是这个时代最光荣的职业。

福岛的专业是电气工程。他学了电路分析、信号与系统、控制理论、通信原理——这些都是那个时代最“硬核”的工科课程。他学得不错,拿过奖学金,导师也器重他,觉得这个年轻人逻辑清晰,动手能力强,是个搞工程的好苗子。

但他心里那枚种子还在。

他旁听了生理学系的课,读了大量解剖学和神经科学的书籍。他发现一个有趣的现象:工科教授们讨论的是“如何让系统稳定、可控、精确”,而生理学教授们讨论的是“人为什么会有错觉、为什么会有误差、为什么会有主观感受”——这两套话语体系,像是两个世界,中间隔着一堵厚厚的墙。

工科的人觉得生理学“太模糊、不精确”;生理学的人觉得工科“太机械、不懂生命”。

年轻的福岛站在墙的这一边,伸长了脖子,想看清墙那一边的风景。

他想做那个拆墙的人。

本科毕业后,他继续在京都大学攻读博士学位。他的博士课题需要自己定——导师给了他很大的自由度,“你想做什么,就去做。”

他想了很久,最终交上来的题目是:“视觉系统的数学模型”。

导师看了,沉默了几秒,说了一句话:“这个方向,在我们电气工程系,你是第一个。”

不是“好”,也不是“不好”。只是“第一个”。

福岛明白导师的潜台词:这意味着没有前人铺路,没有现成的方法论,甚至没有几个人能真正评判你做得好不好。这是一片未知的荒野,你要自己去踩出一条路来。

他接受了这个挑战。

接下来的几年,他把自己埋进了两大座“矿山”里。

第一座矿山是神经生理学的论文。他几乎读遍了当时所有关于视觉系统的研究,其中对他影响最深的是两位诺奖得主——David Hubel和Torsten Wiesel的工作。

Hubel和Wiesel在五十年代末到六十年代初做了一系列著名的实验。他们把微电极插入猫的初级视觉皮层,然后给猫看各种视觉刺激,比如亮暗的光斑、不同朝向的线条、运动的物体。

他们发现,有些神经元只对特定朝向的线条有反应。比如,一个神经元可能在看到竖直的线条时疯狂放电,但对水平的线条毫无反应。他们把这种神经元叫作“简单细胞”。另一些神经元则更为“宽容”——它们也对特定朝向有反应,但不太“挑剔”位置,即使线条在视野内移动,只要朝向对,它们就会响应。这些被叫作“复杂细胞”。

福岛读到这里时,心跳加速了。

他隐约看到了一个极其优雅的层级结构:简单细胞负责“检测特征”,复杂细胞负责“忽略位移”。这两种细胞叠加起来,再叠加一层,再叠加一层——到了高层,神经元不就具备了“平移不变性”吗?不就能够在任何一个位置认出同一个物体吗?

这就是人类视觉的秘密。

这就是他一直在找的那个“规律”。

第二座矿山是数学和计算机科学。他需要把生物学的发现转化成数学模型。他学习了模式识别、统计决策理论、信息论,还有当时刚刚兴起的“感知机”——一种早期的神经网络模型。

感知机是由Frank Rosenblatt在1958年提出的,被认为是神经网络的开山之作。福岛对感知机非常着迷,但他也清楚地看到了它的局限:感知机只有一层,无法处理复杂的模式识别问题。“单层神经网络的能力非常有限,”他后来回忆说,“我当时就想,如果把它变成多层,会不会不一样?”

这个想法,当时并不新鲜——很多人想过“多层感知机”。但没人知道怎么训练它。因为没有一个有效的算法来调整多层网络中间的权重。这是一个“已知的未知”,像一个锁住的箱子,人人都知道箱子里面有宝藏,但打不开。

年轻的福岛说:“我先搭好箱子,钥匙总会有的。”

他开始设计他的多层网络。

那是一个手工的过程。没有现成的深度学习框架,没有GPU加速,甚至没有像样的编程语言。他写代码用的是FORTRAN,输入靠打孔卡片,计算机占满一整个房间,算力还比不上今天的一台手机。

但他不在乎。

他在乎的是那个结构——那个模仿生物视觉的层级结构。他坚信,只要把结构搭对了,其他的问题迟早会有办法解决。


三、蛰伏:那些漫长又孤独的夜晚

(图片来源:AI生成)

一九七〇年代,福岛邦彦进入大阪大学的电子工程系任教。

那是一个属于规则、逻辑和符号的时代。人工智能的主流是“符号主义”——研究者们试图把人类的知识写成一条条逻辑规则,输入给计算机,让它像下棋一样推演答案。这种方法在逻辑推理上卓有成效,但一碰到“识别猫的照片”就彻底失灵了——因为你怎么可能把“猫”的所有形态、所有角度、所有光照条件下的样子都写成规则呢?

符号主义认为,只要给机器足够多的规则,它就能像人类一样思考。但福岛隐隐觉得,这条路走不通。因为人类在识别一个物体时,脑子里并没有在运行一条条“如果那么”的规则。人类只是“看”,然后就“知道”了。这个过程几乎是本能的、自动的、无需思考的。

那这种“本能”是从哪里来的?

福岛认为,它是从大脑的结构中“涌现”出来的。神经元之间的连接权重,是长期进化和后天学习共同塑造的。如果你想造一台会“看”的机器,你不应该给它规则,而应该给它结构——一种能够从经验中自己学习的结构。

这就是连接主义的核心理念。在七十年代,这是绝对的边缘思想。

更糟糕的是,一九六九年,Marvin Minsky和Seymour Papert合著的《感知机》一书,从数学上证明了单层感知机的局限性,并暗示多层网络也好不到哪里去。这本书在当时的影响力巨大,被广泛解读为“神经网络的死刑判决书”。大量研究者仓皇转向,资金迅速枯竭,神经网络研究几乎被逐出学术界。

福岛没有走。

他在自己的实验室里,在嗡嗡作响的老式计算机面前,在一行行手工编写的代码中间,一个人,慢慢搭着那座桥。

那是一座从生物视觉通往人工视觉的桥。

他的日常是这样的:早上八点到实验室,先读最新的神经科学论文——虽然那个领域的进展也很慢,但每一篇有启发的论文都会被他在页边写满批注。然后开始编程。他的Neocognitron模型有数万个神经元节点,在那个年代的计算机上训练一次需要几天甚至几周的时间。训练过程中,他会盯着屏幕上一行一行跳动的数字,像渔夫盯着浮标一样,等待网络自己“学会”某一种模式。

有时候,训练失败了。网络不收敛,误差降不下去。他会对着输出结果发很久的呆,然后在笔记本上画下一连串的问号。

有时候,训练成功了——网络在某个测试集上表现出惊人的识别准确率。他会站起来,走到窗边,看着大阪的天空,长长地呼出一口气。

然后继续写下一段代码。

他没时间庆祝,因为他心里清楚,这个模型还有很多问题:它还不够深,不够快,没有反向传播算法来全局优化。但它至少证明了一件事:一个模仿生物视觉的多层层级网络,是能够工作的。

一九七九年,他终于完成了论文的初稿。

他斟酌了很久标题,最后写下了一个很长、很学术、但每一个词都很重的标题:

“Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern Recognition Unaffected by Shift in Position”

新认知机。一种用于位置不变模式识别机制的自组织神经网络模型。

论文被投递到学术期刊《生物控制论》(Biological Cybernetics)。审稿过程不算顺利——有审稿人提出了尖锐的质疑,其中一些人并不相信神经网络能够做什么。但福岛一一回复,用数据和逻辑回应每一个质疑。最终,论文在一九八〇年正式发表。

发表之后呢?

寂静。

几乎没有人在意。

在当年的学术会议上,福岛展示Neocognitron时,台下坐着寥寥十几个人。有些人礼貌性地鼓掌,有些人低头翻看别的材料。没有人提问,没有人讨论,没有后续的邮件往来。

就像一个石子投入湖面,泛起的涟漪太小,小到几乎看不见,就被别的浪花吞没了。

多年后,他回忆起那个时期,语气依然平静:“我当时就知道,这个模型可能在很多年后才会被广泛理解。但我不着急。”

不着急。

这三个字,说起来轻巧。但你得知道,说出这三个字的人,用了整整三十年,来等待。

等待世界追上他的步伐。


四、Neocognitron:那个改变一切的“方块”

(图片来源:AI生成)

那么,Neocognitron到底是什么?

如果必须用一个画面来描述它,请你想象这样一幅图景:

你是一个建筑设计师,你要设计一座能够自动识别物体的“建筑”。这座建筑有很多层。每一层里,都住着两类人:一类叫“S细胞”,另一类叫“C细胞”。

S细胞(简单细胞)是“细节控”。他们拿着一本特征手册,手册里画着各种简单的图形:横线、竖线、斜线、拐角、弧形……每一个S细胞只负责匹配一种特征。当他们在一楼的“输入大厅”里看到自己的特征时——比如一根横线——他们就会兴奋地举起手来,告诉上一层的人:“我这里有一根横线!在这里!”

但是S细胞有一个问题:他们对位置非常敏感。横线必须在那个精确的坐标上,他们才会兴奋。往左挪一个像素,他们就不认得了。

这时候,C细胞(复杂细胞)出场了。

C细胞是“马虎鬼”——这里的“马虎”不是贬义,而是一种精妙的模糊化。每一个C细胞负责“收集”附近几个S细胞的信号。只要这附近有任何一个S细胞兴奋,C细胞就会兴奋。C细胞不太在乎具体是哪一个S细胞、具体在什么位置——他只在乎“附近有人发现了我关心的特征”。

于是,神奇的事情发生了:

假设你在第一层,S细胞1认出了左上角的一根横线,S细胞2认出了正中间的一根横线,S细胞3认出了右下角的一根横线。在第二层,C细胞1收集了这些S细胞的信号,兴奋了起来。C细胞1的兴奋代表什么?它代表:“这根横线出现在了第一层的任意位置。”

你看,通过这样一个S-C交替的机制,Neocognitron实现了“平移不变性”:不管那个特征出现在输入图像的哪个位置,经过几层处理后,高层的神经元都能“看见”它。

然后,这个过程不断重复。

第二层的C细胞输出,成为第三层S细胞的输入。第三层的S细胞不再识别“横线”这样简单的特征了——它们识别的是“L形”“T形”“拐角”等更复杂的组合特征。第三层的C细胞再把“位置”模糊化一次。进入第四层,S细胞开始识别“局部图案”,比如“一个圈”或“一个弧形”。第五层,S细胞可能已经开始识别“一个数字3的局部特征”了……

到了最顶层,只需要一个神经元,就能认出“这是一个数字‘3’”。

这就是Neocognitron的本质:一个层次化的特征提取器,一个“位置不变性”的层层叠加。

今天,每一个深度学习工程师都熟悉“卷积层”和“池化层”。卷积层对应S细胞——提取特征;池化层对应C细胞——降采样、模糊位置。现代CNN的每一个基础模块,都在重复福岛邦彦四十多年前设计的这个S-C交替结构。

你可以说,他不仅画出了建筑的设计图,连每一块砖的尺寸、每一根钢筋的走向,都标记得清清楚楚。

而这一切,发生在一九七九年。

那个没有GPU、没有ImageNet、没有反向传播的时代。


五、坚守:在低谷中,他从未离开

整个八十年代和九十年代,神经网络研究几经起落。

一九八六年,Rumelhart、Hinton和Williams发表了关于反向传播算法的经典论文,让人们重新燃起对神经网络的希望。反向传播算法能够从网络的输出端“反向传递”误差信号,高效地调整每一层神经元的权重。这正是Neocognitrom多年来缺失的那把“钥匙”。

福岛看到了这篇论文,非常兴奋。他很快尝试把反向传播算法应用到Neocognitron上,发现识别效果得到了进一步提升。他为此发表了多篇改进论文。

但他也注意到一个有趣的现象:即使没有反向传播,Neocognitron的“无监督学习”机制也能在很大程度上完成特征提取。这个发现让他更加坚信,生物视觉系统可能确实存在某种“自组织”的学习机制,不需要显式的误差信号也能学习。

然而,好景不长。

九十年代初期,神经网络再次遭遇瓶颈。当时的计算机算力仍然有限,训练大规模神经网络动辄需要数周时间。更重要的是,支持向量机(SVM)横空出世,在理论上更优雅,在小规模数据集上表现更好,迅速成为机器学习领域的新宠。学界再次唱衰神经网络,“神经网络已死”的论调又一次响起。

福岛对此的态度是:继续工作。

一九九五年,他正式从大阪大学退休。退休前,他已经培养了一批学生,延续着神经网络的研究传统。退休后,他并没有停下脚步——他甚至比在职时更加自由了,因为没有教学任务和行政事务的牵绊。

他搬到了东京附近的一个小镇,在一间安静的房间里继续他的研究。每天的生活极其规律:早起到附近的公园散步,回家吃早餐,然后坐到书桌前,读论文,做笔记,写代码,推公式。中午吃简单的便当,下午继续工作。傍晚休息,看电视或者读书。十点准时睡觉。

邻居们只知道这位老人以前是大学教授,但从不知道他在研究什么。他也从不主动提起。

有一年,一位年轻的记者辗转找到他家,想采访他关于深度学习的看法。当时深度学习已经在国际上崭露头角,CNN成为计算机视觉的标配。记者问他:“福岛先生,您看到自己的模型在四十年后被全世界使用,是什么感受?”

他想了想,说:“我很高兴。但更让我高兴的是,年轻人记得这件事,愿意来做这个采访。”

记者又问他:“您觉得您是天才吗?”

他笑了,笑得非常温和,像一个被夸赞厨艺好的普通主妇。

“我不是天才,”他说,“我只是比别人固执一点。”

固执一点。

这四个字,轻描淡写,却重如千钧。在这个世界上,有多少人愿意为一个“不被理解”的问题固执四十年?有多少人愿意在无人喝彩的舞台上,独自演出一场长达四十年的默剧?

福岛邦彦做到了。

不是因为他天赋异禀,而是因为他从来没觉得这是一种“牺牲”。对他来说,研究视觉系统的秘密,就像呼吸一样自然,像吃饭一样必要。他不需要别人的认可来确认自己做的是“对的”。他自己就是自己的裁判。

这种内在的笃定,或许是这个时代最稀缺的品质。


六、回响:当世界终于追上了他

(图片来源:AI生成)

二〇一二年,深度学习领域发生了一场“大地震”。

那一年,Geoffrey Hinton和他的学生Alex Krizhevsky、Ilya Sutskever——对,就是后来OpenAI的那个Ilya Sutskever——带着一个名为AlexNet的深度卷积神经网络,参加了ImageNet图像识别大赛。

ImageNet是一个包含一千多万张标注图片、两万多个类别的巨型数据集。在这个比赛上,传统方法的错误率在25%以上。而AlexNet一举将错误率降到了16%,震惊了整个学术界。

AlexNet的架构是什么呢?

你猜对了:卷积层+池化层+层叠的层级结构。

和福岛邦彦在一九七九年提出的Neocognitron,几乎是同一个框架。差别在于,AlexNet更深、更大,并且用了反向传播算法和GPU加速——这些工具,在1979年要么不存在,要么不成熟。

一夜之间,全世界的AI研究者都翻出了福岛邦彦那篇泛黄的论文。

他们发现,这个日本老人在三十三年前,就已经画出了今天所有视觉AI系统的“骨架”。他们发现,自己辛辛苦苦“发明”的那些技巧——局部连接、权重共享、池化降采样——原来全都在Neocognitron里出现过。

二零一三年,IEEE授予福岛邦彦“神经网络先驱奖”。颁奖词写道:“为神经网络的早期发展和持续贡献,特别是Neocognitron的发明,奠定了现代深度卷积神经网络的基础。”

福岛在颁奖典礼上做了一个简短的发言。他的英语带着浓浓的日语口音,但每一个词都清晰有力。他没有讲技术细节,而是讲了一个故事。

他讲了自己小时候拆座钟的事。他说:“我当时不明白,为什么那么多个齿轮放进去,就能告诉我时间。后来我明白了——因为每一个齿轮都在自己的位置上,做自己该做的事。”

“神经网络也是一样。每一个神经元都是简单的,但放在一起,它们就能完成复杂的任务。这就是集体智慧。这也是我在大自然的视觉系统里学到的最重要的一课。”

台下掌声雷动。

二零二一年,八十五岁高龄的福岛邦彦,收到了一个更大的惊喜:鲍尔科学成就奖。

这个奖由美国富兰克林研究所颁发,奖金高达二十五万美元,被誉为“美国版诺贝尔奖”之一。获奖理由只有一句话,但每一个字都沉甸甸的:

“因发明第一个深度卷积神经网络而奠定现代人工智能视觉系统的基础。”

这可能是他获得过的最高荣誉。消息传到日本,媒体终于开始关注这位“隐士”般的老学者。NHK做了专题节目,朝日新闻发表了长篇报道,标题是:“深度学习之父的‘父亲’——福岛邦彦”。

有人把这个称号转告给福岛,他沉默了一会儿,然后说:“我只是做了一点微小的工作。”

这是他的真心话。他真的觉得自己只是做了“微小的工作”。他不明白为什么世界会这么兴奋——他只是把他看到的那个视觉系统的规律,老老实实地写成数学模型而已。对他来说,那不是“发明”,那是“发现”。

就像一个天文学家看到了新的星星,然后画了一幅星图。那不是他创造的星星,它本来就挂在天上。他只是把它指给大家看。


七、哲思:他教会我们的事

福岛邦彦的故事,不是一个关于“逆袭”的故事。

它甚至不是一个关于“成功”的故事——如果“成功”意味着财富、名声和在世时就享受到的无上荣光。其实直到他的晚年,世界才真正理解了他的贡献。在那之前的漫长岁月里,他的处境用“默默无闻”来形容都算委婉,更准确的说法是“被边缘化”甚至“被遗忘”。

但这个故事,恰恰因此而珍贵。

它告诉我们几件事。

第一,真正的创新,往往在它诞生的时代是不被理解的。

我们今天看CNN,觉得它是“常识”。但在1979年,它是一个异类。主流学界对它不屑一顾,因为它太“生物”,太“特殊”,太不“优雅”。福岛邦彦没有因此放弃,因为他相信生物视觉系统的智慧——几十亿年的进化,不会骗人。

第二,坚持不是因为看到了希望,而是因为确信方向是对的。

如果有人告诉福岛邦彦:“你的模型要在四十年后才能被广泛应用”,他还会继续研究吗?

我想会的。因为他不是为了“应用”而研究。他是为了回答那个从少年时代就纠缠着他的问题:“我们到底是怎么‘看见’的?”这个问题,本身就足以成为一生的动力。

第三,温柔的力量,有时候比锋利更持久。

福岛邦彦这个人,从他所有公开的影像和访谈里,你看不到一丝攻击性。他从不说别人“不对”,从不抱怨“怀才不遇”,从不对当年的质疑者冷嘲热讽。他只是温和地微笑,温和地讲述,温和地指出:“你看,大自然已经给了我们答案,只是我们还没有读懂。”

这个世界推崇锋芒毕露的天才,推崇那种“我比你强”的咄咄逼人。但福岛邦彦提供了一个截然不同的范本:一个安静的、谦逊的、持之以恒的探索者,同样可以改变世界。

而且,他改变世界的方式,是让世界变得更多一点“看见”的能力——这难道不是一件极其温柔的事吗?


尾声

时间来到今天。

福岛邦彦已经八十九岁高龄。他的身体不如从前了,走路需要拐杖,视力也有所下降——这多少有些讽刺,一位毕生研究视觉系统的老人,自己的眼睛却先于他老去。

但他依然清醒。他依然关心着人工智能领域的最新进展。他的书桌上仍然堆着论文和笔记,虽然他说自己“已经没有精力像年轻时那样写代码了”。

他说这句话的时候,带着一种平静的遗憾——不是悲伤,而是像秋天看着树叶落下时的那种平静。你知道一个时代过去了,但你并不怨恨,因为你知道,新的叶子会在春天长出来。

那些新的叶子,就是今天千千万万的AI研究者。他们在读福岛邦彦论文的时候,可能不知道这位老先生还活着,可能不知道他长什么样,可能不知道他曾在无人问津的实验室里度过多少个漫长的日夜。

但这没有关系。

他们用着的卷积层和池化层,就是福岛留给这个世界的礼物。这个礼物的包装很简单,没有丝带,没有华丽的封皮,甚至在外人看来有些寒酸。可是当你打开它,你会发现——里面装着一双“眼睛”。

一双让机器看见世界的眼睛。

一双让人类看见未来的眼睛。

一双让我们看见——“坚持”这件事本身,就足以照亮黑暗——的眼睛。

他像是一个在深夜里默默点亮路灯的人。寒风凛冽,街道空旷,没有人知道他为什么站在那里。但他一盏一盏地点,一条街一条街地点。他点了一辈子。

直到天亮了,人群涌上街头,忽然发现——

“咦,这些灯一直在亮着呢?”

是的,它们一直在亮着。

谢谢你,福岛邦彦。

谢谢你教会了机器,去看见这个世界的形状、颜色与温柔。

也谢谢你教会了我们,有一种力量,叫做——

在无人注视的角落,依然相信光。


02. 我的思考与感受

福岛邦彦的故事,让我看到了一种在这个时代几近绝迹的东西:一种与结果无关的笃定。

我们生活在一个极度推崇“即时反馈”的世界里。发一条动态,几分钟内就期待点赞;做一个项目,一个季度就要看到增长;选一个方向,两年内没有“成果”就被视为失败。我们被训练成了一种“结果导向”的动物——如果一件事不能在可预见的时间内带来回报,我们就倾向于放弃它,转而追逐下一个“风口”。

福岛邦彦用他的一生,给了这种逻辑一记温柔的耳光。

他在一九七九年搭起了Neocognitron的骨架。那一年,没有GPU,没有大数据,没有反向传播,甚至没有几个人在意神经网络。他像一个在极夜中点亮路灯的人——不是为了照亮别人回家的路,因为他并不知道有没有人会在这条路上走。他只是觉得,这盏灯应该亮着。

四十年后,世界才追上了那盏灯。

这让我想起一个问题:我们到底为什么而创造?

是为了被看见、被认可、被载入史册吗?如果是,那福岛邦彦的前四十年无疑是“失败”的——他被主流忽视,被经费拒绝,被时代遗忘。可如果创造本身,就是对创造者最大的奖赏呢?

他曾在访谈中说:“重要的不是做流行的事,而是做你内心深处觉得对的事。”

这句话,年轻时候听,会觉得是鸡汤。到了某个年纪再听,会觉得是刀子。因为它要求你剥离掉所有外部的评价体系,赤裸裸地面对自己:你到底相信什么?如果没有人为你鼓掌,你还愿意继续吗?

福岛邦彦的答案是:我愿意。

这种“愿意”,不是咬牙硬撑的悲壮,而是一种近乎本能的、安静的、持续了一生的“愿意”。就像心跳,不需要理由,不需要观众,它只是在跳。

我想,这才是他留给我们最珍贵的东西——不是卷积神经网络,不是池化层,不是那些写在论文里的公式。而是一种做学问的态度,一种面对世界的方式,一种在喧嚣中保持寂静的能力。

他教会了机器看见。

而他教会了我:真正的看见,从来不是用眼睛,是用时间。

03. 本期提问

基于福岛邦彦的故事以及当代人工智能的发展现状,我想提出一个值得深思的问题:
在当今极度崇尚“短期落地”与“商业变现”的科研环境下,我们是否还有能力和耐心,去孕育下一个“福岛邦彦式的创新”——那种在诞生之初不被理解、却可能在数十年后改变世界的“无用”研究?
如果这样的创新正在被系统性地扼杀,我们失去了什么,又该如何找回那种“与时间做朋友”的科研精神?
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-22 23:52:42 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/790039.html
  2. 运行时间 : 0.920343s [ 吞吐率:1.09req/s ] 内存消耗:4,706.88kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=1a2cea957d1dfe0a663b22c3c99e3f70
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000730s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000764s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.029942s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.015483s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000980s ]
  6. SELECT * FROM `set` [ RunTime:0.006478s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000861s ]
  8. SELECT * FROM `article` WHERE `id` = 790039 LIMIT 1 [ RunTime:0.158662s ]
  9. UPDATE `article` SET `lasttime` = 1784735562 WHERE `id` = 790039 [ RunTime:0.136627s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.010676s ]
  11. SELECT * FROM `article` WHERE `id` < 790039 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.066360s ]
  12. SELECT * FROM `article` WHERE `id` > 790039 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.045669s ]
  13. SELECT * FROM `article` WHERE `id` < 790039 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.096575s ]
  14. SELECT * FROM `article` WHERE `id` < 790039 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.112537s ]
  15. SELECT * FROM `article` WHERE `id` < 790039 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.157189s ]
0.922087s