目录
[1 径向基函数](#1 径向基函数)
[1.1 数学](#1.1 数学)
[1.2 插值](#1.2 插值)
[1.3 机器学习](#1.3 机器学习)
[2 WeatherBench 实践--环境设置](#2 WeatherBench 实践--环境设置)
[3 总结](#3 总结)
摘要
本周主要学习了径向基函数的相关知识,了解了它的核心思想、常见类型以及它在数学、机器学习等领域的应用;其次,对 weatherbench 进行了使用尝试,主要是配置了对应的环境,为后续比较做好准备。
Abstract
This week, I primarily focused on learning about Radial Basis Functions (RBFs), gaining an understanding of their core concepts, common types, and their applications in fields such as mathematics and machine learning. Secondly, I attempted to use WeatherBench, mainly by setting up the corresponding environment in preparation for subsequent comparisons.
1 径向基函数
径向基函数(RBF)使用一个仅与距离有关的函数(如高斯函数)作为基函数进行拟合,它的核心思想是数据的相似度或影响随距离的增大而衰减。 这一点和许多传统模型,比如 RNN 与基于位置的注意力,有相似之处。
1.1 数学
从数学上来看,如果一个函数 被称为径向基函数,那么其值仅依赖于从原点出发的径向距离,而与方向无关,即该函数是径向对称的。
其标准形式为:
更一般地,以任意点 c (中心)为参照:
其中, 代表欧几里得范数;
代表一个从非负实数到实数的单变量函数。
径向基函数包括许多类型,常见的有高斯函数、多二次函数、薄板样条等等。高斯函数数学性质优良,理论完备,但计算指数函数较慢,形状参数选择敏感,通常用于RBF网络、函数逼近等场景;多二次函数主要用于地形建模、散乱数据插值,逆二次和逆多二次则主要用于插值问题与需要比高斯更重尾的分布时;薄板样条模拟薄金属板在约束点下的弯曲,主要应用在图像变形、曲面重建、坐标变换等场景。当然,除此之外,还有比如球面函数、正弦基数函数等许多,在此不一一介绍。
1.2 插值
径向基函数的一个重要应用就是解决多元散乱数据插值问题,即给定一组数据点( )和对应的函数值(
),希望找到一个函数 f 满足
使用径向基函数,则可以构造如下形式的插值函数:
进而需要求解下述方程组:
其中 是权重系数。若记矩阵 A 的元素
,在适当条件下(例如矩阵正定,对应正定径向基函数),该方程组有唯一解。
径向基函数之所以能够解决多元散乱数据插值问题,一方面在于它相较于传统方法对数据分布的要求更低,传统方法要求数据点排列成规整网格,而 RBF 可以处理任意分布,无论稠密或稀疏。另一方面它的公式在任意维度下都有定义,可以方便地扩展到更高维度空间,不过在超高维空间--维度大于 50--它的效果也会下降。
另外,在数据区域边界外,RBF 插值可能表现异常,它的结果对形状参数的选择也十分敏感。
1.3 机器学习
而在机器学习中,径向基函数通常特指一类使用 RBF 作为激活函数的三层前馈神经网络(RBF网络)中的基本单元。
其隐藏层第 j 个神经元的输出为:
此时, 是一个典型的局部响应函数,最常用的是高斯函数,其形式如下:
它主要包括 与
两个参数。前者作为中心,决定了该神经元在输入空间中响应的位置;后者则控制着函数的平滑度和影响范围,其值越大,函数越窄,对局部区域也越敏感。
整个 RBF 网络的输出是所有神经元输出的线性组合:
RBF 网络的训练通常分为无监督与有监督两个阶段。在无监督阶段,先根据输入数据利用某种方法(如 K-means)确定隐藏层中心 ,再根据中心间距或经验规则设置
;在有监督阶段,先固定前面的两个参数,计算所有训练样本的隐藏层输出矩阵,进而得到最优权重与偏置。
2 WeatherBench 实践--环境设置
本周对上周了解到的 WeatherBench 平台进行初步实践使用。其 GitHub 链接如下:GitHub - pangeo-data/WeatherBench: A benchmark dataset for data-driven weather forecasting
首先,安装 Git ,链接:Git---Install for Windows ;
p.s. Git 的主要功能包括克隆(Clone,从远程仓库复制项目到本地)、提交(Commit,将更改保存到本地仓库)、推送(Push,将本地提交上传到远程仓库)、拉取(Pull,从远程仓库下载更新)与分支(Branch,创建独立开发线),下载便于其他复现开发工作;
其次,克隆 WeatherBench 仓库。
首次尝试时报错如下:

于是尝试克隆一个较小的仓库来测试 git 是否工作正常:

结果显示 git 工作正常。
认为可能是仓库较大导致报错,于是设置更大的 postBuffer (缓冲区大小),最终成功克隆:

接着,根据项目要求文件创建对应的虚拟环境。
但发现处理已有包依赖关系以确保程序包能够正常安装及使用这一过程用时较长,表现为卡在 solving environment 时间较长:

这种情况出现一方面可能是因为当前环境中有多个已安装的包,依赖关系复杂,另一方面就可能是因为网络不稳定、速度较慢。另外 Conda 的包缓存存在损坏,或者某些索引文件需要更新,也可能导致解析时间增加。
于是,首先尝试清理缓存,但效果并不明显;其次采用分步创建的方法,先创建 python 虚拟环境并激活,再分批安装需要使用的包,python但安装包时仍然较慢;接着添加清华镜像源:

但还是比较慢。最终采用 pip 进行逐个手动下载。
3 总结
本周首先学习了径向基函数的相关知识,包括其在数学、机器学习以及插值中的定义应用,下周考虑对其进行实战或接着学习克里金法;其次,对上周接触的 WeatherBench 平台进行了使用尝试,准备了环境,碰到的问题比较多,也算是为复现其他论文项目积累经验,下周考虑继续先进行数据方面的准备,顺利的话再对比不同基线模型的性能。