基于“网格搜索+XGBoost”算法的浅海遥感水深反演
2022-04-20沈蔚饶亚丽纪茜孟然栾奎峰
沈蔚,饶亚丽,3,纪茜,3,孟然,3,栾奎峰
(1.上海海洋大学 海洋科学学院,上海 201306;2.上海河口海洋测绘工程技术研究中心,上海 201306;3.南通智能感知研究院,江苏 南通 226009)
0 引言
水深测量是绘制水下地形不可或缺的工作。地球表面约71%为海洋,无论是军事、国防还是资源开发等方面,测量水深意义重大。当前水深测量以船载声呐测深为主,但对于船只无法到达或是存在主权争议的海区,则难以开展工作。近年来,随着遥感技术的进步和发展,越来越多的卫星数据被应用于水深反演中,其高空间分辨率、高光谱分辨率、高时间分辨率的特点为浅水水深获取提供了更高效灵活和低成本的方法手段。
20世纪70年代,国外学者利用遥感数据反演水深,Stumpf等[1]提出了波段比值模型,其只含两个未知参数,适用于低反照率特征的水域;Lyzenga[2]提出双层流理论模型,首次利用多光谱航拍影像对浅海地区进行了水深估算。
进入本世纪,国内相关研究日益增多,陆天启等[3]基于SPOT 6遥感影像和实测水深值之间建立比值模型,显示绿-红波段的比值模型精度最高,但是对于已有的遥感水深反演方法波段选取较难,不易得到较好的模型参数。针对该问题,盛琳等[4]基于WorldView-2多光谱影像对非线性模型进行研究,引入逐步回归算法,可以快速解算模型参数;党福星等[5]基于TM影像,对底质类型进行分区和潮汐改正,构建浅海岛礁水深反演模型,取得了较好的应用价值。
当前,机器学习算法日益成熟,为遥感水深反演提供了有效手段。王艳姣等[6]引入动量BP神经网络模型,反演长江口南港河段的水深,发现模型在浅水域反演精度较高;王锦锦等[7]将多核支持向量机引入多光谱遥感水深探测,表明反演精度较高;Friedman[8]在2001年对梯度提升决策树(gradient boosting decision tree,GBDT)模型展开研究;Chen等[9]推出了改进版本的极限梯度提升(extreme gradient boosting,XGBoost)模型,XGBoost是在GBDT的基础上对boosting算法进行改进,用于树的增强;温开祥等[10]综合多种机器学习算法,通过建立随机森林、XGBoost和支持向量机三种不同的机器学习模型对水深进行反演,反演精度有明显提高,得到广泛认可。
近年来,国内外学者通过多种与水深相关的因素建立回归预测模型并取得显著成果,但仍然存在模型参数过多、性能不佳等问题。
本文在水深反演相关模型研究的基础上,利用XGBoost算法结合网格搜索,自动耦合多个参数,确定其最佳参数组合,降低人为调试参数的不确定性,提高了模型性能和运行效率,以启东恒大浅海为实验区域,获得了较理想的水深反演结果。本文研究方法与成果,适用于浅海水深的反演,随着遥感数据的不断丰富,未来可以在更大范围推广应用。
1 水深反演原理与方法
多光谱遥感水深反演模型可分为理论解析模型和经验模型[11]两大类。理论解析模型利用辐射传输方程推导水深信息,该过程涉及较多光学参数,难以在实际工作中应用[12];经验模型需借助水深控制点,建立遥感影像数据与水深值之间的关系,从而推导算出研究区域水深值。
经验模型又可分为半分析算法和统计相关算法。半分析算法借助理论公式,基于实测水深解算水体参数,反推未知区域的水深信息,常见的半分析算法以比值模型为主;统计相关算法是将影像波段的辐射亮度值作为自变量,对应实测水深值作为因变量,建立数据模型,解算模型参数,其中神经网络模型具有较好的模拟能力,常用的有BP人工神经网络、随机森林、支持向量机反演模型等。
本文利用波段比值模型、GBDT模型和网络搜索+XGBoost模型进行水深反演研究的实验对比。
1.1 波段比值模型
在遥感水深反演领域,单波段模型可用于水质清澈的理想浅海环境,水质较差时,反演精度较低。由单波段模型过渡到波段比值模型,根据波段组合与水深值之间的相关性,选取相关性较大的蓝、绿两个波段,带入式(1)计算得出水深值。
(1)
式中:H为水深值;L(λi)为传感器接收蓝波段的辐射亮度;L(λj)为传感器接收绿波段的辐射亮度;n、a、b为可调参数。
1.2 GBDT模型
GBDT是以CART分类回归树为基模型的一种集成学习算法,采用加法模型,不断迭代减小训练过程产生的残差,利用损失函数(loss)作为准确度指标,从而达到分类或者回归的效果[13]。算法过程如下。
步骤1:初始化弱学习器,如式(2)所示。
(2)
式中:L为损失函数;yi为第i个训练数据;c为常数。
步骤2:进行迭代训练,计算残差,如式(3)所示。
(3)
步骤3:计算得到的残差训练回归树,根据权重更新得出强学习器,如式(4)所示。
(4)
步骤4:为了防止过拟合现象,加入学习率参数v,得到最终模型,如式(5)所示。
FM(x)=FM-1(x)+vfm(x)
(5)
该算法的训练过程如图1所示。
图1 GBDT训练过程
1.3 网格搜索+XGBoost模型
XGBoost是一种常用的boosting集成学习算法[14],该算法是一个加法模型,基于GBDT算法的改进,对目标函数进行二阶泰勒展开,从而保留更多目标函数的信息。为避免过拟合现象,添加正则化项[15],有利于模型获得更低的方差。
本文引入网格搜索法,当面临小数据集时,可以自动进行排列组合,从而筛选出最佳参数组合。其原理是:首先选择当前对模型影响最大的参数进行调优,通过给定取值区间,按照顺序进行搜索,直到最优再对下一个影响较大的参数进行调优,以此类推,直至所有的参数调优结束,选出最佳参数组合。其中参数max_depth用来防止模型陷入过度拟合状态,同时加快收敛速度,参数eta控制模型的学习效率,提高模型适应能力。XGBoost算法相对于其他机器学习算法而言,有着更多的自由度优势[16],通过不断寻找新的目标函数,自动处理缺失值特征,从而提高预测精度。算法过程如下。
(6)
式中:K为树的总个数;fk为树模型。
步骤2:经过t次迭代后的目标函数由两部分组成(式(7)、式(8))。
(7)
(8)
式(3)对式(7)目标函数进行泰勒公式展开,整理可得式(9)。
(9)
(10)
(11)
步骤3:对叶子结点的输出值求导并且令导函数等于零,得到XGBoost最终目标函数,如式(12)所示。
(12)
该算法的训练过程如图2所示。
图2 XGBoost训练过程
2 实验与分析
2.1 研究区域与数据
选取位于长江入海口的南通市启东恒大海上威尼斯内湖作为研究区,该水域水体透明度高,水质条件好,适合开展水深反演实验。影像数据来源于GF-1卫星多光谱WFV相机,有蓝(B)、绿(G)、红(R)和近红外(NIR)四个波段,影像获取时间为2020年3月21日,研究区如图3所示。
图3 启东恒大海上威尼斯内海位置与对应遥感影像图【审图号:GS(2022)2235号】
该区域实测水深由船载单波束采集,时间为2020年5月7日至2020年5月13日,研究水域最深处可达10 m,近岸水深则在0.3 m左右。由于遥感影像和实测数据采集存在时间差,故通过现场水文站的水位数据,对实测水深进行改正。为获取更高精度的训练效果,将实测水深数据做以下处理:首先,将实测水深点与GF-1卫星影像的投影统一(本文为UTM投影);其次,按照像素单元进行划分,计算单个像素单元中每个水深的标准差,剔除标准差较大的水深点;再次,通过将噪音大、有耀斑的水深点进一步剔除,保留846个水深点用于建模,181个水深点用于检验;然后,利用ArcGIS软件提取遥感影像上对应实测水深点的像素值,结合吃水改正后的水深值,在Python编程环境中搭建网格搜索+XGBoost模型、GBDT模型和双波段比值回归模型,开展水深反演实验。
2.2 数据预处理
建立回归模型之前,需对卫星遥感影像进行预处理,影像反射率数据受到大气、光照等因素的影响,会导致反演模型的精度下降,因此需要通过大气校正降低水蒸气、二氧化碳等物质造成的影响[17]。本文采用FLAASH模块对卫星影像进行大气校正,在一定程度上消除大气带来的影响。为了提高反演精度,还需进行正射校正和几何校正,此过程均在ENVI软件中实现。
为了获取更好的反演效果,对遥感影像进行水陆分离。无论是航线设计还是水深反演,对遥感影像进行水体和陆地分离都极其重要。本文基于提取指数进行水陆分离,减少非水体部分对回归模型造成的影响,从而更加精确地提取水深值。
2.3 建立模型
通过筛选剔除,将原始数据集划分成训练集和测试集,其中测试集用作调整参数和评定模型的好坏。通过网格搜索对模型重要参数进行调优:首先,将eta设置为0.1,其他参数为默认值,使用Grid Search CV函数确定最佳迭代次数;其次,使用Grid Search CV函数对最大深度进行自动寻优,减小(增大)学习率,同时增大(减小)迭代次数,直至找到最佳的学习率和迭代次数,使得误差最小;然后,经网格搜索得出的最佳参数组合(表1),并将其带入模型进行预测,使得模型反演效果最好。
表1 网格搜索+XGBoost结果
将网格搜索得到的最佳参数组合带入模型进行预测,得到表2结果。
2.4 实验结果与分析
使用相关系数(R2)、均方根误差(RMSE)和平均绝对误差(MAE)三个参数作为本文实验的评价指标。R2越大表明拟合效果越好;RMSE和MAE越小,表明误差越小,回归效果越好。
为对比网格搜索+XGBoost模型与其他模型的反演精度,计算各模型的预测值与实测值之间的R2、RMSE和MAE,结果如表2所示。
表2 三个模型精度对比
由表2可知,对于本文所选的三种模型,水深反演结果最优的是网格搜索+XGBoost模型。与常用的比值模型和GBDT模型进行比较,网格搜索+XGBoost模型的R2较高,RMSE和MAE指数较小,表现出较强的相关性,反演精度更高。
对启东恒大海上威尼斯区域GF-1遥感影像应用网格搜索+XGBoost回归模型进行水深反演,结果如图4所示。反演结果显示,其在5 m以浅水域精度较高,优于当前遥感水深反演的精度要求。
图4 恒大威尼斯内海水深反演结果【审图号:GS(2022)2235号】
3 结束语
本文在国内外水深遥感反演研究的基础上,以GF-1卫星遥感影像为实验数据,首次将网格搜索+XGBoost模型用于启东恒大威尼斯浅海区域水深遥感反演。通过提取地物的光谱信息,结合实测水深点,构建网格搜索+XGBoost反演模型、GBDT反演模型和双波段比值模型进行水深反演,有以下结论。
1)在对研究区域进行水深反演时,传统的波段比值模型算法简单,过程易实现,但精度低,不能很好地反演复杂的水下地形。
2)GBDT模型通过对多个参数进行调试,能取得较好的反演效果,但其结果更多的取决于操作人员的主观选择。
3)使用网格搜索调整参数后的XGBoost模型预测精度更高,效率更快,其评价指标R2为0.820,RMSE为0.247,MAE为0.134,精度均高于其他两种算法,具有较好反演效果和使用价值。并且,该模型的诸多训练参数不需要人为设置,减少了人为因素的干预,提高了反演精度。但其耗时较长,需要遍历所有的参数组合,直至找到最佳参数组合。
在遥感水深反演领域,对于不同研究区域的输入层特征向量没有特定的参考依据。本文结合传统波段比值线性回归模型中的输入参数,将GF-1遥感影像多光谱的四个波段以及四个波段之间的比值作为输入层,具有一定经验性和主观性。因此,后续工作将考虑增加其他相关因子参与模型的建立,比如悬沙参数因子和叶绿素参数因子,从而提高反演精度,为探测海底地形和军事安全等方面提供有力参考。