פרוייקט בתמונות היפרספקטרליות מגישים :עוז גבריאלוב טלאור אברמוביץ מנחה :אמיר אדלר סמסטר אביב 2014 רקע • תמונה היפרספקטרלית – מורכבת מתחום רחב של תדרים ,החל מאור נראה ועד תת אדום • מולטיספקטרלי מול היפרספקטרלי – מספר בדיד של תחום צרים מול תחום אחד רחב • שימושים – ריגול ,חקלאות ,גיאולוגיה ועוד • יתרונות וחסרונות – מידע רב בתמונה המאפשר להבחין בין עצמים שונים – סיבוכיות גבוהה יותר ועלות הגדרת הבעייה • אוסף הדגימות – חלוקה לאימון ובדיקה – חלוקה סטטית של הדגימות לשתי קבוצות :אימון ובדיקה – חלוקה דינמית באמצעות אלגוריתם K-Fold Cross Validation • סוגי המחלקות – מחלקות ( )classesלדוגמא :מים ,אספלט וצמחייה • סיווג וקטור בדיקה למחלקה המתאימה – שימוש בוקטורי האימון ע"י אחד מהאלגוריתמים הבאים לשם קביעת סוג המחלקה של וקטור חדש ,מקבוצת הבדיקה הצגת האלגוריתמים אלגוריתמי סיווג • מרחב מדגם 𝒳 – במקרה שלנו 𝑑 ,𝒳 ⊂ ℝכאשר 𝑑 הוא מספר הקווים הספקטרליים בתמונה • קבוצת תיוגים 𝒴 – במקרה שלנו ,קבוצת התיוגים הכילה בין 9ל16- מחלקות שונות • קבוצת אימון של מספר סופי של דוגמאות מתויגות – }𝒴 ∈ 𝑖𝑦 𝑆 = { 𝑥1 ,𝑦1 , … , 𝑥𝑚 ,𝑦𝑚 ∶ 𝑥𝑖 ∈ 𝒳, תהליך הלמידה אימון על קבוצה סופית ,S ,של דוגמאות מסווגות קבלת מסווג/כלל סיווג סיווג של דוגמאות חדשות מתוך המרחב באמצעות המסווג K Nearest Neighbors (kNN) • האלגוריתם מתבסס על הקרבה בין וקטור שאותו יש לסווג 𝒳 ∈ 𝑥 לבין הוקטורים שבקבוצת האימון – מדד הקרבה שבו השתמשנו הוא L2 נורמת 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 its k closest (by L2 norm means) neighbors in the training sample 𝑆 )Principal Components Analysis (PCA • אלגוריתם הסיווג של PCAמתבסס על הטרנספורמציה הלינארית המוגדרת ע"י אלגוריתם הורדת הממד של PCA PCA demo 12 Samples on y=x with noise )First principal component (98% of energy y=x 10 – טרנספורמציה זו מתקבלת מפירוק SVD של המטריצה 𝑋 שעמודותיה הן 𝑚 הוקטורים של קבוצת האימון 8 4 | | – 𝑚𝑥 … 𝑋 = 𝑥1 | | – פירוק SVDשל 𝑋 מחזיר מטריצות 𝑉𝑈,𝐷, כך ש: 𝑇 𝑉𝐷𝑈 = 𝑋 𝐷 הינה מטריצה אלכסונית ,שנניח כי אברי אלכסונה מופיעים בסדר יורד ונסמנם ב𝑑𝑖 - 10 2 9 8 7 5 6 x 4 3 2 1 0 y 6 Principal Components Analysis (PCA) PCA Input: a training sample 𝑆 = { 𝑥1 , 𝑦1 , … , 𝑥𝑚 , 𝑦𝑚 : 𝑥𝑖 ∈ 𝒳, 𝑦𝑖 ∈ 𝒴} Parameter: E – energy limit Train: • Foreach class 𝑦 ∈ 𝒴: • Get the matrix 𝑋 𝑦 as defined. • 𝑈 𝑦 , 𝐷, 𝑉 = 𝑆𝑉𝐷(𝑋 𝑦 ). • Define 𝑛𝑦 to be the lowest 𝑛 such that • 𝑛 = max 𝑛 𝑦 𝑛 𝑖=1 𝑑𝑖 𝑖 𝑑𝑖 ≥ 𝐸. 𝑦∈𝒴 • Foreach class 𝑦 ∈ 𝒴 define 𝑈 𝑦 to be the matrix that contains the first 𝑛 columns of 𝑈 𝑦 , and save it. Classify: for every vector 𝑥 ∈ 𝒳, return arg min 𝑥 − 𝑈 𝑦∈𝒴 𝑦 𝑈 𝑦 𝐻 𝑥 2 K-SVD • ראשית נגדיר את 𝑋 ,מטריצת הוקטורים המנורמלים – 𝑖𝑥 𝑥𝑖 2 | – 𝑚𝑥 | = 𝑖𝑥 … | 𝑋 = 𝑥1 | • לכל מחלקה נפעיל את פונקציית KSVD – ] 𝐷 𝑦 = 𝐾𝑆𝑉𝐷[𝑋,𝐸1 – 𝑦 𝐷 היא המילון על פיו יתבצע הסיווג באחת משתי דרכים, סיווג לפי שגיאה או סיווג לפי דלילות ,ו 𝐸1 -היא שגיאת האימון K-SVD K-SVD Input: a training sample 𝑆 = 𝑥1 , 𝑦1 , … , 𝑥𝑚 , 𝑦𝑚 : 𝑥𝑖 ∈ 𝒳, 𝑦𝑖 ∈ 𝒴 Parameters: 𝑬𝟏 -Learning Error, T – Max. atoms, 𝑬𝟐 - Classify Error Train: • Get 𝑋 as described • Foreach class 𝑦 ∈ 𝒴: • 𝐷 𝑦 = 𝐾𝑆𝑉𝐷[𝑋, 𝐸1 ] Classify: • OMP – • Foreach vector 𝑥 ∈ 𝒳: 𝑦 • Foreach 𝑦 ∈ 𝒴: 𝐺𝐴𝑀𝑀𝐴𝑒𝑟𝑟𝑜𝑟 = 𝑂𝑀𝑃[𝐷 𝑦 , 𝑥, 𝑇] 𝑦 • return arg min 𝑥 − 𝐷 𝑦 ∗ 𝐺𝐴𝑀𝑀𝐴𝑒𝑟𝑟𝑜𝑟 2 𝑦∈𝒴 • OMP2 – • Foreach vector 𝑥 ∈ 𝒳: 𝑦 • Foreach 𝑦 ∈ 𝒴: 𝐺𝐴𝑀𝑀𝐴𝑠𝑝𝑎𝑟𝑠𝑒 = 𝑂𝑀𝑃2 𝐷 𝑦 , 𝑥, 𝐸2 𝑦 • return arg min 𝐺𝐴𝑀𝑀𝐴𝑠𝑝𝑎𝑟𝑠𝑒 𝑦∈𝒴 0 K Fold Cross Validation • אלגוריתם שנועד לבדוק את הביצועים של כל אחד מאלגוריתמי הלמידה, ועל מנת לקבוע את הפרמטרים האופטימליים של כל אלגוריתם Testing set Testing set Testing set Testing set K Fold Cross Validation ,• אלגוריתם שנועד לבדוק את הביצועים של כל אחד מאלגוריתמי הלמידה ועל מנת לקבוע את הפרמטרים האופטימליים של כל אלגוריתם 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 𝜃 ∈ Θ • For 𝑖 = 1, … , 𝑘 • ℎ𝑖,𝜃 = 𝐴(𝑆\𝑆𝑖 ; 𝜃) 1 • 𝑡𝑒𝑠𝑡𝑖𝑛𝑔 𝑒𝑟𝑟𝑜𝑟(𝜃) = 𝑘 𝑘𝑖=1 𝑥, 𝑦 ∈ 𝑆𝑖 ∶ ℎ𝑖,𝜃 𝑥 ≠ 𝑦 1 • 𝑡𝑟𝑎𝑖𝑛𝑖𝑛𝑔 𝑒𝑟𝑟𝑜𝑟 𝜃 = 𝑘 𝑘𝑖=1 𝑥, 𝑦 ∈ 𝑆\𝑆𝑖 ∶ ℎ𝑖,𝜃 𝑥 ≠ 𝑦 • Plot 𝑡𝑒𝑠𝑡𝑖𝑛𝑔 𝑒𝑟𝑟𝑜𝑟, 𝑡𝑟𝑎𝑖𝑛𝑖𝑛𝑔 𝑒𝑟𝑟𝑜𝑟 as function of 𝜃 (Model Selection Curve) • Output 𝜃 ∗ = arg min 𝑡𝑒𝑠𝑡𝑖𝑛𝑔 𝑒𝑟𝑟𝑜𝑟 𝜃 θ תוצאות כיצד ביצענו את הבדיקות? • לכל אלגוריתם קיימים פרמטרים המשפיעים על אחוז השגיאה המתקבל – :kNNמספר השכנים – 1,2,3,5,10,20,30 – :PCAסף האנרגיה – 0.7-0.9 – :KSVDשגיאת האימון – 0.025-0.01 • סיווג לפי שגיאה :שגיאת הסיווג 0.01-0.1 - • סיווג לפי דלילות :מספר האטומים המקסימלי – 5-13 • לכל תמונה מצאנו את הפרמטרים האופטימליים לכל אחד מהאלגוריתמים • כל אחד מ 3-אלגוריתמי הסיווג נבדק ע"י אלגוריתם K-Fold Cross Validationכאשר K=10 Pavia University Pavia University - Ground Truth Pavia University - kNN • 610 X 340 pixels • 103 spectral bands • 9 classes Pavia University - PCA Pavia University Pavia University - Ground Truth • 610 X 340 pixels • 103 spectral bands • 9 classes Pavia University - K-SVD (by error) Pavia University - K-SVD (by sparcity) • 1096 X 715 pixels • 102 spectral bands • 9 classes Pavia Center Pavia Center - Ground Truth Pavia Center - kNN Pavia Center - PCA • 1096 X 715 pixels • 102 spectral bands • 9 classes Pavia Center Pavia Center - Ground Truth Pavia Center - K-SVD (by error) Pavia Center - K-SVD (by sparcity) • 145 X 145 pixels • 200 spectral bands • 16 classes Indian Pines Indian Pines - Ground Truth Indian Pines - kNN Indian Pines - PCA Indian Pines - K-SVD (by error) Indian Pines - K-SVD (by sparcity) • 512 X 217 pixels • 204 spectral bands • 16 classes Salinas Salinas - Ground Truth Salinas - kNN Salinas - PCA Salinas - K-SVD (by error) Salinas - K-SVD (by sparcity) טבלה מסכמת של התוצאות KNN (num. neighbours) PCA (energy limit [%]) KSVD – by error (omp2) (test error, train error) KSVD – by sparcity (omp) (sparcity, train error) Pavia University 90.988% (5) 66.85% (72.22) 70.54% (0.0325, 0.025) 74.39% (5,0.1) Pavia Center 98.799% (5) 92.916% (70) 92.546% (0.01,0.075) 94.328% (5,0.1) Indian Pines 77.22% (5) 67.2% (90) 28.76% (0.0325,0.025) 61.01% (11, 0.025) Salinas 93.97% (1) 84.48% (87.78) 85.1% (0.01,0.075) 88.66% (11, 0.025) סיכום ומסקנות • תמונה גדולה יותר סיווג טוב יותר – ככל שהתמונה גדולה יותר ,כך יש יותר מידע והסיווג מוצלח יותר בכל האלגוריתמים • – kNNהאלגוריתם שנתן את תוצאות הסיווג הטובות ביותר – כלומר ,הוקטורים ששייכים לאותה מחלקה קרובים אחד לשני – למרות זאת kNN ,בעל סיבוכיות זמן ריצה וסיבוכיות מקום גבוהות • – PCAסיבוכיות זמן ריצה ומקום נמוכים ,אבל סיווג כלל אינו מושלם – התוצאות ש PCA-נותן בסיווג אינן עקביות כמו בkNN- – השונות של שגיאת השחזור של וקטורי הבדיקה למרחב המתאים למחלקה שלהם גבוהה • – KSVDסיווג טוב יותר ועקבי יותר מ PCA-עם אותה סיבוכיות מקום ,אך סיבוכיות זמן ריצה גבוהה – סיווג לפי דלילות ( )ompנותן תוצאה טובה יותר מאשר סיווג לפי שגיאה ()omp2 הצעות לשיפור • שילוב של אלגוריתם להורדת ממד ,ולאחר מכן הפעלת kNNעל הבעיה בממד החדש – למשל ,ע"י הפעלת PCAאו KSVDעל וקטורי האימון – בכך נוכל לחסוך בסיבוכיות זמן ומקום של kNN • הרחבת קבוצת אלגוריתמי הסיווג • עיבוד מקדים של התמונה לפני הסיווג ,למשל באמצעות כלים של עיבוד תמונה או כלים מיוחדים לשימוש בתמונות היפרספקטרליות • הרחבת מאגר התמונות לבדיקה – יאפשר אימון על קבוצת תמונות וסיווג יתר התמונות ביבליוגרפיה • Hyperspectral Imaging. Retrieved from Wikipedia: http://en.wikipedia.org/wiki/Hyperspectral_imaging • Hyperspectral Remote Sensing Scenes. Retrieved from University of the Basque Country: http://www.ehu.es/ccwintco/index.php?title=Hyperspectr al_Remote_Sensing_Scenes • Rubinstein, R. Matlab Tools. Retrieved from Ron Rubinstein's Homepage: http://www.cs.technion.ac.il/~ronrubin/software.html • Shalev-Shwartz, S., & Ben-David, S. Understanding Machine Learning. QUESTIONS?
© Copyright 2024