べき乗関数を介してファジー最大値を表すことができることを知っています(ニューラルネットワークで必要です)つまり
def max(p:Double)(a:Double,b:Double) = pow(pow(a,p) + pow(b,p) , 1/p) // 仮定 a >=0 かつ b >=0
p -> 無限大のとき最大になり、p = 1 のとき和になります。
ファジー最小値を正しく実装する方法がわからない。
べき乗関数を介してファジー最大値を表すことができることを知っています(ニューラルネットワークで必要です)つまり
def max(p:Double)(a:Double,b:Double) = pow(pow(a,p) + pow(b,p) , 1/p) // 仮定 a >=0 かつ b >=0
p -> 無限大のとき最大になり、p = 1 のとき和になります。
ファジー最小値を正しく実装する方法がわからない。
p=1 の場合に「合計」を「高調波合計」に置き換えたい場合は、次を使用できます。
1/(pow(pow(a,-p) + pow(b,-p),1/p))
p が無限大になると、これは min(a,b) に収束します。
p=1 の場合、それは 1/(1/a + 1/b) であり、調和平均に関連していますが、係数 2 はありません。元の式と同様に、a+b は算術平均に関連していますが、 2の係数。
ただし、これらの式 (あなたの式と私の式) は両方とも、a と b が互いに接近している場合、p が無限大になるにつれて極限に収束するのが非常に遅くなることに注意してください。