לדלג לתוכן

Pybrain/מבוא

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי

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

ההגדרה של Pybrain כפי שמוצגת בתיעוד הרשמי שלה היא כדלקמן -

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

PyBrain הוא קיצור של Python-Based Reinforcement Learning, בינה מלאכותית וספריית רשתות עצבית. למעשה, המצאנו תחילה את השם ובהמשך הנדסנו לאחור את ה"שם האחורי" התיאורי הזה.

תכונות של Pybrain

[עריכה]

להלן התכונות של Pybrain -

רשתות

[עריכה]

רשת מורכבת ממודולים והם מחוברים באמצעות חיבורים. Pybrain תומך ברשתות עצביות כמו Feed-Forward Network, Recurrent Network וכו'.

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

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

רשתות חוזרות דומות לרשת Feed Forward; ההבדל היחיד הוא שהוא צריך לזכור את הנתונים בכל שלב. יש לשמור את ההיסטוריה של כל שלב.

מערכי נתונים

[עריכה]

מערכי נתונים הם הנתונים שיש לתת כדי לבדוק, לאמת ולהתאמן ברשתות. סוג מערך הנתונים שבו יש להשתמש תלוי במשימות שאנו הולכים לעשות עם Machine Learning. מערכי הנתונים הנפוצים ביותר שבהם Pybrain תומך הם SupervisedDataSet ו- ClassificationDataSet.

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

ClassificationDataSet - הוא משמש בעיקר כדי להתמודד עם בעיות סיווג. זה לוקח קלט, שדה יעד וגם שדה נוסף שנקרא "מחלקה" שהוא גיבוי אוטומטי של המטרות שניתנו. לדוגמה, הפלט יהיה 1 או 0 או שהפלט יקובץ יחד עם ערכים המבוססים על הקלט שניתן, כלומר, או שהוא ייפול במחלקה מסוימת אחת.

מְאַמֵן

[עריכה]

כאשר אנו יוצרים רשת, כלומר רשת עצבית, היא תתאמן על סמך נתוני האימון שניתנו לה. כעת, האם הרשת מאומנת כראוי או לא תהיה תלויה בחיזוי נתוני הבדיקה שנבדקו ברשת זו. הרעיון החשוב ביותר באימון Pybrain הוא השימוש ב-BackpropTrainer וב-TrainUntilConvergence.

BackpropTrainer - זהו מאמן שמאמן את הפרמטרים של מודול לפי מערך נתונים מפוקח או ClassificationDataSet (פוטנציאלי רציף) על ידי הפצה לאחור של השגיאות (לאורך זמן).

TrainUntilConvergence - הוא משמש לאימון המודול במערך הנתונים עד שהוא מתכנס.

כלים

[עריכה]

Pybrain מציעה מודולי כלים שיכולים לעזור לבנות רשת על ידי ייבוא ​​חבילה: pybrain.tools.shortcuts.buildNetwork

היתרונות של Pybrain

[עריכה]

היתרונות של Pybrain הם -

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

Pybrain משתמש ב-python כדי ליישם אותו וזה הופך אותו למהיר בפיתוח בהשוואה לשפות כמו Java/C++.

Pybrain עובד בקלות עם ספריות אחרות של python כדי להמחיש נתונים.

Pybrain מציעה תמיכה עבור רשתות פופולריות כמו Feed-Forward Network, Recurrent Networks, Neural Networks וכו'.

העבודה עם ‎.csv לטעינת מערכי נתונים היא קלה מאוד ב-Pybrain. זה גם מאפשר שימוש במערכי נתונים מספרייה אחרת.

אימון ובדיקת נתונים קלים באמצעות מאמני Pybrain.

מגבלות של Pybrain

[עריכה]

Pybrain מציע פחות עזרה עבור כל הבעיות העומדות בפניה. יש כמה שאילתות ללא מענה ב-stackoverflow וב-Google Group.

זרימת עבודה של Pybrain

לפי תיעוד Pybrain, הזרימה של למידת מכונה מוצגת באיור הבא -

זרימת עבודה של Pybrain

בהתחלה, יש לנו נתונים גולמיים אשר לאחר עיבוד מקדים ניתן להשתמש בהם עם Pybrain.

הזרימה של Pybrain מתחילה עם מערכי נתונים המחולקים לנתונים מאומנים ונתוני בדיקה.

הרשת נוצרת, ומערך הנתונים והרשת ניתנים למאמן.

המאמן מאמן את הנתונים ברשת ומסווג את התפוקות כשגיאה מאומנת ושגיאת אימות שניתן להמחיש.

ניתן לאמת את הנתונים שנבדקו כדי לראות אם הפלט תואם לנתונים המאומנים.

טרמינולוגיה

[עריכה]

ישנם מונחים חשובים שיש לקחת בחשבון בעת ​​עבודה עם Pybrain עבור למידת מכונה. הם כדלקמן -

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

נתונים מאומנים - הם הנתונים המשמשים לאימון רשת Pybrain.

בדיקת נתונים - אלו הנתונים המשמשים לבדיקת רשת Pybrain המאומנת.

מאמן - כאשר אנו יוצרים רשת, כלומר רשת עצבית, היא תתאמן על סמך נתוני האימון שניתנו לה. כעת, האם הרשת מאומנת כראוי או לא תהיה תלויה בחיזוי נתוני הבדיקה שנבדקו ברשת זו. הרעיון החשוב ביותר באימון Pybrain הוא השימוש ב-BackpropTrainer וב-TrainUntilConvergence.

BackpropTrainer - זהו מאמן שמאמן את הפרמטרים של מודול לפי מערך נתונים מפוקח או ClassificationDataSet (פוטנציאלי רציף) על ידי הפצה לאחור של השגיאות (לאורך זמן).

TrainUntilConvergence - הוא משמש לאימון המודול במערך הנתונים עד שהוא מתכנס.

שכבות - שכבות הן בעצם קבוצה של פונקציות המשמשות בשכבות נסתרות של רשת.

חיבורים - חיבור פועל בדומה לשכבה; ההבדל היחיד הוא שהוא מעביר את הנתונים מצומת אחד לשני ברשת.

מודולים - מודולים הם רשתות המורכבות ממאגר קלט ופלט.

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

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