ההבדל העיקרי ביותר בין רשת עצבית ביולוגית לבין רשת עצבית מלאכותית הוא שמחשבים פועלים בעיקר בעיבוד טורי, או עם כמות קטנה של עיבוד מקבילי, ואילו מוחות של יצורים פועלים בעיבוד מקבילי. על פי התזה של צ'רץ' וטיורינג, המודל שקול למכונת טיורינג, (כיוון שכל חישוב שיכול להעשות בידי מחשב מקבילי יכול להעשות גם בידי מחשב טורי).
ישנם עוד כמה הבדלים חשובים בין רשתות עצביות במוח לרשתות מלאכותיות. במוח יש מספר עצום של מרכיבים (בערך 1011), שכל אחד מהם מחובר למרכיבים רבים (בין 1,000 ל־10,000 בממוצע). כל אחד מהמרכיבים האלה מבצע חישוב פשוט למדי, שטבעו עדיין אינו ברור לחלוטין, יחסית באיטיות (פחות מקילוהרץ אחד), המבוסס בעיקר על מידע שהוא מקבל מהחיבורים המקומיים שלו. במערכות מלאכותיות, תאי העצב מחוברים ביניהם באופן אחיד, וכולם מבצעים את אותה הפעולה החישובית. לכל חיבור מיוחס משקל מספרי כלשהו. הפלט של כל תא הוא ערך מספרי יחיד, שמחושב כתוצאה של סכום הפעולות של תאי הקלט והמשקל היחסי שלהם. אפשר גם לחלק את רשתות תאי העצב לשתי קבוצות שונות, בעלות למידה מונחית או לא מונחית. רשתות מונחות, כמו הפרספטרון, משתמשות באלגוריתם למידה מונחה, כלומר שהמערכת צריכה לקלוט ולפלוט מידע בשלב הלמידה. לעומת זאת, רשתות לא מונחות, כמו רשת קוהונן, מצריכות רק שמידע יקלט, ללא פלט. מערכות אלה מארגנות את המידע הנקלט בעצמן, על פי מדד דמיון.
היסטוריה.
שנת 1943 - ההתפתחות מדע רשתות העצביות.
בשנת 1943 פרסמו שני חוקרים אמריקאים, ורן מקלוך וולטר פיטס מאמר, שהיווה בסיס להתפתחותו של מדע הרשתות העצביות. המאמר הציע מודל פשוט של פעולת הנוירון, שעליו מבוססות הרשתות המלאכותיות עד היום:
הנוירון מקבל קלטים (נהוג לסמן ב־i), כשלכל אחד מהם משקל יחסי (נהוג לסמן ב־w). כל נתון נשקל על ידי הכפלתו במשקולת המתאימה לו, כאשר התוצאה מסכום הקלטים המשוקללים:
סכום = formula_1.
אם סכום זה (המהווה במובן הביולוגי את הגירוי הכולל המגיע לנוירון) גבוה מסף ידוע כלשהו, הנוירון מעביר פלט "1"; אם לא, הפלט הוא "0".
תהליך זה מזכיר פעולה של נוירון אמיתי, המפיק אות חשמלי כשהגירוי מספיק.
סידור המשקולות מהותי לתפקוד הרשת. המשקולות הן אלו שקובעות מהי התבנית שתזוהה, וקביעתן היא המשימה המרכזית של תוכנית הרשת העצבית.
שנת 1969 - נטישת הרשתות בעקבות מאמר על המגבלות ברשתות נוירונים.
בשנת 1969 פרסמו מרווין מינסקי וסימור פפרט (Minsky and Papert) את ספרם "Perceptrons", שבו תקפו את הרעיונות העומדים מאחורי הרשתות העצביות. הספר הציג פגם בנוירון הבסיסי.
הבעיה הייתה זו: לא משנה אילו משקולות נשים על הקלט, לא נוכל ליצור את השער הלוגי Exclusive OR) XOR) עבור רשת עם שכבה יחידה. בנוסף טענו, שלמחשבים אין די כוח חישוב כדי להתמודד עם רשתות מורכבות. טיעונים אלו ונוספים עיכבו את המשך התפתחותן של הרשתות העצביות במשך שנים רבות. חוקרים רבים נטשו את התחום בחשבם כי אם הנוירון לא יכול לבצע משימה פשוטה זו, אין טעם בהמשך המחקר.
למעשה, מה שהיה נחוץ כדי להתגבר על בעיה זו ועל בעיות דומות לה הוא לא נוירון אחד, כי אם רשת של נוירונים, והמתמטיקאי הרוסי אנדריי קולמוגורוב כבר הראה כי רשת נוירונים ב־3 שכבות תוכל לפתור XOR.
שנת 1982 - עלייתן מחדש של רשתות הנוירונים בשנות השמונים.
אף על פי שהפתרון היה ידוע, רק בשנים 1982–1983 התעורר שוב העניין במחקר הרשתות העצביות. בזמן זה, "אלגוריתם הפעפוע לאחור" זכה לפרסום נרחב.
שנות האלפיים - למידה עמוקה.
רשתות עצביות מלאכותיות זכו לעדנה מחודשת החל מהעשור הראשון של שנות ה־2000. בתקופה זו החל שימוש פופולרי במושג "deep belief nets" ובקיצור רשתות עמוקות שנטבע במאמר המשפיע מ־2006 של הינטון, אוסינדרו וטה. במסגרת למידה עמוקה נעשה נפוץ השימוש ברשתות עצביות מלאכותיות שבהן מספר שכבות חבויות.
בתקופה זו גברה ההתעניינות של חברות מסחריות ברשתות עצביות מלאכותיות. מאז 2012, כל המנצחות בתחרויות ראייה ממוחשבת גדולות בתחום זיהוי אובייקטים, כגון תחרות ImageNet, מבוססות על למידה עמוקה.
באופן טבעי, לאחר שב-2012, "למידה עמוקה" הייתה ה"אלגוריתם" שניצח את תחרות ImageNet, ארכיטקטורות הרשתות זכתה לתשומת לב רבה, הן באקדמיה והן בתעשייה.
מבנה רשת עצבית.
רשת נוירונים מורכבת ממספר רב של תאי בסיס, כך שכל תא בסיס מבצע חישוב פשוט יחסית. לכל תא מספר כניסות ויציאה אחת שערכה הוא פונקציה כלשהי של הכניסות. יציאה של תא מסוים יכולה להזין מספר כניסות של תאים שונים.
ישנם מודלים רבים של רשתות עצביות. המשותף לכולם הוא קיומן של יחידות עיבוד בדידות (המקבילה במודל לנוירונים הביולוגיים) הקשורות ביניהן בקשרים (בדומה לקשרים הקיימים בין הנוירונים הביולוגיים). הפרטים - מספר הנוירונים, מספר הקשרים, מבנה הרשת (סידור בשכבות, מספר השכבות) - משתנים ממודל למודל. מקובל להשתמש בכלים מתחום האלגברה הליניארית כגון מטריצות ווקטורים על־מנת לייצג את הנוירונים והקשרים ביניהם. הפעולה שמבצע כל נוירון על הקלט שלו בדרך כלל מיוצגת על ידי פונקציה.
רשת נוירונים מאופיינת על ידי:
רשתות נוירונים מורכבות ממספר רב של יחידות עיבוד פשוטות הנקראות נוירונים, אשר מחוברות באופן היררכי ומובנות בשכבות. השכבה הראשונה נועדה לקלוט מידע לרשת, השכבה האמצעית ידועה כשכבה החבויה (במודלים שונים עשויים להיות יותר מאחת כזו), ולבסוף השכבה האחרונה אשר נועדה להחזיר את המידע המעובד כפלט. הצמתים בכל שכבה מחוברים באופן מלא לצמתים בשכבות הסמוכות באמצעות חיבור ישיר בין הנוירונים, כאשר לכל קשר קיים משקל מסוים. המשקל בכל קשר קובע עד כמה רלוונטי המידע שעובר דרכו, והאם על הרשת להשתמש בו על מנת לפתור את הבעיה. כל צומת בשכבת הקלט (השכבה הראשונה) מייצג תכונה שונה מהמבנה, ושכבת הפלטים מייצגת את הפתרון של הבעיה. בשכבה האמצעית והחיצונית קיימים "ערכי סף" הניתנים לכיול במערכת ממוחשבת, וקובעים את חשיבות הקשרים השונים,
ברשת ישנם שלושה סוגי שכבות:
פונקציית אקטיבציה.
כמה מהתכונות שעשויות להיות שימושיות לפונקציית אקטיבציה:
הטבלה הבאה משווה את התכונות של מספר פונקציות אקטיבציה:
&lt;/math&gt;
with formula_25 and formula_26
הטבלה הבאה מרכזת פונקציות אקטיבציה שאינן פונקציות של משתנה יחיד מהשכבה או השכבות הקודמות:
ארכיטקטורות רשת.
ארכיטקטורות רשת בולטות כוללות את "המשפחות" שלהלן:
אלגוריתם ללימוד הרשת.
הקלטים לנוירון מסוכמים בסכום משוקלל, ואם התוצאה עוברת ערך סף מסוים, הקלט מועבר ליציאה. תצורת הרשת המקובלת ביותר היא זרימה קדימה (Feed Forward) – זאת אומרת, שכבות של נוירונים עם חיבור של כולם עם כולם בין שכבות צמודות. השכבות שבין שכבת הקלט לשכבת הפלט נקראות שכבות חבויות. בהינתן רשת בה כוונו המשקולות, חישוב על ידה מתבצע על ידי הזנת הקלטים לשכבת הקלט וקבלת התוצאה שחלחלה ברשת לשכבת הפלט. מספר נוירונים רב מדי בשכבות החבויות יכול לגרום להתאמת יתר (over-fitting) על סדרת הלימוד. ישנה חשיבות לכך שפונקציית הסף ביציאה מהנוירון תהיה לא ליניארית כדי לפתור בעיות ברמת קושי גבוהה בעזרת הרשת.
הפונקציה אותה מממש כל תא היא פונקציית סיגמואיד (Sigmoid) המתוארת בשרטוט "Sigmoid Unit":
הביטויים המפורשים הם:
formula_34
הפונקציה formula_35 מקיימת תכונה יפה:
אם כן, הרשת בה השתמשנו היא רשת בעלת 3 שכבות, בכל שכבה מספר תאים כשכל תא מממש Sigmoid unit.
המשקולות שעל הקשרים בין הנוירונים (המשקולות הסינופטיות) הן אלה שאוגרות את הידע של הרשת במודל המפושט, לכן אלגוריתמי הלימוד השונים מבצעים את כוונון המשקולות לערכים שנותנים תוצאות חישוב טובות עבור מערך דוגמאות הלימוד. משימה זאת אינה פשוטה בגלל השכבות החבויות.
אחד מאלגוריתמי הלימוד המקובלים ביותר הוא אלגוריתם "פעפוע לאחור" (Back-Propagation או BP).
זהו אלגוריתם ללימוד מונחה (Supervised Learning). הוא מעביר את קלט הלימוד במורד רשת עם משקולות אקראיות, ומשווה את הפלט המתקבל לפלט הרצוי בכך שהוא מחשב את הטעות עבור כל נוירון פלט.
הרעיון העיקרי של BP הוא שהטעויות מחלחלות חזרה במעלה הרשת כך שמתבצעים כוונוני משקלות בעזרת אלגוריתם Gradient descent, שמנסה להקטין את הטעויות בפלט. אם תיקוני המשקולות נעשים בשיעור מספיק קטן, גדלים הסיכויים להתכנסות של הרשת לטעות מינימלית. אומנם תיתכן התכנסות למינימום מקומי בלבד, אך למעשה השיטה נותנת תוצאות טובות כיוון שניתן להפעילה שוב עם משקולות התחלתיות שונות. אף על פי שהלימוד בשיטה זו דורש משאבים רבים, ובעל זמן ריצה לא זניח, השימוש ברשת אחרי הלימוד הוא מהיר יותר.
אלגוריתם Gradient Descent.
את הרשת מאמנים על ידי עדכון המשקולות wi.
הרשת מוזנת בווקטור כניסה מסוים ונבחן מוצאה. בהתאם למוצא הדרוש עבור וקטור כניסה זה מעדכנים את המשקולות. אנו נדון רק באפשרות של עדכון המשקולות על מנת לצמצם את השגיאה הריבועית בין מוצא הרשת למוצא הדרוש. הניסוח המתמטי ל־Gradient Descent הוא:
קיבלנו את המשוואה לפיה נעדכן את המשקולות בכל איטרציה כדי להביא למינימום את השגיאה הריבועית במוצא.
נשים לב כי כמו בכל שימוש באלגוריתם Gradient Descent אפשר להתכנס למינימום מקומי.
אלגוריתם פעפוע לאחור (Back-Propagation).