system: [SYSTEM]

user: 3. 仿真实验 3.1. 实验平台及噪声介绍 软件环境： 操作系统：Windows 10家庭版x64位 开发工具：Python 3、Matlab 2015b 硬件环境： 处理器：Inter i7-6700HQ@2.60 GHz 内存：8 GB 在我们的实验中，按如下方式添加噪声： noise : = τ 1 ε 1 + τ 2 ε 2 p ， (3.1) 其中 ε 1 遵循标准高斯分布， ε 2 p 是一个脉冲噪声(离群值)，定义如下： Prob ( ε 2 p = t ) = { 1 − p ，     t = 0 ， p / 2 ，       t = 1 ， p / 2 ，     t = − 1. 这里引入 τ 1 和 τ 2 来设置高斯噪声的方差和脉冲噪声的大小。在我们的实验中，我们始终设置 p = 0.1 ，即10%的样本被脉冲噪声污染。 3.2. 辛格函数下的评估 为了展现p-Huber损失函数的有效性，我们将其预测精度分别与L1损失、Huber损失、MCCR损失进行比较。首先我们选择辛格函数作为回归函数。辛格函数 [ 8 ] [ 9 ] 经常被用来举例说明回归函数。一维辛格函数的表达式如下，图像见图3。 f ( x ) = sin ( π x ) / ( π x ) ， x ∈ [ − 4 ， 4 ] 。 (3.2) 图3. 一维辛格函数图像 在实验中，首先从被高斯噪声破坏的辛格函数中抽取规模大小为100的训练集，然后我们抽取了另一个同样规模的被高斯噪声和离群值污染的训练集。在每个训练集上对辛格函数的拟合结果绘制在图4和图5中，其中黑色实线表示辛格函数，被高斯噪声污染的训练集用加号来表示，离群值用正方形来标记，橙色虚线代表p-Huber拟合的曲线，红色虚线代表MCCR拟合的曲线，蓝色虚线代表Huber拟合的曲线，绿色虚线代表L1拟合的曲线。 图4. 高斯噪声污染时不同模型对辛格函数的拟合效果图 图5. 高斯噪声和离群值污染时不同模型对辛格函数的拟合效果图 从图4中我们可以看出，当数据仅受高斯噪声污染时，这四个模型都能很好的拟合函数图像。从图5中我们可以看出，当数据受到高斯噪声和离群值的污染时，这四个模型都能成功拟合曲线，但是p-Huber拟合效果最好。 下面我们通过实验来分析在加入噪声和离群值的情况下p-Huber损失函数的参数p和 δ 对算法的影响。经过数值实验，对于拟合结果我们绘制了如下表格。在表格里，我们记录了数据集的平方误差相对和，其定义如下： RSSE ( f ^ ) = ∑ x ∈ T ( f ( x ) − f ^ ( x ) ) 2 / ∑ x ∈ T ( f ( x ) − f ¯ T ) 2 ， (3.3) 其中 f ¯ T 表示 f ( x ) 在数据集T上的均值。 Table 1 When δ = 0.7 ， different values p predict the result of Sinc functio p 0.03 0.53 1.03 1.53 2.03 RSSE 0.003112 0.004117 0.004439 0.004560 0.004698 p 2.53 3.03 3.53 4.03 4.53 RSSE 0.004778 0.004999 0.005154 0.005325 0.005504 表1. δ = 0.7 时，不同的取值p对辛格函数预测的结果 Table 2 When p = 2.53 ， different values δ predict the result of Sinc functio δ 0.7 1.7 2.7 3.7 4.7 RSSE 0.004698 0.004775 0.004775 0.004781 0.004781 δ 5.7 6.7 7.7 8.7 9.7 RSSE 0.004775 0.004780 0.004783 0.004777 0.004779 表2. p = 2.53 时，不同 δ 的取值对辛格函数预测的结果 表1显示当固定 δ 时，随着参数p的变化，实验拟合效果也不相同，这说明参数p对鲁棒性有影响。表2显示当固定p时，随着参数 δ 的变化，实验拟合结果几乎相同，这说明参数 δ 对鲁棒性几乎没有影响， δ 主要用来控制损失函数的拐点。 3.3. 弗里德曼基准函数下的评估 我们接下来考虑多维回归问题，选择了弗里德曼基准函数作为回归函数。弗里德曼基准函数 [ 10 ] 在研究回归问题时已被广泛采用，其定义如下： f 1 ( x ) = 10 sin ( π x 1 x 2 ) + 20 ( x 3 − 0.5 ) 2 + 10 x 4 + 5 x 5 ； f 2 ( x ) = ( x 1 ) 2 + ( x 2 x 3 − 1 / ( x 2 x 4 ) ) 2 ； f 3 ( x ) = arctan ( 1 / x 1 ( x 2 x 3 − 1 / ( x 2 x 4 ) ) ) 。 对于 f 1 ， x = ( x 1 ， ⋯ ， x 10 ) ，其中 x j ， j = 1 ， ⋯ ， 10 服从 [ 0 ， 1 ] 上的均匀分布， x 6 ， ⋯ ， x 10 是噪声变量。对于 f 2 和 f 3 ， x = ( x 1 ， x 2 ， x 3 ， x 4 ) 的每个坐标分别服从下列区间上的均匀分布： x 1 ∈ [ 0 ， 100 ] ， x 2 ∈ [ 40 π ， 560 π ] ， x 3 ∈ [ 0 ， 1 ] ， x 4 ∈ [ 1 ， 11 ] 。 对于每个函数，我们随机抽取1000个观测值进行训练和交叉验证，另外随机独立抽取1000个观测值作为测试集，然后根据(3.1)的方法添加噪声和离群值，一组加入了高斯噪声，另一组加入了高斯噪声和离群值。对于 f 1 我们设置 τ 1 = 1 。对于 f 2 和 f 3 ，设置 τ 1 使得信号功率与 ε 1 功率之比为3。对于无离群值的情况下，我们设置 τ 2 = 0 。对于训练集中存在离群值的四个模型，我们设置 τ 2 = max x ∈ D f ( x ) − min x ∈ D f ( x ) ，其中D是每个基准函数的定义域。对于每个回归模型，都通过均方误差下的10倍交叉验证对高斯核的宽度h，正则化参数 λ 和损失函数中的比例参数(LAD损失没有比例参数)进行了调整。我们将其残差 { y i − f ( x i ) } i = 1 100 都记录下来。对于每个回归模型，其平方误差相对和记录在表3。 Table 3 The prediction results of different models on Friedman’s benchmark functio 测试函数 有无离群值 L1 Huber MCCR p-Huber f 1 无 0.5482 0.5481 0.5419 0.4761 有 0.5512 0.5513 0.5505 0.5062 f 2 无 0.2824 0.2831 0.2972 0.0717 有 0.2836 0.2841 0.2991 0.0849 f 3 无 0.0127 0.0127 0.0128 0.0036 有 0.0163 0.0163 0.0163 0.0046 表3. 不同模型对弗里德曼基准函数的预测结果 表3中我们可以看出，当数据仅受到高斯噪声污染时，这四个模型都能很好的拟合。但当数据被离群值破坏时，所有四个模型虽然仍能拟合，但是 -Huber拟合效果相比其它三个更优。 3.4. 真实数据集下的评估 本节中我们用四个真实数据集对p-Huber损失的拟合效果进行评估。这四个真实数据集中一个来自2018年12月至2019年12月股票交易历史数据，另外三个来自机器学习数据集中的UCI数据集：Airfoil Self-Noise数据集，Concrete Compressive Strength数据集，Yacht Hydrodynamics数据集。 我们将2/3数据用作了训练，其余用作测试，并多次实验，其准确性由平方误差相对和来测量。实验结果记录在表4，其中包含了数据特征的大小d和数量m。 Table 4 The prediction results of different models on real dat 数据集 d m L1 Huber MCCR p-Huber stock market 7 251 5.086e−9 5.085e−9 5.150e−9 5.050e−9 airfoil 6 1053 2.468e−7 4.948e−7 1.131e−6 2.074e−7 concrete 9 1030 0.010043 0.010356 0.010031 0.010006 yacht 7 308 0.0030 0.0039 0.0077 0.0026 表4. 不同模型对真实数据的预测结果 表4显示在上述四个真实数据集中，基于p-Huber损失函数的学习回归算法的表现要优于其它的方法。