system: [SYSTEM]

user: 2. 回归模型 我们做出如下假设： 假设I：所要求得的回归曲线可以通过低通滤波获得其频域的主频范围。由数字信号处理的相关知识可知，时限信号的频域不可能为带限信号，即由目标函数采样而来的数据集在频域无绝对带宽。又考虑到一般要求得到的回归函数的泛化能力，回归函数应为较简单曲线，所以目标函数频域的主频范围可通过低通滤波获得。 假设II：数据集足够大。这里数据集足够大是指对于自变量的最小值 x 0 ，每个间隔点上 x 0 + n T (其中T为自变量最小间隔， )都存在数据点。 2.1. 基于Sinc的线性回归 2.1.1. 代价函数最小化 定义 x ( k ) ( k = 0 ， 1 ⋯ ， m ) 为第k个自变量的值，且满足 x ( k ) = x ( 1 ) + ( k − 1 ) T 。假定 x ( k ) 上有p个数据点 则 x ( k ) 上的代价函数为： J ( θ ) k = 1 p ∑ i = 1 p 1 2 ( h θ ( x ( k ) ) − y k ( i ) ) 2 (1) 1) 中 h θ ( x ( k ) ) 表示最终的回归函数在 x ( k ) 上对应因变量的值。 d J ( θ ) k d h θ ( x ( k ) ) = 1 p ∑ i = 1 p ( h θ ( x ( k ) ) − y k ( i ) ) = h θ ( x ( k ) ) − ∑ i = 1 p y k ( i ) p = 0 h θ ( x ( k ) ) = ∑ i = 1 p y k ( i ) p = y k (2) 由(2)可知，当回归函数经过每一个自变量 x ( k ) 上数据的平均值点时，该点处代价函数将最小。又因为总的代价函数为每个自变量点上代价函数的加和，所以当回归函数经过每个自变量上因变量的均值点时，总的代价函数达到最小。 这里，我们称使代价函数最小的每个自变量上的点成为最优点，用 x [ n ] 表示： x [ n ] = y k   ( n = k = 1 ， 2 ， 3 ， ⋯ ) (3) 我们称经过最优点的回归曲线(函数)为最优曲线(最优函数)，用 f ( x ) 表示。 2.1.2. 基于低通滤波的时域重构 为了方便用数字信号处理知识进行相关推导，我们在此用t代替自变量x，用 Ω 表示其对应频域变量。 F的傅里叶变换为： F ( f ) = ∫ e − 2 π j ( x Ω ) f ( x ) d x (4) 令 T s 表示数据集中自变量t间的最小间隔， x a ( t ) 为最优曲线 f ( x ) 的原函数。 为了方便表述，以下用带限信号举例(非带限信号整个过程不变)。 下图为最优曲线采样时，时域与频域的变换情况，其中A、B、C表示时域，a、b、c表示频域，且C中采样后的时域数据即为由数据集得来的最优点。 图1中B到C的采样过程： δ T ( t ) = ∑ n = − ∞ ∞ δ ( t − n T ) (5) x d ( t ) = x a ( t ) δ T ( t ) = ∑ n = − ∞ ∞ x a ( n T ) δ ( t − n T ) (6) 由于时域离散化，对应频域周期化，所以频域对应b到c变化： 图1. 最优曲线的采样过程中时域、频域变化情况 X d ( j Ω ) = 1 T s ∑ k = − ∞ ∞ X a ( j ( Ω − k Ω 0 ) ) (7) 在c的基础上，经过低通滤波，可以得到最优函数频域的主频频范围。在假设I和假设II的前提下， Ω s 2 可以包含最优函数频域的主频范围。低通滤波器的频域表达式如下： H r ( j Ω ) = { T ，       | Ω | ≤ Ω s / 2 0 ，         | Ω | > Ω s / 2 Ω s 2 = π T s 上述低通滤波的过程，在频域表现为： X d ( j Ω ) × H r ( j Ω ) . 对应如图2。。 则对应时域为： x a ( t ) = x d ( t ) ∗ h r ( t ) = ∑ n = − ∞ ∞ x a ( n T s ) h r ( t − n T s ) = ∑ n = − ∞ ∞ x [ n ] h r ( t − n T s ) (8) 其中： h r ( t ) = 1 2π ∫ − ∞ ∞ H r ( j Ω ) e j Ω t d Ω = T 2π ∫ − Ω s / 2 Ω s / 2 e j Ω t d Ω = sin ( Ω s t / 2 ) Ω s t / 2 ，             − ∞ ≤ t ≤ ∞ (9) 由图1流程，在我们假定A中最优曲线存在的前提下，可以由数据集与公式(2)得到C中各个最优点。此时要求得时域原函数只需根据数据自变量间最小间隔 T s 对应的Sinc函数(Sinc函数图形如图4)进行时域重构。重构后的时域图像如图3。 图2. 由低通滤波获得主频范围 图3. 时域重构 图4. Sinc 2.1.3. 基于DTFT基本公式的时域重构 更纯粹的公式推导如下： x a ( t ) 的正反傅里叶变换： X a ( j Ω ) = ∫ t = − ∞ ∞ x a ( t ) e ( − j Ω t ) d t x a ( t ) = 1 2π ∫ Ω = − ∞ ∞ X ( Ω ) e ( j Ω t ) d Ω = 1 2π ∫ Ω = − Ω 0 Ω 0 X ( Ω ) e ( j Ω t ) d Ω (10) x[n]的正反DTFT变换： X ( ω ) = ∑ n = − ∞ ∞ x [ n ] e ( − j ω n ) x [ n ] = 1 2π ∫ ω = − π π X ( ω ) e ( j ω n ) d ω (11) 其中 ω = Ω T s 。 假定 X a ( j Ω ) = X ( ω ) . x [ n ] = 1 2π ∫ ω = − π π X ( ω ) e ( j ω n ) d ω = 1 2π ∫ ω = − π π X ( Ω ) e ( j Ω T s ) d Ω T s = T s x ( n T s ) (12) 得 X ( ω ) = X a ( j Ω ) T s . x a ( t ) = 1 2π ∫ Ω = − ∞ ∞ X ( Ω ) e ( j Ω t ) d Ω = T s 2π ∫ ω = − π π X ( ω ) e ( j ω t T s ) d ω T s = T s 2π ∫ ω = − π π ( ∑ n = − ∞ ∞ x [ n ] e ( − j ω n ) ) e ( j ω t T s ) d ω T s = T s 2 π ∑ n = − ∞ ∞ x [ n ] ( ∫ ω = − π π e ( − j ω n ) e ( j ω t T s ) d ω T s ) = ∑ n = − ∞ ∞ x [ n ] sin ( ( t − n T s ) π T s ) ( t − n T s ) π T s = ∑ n = − ∞ ∞ x [ n ] h r ( t ) (13) 可以看出由DTFT推导的时域重构结果与低通滤波原理的时域重构结果相同，且在由数据集经量化等处理过程后，在仅知道最小数据间隔 T s 的情况下，就可以求出使代价函数最小的回归函数。 2.1.4. 基于Sinc函数的线性回归算法步骤 基于Sinc函数的线性回归算法沿用传统的代价函数公式(1)，但不再进行自变量与因变量形式的代换，也不再训练自变量前的系数。其算法的具体步骤如下： 输入：数据矩阵 x 1 × a ，其中a代表a个数据； y 1 × a 。 输出：因变量预测值 y . 算法步骤： 对x操作，适当量化，求出尽可能小的自变量间隔，放入T，同时将不同自变量按间隔以从小到大顺序放入 x 1 × N ，这里假定在间隔T时，有N个不同自变量。 根据 x 1 × N ，将y变为 y m × N ，其中m代表每个不同自变量上m个因变量的值。 1) 求出每个自变量上的最优点，对y做如下操作： for i = 1:N 对 y m × N 第i列加和除以m，放入x[i]中 end for。 2) 将T带入公式(9)求出相应Sinc函数。 3) 最优点分别与4)中所得Sinc函数相乘并累加，得y。 4) 算法结束。 时间复杂度： T ( n ) = O ( a + N ) (14) 2.2. 基于Sinc的逻辑回归 2.2.1. 旋转 为了方便陈述基于Sinc函数的逻辑回归算法思想，以二分类问题为例，且令每个自变量上，两类因变量个数相当。当不满足该条件时，对数据集进行适当旋转，以使数据集尽量满足该条件。以图5和图6为例。 2.2.2. 代价函数最小化 C o s t ( h θ ( x ) ， y ) = { − log ( 1 − h θ ( x ) ) ，     if   y = 0 − log ( h θ ( x ) ) ，             if   y = 1 (15) 图5. 入学成绩数据 [ 8 ] 图6. 逆时针旋转60˚ h θ ( x ) = sigmoid ( z ) = 1 1 + e − z z = W T X (16) 从公式(15)可以看出，当 y = 1 时 h θ ( x ) 越接近1，代价函数越小；当 时， h θ ( x ) 越接近0代价函数越小。 由图7可以看出，z越大h越大，为了使z尽可能的大，应满足当z = 0时，数据点尽可能的远离 z = f ( x 1 ， x 2 ) 在x 1 Ox 2 上的投影。这里我们称该投影为边界函数，其中 x 1 ， x 2 分别表示两种自变量。 2.2.3. 确定边界函数 为了使用和线性回归相同的原理，我们需要找到使代价函数最小的边界函数上的点 x 0 k 。当 x 1 i 被确定， x 0 k 表示 x 2 i 的数值。 假设当 x 1 ( i ) = x 1 ( k )   ( k = 0 ， 1 ， ⋯ ， m ) 时，有p个 x 2 i 在 x 1 k 上，其中m表示满足假设Ⅰ的 x 1 个数。 对每个 x 1 k ，我们应当使得所有 x 2 i 离边界函数尽可能的远。所以定义如下距离函数: distince k = ∑ i = 1 p ( x 2 i − x 0 k ) 2 (17) 我们需要使每一类数据公式(17)的值尽可能的大，又由于每个 x 1 i 上有两类数据，可得图8。 图中蓝色的线代表y = 0的距离函数值随 x 0 k 的变化情况，橘色线代表y = 1的距离函数值随 x 0 k 变化的情况；实线之外代表不存在数据点的部分，红色点和绿色点仅表示曲线的趋势；红色“x”表示y = 0的数据的 x 2 在 x 1 k 上的均值；绿色“x”表示y = 1的数据的 x 2 在 x 1 k 上的均值。 当y = 0的一部分 x 2 i 大于 x 0 k 时，它们将对距离函数值做负贡献；同样，当y = 1的一部分 x 2 i 小于 x 0 k 时，它们也将对距离函数值做负贡献。假设一共有q个做出负贡献的点，我们可以得到如下新的距离函数： 图7. Sigmoid函数 图8. 距离函数 distince k = ∑ i = 1 p − q ( x 2 i − x 0 k ) 2 − ∑ j = 1 q ( x 2 i − x 0 k ) 2 (18) 对于此处讨论的逻辑回归问题，由于之前假定y = 0与y = 1在每个 x 1 上个数相当。在求 x 0 k 时，我们令两类距离函数值相等。 ∑ i = 1 p 2 ( x 2 1 i − x 0 k ) 2 = ∑ j = 1 p 1 ( x 2 0 j − x 0 k ) 2 x 0 k = ( 2 x 0 ¯ p 1 − 2 x 1 ¯ p 2 ) ± ( 2 x 0 ¯ p 1 − 2 x 1 ¯ p 2 ) 2 − 4 ( p 1 − p 2 ) N 2 ( p 1 − p 2 ) x 0 ¯ = ∑ j = 1 p 1 x 2 0 j p 1 x 1 ¯ = ∑ i = 1 p 2 x 2 1 i p 2 N = ∑ j = 1 p 1 ( x 2 0 j ) 2 − ∑ i = 1 p 2 ( x 2 1 i ) 2 (19) 其中 x 2 0 i 代表y = 0的数据， x 2 1 i 代表y = 1的数据。 2.2.4. 基于Sinc函数的逻辑回归算法步骤 基于Sinc的逻辑回归算法关键在于找到使代价函数最小的边界函数上的点，再对这些点进行“时域重构”。其算法的具体步骤如下： 输入：数据矩阵 x 2 × a ，其中a代表a个数据， x 2 × a 为一个2 × a大小的矩阵，每一行为一个自变量，两个自变量分别表示为x 1 、x 2 ； y 1 × a 。 输出：因变量预测值边界函数。 算法步骤： 1) 对 x 2 × a 进行旋转操作，使得每个 x 1 上两类 x 2 数量尽可能相当。 2) 对 x 1 操作，适当量化，求出尽可能小的自变量间隔，放入T，同时将不同自变量按间隔以从小到大顺序放入 x 1 1 × N ，这里假定在间隔T时，有N个不同自变量 x 1 。 3) 根据 x 1 1 × N ，将 x 2 变为 x 2 m × N ，其中m代表每个不同自变量上m个 x 2 的值。 4) 求出每个 x 1 上的边界函数上的点，对 x 2 做如下操作： for i = 1:N 对 x 2 m × N 第i列加和除以m，放入x[i]中 end for。 5) 将T带入公式(9)求出相应Sinc函数。 6) 最优点分别与4)中所得Sinc函数相乘并累加，得边界函数。 7) 算法结束。 时间复杂度与基于Sinc的线性回归基本相当在不考虑旋转等步骤的情况下，可以近似为 T ( n ) = O ( a + k ) 。