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

‫תמונות היפרספקטרליות‬
‫מגישים‪:‬‬
‫טלאור אברמוביץ‬
‫‪023324402‬‬
‫עוז גבריאלוב‬
‫‪424314303‬‬
‫מנחה‪:‬‬
‫אמיר אדלר‬
‫סמסטר אביב ‪0213‬‬
‫‪1‬‬
‫תוכן עניינים‬
‫‪4............... ................................ ................................ ................................ List of Figures‬‬
‫‪4................ ................................ ................................ ................................ List of Tables‬‬
‫רקע ‪3............................. ................................ ................................ ................................‬‬
‫תמונה היפרספקטרלית ‪3................................ ................................ ................................‬‬
‫בעיית סיווג ‪3................ ................................ ................................ ................................‬‬
‫האלגוריתמים ‪3................ ................................ ................................ ................................‬‬
‫אלגוריתמי סיווג ‪3.......................................... ................................ ................................‬‬
‫)‪4..................... ................................ ................................ K Nearest Neighbors (kNN‬‬
‫)‪7....................................... ................................ Principal Components Analysis (PCA‬‬
‫‪9................... ................................ ................................ ................................ K-SVD‬‬
‫אלגוריתם בדיקה ‪11...................................... ................................ ................................‬‬
‫‪11......................... ................................ ................................ K Fold Cross Validation‬‬
‫שיטות בדיקה ותוצאות ‪10................................... ................................ ................................‬‬
‫התמונות ‪10................. ................................ ................................ ................................‬‬
‫‪10........................................ ................................ ................................ Indian Pines‬‬
‫‪10................ ................................ ................................ ................................ Salinas‬‬
‫‪14....................................... ................................ ................................ Pavia Center‬‬
‫‪14................................... ................................ ................................ Pavia University‬‬
‫שיטות בדיקה (אלגוריתמים) ‪13........................ ................................ ................................‬‬
‫‪13................... ................................ ................................ ................................ kNN‬‬
‫‪14.................... ................................ ................................ ................................ PCA‬‬
‫‪14.................. ................................ ................................ ................................ KSVD‬‬
‫סיכום התוצאות ‪03........................................ ................................ ................................‬‬
‫מסקנות והצעות לשיפור ‪40................................. ................................ ................................‬‬
‫סיכום ומסקנות ‪40......................................... ................................ ................................‬‬
‫הצעות לשיפור ומשימות עתידיות ‪44................. ................................ ................................‬‬
‫ביבליוגרפיה ‪43................ ................................ ................................ ................................‬‬
‫נספחים ‪43...................... ................................ ................................ ................................‬‬
‫נספח א'‪ :‬בדיקות נוספות ‪43............................ ................................ ................................‬‬
‫‪43.................... ................................ ................................ ................................ PCA‬‬
‫‪47.................. ................................ ................................ ................................ KSVD‬‬
‫‪2‬‬
List of Figures
Figure1 : Pavia University – kNN Model Selection Curve.................................................. 14
Figure0 : Pavia Center - kNN Model Selection Curve ....................................................... 14
Figure4 : Indian Pines - kNN Model Selection Curve ........................................................ 15
Figure3 : Salinas - kNN Model Selection Curve ............................................................... 15
Figure3 : Pavia University - PCA Model Selection Curve ................................................... 16
Figure4 : Pavia Center - PCA Model Selection Curve ....................................................... 16
Figure7 : Indian Pines - PCA Model Selection Curve ........................................................ 17
Figure4 : Salinas - PCA Model Selection Curve ................................................................ 17
Figure9 : Pavia University - KSVD Model Selection Curve with train error parameter = 2.5% 18
Figure12 : Pavia University - KSVD Model Selection Curve with train error parameter = 5% 18
Figure11 : Pavia University - KSVD Model Selection Curve with train error parameter = 7.5%
................................................................................................................................. 19
Figure10 : Pavia University - KSVD Model Selection Curve with train error parameter = 10%
................................................................................................................................. 19
Figure14 : Pavia Center - KSVD Model Selection Curve with train error parameter = 2.5% .. 19
Figure13 : Pavia Center - KSVD Model Selection Curve with train error parameter = 5% ..... 20
Figure13 : Pavia Center - KSVD Model Selection Curve with train error parameter = 7.5% .. 20
Figure14 : Pavia Center - KSVD Model Selection Curve with train error parameter = 10% ... 20
Figure17 : Indian Pines - KSVD Model Selection Curve with train error parameter = 2.5% ... 21
Figure14 : Indian Pines - KSVD Model Selection Curve with train error parameter = 5% ...... 21
Figure19 : Indian Pines - KSVD Model Selection Curve with train error parameter = 7.5% ... 21
Figure02 : Indian Pines - KSVD Model Selection Curve with train error parameter = 10% .... 22
Figure01 : Salinas - KSVD Model Selection Curve with train error parameter = 2.5% ........... 22
Figure00 : Salinas - KSVD Model Selection Curve with train error parameter = 5% ............. 22
Figure04 : Salinas - KSVD Model Selection Curve with train error parameter = 7.5% ........... 23
Figure03 : Salinas - KSVD Model Selection Curve with train error parameter = 10%............ 23
Figure03 : Pavia University - Labeled Images ................................................................. 26
Figure04 : Pavia Center - Labeled Images ...................................................................... 28
Figure07 : Indian Pines - Labeled Images ....................................................................... 30
Figure04 : Salinas - Labeled Images .............................................................................. 31
Figure09 : PCA - Representation Errors of Testing Vectors of 3 Folds ................................ 35
List of Tables
Table 1: Groundtruth classes for the Indian Pines scene and their respective samples
number ..................................................................................................................... 12
Table 2: Groundtruth classes for the Salinas scene and their respective samples number ... 12
Table 3: Groundtruth classes for the Pavia Center scene and their respective samples
number ..................................................................................................................... 13
Table 4: Groundtruth classes for the Pavia University scene and their respective samples
number ..................................................................................................................... 13
Table3 : Results Summary - Optimal Test Errors ............................................................. 24
Table4 : Results Summary - Execution Times ................................................................. 25
Table7 : KSVD - Sparsity of Training Set Representation .................................................. 37
Table4 : KSVD - Representation Error ............................................................................ 37
3
‫רקע‬
‫תמונה היפרספקטרלית‬
‫בתמונה היפרספקטרלית‪ ,‬בדומה לשיטות צילום ספקטרליות אחרות‪ ,‬נאסף מידע מהספקטרום‬
‫האלקטרומגנטי עבור כל פיקסל בתמונה‪ .‬לעומת צילום או ראייה‪ ,‬בהם נאסף מידע מהאור הנראה‪,‬‬
‫בד"כ בצבעים אדום‪ ,‬ירוק וכחול‪ ,‬בצילום היפרספקטרלי נאסף מידע מתחום רחב של תדרים‪ ,‬הכולל‬
‫לרוב גם תדרים השייכים לתחום התת אדום‪ .‬כתוצאה מכך תמונות היפרספקטרליות נקראות לעיתים‬
‫קוביות היפרספקטרליות‪ ,‬כאשר הממד השלישי הוא אורך הגל‪.‬‬
‫צילום או סריקה היפרספקטרלית שייכת לתחום‬
‫של סריקות ספקטרליות הנקראת סריקות‬
‫מולטיספקטרליות‪ .‬מה שמייחד סריקה‬
‫היפרספקטרלית הוא שהצילום ההיפרספקטרלי‬
‫מתבצע עבור טווח רחב רציף של תדרים‪ .‬לעומת‬
‫זאת‪ ,‬סריקה מולטיספקטרלית מתבצעת עבור‬
‫טווחים בדידים ויחסית צרים של ספקטרום‬
‫אלקטרומגנטי‪.‬‬
‫ישנם שימושים רבים עבור תמונות‬
‫היפרספקטרליות‪ .‬בחקלאות ניתן להשתמש‬
‫בתמונות של הגידולים כדי לשמור על בריאותם‬
‫וכן לגלות ולמנוע התפרצות של מגפות‪ .‬השימוש‬
‫הראשוני של התמונות היה בגיאולוגיה‪ ,‬כדי‬
‫לנסות ולזהות מינרלים שונים או מאגרי נפט‬
‫בעזרת תצלומי אוויר‪ .‬שימוש נוסף הוא לריגול‪,‬‬
‫כאשר הודות לטווח הרחב של תדרים הנלקחים בתמונה‪ ,‬ניתן לזהות עצמים שמסווים את חתימת‬
‫החום שלהם‪ .‬בטכנולוגיה זו אף נעשה שימוש במבצע לחיסולו של אוסמה בן לאדן ב‪ .0211-‬שימוש‬
‫צבאי נוסף הוא גילוי של מפגעים כימיקלים‪ ,‬אשר מהווים סכנה לכוחות בשטח‪ .‬בעזרת הסריקה‪ ,‬ניתן‬
‫לגלות את הגזים המסוכנים הללו‪ ,‬אשר אינם נראים לעין בלתי מזוינת וקשים מאד לגילוי‪.‬‬
‫היתרון המשמעותי של שיטה זו הוא שמכיוון וכל פיקסל מכיל טווח תדרים שלם‪ ,‬לא דרוש מידע‬
‫מוקדם על התמונה‪ .‬יתרון נוסף הוא שניתן לנצל את טווח התדרים הרחב של פיקסל מסוים עבור‬
‫הסביבה כולה‪ ,‬ובכך לשפר את הסיווג של התמונה‪ .‬חסרונות השיטה הם עלות וסיבוכיות‪ .‬הציוד‬
‫לצילום היפרספקטרלי ועיבוד התמונות‪ ,‬הכולל מחשבים מהירים‪ ,‬גלאים רגישים ושרתים גדולים‪ ,‬יקר‪.‬‬
‫כמו כן‪ ,‬כתוצאה מכך שגודל הקוביות ההיפרספקטרליות יכול להגיע למאות מגה‪-‬בייטים‪ ,‬אחסונן‬
‫ועיבודן דורש זמן רב‪.‬‬
‫בעיית סיווג‬
‫בהינתן סט דגימות נתונות אשר שייכות למספר סופי של מחלקות ודגימה חדשה אשר אינה מסווגת‪,‬‬
‫פתרון של בעיית הסיווג הוא למצוא‪ ,‬על בסיס המידע של קבוצת האימון‪ ,‬את הסיווג המתאים של‬
‫הדגימה החדשה‪ ,‬כלומר‪ ,‬לאיזו מחלקה היא שייכת‪ .‬לדוגמא‪ ,‬בתמונות היפרספקטרליות קיימים‬
‫מספר מסוים של סוגי עצמים‪ ,‬כגון מים‪ ,‬אספלט או צמחייה‪ ,‬ועלינו למצוא את הסוג של הדגימות‬
‫שאינן מסווגות על ידי קבוצת האימון שמכילה מידע מהדגימות הנתונות‪ ,‬שסיווגן ידוע‪ .‬ישנם מספר רב‬
‫של אלגוריתמים שפותרים את בעיית הסיווג‪ .‬האלגוריתמים שבהם השתמשנו יפורטו בעמודים‬
‫הבאים‪.‬‬
‫‪4‬‬
‫האלגוריתמים‬
‫אלגוריתמי סיווג‬
‫אלגוריתמי סיווג הם למעשה משפחת אלגוריתמים מתחום מערכות לומדות שמקבלים דוגמאות‬
‫מקבוצה שנסמנה ב‪( -‬המרחב שלנו) עם התיוגים שלהם שאת קבוצתם נסמן ב‪.-‬‬
‫הדוגמאות נדגמות באקראי מתוך מרחב המדגם (במקרה שלנו – מתוך התמונה)‪ ,‬והדוגמאות‬
‫המתויגות יוצרות למעשה קבוצת אימון של דוגמאות מתויגות ∈  ‪ = {(1 , 1 ), … , ( ,  ):‬‬
‫} ∈  ‪ ,‬שהיא הקלט של אלגוריתם הסיווג‪.‬‬
‫בהינתן דגימה חדשה מתוך מרחב המדגם‪ ,‬מטרת האלגוריתם היא לסווג את הדגימה החדשה על‬
‫בסיס קבוצת האימון הנתונה מראש‪.‬‬
‫תהליך הלמידה‪:‬‬
‫אימון על קבוצה סופית‪ ,S ,‬של דוגמאות‬
‫מסווגות‬
‫קבלת מסווג‪/‬כלל סיווג‬
‫סיווג של דוגמאות חדשות מתוך המרחב‬
‫באמצעות המסווג‬
‫במקרה שלנו הקבוצה  הינה קבוצת וקטורים במרחב ‪ ℝ‬כאשר  הוא מספר אורכי הגל השונים‬
‫שקיימים בתמונה (העומק של הקובייה התלת‪-‬ממדית שמגדירה את התמונה ההיפר‪-‬ספקטרלית)‪.‬‬
‫‪5‬‬
‫)‪K Nearest Neighbors (kNN‬‬
‫אלגוריתם הסיווג ‪ kNN‬מתבסס על‬
‫ההנחה שדברים דומים מתנהגים בצורה‬
‫זהה‪ .‬זהו אלגוריתם סיווג פשוט שדורש‬
‫לזכור את כל קבוצת האימון‪ ,‬ולבצע את‬
‫ההחלטה עבור כל וקטור חדש על בסיס‬
‫השכנים הקרובים ביותר שלו בקבוצת‬
‫האימון‪ ,‬כאשר מדד הקרבה הוא במקרה‬
‫שלנו לפי נורמת ‪( L2‬מרחק אוקלידי)‪.‬‬
‫פורמלית‪ ,‬נגדיר את קבוצת האימון‪ = ,‬‬
‫∈  ‪{(1 , 1 ), … , ( ,  ):  ∈ ,‬‬
‫}‪.‬‬
‫לכל  ∈ ‪ ,‬נגדיר את הסידור של האינדקסים } ‪ {1,2, … ,‬בסדר עולה לפי המרחק האוקלידי של‬
‫וקטורי הדגימה מ‪ -‬בתור )(  ‪ .1 (), 2 (), … ,‬כלומר‪ ,‬לכל  מתקיים‪:‬‬
‫‖ )( ‪‖ − () ‖ ≤ ‖ − +1‬‬
‫‪2‬‬
‫‪2‬‬
‫כעת נעבור להגדרת האלגוריתם‪,‬‬
‫‪K Nearest Neighbors‬‬
‫} ∈  ‪Input: a training sample  = {(1 , 1 ), … , ( ,  ):  ∈ ,‬‬
‫‪Parameter: k – number of neighbors‬‬
‫ ‪Train: Memorize‬‬
‫} )(  ‪Classify: for every vector  ∈ , return the majority label among {() , () , … ,‬‬
‫‪6‬‬
‫)‪Principal Components Analysis (PCA‬‬
‫אלגוריתם הסיווג ‪ PCA‬מתבסס על‬
‫הטרנספורמציה הליניארית‬
‫המוגדרת ע"י אלגוריתם הורדת‬
‫הממד של ‪.PCA‬‬
‫‪PCA demo‬‬
‫‪12‬‬
‫‪Samples on y=x with noise‬‬
‫)‪First principal component (98% of energy‬‬
‫‪y=x‬‬
‫‪10‬‬
‫בהורדת ממד באמצעות ‪ PCA‬אנו‬
‫למעשה מוצאים טרנספורמציה‬
‫ליניארית המוגדרת ע"י  ↦ ‪,‬‬
‫כאשר  <  ‪  ∈ ℝ× ,‬הינה‬
‫מטריצת הטרנספורמציה‪ ,‬כך שסך‬
‫ההפרשים בין הוקטורים‬
‫המשוחזרים לוקטורים המקוריים‬
‫הוא מינימלי במובן של ריבועים‬
‫פחותים (‪.)Least Squares‬‬
‫‪6‬‬
‫‪y‬‬
‫פורמלית‪ ,‬אם נסמן את מטריצת‬
‫השחזור ×‪ , ∈ ℝ‬אז מטרתנו‬
‫היא למצוא‪:‬‬
‫‪8‬‬
‫‪4‬‬
‫‪2‬‬
‫‪10‬‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪5‬‬
‫‪6‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪0‬‬
‫‪x‬‬
‫‬
‫‪∑‖ −  ‖22‬‬
‫‪=1‬‬
‫‪min‬‬
‫×‪∈ℝ× ,∈ℝ‬‬
‫ ‪̂,‬‬
‫‪̂ ∈ arg‬‬
‫‬
‫|‬
‫‪. = [1‬‬
‫|‬
‫|‬
‫נסמן את ×‪  ∈ ℝ‬להיות מטריצת הדוגמאות שלנו‪ ,‬כלומר ]  …‬
‫|‬
‫|‬
‫|‬
‫מתוך התיאוריה נקבל כי‪̂ = [1 …  ] ,‬‬
‫‪ ,‬כאשר  ‪ 1 , 2 , … ,‬הם  הוקטורים העצמיים עם‬
‫|‬
‫|‬
‫‬
‫‬
‫̂‬
‫̂‬
‫הערכים העצמיים הכי גדולים של המטריצה ‪ ,‬וכן  = ‪ .‬וקטורים עצמיים אלו מתקבלים‬
‫מתוך פירוק ‪ SVD‬של המטריצה ‪.‬‬
‫כלומר‪ ,‬אנו לוקחים את הוקטורים העצמיים בעלי האנרגיה הכי גבוהה‪ ,‬ולכן שגיאת השחזור תהיה‬
‫מינימלית‪.‬‬
‫באלגוריתם הסיווג של ‪ ,PCA‬אנו משתמשים בטרנספורמציה המתקבלת עבור הורדת הממד של כל‬
‫אחת מהמחלקות בנפרד‪ ,‬ומסווגים כל וקטור למחלקה עבורה מקבלים את השחזור בעל השגיאה‬
‫המינימלית‪.‬‬
‫פורמלית‪ ,‬נגדיר את קבוצת האימון‪. = {(1 , 1 ), … , ( ,  ):  ∈ ,  ∈ } ,‬‬
‫אנו מניחים שקבוצת התיוגים  היא סופית‪ .‬לכל תיוג אפשרי  ∈ ‪ ,‬נגדיר את המטריצה   להיות‬
‫מטריצה המכילה את כל הדוגמאות המתויגות למחלקה  (ואשר נמצאות בקבוצת האימון)‪ ,‬בדומה‬
‫להגדרה של  לעיל‪.‬‬
‫אנו נשתמש בפירוק ‪ ,SVD‬אשר בהינתן מטריצה  מחזיר מטריצות  ‪ ,, ,‬כך ש‪, =   -‬‬
‫כאשר  הינה מטריצה אלכסונית שאיברי אלכסונה מופיעים בסדר יורד ונסמנם ב‪. -‬‬
‫כעת נעבור להגדרת האלגוריתם‪,‬‬
‫‪7‬‬
Principal Components Analysis (PCA)
Input: a training sample  = {(1 , 1 ), … , ( ,  ):  ∈ ,  ∈ }
Parameter: E – energy limit
Train:

Foreach class  ∈ :
o Get the matrix   as defined.
o [  , , ] = (  ).
o
Define   to be the lowest  such that
∑
=1 
∑ 
≥ .

 = max  

̃  to be the matrix that contains the first  columns of
Foreach class  ∈  define 
  , and save it.
∈
̃  (
̃  ) ‖
Classify: for every vector  ∈ , return arg min ‖ − 
∈
8
2
‫‪K-SVD‬‬
‫אלגוריתם זה מתבצע בשני שלבים‪ .‬ראשית‪ ,‬פונקצית ‪ KSVD‬יוצרת מילון המבוסס על וקטורי האימון‪.‬‬
‫בשלב השני מתבצע סיווג‪ ,‬כאשר קיימות ‪ 0‬אפשרויות לסיווג‪ .‬האפשרות הראשונה היא סיווג לפי‬
‫דלילות‪ ,‬כאשר הפונקציה המסווגת מקבלת כנתון מספר אטומים נצברים מקסימלי ומחזירה את‬
‫הסיווג בעל השגיאה המינימלית‪ .‬פונקציה זו היא ‪ .omp‬האפשרות השנייה היא כאשר הפונקציה‬
‫המסווגת מקבלת כנתון שגיאת סף‪ ,‬ועליה למצוא את מספר האטומים המינימלי במילון שעדיין מקיים‬
‫שגיאה זו‪ .‬פונקציה זו היא ‪.omp2‬‬
‫|‬
‫פורמלית‪ ,‬נגדיר את ‪ X‬להיות קבוצת וקטורי האימון‪ ,‬כלומר‪ ] ,‬‬
‫|‬
‫|‬
‫‪ . = [1‬כדי להשתמש‬
‫|‬
‫…‬
‫|‬
‫̅̅̅̅‬
‫‬
‫בפונקצית ה‪ ,KSVD-‬עלינו להשתמש בוקטורים מנורמלים‪ ,‬לכן נגדיר ] ‬
‫|‬
‫|‬
‫‪1‬‬
‫̅̅̅[ = ̅‪ ,.‬כך ש‪-‬‬
‫|‬
‫…‬
‫‬
‫({ = ‬
‫‪̅̅̅,‬‬
‫‪̅̅̅̅,‬‬
‫‖ ‖ = ̅ לכל  ‪ . = 1 … .‬כמו כן נגדיר את קבוצת האימון‪̅ ∈ :‬‬
‫( ‪1 1 ), … ,‬‬
‫ ‪  ):‬‬
‫‪ 2‬‬
‫} ∈  ‪̅ ,‬‬
‫‪ .‬בהינתן שגיאה מסוימת ‪ 1‬המתקבלת כנתון‪ ,‬בעיית האופטימיזיה שפונקציית ‪KSVD‬‬
‫פותרת היא‪:‬‬
‫‪‖‖0 . . ‖̅ −   ∗  ‖2 ≤ 1‬‬
‫‪min‬‬
‫‪  ,‬‬
‫כאשר ‪ Dy‬הוא המילון המתקבל מוקטורי האימון של התווית  ∈  ו‪ GAMMA-‬היא מטריצת הייצוג‪.‬‬
‫̅ בהתאמה‪.‬‬
‫ ‪ ̅ ,‬אלו עמודות  ‪X,‬‬
‫עבור סיווג לפי דלילות‪ ,‬בעיית האופטימיזציה שפונקצית ‪ OMP‬פותרת היא‪:‬‬
‫ ≤ ‪‖̅ −   ∗  ‖2 s. t. ‖ ‖0‬‬
‫‪min‬‬
‫‪GAMMAeror‬‬
‫כאשר ‪ T‬הוא מספר האטומים המקסימלי הדרוש‪.‬‬
‫עבור סיווג לפי שגיאה‪ ,‬בעיית האופטימיזציה שפונקצית ‪ OMP2‬פותרת היא‪:‬‬
‫‪‖GAMMAsparse ‖ . . ‖̅ −   ∗  ‖2 ≤ 2‬‬
‫‪0‬‬
‫‪min‬‬
‫‪GAMMAsparse‬‬
‫כאשר ‪ 2‬היא שגיאת הסיווג הרצויה‪.‬‬
‫לאחר קבלת המטריצות  ‪  ,‬לכל תווית  ∈ ‪ ,‬נמצא את הסיווג עפ"י‬
‫התוות שעבורה הערך של ‖ ‖ ‪ ‖̅ −   ∗  ‖2 ,‬הוא המינימלי‬
‫‪0‬‬
‫בהתאמה‪ .‬מכאן נקבל שני סיווגים‪ ,‬לפי כל אחת משתי שיטות הסיווג שפורטו לעיל‪.‬‬
‫כעת נעבור להגדרת האלגוריתם‪:‬‬
‫‪K-SVD‬‬
‫} ∈  ‪Input: a training sample  = {(1 , 1 ), … , ( ,  ):  ∈ ,‬‬
‫‪Parameters: 1 -Learning Error, T – Max. atoms, 2 - Classify Error‬‬
‫‪9‬‬
Train:


Get ̅ as described
Foreach class  ∈ :
o   = [̅, 1 ]
Classify:

OMP –
̅:
o Foreach vector ̅ ∈ 

 Foreach  ∈ :  = [  , ̅ , ]

 return arg min‖̅ −   ∗  ‖2
∈

OMP2 –
̅:
o Foreach vector ̅ ∈ 

 Foreach  ∈ :  = 2[  , ̅ , 2 ]

11

return arg min‖ ‖
∈
0
‫אלגוריתם בדיקה‬
‫‪K Fold Cross Validation‬‬
‫על מנת לבדוק את הביצועים של כל אחד מאלגוריתמי הלמידה‪ ,‬ועל מנת לקבוע את הפרמטרים‬
‫האופטימליים של כל אלגוריתם‪ ,‬השתמשנו באלגוריתם ‪ K Fold Cross Validation‬שמטרתו להעריך‬
‫את ביצועי האלגוריתם באמצעות חלוקה אקראית של קבוצת האימון ל‪ K-‬קבוצות זרות ושוות בגודלן‬
‫(כל קבוצה בגודל ‪ .)/‬כל פעם הלמידה מתבצעת על כל הקבוצות מלבד קבוצה אחת‪ ,‬והערכת‬
‫האלגוריתם מתבצעת באמצעות בדיקת השגיאה של המסווג על הקבוצה שהוצאה מתהליך הלמידה‪.‬‬
‫להלן האלגוריתם המלא‪:‬‬
‫‪K Fold Cross Validation‬‬
‫‪Input:‬‬
‫} ∈  ‪Training set  = {(1 , 1 ), … , ( ,  ):  ∈ ,‬‬
‫‪Set of parameters values Θ‬‬
‫ ‪Learning algorithm‬‬
‫ ‪Integer‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪Algorithm:‬‬
‫ ‪Randomly partition  into  equally disjoint sets 1 , 2 , … ,‬‬
‫‪Foreach  ∈ Θ‬‬
‫ ‪o For  = 1, … ,‬‬
‫) ; \( = ‪ ℎ,‬‬
‫‪1‬‬
‫‬
‫|} ≠ )( ‪ () = ∑=1|{(, ) ∈  ∶ ℎ,‬‬
‫‪o‬‬
‫|} ≠ )( ‪ () = ∑=1|{(, ) ∈ \ ∶ ℎ,‬‬
‫‪o‬‬
‫‪1‬‬
‫‬
‫)‪Plot  ,   as function of  (Model Selection Curve‬‬
‫])( [‪Output  ∗ = arg min‬‬
‫‪θ‬‬
‫‪Training set‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪Testing set‬‬
‫‪Iteration 1‬‬
‫‪Testing set‬‬
‫‪Training set‬‬
‫‪Iteration K‬‬
‫‪11‬‬
‫שיטות בדיקה ותוצאות‬
‫התמונות‬
-‫ תמונות אשר הינן גדולות מספיק (בגדלים הנעים בין כ‬3-‫ בחרנו ב‬,‫לצורך בדיקת האלגוריתמים‬
122 ‫ אורך הוקטור של הפיקסל נע בין‬,‫ כלומר‬,‫) וכן עמוקות דיין‬1222x1222 ‫ פיקסלים ועד‬122x122
,‫ וכן את החלוקה שלה למחלקות השונות‬,‫ עבור כל תמונה נציג את מאפיינה‬.‫ תדרים שונים‬022-‫ל‬
.‫כאשר כ ל פיקסל מתייחס למחלקה אחרת בהתאם לדגימת התדרים בוקטור הפיקסל‬
.‫כל התמונות שבהן השתמשנו הינן תמונות לווין‬
Indian Pines
145x145 pixels, 200 spectral reflectance band, 16 classes –
Table 1: Groundtruth classes for the Indian Pines scene and their respective samples number
#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class
Alfalfa
Corn-notill
Corn-mintill
Corn
Grass-pasture
Grass-trees
Grass-pasture-mowed
Hay-windrowed
Oats
Soybean-notill
Soybean-mintill
Soybean-clean
Wheat
Woods
Buildings-Grass-Trees-Drives
Stone-Steel-Towers
samples
46
1428
830
237
483
730
28
478
20
972
2455
593
205
1265
386
93
Salinas
512x217 pixels, 204 spectral reflectance band, 16 classes –
Table 2: Groundtruth classes for the Salinas scene and their respective samples number
#
1
2
3
4
5
6
7
8
9
10
11
12
class
Brocoli_green_weeds_1
Brocoli_green_weeds_2
Fallow
Fallow_rough_plow
Fallow_smooth
Stubble
Celery
Grapes_untrained
Soil_vinyard_develop
Corn_senesced_green_weeds
Lettuce_romaine_4wk
samples
2009
3726
1976
1394
2678
3959
3579
11271
6203
3278
1068
12
13
14
15
16
Lettuce_romaine_5wk
Lettuce_romaine_6wk
Lettuce_romaine_7wk
Vinyard_untrained
Vinyard_vertical_trellis
1927
916
1070
7268
1807
Pavia Center
1096x715 pixels, 102 spectral reflectance band, 9 classes –
Table 3: Groundtruth classes for the Pavia Center scene and their respective samples number
#
1
2
3
4
5
6
7
8
9
class
Water
Trees
Asphalt
Self-Blocking Bricks
Bitumen
Tiles
Shadows
Meadows
Bare Soil
samples
65971
7598
3090
2685
6584
9248
7287
42826
2863
Pavia University
610x340 pixels, 103 spectral reflectance band, 9 classes –
Table 4: Groundtruth classes for the Pavia University scene and their respective samples
number
#
1
2
3
4
5
6
7
8
9
13
class
Asphalt
Meadows
Gravel
Trees
Painted metal sheets
Bare Soil
Bitumen
Self-Blocking Bricks
Shadows
samples
6631
18649
2099
3064
1345
5029
1330
3682
947
‫שיטות בדיקה (אלגוריתמים)‬
‫לכל אלגוריתם קיימים מספר פרמטרים אשר קובעים את הצלחתו עבור כל תמונה‪ .‬הפעלנו את‬
‫האלגוריתם מספר פעמים על כל תמונה עם פרמטרים שונים בכל פעם כדי למצוא את הפרמטר או‬
‫הפרמטרים שימקסמו את אחוז ההצלחה המתקבלת בתמונה כלשהי‪ .‬כל האלגוריתמים מומשו ב‪-‬‬
‫‪.MATLAB‬‬
‫‪kNN‬‬
‫עבור ‪ KNN‬קיים פרמטר יחיד והוא מספר השכנים על פי הם מתבצע הסיווג‪ .‬השתמשנו ב‪-‬‬
‫‪ 1,0,3,12,02,42‬שכנים וקיבלנו גרף לכל תמונה‪ .‬הגרף מראה את שגיאת האימון עבור קבוצת‬
‫הבדיקה וכן עבור קבוצת הביקורת כתלות במספר השכנים‪.‬‬
‫להלן הגרפים של התוצאות‪:‬‬
‫‪Figure1 : Pavia University – kNN Model Selection Curve‬‬
‫‪Training and Testing errors for kNN vs. num neighbours‬‬
‫‪60‬‬
‫‪Testing error‬‬
‫‪Training error‬‬
‫‪50‬‬
‫‪40‬‬
‫‪Error‬‬
‫‪30‬‬
‫‪20‬‬
‫‪10‬‬
‫‪30‬‬
‫‪25‬‬
‫‪20‬‬
‫‪15‬‬
‫‪num neighbours‬‬
‫‪10‬‬
‫‪0‬‬
‫‪5‬‬
‫‪0‬‬
‫‪Figure2 : Pavia Center - kNN Model Selection Curve‬‬
‫‪Training and Testing errors for kNN vs. num neighbours‬‬
‫‪1.4‬‬
‫‪Testing error‬‬
‫‪Training error‬‬
‫‪1.2‬‬
‫‪1‬‬
‫‪0.6‬‬
‫]‪Error [%‬‬
‫‪0.8‬‬
‫‪0.4‬‬
‫‪0.2‬‬
‫‪30‬‬
‫‪25‬‬
‫‪20‬‬
‫‪15‬‬
‫‪num neighbours‬‬
‫‪10‬‬
‫‪5‬‬
‫‪0‬‬
‫‪14‬‬
Figure3 : Indian Pines - kNN Model Selection Curve
Training and Testing errors for kNN vs. num neighbours
Testing error
Training error
70
60
Error [%]
50
40
30
20
10
0
5
10
15
num neighbours
20
25
30
Figure4 : Salinas - kNN Model Selection Curve
Training and Testing errors for kNN vs. num neighbours
Testing error
Training error
8
7
Error [%]
6
5
4
3
2
1
0
15
5
10
15
num neighbours
20
25
30
PCA
‫ גם כן קיים פרמטר יחיד והוא סף האנרגיה הקובע את מספר הרכיבים המרכזיים‬, PCA ‫עבור‬
‫ הגרפים הבאים מתארים את שגיאת האימון ושגיאת הבדיקה כתלות בסף‬.)principal components(
:‫ התמונות‬3 ‫האנרגיה עבור‬
Figure5 : Pavia University - PCA Model Selection Curve
Training and Testing errors for PCA vs. energy limit
Testing error
Training error
55
Error [%]
50
45
40
35
0.7
0.72
0.74
0.76
0.78
0.8
0.82
energy limit
0.84
0.86
0.88
Figure6 : Pavia Center - PCA Model Selection Curve
Training and Testing errors for PCA vs. energy limit
Testing error
Training error
50
45
40
Error [%]
35
30
25
20
15
10
0.7
16
0.72
0.74
0.76
0.78
0.8
0.82
energy limit
0.84
0.86
0.88
Figure7 : Indian Pines - PCA Model Selection Curve
Training and Testing errors for PCA vs. energy limit
Testing error
Training error
50
Error [%]
45
40
35
30
0.7
0.72
0.74
0.76
0.78
0.8
0.82
energy limit
0.84
0.86
0.88
Figure8 : Salinas - PCA Model Selection Curve
Training and Testing errors for PCA vs. energy limit
Testing error
Training error
23
22
Error [%]
21
20
19
18
17
16
0.7
17
0.72
0.74
0.76
0.78
0.8
0.82
energy limit
0.84
0.86
0.88
‫‪KSVD‬‬
‫עבור ‪ ,KSVD‬קיימים ‪ 0‬פרמטרים הקובעים את אחוז ההצלחה בסיווג לכל תמונה‪ .‬הפרמטר הראשון‬
‫משותף לשתי שיטות הסיווג והוא שגיאת האימון‪ ,‬שנקבעת בזמן אימון המילון‪ .‬עבור סיווג לפי דלילות‪,‬‬
‫הפרמטר השני הוא מספר האטומים הנצברים שעל פי הם האלגוריתם מוצא את הפתרון בעל‬
‫השגיאה המינימלית‪ .‬עבור סיווג לפי שגיאה‪ ,‬הפרמטר הוא שגיאת הסיווג ועל פיה האלגוריתם ימצא‬
‫את הפתרון בעל מספר האטומים המינימלי‪ .‬כעת לכל תמונה קיימים ‪ 4‬גרפים המתאימים ל‪ 3-‬ערכי‬
‫שגיאת האימון – ‪ ,0.025,0.05,0.075,0.1‬לכל אחת מ‪ 0-‬השיטות‪ .‬בגרפים השמאליים המתאימים‬
‫לסיווג עפ"י שגיאה מופיעה השגיאה המתקבלת מאלגוריתם ‪ KSVD‬כתלות בשגיאת הסיווג הנעה בין‬
‫‪ 2.21‬עד ‪ .2.1‬בגרפים הימניים‪ ,‬המתאימים לסיווג עפ"י דלילות‪ ,‬מופיעה השגיאה המתקבלת כתלות‬
‫במספר האטומים – בין ‪ 3‬ל‪ .14-‬להלן הגרפים של התוצאות‪:‬‬
‫‪Figure9 : Pavia University - KSVD Model Selection Curve with train error parameter = 2.5%‬‬
‫‪Sparsity for classification (omp2). Train Parameters: train error = 0.025‬‬
‫‪Error for classification (omp). Train Parameters: train error = 0.025‬‬
‫‪30‬‬
‫‪Testing error‬‬
‫‪Training error‬‬
‫‪Testing error‬‬
‫‪Training error‬‬
‫‪50‬‬
‫‪29‬‬
‫‪45‬‬
‫‪28‬‬
‫]‪Error [%‬‬
‫]‪Error [%‬‬
‫‪27‬‬
‫‪40‬‬
‫‪26‬‬
‫‪35‬‬
‫‪25‬‬
‫‪30‬‬
‫‪24‬‬
‫‪13‬‬
‫‪12‬‬
‫‪11‬‬
‫‪8‬‬
‫‪9‬‬
‫‪10‬‬
‫‪sparsity parameter‬‬
‫‪7‬‬
‫‪6‬‬
‫‪0.1‬‬
‫‪5‬‬
‫‪0.08‬‬
‫‪0.04‬‬
‫‪0.06‬‬
‫‪test error parameter‬‬
‫‪0.02‬‬
‫‪Figure11 : Pavia University - KSVD Model Selection Curve with train error parameter = 5%‬‬
‫‪Sparsity for classification (omp2). Train Parameters: train error = 0.05 Error for classification (omp). Train Parameters: train error = 0.05‬‬
‫‪30.5‬‬
‫‪Testing error‬‬
‫‪Training error‬‬
‫‪Testing error‬‬
‫‪Training error‬‬
‫‪30‬‬
‫‪46‬‬
‫‪44‬‬
‫‪29.5‬‬
‫‪42‬‬
‫‪29‬‬
‫]‪Error [%‬‬
‫‪28‬‬
‫‪38‬‬
‫‪36‬‬
‫‪27.5‬‬
‫‪34‬‬
‫‪27‬‬
‫‪32‬‬
‫‪26.5‬‬
‫‪13‬‬
‫‪12‬‬
‫‪11‬‬
‫‪8‬‬
‫‪9‬‬
‫‪10‬‬
‫‪sparsity parameter‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫]‪Error [%‬‬
‫‪28.5‬‬
‫‪40‬‬
‫‪30‬‬
‫‪0.1‬‬
‫‪0.08‬‬
‫‪0.04‬‬
‫‪0.06‬‬
‫‪test error parameter‬‬
‫‪0.02‬‬
‫‪18‬‬
Figure11 : Pavia University - KSVD Model Selection Curve with train error parameter = 7.5%
Sparsity for classification (omp2). Train Parameters: train error = 0.075
28.5
Testing error
Training error
40
Testing error
Training error
28
38
27.5
36
27
Error [%]
Error [%]
Error for classification (omp). Train Parameters: train error = 0.075
34
26.5
26
32
25.5
25
30
24.5
28
0.02
0.04
0.06
test error parameter
0.08
0.1
5
6
7
8
9
10
sparsity parameter
11
12
13
Figure12 : Pavia University - KSVD Model Selection Curve with train error parameter = 10%
Sparsity for classification (omp2). Train Parameters: train error = 0.1
Error for classification (omp). Train Parameters: train error = 0.1
28.5
Testing error
Training error
28
Testing error
Training error
38
37
36
27.5
35
27
Error [%]
Error [%]
34
33
32
26.5
26
31
25.5
30
25
29
24.5
28
24
0.02
0.04
0.06
test error parameter
0.08
0.1
5
6
7
8
9
10
sparsity parameter
11
12
13
Figure13 : Pavia Center - KSVD Model Selection Curve with train error parameter = 2.5%
Sparsity for classification (omp2). Train Parameters: train error = 0.025 Error for classification (omp). Train Parameters: train error = 0.025
45
Testing error
Testing error
8
Training error
Training error
40
7.8
7.6
35
7.4
Error [%]
Error [%]
30
25
7.2
7
6.8
20
6.6
6.4
15
6.2
10
6
0.02
19
0.04
0.06
test error parameter
0.08
0.1
5
6
7
8
9
10
sparsity parameter
11
12
13
Figure14 : Pavia Center - KSVD Model Selection Curve with train error parameter = 5%
Sparsity for classification (omp2). Train Parameters: train error = 0.05 Error for classification (omp). Train Parameters: train error = 0.05
45
Testing error
Training error
7.2
35
7
30
Error [%]
Error [%]
Testing error
Training error
7.4
40
25
6.8
6.6
20
6.4
15
6.2
6
10
0.02
0.04
0.06
test error parameter
0.08
0.1
5
6
7
8
9
10
sparsity parameter
11
12
13
Figure15 : Pavia Center - KSVD Model Selection Curve with train error parameter = 7.5%
Sparsity for classification (omp2). Train Parameters: train error = 0.075 Error for classification (omp). Train Parameters: train error = 0.075
7.2
40
Testing error
Testing error
Training error
7
Training error
35
6.8
6.6
Error [%]
Error [%]
30
25
20
6.4
6.2
6
5.8
15
5.6
10
5.4
0.02
0.04
0.06
test error parameter
0.08
0.1
5
6
7
8
9
10
sparsity parameter
11
12
13
Figure16 : Pavia Center - KSVD Model Selection Curve with train error parameter = 10%
Sparsity for classification (omp2). Train Parameters: train error = 0.1 Error for classification (omp). Train Parameters: train error = 0.1
Testing error
Training error
35
Testing error
Training error
14
13
12
30
Error [%]
Error [%]
11
25
20
10
9
8
15
7
10
6
0.02
21
0.04
0.06
0.08
test error parameter
0.1
5
6
7
8
9
10
11
sparsity parameter
12
13
Figure17 : Indian Pines - KSVD Model Selection Curve with train error parameter = 2.5%
Sparsity for classification (omp2). Train Parameters: train error = 0.025 Error for classification (omp). Train Parameters: train error = 0.025
42.5
Testing error
Training error
95
Testing error
Training error
42
41.5
41
90
Error [%]
Error [%]
40.5
85
40
39.5
39
80
38.5
38
75
37.5
0.02
0.04
0.06
test error parameter
0.08
0.1
5
6
7
8
9
10
sparsity parameter
11
12
13
Figure18 : Indian Pines - KSVD Model Selection Curve with train error parameter = 5%
Sparsity for classification (omp2). Train Parameters: train error = 0.05
98
Error for classification (omp). Train Parameters: train error = 0.05
Testing error
Training error
96
Testing error
Training error
47
94
46
92
45
Error [%]
Error [%]
90
88
86
84
44
43
82
80
42
78
41
0.02
0.04
0.06
test error parameter
0.08
0.1
5
6
7
8
9
10
sparsity parameter
11
12
13
Figure19 : Indian Pines - KSVD Model Selection Curve with train error parameter = 7.5%
Sparsity for classification (omp2). Train Parameters: train error = 0.075 Error for classification (omp). Train Parameters: train error = 0.075
98
Testing error
Training error
96
48
94
47.5
92
47
90
46.5
Error [%]
Error [%]
Testing error
Training error
48.5
88
46
45.5
86
84
45
82
44.5
44
80
43.5
0.02
21
0.04
0.06
test error parameter
0.08
0.1
5
6
7
8
9
10
sparsity parameter
11
12
13
Figure21 : Indian Pines - KSVD Model Selection Curve with train error parameter = 10%
Sparsity for classification (omp2). Train Parameters: train error = 0.1 Error for classification (omp). Train Parameters: train error = 0.1
98
49.5
Testing error
Training error
96
48.5
94
48
Error [%]
92
Error [%]
Testing error
Training error
49
90
88
47.5
47
46.5
86
46
84
45.5
82
45
80
0.02
0.04
0.06
0.08
test error parameter
0.1
5
6
7
8
9
10
11
sparsity parameter
12
Figure21 : Salinas - KSVD Model Selection Curve with train error parameter = 2.5%
Sparsity for classification (omp2). Train Parameters: train error = 0.025
14
Testing error
Training error
80
70
13.5
60
13
Error [%]
Error [%]
Error for classification (omp). Train Parameters: train error = 0.025
50
12.5
40
12
30
11.5
20
11
0.02
0.04
0.06
test error parameter
0.08
0.1
Testing error
Training error
5
6
7
8
9
10
sparsity parameter
11
12
13
Figure22 : Salinas - KSVD Model Selection Curve with train error parameter = 5%
Sparsity for classification (omp2). Train Parameters: train error = 0.05
Error for classification (omp). Train Parameters: train error = 0.05
Testing error
Training error
70
Testing error
Training error
13.2
13
60
12.8
12.6
Error [%]
Error [%]
50
40
12.4
12.2
12
30
11.8
11.6
20
11.4
0.02
22
0.04
0.06
test error parameter
0.08
0.1
5
6
7
8
9
10
sparsity parameter
11
12
13
13
Figure23 : Salinas - KSVD Model Selection Curve with train error parameter = 7.5%
Sparsity for classification (omp2). Train Parameters: train error = 0.075
70
Error for classification (omp). Train Parameters: train error = 0.075
Testing error
Training error
Testing error
Training error
13.5
60
13
Error [%]
Error [%]
50
40
12.5
30
12
20
11.5
0.02
0.04
0.06
test error parameter
0.08
0.1
5
6
7
8
9
10
sparsity parameter
11
12
13
Figure24 : Salinas - KSVD Model Selection Curve with train error parameter = 10%
Sparsity for classification (omp2). Train Parameters: train error = 0.1
Error for classification (omp). Train Parameters: train error = 0.1
Testing error
Training error
65
Testing error
Training error
60
13.5
55
13
45
Error [%]
Error [%]
50
40
12.5
35
30
12
25
20
11.5
15
0.02
23
0.04
0.06
test error parameter
0.08
0.1
5
6
7
8
9
10
sparsity parameter
11
12
13
‫סיכום התוצאות‬
‫כדי למצוא מהו האלגוריתם בעל הביצועים הטובים ביותר מבחינת אחוז שגיאה נמוך‪ ,‬מצאנו את‬
‫הפרמטרים האופטימליים עבור כל שיטה לכל אחת מהתמונות‪ .‬התוצאות והפרמטרים האופטימליים‬
‫המתאימים (בסוגריים) מופיעים בטבלה הבאה‪:‬‬
‫‪Table5 : Results Summary - Optimal Test Errors‬‬
‫‪KSVD – by‬‬
‫)‪sparcity (omp‬‬
‫‪(sparcity, train‬‬
‫)‪error‬‬
‫‪KSVD – by‬‬
‫‪error‬‬
‫)‪(omp2‬‬
‫‪(test error,‬‬
‫)‪train error‬‬
‫‪PCA‬‬
‫‪(energy limit‬‬
‫)]‪[%‬‬
‫‪KNN‬‬
‫‪(num.‬‬
‫)‪neighbours‬‬
‫‪74.39%‬‬
‫)‪(5,0.1‬‬
‫‪70.54%‬‬
‫)‪(0.0325, 0.025‬‬
‫‪66.85%‬‬
‫)‪(72.22‬‬
‫‪90.988%‬‬
‫)‪(5‬‬
‫‪Pavia‬‬
‫‪University‬‬
‫‪94.328%‬‬
‫)‪(5,0.1‬‬
‫‪92.546%‬‬
‫)‪(0.01,0.075‬‬
‫‪92.916%‬‬
‫)‪(70‬‬
‫‪98.799%‬‬
‫)‪(5‬‬
‫‪Pavia Center‬‬
‫‪61.01%‬‬
‫)‪(11, 0.025‬‬
‫‪28.76%‬‬
‫)‪(0.0325,0.025‬‬
‫‪67.2%‬‬
‫)‪(90‬‬
‫‪77.22%‬‬
‫)‪(5‬‬
‫‪Indian Pines‬‬
‫‪88.66%‬‬
‫)‪(11, 0.025‬‬
‫‪85.1%‬‬
‫)‪(0.01,0.075‬‬
‫‪84.48%‬‬
‫)‪(87.78‬‬
‫‪93.97%‬‬
‫)‪(1‬‬
‫‪Salinas‬‬
‫‪24‬‬
‫בטבלה הבאה מופיעים זמני הריצה של כל אחד מהאלגוריתמים‪ ,‬אשר חושבו באמצעות הפעלת‬
‫אלגוריתם הסיווג עם קבוצת אימון רנדומלית של ‪ 92%‬מהפיקסלים המתויגים וקבוצת בדיקה של‬
‫‪ 12%‬הפיקסלים המתויגים הנותרים‪ .‬הפרמטרים שנלקחו להרצת כל אחד מהאלגוריתמים הינם‬
‫הפרמטרים האופטימליים כפי שמופיעים בטבלה לעיל‪ .‬בנוסף‪ ,‬על מנת לדייק בחישוב הזמנים לקחנו‬
‫את הממוצע של ‪ 3‬הרצות של כל אחד מהאלגוריתמים‪.‬‬
‫כל המדידות התבצעו על שרת ה‪ MATLAB-‬של המעבדה (‪ ,)132.68.39.228‬שמכיל ‪ 4‬יחידות עיבוד‬
‫מסוג ‪.Intel® Core™ i7-3770 CPU @ 3.40GHz‬‬
‫כל התוצאות בטבלה הינן בשניות‪.‬‬
‫‪Table6 : Results Summary - Execution Times‬‬
‫‪KSVD – by‬‬
‫)‪sparcity (omp‬‬
‫‪KSVD – by‬‬
‫‪error‬‬
‫)‪(omp2‬‬
‫‪PCA‬‬
‫‪KNN‬‬
‫‪116.9194‬‬
‫‪100.2783‬‬
‫‪0.64591‬‬
‫‪15.9454‬‬
‫‪Pavia‬‬
‫‪University‬‬
‫‪832.8063‬‬
‫‪1221.5952‬‬
‫‪5.2376‬‬
‫‪240.7583‬‬
‫‪Pavia Center‬‬
‫‪14.9018‬‬
‫‪12.0678‬‬
‫‪0.49127‬‬
‫‪2.2987‬‬
‫‪Indian Pines‬‬
‫‪245.2654‬‬
‫‪220.8507‬‬
‫‪2.5795‬‬
‫‪72.8826‬‬
‫‪Salinas‬‬
‫על מנת להמחיש את התוצאות מובאות להלן תמונות (‪ )Figures 26-29‬המתארות את המחלקות‬
‫השונות בכל תמונה היפרספקטרלית שבדקנו‪ .‬עבור כל תמונה נציג קודם כל את התיוג האופטימלי‬
‫שהיה נתון לנו (‪ ,)Ground Truth‬ובנוסף את התיוג כפי שהתקבל מהרצת כל אחת מהאלגוריתמים על‬
‫כל אחת מהתמונות עם קבוצת אימון שמכילה ‪ 92%‬מהפיקסלים בתמונה‪ ,‬וסיווג כל הפיקסלים‬
‫בתמונה (כולל אלו של קבוצת האימון) באמצעות המסווג שהתקבל‪ ,‬כאשר כל אלגוריתם הורץ עם‬
‫הפרמטרים האופטימליים כפי שמופיעים בטבלה לעיל‪.‬‬
‫‪25‬‬
Figure25 : Pavia University - Labeled Images
Pavia University - Ground Truth
Pavia University - kNN
26
Pavia University - PCA
Pavia University - K-SVD (by error)
27
Pavia University - K-SVD (by sparcity)
Figure26 : Pavia Center - Labeled Images
Pavia Center - Ground Truth
Pavia Center - kNN
28
Pavia Center - PCA
Pavia Center - K-SVD (by error)
29
Pavia Center - K-SVD (by sparcity)
Figure27 : Indian Pines - Labeled Images
Indian Pines - Ground Truth
31
Indian Pines - kNN
Indian Pines - PCA
Indian Pines - K-SVD (by error)
Indian Pines - K-SVD (by sparcity)
Figure28 : Salinas - Labeled Images
Salinas - Ground Truth
Salinas - kNN
31
Salinas - PCA
Salinas - K-SVD (by error)
Salinas - K-SVD (by sparcity)
‫מסקנות והצעות לשיפור‬
‫סיכום ומסקנות‬
‫ניתן להסיק באופן כללי לגבי כל האלגוריתמים שאותם בחנו‪ ,‬שכאשר התמונה גדולה יותר‪ ,‬כלומר יש‬
‫יותר מידע‪ ,‬אז אחוז השגיאה בסיווג הוא נמוך יותר‪.‬‬
‫הדבר בולט במיוחד לגבי התמונה ‪ Pavia Center‬שהינה בגודל ‪ 1096*715‬עם ‪ 102‬קווים ספקטרליים‪,‬‬
‫שבה כל האלגוריתמים מצליחים להשיג אחוזי הצלחה של מעל ל‪ .92%-‬מנגד‪ ,‬בתמונה ‪Indain Pines‬‬
‫שהינה תמונה קטנה בגודל של ‪ 145*145‬עם ‪ 200‬קווים ספקטרליים כל האלגוריתמים מציגים‬
‫ביצוע ים ירודים‪ .‬לכן אנו מסיקים שככל שיש לנו יותר מידע‪ ,‬אז הסיווג יהיה טוב יותר משמעותית‪.‬‬
‫כפי שניתן לראות מטבלה ‪ ,3‬האלגוריתם בעל אחוז ההצלחה הגבוה ביותר באופן עקבי הוא‬
‫אלגוריתם ‪ .kNN‬האלגוריתם מצליח להגיע לרוב למעל ‪ 92%‬הצלחה‪ ,‬מה שמוביל למסקנה‬
‫שבתמונות ההיפרספקטרליות אותן בחנו‪ ,‬הוקטורים בתמונה שמשתייכים למחלקות זהות קרובים‬
‫אחד לשני במובן של נורמת ‪.L2‬‬
‫אף על פי כן‪ ,‬ניתן לראות מזמני הריצה (טבלה ‪ )4‬של ‪ kNN‬שזהו אלגוריתם בעל סיבוכיות זמן ריצה‬
‫גבוהה‪ ,‬משום שצריך לחפש עבור כל וקטור לסיווג מהתמונה את ‪ k‬השכנים הכי קרובים אליו מתוך‬
‫קבוצת האימון‪ ,‬שזו פעולה יקרה חישובית במיוחד אם קבוצת האימון גדולה‪ ,‬ואם מספר הקווים‬
‫הספקטרליים שמופיעים בתמונה הוא גבוה‪ .‬בנוסף לכך‪ ,‬סיבוכיות המקום של ‪ kNN‬גם כן גבוהה‪,‬‬
‫מכיוון שלמעשה בשלב האימון אנו בעצם צריכים לשמור את כל קבוצת האימון על מנת שנוכל לסווג‬
‫וקטורים חדשים‪ .‬לכן‪ ,‬האלגוריתם אינו יעיל חישובית‪ ,‬על אף שהוא נותן שגיאות קטנות יחסית‬
‫לאלגוריתמים האחרים‪.‬‬
‫כמו כן‪ ,‬ניתן להסיק לגבי אלגוריתם ‪ kNN‬שמספר השכנים האופטימלי הוא ‪ ,3‬שכן ב‪ 4-‬מתוך ‪3‬‬
‫תמונות מספר שכנים זה נותן את התוצאות הטובות ביותר מבחינת שגיאת סיווג מינימלית‪.‬‬
‫כפי שניתן לראות מטבלה ‪ ,4‬אלגוריתם ‪ PCA‬נותן באופן עקבי את זמני הריצה הנמוכים ביותר‪ ,‬והם‬
‫נמוכים משמעותית בהשוואה לאלגוריתמים האחרים שאותם בחנו‪ .‬למרות זאת‪ ,‬כפי שניתן לראות‬
‫מטבלה ‪ ,3‬שגיאת הסיווג של אלגוריתם ‪ PCA‬יותר גבוהה בהשוואה לאלגוריתמים האחרים‪.‬‬
‫כמו כן‪ ,‬מגרפים ‪ 3-4‬ניתן לראות שההתנהגות של אלגוריתם ‪ PCA‬אינה עקבית‪ ,‬וכן בגרף ‪ 09‬ניתן‬
‫לראות שהשונות של שגיאת הייצוג של כל אחד מהוקטורים בקבוצת הבדיקה בבסיס המתאים‬
‫למחלקה הנכונה שלו הינה יחסית גבוהה‪.‬‬
‫אנו יכולים לשער שהתנהגות הזו נובעת משגיאות ייצוג נומריות‪ ,‬והדבר נכון בעיקר כאשר מגדילים‬
‫את הפרמטר ‪ .energy limit‬מכיוון שכל הוקטורים מכל המחלקות נמצאים ב‪ ℝ -‬עבור  קבוע‬
‫כלשהו‪ ,‬אז ככל שה‪ energy limit-‬גדול יותר‪ ,‬אנו מתקרבים ל"שחזור מושלם" מבחינת‬
‫הטרנספורמציה להורדת מימד של ‪ ,PCA‬אך מבחינת הסיווג אנו לא נדע לאיזה מחלקה לשייך את‬
‫הוקטור בגלל ששגיאות הייצוג יהיו קטנות מאוד‪.‬‬
‫מהמסקנה שלעיל ומטבלה ‪ ,3‬ניתן להסיק שמחסום האנרגיה האופטימלי לשימוש באלגוריתם ‪PCA‬‬
‫הוא בסביבות ‪ ,72%‬על מנת להימנע מהתופעה שתיארנו לעיל‪.‬‬
‫לגבי אלגוריתם ‪ ,KSVD‬ניתן לראות שהדבר הבולט מטבלה ‪ 4‬הוא זמני הריצה הגבוהים יחסית לזמני‬
‫הריצה של האלגוריתמים האחרים‪ .‬יחד עם זאת‪ ,‬סיבוכיות המקום שהאלגוריתם צורך קטן יותר‬
‫בהשוואה ל‪ ,kNN-‬משום שאנו צריכים לשמור רק את המילונים של כל מחלקה‪ ,‬כאשר כל מילון מכיל‬
‫מספר אטומים קטן לפחות פי ‪ 12‬מגודל קבוצת האימון של המחלקה המתאימה‪.‬‬
‫בנוסף‪ ,‬בהשוואה לאלגוריתם ‪ PCA‬ניתן לומר ששני האלגוריתמים‪ PCA ,‬ו‪ ,KSVD-‬מבצעים הורדה של‬
‫ממד הבעיה‪ ,‬כל אחד ע"י פתרון בעיית אופטימיזציה שונה‪ .‬מנגד‪ ,‬השוני בין האלגוריתמים כפי‬
‫שמתבטא בגרפים של ‪ )Figures 9-24( KSVD‬לעומת הגרפים של ‪ )Figures 5-8( PCA‬הוא ש‪KSVD-‬‬
‫‪32‬‬
‫מתנהג בצורה עקבית ויציבה יותר‪ ,‬והתופעה שתוארה באלגוריתם ‪ PCA‬לא קיימת באלגוריתם ‪.KSVD‬‬
‫כמו כן‪ ,‬אלגוריתם ‪ KSVD‬מציג ביצועים טובים יותר בהשוואה ל‪ PCA-‬מבחינת שגיאת הסיווג כפי שניתן‬
‫לראות בטבלה ‪.3‬‬
‫מתוך טבלה ‪ ,3‬ניתן לראות שהשגיאות שהתקבלו בסיווג של ‪ KSVD‬באמצעות הפונקציה ‪ omp‬הינן‬
‫נמוכות יותר מהשגיאות שהתקבלו בסיווג באמצעות הפונקציה ‪ .omp2‬כמו כן‪ ,‬מתוך טבלה זאת ניתן‬
‫להסיק כי מבחינת פרמטר שגיאת האימון‪ ,‬הערך האופטימלי הוא ‪ ,2.5%‬אם כי זה לא חד‪-‬משמעי‪.‬‬
‫מבחינת הפרמטרים של שגיאת הבדיקה (של ‪ )omp‬ושל הדלילות (של ‪ ,)omp2‬לא ניתן להסיק חד‪-‬‬
‫משמעית מהם הערכים האופטימליים‪.‬‬
‫הבעייתיות בסיווג באמצעות ‪ KSVD‬היא בכך שהוא מכיל הרבה מאוד פרמטרים שאותם יש לקבוע‪,‬‬
‫ולעתים זוהי משימה לא פשוטה כלל שדורשת זמן רב בגלל הרצת האלגוריתם עם וריאציות רבות של‬
‫פרמטרים‪.‬‬
‫בנוסף לפרמטרים שהבאנו לעיל‪ ,‬ישנם עוד פרמטרים ל‪ KSVD-‬שלא השתמשנו בהם כגון מספר‬
‫האיטרציות שהאלגוריתם ללימוד המילון מבצע (ערך ברירת המחדל הוא ‪ 12‬איטרציות)‪ ,‬וכן תנאי‬
‫ההתחלה ללימוד המילון (כברירת מחדל האלגוריתם מגריל בהתחלה את האטומים באקראי מתוך‬
‫קבוצת האימון) שיכולים להשפיע על התוצאות‪.‬‬
‫הצעות לשיפור ומשימות עתידיות‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫כפי שראינו אלגוריתם ‪ kNN‬מציג את הביצועים הטובים ביותר מבחינת הסיווג‪ ,‬אך לא‬
‫מבחינת סיבוכיות זמן ריצה וסיבוכיות מקום‪ ,‬כאשר הסיבה נובעת לרוב מגודל קבוצת האימון‬
‫ומממד הבעיה‪.‬‬
‫האלגוריתמים ‪ PCA‬ו‪ KSVD-‬יכולים לשמש להורדת ממד הבעיה‪ ,‬ולאחר מכן אפשר להפעיל‬
‫את אלגוריתם ‪ kNN‬בתור המסווג על הבעיה בממד הנמוך יותר ובכך לחסוך בסיבוכיות זמן‬
‫הריצה וסיבוכיות המקום של ‪.kNN‬‬
‫כמו כן ניתן לשער שהדבר לא יפגע משמעותית באחוז ההצלחה של ‪ ,kNN‬מאחר ולמשל ב‪-‬‬
‫‪ PCA‬ראינו שרוב האנרגיה של קבוצת האימון מתרכזת לרוב בלכל היותר ‪ 12-42‬וקטורים‬
‫עצמיים‪ ,‬ולכן ניתן להפחית את הממד משמעותית אך לשמר את שגיאת הסיווג הנמוכה‪.‬‬
‫הרחבת קבוצת אלגוריתמי הסיווג ולכלול גם אלגוריתמים כמו ‪ Multiclass SVM‬או אלגוריתמי‬
‫סיווג אחרים שמיועדים בעיקר לסגמנטציה של תמונות‪.‬‬
‫שימוש בכלים של עיבוד תמונה כשלב של עיבוד מקדים לפני הסיווג‪ ,‬או בכלים שייחודים‬
‫לעיבוד תמונות היפרספקטרליות‪.‬‬
‫הרחבת קבוצת התמונות לבדיקה למאגר נרחב יותר‪ ,‬באופן שיאפשר למידה על מספר‬
‫תמונות ביחד‪ ,‬וסיווג של שאר התמונות במאגר‪.‬‬
‫‪33‬‬
‫ביבליוגרפיה‬
[1] Hyperspectral Imaging. Retrieved from Wikipedia:
http://en.wikipedia.org/wiki/Hyperspectral_imaging
[2] Hyperspectral Remote Sensing Scenes. Retrieved from University of the Basque Country:
http://www.ehu.es/ccwintco/index.php?title=Hyperspectral_Remote_Sensing_Scen
es
[3] Rubinstein, R. Matlab Tools. Retrieved from Ron Rubinstein's Homepage:
http://www.cs.technion.ac.il/~ronrubin/software.html
[4] Shalev-Shwartz, S., & Ben-David, S. Understanding Machine Learning.
34
‫נספחים‬
‫נספח א'‪ :‬בדיקות נוספות‬
‫עבור האלגוריתמים המורכבים יותר‪ PCA ,‬ו‪ ,KSVD-‬ביצענו מספר בדיקות נוספות כדי להראות את‬
‫השגיאות שנוצרות עקב שימוש באלגוריתמים אלו‪ .‬בדיקות נוספות אלו ביצענו אך ורק על התמונה‬
‫‪.Pavia University‬‬
‫‪PCA‬‬
‫בגרפים הבאים מוצגת הסטטיסטיקה של שגיאת השחזור בין וקטורי הבדיקה של כל מחלקה לבין‬
‫תוצאת הפעלת הטרנספורמציה שמתאימה למחלקה של כל אחד מוקטורי הבדיקה ולאחר מכן שחזור‬
‫באמצעות המטריצות המתאימות‪.‬‬
‫כלומר‪ ,‬לכל וקטור  בקבוצת הבדיקה שהמחלקה שלו היא ‪ ,‬חישבנו את שגיאת השחזור‪:‬‬
‫(  ̃‬
‫‖ )  ̃‬
‫ ‪‖ −‬‬
‫‪2‬‬
‫להלן הגרפים עבור ‪ 3 Folds‬מהרצה של האלגוריתם עם ‪:10-Fold Cross Validation‬‬
‫‪Figure29 : PCA - Representation Errors of Testing Vectors of 3 Folds‬‬
‫‪Distance between testing vectors of a single class and the projection of these vectors to‬‬
‫‪the PCA basis of that class - Fold 1‬‬
‫‪600‬‬
‫‪300‬‬
‫‪300‬‬
‫‪400‬‬
‫‪200‬‬
‫‪200‬‬
‫‪200‬‬
‫‪400‬‬
‫‪200‬‬
‫‪0‬‬
‫‪1000‬‬
‫‪500‬‬
‫‪0‬‬
‫‪100‬‬
‫‪50‬‬
‫‪0‬‬
‫‪100‬‬
‫‪2000‬‬
‫‪1000‬‬
‫‪0‬‬
‫‪100‬‬
‫‪0‬‬
‫‪500‬‬
‫‪0‬‬
‫‪400‬‬
‫‪400‬‬
‫‪400‬‬
‫‪300‬‬
‫‪300‬‬
‫‪300‬‬
‫‪200‬‬
‫‪200‬‬
‫‪200‬‬
‫‪100‬‬
‫‪200‬‬
‫‪100‬‬
‫‪0‬‬
‫‪100‬‬
‫‪1000‬‬
‫‪500‬‬
‫‪0‬‬
‫‪100‬‬
‫‪250‬‬
‫‪400‬‬
‫‪250‬‬
‫‪200‬‬
‫‪300‬‬
‫‪200‬‬
‫‪150‬‬
‫‪200‬‬
‫‪150‬‬
‫‪100‬‬
‫‪500‬‬
‫‪0‬‬
‫‪100‬‬
‫‪200‬‬
‫‪100‬‬
‫‪0‬‬
‫‪100‬‬
‫‪35‬‬
Distance between testing vectors of a single class and the projection of these vectors to
the PCA basis of that class - Fold 5
300
400
250
300
200
200
150
200
100
0
500
300
100
0
1000
2000
400
100
0
200
400
0
500
1000
0
50
100
300
300
200
200
200
100
0
500
1000
250
100
0
100
200
300
100
250
200
200
200
150
100
150
0
100
200
100
0
500
100
Distance between testing vectors of a single class and the projection of these vectors to
the PCA basis of that class - Fold 10
300
400
400
300
300
200
200
200
100
0
500
100
0
1000
2000
100
400
600
400
300
400
300
200
200
200
100
0
500
1000
250
0
0
100
200
100
300
300
200
200
0
200
400
0
500
1000
0
50
100
200
150
100
36
0
100
200
100
0
500
100
‫‪KSVD‬‬
‫עבור אלגוריתם ‪ KSVD‬חישבנו את הדלילות של הייצוג על קבוצת האימון‪ ,‬כאשר השתמשנו ב‪3-‬‬
‫המחלקות הראשונות של תמונת ‪ .Pavia University‬כמו כן חישבנו את שגיאת הייצוג של קבוצת‬
‫האימון‪ .‬כאן השתמשנו ב‪ 122-‬אטומים במילון‪ ,‬בניגוד להרצות הקודמות של ‪ KSVD‬בהן השתמשנו‬
‫בעשירית ממספר וקטורי האימון לאטומים במילון‪.‬‬
‫דלילות הייצוג של קבוצת האימון‪:‬‬
‫קיבלנו כי מספר הרכיבים במטריצה ‪ GAMMA‬בממוצע שאינם ‪ 2‬בכל מחלקה לפי ערך השגיאה הוא‪:‬‬
‫‪Table7 : KSVD - Sparsity of Training Set Representation‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪Edata\class‬‬
‫‪3.9380‬‬
‫‪2.4752‬‬
‫‪5.3624‬‬
‫‪6.2096‬‬
‫‪2.5%‬‬
‫‪1.141‬‬
‫‪1.0257‬‬
‫‪1.7824‬‬
‫‪1.677‬‬
‫‪5%‬‬
‫‪1.0646‬‬
‫‪1.0086‬‬
‫‪1.0164‬‬
‫‪1.0286‬‬
‫‪7.5%‬‬
‫‪1.0085‬‬
‫‪1‬‬
‫‪1.0312‬‬
‫‪1.0130‬‬
‫‪10%‬‬
‫שגיאת הייצוג המתקבלת‪:‬‬
‫קיבלנו כי השגיאה הממוצעת בכל מחלקה לפי ערך השגיאה המבוקש היא‪:‬‬
‫‪Table8 : KSVD - Representation Error‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪Edata\class‬‬
‫‪0.0878‬‬
‫‪0.0662‬‬
‫‪0.1371‬‬
‫‪0.1113‬‬
‫‪2.5%‬‬
‫‪0.1012‬‬
‫‪0.0673‬‬
‫‪0.1816‬‬
‫‪0.1343‬‬
‫‪5%‬‬
‫‪0.1022‬‬
‫‪0.0606‬‬
‫‪0.1901‬‬
‫‪0.1187‬‬
‫‪7.5%‬‬
‫‪0.1020‬‬
‫‪0.0615‬‬
‫‪0.2136‬‬
‫‪0.1537‬‬
‫‪10%‬‬
‫‪37‬‬