תמונות היפרספקטרליות
מגישים:
טלאור אברמוביץ
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
© Copyright 2025