אלגוריתם לויד- מקס הוא אלגוריתם המאפשר למזער את השגיאה הריבועית הממוצעת בקוונטיזציה .
קוונטיזציה אחידה ושגיאת קוונטיזציה
בקוונטיזציה אחידה, בהינתן N, מספר הרמות שאליהן אנו מחלקים את הטווח, מספיק לקבוע את רמת הקוונטיזציה הראשונה ואת ההפרש בין הרמות, וכך הקוונטיזציה נקבעת חד חד ערכית. אולם, הדבר מגביל אותנו מבחינת שגיאת הקוונטיזציה אותה ניתן להשיג. נרצה להשיג חופש גדול יותר בבחירת מדרגות הקוונטיזציה וערכיהן בשביל לקבל שגיאה נמוכה יותר.
M
S
E
=
∫
−
∞
a
1
(
x
−
x
1
)
2
f
x
(
x
)
d
x
+
∑
i
=
2
N
∫
a
i
−
2
a
i
(
x
−
x
i
)
2
f
x
(
x
)
d
x
+
∫
a
N
−
1
∞
(
x
−
x
N
)
2
f
x
(
x
)
d
x
+
{\displaystyle \mathrm {MSE} =\int \limits _{-\infty }^{a1}(x-x_{1})^{2}f_{x}(x)dx+\textstyle \sum _{i=2}^{N}\int \limits _{a_{i-2}}^{a_{i}}(x-x_{i})^{2}f_{x}(x)dx+\int \limits _{a_{N-1}}^{\infty }(x-x_{N})^{2}f_{x}(x)dx+\textstyle \displaystyle }
נחשב את
x
i
{\displaystyle x_{i}}
ו-
a
i
{\displaystyle a_{i}}
האופטימליים:
עבור
a
i
{\displaystyle a_{i}}
, נגזור ונשווה ל-0:
d
M
S
E
d
a
i
=
f
x
(
a
i
)
[
(
a
i
−
x
i
)
2
−
(
a
i
−
x
i
+
1
)
2
]
=
0
{\displaystyle {dMSE \over da_{i}}=f_{x}(a_{i})[(a_{i}-x_{i})^{2}-(a_{i}-x_{i+1})^{2}]=0}
(שכן,
d
d
b
∫
a
b
g
(
x
)
d
x
=
g
(
b
)
,
d
d
a
∫
a
b
g
(
x
)
d
x
=
g
(
a
)
{\displaystyle {d \over db}\int \limits _{a}^{b}g(x)dx=g(b),\qquad {d \over da}\int \limits _{a}^{b}g(x)dx=g(a)}
)
ואזי, נקבל
a
i
{\displaystyle a_{i}}
האופטימלי:
a
i
=
x
i
+
x
i
+
2
2
{\displaystyle a_{i}={x_{i}+x_{i+2} \over 2}}
עבור
x
i
{\displaystyle x_{i}}
, נגזור ונשווה ל-0:
d
M
S
E
d
a
i
=
2
∫
a
i
−
1
a
i
(
x
i
−
x
)
f
x
(
x
)
d
x
=
0
{\displaystyle {dMSE \over da_{i}}=2\int \limits _{a_{i-1}}^{a_{i}}(x_{i}-x)f_{x}(x)dx=0}
x
i
∫
a
i
−
1
a
i
f
(
x
)
d
x
=
∫
a
i
−
1
a
i
x
f
(
x
)
d
x
{\displaystyle x_{i}\int \limits _{a_{i-1}}^{a_{i}}f(x)dx=\int \limits _{a_{i-1}}^{a_{i}}xf(x)dx}
ואזי, נקבל
x
i
{\displaystyle x_{i}}
האופטימלי:
x
i
=
∫
R
i
x
f
(
x
)
d
x
∫
R
i
f
(
x
)
d
x
{\displaystyle x_{i}={\int \limits _{R_{i}}xf(x)dx \over \int \limits _{R_{i}}f(x)dx}}
כאשר:
R
i
∈
{
a
i
−
1
,
a
i
}
{\displaystyle R_{i}\in \left\{{a_{i-1}},{a_{i}}\right\}}
אלגוריתם Lloyd- Max
- קבע בצורה שרירותית ואחידה את
R
i
{\displaystyle R_{i}}
עבור
i
=
1
,
.
.
.
,
N
{\displaystyle i=1,...,N}
.
- בצע בצורה איטרטיבית עד התכנסות:
x
i
=
∫
R
i
x
f
(
x
)
d
x
/
∫
R
i
f
(
x
)
d
x
,
i
=
1
,
.
.
.
,
N
{\displaystyle x_{i}=\int \limits _{R_{i}}xf(x)dx/\int \limits _{R_{i}}f(x)dx,\qquad i=1,...,N}
a
i
=
x
i
+
x
i
+
2
2
,
i
=
1
,
.
.
.
,
N
{\displaystyle a_{i}={x_{i}+x_{i+2} \over 2},\qquad i=1,...,N}
לא בהכרח מתכנס למינימום מוחלט (יכולים להיתקע במינימום מקומי)
כאמור, אלגוריתם זה נותן קוונטיזציה
(
a
i
,
x
i
)
{\displaystyle (a_{i},x_{i})}
ישנן טבלאות עבור התפלגות גאוסית
N
(
0
,
1
)
{\displaystyle N(0,1)}
עבור ערכי N שונים.
במקרים שהתוחלת היא
μ
{\displaystyle \mu }
, אזי:
a
i
^
=
a
i
+
μ
x
i
^
=
x
i
+
μ
{\displaystyle {\widehat {a_{i}}}=a_{i}+\mu \qquad {\widehat {x_{i}}}=x_{i}+\mu }
ובמקרים שהשונות היא
σ
2
{\displaystyle \sigma ^{2}}
, אזי:
a
i
^
=
a
i
σ
x
i
^
=
x
i
σ
{\displaystyle {\widehat {a_{i}}}=a_{i}\sigma \qquad {\widehat {x_{i}}}=x_{i}\sigma }
ובמקרה הכללי:
a
i
^
=
a
i
σ
+
μ
x
i
^
=
x
i
σ
+
μ
M
S
E
^
=
σ
2
⋅
M
S
E
{\displaystyle {\widehat {a_{i}}}=a_{i}\sigma +\mu \qquad {\widehat {x_{i}}}=x_{i}\sigma +\mu \qquad {\widehat {MSE}}=\sigma ^{2}\cdot MSE}
דוגמאות
הפונקציה הראשונה
דוגמה להתכנסות אלגוריתם לויד- מקס למינימום לוקלי:
נניח N=2. בתמונה משמאל ניתן לראות את
f
x
(
x
)
{\displaystyle f_{x}(x)}
.
a
1
=
x
1
+
x
2
2
{\displaystyle a_{1}={x_{1}+x_{2} \over 2}}
, וכן מתקיימים התנאים לLloyd Max.
הפונקציה השנייה למרות שקיימנו את תנאי Lloyd Max, קיבלנו מינימום לוקלי.
פתרון טוב יותר היה הפונקציה התחתונה:
לפי תנאי 1 באלגוריתם, מקבלים את הערך של
x
2
{\displaystyle x_{2}}
והוא יהיה יותר קרוב למלבן הרחב בציור הראשון.
ראו גם
קישורים חיצוניים
20994193 אלגוריתם לויד-מקס