1. 什么条件下两条曲线最相似
那肯定是在定义域[a, b]中,两条曲线完全重合。用数学语言
∀
x
∈
[
a
,
b
]
,
f
1
(
x
)
=
f
2
(
x
)
\forall x \isin [a, b], f_1(x) =f_2(x)
∀x∈[a,b],f1(x)=f2(x)或者
∀
x
∈
[
a
,
b
]
,
f
1
(
x
)
−
f
2
(
x
)
=
0
(1)
\forall x \isin [a, b], f_1(x) -f_2(x)=0 \tag{1}
∀x∈[a,b],f1(x)−f2(x)=0(1) 然而,
∀
\forall
∀符号是不利于我们计算的,因此我们希望能用一个不带条件的等式来表达(1)式的内容,因此就有了:
∫
a
b
∣
f
1
(
x
)
−
f
2
(
x
)
∣
d
x
=
0
(2)
\int_a^b |f_1(x) -f_2(x)| dx =0 \tag{2}
∫ab∣f1(x)−f2(x)∣dx=0(2) 可以看到,(2)和(1)是完全等价的。
值得注意的是,(2)式里面的绝对值符号||是不能去掉的,这个应该很容易理解。
但是由于绝对值函数在数学上不是连续可导的,因此常用平方的方法,来代替绝对值。 这里我们就把求绝对值得差改成了求两个函数值的二范数
L
2
N
o
r
m
L_2Norm
L2Norm
∫
a
b
[
f
1
(
x
)
−
f
2
(
x
)
]
2
d
x
=
0
(3)
\int_a^b [f_1(x) -f_2(x)]^2 dx =0 \tag{3}
∫ab[f1(x)−f2(x)]2dx=0(3)
很明显,(1)(2)(3)都是完全等价的。
但是,并不是所有的曲线都能完全重合,即随便选出两条曲线, L o s s ( f 1 , f 2 ) = ∫ a b [ f 1 ( x ) − f 2 ( x ) ] 2 d x (4) Loss(f_1, f_2) = \int_a^b [f_1(x) -f_2(x)]^2 dx \tag{4} Loss(f1,f2)=∫ab[f1(x)−f2(x)]2dx(4) 其损失函数Loss很大程度不可以等于0(比如上面图片中的 l o g 2 ( 1 + x ) log_2(1+x) log2(1+x)和 x x x在[0, 1]区间之中)。因此,我们希望能够通过某种手段,使得两条曲线最相似。
2. 怎么才能使两条曲线最相似
有了判断两条曲线相似度的准则(即损失函数) ,我们通过什么手段能够尽量让两条曲线更相似呢?一个很自然的方法就是,固定第一条曲线
f
1
(
x
)
f_1(x)
f1(x)不动,通过上下平移
f
2
(
x
)
f_2(x)
f2(x)使得平移后的曲线和
f
1
(
x
)
f_1(x)
f1(x)达到最相似的状态。数学表达式也就是求
L
o
s
s
(
f
1
,
f
2
n
e
w
)
Loss(f_1, f_2new)
Loss(f1,f2new)的最小值
M
i
n
(
L
o
s
s
(
f
1
,
f
2
n
e
w
)
)
Min(Loss(f_1, f_2new))
Min(Loss(f1,f2new))。
这里的
f
2
n
e
w
=
f
2
+
α
,
α
∈
C
f_2new = f_2 + \alpha, \alpha \isin C
f2new=f2+α,α∈C,也就是
α
\alpha
α是一个为常量的平移值。可以理解为,通过将
f
2
f_2
f2上下平移
α
\alpha
α(
α
\alpha
α为正就是向上,为负就是向下)个单位后,
f
2
n
e
w
f_2new
f2new达到和
f
1
(
x
)
f_1(x)
f1(x)最相似的状态。
因此,我们的目的是求
M
i
n
(
L
o
s
s
(
f
1
,
f
2
)
)
Min(Loss(f_1, f_2))
Min(Loss(f1,f2))
=
M
i
n
(
∫
a
b
[
f
1
(
x
)
−
(
f
2
(
x
)
+
α
)
]
2
d
x
)
(5)
= Min(\int_a^b [f_1(x) - (f_2(x)+ \alpha)]^2 dx) \tag{5}
=Min(∫ab[f1(x)−(f2(x)+α)]2dx)(5)
怎么求最小值呢,当然就需要借助数学工具了。还记得我们怎么求极小值么,让其导函数等于0!!!
L
o
s
s
′
(
f
1
,
f
2
)
)
Loss'(f_1, f_2))
Loss′(f1,f2))
=
(
∫
a
b
[
f
1
(
x
)
−
(
f
2
(
x
)
+
α
)
]
2
d
x
)
′
=(\int_a^b [f_1(x) - (f_2(x)+ \alpha)]^2 dx)'
=(∫ab[f1(x)−(f2(x)+α)]2dx)′
=
2
×
(
∫
a
b
[
f
1
(
x
)
−
f
2
(
x
)
−
α
]
d
x
)
=2\times (\int_a^b [f_1(x) - f_2(x) - \alpha] dx)
=2×(∫ab[f1(x)−f2(x)−α]dx)
=
2
×
(
∫
a
b
[
f
1
(
x
)
−
f
2
(
x
)
]
d
x
−
α
x
∣
x
=
a
x
=
b
)
(6)
=2\times (\int_a^b [f_1(x) - f_2(x)] dx - \alpha x \biggm\vert_{x=a}^{x=b}) \tag{6}
=2×(∫ab[f1(x)−f2(x)]dx−αx∣∣∣∣x=ax=b)(6)
令(6)式=0
2
×
(
∫
a
b
[
f
1
(
x
)
−
f
2
(
x
)
]
d
x
−
α
x
∣
x
=
a
x
=
b
)
=
0
2\times (\int_a^b [f_1(x) - f_2(x)] dx - \alpha x \biggm\vert_{x=a}^{x=b})=0
2×(∫ab[f1(x)−f2(x)]dx−αx∣∣∣∣x=ax=b)=0
∫
a
b
[
f
1
(
x
)
−
f
2
(
x
)
]
d
x
=
α
x
∣
x
=
a
x
=
b
\int_a^b [f_1(x) - f_2(x)] dx = \alpha x \biggm\vert_{x=a}^{x=b}
∫ab[f1(x)−f2(x)]dx=αx∣∣∣∣x=ax=b
∫
a
b
[
f
1
(
x
)
−
f
2
(
x
)
]
d
x
=
α
×
(
b
−
a
)
\int_a^b [f_1(x) - f_2(x)] dx = \alpha \times (b-a)
∫ab[f1(x)−f2(x)]dx=α×(b−a)
α
=
∫
a
b
[
f
1
(
x
)
−
f
2
(
x
)
]
d
x
b
−
a
(7)
\alpha = \cfrac{\int_a^b [f_1(x) - f_2(x)] dx}{b-a} \tag{7}
α=b−a∫ab[f1(x)−f2(x)]dx(7)
我们发现了什么,
α
\alpha
α的意义就是
两
条
曲
线
差
值
的
积
分
(
或
者
说
是
与
x
轴
围
成
的
图
形
面
积
)
区
间
长
度
\cfrac{两条曲线差值的积分(或者说是与x轴围成的图形面积)}{区间长度}
区间长度两条曲线差值的积分(或者说是与x轴围成的图形面积) 这可太符合我们直觉了吧!至此,我们就完成了两条曲线相似性的全部探究!
3. 结论
有了两条曲线 f 1 ( x ) , f 2 ( x ) ∈ [ a , b ] f_1(x), f_2(x) \isin[a, b] f1(x),f2(x)∈[a,b],我们只需要算一下其差值的积分: ∫ a b L o s s ( f 1 ( x ) , f 2 ( x ) ) \int_a^b Loss(f_1(x), f_2(x)) ∫abLoss(f1(x),f2(x)) 再除以区间长度 b − a b-a b−a,便是我们需要将 f 2 ( x ) f_2(x) f2(x)上下平移的常量 α \alpha α了。