הרצאה 9 - גישה דיסקרימינטיבית הסתברותית

PDF

מה נלמד היום

דוגמא לבעיה בגישה הגנרטיבית פרמטרית

נסתכל שוב על הבעיה של חיזוי עסקאות שחשודות כהונאות:

התאמה של מודל QDA

py(0)=I0N=0.81p_{\text{y}}(0)=\frac{|\mathcal{I}_0|}{N}=0.81 py(1)=I1N=0.19p_{\text{y}}(1)=\frac{|\mathcal{I}_1|}{N}=0.19 μ0=1I0iI0x(i)=[55.1,54.6]\boldsymbol{\mu}_0 = \frac{1}{|\mathcal{I}_0|}\sum_{i\in \mathcal{I}_0}\boldsymbol{x}^{(i)}=[55.1,54.6]^{\top} μ1=1I1iI1x(i)=[54.4,55.2]\boldsymbol{\mu}_1 = \frac{1}{|\mathcal{I}_1|}\sum_{i\in \mathcal{I}_1}\boldsymbol{x}^{(i)}=[54.4,55.2]^{\top} Σ0=1I0i(x(i)μy(i))(x(i)μy(i))T=[350.942.942.9336]\Sigma_0 = \frac{1}{|\mathcal{I}_0|}\sum_{i}\left(\boldsymbol{x}^{(i)}-\boldsymbol{\mu}_{y^{(i)}}\right)\left(\boldsymbol{x}^{(i)}-\boldsymbol{\mu}_{y^{(i)}}\right)^T =\begin{bmatrix} 350.9 & -42.9 \\ -42.9 & 336 \end{bmatrix} Σ1=1I1i(x(i)μy(i))(x(i)μy(i))T=[817.9730.5730.5741.7]\Sigma_1 = \frac{1}{|\mathcal{I}_1|}\sum_{i}\left(\boldsymbol{x}^{(i)}-\boldsymbol{\mu}_{y^{(i)}}\right)\left(\boldsymbol{x}^{(i)}-\boldsymbol{\mu}_{y^{(i)}}\right)^T =\begin{bmatrix} 817.9 & 730.5 \\ 730.5 & 741.7 \end{bmatrix}

התאמה של מודל QDA

שגיאת החיזוי (miscalssification rate) על ה test set הינה 0.08.


התוצאה סבירה, אך ניתן לראות שגאוסיאן לא מאד מתאים לפילוג של ההונאות.

הבעיה של הגישה הגנרטיבית פרמטרית

  • היינו רוצים מודל אשר יכול לייצג בנפרד את שני האיזורים.
  • לצערנו המבחר של המודלים בהם אנו יכולים לא גדול.
  • המגבלה הזו נובעת מהצורך שהמודל ייצג פילוגים חוקיים.

הערה: במקרה זה ניתן להשתמש ב GMM + EM.

דוגמא למדגם שמתאים למודל של QDA

לצורך הדגמה נסתכל על גירסא של המדגם שבה יש רק איזור אחד של ההונאות:

מודל QDA

שגיאת החיזוי (miscalssification rate) על ה test set במקרה הזה הינה 0.

מודל LDA

רק לשם השוואה, נציג גם את התוצאה המתקבלת ממודל ה LDA:

הגישות שראינו עד כה

הגישה הדיסקרימינטיבית

מדגם

חזאי בעל ביצועים טובים על המדגם

הגישה הגנרטיבית

מדגם

הפילוג המשותף של x\mathbf{x} ו y\text{y} על סמך המדגם

חזאי אופטימלי בהינתן הפילוג המשותף

הגישה הדיסקרימינטיבית הסתברותית

ברוב פונקציות המחיר החזאי האופטימאלי יהיה תלוי רק בפילוג המותנה של y\text{y} בהינתן x\mathbf{x}.

הגישה הדיסקרימינטיבית הסתברותית

מדגם

הפילוג המותנה של y\text{y} בהינתן x\mathbf{x} על סמך המדגם

חזאי אופטימלי בהינתן הפילוג המותנה

ההתייחסות לגישה זו במקרות אחרים

  • גישה זו מוכוונת ישירות למציאת החזאי ולא מנסה ללמוד את התכונות של המדגם לכן נחשבת לגישה דיסקרימינטיבית.

  • השם גישה דיסקרימינטיבית הסתברותית לא מופיע במקרים אחרים.
  • במרבית המקרים מציינים שיש שתי גישות דיסקרימינטיבית אך לא נותנים להם שמות שונים.

שימוש במודלים פרמטריים

  • אנו נבחר מודל פרמטרי אשר יתאר את הפילוג המותנה, pyx(yx)p_{\text{y}|\mathbf{x}}(y|\boldsymbol{x}).
  • נשערך את פרמטרים של המודל בשיטות דומות לגישה הגנרטיבית (MLE ו MAP).

MLE על הפילוג המותנה

θ=argminθ i=1Nlog(px,y(x(i),y(i);θ))=argminθ i=1Nlog(pyx(y(i)x(i);θ)px(x(i)))=argminθ i=1Nlog(pyx(y(i)x(i);θ))i=1Nlog(px(x(i)))=argminθ i=1Nlog(pyx(y(i)x(i);θ))\begin{aligned} \boldsymbol{\theta}^* &=\underset{\boldsymbol{\theta}}{\arg\min}\ -\sum_{i=1}^{N}\log\left(p_{\mathbf{x},\text{y}}(\boldsymbol{x}^{(i)},y^{(i)};\boldsymbol{\theta})\right)\\ &=\underset{\boldsymbol{\theta}}{\arg\min}\ -\sum_{i=1}^{N}\log\left(p_{\text{y}|\mathbf{x}}(y^{(i)}|\boldsymbol{x}^{(i)};\boldsymbol{\theta})p_{\mathbf{x}}(\boldsymbol{x}^{(i)})\right)\\ &=\underset{\boldsymbol{\theta}}{\arg\min}\ -\sum_{i=1}^{N}\log\left(p_{\text{y}|\mathbf{x}}(y^{(i)}|\boldsymbol{x}^{(i)};\boldsymbol{\theta})\right) -\sum_{i=1}^{N}\log\left(p_{\mathbf{x}}(\boldsymbol{x}^{(i)})\right)\\ &=\underset{\boldsymbol{\theta}}{\arg\min}\ -\sum_{i=1}^{N}\log\left(p_{\text{y}|\mathbf{x}}(y^{(i)}|\boldsymbol{x}^{(i)};\boldsymbol{\theta})\right)\\ \end{aligned}
  • המשמעות היא ש אין צורך לדעת או לשערך את הפילוג של x\mathbf{x}.
  • ניתן להגיע לאותה תוצאה גם עבור משערך MAP.
  • שימו לב שהפילוג השולי של x\mathbf{x} אינו משפיע על הסיווג.

היתרון של הדיסקרימינטיבית הסתברותית

px,y(x,y)p_{\mathbf{x},\text{y}}(\boldsymbol{x},y) צריכה לקיים את התנאים הבאים:

  1. px,y(x,y;θ)0x,y,θp_{\mathbf{x},\text{y}}(\boldsymbol{x},y;\boldsymbol{\theta})\geq 0\qquad \forall \boldsymbol{x},y,\boldsymbol{\theta}
  2. px,y(x,y;θ)dxdy=1θ\int\int p_{\mathbf{x},\text{y}}(\boldsymbol{x},y;\boldsymbol{\theta})d\boldsymbol{x}dy=1\qquad \forall \boldsymbol{\theta}

עבור בעיות סיווג pyx(yx)p_{\text{y}|\mathbf{x}}(y|\boldsymbol{x}) צריכה לקיים את התנאים הבאים:

  1. pyx(yx;θ)0x,y,θp_{\text{y}|\mathbf{x}}(y|\boldsymbol{x};\boldsymbol{\theta})\geq 0\qquad \forall \boldsymbol{x},y,\boldsymbol{\theta}
  2. y=1Cpyx(yx;θ)=1x,θ\sum_{y=1}^C p_{\text{y}|\mathbf{x}}(y|\boldsymbol{x};\boldsymbol{\theta})=1\qquad \forall \boldsymbol{x},\boldsymbol{\theta}

האינטגרל על כל הערכים התחלף בסכום סופי של איברים.

נראה כעת כיצד ניתן לבנות מודלים המקיימים תנאים אלו.

סיווג בינארי

עבור התנאי השני יהיה:

pyx(0x;θ)+pyx(1x;θ)=1x,θp_{\text{y}|\mathbf{x}}(0|\boldsymbol{x};\boldsymbol{\theta})+p_{\text{y}|\mathbf{x}}(1|\boldsymbol{x};\boldsymbol{\theta})=1\qquad \forall \boldsymbol{x},\boldsymbol{\theta}

דרך פשוטה לקיים תנאי זה הינה למצוא פונקציה f(x;θ)f(\boldsymbol{x};\boldsymbol{\theta}) אשר מחזירה ערכים בין 0 ל 1 ולהגדיר את המודל באופן הבא:

pyx(1x;θ)=f(x;θ)pyx(0x;θ)=1f(x;θ)\begin{aligned} p_{\text{y}|\mathbf{x}}(1|\boldsymbol{x};\boldsymbol{\theta})&=f(\boldsymbol{x};\boldsymbol{\theta})\\ p_{\text{y}|\mathbf{x}}(0|\boldsymbol{x};\boldsymbol{\theta})&=1-f(\boldsymbol{x};\boldsymbol{\theta}) \end{aligned}

הפונקציה הלוגיסטית

σ(z)=11+ez\sigma(z)=\frac{1}{1+e^{-z}}


הערה: מקובל לכנות את הפונקציה הזו סיגמואיד (sigmoid).

הפונקציה הלוגיסטית

כל מודל פרמטרי מהצורה:

pyx(1x;θ)=σ(f(x;θ))pyx(0x;θ)=1σ(f(x;θ))\begin{aligned} p_{\text{y}|\mathbf{x}}(1|\boldsymbol{x};\boldsymbol{\theta})&=\sigma(f(\boldsymbol{x};\boldsymbol{\theta}))\\ p_{\text{y}|\mathbf{x}}(0|\boldsymbol{x};\boldsymbol{\theta})&=1-\sigma(f(\boldsymbol{x};\boldsymbol{\theta})) \end{aligned}

יהיה מודל פרמטרי חוקי עבור ff שמקבלת ערכים חיוביים ושליליים.

תכונות

  • רציפה
  • מונוטונית עולה
  • 1σ(z)=σ(z)1-\sigma(z)=\sigma(-z)
  • ddzlog(σ(z))=1σ(z)\frac{d}{d z}\log(\sigma(z))=1-\sigma(z)

Binary Logistic Regression

ב Binary Logistic Regression (כלומר, y{0,1}y\in\{0,1\}) נשתמש במודל שהצגנו קודם:

pyx(1x;θ)=σ(f(x;θ))pyx(0x;θ)=1σ(f(x;θ))\begin{aligned} p_{\text{y}|\mathbf{x}}(1|\boldsymbol{x};\boldsymbol{\theta})&=\sigma(f(\boldsymbol{x};\boldsymbol{\theta}))\\ p_{\text{y}|\mathbf{x}}(0|\boldsymbol{x};\boldsymbol{\theta})&=1-\sigma(f(\boldsymbol{x};\boldsymbol{\theta})) \end{aligned}

נמצא את הפרמטרים של המודל בעזרת MLE:

θ=argminθ i=1Nlog(pyx(y(i)x(i);θ))=argminθ i=1NI{y(i)=1}log(σ(f(x(i);θ)))+I{y(i)=0}log(1σ(f(x(i);θ)))=argminθ i=1Ny(i)log(σ(f(x(i);θ)))+(1y(i))log(1σ(f(x(i);θ)))\begin{aligned} \boldsymbol{\theta}^* &=\underset{\boldsymbol{\theta}}{\arg\min}\ -\sum_{i=1}^{N}\log\left(p_{\text{y}|\mathbf{x}}(y^{(i)}|\boldsymbol{x}^{(i)};\boldsymbol{\theta})\right)\\ &=\underset{\boldsymbol{\theta}}{\arg\min}\ -\sum_{i=1}^{N} I\{y^{(i)}=1\}\log(\sigma(f(\boldsymbol{x}^{(i)};\boldsymbol{\theta})))\\ &\qquad\qquad\qquad\qquad\qquad\qquad +I\{y^{(i)}=0\}\log(1-\sigma(f(\boldsymbol{x}^{(i)};\boldsymbol{\theta})))\\ &=\underset{\boldsymbol{\theta}}{\arg\min}\ -\sum_{i=1}^{N} y^{(i)}\log(\sigma(f(\boldsymbol{x}^{(i)};\boldsymbol{\theta}))) +(1-y^{(i)})\log(1-\sigma(f(\boldsymbol{x}^{(i)};\boldsymbol{\theta}))) \end{aligned}

Binary Logistic Regression

θ=argminθ i=1Ny(i)log(σ(f(x(i);θ)))+(1y(i))log(1σ(f(x(i);θ)))\boldsymbol{\theta}^* =\underset{\boldsymbol{\theta}}{\arg\min}\ -\sum_{i=1}^{N} y^{(i)}\log(\sigma(f(\boldsymbol{x}^{(i)};\boldsymbol{\theta}))) +(1-y^{(i)})\log(1-\sigma(f(\boldsymbol{x}^{(i)};\boldsymbol{\theta})))

במרבית המקרים לא ניתן יהיה לפתור באופן אנליטי ונחפש את הפתרון בשיטות נומריות כגון אלגוריתם ה gradient descent עליו נרחיב בהמשך ההרצאה.

הערה: בגישה הגנרטיבית שתארנו גם לא ניתן בד"כ לחשב אנליטית את פתרון הסבירות המרבית. במקרה הגאוסי זה ניתן כמו שראינו.

Binary Logistic Regression

pyx(1x;θ)=σ(f(x;θ))pyx(0x;θ)=1σ(f(x;θ))\begin{aligned} p_{\text{y}|\mathbf{x}}(1|\boldsymbol{x};\boldsymbol{\theta})&=\sigma(f(\boldsymbol{x};\boldsymbol{\theta}))\\ p_{\text{y}|\mathbf{x}}(0|\boldsymbol{x};\boldsymbol{\theta})&=1-\sigma(f(\boldsymbol{x};\boldsymbol{\theta})) \end{aligned}

עבור misclassification rate החזאי האופטימאלי יהיה:

h(x)=argmaxy pyx(yx;θ)={1σ(f(x;θ))>0.50else={1f(x;θ)>00elseh(\boldsymbol{x}) =\underset{y}{\arg\max}\ p_{\text{y}|\mathbf{x}}(y|\boldsymbol{x};\boldsymbol{\theta}) =\begin{cases} 1 & \sigma(f(\boldsymbol{x};\boldsymbol{\theta})) > 0.5 \\ 0 & \text{else} \end{cases} =\begin{cases} 1 & f(\boldsymbol{x};\boldsymbol{\theta}) > 0 \\ 0 & \text{else} \end{cases}

סיווג לא בינארי

ניתן להרחיב את השיטה לבניית מודלים באמצעות פונקציית ה softmax.

פונקציית ה Softmax

לוקחים וקטור z\boldsymbol{z} באורך CC ומייצרים ממנו וקטור אשר יכול לייצג פילוג דיסקרטי חוקי.

softmax(z)=1c=1Cezc[ez1,ez2,,ezC]\text{softmax}(\boldsymbol{z})=\frac{1}{\sum_{c=1}^C e^{z_c}}[e^{z_1},e^{z_2},\dots,e^{z_C}]^{\top}

או פונקציה עם טווח רב-ממדי:

softmax(z)i=ezic=1Cezc\text{softmax}(\boldsymbol{z})_i=\frac{e^{z_i}}{\sum_{c=1}^C e^{z_c}}

פונקציית ה Softmax

softmax(z)i=ezic=1Cezc\text{softmax}(\boldsymbol{z})_i=\frac{e^{z_i}}{\sum_{c=1}^C e^{z_c}}

תכונות

  • softmax(z+a)i=softmax(z)i i\text{softmax}(\boldsymbol{z} + a)_i=\text{softmax}(\boldsymbol{z})_i\ \forall i.
  • zjlog(softmax(z))i=δi,jsoftmax(z)j\frac{\partial}{\partial z_j} \log(\text{softmax}(\boldsymbol{z}))_i=\delta_{i,j}-\text{softmax}(\boldsymbol{z})_j

הפונקציה הלוגיסטית כמקרה פרטי

עבור וקטור באורך 2: z=[a,b]\boldsymbol{z}=[a,b], נקבל:

softmax(z)1=eaea+eb=11+eba=σ(ab)softmax(z)2=ebea+eb=1σ(ab)\begin{aligned} \text{softmax}(\boldsymbol{z})_1&=\frac{e^{a}}{e^{a}+e^{b}}=\frac{1}{1+e^{b-a}}=\sigma(a-b)\\ \text{softmax}(\boldsymbol{z})_2&=\frac{e^{b}}{e^{a}+e^{b}}=1-\sigma(a-b) \end{aligned}

(Non-Binary) Logistic Regression

עבור CC פונקציות פרמטריות כלשהן, fc(x;θc)f_c(\boldsymbol{x};\boldsymbol{\theta}_c), ניתן לבנות מודל פרמטרי חוקי באופן הבא:

pyx(yx;θ)=efy(x;θy)c=1Cefc(x;θc)p_{\text{y}|\mathbf{x}}(y|\boldsymbol{x};\boldsymbol{\theta}) =\frac{e^{f_y(\boldsymbol{x};\boldsymbol{\theta}_y)}}{\sum_{c=1}^C e^{f_c(\boldsymbol{x};\boldsymbol{\theta}_c)}}

לשם נוחות נסמן:

  • θ=[θ1,θ2,,θC]\boldsymbol{\theta}=[\boldsymbol{\theta}_1^{\top},\boldsymbol{\theta}_2^{\top},\dots,\boldsymbol{\theta}_C^{\top}]^{\top}.
  • f(x;θ)=[f1(x;θ1),f2(x;θ2),,fC(x;θC)]\boldsymbol{f}(\boldsymbol{x};\boldsymbol{\theta})=[f_1(\boldsymbol{x};\boldsymbol{\theta}_1),f_2(\boldsymbol{x};\boldsymbol{\theta}_2),\dots,f_C(\boldsymbol{x};\boldsymbol{\theta}_C)]^{\top}

נוכל לרשום את המודל הפרמטרי באופן הבא:

pyx(yx;θ)=softmax(f(x;θ))yp_{\text{y}|\mathbf{x}}(y|\boldsymbol{x};\boldsymbol{\theta}) =\text{softmax}(\boldsymbol{f}(\boldsymbol{x};\boldsymbol{\theta}))_{y}

(Non-Binary) Logistic Regression

pyx(yx;θ)=softmax(f(x;θ))yp_{\text{y}|\mathbf{x}}(y|\boldsymbol{x};\boldsymbol{\theta}) =\text{softmax}(\boldsymbol{f}(\boldsymbol{x};\boldsymbol{\theta}))_{y}

משערך ה MLE של מודל זה יהיה נתון על ידי:

θ=argminθ i=1Nlog(pyx(y(i)x(i);θ))=argminθ i=1Nlog(softmax(f(x(i);θ))y(i))\begin{aligned} \boldsymbol{\theta}^* &=\underset{\boldsymbol{\theta}}{\arg\min}\ -\sum_{i=1}^{N}\log\left(p_{\text{y}|\mathbf{x}}(y^{(i)}|\boldsymbol{x}^{(i)};\boldsymbol{\theta})\right)\\ &=\underset{\boldsymbol{\theta}}{\arg\min}\ -\sum_{i=1}^{N}\log(\text{softmax}(\boldsymbol{f}(\boldsymbol{x}^{(i)};\boldsymbol{\theta}))_{y^{(i)}}) \end{aligned}

היתירות בייצוג של מודל ה logistic regression

  • במקרה הבינארי לא היינו צריכים להגדיר 2 פונקציות פרמטריות.
  • במקרה הכללי מספיק להגדיר C1C-1 פונקציות פרמטריות.
  • הסתברות של C1C-1 מחלקות תקבע באופן מוחלט את המחלקה האחרונה כך שהיא תשלים את ההסתברות ל-1.
  • כל שינוי מהצורה של fc(x;θc)fc(x;θc)+g(x)f_c(\boldsymbol{x};\boldsymbol{\theta}_c)\rightarrow f_c(\boldsymbol{x};\boldsymbol{\theta}_c)+g(\boldsymbol{x}) לא ישנה את הפילוג המותנה

במקרים מסויימים נרצה לבטל יתירות זו. ניתן לעשות זאת על ידי קיבוע של f1(x;θ1)=0f_1(\boldsymbol{x};\boldsymbol{\theta}_1)=0

Linear Logistic Regression

המקרה שבו הפונקציות הפרמטריות הם לינאריות:

fc(x;θc)=θcxf_c(\boldsymbol{x};\boldsymbol{\theta}_c)=\boldsymbol{\theta}_c^{\top}\boldsymbol{x}

אפשר כמובן להוסיף סף ע"י תוספת קבוע לאגף ימין.


  • במקרה זה פונקציית ה objective היא קמורה (convex) ומובטח ש gradient descent, במידה והוא מתכנס, יתכנס למינימום גלובלי.
  • כאשר הפונקציה ff אינה לינארית, פונקציית המחיר בד"כ אינה קמורה ואז ייתכנו הרבה מינימות מקומיות.

Linear Logistic Regression


ירוק - סיווג בינארי לוגיסטי. סגול - קריטריון אחר.


האיור מתוך, C.M. Bishop, Pattern Recognition and Machine Learning

Linear Logistic Regression


סיווג לוגיסטי לשלוש מחלקות.


האיור מתוך, C.M. Bishop, Pattern Recognition and Machine Learning

Gradient descent (שיטת הגרדיאנט)

האלגוריתם מנסה למצוא מינימום מקומי על ידי התקדמות בצעדים קטנים בכיוון שבו הפונקציה יורדת הכי מהר.


Gradient descent (שיטת הגרדיאנט)

  • אלגוריתם חמדן (greedy): מנסה בכל איטרציה לשפר את מצבו לעומת המצב הנוכחי
  • יתכנס למינימום מקומי.
  • הדרישה היחידה הינה היכולת לחשב את הנגזרת של פונקציית המטרה.

Gradient descent (שיטת הגרדיאנט)

עבור בעיית המינמיזציה:

argminθg(θ)\underset{\boldsymbol{\theta}}{\arg\min}\quad g(\boldsymbol{\theta})
  • מאתחלים את θ(0)\boldsymbol{\theta}^{(0)} לנקודה אקראית כל שהיא.
  • חוזרים על צעד העדכון הבא עד שמתקיים תנאי עצירה:

    θ(t+1)=θ(t)ηθg(θ(t))\boldsymbol{\theta}^{(t+1)}=\boldsymbol{\theta}^{(t)}-\eta \nabla_{\boldsymbol{\theta}}g(\boldsymbol{\theta}^{(t)})

    בתרגול תראו שעבור גודל צעד קטן כיוון הגרדיאנט השלילי הוא זה המבטיח ירידה מרבית בערך הפונקציה.


את הפרמטר η\eta יש לקבוע מראש, והוא יקבע את גודל הצעדים שהאלגוריתם יעשה.

תנאי עצירה

θ(t+1)=θ(t)ηθg(θ(t))\boldsymbol{\theta}^{(t+1)}=\boldsymbol{\theta}^{(t)}-\eta \nabla_{\boldsymbol{\theta}}g(\boldsymbol{\theta}^{(t)})
  • מספר צעדי עדכון שנקבע מראש: t>max-itert>\text{max-iter}.
  • הנורמה של הגרדיאנט קטנה מערך סף: θg(θ)2<ϵ\lVert\nabla_{\boldsymbol{\theta}}g(\boldsymbol{\theta})\rVert_2<\epsilon
  • השיפור בפונקציית המטרה קטן מערך סף: g(θ(t1))g(θ(t))<ϵg(\boldsymbol{\theta}^{(t-1)})-g(\boldsymbol{\theta}^{(t)})<\epsilon
  • שימוש בעצירה מוקדמת על מנת להתמודד עם התאמת יתר (נרחיב על כך בהרצאה הבאה)

הבעיות של האלגוריתם

  • התכנסות למינימום מקומי ותלות באיתחול
  • לא ניתן לקבוע בוודאות האם האלגוריתם התכנס
  • בעיית הבחירה של גודל הצעד

שתי הבעיות הראשונות מונעות הגעה לאופטימום אך עדיין לא מפריעות לאלגוריתם להניב תוצאות טובות.

הבעיה של בחירת גודל צעד עלולה למנוע מהאלגוריתם להניב תוצאות רלוונטיות תוך מספר סביר של צעדים.

דוגמא גודל צעד קטן

דוגמא גודל צעד גדול

דוגמא גודל צעד גדול מידי

בעיית הבחירה של גודל הצעד

  • כאשר יהיו בבעיה כיוונים שונים בהם ישנו הבדל גדול בקצב השינוי של הפונקציה לרוב לא יהיה גודל צעד אשר יגרום לפונקציה להתכנס במספר סביר של צעדים. ראו למשל איור בשקפים הקודמים.
  • gradient descent בצורתו הפשוטה אינו מאד שימושי.
  • למזלנו ישנם מספר שיפורים שניתן לעשות על מנת להתמודד עם בעיה זו.
  • לצערנו בקורס זה לא נספיק לכסות שיפורים אלו.
  • האלגוריתם נידון בהרחבה בקורס "אופטימזציה" ובקורס "למידה עמוקה".

שיפורים נפוצים

  1. הוספה של רכיב תנע (מומנטום) לאלגוריתם
  2. שימוש בגודל צעד אשר משתנה במהלך הריצה

לקריאה על נושא:

  1. An overview of gradient descent optimization algorithms
  2. Why Momentum Really Works

בתרגיל הרטוב תשתמשו במימוש קיים ADAM.

דוגמא: Linear Logistic Regression

נחזור לבעיה של חיזוי עסקאות החשודות כהונאות אשראי.

דוגמא: Linear Logistic Regression

נשתמש במודל של linear logistic regression:

pyx(yx;θ)={σ(xθ)y=11σ(xθ)y=0p_{\text{y}|\mathbf{x}}(y|\boldsymbol{x};\boldsymbol{\theta}) =\begin{cases} \sigma(\boldsymbol{x}^{\top}\boldsymbol{\theta}) & y=1\\ 1-\sigma(\boldsymbol{x}^{\top}\boldsymbol{\theta}) & y=0\\ \end{cases}

נמצא את הפרמטרים של המודל בעזרת MLE:

θ=argminθ i=1Ny(i)log(σ(x(i)θ))+(1y(i))log(1σ(x(i)θ))\boldsymbol{\theta}^* =\underset{\boldsymbol{\theta}}{\arg\min}\ -\sum_{i=1}^{N} y^{(i)}\log(\sigma(\boldsymbol{x}^{(i)\top}\boldsymbol{\theta})) +(1-y^{(i)})\log(1-\sigma(\boldsymbol{x}^{(i)\top}\boldsymbol{\theta}))

כלל העדכון של האלגוריתם יהיה:

θ(t+1)=θ(t)+ηi=1N(y(i)(1σ(x(i)θ))(1y(i))σ(x(i)θ))x(i)\boldsymbol{\theta}^{(t+1)}=\boldsymbol{\theta}^{(t)}+\eta\sum_{i=1}^{N} \left( y^{(i)}(1-\sigma(\boldsymbol{x}^{(i)\top}\boldsymbol{\theta})) -(1-y^{(i)})\sigma(\boldsymbol{x}^{(i)\top}\boldsymbol{\theta}) \right)\boldsymbol{x}^{(i)}

נזכור כי עבור בעיה זו, פונקציית המחיר קמורה.

בחירת η\eta

נריץ את האלגוריתם מספר קטן של צעדים עבור ערכי η\eta שונים:

בחירת η\eta

  • η=30\eta=30 ו η=100\eta=100 מתאימים למקרה של η\eta גדול מידי.
  • נבחר את η=10\eta=10.
  • שימו לב כי האלגוריתם אינו מתכנס לגודל צעד גדול, אפילו שפונקציית המחיר קמורה!

דוגמא: Linear Logistic Regression

נריץ את האלגוריתם עם η=10\eta=10 ונקבל את החזאי הבא:

דוגמא: Linear Logistic Regression

נקבל misclassification rate של 0.02 על ה test set:

שימוש במודל מסדר גבוה יותר

נוכל להשתמש בכל מודל שנרצה.

נחליף את f(x;θ)f(\boldsymbol{x};\boldsymbol{\theta}) בפולינום מסדר שני ונקבל:

שימוש במודל מסדר גבוה יותר

נקבל misclassification rate של 0 על ה test set: