By 超神经

内容一览:分析并识别鱼类行为,对于养殖业具有重要意义,福林德斯大学博士生 Thomas Clarke 研发了一个机器学习模型,可以借助随机森林算法识别鱼类动作。

关键词:随机森林算法   机器视觉

爱吃生鱼片的朋友们对黄尾鰤鱼 (Yellowtail Kingfish) 肯定有所耳闻。在餐馆里,黄尾鰤鱼也常被写作黄师鱼、黄条鰤。

这种大型深海鱼肉质绵密、富含 Omega-3 且没有腥味,口感一流,被视为刺身极品。野生黄尾鰤鱼由于捕捞、钓期较短,捕捞困难等因素,价格也一直高居不下。

 如何养肥、养好海洋生物

黄尾鰤鱼生长速度较快,但是野生种群数量不多,所以很难形成商业化捕捞。随着海洋养殖技术的发展,也可通过养殖黄尾鰤鱼,供应日益增长的消费需求。

对于海洋养殖业,如何全面掌握黄尾鰤鱼的生活习性及产卵繁殖特点,有针对地保护成熟期的黄尾鰤鱼,成为提高养殖生产效率和盈利水平的关键。

黄尾鰤鱼最大可长到 60kg

它们智力超群,海钓、捕捞难度很高

黄尾鰤鱼是一种随季节和温度变化做周期性洄游的鱼类,主要分布在我国各大沿海、日本、朝鲜半岛和澳大利亚周边远离岸边的外海岩礁区水域。

过去十年中,得益于观测设备的发展,生物追踪领域有了显著发展,对物种的远程监测也获得了诸多突破,越来越多针对海洋生物行为的观测和数据收集,开始大规模采用三轴加速器。

科研人员通过给黑鳍鲨鱼鳍配备最新加速器

监测黑鳍鲨运动行为

三轴加速器通过测量三个轴的加速度,可以产生描述生物运动、活动的时间序列,进而根据环境中加速度的特征,推演出动物行为。

此外加速器数据可以与时空数据(深度、地理位置、季节等)结合分析,以确定产卵、进食等生态学上的重要行为。

三轴加速器收集的数据量巨大,甚至多达数百万行(包括加速度、身体位置等),因此需要借助半自动分析系统,来对生物行为进行分类。

黄尾鰤鱼的移动行为也很复杂,平均时速在三四十公里,瞬间加速追捕猎物甚至能超过时速 100 公里。这类突然的高振福「爆发」行为,使得自动化分析技术的发展受到阻碍。

 复杂生物数据,机器学习派上用场

面对包含运动速度、时间、深度、地理位置等多维度、数量庞杂的时空数据,机器学习成为科研人员的首选。

福林德斯大学科学与工程学院的博士生 Thomas Clarke,基于 6 条养殖黄尾鰤鱼在产卵期 624 个小时的加速器数据,训练了一个随机森林机器学习算法,确定了黄尾鰤鱼五种不同的行为(游泳、进食、受伤、逃跑和求偶) 。

Thomas Clarke 与同实验室的研究员合影

右一为 Thomas Clarke

这是第一个用机器学习技术,识别野生黄尾鰤鱼产卵行为的研究,对利用 AI 更好地理解深海鱼类的生殖模式,具有重要意义。

Thomas Clarke 和同事在这项研究中,通过描述和量化养殖黄尾鰤鱼的行为,在基准真相加速器数据的基础上,研发了一个有监督机器学习算法(RF 模型)。

随后这一模型被用于分析野生黄尾鰤鱼数据,进而预测自然发生的产卵行为。

 养殖野生两头抓,试验方法详解

 1、养殖黄尾鰤鱼试验 

将性成熟的黄尾鰤鱼(于南澳捕获的野生黄尾鰤鱼)在大型容器中放养,持续观察其产卵行为。

2018 年 8 月至 2019 年 2 月期间,分别进行两次追踪任务,每次追踪 1 条雌鱼、2 条雄鱼。用三轴加速器数据记录仪,记录 6 条养殖黄尾鰤鱼的行为数据。

6 条养殖黄尾鰤鱼的相关描述

把容器中的黄尾鰤鱼取出放入含有 AQUI-S (10ppm) 的设备中标记。把记录仪固定在 黄尾鰤鱼背部,为了区别不同个体,加速器的按钮、夜间模式等都做了区分。标记完成 3 小时后,开始记录黄尾鰤鱼行为数据。

 2、野生黄尾鰤鱼试验 

2015 年 10 月至 2019 年 11 月期间,科研人员捕获并标记了 8 条与养殖黄尾鰤鱼体型相近的野生黄尾鰤鱼,并用加速器记录了 2-3 天的数据。

野生黄尾鰤鱼按照养殖黄尾鰤鱼相同的规格,固定加速器,区别是野生黄尾鰤鱼的加速器是可自行分离的可恢复安装包,包括一个加速器、电波发送器 (radio transmitter)、以及智能定位和温度传输标签,2-3 天后可自行脱落。

野生黄尾鰤鱼的记录仪可保持 2-3 天

 3、数据分析 

加速器数据可通过 IGOR Pro 进行下载,并用 Ethographer 软件进行可视化分析。

首先删除由于光线不足或摄像机没捕捉到目标的无效数据。

计算 3 个加速轴上的静态加速度和动态加速度,过滤掉由尾部拍打和身体姿态引起的主导信号,并隔离高振幅加速度的行为。

观察时间序列加速度数据,可以确定黄尾鰤鱼潜在的爆发行为。从视频中可以观察到黄尾鰤鱼的五个行为类别:进食、游泳、逃跑、求偶或受伤。

 4、机器学习分类算法开发 

基于随机森林分类法进行预测。用所有预测变量的值组成单一数据集,然后随机分成两部分:70% 用于模型训练,30% 作为验证集评估模型性能。

ntree 值从 500 开始,逐渐增加到 2000。此外,还测试了每个 mtry 随机抽样的变量数量,用于评估对模型错误率的影响。

在模型构建过程中,作者使用了 64 个预测变量,进一步保证了模型的准确性。

 5、模型性能评估 

分类模型的性能指标,由 RF 混淆矩阵计算得出。混淆矩阵确定了 true positive (TP)、false positive (FP) 以及 false negative (FN),并且还提供了黄尾鰤鱼所有行为类别的实际观察值,与模型预测值的对比表。

 6、预测野生黄尾鰤鱼的行为 

用 RF 算法预测 8 条野生黄尾鰤鱼的行为数据,发现模型总体准确率达到 94% 。

用 RF 模型预测野生黄尾鰤鱼产卵事件 (n=16,粉标记) 

和繁殖行为 (n=1,橙色箭头)

游泳和进食的识别准确率最高,超过 84%,其次是求偶,逃跑和受伤的分类准确度得分较低。

测试集上用 RF 算法计算出的养殖黄尾鰤鱼行为类别性能指标

灰色方框代表测试集中分类正确的数量

 理解海洋,任重道远

海洋,是地球的资源宝库。

海洋生物除了具有经济价值外,也是海域生态平衡的关键。研究海洋,可以帮助我们更了解海洋生物、能源等资源,也是合理开发和保护海洋资源的重要课题。

参考:

https://phys.org/news/2021-06-artificial-intelligence-fishy-behavior.html

https://movementecologyjournal.biomedcentral.com/articles/10.1186/s40462-021-00248-8

如何用随机森林算法,在深海养肥一群鱼相关推荐

  1. matlab 随机森林算法_(六)如何利用Python从头开始实现随机森林算法

    博客地址:https://blog.csdn.net/CoderPai/article/details/96499505 点击阅读原文,更好的阅读体验 CoderPai 是一个专注于人工智能在量化交易 ...

  2. gbdt 算法比随机森林容易_用Python实现随机森林算法

    CDA数据分析师 出品 拥有高方差使得决策树(secision tress)在处理特定训练数据集时其结果显得相对脆弱.bagging(bootstrap aggregating 的缩写)算法从训练数据 ...

  3. 随机森林python实例_用Python实现随机森林算法的示例

    这篇文章主要介绍了用Python实现随机森林算法,小编觉得挺不错的,现在分享给大家,也给大家做个参考. 拥有高方差使得决策树(secision tress)在处理特定训练数据集时其结果显得相对脆弱.b ...

  4. 利用mysql建立随机森林_随机森林算法实例 - osc_4imme0wh的个人空间 - OSCHINA - 中文开源技术交流社区...

    根据成年人数据集来预测一个人的收入 1.准备数据集 我下载好了一个成年人数据集,从百度云下载 链接:https://pan.baidu.com/s/10gC8U0tyh1ERxLhtY8i0bQ 提取 ...

  5. Bagging与随机森林算法原理小结

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boos ...

  6. R语言使用randomForest包构建随机森林模型的步骤和流程、随机森林算法包括抽样样本(观察)和变量来创建大量的决策树(多个树,构成了森林,而且通过样本抽样和变量抽样,让多个树尽量不同)

    R语言使用randomForest包中的randomForest函数构建随机森林模型的步骤和流程(Random forests).随机森林算法包括抽样样本(观察)和变量来创建大量的决策树(多个树,构成 ...

  7. 随机森林算法demo python spark

    关键参数 最重要的,常常需要调试以提高算法效果的有两个参数:numTrees,maxDepth. numTrees(决策树的个数):增加决策树的个数会降低预测结果的方差,这样在测试时会有更高的accu ...

  8. spark 随机森林算法案例实战

    随机森林算法 由多个决策树构成的森林,算法分类结果由这些决策树投票得到,决策树在生成的过程当中分别在行方向和列方向上添加随机过程,行方向上构建决策树时采用放回抽样(bootstraping)得到训练数 ...

  9. 随机森林算法4种实现方法对比测试:DolphinDB速度最快,XGBoost表现最差

    随机森林是常用的机器学习算法,既可以用于分类问题,也可用于回归问题.本文对scikit-learn.Spark MLlib.DolphinDB.XGBoost四个平台的随机森林算法实现进行对比测试.评 ...

最新文章

  1. 为什么RESTful很糟糕?
  2. Alluxio 助力 Kubernetes,加速云端深度学习
  3. AtCoder AGC037D Sorting a Grid (二分图匹配)
  4. VTK:给定颜色,找到对比色用法实战
  5. 程序员每天到底可以写几行代码?
  6. ansys本地的help文件_linux - 远程拷贝文件之rsync
  7. Mycat高级进阶---Mycat注解
  8. linux 文件系统字体小,基于嵌入式Linux平台的最小文件系统的制作
  9. SQLCel匹配原数据信息,更新原数据所有信息并插入新数据的过程
  10. 2020 APP批量头像,高质量严选真实用户头像
  11. 《自己动手写网络爬虫》笔记5-设计爬虫对列
  12. 关于对CSDN这些技术博客类网站的一些个人看法
  13. 本人github网址:https://github.com/HuaAndLi
  14. widows快捷键大全
  15. 计算机毕业设计Java物流信息管理系统录像演示(源码+系统+mysql数据库+Lw文档)
  16. 1:算法php/go [反转链表;LRU缓存结构 ;判断链表中是否有环]
  17. Android记录15--关于ListView中adapter调用notifyDataSetChanged无效的原因
  18. 基于Python和Selenium的大麦网自动抢票脚本
  19. shineblink 倾倒传感器详解
  20. GIT如何设置只提交文件夹或者目录,而忽略内容?

热门文章

  1. c语言扫雷游戏计时功能_C语言实现扫雷游戏(可以自动展开)
  2. python总结与习题(一)
  3. JAVA学习日记DAY09--javaweb的一些简单应用
  4. 直播中常用的美颜sdk动态贴纸功能是什么?技术怎么实现的?
  5. android x86虚拟机不识别网卡,科学网-AndroidSDK-虚拟机之Intel x86虚拟机安装-几个错误解决方法-联网-马飞的博文...
  6. 使用 html2canvas 生成图片
  7. 用自己拍的一张照片做海报
  8. 给PPT插入页码和总页码
  9. 使用卷积神经网络进行实时面部表情检测
  10. LPC1768-SYSTICK