黑箱理论是控制论中研究黑箱问题及其解决方法的一套理论与方法,其核心主张是不去追究对象内部的具体结构,而只通过外部的输入与输出关系来认识其功能和特性[1]。它把内部结构未知或不便于直接观察的系统称为黑箱,对应地把内部结构完全清楚的系统称为白箱、部分可知的系统称为灰箱[2]。这一思路为研究结构过于复杂、无法或不宜拆解的对象提供了可行途径,并延伸到软件测试、心理学、医学诊断、机器学习等多个领域[3]。
定义
黑箱理论关注的是这样一类对象:人们只能得到它的输入值和输出值,而对其内部结构和运行机理尚不能够或不便直接观察,只能从外部去把握[2]。它同时也指研究此类问题的解决方法,即通过观测输入与输出的变化关系来推断系统的功能乃至内部规律[1]。
这一概念是相对的:同一个对象对不同认识者可能分别是黑箱、灰箱或白箱,随着认识手段进步,原有的黑箱会逐步转为灰箱和白箱[1]。因此黑箱理论既涉及方法论,也涉及认识论层面的问题。
原理
黑箱方法的操作通常包含三个环节。先把研究对象从环境中相对孤立出来,划定边界,把环境对系统的作用视为输入、系统对环境的作用视为输出;再通过直接观测或主动施加测试信号,记录输入与输出的对应变化;最后依据这些数据建立框图模型、动态表或数学模型,用以评估功能特性并预测未来行为[2]。
描述输入与输出关系时,常以传递函数的形式表达:$Y(s) = K(s) \cdot X(s)$,其中 $K(s)$ 表示输入与输出之间的信息传递关系,据此可在已知输入下求出输出响应,而不必打开对象[1]。
Mermaid 示意如下:
graph LR
A[输入 X] --> B[黑箱 K s]
B --> C[输出 Y]
控制论中常用的调节黑箱手段包括随机调节、负反馈调节、建立多变量系统以及建立模型等[2]。与之相对,打开黑箱的方法是把复杂系统分解为局部再研究其结构,但这种分解会干扰对象本身的结构与功能,也可能割裂局部与整体的联系[2]。
发展历程
黑箱最初是工程技术中的概念。1945 年,维纳在《模型在科学中的作用》一文中使用了「闭盒」(Closed Box)的说法,指出科学问题往往从闭盒问题开始,研究它们的途径是利用其输入和输出[2]。20 世纪 40 至 50 年代,维纳与艾什比将这一概念引入信息控制论[1]。
艾什比 1952 年在《设计一个大脑》中开始使用「黑箱」这一术语,1956 年又在《控制论导论》中对黑箱及黑箱方法作了较为系统的阐述,此后黑箱成为专门的方法论用语[2]。维纳在 1961 年把黑箱描述为需要用系统辨识技术加以识别的未知系统,并认为自组织的第一步就是能够复制某个黑箱的输出行为[4]。
应用
在控制工程与系统分析中,黑箱方法用于从实测的输入输出数据建立对象的模型,据此实现预测、控制与优化[5]。在软件工程中,黑箱测试指在不检查程序内部结构的前提下考察其功能,测试用例来自规格说明而非代码,等价类划分、边界值分析、判定表、状态迁移测试等都属于此类技术[3]。
医学诊断依靠观察、实验室检查与问诊推断病情,神经生理学通过观察动物的刺激与反应推断其内部神经结构,天文学则依靠各种信息波认识天体,这些都可视为黑箱思路的运用[2]。心理学中也有把有机体类比为能接受刺激并作出反应的黑箱、只研究输入与输出联系的理论模式[6]。
机器学习为这一概念提供了新的语境:训练完成的深度网络在实践上近似于黑箱,其参数可以查看,但参数对某一具体决策的作用无法直接读懂,因此在需要说明决策理由的信贷审批、临床决策支持与安全认证等场景中受到关注,应对方式包括采用本身可解释的模型,或对不透明模型施加特征归因、代理模型等事后解释方法[3]。
局限
黑箱模型无法解释系统内部的因果机制,这是其最主要的不足[5]。由于只依据观测范围内的输入输出关系,它在新条件下的行为预测会遇到困难,并存在把输入输出关系外推到观测范围之外而产生错误的风险[5]。
此外,黑箱方法得到的往往只是功能与行为层面的等价描述,建立的模型是否对应真实内部结构只能作为推测或假说,需要进一步检验[1]。为弥补这些不足,实践中常把黑箱模型与其他分析方法结合起来,包括对内部结构的进一步辨识[5]。
参见
参考资料
- 黑箱理论_知网百科 . cnki.net [引用日期2026-10-04]
- 相关工具书解释 . cnki.net [引用日期2026-10-04]
- Closed box | IEEE Technology Navigator . ieee.org [引用日期2026-10-04]
- Black box - Skip to main content . epfl.ch [引用日期2026-10-04]
- Caixa-preta . systems-analysis.ru [引用日期2026-10-04]
- 黑箱论-现代大学教育1995年04期-手机知网 . cnki.net [引用日期2026-10-04]
浏览次数:1 次
阅读量:0 次 · 阅读完成量:0 次
最近更新:2026-10-03T17:23:21Z
完成率 = 阅读完成量 ÷ 阅读量,分母是阅读量不是浏览次数 —— 关了 JS 的、秒退的都在浏览次数里、不在阅读量里。 详细口径在后台的「数据统计」页。