第二部分 —— 人工智能与数据的基础
本部分的问题:从人工智能系统接收数据的那一刻起,直到其答案或建议送达农民为止,系统内部究竟发生了什么?
当一个智能系统提出灌溉时机、识别出影响植物叶片的某种病害,或预测产量时,这个答案似乎是一下子出现在屏幕上的。然而,那个答案是一段使用者看不见的漫长旅程的最后一站:它始于从田间、卫星或过往记录中采集的数据,随后经过测量、清洗、分类与分析,才成为一项预测、建议或警示。 在公共讨论中,人工智能有时被描绘成一种能够在任何情形下理解并做出决策的单一心智。而在现实中,它并不是一种工具,而是若干方法与模型的家族,每一种都是为特定任务而设计的。分析植物叶片图像的工具,与预测作物产量的工具并不相同;从数千份文件中提取信息的系统,其工作方式也不同于判定何时灌溉的系统。每种方法都有其长处、所依赖的假设、所需要的数据,以及在信任其结果之前必须理解的潜在错误。 本部分无意把读者变成人工智能专家,也无意用数学与编程细节让读者不堪其负。其目的更为深入,也更为实用:让读者获得一种理解力,既能避免在尚不了解结果如何产生之前就被结果所眩惑,也能帮助读者分辨:哪些系统建立在恰当的数据与清晰的证据之上,哪些系统只是给出并无充分知识支撑的自信答案。 为此,我们将尝试以兼具准确与简明的语言,深入系统内部一探究竟。我们会追问:它从什么数据中学习?这些数据来自何处,由谁采集,又是在什么土地、气候与季节中采集的?它们是否代表该系统将被使用的那座农场的条件,抑或代表着另一种环境?模型能看见什么,又有什么始终在它的视野之外?它如何知道自己的答案是正确的?它又可能如何出错、迟疑,或表现出超出证据所能支撑的自信? 这些并不是远离农业现实的技术性问题。如果气象数据不完整、卫星图像被云层遮蔽、传感器未经校准,或模型是在另一种作物或另一种气候下训练出来的,那么缺陷可能从一个环节传递到下一个环节,最终以一条看似精确的建议抵达农民手中。这并不意味着人工智能没有用处;而是意味着它的真正价值并不仅仅来自其计算上的智能,而是来自产生该答案的整条链条的质量。 我们从人工智能方法及其选择逻辑开始:为什么某种工具适合某个问题,而另一种却不适合?随后我们转向数据,因为数据是系统据以学习的材料,也是它借以观察世界的镜子。之后,我们考察数据来源与数据质量,以便了解信息最初从何而来、经过了怎样的路径,以及对它做过哪些改动。接着我们会谈到遥感,在那里,来自卫星与无人机的图像连同田间设备,被转化为关于植物、土壤与水的指标。由此我们再转向决策支持系统与知识检索,看看测量、模型与农业专业知识如何被汇聚成一个能够在恰当时机、恰当地点加以使用的答案。 这一顺序并非随意安排;它反映了知识在系统中所经过的路径。不适宜的方法可能败坏推断,薄弱的数据可能毁掉最好的模型,来源不明会使结果难以核实,而不准确的测量则产生不准确的建议。一个没有讲清自身依据与限制的答案,可能从辅助工具变成新的风险来源。 理解这些基础,并不意味着农民必须懂得每一个方程式或每一行代码,正如拖拉机驾驶员并不需要成为机械工程师。但农民需要懂得足够多,以便分辨正常运行与故障、真实能力与营销承诺,以及一种帮助做决策的工具与一种要求农民把整个决策权都交出去的工具。 在本部分中,我们不把人工智能看作一个发布答案的神秘盒子,而看作一条由数据、假设、测量、模型与人类决策相互衔接而成的链条。链条上的每一环都会影响下一环。因此,最重要的问题不只是:系统说了什么?还包括:它是如何得出所说内容的,依据是什么,又在什么限度内可以信任? 讨论将始终具体,同时不削减其科学深度,也不把导论变成一段沉重的技术讲解。
第四章:农业情境中的人工智能方法
本章要旨
并不存在一种叫作“农业人工智能”的单一方法,能够适用于每一种作物、每一座农场和每一项决策。我们所说的人工智能是一大类方法:有的从过往示例中学习,有的搜寻异常模式,有的解读图像,有的追踪随时间发生的变化,有的在约束条件下比较备选方案,还有的检索知识并将其组织成一个答案。 任何方法的价值,都不始于其名称的响亮程度或模型的新颖程度,而始于它与我们想要回答的那个农业问题之间的契合度。系统的错误可能不过是一张需要重拍的图像;也可能是一次延误的决策,错过了处置窗口;或是一次自动化作业,把作物或工人置于风险之中。因此,选择始于决策与错误后果,然后才回到数据与方法——而不是反过来。 本章并不要求农民成为程序员,也不满足于仅仅向有一定基础的读者介绍一些耳熟能详的名称。它的目标是在模型内部发生的事情与随后在田间发生的事情之间架起一座桥梁:系统看见了什么?它学到了什么?它输出了什么?它可能在哪里出错?结果在什么时候属于支持性信息,又在什么时候变成一项需要监督与承担责任的行动? 在算法名称之前:问题在系统中的旅程 让我们设想一位农民发现番茄叶片上有斑点,拍了一张照片,然后问一款应用:“这是什么问题?”这项任务看似简单,但系统并不像人那样看见叶片,也不会自行知道地块的历史、品种、湿度,或症状扩展的范围。它接收到的是该图像的一种数字表示,将其与已学得的模式进行比较,然后输出一个类别、一个概率,或一组概率。此后,另一个应用可能把结果转化为一条建议。在图像与建议之间,横亘着一整条选择的链条。 任何智能农业系统都可以通过六个阶段来理解:
- 问题:我们想要支持的是什么问题或什么决策?
- 输入:系统实际能够看到哪些数据?
- 表示:农业现实是如何被转化为图像、数字、文本或时间序列的?
- 方法:哪一类计算方法把输入与输出联系起来?
- 输出:结果是一个分类、一个估计值、一个概率、一个排序,还是一条建议?
- 行动:谁将使用该结果,如果它出错或延误又会怎样?
区分这些环节很重要。一个模型也许擅长对图像进行分类,而图像本身却不能代表田间的实际情况。一项预测也许是合理的,但要把它转化为剂量或时机,就需要模型并未学到的农艺规则与安全约束。在成熟的系统中,这些区别不会消失在“智能”一词之后;它们会被展示给使用者,使其明白在哪里可以给予信任,在哪里需要加以核验。
1. 从问题到表示
人所提出的农业问题,通常比模型能够处理的问题宽泛得多。问“这株植物还好吗?”,一句话里就同时包含了病害、养分缺乏、水分胁迫、机械损伤以及天气影响等多种可能。而模型需要的,是一项具体的任务:其输入可以被表示,其输出可以被定义,其错误可以被测量。 以一片受害叶片为例。它可以被转化为不同的问题:
| 我们要求系统做什么? | 结果如何呈现给使用者? | 它的实用价值是什么? |
|---|---|---|
| 判定图像的总体状况 | 诸如以下提示:“叶片看起来健康”,或“存在令人担忧的迹象”,或“图像不足以做出判断” | 有助于初步分诊,并提示是否需要更好的成像或专业复核 |
| 定位可疑的迹象 | 系统在引起其注意的斑点或叶片部位周围画出一个可见的圆圈或方框 | 有助于使用者确认系统所看的是斑点本身,而不是土壤、阴影或图像背景 |
| 勾画受害区域的边界 | 系统为叶片内受损的区域着色,或清晰地画出其边界 | 有助于估计叶片受害的比例,并与后续图像进行比较 |
| 比较不同时间拍摄的图像 | 系统显示受害区域是扩大了、缩小了,还是保持不变 | 有助于监测病情的发展,而不是依赖单张图像 |
| 对可能的原因进行排序 | 它列出若干可能的原因,并说明每一种原因有哪些支持依据、还缺少哪些信息 | 引导使用者在做出决策前补充一张图像、天气信息或一次田间查看 |
这些并不是同一项任务的不同叫法。每一个问题都需要与之相适应的数据、系统可据以学习的正确答案、一种测量其错误的方式,以及在结果出现之后随之而来的明确步骤。分类对于初步分诊可能已经足够,但不足以引导机器人工具抵达一个精确的位置。而一张受害图在视觉上可能非常出色,却并不能证明受害的原因。 杂草的情形也是如此。如果只需知道是否存在杂草,一项分类任务就够了。如果需要计算杂草密度,我们就需要计数或面积估算。如果需要引导一件机械工具,我们就需要精确的位置、响应时间、一套控制系统和一道安全屏障。从“它看见了杂草”到“它朝杂草移动”,这是从信息到行动的转变,而不是一个次要的编程细节。 正因如此,决策单元要先于模型选择。该决策涉及的是一片叶子、一株植物、一行、一个片区,还是整块田?我们预测的是某块田收获前的产量,还是某一区域为规划仓储与运输所需的总产量?单元一旦改变,数据的含义与错误的含义也随之改变。在区域层面上不错的估计,也许并不适合用来决定某个小片区的灌溉,即便二者都用了“产量”或“产出”这个词。 至于表示,它是系统所允许的、对现实的简化数字图景。它可能以单一深度上的一次墒情测量来表示土壤,或以一张俯拍图像来表示植株,或以一份日期记录来表示田间管理。每一种表示都照亮某一方面,同时把其他方面留在视野之外。模型不知道没有被输入给它的东西,也不可能仅凭提高算力来纠正一个含糊不清的目标定义。 一个实用的问题:在追问算法名称之前,先问:决策单元是什么?系统看见了什么?它没有看见什么?又将在其输出之上建立怎样的行动?
2. 监督学习:从结果已知的示例中学习
监督学习是一种让系统从结果已知的示例中学习的方法。如果我们想训练它区分健康叶片与受害叶片,就向它展示已由专业人员审核并标注状况的图像。如果我们想训练它预测产量,就提供关于天气、土壤、品种与田间管理的数据,并为每条记录附上收获后实际测得的产量。系统试图从大量这样的示例中学习数据与已知结果之间的关系,然后用所学到的内容去估计一个它此前未曾见过的新案例的结果。当这一已知结果是某个类别的名称(例如“健康”或“受害”)时,称之为经专家核实的参照类别;当它是一个实测数值(例如产量的多少)时,称之为参照值。 模型通常并不是从专家编写的规则清单出发的,比如:“若出现这种颜色的斑点,则状况为某某。”相反,开发者向它提供大量结果已知的示例,而它自行搜寻那些与每一种结果反复共同出现的特征。当它看到一个新示例时,就将其与已学得的模式进行比较,进而估计出最接近的结果。 这种能力很有用,但它带有一项重要风险:系统可能学到了某个容易抓取的旁侧线索,而不是学到我们真正关心的农艺特征。它并不会自行知道图像中哪一部分代表病害、哪一部分只是背景;它学到的,是示例被采集与呈现给它的方式。 让我们设想,我们想训练一个系统来区分健康植株与受害植株。所有健康植株都是在温室里对着白墙拍摄的,而所有受害植株都是在开阔田间拍摄的,背后可见深色土壤。我们想要的是让系统学会叶片上症状的形态,但它可能发现一条更容易的捷径:白色背景伴随着健康图像,深色土壤伴随着受害图像。 在以相同方式采集的图像上进行测试时,该系统可能显得很成功,因为测试中的背景与它学习时的背景相似。但在一座新农场上它可能失败——例如把白色温室里的一株受害植物判为健康,或因为背后是深色土壤而把一株健康植物标记出来。系统并非有意误导;它学到的,是数据提供给它的那个更容易的关联,而不是设计者所期望的病害征象。 同样的问题也出现在数值数据中。如果某个收获传感器由于未经校准而给出高于或低于实际的读数,模型就会从错误的数字中学习。如果一些地块的产出以吨/公顷记录,而另一些地块以总吨数记录,却没有说明其间的差别,系统就会把本不可比的数值当作同一回事来处理。而如果用同一个名称指代不同的病害状况,模型就无从知道它们之间正确的界限。 在上述每一个例子中,错误都没有停留在模型之外;它进入了模型据以学习的材料本身。算法也许准确地完成了它的计算任务,却仍然学到了一种建立在错误测量或不稳定定义之上的关系。先进的方法无法从数据中提取出一开始就不存在于其中的确定性。 因此,仅仅在每一张图像或每一条记录旁边找到一个写好的答案还不够。我们需要知道:
- 是谁确定了参照状况或参照值,他们遵循了什么规则?
- 该结果是由一位专业人员确认、由多位专业人员复核,还是由一项参照检测所确立?
- 是否记录了置信度水平,在证据不足时是否允许给出“无法定论”的结果?
- 每一种状况的定义是否在不同农场、不同机构与不同季节之间保持一致?
- 这些示例是否涵盖了容易与困难的情形、早期与后期症状,以及混合病例?
- 这些图像与记录是否代表了品种、地点、设备与光照的多样性?
- 高度相似的图像或记录是否在训练集与测试集之间做了分离,以免系统在与其此前所见高度相似的版本上接受测试?
允许系统说“信息不足,无法判断”,并不是软弱的表现。在农业应用中,有分寸的弃答可能比迫使系统为每一张图像都挑一个病害名称更为安全。一个负责任的结果不仅陈述最可能的可能性;它还会讲清置信的限度、缺失的信息,以及为核验所需的下一步。 面向进阶读者:示例数量庞大并不能弥补多样性狭窄或参照结果薄弱。一个代表不同农场、不同季节与不同设备的小型独立数据集,也许比数千张相似图像更能揭示模型的限度。因此,环境的多样性、结果定义的一致性、测试数据的独立性,以及每一类错误的代价,都必须与数据集规模一并评估。
3. 无监督学习与半监督学习:当有据可查的结果稀缺时我们该怎么办?
在理想情形下,我们或许希望有专业人员审核每一张图像、每一次读数或每一条记录,并确定与之对应的正确结果。但这在现实中很少可行。一座农场可能采集数千张图像和数百万条传感器读数,而逐条审核每一条记录所需的时间、资金或专家力量却并不具备。 当有据可查的结果很少或无法获得时,可以使用一些方法来帮助组织数据、发现其中反复出现的模式,而不必从每个示例都附有正确答案出发。这类方法中最重要的包括无监督学习、异常检测和半监督学习。这些方法的相似之处在于它们都利用未经审核的数据,但它们所承担的功能并不相同,赋予其结果的确定性程度也不相同。 第一:无监督学习 在无监督学习中,系统并未被给予一份事先的清单,告诉它“这个区域良好”“这个较弱”“这个存在排水问题”。相反,它在数据内部搜寻那些在特征上彼此相似的记录,然后把相似的归为一组。 假设我们拥有田间不同区域的读数,包括土壤墒情、生产力、温度,以及由航拍图像获取的反射特征。系统可能发现某些区域在这些读数上彼此相似,从而把它们归为一组,同时把另一些区域归入不同的组。 这一结果可能帮助农民看到此前并不清晰的差异,但它并不会自动解释其成因。共同表现为低产的区域在数学上可能相似,但减产的原因却可能因地而异:
- 某个区域可能排水不良。
- 另一个可能受到遮阴影响。
- 第三个可能在土壤类型上有所不同。
- 而第四个区域读数偏低,可能是因为传感器未经校准。
所以,在这一阶段系统说的是: “根据我所分析的数据,这些记录是相似的。” 它没有说: “我已经证明这个区域较差,或者它需要特定数量的肥料。” 这一区别至关重要。计算上的分组有助于引导注意力、实地查看与取样,但它不能替代农艺上的解释。 系统所找出的分组,也并不独立于设计者的选择而存在。结果会受到以下因素的影响:进入分析的变量、其单位标准化的方式、要形成的组数,以及算法所认为重要的相似程度。举例来说,如果我们略去排水数据,那么无论分析方法多么先进,系统都无法用排水来解释这种差异。 第二:检测异常情形 这类方法的一个重要用途是检测异常情形。系统学习某段时期内读数或行为的常规模式,然后在出现与之存在实质性差异的情形时向使用者发出提示。 这种差异可能是:
- 读数已开始逐渐漂移的湿度传感器。
- 用水量突然上升,可能意味着漏水或运行状况发生了变化。
- 某条灌溉管路流量出现异常下降。
- 某头牲畜的活动或采食模式出现明显变化。
- 某个温度读数在异常长的时间里保持不变,这可能意味着传感器故障。
但仅凭一条警报,并不能证明确实发生了故障或病害。它只意味着: “该情形与系统所认为的常态不同,因此值得进一步检查。” 其原因可能是真实存在的问题,可能是季节性的自然变化,可能是一项新的农业作业,也可能是测量误差。因此,差异信号不得被直接转化为诊断结论或作业指令。 警报数量多,也不能证明系统质量好。例如,如果系统每天向一个最多只能核查五条警报的团队发送一百条警报,这一工具就会变成噪声的来源,重要的预警也可能淹没在重复的警报之中。 因此,系统应依据三个因素进行校准:
- 它可能漏检的情形的严重程度。
- 团队能够处理的误报数量。
- 工人或专业人员及时核查该警报的能力。
每条警报都应说明其发出的原因,例如: “过去六小时内,该区段的用水量已升至其常态范围之上,而相邻区段未出现类似变化。” 这比一条笼统的提示“检测到异常”更清晰,也更有用。 第三:半监督学习 当我们拥有少量经专业人员复核并给出正确结果的样本,同时还有大量尚无人复核的图像或记录时,就会使用半监督学习。 假设某农场拥有数千张植物叶片图像,但植物病理学家只能复核其中的几百张。这一较小的样本集中包含若干已知情形,例如:
- 健康叶片。
- 某种特定病害的症状。
- 营养缺乏的症状。
- 不足以作出判断的图像。
其余图像虽然可用,但其状态尚未记录。 系统首先从专业人员复核过的样本中学习,随后利用其他图像中发现的相似性与差异性。通过这种方式,可以使用大量数据,而无需专家逐张人工复核每一幅图像。 但减少人工工作量并不意味着可以免除人工核验,也不意味着大量未经复核的图像能够弥补一个薄弱或狭窄的已标注样本集。 如果专业人员复核过的所有图像都来自:
- 同一个农场。
- 同一个品种。
- 同一部手机。
- 相似的光照条件。
- 病害的晚期阶段。
那么系统可能会学到:这些有限的条件就代表了全部情形。它在相似图像上可能表现良好,而在遇到早期症状、另一品种、不同农场或画质较差的相机时,表现便会变差。 一个学到了病害晚期表现的系统,可能无法识别其早期发生。一个基于单一品种训练的系统,可能把另一品种的自然特征误认为病害症状。而数千张没有任何专业人员复核过的图像,并不能自动弥补系统借以学习各类情形含义的已标注样本的狭窄性。 因此我们应当追问:
- 这些已标注样本是否涵盖了不同的农场、品种与生育阶段?
- 每个样本的状态由谁判定,又是如何核验的?
- 是否保留了不确定的情形,而不是把每个样本都强行归入某一确定结果?
- 专业人员是否对系统随后给出的部分结果进行了抽样复核?
- 薄弱之处是否集中出现在某一特定类别、地点或生育阶段?
- 结果是真的改善了,还是系统只是变得更加自信?
第四:在界定任务之前先学习通用特征 还有一些方法,会先从大量图像或信号中学习反复出现的通用特征,然后再针对某项具体的农业任务训练系统。系统可能学会区分形状、边缘、纹理与色调,而无需把每张图像都与某种病害或某种农业状况的名称关联起来。 在此之后,再使用一个经专业人员复核的较小样本集,教会系统所需完成的任务,例如区分健康叶片与表现出特定症状的叶片。 这一步骤可以减少所需的工作量,但并不意味着系统自行理解了病害或作物。它学到的是通用的视觉或数值特征,随后被引导至某项具体的农业任务。结果的质量仍然取决于已标注样本的可靠性,以及在独立田间条件下的测试。 实践示例:把田块划分为三个区域 假设系统分析了土壤水分数据、产量数据与航拍图像,随后把田块划分为三个特征不同的区域。 这一结果并不直接意味着该田块需要三套施肥方案。正确的下一步,是利用这张图来指导检查:
- 团队首先确认传感器与数据的完整可靠。
- 团队前往每个区域内具有代表性的点位。
- 检查土壤、排水、遮阴与管理历史。
- 必要时采集适当的样品。
- 将计算得出的解释与田间观察和测量进行比较。
- 随后判定这些区域是否确实需要不同的处理方式。
检查的结论可能是:一个区域的差异源于土壤,第二个区域存在排水问题,而第三个区域之所以显得不同,是因为传感器误差。如果把这三个分组直接转化为三套施肥方案,那就等于把不同的原因当作同一个问题来处理了。 因此,在这种情况下,算法提供的是一张标明哪些问题值得检查的地图,而不是一份现成的解答处方。 结论 当已标注的结果数量很少时,这些方法可以通过不同方式利用丰富的数据:
- 无监督学习把相似的情形聚在一起,但它不能确定它们为何相似。
- 异常检测提醒我们哪些情形偏离了模式,但它并不提供最终诊断。
- 半监督学习把专业人员复核过的样本与更多未经复核的数据结合起来,但它可能把有限样本的缺陷传导至系统的其余部分。
- 学习通用特征减少了一开始就复核每张图像的需要,但它并不能替代田间测试或专家判断。
而贯穿其中的原则是: 丰富的数据有助于系统发现模式,但农业上的含义并不仅仅来自数量;它来自可靠的测量、已标注的样本、田间情境与人工核验。
4. 计算机视觉:系统在图像中看到了什么?
当农民或专业人员观察一片植物叶片时,他们看到的不只是颜色和形状。他们会把所见与植株的生育期、症状的扩散情况、田块状况、天气、灌溉,以及自己对以往案例的经验联系起来。相比之下,计算机视觉系统的起点则要狭窄得多:一张图像或一段视频,被转换为计算机可以分析的数字数据。 计算机视觉是一套帮助系统在图像与视频中发现模式的方法。它可能使用称为卷积神经网络的模型或更新的视觉模型,来识别形状、颜色、纹理与空间关系。它在农业中的应用包括作物病害检查、杂草与果实识别、成熟度估计、产品分级,以及动物活动与行为监测。科学综述梳理了这些应用在农业与食品工程中的广度 [SRC001][SRC002]。 但说系统“理解了图像”,可能会让人以为它像人一样观看并解读图像。事实上,同一张图像可以用来回答不同的问题,而每个问题都有各自的方法、结果与限制。 1\. 判定图像的整体状态——分类 在这项任务中,系统把图像视为一个整体,然后从它先前学到的一组状态中选出最接近的一个。 结果可能是:
- 叶片看上去是健康的。
- 存在提示感染的迹象。
- 果实看上去属于某一质量等级。
- 该图像不足以得出可靠结果。
这类分析对初步分拣是有用的。但它未必能指出该迹象在图像中的位置,不能确定其成因,也不能把概率转化为最终诊断。 因此,如果系统说这张图像“可疑”,那意味着其总体模式与它学习过的样本相似。仅此一点并不意味着病害已被确认,也不意味着处置方案已经明确。 2\. 判定目标或迹象的位置——检测 有时仅知道图像中含有果实、杂草或可疑斑点是不够的;我们还需要知道它在哪里。 在这种情况下,系统会在它检测到的部位周围画出可见的圆圈或方框。例如在检查植物叶片时,可能会在某个斑点周围出现一个方框。在分析田块图像时,系统可能会在它找到的每一个果实或杂草周围画出方框。 这一结果有助于回答这样的问题: 系统检测到的东西在哪里? 它还有助于使用者核实系统是否聚焦在了正确的部位。系统可能以为自己检测到了病害症状,而实际上它关注的是一片阴影、一块土壤,或图像背景的一部分。 但确定斑点的位置并不能确定其出现的原因。系统可能正确指出了受害部位,而判定造成该损害的病害或胁迫仍需其他信息。 3\. 勾画受害区域的边界——分割 我们可能需要了解的不止是目标的位置,还想精确知道它占据了多大面积。 在这项任务中,系统会给它认为受害的区域上色,或在图像上勾出其边界。它不再围绕整片叶子画一个宽泛的方框,而是尝试在叶片内部识别出受害的部分。 这有助于:
- 估算叶片受害的比例。
- 测量航拍图像中的植被覆盖量。
- 把果实与背景分离。
- 判定田块某一部分中杂草覆盖的面积。
- 比较受害面积随时间的变化。
工程师用“像素”一词来描述构成图像的那些小点,但读者并不需要这个术语就能理解结果。在实践中重要的是:系统正在尝试勾画出它所检测区域的精确边界。 即便如此,确定受害面积并不能确定是哪种病害造成的。边界可能很精确,而对成因的解释却可能是错的。 4\. 随时间跟踪目标或状态——跟踪 在分析视频或连续图像时,系统可能需要判断:此刻所见的目标,是否就是上一时刻或上一帧图像中出现的那一个。 这可用于:
- 跟踪圈舍内动物的活动。
- 跟踪分选线上的某个果实。
- 对物体计数,同时避免对同一物体重复计数。
- 监测受害区域在连续图像中的扩展。
- 跟踪某台机械或某名工人在作业区域内的移动。
在这里,仅在每张图像中单独检测目标是不够的;系统必须把该目标在连续帧中的出现关联起来。 当目标被另一物体遮挡、光照发生变化、动物相互重叠或摄像头移动时,系统可能会遇到困难。因此,跟踪丢失不应被直接转化为“该动物、果实或机械确实已离开该区域”的结论。 5\. 估计距离与形状——深度估计 平面图像展示的是高度与宽度,但它并不总能直接提供真实距离。机器人或分选机械可能需要知道目标有多近,以及它在空间中是什么形状。 系统可能使用一台或多台摄像机,或使用合适的传感器,来估计:
- 工具与果实之间的距离。
- 植株的高度或某个物体的尺寸。
- 人或动物距离运动区域有多近。
- 枝条相对于机械臂的位置。
- 需要抓取或避开的物体的形状。
深度估计有助于机械靠近目标,但仅凭它并不足以保证运动安全。系统仍需知道工具的限度与速度,需要在出现障碍时停止,并需核实测量结果没有因灰尘、振动或能见度差而发生改变。 为什么必须精确界定任务? 视觉任务的选择,与结果出现之后所要采取的行动紧密相关。 如果目标只是判断图像中是否有果实,图像分类可能就够了。但如果目标是对果实计数,系统就必须逐个确定每一个果实。而如果目标是引导机械臂采摘果实,它还必须知道果实的位置、距离与形状,并把这些信息转化为安全的运动。 同样,知道某张图像中存在杂草,并不足以引导机械工具朝它们作业。系统还需要:
- 识别每一株杂草。
- 把它们与作物区分开。
- 确定其相对于机械的位置。
- 计算工具的运动。
- 核实没有人、动物或意外物体出现。
- 在置信度下降或数据相互冲突时停止执行。
这一链条中的每一次衔接,都会增加一种新的出错可能。因此,仅仅因为视觉模型在测试图像上表现良好,就把某个系统描述为安全的,这种说法是不成立的。 为什么田间图像不同于实验室图像? 农业图像本身就具有多变性。同一片叶子可能因为以下原因而看起来不同:
- 清晨或正午的光线。
- 阴影。
- 拍摄角度。
- 手机或相机的类型。
- 镜头距离更近或更远。
- 灰尘或湿气。
- 背景。
- 植株的生育阶段。
- 叶片相互重叠。
- 症状的严重程度及其所处阶段。
不同成因造成的症状也可能彼此相似。在同一张图像中,某些营养缺乏的迹象看上去可能与病害或水分胁迫的症状相近。因此,系统成功识别出某种视觉模式,并不意味着它已经确定了农业上的成因。 一个以放置在洁净背景上的单片叶子训练出来的模型,在实验室里可能显得很稳健,而当它在田间遇到相互重叠的叶片、变动的阴影、灰尘、昆虫以及处于早期阶段的症状时,就会面对截然不同的现实。 因此,训练图像与测试图像应当代表系统实际运行时所处的条件,而不是代表能拍出图像的最佳条件。 当系统记住了测试题,而不是证明了自身能力 用于训练系统的图像,必须与用于测试系统的图像分开。但这种分离可能在文件层面看似正确,实际上却具有误导性。 假设我们在几分钟内对同一株植物拍摄了十张非常相似的图像,然后把其中一部分放入训练数据,另一部分放入测试数据。系统可能会记住这株植物、背景或拍摄角度的细节,因为测试图像与它先前见过的图像极为相似。 这被称为训练数据与测试数据之间的非预期重叠,在技术上称为“数据泄漏”。 这就像让一名学生练习一组习题,然后在调换顺序或改动部分措辞之后,用同样的习题来测验他。这名学生可能得到高分,但这场测验并不能证明他能解出一道新题。 因此,当农业测试能够做到以下分离时,其效力更强:
- 按整株植株分离,而不仅仅按图像分离。
- 按整块田块分离。
- 按不同农场分离。
- 按互相独立的季节分离。
- 按不同的成像设备分离。
- 使用训练中未包含的品种或生育阶段。
而真正的问题不是: 系统在此前未以文件形式见过的图像上是否成功? 而是: 它在一个此前未从其数据中学习过的农场、季节或设备上是否成功? 为什么“总体准确率”可能具有误导性? 单一的总体结果不足以评判一个视觉模型。 假设在一个简化的数值示例中,测试集包含一千张图像:
- 950 张健康图像。
- 50 张受某种重要病害影响的图像。
如果一个薄弱的模型判定所有图像都是健康的,它在一千张图像中会答对 950 张,其总体准确率看上去可能达到 95%。但这个模型一例病害都没有检出,因此对于它被创建来完成的任务而言毫无用处。 正因如此,我们必须追问:
- 它能够检出多少例病害?
- 它把多少例病害误判为健康?
- 它发出了多少次误报?
- 在不同病害或不同品种之间,其表现是否存在差异?
- 在图像不清晰时,它能否选择不作判断?
- 当它遇到训练数据中未包含的情形时,会发生什么?
如果最危险的错误是把一种罕见而严重的情形判为健康,那就必须测量系统检出这一特定情形的能力,而不能满足于一个被常见类别抬高的平均值。 从看见目标到驱动机械 在机器人技术中,任务并不止于系统识别出果实或杂草。结果还必须经过另一条链条: 看见目标 ← 确定其位置 ← 把该位置转换为机械可以理解的坐标 ← 规划运动 ← 执行运动 ← 核实结果 ← 在存在危险时停止 这条链条上的每一环,都可能是一个独立的误差来源。模型可能正确识别出了果实,而机械臂却因机械振动而移动到一个不精确的位置。或者位置是正确的,但工人的手却出现在运动区域之内。又或者,在指令发出之后、执行被确认之前,通信发生中断。 因此,系统必须包含:
- 对速度与力的限制。
- 人与动物周围的安全区域。
- 不依赖通信的本地停止机制。
- 对动作是否成功的核实。
- 恢复至安全状态的能力。
- 工人明确享有的停止或接管操作的权限。
而应当始终明确的原则是: 模型可能成功看见了目标,而系统却未能安全地加以处置。图像准确率不等于决策准确率,决策准确率也不等于执行安全。 信任一个农业视觉系统之前应提出的实践问题 农民或采购方可以追问:
- 具体任务是什么:图像分类、定位、面积测量,还是机械引导?
- 测试图像是否采集自互相独立的田块与季节?
- 这些图像是否涵盖了我农场中的光照条件、设备与品种?
- 系统在哪些情形下无法作出区分?
- 它是否展示了错误案例,还是只展示最好的案例?
- 它能否表示图像不足以判断?
- 得出结果之后会发生什么:发出警报、给出建议,还是自动执行?
- 在敏感操作被执行之前,由谁复核结果?
- 如果有人出现或置信度下降,机械如何停止?
结论 计算机视觉并没有赋予机器一双人眼,也没有赋予它完整的农业理解力。它帮助系统从图像与视频中提取特定信息:判定一种总体状态、找到一个目标、勾画一个区域的边界、跟踪运动,或估计距离。 这些信息的价值取决于三点:
- 视觉问题的提法是否契合所需的决策?
- 这些图像是否代表真实的田间条件?
- 结果是否通过一个责任明确的安全系统被转化为行动?
这使读者能够区分:一个在短期试验中呈现出令人信服画面的系统,与一个确实经过测试、能够在田间的光照、灰尘、多样性与安全限制下运行的系统。
5. 概率模型与因果推断:什么是预期会发生的,而干预又能改变什么?
农业系统面对两类不同的问题,它们的措辞看上去可能相似,尽管回答它们所需的证据并不相同。 第一类问题是: 如果当前条件持续下去,可能会发生什么? 例如,我们可能会问:
- 季末的预期产量是多少?
- 未来几天出现水分胁迫的概率有多大?
- 这些症状与某种特定病害相关的概率有多大?
- 未来一周可能有多少产品进入仓储?
这些是预测性问题。在这里,系统试图利用它所掌握的天气、土壤、作物与既往管理方面的信息,来估计一个尚未发生的结果。
相比之下,第二类问题是: 如果我们改变某件事,会发生什么? 例如,我们可能会问:
- 如果灌溉时间发生变化,结果会怎样?
- 改变其中一项管理措施会提高产量吗?
- 缩短水泵的运行时间能否在不给作物造成胁迫的情况下减少用水?
- 所采取的处理措施是改善的原因,还是改善另有其因?
这些是因果性问题,因为它们不只是描述可能发生什么,而是在追问我们打算采取的某项行动会产生什么效果。 相关并不能证明一个因素导致了另一个因素。 数据可能显示:使用某种农业投入品数量较多的田块获得了更高的产量。这是一种值得研究的关系,但它并不能证明增加该投入品就导致了产量更高。
可能还存在其他解释,例如:
- 那些田块的土壤本来就更好。
- 那里的灌溉更为稳定。
- 管理这些田块的农民经验更丰富。
- 其经营者拥有更好的设备。
- 该投入品被用于种植不同作物或品种的田块。
- 其所在地点的天气条件更为有利。
- 农民是针对某种未被记录在数据中的状况而增加了投入品用量。
在这种情况下,投入品与产量可能同时出现,而造成差异的真正原因却是另一个因素或若干因素的组合。 这类似于观察到:使用更多传感器的农场取得了更好的结果。仅凭这一点并不能证明购买传感器会改善每一个农场的结果;那些有能力购买传感器的农场,也许从一开始就拥有更好的设备、更充足的资金和更完善的管理。 因此,相关性有助于发现模式和构建预测,但它本身并不能回答这样的问题:
在另一个农场改变这一因素,会带来同样的结果吗? 为什么这一区分对农民很重要? 这一区分并不是一场远离田间的抽象统计学争论。如果系统发现了某个变量与产量之间的关系,随后把它直接转化为一条建议,那它就已经从观察相关性跨到了假定因果性。 一个预测某块田将获得高产的系统,未必知道如何使另一块田获得同样的产量。它的预测能力可能建立在农民无法改变的因素之上,例如土壤类型、地块历史或季节条件。 同样,系统也许能够预测哪些田块最易受到胁迫,但这并不能自动证明它所提出的任何干预措施就能防止胁迫或带来经济效益。 因此,必须区分三个阶段:
- 观察: 数据中出现了什么关系?
- 解释: 这一关系可能有哪些成因?
- 干预: 有什么证据表明改变某一特定因素会改变结果?
我们从一个阶段推进到下一个阶段越远,所需的证据就越强。 我们如何更接近地了解某项干预的效果? 要判定是否正是这项干预造成了差异,我们需要一种方法,尽可能把它的效应与其他因素的效应区分开来。 这可以通过以下途径实现:
- 开展合适的田间试验,比较特定的处理措施。
- 以能够减少各组之间既有差异的方式分配处理措施。
- 比较尽可能相似的田块或小区。
- 在干预前后测量各项条件,并设定清晰的基线。
- 采用一种明确说明其假设与局限的因果分析设计。
- 借助能够解释该因素如何导致该结果的农学或生物学知识。
- 在不同地点或不同季节重现该结果。
使用一种被称为“因果推断”的方法,也并不意味着某种关系仅仅因为软件为它赋了一个数值就成了因果关系。每一项因果分析都依赖于若干假设:哪些因素被测量了?哪些因素缺失了?各组之间是否具有可比性?以及原因在时间上是否先于结果? 而对于一个未被测量或未被记录的重要因素,算法只能依靠额外的假设来加以校正,而这些假设理应被明确陈述。 实践规则: 一个擅长预测的模型,未必擅长估计干预的效应。准确预测结果并不能证明系统知道如何改变那个结果。 概率模型带来了什么? 在许多农业情境中,数据并不足以给出确定的答案。图像可能不清晰,症状可能相互重叠,气象记录可能不完整,传感器读数可能不稳定。概率模型不去掩盖这一不足,而是试图表达不确定性的程度。 设想某种作物的叶片上出现了斑点。可能的原因包括:
- 真菌病害。
- 营养缺乏。
- 水分胁迫。
- 高温或日灼损伤。
- 机械损伤。
- 同时存在不止一种原因。
如果系统只依据一张图像,它可能无法有把握地区分这些原因。因此它不应直接跳到单一诊断;相反,它可以对各种可能性进行排序,并指出为缩小范围还需要哪些信息。 这就是鉴别诊断的含义:比较对症状的若干种可能解释,随后收集有助于排除其中一些、增强另一些的信息。 例如,系统可能会要求:
- 一张叶片背面的图像。
- 关于症状在田块内如何分布的描述。
- 症状出现在较新的叶片上还是较老的叶片上。
- 温度与湿度记录。
- 关于灌溉或既往处理措施的信息。
- 必要时进行田间检查或相应检测。
随着每一条新信息的到来,系统会修正各种可能性的排序。这里的价值不在于给出名称的速度,而在于把我们知道的与不知道的加以梳理,并识别出下一条最有用的信息。 概率不是以数字形式出现的、令人信服的确定性 系统可能会说: 这一状况的概率为 80%。 但这个数字意味着什么? 它并不意味着这片叶子“被感染了 80%”,也不意味着叶片有 80% 的面积被感染。如果系统校准良好,它的含义是:当系统对大量相似案例给出接近 80% 的概率时,结果应当在每一百例中约有八十例发生,而不是在所有案例中都发生。 置信度数值与实际发生情况之间的吻合程度,称为概率校准。 假设某系统对一百个案例给出了接近 80% 的概率:
- 如果约有八十例得到确认,那么它的置信度与现实相对吻合。
- 如果只有五十例得到确认,那么系统就比它应有的程度更自信。
- 如果有九十五例得到确认,那么系统的自信程度可能低于其结果所支持的水平。
这种比较不是在单个案例上进行的,而是在数量适当的一批相似案例上进行的。 对案例进行排序,并不意味着概率数值是正确的 系统可能成功地把案例从最可能到最不可能排出了顺序,却仍然给出了具有误导性的置信度数值。 它给出 90% 的案例,确实可能比它给出 60% 的案例更有可能发生,从这个意义上说,系统的排序是有用的。但如果它给出 90% 的那些案例只有 65% 的比例得到确认,那么它的置信度数值就被高估了。 因此,这里存在两个彼此独立的问题:
- 系统对案例的排序方式是否有用?
- 这些概率数值是否在可接受的程度上反映了现实?
它可能在第一种情形中成功,而在第二种情形中失败。 为什么在迁移到一个新农场时,置信度会发生变化? 一个系统的概率在其接受测试的环境中可能校准良好,而在被迁移到另一个地方之后却变得具有误导性。 这可能源于以下方面的差异:
- 品种。
- 生育期。
- 气候。
- 该病症的扩散范围。
- 相机或传感器。
- 图像质量。
- 管理措施。
- 罕见病例与常见病例的比例。
- 用于确认诊断的方法。
因此,供应商仅仅表明这些概率在开发数据中是恰当的还不够。置信度必须在迁移之后持续监测,与实际结果进行比较,并在需要时重新校准。 如果新环境存在根本性差异,重新校准并不会自动使该模型变得适用;可能需要新的数据,或者需要重新审视使用范围本身。 结果应如何呈现给使用者? 理想情况下,系统不应给出一个孤零零的数字或一个确定无疑的答案,而应分四个层次展示结果: 1\. 最可能的结果与不确定性 例如: 存在若干可能的原因,当前数据不足以确认其中任何一种。 或者: 该估计值落在某一区间内,如果天气或管理发生变化,它也可能随之改变。 2\. 影响权重的证据 例如: 水分胁迫的可能性上升,原因是湿度读数偏低且气温偏高,但有一个传感器读数缺失。 3\. 缺失的信息与下一步 例如: 需要检查该传感器,或需要补充一张图像,或需要对症状分布情况的描述,或需要专业人员复核,然后才能缩小可能的范围。 4\. 决策的限度与责任 例如: 本结果是一项初步预警,而不是确诊结论,也不是执行某项处置的指令。 这样一来,概率就成为构建决策的工具,而不是一个赋予系统它本不具备之权威的数字。 实践示例:产量预测不是提高产量的配方 假设某个模型基于以下因素预测产量:
- 土壤类型。
- 天气。
- 品种。
- 各项作业的时机。
- 灌溉记录。
- 往季数据。
该模型可能做出良好的预测,因为它已学到:某些土壤更好、管理更稳定的地块产量更高。 但如果它还注意到更高的产量与某项投入的增加相关联,它也不能据此直接推断:在所有地块上增加这项投入都会提高产量。那种增加可能只适用于特定地块或特定条件,也可能仅仅是一个与管理更好的农场相关联的标志。 预测模型回答的问题是: 在这些条件下,可能的产量是多少? 而估计某项干预的效应,问的则是: 如果我们只改变这一个因素、其他因素保持可比,产量会有何不同? 第二个问题更难,因为它涉及一个我们在同一地块、同一时间并未观察到的替代结果。正因如此,相比于仅仅在记录中观察相关关系,它需要相应的设计、实验与更清晰的假设。 在接受一项基于统计关系的建议之前的实践性问题 读者可以追问:
- 该系统提供的是预测,还是宣称在估计某项干预的效应?
- 还有哪些其他因素可能解释这一表面上的关系?
- 该干预本身是否经过检验,还是仅仅在既往数据中被观察到?
- 这些地块或群体是否可比?
- 有哪些重要因素未被测量?
- 该结果是否在不同地点与不同季节得到重复验证?
- 系统给出的是一个区间与一个概率,还是一个确定的数字?
- 在迁移到本地环境之后,是否检验过置信度数值的有效性?
- 还有哪些进一步的信息可以降低不确定性?
- 谁有权把这一结果转化为行动?
区分规则 这一区别可以概括为三个问题:
- 现在正在发生什么? 这是测量或诊断问题。
- 之后可能发生什么? 这是预测问题。
- 如果我们介入,会改变什么? 这是因果问题,需要更强的证据。
一个负责任的系统会声明自己回答的是哪一类问题,不会把相关关系变成因果关系,不会把预报变成处方,也不会把概率变成确定性。
6. 优化与运筹学
预测说明可能发生什么,而优化则是在既定约束下,从众多备选方案中寻找一项行动或一套方案。它可能在各个区块之间分配有限的水量,安排一条收集路线,协调收获、运输与冷却,或在相互竞争的时间窗口之间调配工人与机械。 一个优化问题由三部分组成:
- 可以改变的决策: 我们应何时灌溉?车辆应走哪条路线?哪一批次应先冷却?
- 不可忽视的约束: 泵的能力、时间、库存、安全、能源、劳动力以及农业边界。
- 我们希望改善的目标: 减少用水、时间或损失,或在若干目标之间取得平衡。
设想有三个区块需要灌溉,而抽水能力不允许它们同时运行。系统可能提出一份兼顾水分状况、作物优先级与能源价格的时间安排。但如果目标函数只求电力消耗最小化,它可能会推迟一个敏感区块。而如果只求期望产量最大化,它可能忽视某位小农户应得的份额,或忽视对水资源耗竭的限制。算法执行的是为它设定的内容;它不会自行补上设计者忘记指明的价值取向。 正因如此,抽象意义上并不存在“最优解”。存在的是在特定时刻、相对于某一目标、某些约束与某些数据而言的最优解。如果优先事项发生变化、某项资源失效,或对预测的置信度下降,系统就应重新计算或切换到备选方案。 在真实世界的问题中,目标是多重的。我们既想保住产量,又想减少用水与能耗,还要避免胁迫并尊重作业窗口。这些价值并不总能被压缩成一个中性的数字。因此,呈现若干情景及其权衡取舍,比把单一方案当作唯一答案来呈现更为诚实。 系统还应具备安全的手动模式。如果通信中断、气象数据失效或约束彼此冲突,核心流程绝不能在毫无警示的情况下停止运行,或继续沿用一份旧方案。优化的能力不仅以理想条件下方案的精巧程度来衡量,更以其应对真实约束与例外情况的能力来衡量。 实践性问题: 当供应商说“我们对灌溉进行优化”时,要追问:系统优化的是什么目标?水、产量与能源的权重由谁设定?如果数据不完整,方案又是什么?
7. 强化学习与控制:系统如何从一连串行动中学习?
在某些农业问题中,任务并不是发出一次预报就结束。每一项已执行的行动都会改变农场或机器的状态,而新的状态又会影响接下来的决策。 当温室中的一扇窗被打开时,温度可能下降、湿度可能变化,但开窗的效果还取决于室外气温、风力,以及窗户保持开启的时长。而当一台机器人在行间移动时,它的位置会改变,其摄像头能够看到的事物也随之改变;片刻之前并不存在的工人、动物或障碍物,可能会出现在它面前。 在这类问题中,我们面对的不是单一决策,而是一连串相互关联的决策。强化学习正是在这里可以发挥作用。 强化学习指的是什么? 强化学习是一种方法,系统通过观察自身行动的结果,来学习如何选择一连串行动。 “强化”一词并不意味着这类学习比其他所有方法都更好或更强大。它的含义是:在系统采取行动之后,它会收到数值信号,这些信号强化那些使它更接近目标的选择,并降低那些使它偏离目标或导致不良结果的选择的价值。 这一思路可以比作一个学习者尝试多种达成结果的方式,然后逐步保留那些带来更好结果的方式。但这一比拟有其限度:系统并不在伦理或农艺意义上理解农场,它自身也不知道什么才算“更好”。决定它测量什么、有哪些行动可选、哪些界限不可逾越的,是人。 强化学习包含若干主要要素:
- 状态: 在系统所能测量的范围内,描述当前情形的信息。
- 行动: 系统在那一时刻可以执行的选项。
- 结果: 行动执行之后,环境中发生了什么变化。
- 数值评分: 表明该结果是更接近目标还是更远离目标的信号。
- 选择策略: 系统所学到的、在每一种状态下选择恰当行动的方法。
专业人员把负责选择行动的程序称为智能体(agent),把数值评分称为奖励(reward),把选择策略称为策略(policy)。但理解这些功能比记住这些名称更重要。 一个来自温室的简化示例 假设有一个系统,帮助管理温室内部的温度、湿度与能耗。 系统所看到的状态 可获得的信息可能包括:
- 温室内部温度。
- 湿度。
- 室外温度。
- 光照强度。
- 风速。
- 窗户与风机的状态。
- 栽培基质的湿度。
- 一天中的时间。
- 传感器与设备的状况。
这并不是“整个环境”,而是设备能够测量并发送给系统的那一部分。因此,如果某个传感器出现故障,或者数据到达滞后,系统就可能基于一幅不完整或过时的图景做出决策。 它可以选择的行动 可选的行动可能包括:
- 将窗户打开到某一指定角度。
- 关闭窗户。
- 开启风机。
- 降低或提高风机转速。
- 展开遮阳设施。
- 维持当前状态。
- 请求工人介入,而不是自动执行。
也不应允许系统采取人们所能想到的任何行动。可选行动必须事先界定,并受设备限制、安全要求与作物条件的约束。 行动之后会发生什么? 如果系统打开窗户,温度可能下降,但湿度也可能随之变化。若系统通过运行其他设备来补偿这一变化,能耗也可能上升。而同一项行动在一天中的某个时段可能是适宜的,在另一个时段则可能并不适宜。 系统观察行动之后发生了什么,然后利用这一结果改进其后续选择。因此它并不是从单次决策中学习,而是从一个序列中学习: 状态 → 行动 → 环境变化 → 新状态 → 新行动 “奖励”是什么意思? 此处的奖励并不是奖品,也不意味着系统会感到满足或受到惩罚。它是由设计者界定的一种数值评分,用来评估某一行动的结果。 在以下情形中,评分可能上升:
- 温度与湿度保持在所需范围内。
- 能耗下降且未损害植物状况。
- 系统避免了不必要地运行设备。
- 它维持了环境稳定,而不是造成剧烈变化。
- 在数据不足或相互冲突时,它请求工人介入。
而在以下情形中,评分可能下降:
- 条件超出可接受的限度。
- 系统使用了超出必要的能源或水。
- 它反复开关设备,以致加速磨损。
- 它忽视了一个发生故障的传感器。
- 它选择了一项逼近安全限值的行动。
因此,“一种表达目标的奖励”这一说法,其真实含义是: 由设计者设定的一个方程或计算方法,用来把植物状况、能源、水与设备稳定性等若干结果,转换为帮助系统比较自身行动的信号。 但这一评分未必代表目标的全部。设计者未纳入计算的内容,系统也可能不予考虑。 当系统达成了数字却偏离了目的 假设设计者只给系统设定了一个目标:使能耗最小化。 系统可能学会过度减少风机或通风的运行。它可能在计算意义上成功地削减了用电量,而温室内部的温度或湿度却在恶化。 再假设目标是把温度维持在某个单一数值上。系统可能反复开关制热与制冷设备,忽视湿度,或为了阻止一次对植物并无损害的小幅自然波动而消耗大量能源。 在这两种情形中,系统都在计算意义上完成了被要求做的事,却没有实现更广义的农业目的。 这里的错误未必源于算法的缺陷。错误可能出在人类表述目标的方式上。系统能够优化被赋予它的评分,但它并不会自动知道那些未被纳入定义的利益与约束。 因此,视具体问题而定,评估方法必须涵盖:
- 植物状况。
- 水与能源。
- 设备稳定性。
- 人员与动物安全。
- 运行限值。
- 频繁变动的成本。
- 回退到安全模式的能力。
- 必须把决策交还给人的情形。
基本规则: 系统学到的不是我们心中所想的目标;它学到的是数据、评分与约束中所表达出来的内容。 为什么仅靠计算上的惩罚不足以保障安全? 设计者可能会想到:当系统执行危险行动时就降低其评分。但有些行动根本就不应被允许去尝试,即使事后会导致一个负分。 例如,绝不能让系统通过实际执行行动、把植物置于风险之中,来学到在恶劣条件下关闭通风的危险性。也不应让机器人通过与工人发生一次碰撞,来学到靠近工人是不安全的。 因此,必须区分:
- 系统可以优化的目标。
- 它不得逾越的安全限值。
系统可以在允许的范围内尝试降低能耗或改善稳定性,但必须有一个独立的层级阻止它:
- 超出危险的温度限值。
- 在有人处于运动区域内时运行某项工具。
- 在关键传感器失效后继续运行。
- 执行单位或数值超出核准限值的指令。
- 在丧失定位或通信之后继续移动。
- 停用手动停止机构。
这些限值有时被称为硬约束(hard constraints),即系统不得为追求更高评分而突破的、具有约束力的运行规则。 探索指的是什么? 为了知道哪些行动最优,系统可能需要尝试那些此前用得不多的选项。这被称为探索。 但在真实系统中进行探索,不同于在数字游戏内部做实验。田间的一次失误可能浪费水、使作物受到胁迫、损坏设备,或让工人面临风险。 因此,不应让系统在农场上自由尝试任何行动。可以通过一条循序渐进的路径降低风险:
- 学习或评估先在一个能够较好代表该环境的仿真中开始。
- 利用历史数据理解在既往条件下发生了什么,同时牢记这些数据并未涵盖所有可能的行动。
- 在监测模式下测试系统,只提出行动建议而不予执行。
- 将其建议与操作人员的实际做法以及随后发生的情况进行比较。
- 进入低风险范围内的有限试验。
- 独立的约束与人的停止权限保持有效。
- 只有在出现足够的安全性与稳定性证据之后,才扩大运行范围。
仅靠仿真是不够的,因为它是对现实的一种简化呈现。植物、设备或天气的反应可能与模型的假设不同。这有时被称为仿真与现实之间的差距。因此,向真实运行的过渡必须循序渐进、受到监测,并且可以回退。 并非每个控制问题都需要强化学习 强化学习之所以显得有吸引力,是因为它从一连串决策中学习,但它并不自动就是最好的选择。 如果运行规则清晰而稳定,一个直截了当的基于规则的系统可能更透明、也更易于测试。如果设备的响应已知且能够被很好地刻画,那么常规控制方法或带约束的优化可能更安全、成本也更低。 在以下情形中,强化学习才成为候选方案:
- 决策是序贯的,每一项行动都会影响其后的情况。
- 某些行动的结果要在延迟之后才显现。
- 在即时收益与后续影响之间存在权衡取舍。
- 难以写出一条涵盖所有情形的固定规则。
- 具备适当的训练环境或仿真条件。
- 能够界定一个安全的行动范围。
- 存在监测性能并予以回退的途径。
但如果目标仅仅是在图像中检测病害、预测产量,或发出一次预警,那么其他方法可能更为适宜。不应仅仅因为强化学习听起来更新、更令人兴奋就去使用它。 在控制系统内部,谁负责什么? 在一个真实的农业系统中,若干功能必须彼此分离: 1\. 状态测量 传感器与相机采集关于环境与设备的信息。这些信息可能不完整、有延迟,或不够准确。 2\. 状态估计或预测 可以使用模型来估计那些未被直接测量的量,或预测在采取某项特定行动之后可能发生什么。 3\. 行动选择 控制策略根据状态、目标与约束,确定所建议的行动。 4\. 安全检查 一个独立的层级审查该行动是否被允许、数据是否充分,以及设备与环境是否处于安全状态。 5\. 执行 指令被发送至窗户、风机、水泵或电机,并且必须确认该指令确实被执行,而不只是被发送出去。 6\. 结果核验 系统比较预期与执行之后实际发生的情况。如果设备没有响应,或以不同方式动作,必须能够被检测出来。 7\. 人工监督 人拥有批准、停止或推翻的权限,并且能够在应用程序或连接失效时回到清晰的手动操作。 这种分离之所以重要,是因为某一部分的成功并不能证明整个系统的成功。软件可能选择了恰当的行动,而阀门却没有响应。阀门可能执行了指令,而确认结果的传感器却可能存在故障。各个组件可能在技术上都正常运转,而目标本身却可能并不完整。 深度强化学习指的是什么? 深度强化学习是使用深度神经网络来帮助系统表示复杂状态、估计行动价值或选择行动的强化学习。 而“深度”一词并不意味着该系统:
- 以人类的方式理解环境。
- 更加安全。
- 必然需要一台机器人。
- 会自动看懂图像。
- 适合田间部署。
- 优于规则或常规控制。
深度强化学习可能在一个仿真环境中用于选择行动,而计算机视觉则使用另一个模型来分析图像。两者可能在同一台机器人内部运行,但它们履行的是两种不同的功能。 一处重要的来源更正:看见杂草不等于控制其清除 在本书早先的编辑材料中,曾出现一处表述,把某项杂草检测研究描述为在机器人清除作业中使用“深度强化学习”的一个例子。 但可以核实的来源 [SRC009] 涉及的是使用卷积神经网络对在大豆田中拍摄的图像进行分类。也就是说,该研究支撑的是计算机视觉的一项任务:分析图像并区分不同模式。 而这一来源并不能确立该研究开发出了:
- 一个学习行动序列的系统。
- 机器人中的控制策略。
- 用于评估清除效果的奖励信号。
- 朝向杂草的自动移动。
- 用于清除作业的田间部署。
- 一个基于深度强化学习的系统。
这一区别是根本性的: 计算机视觉追问的是: 图像中是否有杂草,它在哪里? 而强化学习与控制追问的则是: 机器现在应采取什么行动,它又将如何影响状态与下一项行动? 一台除草机器人可能需要一个视觉模型来识别植株,再需要另一个系统来确定位置,然后需要一个运动规划器,接着需要一个控制器来执行动作,还需要一个在出现危险时让机器停止的安全层。分类算法的成功并不能证明这整条链条的成功。 纳入这一更正并不是在争论命名问题,而是本书证据方法的一次应用:除非来源确实确立了某项算法、运行能力或田间影响,否则不应把它归于该来源。 综合示例:温室中的通风管理 假设系统管理着温室内部的一扇窗户和一台风机。 在某一给定时刻,它读到:
- 内部温度略微升高。
- 湿度偏高。
- 外部温度较低。
- 风力适中。
- 无设备报警。
它可以在以下选项之间作出选择:
- 维持现状。
- 部分打开窗户。
- 进一步打开窗户。
- 开启风机。
- 同时使用窗户与风机。
- 请求工人复核。
如果它部分打开窗户,温度与湿度随之下降且未造成高能耗,评估方法就记录该结果更接近目标。如果这一行动引发了突变,或湿度偏出范围,数值评分就会下降。 但仍然必须存在一些不容试验的规则,例如:
- 在维护盖板打开时不运行设备。
- 在关键传感器数据相互冲突时不继续运行。
- 不超出电机的运行限值。
- 在通信中断时切换到安全模式。
- 允许工人立即将其停止。
这样,系统就在一个被允许的空间内学习,而不具备通过试验重新定义安全的自由。 在接受一个基于强化学习的系统之前的实践性问题 农民、采购方或运营方可以追问:
- 该系统学习做出哪些序贯决策?
- 哪些信息用于描述当前状态?
- 如果某个重要传感器发生故障或出现延迟,会怎样?
- 系统被允许采取哪些行动?
- 引导学习的数值评分是如何计算的?
- 哪些方面未被纳入这一数值评分?
- 系统不得逾越哪些限值?
- 训练在何处进行:在仿真中,还是在实际运行中?
- 仿真与农场之间的差距是如何处理的?
- 系统是否在执行之前先从建议与监测起步?
- 当它遇到此前从未见过的情形时会发生什么?
- 是否存在独立于应用程序的本地停止机构?
- 谁拥有批准、推翻以及回到手动模式的权限?
- 强化学习是否真有必要,还是存在更简单、更清晰的方法?
致进阶读者: 评估一个强化学习系统,不能只看它在训练期间取得的平均分数。还必须考察它在罕见情形下的行为、其性能的稳定性、它对目标界定方式的敏感程度、它在数据不完整时的运行能力、它对约束的遵守情况、仿真与现实之间的差距,以及从建议过渡到执行的安全性。 结论 强化学习不是一种赋予机器在田间自由试验之权的方法。它是一种在人所设计的限度之内、学习如何选择序贯行动的途径。 它的价值取决于五件事:
- 可获得的信息确实描述了相关状态。
- 数值评分代表了农业目标,而不是把它化约为一个具有误导性的数字。
- 安全仍由不得被推翻的独立规则来保障。
- 从仿真到运行的过渡是循序渐进且可以回退的。
- 人始终是拥有停止系统与最终批准权限的一方。
而读者应当带走的规则是: 系统学到的不是我们心中默认的目标;它学到的是数字所奖励、约束所允许的行为。因此,必须先检验目标与限度,然后才检验算法的智能程度。 最终的安全规则可以更清晰地表述如下: 田间不应成为设计者首次发现系统评估方法并不完整、或首次发现尝试一项新行动可能伤害作物、人员或设备的地方。
8. 语言模型、生成与检索:从问题到有据可依的答案
农民可以用日常语言向数字助手提问,而不必在冗长的菜单中翻找,或填写一份复杂的技术表单。他们可能询问某条预警的含义,请求对一份文件作出摘要,要求把说明翻译过来,比较两份记录,或从一份报告中提取某项特定信息。 这种便利是语言模型最重要的益处之一,但它同时也是潜在的误解来源。一段以清晰、自信的语言写就的答案,可能看上去出自一位了解该领域、该地点与该产品的专家,而事实上,系统可能是依据语言模式,或依据不足以支撑决策的不完整信息拼合出来的。 因此,仅仅追问下面这个问题是不够的: 系统能否写出一段可理解的答案? 我们还必须追问: 答案中的信息从何而来?它是否适用于这种作物、这个地点、这个时间和这项决策? 语言模型做些什么? 语言模型是一个在海量文本上训练的系统,用以学习词语、句子与观念之间反复出现的关系。当它被要求给出答案时,它会依据问题、系统指令,以及它所能获得的上下文,逐段构建文本。 它可以用于以下任务:
- 为一份长文件作摘要。
- 把内容从一种语言翻译成另一种语言。
- 把零散的笔记整理成一份有条理的报告。
- 从一条记录中提取作物名称、地点、日期或单位。
- 用更浅显的语言解释某个技术术语。
- 比较若干份文件。
- 管理一段由不止一问一答构成的对话。
- 用使用者可以阅读的自然语言组织答案。
但这些能力并不意味着该模型具备独立的农业理解力,或对每一项法规、价格与产品都有最新的记忆。它擅长构造连贯的文本,而在这样做时,它可能使用正确的信息、不完整的信息,或一种在语言上看似合理、却并未牢固扎根于来源之中的关联。 因此,流畅是答案措辞的一种属性,而不是其内容准确性的证据。 一段答案何以既令人信服又缺乏支撑? 当模型掌握的信息不足时,它可能不会把这一空缺明白地留在那里。它可能依据从既往文本中学到的模式,用看似合理的措辞把句子补完。 这可能导致:
- 一个并未出现在来源中的数字。
- 把一个尚不确定的原因表述得像是一项诊断。
- 一个看似合理、却并未与某个已登记产品挂钩的剂量。
- 一个并不适用于该作物或该国家的产品名称。
- 一个过时的价格,或来自另一个市场的价格。
- 一条看上去正式、却并不支撑该主张的引注。
- 一段省略了限定条件、改变了单位,或夸大了确定性程度的译文。
- 一段被当作针对特定农场之建议来呈现的泛泛答案。
这并不意味着该模型在蓄意欺骗。问题在于,它被设计用来生成契合语言语境的文本,而不是保证每一个句子都已对照一个对本项决策有效的来源作过核实。 基本规则: 一个系统能够把句子补完,并不意味着它拥有把一项决策做完所需的证据。 一个简短的农业问题可能隐藏着大量信息 如果一位农民问: “我的作物上出现了斑点,我该用什么?” 这句话在语言上似乎清楚明白,但在农业上并不完整。它没有告诉我们:
- 是什么作物?
- 是什么品种?
- 植株的苗龄与生育期如何?
- 农场位于何处?
- 症状是何时出现的?
- 症状出现在新叶还是老叶上?
- 症状在叶片上表面还是下表面?
- 症状是遍布整块田,还是局限于有限的斑块?
- 茎、根或果实上是否有症状?
- 天气与灌溉条件如何?
- 此前是否使用过任何处置措施?
- 图像是否清晰,是否具有病例代表性?
- 在使用国,哪些产品已针对该作物与该有害生物完成登记?
- 是否存在与采收前间隔期或工人再进入间隔期相关的限制?
如果系统自行填补这些空白,它给出的答案可能适用于它所想象的某个病例,而非农场上真实存在的病例。 因此,负责任的系统应在信息缺失时停下来,先索取所需信息,再去收窄可能性。最好的初始回答可能是一个澄清性提问,而不是一条建议。 生成与检索的区别是什么? 生成是用自然语言组织出一个新答案的过程。模型接收问题与可用语境,然后把它们组织成用户可以阅读的文本。 检索则不同,它是在一批文档或记录中查找可能与问题相关的段落。 如果用户询问某一特定产品所要求的等待间隔期,系统可以在以下资料中检索:
- 现行核准的产品标签。
- 产品登记记录。
- 主管监管机构发布的文件。
- 与该作物及该有害生物相关的官方指南。
- 经核准知识库的某一标注日期的版本。
检索并不必然形成最终答案;它找到的是可用于构建答案的材料。 当系统把检索资料来源与依据检索结果组织答案结合起来时,这一工作流程就称为检索增强生成,通常缩写为 RAG。 检索增强生成中发生了什么? 该流程可以简化为六个阶段:
- 理解问题:确定用户在问什么,以及缺少哪些信息。
- 界定检索范围:选择与该作物、地点和主题相适应的资料来源集合。
- 查找候选段落:检索文档中看起来与问题相关的部分。
- 核验有效性:排除已过时、非官方或不适用于该语境的文档。
- 组织答案:用被采纳的段落写出清晰的回答。
- 展示来源与限制:让用户知道信息出自何处,以及该答案无法确立什么。
这条路径可以减少缺乏支撑的答案,但并不能自动杜绝它们。系统在这六个阶段中的任何一环都可能出错。 检索并不会把永久性知识植入模型内部 当系统在提问时检索到一份文档,它会把其中一部分放在模型面前,帮助模型组织答案。这并不意味着这些知识已成为模型的永久组成部分,也不意味着它之后的所有回答都会正确地使用这些知识。 面对新的问题,可能会执行新的检索,取回不同的段落。因此,每个答案的质量取决于:
- 问题的措辞。
- 可用资料来源的集合。
- 这些资料的组织与索引方式。
- 检索标准。
- 呈现给模型的段落。
- 约束措辞的指令。
- 系统在找不到充分支撑时放弃作答的能力。
这意味着,仅评估语言模型是不够的;必须评估整条检索、组织与引用的路径。 检索路径可能如何出错? 这条路径可能以多种方式失效: 1\. 误解问题 它可能把一个本地词汇理解为某种病害的名称,或把作物名称与品种名称混淆,或者在用户其实是在询问初步识别时,却以为用户在问处置方案。 2\. 在不合适的资料集合中检索 当问题需要一份官方的本地文件时,系统却去检索一般性文章;或者检索了另一种作物的指南。 3\. 检索到过时的文档 该文档在发布时可能是正确的,但此后产品登记、限制条件、价格或使用说明可能已经发生变化。 4\. 检索到适用于另一语境的有效来源 该建议对另一个国家、另一个品种、另一个生育期或另一种生产体系而言可能是正确的。 5\. 选中了词语相同但含义不同的段落 该段落可能包含病害名称与作物名称,但讨论的是预防而非处置,或者描述的是一项研究,而不是操作指示。 6\. 在组织答案时超出了来源的范围 来源可能只提到一条一般性说明,而模型却把它变成了来源中并不存在的具体建议。 7\. 在来源并不支持的句子后面附上一个正确的引用 仅有来源名称或其链接是不够的。主张本身必须出现在来源之中,并且具有相同的确定程度和相同的限制条件。 因此,来源可能是可靠的,检索在文本层面上也可能是成功的,但答案仍可能不适用于农业决策。 措辞相似并不等于适用 假设系统找到一份讨论某种作物叶斑的文档。该文档看上去与问题高度相关,但它可能:
- 涉及的是产品登记情况不同的另一个国家。
- 针对的是不同的品种或环境。
- 是一项实验室研究,而非田间指导。
- 描述的是症状相似但病因不同的情况。
- 已经陈旧,或已被更新版本取代。
- 讨论的是预防,而用户询问的是已经发生的病例。
- 提到某种有效成分,却没有本地登记的产品。
- 是译文,并在翻译中遗失了一项重要的限定条件。
因此,检索不应仅依赖词语相似度。必须用以下信息来收窄检索范围:
- 作物。
- 品种(如有需要)。
- 地点与法律管辖区。
- 生育期。
- 日期。
- 文档类型。
- 发布机构。
- 文档状态:现行有效、已归档、草案或已撤销。
- 产品登记状态。
- 决策类型:一般信息、诊断、剂量或受监管的操作。
这些条件有时被称为检索过滤器。它们是一些规则,用以防止系统把每一段语言上相似的文本都当作与问题相关。 由谁来核准这些来源? “经核准的来源”这一说法不应停留在含糊状态。我们需要知道:
- 是谁选定了该来源?
- 它具有何种性质的权威?
- 它是科学来源、监管来源,还是商业来源?
- 它是何时发布或更新的?
- 它是否仍然现行有效?
- 它适用于哪个地区、哪种作物、哪种生产体系?
- 它可以支撑哪些主张?
- 哪些结论不得由它推导得出?
一篇科学论文可能有助于理解某一现象或某项研究发现,但它无法确立某产品的法定登记状态。而官方使用说明规定的是某一已登记产品的使用条件,但它本身并不能证明某种普遍的经济效应。再如,官方市场公布的价格对该市场与该日期而言可能是正确的,但它未必等于另一地区的农民在扣除运输与佣金后实际获得的价格。 因此,来源的权威性随问题而变化。 三个层次并不总是足够 让答案区分来源所述内容、系统推断内容以及需要人来决定的内容,是有益的。但在敏感的农业决策中,更好的做法是呈现五个层次: 1\. 系统从问题中理解到了什么 例如: 我理解您是在询问某种作物在某一特定生育期叶片上出现斑点的原因。 这让用户有机会在答案构建之前纠正这一理解。 2\. 来源所述内容 呈现由来源支撑的主张,并给出来源的名称、日期与适用范围。 3\. 系统由若干信息片段汇集而成的内容 如果系统综合了不止一个来源,或推断出某种关系,它必须声明这是它自己的表述或比较,而不是直接引用。 4\. 仍然未知的内容 例如缺少清晰图像、没有检测结果、不知道所在国家,或未核实文档是否仍然有效。 5\. 需要人来决定或需要主管部门处理的内容 例如最终诊断、受监管物质的选择、剂量的批准,或实施可能损害作物或人员的干预措施。 这可以防止把有来源支撑的信息与自动推断或专业判断混为一谈。 引用不是装饰 用户应当能够审视引用,并理解它与答案之间的关系。 一条好的引用应当明确说明:
- 文档名称或发布机构。
- 发布日期或最近更新日期。
- 所使用的部分。
- 文档的适用范围。
- 它是官方的、科学的,还是商业的。
- 系统是原文照录、做了摘要,还是与另一来源做了综合。
在一长段文字后面附上一个笼统的链接,无法表明该来源支撑的是哪一句话。它可能让答案显得有据可依,却并不能让读者追溯到具体主张。 规则:仅仅存在一个来源是不够的;它必须与问题相关,必须支撑该句,而且该句的限度必须保持在来源的限度之内。 当系统找不到充分支撑时该怎么办? 放弃作答并不是对话的失败。系统仍然可以在不编造答案的情况下继续帮助用户。 它可以这样说:
- 在指定国家,我找不到关于该产品的有效来源。
- 现有文档已过时,不足以确定剂量。
- 该图像无法用于区分各种可能病因。
- 这一问题需要提供作物名称、生育期与所在地点。
- 有一般性信息,但不足以据此给出处置建议。
- 在选择干预措施之前,需要专业人员检查或进行检测。
然后它提出一个安全的下一步:
- 请求补充一张图像。
- 指明所在地点。
- 按包装上显示的原样提供产品名称。
- 核查登记状态。
- 查阅现行官方使用说明。
- 联系推广服务机构或具备资质的专业人员。
这样一来,放弃作答就不再是死胡同,而成为一条补齐证据的清晰路径。 不负责任做法的示例 用户问: “我的作物上出现了斑点,我该用什么?” 系统直接回答: “使用产品 X,剂量为某某。” 这一回答之所以不负责任,是因为它在不知道以下内容的情况下,就从一段笼统描述跳到了具体药剂与剂量:
- 作物。
- 国家。
- 诊断结果。
- 生育期。
- 登记状态。
- 官方使用说明。
- 安全间隔期。
- 是否存在造成这些症状的其他原因。
- 用户安全实施该处置措施的能力。
其措辞在语言上也许无可挑剔,但缺乏作出该决策的依据。 负责任回答的示例 答案可以是: “现有信息不足以确定斑点的成因,也不足以选择处置方案。这些症状可能在病害、营养缺乏、水分胁迫和天气造成的损伤之间相互重叠。请提供作物名称、品种(如果知道)、国家或地区、生育期,以及症状出现在植株的哪个部位,并发送一张叶片上、下表面的清晰图像,以及一张显示该问题在田间扩散范围的图像。 之后我可以把症状与合适的资料来源进行比对,列出各种可能性以及缺失的信息;但指明某种产品或某一剂量,需要核实诊断结果、该产品在使用国针对该作物与该有害生物的登记情况,以及现行官方使用说明,并且可能需要咨询专业人员。” 这一回答不只是放弃作答;它还:
- 解释了为什么信息不充分。
- 说明存在不止一种可能的解释。
- 索取具体的数据。
- 阐明系统能够做什么。
- 指出哪些内容需要官方来源或专业人员。
- 防止语言上的流畅转化为没有依据的治疗权威。
另一个示例:关于价格的问题 如果一位农民问: “我的作物今天是什么价?” 那么系统仅仅检索出一个包含作物名称的数字是不够的。它必须知道:
- 国家、地区与市场。
- 价格的日期,必要时还包括时间。
- 币种。
- 销售计量单位。
- 品种。
- 品质等级。
- 该价格是批发价、零售价,还是农场交货价。
- 是否包含运输费或佣金。
- 由哪个机构发布?
负责任的回答不会说: “价格是某某。” 而会这样说,例如: “我查到在指定市场于某某日期公布的一个价格,对应所提到的计量单位与等级。农民实际获得的价格可能因品质、运输和佣金而有所不同,而且我并未核实您农场上的某笔本地交易。” 这清楚表明:检索返回的是特定市场的信息,而不是各处通行的“真实价格”。 翻译本身也需要治理 语言模型可以用来翻译产品标签或农业指导材料。但流畅的译文可能掩盖以下方面的错误:
- 计量单位。
- 否定表述。
- 等待间隔期。
- 有害生物名称。
- 已登记的作物。
- 义务的强制程度。
- 警示内容。
- 法律管辖区。
因此,安全类文件的机器翻译不应成为替代官方文本的权威依据。系统可以帮助理解,但必须保留原始参照文本,标明其来源与版本,并在实施前对敏感术语进行复核。 我们如何评估该系统? 仅评估文体质量或用户满意度是不够的。整条流水线的每一步都必须接受测试: 问题理解
- 系统是否识别出了作物、地点和所指含义?
- 它是否索取了缺失的信息?
检索
- 它是否找到了合适的来源?
- 它是否排除了过时或非本地的来源?
- 它是否取回了能够回答问题的那一部分?
措辞
- 答案是否忠实于来源所述内容?
- 它是否添加了缺乏支撑的主张?
- 它是否保留了限制条件与不确定性?
引注
- 读者能否访问该来源?
- 该来源是否确实支撑该句?
- 是否标明了文档的日期与状态?
安全
- 在证据不充分时,系统是否避免给出剂量或诊断?
- 它是否讲清了何时应咨询专业人员或监管机构?
- 它是否防止了一般信息被转化为可执行的指令?
农业应用
- 该答案对该作物、该地点与该时机是否有效?
- 用户能否理解并加以执行?
- 人的责任是否依然清晰?
系统可能成功找到一份正确的文档,却在解读时失败。它也可能对一个不合适的段落给出忠实的答案。它还可能为一个来源并不支撑的句子提供一条真实的参考文献。因此,必须评估整条流水线,而不是孤立地评估模型。 给进阶读者:检索降低了模型对其此前所学内容的依赖,但它把一部分风险转移到了索引质量、问题理解、结果排序、文档有效性与受约束的生成之上。正因如此,衡量这条流水线是否成功,不在于答案中是否出现了一个来源,而在于问题、来源、主张、语境与决策之间关系是否成立。 第七章的作用 可以保留对第七章的指引,但最好说明它将补充什么内容: 第七章将更详细地论述如何构建决策支持与知识检索系统、如何组织资料来源、如何按语境约束检索、如何展示参考文献,以及如何防止检索到的文本转变为超出其权威范围的建议。 这让这条指引具有明确的功能,而不只是停留为对后续信息的承诺。 结论 语言模型可以让知识获取更容易:它把一个日常问题转化为一次检索,收集段落,进行摘要,并组织出一个可理解的答案。但语言上的流畅并不能缩短从问题到决策之间的科学与监管路径。 因此,负责任的系统必须知道:
- 它从问题中理解到了什么。
- 它缺少哪些信息。
- 它在哪里进行了检索。
- 它为何选择该来源。
- 该来源是否现行有效并适用于该语境。
- 它从来源中取用了什么。
- 它推断出了什么。
- 它的作用在何处终止。
- 以及何时必须放弃作答或把决策上交给人。
本节的要旨可以概括为以下陈述: 语言模型可以成为通往知识的门户,但它不会仅因为表达流畅就成为来源,也不会仅因为找到了一段与问题相近的文本就成为决策者。 建议的结语是: 值得信赖的答案不只是看上去正确;它会揭示自己的来源、适用的限度、缺失的内容,以及谁有权把它转化为行动。
9. 可解释人工智能
当系统产生一个输出时,自然会产生一个问题: 它为什么产生了这个输出? 模型可能预测产量下降、提高对某种病害的怀疑程度、发出水分胁迫警报,或把某个果实归入某一品质等级。但仅有输出结果,并不能告诉用户系统依据了哪些信息,也不能说明这些信息是否完整、是否可靠。 可解释人工智能工具力图帮助用户理解输入模型的数据与其产生的输出之间的关系。 例如,它们可以展示:
- 土壤水分偏低是与胁迫风险估计升高相关的因素之一。
- 预报气温影响了估算的灌溉需求量。
- 品种与生育期出现在与产量预测相关的因素之中。
- 叶片图像的某一特定部位与其被归类为可疑相关。
- 某个传感器读数的缺失或变化影响了系统的置信度。
- 输出结果接近区分两个类别的阈值。
但这些工具并不能回答“为什么”一词的全部含义。它们通常解释的是模型为何按其计算产生了这一输出,却未必确立该现象为何在田间发生。 “为什么”一词中隐藏着三个不同的问题 当用户问“为什么”时,他们可能指的是以下三个问题之一: 1\. 模型为什么产生了这个输出? 这是关于模型行为的问题。 答案可能是: 模型提高了风险估计值,因为水分读数下降、预报气温上升,而且其中一个传感器没有传回最新读数。 这一回答表明了模型使用了哪些信息。 2\. 这一农业现象为什么会发生? 这是关于农业现实的问题。 可能的答案是: 水分下降也许是因为需水量增加,或因为灌溉未能正常到达该区段,或因为土壤问题,或因为传感器误差。 仅凭模型解释工具无法确定这些原因中哪一个是正确的。模型使用了水分读数这一事实,既不能证明其下降的原因,也不能证明植株确实处于胁迫之中。 3\. 我们为什么应该采取这一行动? 这是关于决策的问题。 即便模型的警报是合理的,也不能由此自动推出正确的行动就是增加灌溉。传感器可能出了故障,也可能即将降雨,问题可能在于水只到达了有限的一片区域,或者作物所处阶段与系统所假设的不同。 因此,必须区分: 解释模型输出 ← 解释农业状况 ← 为行动提供理由 而从一个层次推进到下一个层次,需要额外的数据与证据。 解释是给谁看的? 不存在一种适用于所有用户的解释。每一方需要的层次都不相同。 开发者 想知道:
- 模型是否依赖了有效的数据?
- 它是否学到了某种错误的捷径?
- 它是否关注了图像背景而非植株?
- 数据更新之后它的行为是否发生了变化?
- 在输入发生轻微变化时,输出是否稳定?
农业专业人员 想知道:
- 模型所使用的因素在农学上是否有意义?
- 它是否忽略了某个重要变量?
- 它是否把统计关系与农业上的原因混为一谈?
- 对这一品种、这一季节和这一地点而言,结果是否合理?
- 什么样的测量或检测可以证实或证伪它?
农民或操作人员 需要的是一个实用的答案:
- 系统说了什么?
- 这一结果基于哪些信息?
- 这些信息是否是最新的、可靠的?
- 系统不知道什么?
- 安全的下一步是什么?
复核人员或责任主管部门 需要一份可审计的记录:
- 模型版本是什么?
- 作出决策时有哪些数据可用?
- 应用了哪些规则或限制?
- 是否有人推翻了该结果?为什么?
- 当时该来源或传感器是否有效?
适合研究人员或开发者的可视化图表,对需要在几分钟内采取行动的工人可能毫无用处。因此,解释必须针对具体的人和具体的决策来设计,而不仅仅取决于工具能显示什么。 两类解释 可以区分两个主要层次: 单个案例的解释 它力图回答这样的问题: 系统为什么此刻对这张图像或这块田给出了这一结果? 它可能显示土壤水分与温度是与某条警报关联最强的两个因素,或者叶片图像的某一部分与其归类结果相关。 这种解释有助于复核某个具体案例,但并不必然描述模型在所有情形下的行为。 模型总体行为的解释 它力图回答以下这类问题:
- 模型通常依赖哪些类型的信息?
- 随着某一变量变化,产量预测是上升还是下降?
- 它的行为在不同品种或不同地区之间是否有差异?
- 哪些变量经常出现在具有影响力的因素之中?
- 当缺少某一类数据时,它的表现是否变弱?
这一层次有助于在大量案例的范围内理解模型,但它本身并不能解释某一次具体决策。 模型总体上可能依赖天气与土壤,而某块田的结果却主要受到单个传感器一次异常读数的影响。因此,不应以总体解释代替个案解释,反之亦然。 解释可以采取哪些形式? 呈现解释的方式有多种,每种方式都有其各自的含义与限度。 1\. 展示与结果相关的因素 系统可以显示这样一份清单:
- 土壤水分偏低:提高了风险估计值。
- 预报气温偏高:提高了估计值。
- 降雨概率:降低了估计值。
- 无最新读数:降低了置信度。
这份清单显示了模型如何处理这些信息,但并不能证明这些因素导致了该农业状况。 2\. 高亮图像的某一部分 可解释性工具可以给叶片图像的部分区域着色,以显示与结果关联最强的区域。 这可能有助于揭示模型关注的是:
- 相关的病斑。
- 叶缘。
- 图像背景。
- 放在植株旁边的标签。
- 与该状况无关的阴影或反光。
但着色区域并不意味着模型像专业人员那样“看见了病害”,也不能证明被高亮的部分导致了该分类结果。它只是模型内部某种计算关系的一个迹象,需要谨慎解读。 3\. 把结果与相似案例作比较 系统可能会说: 本案例与此前被归入同一类别的示例相似。 这种比较有助于用户看到相似性的依据。但用户应当知道:
- 此前的示例是否有文档记录?
- 它们是否来自相似的作物、品种与环境?
- 相似之处在于症状,还是在于背景与光照?
- 是否存在相似却导向不同结果的示例?
4\. 说明什么会改变结果 该工具可能会说: 如果在模型的计算中水分读数更高,风险估计值就会更低。 这显示了模型对输入变化的敏感性,但并不能证明在田间实际提高水分就能避免风险。它描述的是模型计算中的变化,而不是一项真实农业干预措施的效果。 这里再次显现出两者的差别: 什么会改变模型的结果? 以及: 什么会改变农业现实? 解释可能是一种近似,而非完全披露 有些模型相对简单,其计算方式可以被直接追溯。然而对某些复杂模型而言,则要在结果产生之后借助另一种工具,来尝试近似说明结果背后的原因。 在后一种情况下,解释并不是通向模型内部全部过程的完整窗口。它可能只是对模型行为的一种简化或近似。 因此,解释本身也应当接受测试:
- 数据只发生轻微变化时,它是否会大幅改变?
- 对相互矛盾的结果,它是否给出相似的解释?
- 它是否真正反映了模型所使用的内容?
- 它能否区分某个重要因素与仅仅与之相关的因素?
- 模型更新之后,该解释是否依然稳定?
因此,如果在一次并未改变结果的轻微变动之后,“最重要因素”清单发生了根本性变化,那么该解释可能并不稳定,哪怕图形看上去很有说服力。 相互关联的因素 数据中可能包含同步变动的变量,例如:
- 温度与蒸发。
- 季节与日照时长。
- 土壤类型与排水状况。
- 农场规模与设备类型。
- 经验与记录保存的质量。
当变量之间高度相关时,可解释性工具可能会以不同方式在它们之间分配重要性。其中一个可能排在前列,尽管另一个携带着相似的信息。 因此,不应把因素的排序读作农业上原因的固定排序。专业人员可能需要考察它们之间的关系,以及模型是否在用其中一个替代另一个。 可解释性的基本限度 可解释性存在一些必须始终保持可见的限度:
- 它描述的是模型使用了什么,并不必然确立田间现象的成因。
- 它可能是对模型行为的一种近似,而非对其计算方式的完整描述。
- 它不会把一个错误的模型变成正确的模型。
- 它无法弥补数据不足或测量数据受损的问题。
- 它不能证明训练数据可以代表这个新农场。
- 它不能证明概率已经过校准,也不能证明结果是准确的。
- 它不会自动为所建议的行动提供正当理由。
- 即便案例落在模型所学范围之外,它看上去仍可能很有说服力。
- 使用不同的可解释性工具时,它可能会发生变化。
- 它可能把不稳定性隐藏在一张清晰而美观的图形背后。
因此,可解释性是一种用于审视与问责的工具,而不是一纸验证合格证明。 可解释性不能修复数据错误 假设某个土壤水分传感器没有传回最新读数,于是系统使用了六小时前存储的最后一次读数。可解释性工具可能显示水分是结果中的一个重要因素,但这并不能让那条陈旧的读数变成最新的。 同样,如果训练图像无法代表某一特定品种或地区,系统可能会对新图像给出结果解释,但该解释并不能证明该模型适用于那种环境。 可解释性应当在呈现其影响的同时呈现数据质量,例如:
- 最新读数的时间。
- 是否存在缺失值。
- 传感器的校准状态。
- 数据来源。
- 该案例与训练数据的相似程度。
- 结果是否落在模型经过测试的范围之内。
一个有影响力的因素,如果其取值本身就不可靠,那它并没有用处。 可解释性并不证明因果关系 如果系统显示水分是产量预测中一个有影响力的因素,那意味着模型在计算结果时使用了水分信息。但这并不能证明仅仅改变水分就会使产量发生同等幅度的变化。 水分可能与其他因素相关联,例如:
- 土壤类型。
- 灌溉系统。
- 天气。
- 生育期。
- 田间管理。
- 品种。
要确定某项具体干预措施的效果,我们需要一项实验或一种因果设计,并辅以恰当的农业知识,正如上一节所阐述的那样。 一条关键规则:模型的可解释性告诉我们的是它的计算过程如何发生了变化,而不是在我们改变某一项输入之后田间必然会发生怎样的变化。 从产量预测研究中进行推断的限度 产量预测研究 [SRC006] 提供了一个示例,说明如何在特定研究情境下使用回归模型,并借助有助于解释其结果的工具。 该研究可用于理解:
- 输入模型的数据类型。
- 该研究所使用的预测方法。
- 可解释性工具在该情境下是如何应用的。
- 研究者在其数据与研究设计限度之内所报告的结果。
但研究中变量的排序或其重要性,绝不能被转化为适用于每一个农场的普遍因果规则。 如果某个变量在模型的预测中显得具有影响力,这并不能证明:
- 它是所有环境中产量的主要成因。
- 改变这个变量会在另一块地里产生同样的效果。
- 各因素的排序在另一个品种或另一个季节仍将保持稳定。
- 该模型适合用来提出直接的干预建议。
- 计算结果意味着一种普遍的经济或田间影响。
可以允许的结论,仍限于该研究及其所采用的评估情境的范围之内。 农民需要从解释中获得什么? 对农民有用的解释,并不以一张技术图表或一长串变量清单开场。它要回答的是六个问题:
- 结果是什么?
- 它依据了哪些信息?
- 这些信息的状况如何?
- 不确定性有多大?
- 这一解释没有确立什么?
- 安全的下一步是什么?
系统究竟说了什么?
哪些读数、图像或记录影响了这一结果?
它们是新近的、完整的、经过校准的,还是存在过时或缺失的读数?
结果是明确的、接近阈值的,还是超出了模型的经验范围?
该结果是初步预警、诊断结论,还是仅仅是一项预测?
在改变决策之前,需要进行哪些测量、检查或复核?
如此一来,解释就成为一件工作中的工具,而不是脱离决策的技术展示。 对示例的重新表述 与其说: “水分胁迫风险上升,是因为表层水分在三天内下降,且预报气温升高……” ——这种表述可能被理解为因果证明——我们可以说: “系统提高了对水分胁迫概率的估计,原因是表层水分读数在过去三天中下降,同时气温预报值上升。但第 4 区的传感器已有六小时未发送新读数,因此该估计可能建立在不完整的数据之上。在调整灌溉计划之前,请检查传感器,从该分区取得一次独立测量值,并将结果与条件相近的相邻分区进行比较。” 这种表述清楚地表明:
- 讨论的是模型的估计,而不是一个已确认的成因。
- 哪些数据影响了这一估计。
- 其中一项数据输入是不完整的。
- 这一缺失如何影响置信度。
- 下一步是什么。
- 调整灌溉并没有被变成一道自动下达的指令。
一个来自叶片图像的示例 系统可能会说: “模型将该图像归类为疑似病例,该结果主要与叶片边缘附近的斑点相关联。但图像没有拍到叶片背面,模型也未能有把握地区分是可能的病害还是养分缺乏。请发送正反两面更清晰的图像,并说明症状出现在植株的哪个部位、在田间如何分布,然后再进入诊断或处置环节。” 这一解释优于单独的一张彩色图,因为它显示了:
- 模型关注的位置。
- 哪些可能性相互重叠。
- 缺少哪些信息。
- 下一步是什么。
- 该分类并非最终诊断。
一个来自产量预测的示例 系统可能会说: “预测产量低于这块地的历史平均水平。在模型内部,与较低预测值关联最强的因素是播期推迟、某一特定时段内土壤水分偏低,以及预报气温偏高。但记录中并不包含关于最近一次处置措施的完整信息,而且该模型尚未在这块地的极端高温季节中经过测试。因此,该结果应被视为一种规划情景,而非有保证的数值。” 这样的措辞可以防止解释被转化为:
- 一个已确认的成因。
- 一项关于产量的承诺。
- 一条干预建议。
- 一种超出测试范围的推广结论。
解释在什么情况下是不充分的? 在以下情形中,不应仅依赖解释本身:
- 关键数据缺失或过时。
- 该案例超出了模型受测所涵盖的作物或品种范围。
- 结果接近决策阈值。
- 多个传感器彼此不一致。
- 潜在错误关系到人身或动物安全。
- 决策会导向某一剂量或某种受管制物质。
- 系统控制着一台运动中的机械。
- 用户无法查验该解释或其来源。
- 数据稍有变化,解释就发生根本性改变。
- 模型所解释的内容与决策需要确立的内容之间存在落差。
在这些情况下,解释应当引向检查或上报升级,而不仅仅是引向更高的信心。 评估解释的实用问题 读者或采购方可以追问:
- 系统解释的是单个案例的结果,还是其总体行为?
- 它是否说明了自己依据哪些数据,以及这些数据来自什么时间?
- 它是否显示出缺失或不可靠的数据?
- 该解释是对模型的直接描述,还是由另一工具生成的近似结果?
- 输入稍作改变,解释是否随之改变?
- 开发者是否检查过模型依赖背景或依赖设备的可能性?
- 系统是否区分相关性与因果关系?
- 它是否明确说明了自身经过测试的作物、地点与季节范围?
- 用户在不具备编程专业知识的情况下能否理解该解释?
- 该解释是否引向一个安全、可操作的步骤?
- 人能否对结果提出异议或予以推翻?
- 产生该解释所用的数据与版本是否已保存,以备日后复核?
面向进阶读者:评估一项解释,应看它对模型行为的呈现有多忠实、在微小变化下有多稳定、有多易于理解,以及与使用者和决策的契合程度如何。对于一项敏感决策而言,一个更简单、更清晰的模型,可能优于一个在实验室指标上得分略高、却需要依赖不稳定近似解释的模型。 结论 可解释人工智能并不能使模型意识到自己的理由,不能把一种统计关系变成一项农业上的成因,也不会自动赋予决策以正当性。 它最好的角色,是帮助我们追问:
- 模型使用了哪些信息?
- 这些信息是否准确且及时?
- 它是否关注了本该关注的内容?
- 它没有把哪些因素纳入考量?
- 它的置信度限度在哪里?
- 在采取行动之前又应当核实什么?
本节的要义可以概括为以下一句话: 一个好的解释,不只是告诉我们这个数字为什么是这样,它还揭示出生成该数字的数据、约束它的限度,以及防止它被变成一项盲目决策的那一步骤。
10. 智慧农业系统是一个集成系统,而非一个独立的模型
当我们说某个农场使用了“智能灌溉模型”或“智能病害检测系统”时,读者也许会想象出一个接收数据、随后作出决策的单一程序。但有用的农业系统通常并不以这种简化的方式运作。它们更像是一条相互衔接的链条:从测量田间正在发生的情况开始,经过数据的核查、分析以及与农业约束条件的比对,最后以向人提出建议、或在规定限度内执行一项自动操作而告终。 正因如此,它被称为一个混合系统:它不依赖单一类型的人工智能,也不把决策交给一个独立的模型。相反,它把传感器、基于数据训练的模型、由专家制定的规则、在多种方案中作出选择的工具、设备,以及对决策负责的人结合在一起。 这一集成系统可能由以下层级构成:
- 信息采集:
- 核查数据质量:
- 形成估计或预测:
- 应用农业与监管规则:
- 权衡可选方案:
- 呈现结果、依据及其限度:
- 复核或执行:
链条始于一只测量土壤水分或温度的传感器,或一张由手机或无人机拍摄的图像,或一条工人记录田间情况的记录。这一层并不提供决策;它传递的是对现实的部分描述,而这种描述可能准确,也可能不完整,或者受到设备故障或测量方法的影响。
在系统使用某个读数之前,它要核查该读数是否合乎情理。如果水分传感器报告出一个与降雨或灌溉都不相符的突然跳变,或某台设备停止传输,或某些读数以不同的单位传回,那么这些数值就不应作为可靠事实传递到系统的其余部分。系统可以将其剔除、降低对其的置信度,或要求检查该设备。
分析模型利用可获得的数据,估计某种无法直接测量的状况,或预测此后可能发生的情况。它可以从一张图像估计植株患病的概率,预测未来数小时内土壤水分的变化,或估计次日的需水量。这一输出仍然只是一项估计,受数据质量与模型所学内容之限度的制约。
并非每一项预测结果都会被转化为自动建议。可能存在这样的规则:在风速超过某一阈值时禁止灌溉,或禁止推荐未在该作物或该地区登记的物质,或在诊断不明确时要求把案例转交给专业人员。这些规则不一定是从数据中学来的;它们的设立是为了保护作物、工人与环境,并遵守官方指示。
如果存在若干可行方案,系统会使用一种计算工具对其进行比较,并在约束条件之内选出最合适的方案。例如,它可以在考虑作物需求、水泵能力、运行时长与能源成本的同时,设法把有限的水量分配到多个分区。这里的“最合适”并不意味着存在一个绝对理想的解;它指的是在输入系统的目标与约束条件之下的最佳解。
界面应当向使用者清楚说明系统提出了什么建议、依据了哪些数据、置信度如何,以及哪些约束条件或缺失读数可能影响该结果。一张只写着“灌溉运行两小时”的表格,其有用性与安全性都不如这样一种显示:指明所涉分区、建议的理由、测量时间、传感器状态,以及该方案是否需要审批。
在某些系统中,农民或主管人员会在建议被执行之前进行复核。在另一些系统中,指令可能被自动发送给水泵或阀门,但要在事先设定的运行与安全限度之内。人必须保留在察觉到数据未能捕捉之情形时停止系统或推翻其决策的权限。
我们来看灌溉的例子。这一流程可能始于土壤水分读数、气象数据与作物生育期。系统首先核查读数,以确保传感器正常工作、计量单位正确。随后它使用一个追踪水分随时间变化的模型,预测次日各分区的需水量。 但仅凭这一预测并不能决定灌溉方案。农业规则可能会附加一些约束条件,例如在排水不良的土壤中禁止增加水量,或对处于敏感生育期的作物给予优先。此后,一个规划程序会比较各种可能方案,并在不同分区之间分配水泵能力与运行时间。在执行之前,安全层会核查传感器之间不存在冲突,以及管网压力与阀门状态允许执行该方案。随后,它把结果提交操作人员审批,或者在方案处于允许限度之内时自动执行。 在这个例子中,“人工智能”并没有独自作出决策。模型提供了预测,规则施加了约束,规划工具在各方案之间作出选择,安全层复核执行是否可行,而操作人员仍对最终决策负责。因此,把整个系统称作一个“人工智能灌溉模型”,会掩盖其运作方式中的关键部分,并使人难以确定错误出在何处、由谁负责。 模型可能是准确的,而系统却在另一个环节上失效。示例包括以下情形:
- 传感器以不同于系统预期的单位发送读数。
- 预测依据的是在决策时间窗过后才到达的陈旧数据。
- 属于东区的结果被关联到了西区的阀门上。
- 规划工具选择了一个在计算上成立、却超出水泵实际能力的方案。
- 界面显示了一个数字,却未说明测量时间或对其的置信程度。
- 系统发出了正确的指令,但阀门并未执行,也没有返回确认其状态的信号。
- 决策被自动执行,却没有给操作人员提供明确的中止手段。
一篇关于农业数字化的综述描述了一条环环相扣的路径:它始于感知,经过数据、情境与决策,最终以现实世界中的行动告终 [SRC035]。这一构想的重要性在于,每一阶段的质量都取决于从上一阶段传递而来的内容,而一个微小的错误在沿链条传递的过程中可能被放大。 如果水分读数有误,它可能产生一项错误的预测。如果预测正确但发送得太迟,方案到执行之时可能已不再适用。如果方案正确却被发往错误的阀门,那么一个本不需要水的分区可能受到损害,而真正需要水的分区却仍未得到灌溉。正因如此,核查系统各组件之间的连接,其重要性可能超过让算法本身的准确率略有提升。 面向深入阅读的读者:仅仅脱离模型所处的系统来评估它是不够的。应当从第一次测量一直追踪到最终的田间影响:传感器误差有多大?缺失值是如何处理的?预测是否及时到达?它是怎样被转化为决策规则的?规划工具是否考虑了真实的约束条件?指令是否在预定的设备上得到执行?由此产生了怎样的农业影响?某个模型在计算测试中可能表现更好,而使用较简单模型的系统却可能因为数据质量、规则清晰度与安全层的稳固程度而更为可靠。 并非系统中的每一层都应当仅仅因为技术上可行就变得“智能”。在某些环节上,一条固定规则比一个学习得到的模型更清晰、更易于测试、也更安全。要在安全防护装置打开时阻止机械运转,并不需要一个预测运转是否危险的模型;它需要的是一条不得被推翻的明确规则。相比之下,学习在分析复杂图像或预判一种难以用简单规则集描述的变化时,可能是有用的。 成熟的工程实践并不以“我们可以在哪里加入人工智能?”这一问题开场。它始于更为精确的问题:
- 问题的哪一部分需要从数据中学习?
- 哪一部分需要一条明确的农业或监管规则?
- 哪些决策可以自动执行,哪些需要人工审批?
- 各组件之间的连接可能在哪里失效?
- 使用者如何得知数据不完整,或执行并未按计划发生?
- 在出现意外情况时,谁有权停止系统并推翻它?
支配性的规则:农业系统的质量,不以其中最聪明的模型来衡量,而以整条链条的安全性来衡量——从田间的第一次读数,直到在田间执行的最终行动。
11. 将任务、方法与核验相衔接的初步指南
合适的方法并不始于算法的名称,而始于我们想要回答的问题,以及可能基于该答案而采取的行动。同一张图像可以作为输入,用于对叶片状况进行分类、定位一株杂草,或测量受害面积,但这其中的每一项任务都需要不同的参考数据、产生不同的输出,并以不同的指标加以评判。 以下指南并不是一份自动选择算法的配方,也不意味着每一个农业问题都归属于某个单一类别。它是一张初步的地图,帮助读者把六件事情联系起来:
- 任务:我们想要回答哪一个农业问题?
- 数据:回答这个问题需要哪些信息?
- 方法族:哪一类分析可以处理这个问题?
- 输出:系统应当提供怎样的结果?
- 性能指标:我们如何得知该结果确实有用,而不只是看起来不错?
- 安全与核验问题:在把结果转化为决策或行动之前,必须核查什么?
只有在明确了作物、环境、决策时机、错误代价以及使用者的应对能力之后,对这些问题的回答才算完整。 1\. 从图像对叶片状况进行分类 任务:判定哪一类别最符合该叶片图像,例如健康、受某一特定病症影响,或无法判定。 所需数据:健康组织与患病状况的多样化图像,每一张都关联到一个经专家核实的参考类别或一项可靠的检测结果。图像仅仅数量众多是不够的;它们还必须体现出品种、生育期、光照、成像设备与症状严重程度上的差异。 方法族:图像分类模型。 预期输出:最有可能的病症名称及一个置信度分值,并允许系统在证据不足时给出“无法判定”或要求补充一张图像。 我们测量什么?总体成功率是不够的。我们应当测量系统对每一种重要病症的检出能力、漏检的案例数量、误报数量,以及被它相互混淆的案例。 安全与核验问题:如果系统遇到一种它未曾学习过的病害、由不止一种原因引起的症状,或一张质量较差的图像,它会怎么做?它是把不明确的案例转交专业人员,还是硬把它们归入某个已知类别? 2\. 定位杂草以便进行处置 任务:在图像中检测出杂草,并以足以引导工人或机械抵达其位置的精度确定其位置。 所需数据:显示杂草与作物位置的图像或视频片段,并附有其位置的参考标注。如果该系统要用来引导机械,它还需要校准信息,把目标在图像中的位置与其在作业机具前方的真实位置关联起来。 方法族:工作始于目标检测或在图像中勾画目标边界;随后结果传递给一个决定机具运动的控制系统。 预期输出:杂草的位置、其边界以及检测的置信度分值,随后是机械能够及时使用的坐标。 我们测量什么?我们测量哪些杂草被检出、哪些被漏检,其定位精度如何,结果送达的速度,以及执行过程中受损的作物株数。 安全与核验问题:当系统失去置信度、有人或动物进入作业区域,或无法把杂草与作物区分开来时,机具是否会停止?以及是否对整条链条进行了测试——从摄像头一直到机具的运动,而不仅仅是图像模型本身? 3\. 产量预测 任务:估计某一特定面积上预期可收获的作物数量。 所需数据:以往的产量测量数据,以及关于天气、土壤、品种、生育期与农事操作的数据,并清楚说明每个数值的来源及其计量单位。 方法族:回归模型,或研究数据随时间变化的模型;如果田块内部或不同区域之间条件存在差异,还可以加入空间模型。 预期输出:以可理解的单位给出的产量估计,例如公斤每公顷,并附带一个显示不确定性程度的区间,而不是一个暗示虚假精确性的单一数字。 我们测量什么?误差以与产量相同的单位来测量,同时还要核查所声明的置信区间是否与实际结果相吻合。如果系统称产量很可能落在某一区间之内,我们就应当检验这种情况实际发生的频率。 安全与核验问题:该模型是否在未纳入其训练范围的农场、季节或地区上经过测试?以及使用者是否明白,这一预测建立在过去的条件之上,而这些条件可能无法代表一个异常的季节或一个新品种? 4\. 编制灌溉计划 任务:在考虑作物需求与灌溉管网能力的前提下,确定各分区应在何时灌溉,以及每个分区应获得多少水量。 所需数据:土壤水分、天气、作物生育期、土壤性质、水源、水泵能力、阀门状态,以及时间与运行方面的约束条件。 方法族:系统可以把一个预测需水量的模型、一组防止不安全决策的农业规则,以及一个比较方案并分配可用资源的规划程序结合起来。 预期输出:一份可执行的计划,指明分区、时间、水量与运行时长,并附上在水源紧张或某件设备失效时的备用方案。 我们测量什么?成功不能仅以减少用水量来衡量,还要看植株状况、产量、能源消耗、分配的均匀性、供水的时机,以及该方案能否用现有设备加以实施。 安全与核验问题:当数据中断或某个传感器失效时会发生什么?系统是切换到手动模式或某个安全的应急方案,还是继续依据不完整的信息发出指令? 5\. 就动物状况发出预警 任务:检测可能预示疾病、损伤,或行动与采食紊乱的变化。 所需数据:数据可以是声音、图像、视频片段,或活动量、体温与采食量的读数。它们应尽可能与经兽医或其他专业人员复核过的病例关联起来。 方法族:在我们并不掌握每一种疾病完整定义的情况下,检测异常情形;或者在我们拥有可供系统学习的、有记录的病例时,进行分类。 预期输出:一条标明动物个体、时间与引起关注之原因的预警,并按优先级对预警进行排序。 我们测量什么?系统未能检出的重要病例数量、每头动物或每天的误报数量,以及从变化出现到发出预警之间的时间间隔。 安全与核验问题:在治疗之前由谁从专业角度确认该状况?以及团队实际上能够查看多少条预警?一个发出数百条未经排序预警的系统,可能会把危险的那一例淹没在噪声之中。 6\. 估计症状面积并追踪其扩展 任务:测量植株或田块中受影响的面积,然后判定症状随时间是在扩展还是在消退。 所需数据:在不同时间拍摄的连续图像或图幅,并附有拍摄地点、高度、角度与光照条件的信息,以便进行公平的比较。 方法族:在图像中勾画受影响组织或区域的边界,然后分析它们在不同时间点之间的变化情况。 预期输出:受害面积或百分比的估计值、变化的方向与速度,并附带对该比较之置信程度的说明。 我们测量什么?面积估计的误差、重复成像时结果的稳定性,以及系统从一个时间点到另一个时间点追踪同一区域的能力。 安全与核验问题:受害面积是真的增加了,还是光线、成像角度或相机高度发生了变化,使面积看起来变大或变小了?以及这些图像是否依据统一的参照标准进行比较? 7\. 提供咨询性答复 任务:以清晰的语言回答一个农业问题,并借助与使用者所处情境相适应的权威来源。 所需数据:使用者的问题,关于作物、地点、生育期与状况的信息,以及系统可以查阅的可靠且及时的来源。 方法族:检索权威来源并取回相关段落,然后使用语言模型来组织答复,并配以规则,防止作出证据不支持的主张或建议。 预期输出:一份区分一般信息与有条件限定之建议的答复,注明其来源,并在证据不足时索取补充信息或拒绝作答。 我们测量什么?这些来源是否支持答复中所作的主张?参考文献是否准确且可核实?答复是否与作物、地点与时机相适应,以及使用者能否理解下一步该怎么做,而不被推向一种不安全的行动? 安全与核验问题:系统是否避免杜撰无据可查的剂量、物质、官方登记信息或价格?它是否明确说明,产品的批准情况或使用条件必须对照现行核准的产品标签与当地法规加以核实? 8\. 分配有限资源 任务:在多个田块或分区之间分配有限数量的水、肥料、劳动力或机械作业时间。 所需数据:需求规模、可用资源、优先次序、技术与时间上的约束条件,以及与产量、成本或回报相关的预测。 方法族:数学规划与方案之间的权衡取舍,在专业领域中被称为最优化与运筹学。这些方法寻求的是一个在不违反既定约束条件的前提下尽可能实现目标的方案。 预期输出:一份可执行的计划,并说明各方各自得到什么,以及在优先次序发生变化或资源变得更为紧缺时会有哪些改变。 我们测量什么?该计划是否尊重了所有约束条件?它是否真的能够落地实施?以及它对成本、产量、时间,以及各分区或各受益方之间公平性的影响如何? 安全与核验问题:是谁确定了该工具试图最大化的目标?以及是谁设定了优先次序与每个分区可接受的最低水平?如果目标被简化为一个单一数字,那么一个方案即便在数学上正确,也可能是不公平的,或在农艺上不可接受。 9\. 控制一连串动作 任务:选择一连串动作,使系统状态在此之后发生改变,例如调节设施结构内的通风与加温,或引导一台机械在作物行间行进。 所需数据:对当前状态的描述、可采取动作的集合,以及每次动作之后所发生情况的数据,同时还有运行与安全限度。 方法族:系统可以采用基于规则与已知方程的传统控制、从仿真或经验中学习动作选择策略的强化学习,或两者的混合。 预期输出:一套为每种状态确定相应动作的策略,随后转化为下达给设备的明确运行指令。在技术术语中,这套策略被称为“动作选择策略”。 我们测量什么?系统的稳定性、其响应速度、约束条件被突破的次数、资源消耗、动作对植株、动物或设备的影响,以及它应对意外状况的能力。 安全与核验问题:无论目标为何,系统都不得逾越哪些限度?谁有权停止它?以及在通信中断、数据失效,或情形超出已测试范围时,设备会进入怎样的安全状态? 这张地图表明,一项农业任务可能需要不止一种方法,而且每一阶段的成功并不保证整条链条的成功。仅仅识别出杂草的位置是不够的,如果机械无法安全抵达它;仅仅预测需水量是不够的,如果灌溉方案超出了水泵的能力;而仅仅检索到一份正确的来源也是不够的,如果它涉及的是另一种作物、另一个国家或另一个日期。 它还表明,技术指标与安全问题并不是彼此分离的事项。指标显示的是系统在测试中的表现如何,而安全问题显示的是当系统在田间出错时可能发生什么。一个算法可能取得很高的平均结果,而它那罕见的错误恰恰落在风险最高的情形之中。 面向寻求深度的读者:方法的选择始于对决策与不同错误模式之代价的界定,而不是始于比较模型的名称。即便数据保持不变,一旦预期输出发生变化,合适的方法也可能随之改变。系统还应当在三个层面上加以评估:估计的质量、把该估计转化为决策的质量,以及在现实中执行该决策的质量。第一个层面上的改进,无法弥补另外两个层面上的失败。 而在评估任何一项新的应用时,这一矩阵可以概括为以下问题:
- 该系统试图回答的具体农业问题是什么?
- 它需要哪些数据,谁核验了这些数据的准确性?
- 它将产生什么输出,以何种单位或何种置信度表示?
- 将基于这一输出做出什么决策或行动?
- 哪一类错误更危险:系统漏判的情形,还是误报?
- 该系统是否在一个与其实际使用场景相似的独立环境中经过测试?
- 当数据不完整或遇到陌生情形时会发生什么?
- 谁来复核结果,谁有权中止或推翻它?
总体原则: 选择某种方法,不是因为它最新或最有名,而是因为它能产生决策所需的输出,能用恰当的指标加以验证,并且在数据不完整或结果错误时仍然安全。
12. 我们如何比较模型与系统?从测试准确率到田间价值
当开发者或企业推出一个新系统时,第一个问题往往是:它的准确率有多高? 这是个正当的问题,但不足以判断它的有用性。两个系统在实验室测试中可能得到相同的分数,但在所犯错误的类型、响应速度、运行成本、在田间运转的能力,以及出错时可能造成的损害程度上,却可能大相径庭。 设想有两个模型,在叶片图像分类上都取得了 92% 的总体得分。第一个可能擅长识别健康样本,却漏掉某种危险病害的早期阶段。第二个可能检出了大多数患病样本,但产生了大量误报,以致使用者对它失去信任。总体得分看似相同,但两个模型在农场上的价值并不相同。 模型本身可能是好的,而包含它的系统却依然薄弱。模型可能正确分析了图像,但应用程序把图像压缩到细节丢失,或延迟发送结果,或在显示结果时不标明置信度,或把它与一项不适合当地的建议相关联。因此我们需要区分三件事:
- 模型性能: 它给出的估计或分类有多好。
- 系统性能: 从数据采集到显示结果或执行动作的整条链条表现如何。
- 农业影响: 使用该系统是否真的改进了决策和农场上的结果。
只有当比较涵盖以下各个层次时,它才是公平而有用的。 A. 从我们现在的做法出发:比较的基线 基线是指在引入新系统之前,我们用作参照点的方法。更简单地说,我们要问的不只是“这个模型能用吗?”,还有:它是否比我们今天的做法更好,而且好到足以证明变革的成本是值得的? 基线可以是:
- 由专业人员或农业推广人员进行的巡查。
- 由本地专家制定的一条简单规则。
- 往季的平均产量。
- 假设明天的读数将接近今天的读数。
- 一套按当地条件校准的固定灌溉计划。
- 新系统拟取代的那套较旧的数字系统。
因此,如果目标是预测产量,就可以把模型与该田块往季的平均产量相比较。如果目标是从图像中检测病害,就可以把它与当前巡查的表现相比较,同时说明这种巡查是由农民、技术人员还是专业人员完成的。如果目标是管理灌溉,就可以在用水、能耗、植株状况和产量方面,把它与当前使用的灌溉计划相比较。 不应刻意挑选一个薄弱的参照方法,只为让新模型显得更优。一个复杂系统可能胜过一条幼稚的规则,却未必胜过农民的经验或一个按本地条件校准的简单系统。在这种情况下,技术上的收益是有限的,可能不足以证明硬件、网络连接、维护与培训的成本是值得的。 比较也不应局限于“谁的数字更高?”这一问题。它还应包括:
- 相对当前方法的改善幅度。
- 这一改善在不同田块与不同季节间的一致性。
- 哪些类型的错误减少了,哪些增加了。
- 取得这一改善所付出的成本。
- 使用者实际上能在多大程度上从中受益。
基线的实际含义: 我们先确定在没有新系统的情况下所具有的性能水平,然后再检验该系统是否在此之上带来了真正的价值。 B. 让测试贴近实际使用条件 模型从一组被称为训练数据的样例中学习。学习完成后,必须在它此前未曾使用过的独立样例上进行测试。目的不是查看它对既往样例记得有多牢,而是看它能否处理与它将在农场上遇到的情形相类似的新案例。 如果该系统将用于多个田块,测试就应包含未参与训练的田块。如果它将跨不同季节运行,仅用同一季节的图像进行测试是不够的。如果使用者用质量参差不齐的手机拍照,那么完全用单一相机在理想条件下拍摄的图像来评估它,就是不成立的。 对数据做随机划分可能给人误导性的印象。如果对同一株植物拍了十张相似的图像,然后把其中一些放入训练集、另一些放入测试集,模型可能识别的是植株、背景或拍摄条件,而不是我们希望它学到的农业征状。 更严格的测试要视任务性质,在以下各方面加以区分:
- 不同植株。
- 不同地块或田块。
- 不同农场或地区。
- 不同季节或年份。
- 不同品种与生育期。
- 不同成像设备或传感器类型。
- 不同语言或方言,以及会话式系统中不同的提问表述方式。
这并不意味着每次测试都必须覆盖全世界,而是它必须忠实地代表该系统拟投入使用的环境。如果系统是在有限的环境中测试的,就必须声明这些限制,而不是把它的结果说得好像对每一种作物、每一个农场和每一个季节都成立。 候选模型也应在相同条件下、使用相同数据接受同一套测试。如果一个模型在干净图像上测试,另一个在困难的田间图像上测试;或者一个在高速设备上测量,另一个在低功耗手机上测量,这种比较就不公平。 独立测试的实际含义: 我们把系统置于反映其使用现实的新案例之前,然后看它在实验室的种种便利条件不复存在之后,能否保持其性能。 C. 把指标与错误的后果相联系 并非所有错误都同等。系统可能因为对并不存在的感染发出警报而出错,也可能把已感染的植株当作健康植株而出错。两者都是错误,但后果可能不同。 误报可能浪费巡查时间、引发额外化验,或让使用者感到困扰。相比之下,漏掉一次严重感染可能把干预推迟到损害已经蔓延之时。在另一类应用中,例如操作机械,误报的危险性可能低于一次伤及作物或工人的错误动作。 因此,总体平均值绝不能掩盖更为重要的那类错误。比较时应当追问:
- 系统漏掉了多少危险案例?
- 它发出了多少误报?
- 在哪些品种或生育期,错误更为频繁?
- 它在早期案例上是否比在明显案例上更容易出错?
- 每一类错误的代价是什么?
- 团队能否处理由此产生的警报数量?
而如果任务是预测一个数值,错误就应当用决策者能够理解的单位来表达。与其不加解释地说“平均误差为 0.12”,不如说产量预测平均偏离若干公斤或吨每公顷。在同时规划仓储或运输时,还应说清楚:通常的小误差背后,是否隐藏着少数几次可能打乱整个计划的大误差。 两个模型之间的差异,仅仅体现在一个数字上也是不够的。这种优势可能微小到:一旦我们在另一个季节或另一批样本上重复测试,结果就可能反转。因此,应当关注各次测试之间的波动幅度,而不只是那个单一的最好结果。 指标的实际含义: 我们按照将受结果影响的那项决策来选择测量方法,并把误差转化为农民、专业人员或运营管理者能够理解的影响。 D. 检验系统如何表达不确定性,以及何时放弃判断 模型并非在每一种情形下都具备同样程度的知识。图像可能清晰且与它学习过的样例相似,也可能昏暗、不完整,或来自它从未见过的情形。传感器读数可能完整而一致,也可能部分缺失、其余相互矛盾。这种差异被称为不确定性:现有证据并不能同等程度地支持所有结论。 系统可以通过多种方式表达这一点,包括:
- 显示置信度得分,而不是给出斩钉截铁的判断。
- 给出若干按可能性排序的选项。
- 显示一个预期区间,而不是单一数字。
- 指出缺失或相互矛盾的数据。
- 请求追加一张图像、一次读数或一条信息。
- 在证据不足时,把案例转介给专业人员。
在产量预测中,说预期产量介于 4.2 至 5.1 吨/公顷之间,可能比给出 4.7 吨这一单一数字更诚实、也更有用,尤其是在未来天气数据不稳定的情况下。在诊断叶片图像时,更恰当的做法可能是:系统说明该图像不足以区分两种成因,随后请求拍摄叶片背面的图像。 但模型显示的置信度得分并非有保证的真实。它可能说自己有 80% 的把握,而实际结果却糟糕得多。正因如此,才要考察置信度校准:检验置信度数值是否与现实相符。如果我们汇集大量系统给出约 80% 置信度的案例,其正确率就应当接近这一水平,而不是只有一半正确。 超出系统所学范围的案例,是指与其训练样例明显不同的案例:一个新品种、一台不同的相机、一种未被纳入数据的病害、明显不同的光照条件,或一种未经测试的语言中的提问。即使在这类情形下,模型也可能自信地作答,因此必须检验它识别输入是否陌生的能力。 放弃判断是指:当证据不足时,系统不强迫自己给出诊断或建议。这既不是随机停机,也不是失败的标志,而是一种有意为之的行为,例如说: “当前图像不足以安全地确定病情。请拍摄一张更清晰的叶片背面图像,并注明作物与生育期,或将该案例转介给专业人员。” 放弃判断本身也必须接受评估。如果系统在大多数情形下都放弃判断,它可能看起来很安全,实则用处不大。如果它从不放弃判断,就可能在它并不了解的情形下给出自信的答案。所需要的是一种与任务严重程度以及团队复核转介案例的能力相匹配的平衡。 不确定性与放弃判断的实际含义: 我们要问的不仅是系统是否作答,还要问它是否认识到自身证据的限度,是否在恰当时机寻求帮助,以及这一请求是否送达了能够跟进的人。 E. 衡量系统在运行中的表现,而不只是在演示中的表现 一个系统可能在短暂的公开演示中,或在连接稳定网络的高性能计算机上运行良好,随后在农场日复一日的使用中遭遇困难。 因此,比较还包括那些不会体现在准确率数字上的方面,例如:
- 从数据录入到结果出现之间的时间。
- 系统在实际可获得的手机或设备上运行的能力。
- 能耗与传输的数据量。
- 对持续联网的需求。
- 网络信号弱或断电时会发生什么。
- 相机、传感器、服务器与订阅的成本。
- 安装、校准与维护设备所需的时间。
- 软件在不中断工作的前提下更新的难易程度。
- 界面的清晰度以及使用者理解结果的能力。
- 技术支持与备件的可获得性。
- 纠正错误或退回人工工作方式的能力。
一个在实验室测试中表现略逊的模型,如果能在可获得的手机上快速运行、给出可理解的结果,并在网络信号弱时仍能履行其基本功能,那么它在田间可能更有用。反之,更准确的模型如果需要昂贵设备、持续联网,或响应时间长于干预窗口,就可能不切实际。 如果一套杂草识别系统在机械已经驶过杂草所在位置之后才发出结果,那么再高的图像准确率对它也毫无用处。如果病害警报在数据采集数天之后才送达,那么即便诊断正确,它也可能已失去价值。 运行性能的实际含义: 有用的系统是适应日常工作条件的系统,而不是只有在具备理想演示条件时才能成功的系统。 F. 在部署之后监测条件变化与性能下滑 系统上线时的良好结果,并不保证它会一直如此。农业环境会变化:新品种出现,播种日期推移,相机与传感器被更换,作业方式改变,某种在原始数据中未被代表的有害生物或病况可能蔓延开来。 当系统所接收数据的性质,与其训练和测试所依据的数据发生偏离时,这被称为数据漂移。要点不在于数据真的“移动”了,而在于系统所观察到的那部分现实,其属性已不复从前。 例子包括:
- 用某台特定相机拍摄的图像训练模型,随后换成另一台色彩和图像处理方式不同的相机。
- 种植品种发生变化,症状的表现随之不同。
- 气候或季节时序发生变化,天气与产量之间的关系随之改变。
- 温室内的供料或照明系统被改动。
- 录入记录的方式,或应用程序中的字段名称发生变化。
- 会话式咨询系统中出现了新的问题与方言。
也可能出现这样的情况:数据表面上依然相似,而数据与结果之间的关系却已改变。某一温度在早前的灌溉系统下可能与植株胁迫相关联,而在通风改善或加装新的遮阳设施之后,这一关系就变了。 因此,部署之后系统需要进行监测,内容包括:
- 把新数据与其测试所依据的数据相比较。
- 记录异常案例或置信度已下降的案例。
- 在田间抽样复核结果。
- 追踪误报数量与漏判案例数量。
- 设定一个触发重新评估的阈值。
- 明确由谁决定是否更新或重新训练模型。
- 在批准新版本之前对其进行测试。
- 保留在出现问题时回退到先前版本的能力。
重新训练并不是应对每一次性能下滑的自动解决方案;错误或未经记录的结果可能混入新数据,系统可能从中学习而变得更差。因此,更新必须经过复核、测试与批准。 数据漂移的实际含义: 上一季成立的结论,未必会自动在下一季继续成立,因此系统需要持续监测,而不是一劳永逸地获得一纸成功证书。 G. 衡量结果送达使用者之后发生了什么 预测可能有所改进,而农业结果却未见改善。系统可能及早发现了病害,但警报没有送达该收到它的人。警报可能送达了,但使用者不理解它。使用者可能理解了,却没有干预所需的物资、人手或时间。使用者可能执行了建议,但该建议并不适合田间条件。 因此,应当追踪整条链条:
- 模型的估计正确吗?
- 系统是否把它转化为清晰的警报或建议?
- 结果是否在恰当时机送达?
- 使用者是否理解并信任它?
- 它是否改变了决策?
- 决策是否按计划得到执行?
- 执行是否带来了更好的农业结果?
这些层次的含义并不相同。灌溉预测的准确率可能提高,而用水量却未下降,因为管网存在渗漏。系统可能及早发现某种动物病况,但团队要到当天结束时才能复核这些警报。它可能建议一种更优的劳动力分配方案,但该计划并未考虑田块之间的运输。 在衡量影响时,应当考察不止一项结果。系统可能减少用水但增加能耗,或提高产量但增加投入品成本,或减少人工劳动但加深对某项难以维修的外部服务的依赖。 不应仅仅因为某项产量或成本变化发生在系统使用之后,就把它归因于系统;原因也可能是更好的年景、价格变动,或另一项农艺措施。如果希望确证系统确实带来了差异,可能需要分阶段实施、比较相似的田块或时段,或采用能把系统效应与其他因素分离开来的恰当田间设计。 衡量影响的实际含义: 评估不止于答案是否正确,还要继续追问答案是否送达、是否改变了决策,以及该决策是否带来了更好的现实结果。 H. 审视公平性、责任与治理 系统可能取得不错的平均表现,却在某一类使用者或农场上表现更好,而以另一类为代价。它可能依赖偏远地区无法获得的高速网络,或依赖并非所有使用者都拥有的新式手机,或依赖来自大型、管理良好的农场、并不能代表小农户的图像,或依赖一种不能很好处理本地提问与方言的正式语言。 因此,在适当情况下,应按以下维度对结果进行分类呈现:
- 农场规模与生产性质。
- 地区与气候条件。
- 品种与生育期。
- 设备或传感器类型。
- 网络连接质量。
- 语言或方言。
- 使用者的经验以及使用界面的能力。
公平并不意味着系统应当给每个人相同的结果;它意味着审视是否某一特定群体承担了更多错误、无法获得该服务,或缺少对错误决策提出异议的途径。 至于治理,它指的是贯穿系统整个生命周期的规则与责任,包括:
- 谁授权了它的使用?
- 谁复核它的数据与性能?
- 谁为错误承担责任?
- 使用者能否提出异议或要求人工复核?
- 系统可以提出或执行哪些决策?
- 哪些决策必须保留在专业人员或授权机构手中?
- 记录如何保存,隐私如何得到尊重?
- 变更与版本如何记录在案?
- 当风险出现时,谁有权中止该系统?
当系统涉及植物或动物健康、工人安全、水与受管制物质的使用,或产品在市场上的接受度时,这些问题就更为重要。这一视角以“在人工智能生命周期各阶段管理其风险——从设计、测试到运行、监测与更新”这一理念为指引 [SRC033]。 治理的实际含义: 仅知道系统能做什么是不够的;我们还必须知道谁监督它、谁复核它,以及当它出错时谁拥有决策权。 给进阶读者: 专业的比较不会把单一数字当作最终判决。它应当说明测试样本的规模、结果的波动程度、在不同群体与环境中的表现、随时间的稳定性,以及每一类错误的代价。比较的条件也应保持一致:相同的数据、相同的任务定义、相同的警报阈值以及相同的运行环境。一个模型可能在允许发出大量警报时占优,而另一个可能在警报数量被限制在团队可复核范围内时占优。因此,比较始终与决策的条件及可用资源相关联,而不是与算法在抽象意义上的表现相关联。 比较任何系统的实用检查清单 这种比较可以概括为八个问题,但每个问题的含义都应当被清楚理解:
- 哪项决策将因该系统而改变?
- 该系统是在与哪种现行方法作比较?
- 它是否在一个与使用场景相似的独立环境中经过测试?
- 哪种错误最危险,它发生的频率如何?
- 它是否清楚说明了自身知识的限度?
- 运行与维护它的成本是多少?
- 我们如何发现它的性能已经恶化?
- 谁拥有最终决策权和中止它的权力?
其输出会引出一次追加巡查、对某一灌区进行灌溉、对某只动物进行处理、购买某种投入品,还是操作某台机械?如果我们不知道哪项决策将改变,就无从知道需要怎样的性能。
它是否胜过农民的经验、专业人员的巡查、一条简单规则,或当前在用的系统?它带来了多大的附加价值?
测试是否包含了其数据未被纳入训练的田块、季节、设备、品种与使用者?
最大的风险是漏判、误报、延迟,还是把行动导向了错误的位置?这种错误对农场有什么影响?
它是否给出置信度或预期区间?在证据不足时,它是否请求补充信息或把案例转介给人?
它需要哪些设备、网络连接、电力、培训、支持与维护?一旦中断或发生故障会怎样?
部署之后由谁监测结果?什么迹象表明需要重新测试或更新?由谁批准新版本?
使用者是否知道结果何时只是咨询性的?谁复核高风险案例?能否中止自动执行并使系统返回安全模式?
总体原则: 一个模型并不因为它的数字更高就更好;只有当它胜过一种现实可行的方法、在使用环境中站得住脚、揭示自身知识的限度、在可用资源范围内运行、减少危害最大的那类错误,并最终带来更好的决策与更好的农场结果时,它才更好。
13. 一个综合教学案例:一张叶片图像如何变成一项负责任的农业决策?
以下案例是一个教学示例,它把本章各项概念整合到同一条路径之中。它不提供对任何特定病害的诊断,也不描述某种处置、物质或剂量;它所展示的,是一个负责任的系统应当如何处理不完整的信息,以及它如何从一张初始图像走向一项其理由与限度都可被检视的决策。 一位农民注意到田块某一区域的部分叶片上出现了黄褐色斑点。他用手机拍了照,发送给一个助手系统,然后写道: “这是什么问题,我该用什么来处理?” 这个问题看似直截了当,但负责任的回答并不以某个病害名称或某种物质开头。单张图像可以显示一种症状——即叶片颜色或形状上可见的变化——但它本身并不能确定症状的成因。在图像中,真菌或细菌病害、养分缺乏、水分胁迫、化学药害、日灼、虫害的影响,或同时存在的多个因素,看上去可能十分相似。 因此,图像是检查路径的起点,而不是它的终点。 第一步 —— 把笼统的问题转化为可被检视的问题 系统不会从“我该用什么?”这一问题直接跳到提出处置方案。它会把问题重构为若干更小的问题:
- 图像中是否出现了可以清楚描述的征状?
- 它们位于叶片的哪个部位?
- 这种模式是局部的还是普遍的?
- 图像是否足以区分其中的某些可能性?
- 在走向诊断之前,还缺少哪些信息?
- 是否存在需要专业人员及时复核的任何征象?
系统的第一次回应可能是这样的: “图像显示有黄褐色区域,但仅凭图像不足以确定成因或选择处置方案。我会先评估图像质量,然后我需要了解作物种类、症状的蔓延范围以及周边条件。” 这一开场承担着一项重要功能:它把看见症状与知道其成因区分开来,防止系统把视觉上的相似转化为它并不具备的确定性。 第二步 —— 核实图像是否适于分析 在分析斑点之前,应用程序会先检查图像本身的质量。看起来像病害症状的东西,实际上可能是一片阴影、一处光的反射、图像压缩产生的伪影,或一处失焦的部位。 系统会在可能范围内检查以下事项:
- 叶片是清晰的,还是因移动而模糊?
- 光照是否足够自然,能呈现真实颜色?
- 受害部位是否有近景可见?
- 整片叶子是否可见,以便判断症状在其上的位置?
- 是否既有正面图像,又有背面图像?
- 是否有整株植物的图像,而不只是叶片?
- 是否有参照物,有助于估计斑点的大小?
- 图像是否是在叶片被打湿或喷施过某种可能改变其外观的物质之后拍摄的?
所谓展示“两面”,指的是拍摄叶片的正面和背面,因为某些征状在其中一面上可能比另一面更清晰。 如果图像不充分,系统不应仅仅因为使用者在等待答案就给出一个自信的结论。它应当说明缺少什么,并请求重新拍摄,例如: “斑点边缘处的图像不清晰。请在自然光下拍摄一张更近的图像,再拍一张叶片背面的图像,然后补充一张整株植物的图像和一张田块受害部位的图像。” 这种行为并不是在为难使用者;恰恰相反,它保护使用者免于得到一个建立在无法支撑可靠推断的输入之上的结果。 第三步 —— 描述视觉工具所看到的内容,而不宣称给出诊断 如果图像适于分析,系统可以使用计算机视觉模型执行一项或多项任务:
- 识别图像中变色的区域。
- 估计叶片受害面积的比例。
- 描述斑点的形状及其表观分布。
- 把该模式与模型从既往图像中学到的类别相比较。
- 检测出该图像与它测试过的案例不够相似。
输出必须清楚说明其限度。因此,系统不应说: “这是 X 病害。” 而可以说: “系统在叶片组织的部分区域检测到形状不规则的黄褐色斑点。这一外观在视觉上与不止一种病况相似,当前图像不足以确定成因。” 系统还可以显示它在图像中所聚焦的区域,以便使用者或专业人员核实:它分析的是受害的叶片组织,而不是背景或附近的阴影。 至于“未知类别”这一表述,并不意味着模型发现了一种名为“未知”的病害。它的含义是:该图像与系统学会区分的那些类别匹配程度不够,或其质量不足以支持一个安全的判断。在这种情况下,它应当显示这样的结果:
- 该案例不属于系统已知类别之列。
- 图像不足以进行比对。
- 存在相互交叠的征状,无法进行分类。
- 需要人工检查或补充信息。
这里出现了一个重要的区分:模型也许能够准确地定位斑点,却无法判定其成因。在第一项视觉任务上的成功,并不能证明在诊断上的成功。 第四步——在图像情境之上叠加田间情境 植物症状无法脱离作物、环境与管理而独立存在。因此,系统会索取那些可能改变图像解读的信息,但最好不要一次性用几十个问题把农民压垮。它先从最有用的问题开始,需要时再追问更多细节。 它可能首先询问:
- 作物与品种是什么(如果知道的话)?
- 植株的年龄或生育期如何?
- 症状是什么时候出现的?
- 它们在迅速加重,还是看起来趋于稳定?
- 症状出现在单株植物上,还是出现在一群植株上?
- 它们集中在田块边缘、呈零散斑块分布,还是沿着灌溉行分布?
- 它们最先出现在老叶上还是新叶上?
- 叶片背面是否有其他迹象?
- 茎、果实或根部是否出现症状?
- 是否有过大水漫灌、供水中断,或热浪与寒潮?
- 是否使用过某种农业投入品,或近期是否调整过施肥方案?
- 相邻作物或相邻田块是否出现类似症状?
这些信息并不是在补充“无关紧要的细节”;它们可能彻底改变图像的含义。症状沿灌溉管线分布,可能把调查方向引向水、根系或灌溉设备;而从一个中心点向邻近植株扩散,则可能引出另一组不同的可能性。症状出现在老叶上,其意义也可能不同于首先出现在新生组织上。 系统还应当区分用户录入的信息、传感器测得的信息,以及从图像推断出的结论。它不应把三者一律呈现为分量相同的事实。 第五步——对各种可能性排序,而不是宣布单一成因 在收集图像与情境之后,系统可以对可能的成因进行排序。此处所谓权衡,是指依据现有证据比较各种可能性,而不是宣布排在首位的成因已经成立。 它可以用如下形式呈现结果:
- 一种可能性与斑点的形状和分布相符,但缺少一项本应在叶片背面加以核查的迹象。
- 另一种可能性得到近期天气条件的支持,但它不能完全解释症状出现的位置。
- 与营养或灌溉相关的一种可能性,需要复核症状在田间的分布以及土壤或水的测定结果。
- 其他成因可能性较低,但由于信息不完整,它们仍然存在可能。
仅仅给出一串百分数也是不够的,因为一个数字可能让读者产生超出证据所允许的确定感。系统应当说明:
- 哪些证据提高了每一种可能性?
- 哪些信息降低了它?
- 缺少哪些数据?
- 接下来提出哪个问题或做哪项检测,最能有效区分这些可能性?
- 它所给出的置信度分值,是否在类似作物与环境中经过检验?
用技术语言来说,概率层一词指的是汇总不同证据、并在新信息到来时重新排列可能性的那一部分。但这一部分本身并不“知晓真相”;它所做的,是把数据所支持的内容与数据仍然无法判定的内容组织起来。 因此,如果用户补充一张叶片背面的图像、一段关于症状扩散方式的描述,或一份田间或实验室检测结果,排序就可能发生变化。这并不是自相矛盾的迹象,而是在更有力的证据到来时更新判断的自然结果。 第六步——检索适合该情境的可信来源 在缩小可能性范围之后,系统会检索经批准的知识来源。所谓受治理的来源,指的并不是搜索恰好找到的任意网页,而是一组已明确其出处、日期、有效范围与批准状态的文档。 根据任务与所在国家的不同,这些来源可能包括:
- 可信农业主管部门发布的指导文件。
- 针对该作物的适当科学或诊断参考资料。
- 更新后的官方公告。
- 主管监管机构发布的规定。
- 本地登记产品的现行官方使用说明。
- 采样规程或转送实验室的规定。
一个来源并不会仅仅因为其本身正确就成为适用的来源。它可能由另一个国家发布,而该国登记的产品有所不同;它可能涉及另一个品种,或已经过时,或针对的是另一种作物上症状相似的病害。 因此,系统应尽可能匹配以下各项:
- 作物与品种。
- 地点,或国家与地区。
- 文档日期与版本。
- 发布机构。
- 种植类型与环境。
- 作物的生育期。
- 该物质或操作的监管状态。
系统必须以用户或专业人员能够查验的方式呈现来源,注明文档标题、发布机构、日期,以及它所依据的具体部分。它还必须区分:
- 来源中明确陈述的内容。
- 系统通过综合若干信息推断出的内容。
- 它未能找到充分依据的内容。
如果它没有找到合适的来源,负责任的表述是: “在现有的已批准来源集合中,我没有找到针对该作物与该地区的、足以支持某项具体建议的近期且适用的指导。有必要咨询专业人员或当地农业主管部门。” 找不到来源并不是一处应由模型用猜测去填补的空白;相反,它是必须予以展示的重要信息。 第七步——阻断从概率到处置的不安全跨越 在概率与来源呈现之后,安全闸门开始发挥作用。这里所指的,是一套防止系统把视觉相似性或尚未厘清的概率转化为直接处置指令的规则与复核机制。 应当区分不同层级的输出:
- 一般性描述: 图像中显现了什么,缺少哪些信息?
- 核验步骤: 接下来需要哪张图像、哪项检查或哪条信息?
- 低风险的一般性预防指导: 前提是它有适当来源支持,且不以尚未确认的诊断为前提。
- 专业诊断: 这可能需要专业人员或参比检测。
- 选择某种物质、剂量或受监管的操作: 这取决于诊断结果、本地登记情况、产品的现行官方使用说明,以及有权作出该决定者的权限。
某个病害名称出现在概率清单中,并不足以成为自动跨越到某种物质名称的理由。同样,某种物质出现在一份旧来源或另一国家发布的来源中,也不能证明它已针对该作物与地区登记,或其使用适合本案情形。 安全闸门可能判定,正确的输出是:
- 请求补充图像或信息。
- 建议检查植株其余部分和整个田块。
- 将该案例转介给农业专业人员。
- 在送检样品时遵循专业人员的指示。
- 向所在国家或地区的主管监管机构核实。
- 因诊断或来源不充分而不提出物质或剂量建议。
- 在现有指标要求迅速专业介入时发出紧急警报,同时说明警报理由,而不宣称已作出确定诊断。
系统不应每一次都满足于“请咨询专家”这样一句笼统的话,因为那会使它的用处十分有限。更好的做法是解释为什么此事需要专业人员、应当准备哪些信息,以及专业人员需要解决的是哪个问题。 第八步——作出决策、记录所发生的事、并跟踪结果 在证据及其限制呈现之后,决策权仍然属于农民或经授权的专业人员,具体取决于行动的类型及其风险等级。结果可能是请求进一步检查、在特定时期内监测该案例、开展检测,或按照本地要求执行由专业人员批准的干预措施。 在取得用户同意并符合隐私规则的前提下,系统记录以下事项:
- 分析所依据的图像与信息。
- 结果发出的时间。
- 所呈现的概率与置信水平。
- 检索到的来源及其版本。
- 缺失的数据。
- 警告或不予作答的理由。
- 用户或专业人员所作的决定。
- 实际执行的内容。
- 后续出现的任何结果或变化。
反馈指的是决策之后回流到系统的信息:专业人员是否确认了某一成因?检测是否给出了参比结果?症状是否发生变化?相关措施是否确实得到执行? 但用户事后所写的内容,并不会自动成为可供训练依赖的事实。用户可能因为看到病情好转而认为诊断正确,然而好转实际上可能源于天气、灌溉或其他因素的变化。他们也可能录入不准确的名称,或把结果归因于某项并未按记录执行的措施。 因此,后续信息的强度各不相同:
- 用户的观察对后续跟踪是有用的。
- 专业人员的确认强于初步猜测。
- 对某项特定任务而言,参比检测结果可能更强。
- 采取措施后出现好转,本身并不能证明该诊断或该措施导致了好转。
在把这些信息用于更新模型之前,必须复核其质量、核实其来源、确认批准者身份,随后在发布前对更新后的模型进行测试。否则,系统可能从自己过去的错误中学习,并以更高的置信度重复这些错误。 呈现给农民的回答可能是什么样子? 在经过前述各阶段之后,系统可能给出这样一个回答: “图像显示叶片组织上出现黄褐色斑点,但这种表现可能由不止一种原因造成,目前的图像不足以确认诊断或选择处置方案。请发送一张叶片下表面的清晰图像、一张整株植物的图像,并说明作物及其生育期、症状开始的时间,以及症状是否出现在相邻植株上或沿灌溉管线分布。 这些信息补齐之后,就可以对各种可能性进行排序,并确定下一步检测。在尚无诊断结论、尚无适合本地区的来源,以及尚未对照产品现行官方使用说明进行核实之前,我不会提出任何物质或剂量建议。” 这样的回答没有让农民得不到帮助,同时也没有赋予他们人为的确定感。它说明了系统看到了什么、无法确证什么、还需要哪些信息,以及为什么没有直接跨到处置环节。 这段流程可能在哪里失败? 这一案例表明,错误并不只出在图像模型身上。它可能发生在任何一个环节:
- 图像可能不可用,而应用程序却接受了它。
- 模型可能把注意力放在阴影或背景上,而不是斑点上。
- 该案例可能未在训练数据中得到体现。
- 用户可能输入了错误的作物名称或地点。
- 系统可能把该图像与另一块田的情境关联起来。
- 系统对各种可能性排序时,可能表现出超过证据所允许的置信度。
- 系统可能检索到一个本身正确、但已过时或不适用于该国的来源。
- 界面可能以改变来源原意的方式对其进行概括。
- 一般性信息可能演变为未经授权的处置建议。
- 回答可能姗姗来迟,此时病情已经发生变化。
- 系统可能把一项拟议的决定记录为已经实际执行。
- 一项未经记录佐证的观察,可能作为已确认的诊断进入训练数据。
正因如此,仅仅说“模型识别出了这张图像”是不够的。我们需要知道:图像是如何变成概率的,该概率又是如何与来源相关联的,不安全的推断是如何被阻断的,决策由谁作出,以及结果是如何被记录下来的。 面向进阶读者:这一案例把若干不同的功能汇集在一起,而每一项功能都应当分别评估:图像质量、症状定位、视觉模式分类、异常情形检测、情境采集、概率排序、来源检索、来源适用性核验、答案表述、安全规则应用、转介人工、以及结果跟踪。某一项功能的成功,绝不可被用作其他功能成功的证据。还应当避免“诊断过早收敛”——也就是停留在第一个看起来令人信服的解释上——而应转而寻找支持它的证据,以及可能推翻它的证据。 如果整个流程在识别出图像中可见的模式之后就停止,那么我们面对的是一件图像分析工具。如果再加上情境与概率排序,那么我们面对的是一个初步推理助手。如果它还与适用来源、安全规则、人工复核路径、记录归档与后续跟踪相连接,那么我们面对的就是一个决策支持系统。 这些层级之间的差别,不一定体现在界面的精致程度或回答的流畅程度上;它体现在系统提出了哪些问题、披露了哪些假设、提供了哪些可供查验的来源,以及它不允许自己越过哪些界限。 总的原则是:叶片图像也许能揭示问题从哪里开始,但它本身并不能确定答案在哪里结束;而负责任的决策,是把系统所见与它对情境的了解、它能从来源中确证的内容,以及必须留待人类判断的部分连接起来。
14. 本章应给读者留下什么?
读者应从本章中带走什么? 读者不必记住各种算法的名称,也不必了解它们的构建细节,就能够清晰地思考农业人工智能。真正重要的是看清四件事之间的联系:我们想回答的问题、我们拥有的数据、系统产出的结果,以及可能据此在田间发生的行动。 一个分析叶片图像的系统,与一个预测产量的系统,所执行的并不是同一项任务。一个预报作物需水量的系统,与一个选择何时开泵的规划工具,所执行的也不是同一项任务。同样,发出警报不等于作出决策,作出决策不等于执行行动,而单单执行了行动,也不保证农业结果得到改善。 面对任何一款应用、设备或销售演示,读者都可以把评估整理为四组问题。 第一——系统试图解决什么问题? 从目的入手,而不是从技术名称入手:
- 该系统针对的是哪一个具体的农业问题?
- 目标用户是谁:农民、推广员、兽医、运营经理,还是研究人员?
- 它描述的是当下正在发生的事,还是预测日后可能发生的事?
- 它是给出概率、建议某项决策,还是在机器上执行某个动作?
- 有哪一项决策应当因为这一结果而改变?
- 输出是否在干预仍然有用的时候到达?
一家公司可能声称其系统“能检测植物病害”,但这一描述可能掩盖着差异极大的任务。它只是识别叶片是否出现了变化?它是把图像与有限数量的案例进行比对?它是对可能的成因排序?它是否提供来源?它是否建议处置方案?这些层级中的每一个,都涉及不同的数据、风险与责任。 还应当追问结果本身意味着什么。如果系统显示数字 0.82,它是什么意思?是概率?是相似度分值?还是受害面积的比例?如果它预测产量为 4.7,单位是什么:吨每公顷、吨每费丹,还是整个农场的产量?它所指的又是哪一个时间段? 一项不知其单位、时点或与决策关系的输出,看上去可能很精确,却无法支撑负责任的行动。 第二——系统知道什么,又有什么是它无法知道的? 每个模型都依赖于它学习过的数据,或依赖于提供给它的规则与来源。因此应当追问:
- 它建立在何种数据之上?
- 这些数据来自哪里?
- 谁核验了数据质量?
- 它是否代表了将要使用它的作物、品种、季节与环境?
- 它是否包含早期、混合与疑难的案例,还是只有界限分明的案例?
- 系统无法看到或无法获取哪些信息?
- 如果图像质量差、读数不完整或传感器出现故障,会发生什么?
- 它是否区分了自己实际测得的内容、用户录入的内容,以及它自行推断的内容?
一个植物图像模型可能从若干示例中学习,每个示例都关联着经专家核验的参比类别。一个产量模型可能从与采后测得的参比数值相关联的记录中学习。如果那些参比类别或测量值不准确,误差就会进入学习过程本身。 训练数据与农场环境之间的相似程度,也不是次要细节。在实验室里以单片叶片图像训练出的模型,在叶片相互重叠、光照不断变化的田间可能表现吃力。在传感器覆盖规律的大型农场上训练出的系统,在依赖间断性测量的小农户那里可能无法维持其性能。 重要的问题不仅是“系统看到了什么?”,还包括:尽管决策依赖于它,系统却无法看到什么? 图像并不总能揭示根系的状况,本身也无法说明灌溉与施肥的历史,更不能证明致病因子的存在。单点的水分读数未必能描述整个灌区的状况。而一条数字记录,也并不总能显示所记录的措施是否真的执行了。 第三——我们如何知道系统确实有效? 产品展示出一个很高的百分比或一次成功的试验,是不够的。应当追问:
- 系统是与什么作比较的?
- 它是优于目前实际使用的方法,还是仅仅优于一个薄弱的基准?
- 它是否在并非训练组成部分的农场、季节或设备上接受过测试?
- 在这项任务中,哪一类错误后果更严重?
- 那类错误出现的频率有多高?
- 结果是针对每一类重要情形分别呈现的,还是被掩藏在一个总体平均值之中?
- 被证明成功的只是模型,还是整个系统都经过了测试?
- 是否有证据显示它对决策与农业结果产生了影响,还是只对预测准确率有影响?
目前实际使用的方法,或我们用来与新系统作比较的最简单的现实规则,被称为比较基线或“基线”。这一基线可能是专家检查、往年季节的平均值、本地校准的灌溉计划,或一套已经在使用的较旧系统。 问题不在于模型是否胜过了“什么都不做”,而在于:它是否在已有的现实方法之外带来了附加价值,而这一价值是否值得使用它所付出的成本? 测试还应当贴近真实的使用条件。如果同一株植物的图像,或高度相似的连续图像,同时进入了训练数据与测试数据,结果看上去可能非常出色,因为模型实际上已经见过与测试集类似的内容。这是数据泄漏的一种形式:信息或密切相关的样本进入了测试集,而它们本应与测试集保持分离。 还必须区分三类证据:
- 模型性能的证据:
- 系统性能的证据:
- 农业影响的证据:
它表明模型在某项特定测试中对图像分类或对数值预测表现良好。
它表明数据采集、质量检查、分析、结果呈现、传达与执行,在真实世界条件下能够协同运作。
它表明使用该系统带来了更好的决策、减少了损害、节约了某项资源,或改善了农场上的某项结果。
而第一类证据并不会自动确证后两类。预测可能是正确的,但警报到达得太晚。或者警报按时到达,但用户缺少执行该建议所需的资源。再或者决策得到了执行,但由于系统未曾考虑的某个因素,其效果有所不同。 第四——当系统不知道、或当它失效时,会发生什么? 一个负责任的系统,不会表现得好像所有案例都很熟悉、所有数据都很完整、所有设备都始终正常。因此我们应当追问:
- 当案例含糊不清时,它是否明确说明证据不足?
- 它是否给出一个区间或一个置信程度,而不是一个确定的数字?
- 它能否请求补充信息?
- 在缺乏充分依据时,它能否不作出诊断或建议?
- 如果传感器、网络连接或电力供应中断,它会怎么做?
- 它是切换到安全模式,还是继续依据旧数据运行?
- 谁来复核尚未解决的案例?
- 谁有权停止执行或推翻执行?
- 团队如何察觉性能在采购或部署之后已经退化?
- 谁来批准更新与新版本?
不确定性意味着证据并不以同等强度支持所有结果。图像可能清晰,且与模型学习过的内容相似;也可能不完整,并呈现一个它从未见过的案例。传感器可能彼此一致,读数也可能相互冲突。 至于不予作答,其含义是:在证据不足以支持的情况下,系统不强迫自己给出判断。它可以说: “当前数据不足以安全地判定该状况。请发送一张补充图像、检查传感器,或将该案例转介给专业人员。” 如果用在恰当的地方,这并不是软弱的表现。一个说明自身限制并指出下一步该做什么的回答,可能比一个缺乏充分证据支撑的确定性回答更有用。 但不予作答同样需要把握平衡。在大多数情形下都不予作答的系统,可能没什么用处;而从不不予作答的系统,则可能是危险的。真正需要的,是明确它应当作答的情形、应当请求补充信息的情形,以及权限应当移交给合格人类的情形。 当数据或网络连接失效时,技术手册上写着系统“支持离线运行”是不够的。我们需要知道:实际上还有哪些功能可用、数据最后一次更新是什么时候、用户能否区分实时读数与陈旧读数,以及如何回到安全的人工操作模式。 这些问题并不与创新对立 上述问题看上去或许很多,但它们的目的并不是阻碍或否定技术。它们有助于让创新从一场令人兴奋的演示,走向一件可被信任、可被使用、可被复核的工具。 一项成熟的技术能够说明:
- 它所执行的任务。
- 它所依赖的数据。
- 它接受测试时的条件。
- 它会犯的错误类型。
- 它所产出结果的限制。
- 当数据缺失或设备故障时会发生什么。
- 谁拥有最终决定权。
- 投入使用之后如何监测性能。
而把这些问题藏在一个著名模型的名称、一个笼统的百分比或一套炫目界面背后的技术,无论其呈现多么流畅,仍然有待成熟。 信任并非源于问题的缺席,而是源于系统及其责任方以清晰证据回答这些问题的能力。
本章小结
没有哪一种方法对所有农业问题都是最优的,人工智能方法也并非沿着一架必然终结于最大或最新模型的阶梯向上推进。每一种方法都有它擅长处理的问题类型、它所需要的数据类型,以及应当被理解的限制。 本章所呈现的内容,可以按方法所执行的功能加以梳理。 从已知结果的示例中学习的方法 在监督学习中,模型学习输入与其对应参比结果之间的关系。输入可以是叶片图像,参比结果可以是经专业人员确认的病症。输入也可以是天气、土壤与管理数据,参比结果可以是采后测得的产量数值。 这种方法的长处在于,它利用以往示例来预测新的结果。它的基本局限在于,它学到的是那些示例被构建出来的方式,其中也包括其中的错误、偏差与代表性狭窄的问题。 至于半监督学习,它同时借助数量有限的、经专业人员复核过的示例,以及数量更多的、结果尚未确定的图像或记录。这或许能减轻复核负担,但它无法弥补有文档记录的示例本身薄弱,或这些示例之间多样性不足的问题。 在没有为每个示例准备现成答案的情况下寻找模式的方法 在无监督学习中,系统在数据内部寻找相似与差异。它可能把田块划分为水分或产量相近的若干区域,或检出偏离常规模式的记录。 但系统发现的一个聚类,其本身并不是一项农业诊断。两个区域在计算上相似,成因却可能不同。算法的作用是揭示一种值得进一步查验的模式;而解释其成因则需要田间情境、实地检查与专业知识。 在许多应用中,异常检测属于这一范畴。系统可能提示某个传感器开始发生漂移、某只动物的活动发生了变化,或用水量已超出常规区间。但它并不自动确证已经发生了某种病害或故障。 分析图像与随时间变化的方法 计算机视觉利用图像或视频来对某种状况分类、确定某个目标的位置、勾画受害区域的边界,或在连续帧之间追踪某个目标。 但看见一个斑点并不意味着知晓其成因,定位一株杂草也不意味着机器能够安全地将其清除。视觉输出可能只是下一阶段推理或控制的输入,而不是一项完整的决策。 至于分析随时间变化的方法,它们考察的是一系列读数:水分是如何变化的?动物的活动在上升还是下降?产量或需水量的预期趋势是什么?这些方法要求关注季节性、不断变化的条件、测量中的缺口,以及不得假定过往模式将永远延续下去。 表达概率、并把预测与干预效果区分开来的方法 概率模型有助于表达不确定性,而不是掩盖它。它们可以对若干种可能的解释排序、给出预期产量的区间,或在新信息到来时更新其概率。 但概率并不会仅仅因为以百分比形式出现就变得有用;置信度分值的可靠性必须经过检验,并且必须说明该案例是否与系统受测环境相似。 至于因果推断,它所处理的问题比预测更难。预测所问的是“预计会发生什么?”,而因果问题所问的是“如果我们进行干预,预计会有什么改变?” 一个模型可能成功地依据土壤与管理数据预测产量,却并不能确证增加其中某一项投入就会提高产量。从观察到一种相关关系,走到建议一项干预措施,需要更有力的证据、恰当的研究设计、农业知识,以及环境与监管方面的限制。 比较备选方案或处理序贯行动的方法 数学规划与优化有助于在明确的约束条件下分配资源,并权衡各方案之间的取舍。它们可以把有限的水量分配到多个灌区,同时考虑生育期、水泵能力、能源与运行时段。 但由此得出的方案,反映的是设计者所设定的目标与约束。如果目标忽略了植株健康或灌区之间的公平,该工具可能产出一个在计算上成功、但在农艺上无法接受的方案。 至于强化学习,它处理的是一系列会改变环境状态的行动。系统可以选择一项行动、观察结果,然后调整其选择,以改进某项长期目标。 然而,这类学习需要探索各项行动的结果,而系统绝不能为了学到某些行动不安全,就在田间尝试危险的行动。因此它需要仿真、逐步测试、明确的安全约束,以及由人叫停的权力。 为与知识对话打开大门的方法 语言模型能够概括文本、翻译文本、提取信息,并以自然语言组织答案。它们让知识获取变得更容易,因为农民可以用自己的语言提问,而不必在复杂的菜单中层层查找。 但回答的流畅并不能证明它的正确。模型可能在缺乏充分依据的情况下给出一段令人信服的表述。因此,可以把它与一条流水线相连接:先检索权威来源并调取相关段落,然后再组织答案。 检索并不会自动保证答案正确;系统可能找到一个本身正确、却并不适用于该作物、该国家或该日期的来源。答案必须区分来源中出现的内容、系统推断出的内容,以及需要专业人员判断的内容。 帮助我们查验结果的工具 可解释人工智能工具试图展示是什么影响了模型的结果:图像的某些部分、与该预测相关联的读数、相似的示例,或某项可能改变模型输出的变化。 这些工具可能帮助开发者发现错误,或帮助专业人员复核某个结果。但它们解释的是模型使用了什么,并不必然确证田间现象的成因是什么。一个令人信服的解释,并不能把错误的结果变成正确的结果,也无法弥补数据薄弱或缺乏外部测试的问题。 方法只是更长链条中的一环 上述任何方法都不在真空中运行。农业系统通常要经过一条始于现实、又终于对现实产生新影响的链条: 田间现实 → 测量、图像或记录 → 数据质量检查 → 估计或预测 → 规则与情境 → 决策 → 执行 → 农业影响 → 后续跟踪 这条链条可能在任何一个环节失效:
- 传感器可能给出错误的读数,或给出使用非预期单位的读数。
- 图像可能被关联到一个不准确的参考结果。
- 同一株植物的图像可能同时进入训练与测试,使结果显得优于其真实的泛化能力。
- 模型可能是从一个与其将要运行的农场并不相似的环境中学习的。
- 预测可能是正确的,而决策规则却错误地转译了它的含义。
- 所选择的计算目标可能忽略了某项农艺或环境约束。
- 系统可能检索到一个与该作物或该地区无关的来源。
- 语言形式的回答可能显得比其所依据的证据更为可靠。
- 预警可能在干预窗口过去之后才送达。
- 指令可能是正确的,而设备却未能执行。
- 使用者可能不具备执行该建议所需的资源或权限。
- 现实可能随时间发生变化,而系统仍像条件未曾改变那样继续运行。
因此,仅仅比较两种算法并不总是足够的。它们之间的差别可能很小,而传感器质量、界面清晰度、实施安全性或团队响应能力所带来的影响,可能要大得多。 把技术与决策联系起来的契约 本章的要旨可以概括为以下这句话: 技术方法是一份清晰契约的一部分,这份契约把问题、数据、输出、行动与责任联系在一起。 这里所说的并不是法律意义上的合同,而是一种智识上与实践上的约定,其条款必须清晰:
- 问题:我们试图解决的具体问题是什么?
- 数据:哪些证据使我们得以回答这个问题,其质量与代表性的限度何在?
- 输出:系统将产生什么,以什么单位表示,具有怎样的置信程度?
- 错误:它可能以何种方式失效,哪一类错误的危害最大?
- 行动:可能基于该输出做出什么决策或采取什么行动?
- 责任:由谁复核、批准、执行、中止并监测影响?
如果在理解这些要点之前就选定算法,它就成了一个四处寻找问题的技术名词。但如果设计始于所需的决策、可获得的数据、错误的后果、切合实际的比较基准以及运行约束,那么算法就能成为一个更大系统中的精准工具——这个系统由人来主导、复核并承担责任。 对农业人工智能的真正理解,并不始于我们记住模型的名称,而始于我们能够发问:
- 系统实际看到了什么?
- 它推断出了什么?
- 它无法知道什么?
- 有哪些证据支持这一结果?
- 它将导向什么行动?
- 谁为这一行动承担责任?
- 如果结果是错的,会发生什么?
当任务明确、数据适当、限度清晰时,我们从人工智能的速度中获益。当结果超出证据所能确立的范围时,我们就停下来去寻求一次测量、一个来源或一位专业人员。 综述:不要只问“这个系统聪明吗?”,而要问“它知道什么,它是如何知道的,它不知道什么,如果我们信任它,田间会发生什么?” 关于证据与依赖限度的说明 两篇综述 [SRC001] 与 [SRC002] 支撑了关于人工智能与计算机视觉在农业与食品领域应用广度的总体叙述,但这并不意味着每一项应用都适用于所有作物与环境。 [SRC035] 支持把数字农业系统视为一条相互关联的链条,其中包括感知、数据、情境、决策与行动,这也说明了为什么应当把系统作为一个整体来评估,而不是仅仅依赖模型输出。 [SRC006] 被用作产量预测以及在特定研究情境中使用可解释性工具的一个有限度示例。不得把该情境中的因素排序或研究发现转化为普遍的因果关系,或适用于每一块田地的事实。 [SRC009] 被用于纠正对杂草识别技术的归属:它涉及使用卷积视觉方法分析大豆田的图像,并未证明存在一套基于强化学习的机器人除草系统。这一更正有助于区分“在图像中看见某个对象”与“控制一台与之交互的机器”。 关于风险、监督以及贯穿系统生命周期的持续复核的阐述,依据的是 [SRC033] 所引用的框架。 至于本章给出的综合性教学案例、任务与方法对应关系的指引、实践问题以及田间示例,它们属于教学性的编辑性综合,旨在厘清测量、分析、决策与实施之间的区别。这些示例并不代表一项新实验的结果,不构成对任何特定系统性能的证明,也不构成农业诊断或作物处置的处方。