נושא הפרוייקט
מספר פרוייקט
מחלקה
שמות סטודנטים
אימייל
שמות מנחים
פיתוח אלגוריתמי אימון של רשתות נוירונים מותאמים ללימוד מכונה מבוזר במערכות IoT
Developing training algorithms for Distributed Machine Learning in IoT - Part 1
תקציר בעיברית
הטכנולוגיות החדשניות והמחקרים המובילים של היום משתמשים בלמידת מכונה ורשתות נוירונים מכיוון שהם נותנים את מירב המידע בצורה היעילה ביותר. למרבה הצער, הטכנולוגיות הללו עדיין דורשניות מאוד במשאבים וכוח מחשוב, שרק ניהיה יקר יותר ויותר. מטרת פרויקט זה הייתה להפוך את NerlNet, פלטפורמת ניסוי רשתות נוירונים מבוזרת, להיות מבצעית ואינפורמטיבית ככל האפשר, בכדי לתרום לתחום המחקר המתפתח הזה. NerlNet מחברת התקני מחשוב (כגון מחשבי PC חזקים, או מיקרו-בקרים קטנים) וישויות תקשורת רשת (כגון נתבים וחיישנים) כדי ליצור אינטרנט של דברים שבאמצעותו ניתן לחלק את העומס החישובי של אלגוריתמי ML ואימוני NN. פלטפורמת NerlNet משתמשת בהאצת החומרה של C++ כדי לנצל כל התקן חישובי במלואו, משתמשת באמינות התקשורת של Erlang כדי לחבר את הישויות הרבות של ה-IoT, ובאינטואיטיביות של Python לאינטראקציה של המשתמש עם המערכת. בדיקות שנעשו הראו שהמערכת יכולה להתמודד עם כמויות גדולות של מידע ושה-NNs המתקבלות מתכנסות היטב ומחזירות תוצאות טובות. לסיכום, NerlNet מוכנה כעת לעשות הרבה יותר בדיקות וניסויים שיתרמו למחקר רשתות נוירונים ורשתות מבוזרות.
תקציר באנגלית
Today’s new leading edge technologies and research are using MLs and Neural Networks, as they give the most information most efficiently. Unfortunately, these technologies are still very resource intensive and require heavy computing power, which gets expensive very quickly. The aim of this project was to make NerlNet, a distributed NN experimentation platform, operational and as informative as possible, to contribute to this new research. NerlNet connects computing devices (such as powerful PCs, or small microcontrollers) and network communication entities (such as routers and sensors) to create an internet of things with which to distribute the computational load of ML algorithms and NN training. The NerlNet platform uses C++’s hardware acceleration to utilize each device to its fullest computation potential, Erlang’s communication reliability to connect the many entities of the IoT, and Python’s intuitiveness for user interaction with the system. Tests done have shown that the system can handle large amounts of information and that the resulting NNs converge well and return good results. In conclusion, NerlNet is now ready to do a lot more tests which will contribute to NN and distributed network research.