Education, study and knowledge

רשתות עצביות עמוקות: מה הן וכיצד הן פועלות

רשתות עצביות עמוקות הן מושג המהווה את הארכיטקטורה הטכנולוגית העיקרית המשמשת במודלים של Deep Learning. לא ניתן להבין מבנים אלה מבלי להבין את הרעיון הכללי של רשתות עצביות מלאכותיות, הבסיסיות לבינה מלאכותית.

רשתות עצביות משמשות לאלף דברים: זיהוי לוחיות רישוי, שירים, פרצופים, קולות, או אפילו את הפירות במטבח שלנו. הם טכנולוגיה שימושית במיוחד, ולמרות העובדה שהם הפכו למעשיים רק לאחרונה, הם הולכים להיות העתיד של האנושות.

הַבָּא אנחנו הולכים לראות לעומק את הרעיון של רשתות עצביות מלאכותיות ומעמיקות, להבין כיצד הם פועלים, כיצד הם מאומנים וכיצד מתרחשות האינטראקציות בין הנוירונים השונים המהווים אותם.

  • מאמר קשור: "מהו מדע קוגניטיבי? הרעיונות הבסיסיים ושלבי הפיתוח שלו"

מהן רשתות עצביות עמוקות ומה מאפיין אותן?

רשתות עצביות עמוקות הן אחת הארכיטקטורות הטכנולוגיות החשובות ביותר בשימוש ב-Deep Learning או Deep Learning. הרשתות המלאכותיות המסוימות הללו זכו לצמיחה מסחררת בשנים האחרונות מכיוון שהן מהוות היבט בסיסי בכל הקשור לזיהוי כל מיני דפוסים. בינה מלאכותית קיימת הודות לתפעול של רשתות מסוימות אלו, אשר, ב למעשה, הם הופכים להיות העתק של איך המוח שלנו פועל, אם כי במצב טכנולוגי ו מתמטיקה.

instagram story viewer

לפני שנמשיך יותר למה הן רשתות עצביות עמוקות, עלינו להבין תחילה כיצד פועלות רשתות עצביות מלאכותיות באופן כללי ולמה הן מיועדות. לרשתות עצביות הן ענף של "למידת מכונה" שהייתה לה השפעה עצומה בשנים האחרונות, עוזר למתכנתים ומדעני מחשב לבנות דברים כמו צ'טבוטים שכשאנחנו מדברים איתם, גורמים לנו לחשוב שאנחנו מדברים עם בני אדם אמיתיים.

רשתות עצבים מלאכותיות שימשו גם עם מכוניות בנהיגה עצמית, יישומים ניידים שמזהים את הפנים שלנו והופכים אותם למה שאנחנו רוצים ועוד רבים נוספים פונקציות. ישימותו נרחבת מאוד, משמשת כבסיס לבינה מלאכותית מודרנית ובעלת אינסוף שימושים מועילים ליום-יום שלנו.

רשתות עצבים מלאכותיות

בואו נדמיין שאנחנו במטבח שלנו ואנחנו מחליטים לחפש תפוז, משימה פשוטה מאוד.. אנחנו יודעים לזהות תפוז בקלות רבה ואנחנו גם יודעים להבדיל אותו מפירות אחרים שאנחנו מוצאים במטבח כמו בננות, תפוחים ואגסים. כפי ש? כי במוח שלנו מאוד הטמענו מהן התכונות האופייניות לתפוז: שלו הגודל שלו, הצורה שלו, הצבע שיש לו, איך הוא מריח... כל אלה הם פרמטרים שאנו משתמשים בהם כדי למצוא תפוז.

זו משימה פשוטה לבני אדם, אבל... האם גם מחשב יכול לעשות את זה? התשובה היא כן. באופן עקרוני, זה יהיה מספיק להגדיר את אותם פרמטרים ולהקצות ערך לצומת או משהו שאנחנו יכולים לקרוא לו "נוירון מלאכותי". היינו אומרים לאותו נוירון איך הם תפוזים, תוך ציון גודלם, משקלם, צורתם, צבעם או כל פרמטר אחר שאנו מייחסים לפרי זה. לאחר מידע זה, צפוי שהנוירון יידע לזהות תפוז כשמציגים אותו.

אם בחרנו היטב את הפרמטרים, יהיה לכם קל להבדיל בין תפוזים לדברים שאינם תפוזים רק על ידי התחשבות במאפיינים הללו. כאשר מוצגת תמונה של פרי כלשהו, ​​אותו נוירון יחפש את המאפיינים הקשורים לתפוז ולהחליט אם לכלול אותו בקטגוריה "כתום" או בקטגוריה "אחר פרי". במונחים סטטיסטיים, זה יהיה למצוא אזור בגרף פרמטרים שמתאים למה שיש מחפש אזור שיקיף את כל חתיכות הפרי שחולקות את אותו גודל, צורה, צבע, משקל וארומה כמו תפוזים.

בהתחלה כל זה נשמע קל מאוד לקוד, ולמעשה זה כן. זה עובד טוב מאוד להבדיל בין תפוז מבננה או תפוח, מכיוון שיש להם צבעים וצורות שונות. עם זאת, מה אם נציג בפניכם אשכולית? ומנדרינה גדולה מאוד? הם פירות שאפשר לבלבל בצורה מושלמת עם תפוז. האם הנוירון המלאכותי יצליח להבדיל בעצמו בין תפוזים ואשכוליות? התשובה היא לא, ולמעשה כנראה חושבים שהם זהים.

הבעיה עם שימוש רק בשכבה אחת של נוירונים מלאכותיים, או מה שזה אותו דבר, רק שימוש תחילה רק בתאי עצב פשוטים, היא ליצור גבולות החלטה מאוד לא מדויקים כאשר מציגים לך משהו שיש לו הרבה מאפיינים משותפים למה שאתה אמור להיות מסוגל לזהות, אבל במציאות זה לא. אם נציג משהו שנראה כמו תפוז, כמו אשכולית, גם אם זה לא הפרי הזה, זה יזהה אותו ככזה.

גבולות ההחלטה הללו, אם הם מיוצגים בצורה של גרף, יהיו תמיד ליניאריים. שימוש בנוירון מלאכותי בודד, כלומר, צומת בודד שיש בו פרמטרים משולבים קונקרטי, אך לא יכול ללמוד מעבר להם, יתקבלו גבולות החלטה קרובים מאוד. מְפוּזָר. המגבלה העיקרית שלו היא שהוא משתמש בשתי שיטות סטטיסטיות, במיוחד רגרסיה מרובה מחלקות ו רגרסיה לוגיסטית, כלומר כשיש ספק היא כוללת משהו שהוא לא מה שציפינו שיהיה. יזדהה.

אם היינו מחלקים את כל הפירות ל"תפוזים" ו"לא תפוזים", באמצעות נוירון אחד בלבד ברור שבננות, אגסים, תפוחים, אבטיחים וכל פרי שלא תואם בגודל, צבע, צורה, ארומה וכן הלאה עם תפוזים הייתי מכניס אותם לקטגוריית "לא". תפוזים". עם זאת, אשכוליות ומנדרינות יכניסו אותם לקטגוריית "תפוזים", ועושים את העבודה שעבורה הם תוכננו בצורה גרועה.

וכשאנחנו מדברים על תפוזים ואשכוליות נוכל לדבר על כלבים וזאבים, תרנגולות ותרנגולות, ספרים ומחברות... הכל מצבים אלו הם מקרים שבהם סדרה פשוטה של ​​"אם..." ("אם...") לא תספיק כדי להבחין בבירור בין זה לזה. אַחֵר. יש צורך במערכת מורכבת יותר, לא ליניארית, שהיא מדויקת יותר כשמדובר בהבחנה בין אלמנטים שונים. משהו שלוקח בחשבון שבין קווי הדמיון ייתכנו הבדלים. כאן נכנסות לתמונה רשתות עצביות.

יותר שכבות, יותר דומות למוח האנושי

רשתות עצבים מלאכותיות, כפי שהשם שלהן מרמז, הן מודלים מלאכותיים חישוביים בהשראת ברשתות העצביות של המוח האנושי, רשתות שלמעשה מחקות את תפקודו של איבר זה בִּיוֹלוֹגִי. מערכת זו שואבת השראה מתפקוד עצבי והיישום העיקרי שלה הוא זיהוי תבניות מכל הסוגים: זיהוי פנים, זיהוי קול, טביעת אצבע, כתב יד, לוחיות רישוי… זיהוי דפוסים עובד כמעט לכל דבר..

מכיוון שישנם נוירונים שונים, הפרמטרים המיושמים שונים ומתקבלת דרגת דיוק גבוהה יותר. רשתות עצביות אלו הן מערכות המאפשרות לנו להפריד פריטים לקטגוריות כאשר ההבדל יכול להיות עדין, להפריד ביניהם בצורה לא ליניארית, משהו שאי אפשר היה לעשות אחרת דֶרֶך.

עם צומת בודד, עם נוירון בודד, מה שנעשה בעת הטיפול במידע הוא רגרסיה מרובה מחלקות. על ידי הוספת נוירונים נוספים, מכיוון שלכל אחד מהם יש פונקציית הפעלה לא-לינארית משלו, אשר מתורגמת לשפה פשוטה יותר, גורמת להם להיות בעלי גבולות החלטה שהם מדויק יותר, מיוצג גרפי בצורה מעוקלת ולוקח בחשבון מאפיינים נוספים כאשר מבדילים בין "כתומים" ל"לא כתומים", כדי להמשיך עם הדוגמה הזו.

העקמומיות של גבולות ההחלטה הללו תהיה תלויה ישירות בכמה שכבות של נוירונים נוסיף לרשת העצבית שלנו. אותם שכבות של נוירונים, שהופכות את המערכת למורכבת ומדויקת יותר, הן למעשה רשתות עצביות עמוקות. באופן עקרוני, ככל שיש לנו יותר שכבות של רשתות עצביות עמוקות, כך התוכנית תהיה מדויקת ודומה יותר למוח האנושי.

בקיצור, רשתות עצביות הן לא יותר מאשר מערכת חכמה המאפשרת קבלת החלטות מדויקות יותר, בצורה מאוד דומה לאופן שבו אנו בני האדם עושים זאת. בני אדם מבוססים על ניסיון, לומדים מהסביבה שלנו. לדוגמה, אם נחזור למקרה של תפוז ואשכולית, אם מעולם לא ראינו אחד כזה, ניקח טעות מושלמת עם זה בתור תפוז. כשנכיר אותו, זה יהיה אז כשאנחנו כבר נדע לזהות אותו ולהבדיל אותו מתפוזים.

הדבר הראשון שנעשה הוא לתת כמה פרמטרים לרשתות העצבים כדי שידעו איך זה שאנחנו רוצים שילמד לזהות. לאחר מכן מגיע שלב הלמידה או ההכשרה, כך שהוא מדויק יותר ויותר ובאופן הדרגתי יש לו מרווח טעות קטן יותר. זה הזמן שבו נציג את הרשת העצבית שלנו עם תפוז ופירות אחרים. בשלב ההכשרה הם יקבלו מקרים בהם הם כתומים ומקרים בהם הם לא כתומים, מחפשים לראות אם הם ענו נכון ויגידו להם את התשובה הנכונה.

ננסה לעשות מספר רב של ניסיונות וקרוב ככל האפשר למציאות.. בדרך זו אנו מסייעים לרשת העצבית לפעול למקרים אמיתיים שמגיעים והיא יודעת להבחין נכון, באותו אופן שאדם יעשה בחיים האמיתיים. אם ההכשרה הייתה מספקת, לאחר בחירת פרמטרי זיהוי טובים ו סיווגו היטב, הרשת העצבית עומדת לקבל שיעור הצלחה גבוה מאוד של זיהוי דפוסים. גָבוֹהַ.

  • אולי יעניין אותך: "איך נוירונים עובדים?"

מה הם ואיך הם עובדים בדיוק?

עכשיו שראינו את הרעיון הכללי של מהן רשתות עצביות ואנחנו הולכים להבין בצורה מלאה יותר מה הן וכיצד האמולטורים האלה של הנוירונים של המוח האנושי עובדים והיכן צובעות רשתות עצביות עמוקות בכל זה תהליך.

בואו נדמיין שיש לנו את הרשת העצבית הבאה: יש לנו שלוש שכבות של נוירונים מלאכותיים. נניח שבשכבה הראשונה יש 4 נוירונים או צמתים, השנייה 3, ובאחרונה יש רק 2. כל זה דוגמה לרשת עצבית מלאכותית, קלה למדי להבנה.

השכבה הראשונה היא זו שמקבלת את הנתונים.כלומר, המידע שעלול להגיע בצורה של קול, תמונה, ניחוחות, דחפים חשמליים... זה הראשון שכבת היא שכבת הקלט, והיא אחראית על קבלת כל הנתונים כדי שתוכל לשלוח אותם מאוחר יותר אל הבא שכבות. במהלך האימון של הרשת העצבית שלנו, זו תהיה השכבה איתה אנחנו הולכים לעבוד תחילה, לתת אותה נתונים שבהם נשתמש כדי לראות כמה טוב אתה בביצוע תחזיות או בזיהוי המידע שניתן לך נותן.

השכבה השנייה של המודל ההיפותטי שלנו היא השכבה הנסתרת, שיושבת בדיוק באמצע השכבה הראשונה והאחרונה., כאילו הרשת העצבית שלנו היא כריך. בדוגמה זו יש לנו רק שכבה אחת נסתרת, אבל יכול להיות כמה שנרצה. אנחנו יכולים לדבר על 50, 100, 1000 או אפילו 50,000 שכבות. במהות, השכבות הנסתרות הללו הן החלק של הרשת העצבית שהיינו מכנים רשת העצבים העמוקה. ככל שהעומק גדול יותר, כך הרשת העצבית מורכבת יותר.

לבסוף יש לנו את השכבה השלישית של הדוגמה שלנו שהיא שכבת הפלט. שכבה זו, כפי ששמה מעיד, אחראית על קבלת מידע מהשכבות הקודמות, קבלת החלטה ומתן לנו מענה או תוצאה.

ברשת העצבית כל נוירון מלאכותי מחובר לכל אלה הבאים. בדוגמה שלנו, שבה הערנו שיש לנו שלוש שכבות של 4, 3 ו-2 נוירונים, ה-4 של שכבת הקלט הם מחוברים ל-3 של השכבה הנסתרת, וה-3 של השכבה הנסתרת עם ה-2 של הפלט, ונותנים לנו סך של 18 קשרים.

כל הנוירונים הללו קשורים לאלו של השכבה הבאה, שולחים את המידע לכיוון קלט->נסתר->פלט.. אם היו יותר שכבות נסתרות, היינו מדברים על מספר רב יותר של חיבורים, שולחים את המידע משכבה נסתרת לשכבה נסתרת עד שהוא מגיע לשכבת הפלט. שכבת הפלט, ברגע שהיא קיבלה את המידע, מה שהיא תעשה זה לתת לנו תוצאה על סמך המידע שקיבלה והדרך שלה לעבד אותו.

כאשר אנו מאמנים את האלגוריתם שלנו, כלומר את הרשת העצבית שלנו, התהליך הזה שזה עתה הסברנו הולך להתבצע פעמים רבות. אנחנו הולכים להעביר כמה נתונים לרשת, אנחנו הולכים לראות מה התוצאה נותנת לנו ואנו הולכים לנתח את זה ולהשוות את זה למה שציפינו שהתוצאה תיתן לנו. אם יש הבדל גדול בין הצפוי למה שמתקבל, זה אומר שיש מרווח טעות גבוה ולכן יש צורך לבצע כמה שינויים.

כיצד פועלים נוירונים מלאכותיים?

כעת אנו הולכים להבין את התפקוד האישי של הנוירונים הפועלים בתוך רשת עצבית. הנוירון מקבל קלט של מידע מהנוירון הקודם. נניח שהנוירון הזה מקבל שלוש כניסות מידע, כל אחד מגיע משלושת הנוירונים של השכבה הקודמת. בתורו, הנוירון הזה מייצר פלטים, במקרה זה נניח שהוא מחובר רק לנוירון מהשכבה הבאה.

כל קשר שיש לנוירון הזה עם שלושת הנוירונים של השכבה הקודמת מביא ערך "x", שהוא הערך שהנוירון הקודם שולח לנו.; ויש לו גם ערך "w", שהוא משקלו של החיבור הזה. משקל הוא ערך שעוזר לנו לתת חשיבות רבה יותר לחיבור אחד על פני אחרים. בקיצור, לכל קשר עם הנוירונים הקודמים יש ערך "x" ו-"w", המוכפלים (x·w).

גם לנו יהיה ערך שנקרא "הטיה" או הטיה המיוצגת עם "b" שהוא מספר השגיאות המעודד נוירונים מסוימים להפעיל בקלות רבה יותר מאחרים. בנוסף, יש לנו פונקציית הפעלה בתוך הנוירון, וזה מה שעושה את מידת הסיווג שלו של אלמנטים שונים (עמ'. למשל, תפוזים) אינו ליניארי. בפני עצמו, לכל נוירון יש פרמטרים שונים שצריך לקחת בחשבון, מה שגורם לכל המערכת, זוהי הרשת העצבית, לסווג בצורה לא ליניארית.

איך הנוירון יודע אם עליו להפעיל או לא? כלומר, מתי אתה יודע אם אתה צריך לשלוח מידע לשכבה הבאה? ובכן, החלטה זו נשלטת על ידי המשוואה הבאה:

רשת נוירונים

הנוסחה הזו מתכוונת שיש לבצע את הסכום של כל המשקולות "w" כפול כל הערכים של "x" שהנוירון מקבל מהשכבה הקודמת. נוסף לכך, ההטיה "b" מתווספת.

התוצאה של משוואה זו נשלחת לפונקציית הפעלה, שהיא פשוט פונקציה שאומרת לנו שאם התוצאה של המשוואה הזו גדולה מ-a מספר מסוים, הנוירון ישלח אות לשכבה הבאה, ואם הוא קטן, אז הוא לא ישלח לשלוח אותו אז כך מחליט נוירון מלאכותי אם לשלוח מידע לנוירונים או לא, באופן הבא: שכבה באמצעות פלט שנקרא לו "y", פלט שבתורו הוא הקלט "x" של הדברים הבאים עֲצָבוֹן.

ואיך מאמנים רשת שלמה?

הדבר הראשון שנעשה הוא להעביר נתונים לשכבה הראשונה, כפי שהערנו בעבר. שכבה זו תשלח מידע לשכבות הבאות, שהן השכבות הנסתרות או הרשת העצבית העמוקה. הנוירונים של שכבות אלו יופעלו או לא יפעלו בהתאם למידע שיתקבל. לבסוף, שכבת הפלט תיתן לנו תוצאה, אותה נשווה לערך לו חיכינו כדי לראות אם הרשת העצבית למדה מה לעשות נכון.

אם הוא לא למד טוב אז נבצע אינטראקציה נוספת, כלומר, אנו נציג בפניכם שוב מידע ונראה כיצד הרשת העצבית מתנהגת. בהתאם לתוצאות המתקבלות, ערכי "b" יתאימו, כלומר ההטיה של כל נוירון, וה- "w", זהו המשקל של כל קשר עם כל נוירון כדי להפחית את השגיאה. כדי לגלות כמה גדולה השגיאה הזו, נשתמש במשוואה אחרת, שהיא הבאה:

רשת נוירונים

משוואה זו היא השגיאה הריבועית הממוצעת של השורש. אנחנו הולכים לעשות את הסכום של y (x) שהוא הערך שהרשת שלנו נתנה לנו באינטראקציה מינוס "a", שזה הערך שציפינו שהיא תיתן לנו, מורם לריבוע. לבסוף, אנחנו הולכים להכפיל את הסכום הזה ב-1/2n, כלומר "n" זה מספר האינטראקציות ששלחנו כדי לאמן את הרשת העצבית שלנו.

לדוגמה, נניח שיש לנו את הערכים הבאים

רשת נוירונים

העמודה הראשונה "y (x)" מייצגת את מה שהרשת שלנו נתנה לנו בכל אחת מארבע האינטראקציות שבדקנו אותה. הערכים שהשגנו, כפי שניתן לראות, אינם תואמים לאלה של העמודה השנייה "a", שהם הערכים הרצויים לכל אחת מהאינטראקציות שנבדקו. העמודה האחרונה מייצגת את השגיאה של כל אינטראקציה.

יישום הנוסחה הנ"ל ושימוש בנתונים אלה כאן, תוך זכור שבמקרה זה n = 4 (4 אינטראקציות) נותן לנו ערך של 3.87, שהוא השגיאה הריבועית הממוצעת שיש לרשת העצבית שלנו באלה רגעים. כשאנחנו יודעים את השגיאה, מה שעלינו לעשות עכשיו זה, כפי שהערנו בעבר, לשנות את ההטיה ואת משקלים של כל אחד מהנוירונים והאינטראקציות שלהם מתוך כוונה שבדרך זו השגיאה לְהַפחִית.

בשלב זה, מהנדסים ומדעני מחשב פונים אלגוריתם הנקרא ירידה בדרגה שבאמצעותם הם יכולים להשיג ערכים כדי לבדוק ולשנות את ההטיה והמשקל של כל נוירון מלאכותי כך שבדרך זו מתקבלת שגיאה נמוכה יותר, המתקרבת לתחזית או לתוצאה מבוקש. זה עניין של בדיקה וככל שנעשה יותר אינטראקציות, כך יהיו יותר הכשרה והרשת תלמד יותר.

ברגע שהרשת העצבית מאומנת כראוי, זה יהיה כאשר היא תיתן לנו תחזיות וזיהויים מדויקים ומהימנים. בשלב זה תהיה לנו רשת שבכל אחד מהנוירונים שלה יהיה ערך של משקל מוגדר, עם הטיה מבוקרת ועם יכולת החלטה שתעשה את המערכת עֲבוֹדָה.

הפניות ביבליוגרפיות:

  • פוייג, א. [AMP Tech] (2017, 28 ביולי). כיצד פועלות רשתות עצבים? [קובץ וידיאו]. התאושש מ https://www.youtube.com/watch? v=IQMoglp-fBk&ab_channel=AMPTech
  • סנטאולה, ג'יי. [תן לעצמך וולוג] (2017, 11 באפריל) CienciaClip Challenge - מהן רשתות עצביות? [קובץ וידיאו]. https://www.youtube.com/watch? v=rTpr6DuY4LU&ab_channel=DateunVlog
  • שמידהובר, ג'יי. (2015). "למידה עמוקה ברשתות עצביות: סקירה כללית". רשתות עצביות. 61: 85–117. arXiv: 1404.7828. doi: 10.1016/j.neunet.2014.09.003. PMID 25462637. S2CID 11715509
תקופת הברונזה: מאפיינים ושלבים של שלב היסטורי זה

תקופת הברונזה: מאפיינים ושלבים של שלב היסטורי זה

משהו פשוט כמו סגסוגת של שתי מתכות הוביל לתקופה קריטית להתפתחות האנושות. תקופת הברונזה הייתה המעבר...

קרא עוד

15 סרטים עצובים, מחממים את הלב ומדכדכים להרהר

סרטים דרמטיים מערבבים משהו בתוכנו והם משאירים אותנו מרגישים עצובים. עם זאת, הם גם עוזרים לנו לחוש...

קרא עוד

מי היו האשורים?

האשורים תמיד ייזכרו הן בזכות העת העתיקה שלה כציוויליזציה והן בשל השיטות הצבאיות האכזריות שלה שמטי...

קרא עוד