דלג לתוכן

מערכת מבוססת כללים (Rule-based System)

יסודות בינה מלאכותית

הגדרה

מערכת מבוססת כללים (Rule-based System) היא תוכנה שהידע שלה מיוצג ככללי "אם-אז", ורכיב כללי מפעיל אותם על עובדות כדי להגיע למסקנה או לפעולה. במערכת הקלאסית אדם מנסח את הכללים, במקום לאמן מודל על דוגמאות.

💡 דוגמה

חנות אונליין כותבת כלל: "אם התשלום גבוה מ-1,000 דולר ונעשה בכרטיס נטען — לסמן אותו לבדיקה ידנית".

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

ידע שנכתב ביד, לא נלמד מנתונים

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

יש גם הבדל מתכנות אימפרטיבי, שבו כותבים הוראות בסדר ביצוע מפורש, שורה אחר שורה. במערכת כללים מפרידים את הידע מהמנגנון שמפעיל אותו: כותבים את הכללים, והמערכת עצמה מחליטה בכל רגע איזה כלל להפעיל לפי העובדות הקיימות. לפי ויקיפדיה, בשנות ה-70 צמחו בבינה המלאכותית שני סוגים של מערכות כאלה: "מערכות כללי הפקה" (Production Systems), שגוזרות פעולות מתנאים בכללי "אם-אז", ותכנות לוגי — שפות כמו Prolog — שבו הכללים נכתבים כ"מסקנה אם תנאים". מערכת מומחה — למשל מערכת שעוזרת לרופא לבחור אבחנה לפי צירוף של תסמינים — היא הדוגמה הקלאסית לגישה, אבל רחוקה מלהיות היחידה.

ארבעה רכיבים ומחזור אחד

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

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

קדימה מהנתונים או אחורה מהמטרה

יש שתי דרכים עיקריות להפעיל כללים, וויקיפדיה מדגימה את שתיהן על חיית מחמד בשם פריץ שמקרקרת ואוכלת זבובים. מאגר הכללים כולל, בין השאר: "אם X מקרקר ואוכל זבובים — X צפרדע", ו"אם X צפרדע — X ירוק".

בשרשור קדימה (Forward Chaining) מתחילים מהעובדות. המנוע רואה שפריץ מקרקר ואוכל זבובים, מסיק שהוא צפרדע, ומשם שהוא ירוק. השיטה "מונעת-נתונים": כל עובדה חדשה יכולה להצית מסקנות חדשות, ולכן היא מתאימה למצבים שמשתנים כל הזמן. בשרשור אחורה (Backward Chaining) מתחילים מהמטרה: האם פריץ ירוק? כדי לדעת, המנוע מחפש כלל שמסקנתו "ירוק", הופך את התנאי שלו — "פריץ צפרדע" — למטרת משנה, וממשיך כך עד שהוא מגיע לעובדות הידועות. השיטה "מונעת-מטרה", ובה משתמשת שפת Prolog. בשני המקרים, הכללים על הקנרית לא הופעלו כלל.

Rete: איך בודקים אלפי כללים מהר

הדרך הנאיבית להריץ מערכת כללים היא לבדוק כל כלל מול כל העובדות, שוב ושוב בכל מחזור. לפי ויקיפדיה, כבר במערכות בגודל בינוני זה איטי מדי. הפתרון המוכר הוא אלגוריתם Rete ("רשת" בלטינית), שתכנן צ'רלס פורגי מאוניברסיטת קרנגי מלון: הוא פורסם לראשונה במסמך עבודה ב-1974, ופותח בעבודת הדוקטורט שלו ב-1979 ובמאמר מ-1982.

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

XCON: אלפי כללים בעולם האמיתי

אחת ההצלחות המסחריות הגדולות של הגישה הייתה R1, שנקראה בתוך החברה XCON. ג'ון מקדרמוט מאוניברסיטת קרנגי מלון כתב אותה ב-1978 בשפת OPS5, עבור חברת המחשבים DEC. הבעיה הייתה מעשית: לקוח שהזמין מחשב VAX היה צריך להזמין בנפרד כל כבל, חיבור ורכיב תוכנה, ואנשי המכירות לא תמיד ידעו מה מתאים למה. התוצאה הייתה לקוחות עם מדפסות בלי מנהלי ההתקן הנכונים או מעבדים בלי השבב הנדרש.

XCON בחרה את הרכיבים לפי דרישות הלקוח. היא נכנסה לשימוש ב-1980 במפעל של DEC בניו המפשייר, ובסופו של דבר כללה כ-2,500 כללים. לפי ויקיפדיה, עד 1986 עיבדה 80,000 הזמנות בדיוק של 95–98%, וההערכה הייתה שהיא חוסכת ל-DEC כ-25 מיליון דולר בשנה. בהמשך פיתחה החברה מערכות נוספות באותה שיטה, כמו XSEL לאנשי המכירות. הסיפור הרחב של מערכות כאלה, כולל DENDRAL ו-MYCIN, מופיע בערך על מערכת מומחה.

כללים לצד למידת מכונה היום

מערכות כללים לא נעלמו עם עליית למידת המכונה, ולעיתים קרובות הן עובדות לצידה. דוגמה מתועדת היא Stripe Radar, מערכת למניעת הונאות בתשלומים. לפי התיעוד של Stripe, כל עסקה נבדקת מול כללי ברירת מחדל, וחלק מהכללים האלה נשענים על מודלי AI — למשל כלל ששולח לבדיקה ידנית תשלום שהמודל העריך את רמת הסיכון שלו כ"מוגברת". לצד זה, בתוכנית Radar שתומכת בכללים מותאמים, עסק יכול לכתוב כללים משלו: לבקש אימות נוסף (3D Secure) בתשלום של לקוח חדש, כשהתשלום תומך בכך, לחסום תשלומים מכרטיס שהונפק מחוץ למדינה, או לשלוח לבדיקה כל תשלום מעל 1,000 דולר שנעשה בכרטיס נטען (Prepaid). המודל מעריך את הסיכון, והכלל, שאדם כתב ויכול לקרוא, מחליט מה עושים עם ההערכה.

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

📬 הגיליון השבועי של Wiki-AI

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

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

שאלות נפוצות ❓

מה ההבדל בין מערכת מבוססת כללים למערכת מומחה?

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

האם מערכת מבוססת כללים היא בינה מלאכותית?

היא חלק מהמסורת של הבינה המלאכותית הסימבולית (GOFAI). היא לא "לומדת" מנתונים כמו מערכות למידת מכונה, אלא מפעילה ידע שאדם כתב.

מה זה מנוע ההסקה?

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

למה עדיין משתמשים בכללים אם יש למידת מכונה?

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

שתפו:וואטסאפטלגרם

מצאתם טעות בערך, או שיש לכם מקור שכדאי להוסיף? כתבו לנו