导 读
作为一种新兴的大数据分析手段,机器学习 (ML, Machine Learning) 正在各种各样的学科中发挥作用。深度学习(DL, Deep Learning)是机器学习领域中一个新的研究方向,能够打破模式识别的准确性记录,它使得机器学习向实现人工智能的目标更近一步。 随着生态数据集变得越来越大,越来越复杂,深度学习对生态学家也非常有用。在这篇文章中,作者综述了深度学习在物种识别、区分动物行为和估计大型数据集中的生物多样性等方面的应用,确定了有关如何以及何时使用深度学习的常见问题,是生态学家在使用深度学习方法前必读的一篇入门级文章。
标题: Applications for deep learning in ecology
期刊: Methods in ecology and evolution
收稿时间: 2019-04-17
接收时间: 2019-06-25
发表时间: 2019-07-05
DOI: 10.1111/2041-210X.13256
?? 点击文末左下角 “ 阅读原文 ” 可直达原文
自动检测复杂且高维数据中的特征的能力,以及具有高预测准确性,是导致深度学习方法快速扩展和无处不在的原因。生态学中许多层次的研究(从个体到集合生态系统尺度)通常提供高维度的数据集,用深度学习来处理它们非常准确和高效。
在实践中,有多种方法可以实现这些结果,可以使用不同的深度学习架构(框1)。其中,使用最广泛的是卷积神经网络(CNN),由于其在图像分类中的表现,这种架构有助于普及深度学习。但是,随着大量的实现方法涌现,并且通常可以通过使实现适应要解决的问题来获得更好的性能,因此本综述不对每个工具的内部工作原理详细介绍。
图1. 常见深度神经网络的架构。(a) 前馈网络是单向的,从输入层到输出层,再到隐藏层,深度前馈网络通常至少有三层。(b) 简单的递归神经网络从之前的时间步长中获取输入,并且可以展开为前馈网络。
为了确定深度学习可能对生态学家有益的领域,我们对使用深度学习方法进行生态研究或者描述了可用于生态研究的方法(如动物或植物识别或行为检测)的文章进行了综述。
3.1 综述方法
2018年12月13日,我们访问了四个搜索引擎:Web of Science, Science Direct, arxiv.org和bioRxiv,使用以下关键词:(a) ‘deep learning’ AND algorithm; (b) ‘deep neural network’; (c) ‘convolutional neural network’; (d) ‘recurrent neural network’(有关深度学习实现的更多信息,请参见框1)。如果可用,我们将搜索限制为与生态学相关的类别,否则我们会在搜索词中添加 ‘ecology’ 。为了获得最新的信息,我们加入了预印本,因为深度学习仍然是新近的研究,出版过程可能很长。我们获得了127篇独特的论文,其中64篇被认为是无关紧要的,24篇是在查看参考文献后添加的。因此,我们总共使用了87篇论文。主要的实现是用于图像处理的CNN(n = 64)(n = 59)(图2)。其它常用用途包括声音处理 (n = 10) 或建模 (n = 11)。
图2. 按年份和体系结构对生态学中的深度学习实现进行重新区分。实现分为五类:卷积神经网络(CNN),递归神经网络(RNN)和无监督方法。“Other”类别包括算法类型分类为难以识别或未公开的研究。N/A包括处理但不实施深度学习方法的研究。请注意,一项研究(Taghavi Namin, Esmaeilzadeh, Najafi, Brown, & Borevitz, 2018)被计算了两次,因为它实施了CNN和RNN的组合 。
绝大多数选定的论文(n = 69,78%)发表在2017年或之后,表明最近对该方法的兴趣激增(图2)。在文献检索时,在线提供的四篇论文已经计划在2019年发表。
图3. 深度学习在生态学中的应用概述取决于研究尺度。符号由马里兰大学环境科学中心(ian.umces.edu/symbols/)集成和应用网络提供。括号中的数字指补充信息1中提供的参考资料 。
3.1.1 识别和分类
随着自动监测的出现,生态学家现在能够在短时间内积累大量数据。数据可以从相机陷阱,录音机,智能手机甚至无人机等设备收集。然而,从大型记录的数据集中提取相关信息已成为一个瓶颈,因为手动操作既繁琐又耗时。因此,自动化分析过程以识别和分类数据已成为必要,深度学习方法已被证明是有效的解决方案。事实上,LifeCLEF 2018竞赛,旨在评估最先进的生物数据识别工具的性能,仅接收基于深度学习的提交。
卷积神经网络最常与图像一起使用来 识别和分类动物或植物 。他们甚至可以处理分类学家的资产—— 植物标本的数字化图像 。有关该主题的更多信息,W?ldchen和M?der(2018)最近审查了深度学习在基于图像的识别中的应用。
深度学习还可以与鸟类吟唱,海洋哺乳动物发声,甚至蚊子的声音等声学数据一起使用。
其他应用包括表型,即对物种的可见特征进行分类,以将其与其基因型联系起来,例如叶片的计数以评估植物的生长或监测植物的根系以研究它们的发育及其与土壤的相互作用。虽然迄今为止主要用于农业研究,但这些技术可以转化为生态学,例如 研究 生态系统的生产力 或 测量食草动物对植物群落的影响 。
3.1.2 行为研究
深度神经网络可以自动描述动物行为,从而被证明对行为学研究很有价值。例如,通过描述个体的身体位置和追踪它们的目光,已经获得了对个体社会行为的见解。来自相机陷阱的图像已成功用于描述和分类野生动物的活动,例如喂食或休息。甚至可以使用CNN来研究蜜蜂等物种的集体行为和社会互动,以定位和识别被标记的个体,从而为应用于分布广泛的物种的捕获-标记-再捕获技术开辟了道路。
随着遥测数据集的日益增大,深度学习可用于检测觅食等活动模式。通过用GPS定位训练CNN,再加上用于检测海鸟潜水行为的时间深度记录器数据,研究小组已经能够仅从GPS数据中预测潜水活动。
也可以创建动物行为模型。例如,通过分析秀丽隐杆线虫的视频,RNN能够生成蠕虫行为的真实模拟。该模型还兼作分类工具,并创建了对单配制物种求偶仪式和共域种中物种识别的演化的理论模拟。
3.1.3 种群监测
由于深度学习用于检测、识别和分类自动监测数据中的个体,因此可以扩展此类工具以帮助监测种群。例如,种群规模可以通过计算个体来估计。通过扩展,诸如种群分布或密度之类的信息也可以从这些数据中计算出来,因为它已经用传统方法完成。
检测疾病的症状是深度学习提供的巨大潜力,反映了医学等学科的现有应用。例如,CNN已被用于检测作物中的树木落叶或疾病。这项技术可以广泛地应用于野生植物和动物种群,以帮助发现疤痕,营养不良或可见疾病存在的征兆。
3.1.4 生态建模
生态学家通常需要强大而准确的预测模型,以更好地了解复杂的过程或在逐渐变化的世界中提供预测。机器学习方法在这方面显示出巨大的希望,深度学习方法也不例外。深度神经网络最近能够根据物种与其他物种的生态相互作用准确地创建物种的分布模型。有了足够的数据,这些方法也可能成为研究生态相互作用的途径。
深度网络有可能模拟环境变量对生物物种的影响,即使它们尚未以这种方式应用。医学领域的研究设法从环境中的污染物中预测人类胃肠道发病率,这种方法可以很容易地转移到野生动物身上。循环网络也被证明可以根据浮游植物和底栖群落的环境变量成功预测丰度和群落动态。总体而言,由于在从环境因素预测物种分布方面具有如此大的潜力,这意味着 深度学习可以成为生态位模型工具箱的一部分 。
3.1.5 生态系统管理和保护
随着人类活动影响所有生态系统,生态学家的主要任务是监测和了解这些生态系统及其变化,以用于管理和保护目的。我们在这里认为深度学习工具是实现这些目标的适当方法。例如,可以通过识别自动记录中采样的物种来估计给定地点的生物多样性。物种在任何给定地点存在的时间也可以用根据物种生命周期量身定制的时间标签来衡量。然后,可以通过将所有这些物种数据和相互作用转换为食物网模型和/或关注对栖息地和气候变化非常敏感的指示物种(例如蝙蝠)来监测生态系统的功能和稳定性。可以评估生态系统服务的重要性,以帮助决策者制定政策或管理决策。
深度学习也非常适合执行大规模监控的景观分析。为了监测珊瑚礁,CNN已经接受了训练,以量化高分辨率图像中关键底栖底物的覆盖率百分比。使用卷积网络和航空图像可以检测到改变景观的事件,例如棉花开花。此外,通过结合卫星成像,激光雷达数据和多层神经网络,对地上碳密度进行了量化,以定义婆罗洲岛上森林中具有高保护价值的区域。
除了绘制对生态系统和保护具有高价值的物种和地区外,深度学习还有大量潜在的应用来跟踪人类活动的影响。最近,深度神经网络使用来自工业渔船的跟踪信息绘制了渔业足迹。此外,为了减少非法贩运,有人建议使用深度学习算法来监控社交媒体上的此类活动,以自动检测非法野生动物产品的图片。使用深度学习进行数据挖掘可以很容易地扩展到其它领域,因为社交媒体挖掘已被证明对物候学研究等生态研究很有用。
更进一步,深度学习已经被设想为一个完全自动化系统的基石,用于管理生态系统,使用自动化传感器,无人机和机器人。这样的系统将允许连续的生态系统管理,而不需要太多的人为干预。
虽然深度学习方法对生态学家来说是强大而有前途的,但这些工具在决定实施它们之前需要考虑一些要求。在本节中,我们将确定在涉足深度学习水域时经常出现的常见问题。我们还提供指南和建议,帮助生态学家决定何时深度学习对他们的研究有益。然而,由于本节的目的不是详尽无遗,一个好的做法是在使用深度学习之前咨询或与计算机科学家合作,就像在设计研究之前咨询统计学家一样。
4.1 机器学习与深度学习:选择哪一个?
遇到的两个最常见的问题是为什么使用深度学习而不是“传统”机器学习,以及它有何不同。与其它方法的主要区别在于 从数据中提取特征的方式 。使用传统的机器学习算法,特征提取需要人工监督,而深度学习工具由于其多层性质,可以 自己学习非常复杂的数据表示 。因此,当用户对要检测的功能的了解有限时,它们更易于使用。在识别和分类任务中取得的破纪录的准确性结果也导致了使用深度学习的主要原因之一:性能。但是,这些结果取决于是否存在一个相当大的标记数据集,该数据集可用于训练算法以从数据中提取所需的特征。与传统方法相比,训练过程可能更耗时,并且需要更多的计算机功能。因此,深度学习在分析大量数据时特别合适,并且对于图像分类或语音/声音识别等复杂任务尤其出色。
4.2 如何创建深度学习模型?
在这里,我们提供了创建监督式深度学习模型所涉及的主要步骤的一般摘要(图 4)。请注意,我们假设用户已经选择了使用深度学习。本节和以下内容将主要关注监督深度学习,因为它是在撰写本文时最受关注的方法。对于无监督学习,主要区别在于不需要标记的训练数据集,并且训练将在原始数据集上进行。创建深度学习算法需要满足以下条件:
-
根据要使用的数据类型选择架构(网络层的结构和组成)(参见 4.3 节)) -
选择一个框架(用于实现体系结构的工具集)来创建模型(请参见 4.4 节)) 实现模型。这通常意味着使用框架提供的预先存在的模型或手动编码模型的每一层。
获取训练数据集(请参阅第 4.5 和 4.6 节)。
使用通常表示整个训练数据集的 70%–80% 的训练子集来训练模型。
通过在验证子集(训练数据集的剩余 20%–30%)上运行模型来测试模型的准确性。将模型的结果与已知值进行比较时,可以通过计算模型的精度(正确结果在所有正结果中的比例)和召回率(正确识别的答案的比例)等指标来评估模型的性能。使用的另一个流行指标是F1分数,这是精度和召回率的谐波平均值。
如果需要,优化模型。这部分很容易变得非常技术性,因为改进模型可能需要一些操作,例如简单地更改初始化参数,获取更多数据,完全更改模型的体系结构或自定义每一层。模型的改进程度在很大程度上取决于其预期的精度。如果确实需要提高性能,我们建议您咨询计算机科学家,因为这本身就是一个研究领域。
4.3 我应该选择哪种架构(architecture)?
4.4 我应该选择哪种框架(framework)?
4.5 需要多少数据?
4.6 如果我没有足够的数据该怎么办?
从头开始创建带标签的训练数据集可能是一项漫长而繁琐的任务。为了帮助减轻对数据密集型训练示例的需求,近年来出现了多种解决方案,并且随时可用。在这里,我们介绍一些最受欢迎的。
4.6.1 公共数据集
公共注释数据库可以越来越多地在网上找到,以促进生态学中深度神经网络的训练。其中一些数据库包括数百万种鸟类的声音,例如 Macaulay (https://www.macaulaylibrary.org/)或 Xeno-Canto (https://www.xeno-canto.org/)图书馆,还有数据库包括蝙蝠叫声,植物或动物图像。更多的通用参考数据库也可用于预训练神经网络,如MNIST(http://yann.lecun.com/exdb/mnist/)或ImageNet(http://image-net.org/)。
4.6.2 众包
由于全民科学的发展,手动识别也可以外包给其他人。使用Zooniverse(https://www.zooniverse.org)等平台,可以创建项目,要求人们帮助标记数据集。虽然观察者质量的变化可能令人担忧,但通过识别不可靠的参与者和条目,然后通过修改分析标准来过滤它们,可以减少它们的影响。因此,这种方法已成功用于多个项目,并且可能会随着时间的推移而增长。
4.6.3 迁移学习
迁移学习是一种可以帮助减少训练数据集所需大小的方法。它包括预先训练模型,以检测根据要在具有相似特征的大型数据集上进行处理的数据类型量身定制的特定特征。例如,想要检测图片中的对象但注释集有限的用户可以首先在大型公共图像数据集上训练模型,即使图像不相关也是如此。该模型可以学习检测边缘或颜色等特征,然后可以在包含要识别的物体的较小数据集上进行训练。为了节省时间,甚至可以直接下载大型公共图像数据集上的预训练结果,用于CNN的一些流行实现。虽然模型仍然需要在与手头问题更密切相关的示例上进行重新训练,但这有助于减小实现良好性能所需的数据集的大小。
4.6.4 数据增强
帮助获得足够数据的另一种方法是数据增强。数据增强包括从带注释的样本中人工生成训练数据。例如,对于录音,可以添加噪音或声音失真。图像可以翻转,旋转或更改其颜色。这不仅可以向模型提供更多种类的数据,还可以为有效的训练提供足够的数据。深度学习本身甚至可以用来生成逼真的数据集,以便使用生成对抗网络等方法进行训练。该方法已成功应用于生成植物图像和蜜蜂标记。
4.7 需要多少算力?
在非常大的数据集上进行训练可能需要大量的计算能力。为了有效地训练深度学习算法,它需要学习数百万个参数。为了实现这一目标,需要强大的硬件资源。事实上,由于计算机硬件的技术进步,特别是图形卡中图形处理单元(GPU)的使用,最近深度学习的爆炸式增长成为可能。好消息是,从技术上讲,训练深度学习算法可以在任何最新的硬件上完成,允许任何拥有相当强大的笔记本电脑的生态学家来做到这一点。但是,好的显卡可以将训练时间加快几个数量级。即便如此,对于非常复杂的分析,训练模型可能需要几天的时间才能收敛,并且微调以提高准确性可能需要几次培训课程。然而,一旦达到所需的精度,就可以保存并重复重用收敛模型。由于与其他替代方法相比,推理计算通常速度很快,并且能够有效地浏览大型数据集,因此可以长期节省时间。
在撰写本文时,大多数框架都经过优化,只能为一家主导市场的制造商Nvidia的显卡提供GPU加速。但是,为了支持不同类型的硬件和图形卡,正在做出大量努力,其中一些编译器(如 plaidML(表 1))旨在提高任何硬件和操作系统的性能。
4.8 我可以针对我的问题重用任何模型吗?
深度学习的一个常见问题是,解决不是为之设计和训练的任务的潜力有限。例如,如果我们设计一个声学识别器来识别一个特定的物种,它可能很难识别分类学上遥远的物种的叫声。因此,在考虑重用现有的深度学习模型之前,应谨慎行事。目前,解决这个问题的最简单方法是增加训练数据集的大小,以包括其他感兴趣的物种的样本。
与其他机器学习算法一样,深度学习提供了有用的方法来分析具有复杂交互作用的非线性数据,因此可用于生态学研究。深度学习算法真正闪耀的地方在于 它们能够自动检测数据中感兴趣的对象 ,例如识别摄影图像中的动物,只需向它们展示要寻找什么的示例。此外,它们可以非常准确地做到这一点,使其成为识别和分类任务的首选工具。虽然到目前为止,由于监督方法的性能和易于训练,重点放在监督方法上,但预计无监督学习的未来发展是可以预期的,因此可能完全消除了对注释数据集的需求。
深度学习为生态学家带来了很多希望。虽然这些方法仍然非常新,但实现已经涵盖了广泛的生态问题(图3),并且可以通过提供快速,客观和可靠的方法来分析大量监测数据,为管理人员,保护主义者或决策者提供非常有用的工具。应用也可以超越生态学,深度学习在进化领域和生物学中也很有价值。然而,开发深度学习解决方案还不是一项微不足道的任务,生态学家确实需要花时间来评估这是否是这项工作的正确工具。在训练数据集、训练时间、开发复杂性和计算能力方面的要求都是在走上深度学习道路之前应该考虑的方面。
随着生态学进入大数据领域,依赖人工智能分析数据将变得越来越普遍。然后,生态学家将不得不掌握或获得良好的编程和/或数学技能和工具。虽然乍一看这似乎很可怕,但我们相信有一个简单的解决方案可以解决这一挑战: 跨学科合作 。计算机科学家和生态学家之间更强的互动也可以在数据分类和分析方面带来新的协同作用和方法,为生态学的基础和应用研究提供新的见解。这反过来又使生态学家能够专注于生态问题,而不是数据分析的技术方面,并使计算机科学家能够在生物世界中一些最复杂的单元(如生态系统)上铺设新的道路。与之前的许多其他人一样,我们也强烈建议尽可能共享数据集和代码,以使生态研究在未来更快,更容易和直接复制,特别是在使用深度学习等复杂工具时。随着软件变得越来越强大,更易于使用,经验的积累以及共享资源(如数据集)可供所有人使用,我们相信深度学习可以成为生态学家有用且功能强大的参考工具。
Afterword