"אלגוריתם" היא מילה שנזרקת הרבה. אבל כשאנחנו בונים שיחות סביב אלגוריתמים של יוטיוב או פייסבוק, על מה בעצם אנחנו מדברים? מהם אלגוריתמים ולמה אנשים כל כך מתלוננים עליהם?
אלגוריתמים הם הוראות לפתרון בעיות
אנו חיים בעולם שבו מחשבים מובנים רק במעורפל, למרות שהם מחלחלים לכל רגע בחיינו. אבל יש תחום אחד של מדעי המחשב שבו כל אחד יכול להבין את היסודות של מה שקורה. תחום זה של מדעי המחשב נקרא תכנות.
תכנות אינו עבודה זוהרת, אך זהו היסוד של כל תוכנות המחשב, ממיקרוסופט אופיס ועד קוראי רובו . וגם אם הידע שלך בתכנות נובע אך ורק מסרטים גרועים של שנות ה -90 ומדיווחי חדשות לא מקוונים, אתה כנראה לא צריך מישהו שיסביר לך מה עושה מתכנת. מתכנת כותב קוד למחשב, והמחשב עוקב אחר הוראות קוד זה לבצע משימות או לפתור בעיות.
ובכן, בעולם מדעי המחשב, אלגוריתם הוא רק מילה מהודרת לקוד. כל מערכת הוראות שמורה למחשב כיצד לפתור בעיות היא אלגוריתם, גם אם המשימה היא סופר קלה. כאשר אתה מפעיל את המחשב, הוא עוקב אחר קבוצה של הוראות "כיצד להפעיל". זה אלגוריתם בעבודה. כשמחשב של נאס"א משתמש בנתוני גל רדיו גולמיים כדי לעבד תצלום של החלל החיצון, זה גם אלגוריתם בעבודה.
המילה "אלגוריתם" יכולה לשמש לתיאור כל מערכת הוראות, גם מחוץ לתחום המחשוב. לדוגמא, השיטה שלך למיון כלי כסף במגירה היא אלגוריתם, וכך גם השיטה שלך לשטוף ידיים לאחר השימוש בשירותים.
אבל, הנה העניין: בימים אלה המילה "אלגוריתם" נוטה להיות שמורה לכמה שיחות טק מאוד ספציפיות. אתה לא שומע אנשים מדברים על אלגוריתמים "מתמטיים בסיסיים" או "אלגוריתמים של כלי צבע גרפיטי". במקום זאת, אתה שומע משתמשי אינסטגרם מתלוננים על אלגוריתמים של הצעות לחברים, או על קבוצות פרטיות שמבססות על אלגוריתמי איסוף הנתונים של פייסבוק.
אם "אלגוריתם" הוא מונח תופס להוראות חישוביות, מדוע אנו משתמשים בו כמעט אך ורק לתיאור היבטים מבלבלים, קסומים ורעים בעולם הדיגיטלי?
רוב האנשים משתמשים ב"אלגוריתמים "וב"לימוד מכונה" לסירוגין
בעבר, מתכנתים ותרבות הפופ התייחסו לרוב הוראות החישוב כאל "קוד". זה נשאר נכון כיום, לרוב. למידת מכונה הוא האזור הגדול והמעונן של המחשוב בו אנו נוטים להשתמש במילה "אלגוריתם" במקום "קוד". זה, באופן מובן, תרם לבלבול וחוסר הנוחות סביב המילה "אלגוריתם".
למידה ממוחשבת קיימת כבר זמן רב, אך היא הפכה לחלק גדול מהעולם הדיגיטלי רק ב -15 השנים האחרונות. אמנם למידת מכונה נשמעת כמו רעיון מסובך, אבל די קל להבין אותה. מתכנתים לא יכולים לכתוב ולבדוק קוד ספציפי לכל סיטואציה, ולכן הם כותבים קוד שיכול לכתוב את עצמו.
תחשוב על זה כעל צורה מעשית יותר של בינה מלאכותית. אם אתה מסווג מספיק הודעות דוא"ל של הבוס שלך כספאם, אז לקוח הדוא"ל שלך יתחיל לדחוף את כל הודעות הדוא"ל של הבוס שלך לתיקיית הספאם באופן אוטומטי. באופן דומה, גוגל משתמשת בלימוד מכונה כדי לוודא שתוצאות החיפוש ביוטיוב יישארו רלוונטיות, ואמזון משתמשת בלימוד מכונה כדי להציע אילו מוצרים כדאי לקנות.
כמובן שלימוד מכונה לא בסדר. השם "למידת מכונה" נשמע מצמרר מספיק כדי לגרום לאנשים מסוימים להיות לא נוחים, וחלק מהשימושים הפופולריים בלימוד מכונה מוטלים בספק. האלגוריתמים שמשתמשים בפייסבוק לצורך כריית נתונים או משתמשים ברחבי האינטרנט הם דוגמה לא מחמיאה ללימוד מכונה.
בעיתונות תשמעו על "האלגוריתם של גוגל" לדירוג תוצאות החיפוש, "האלגוריתם של יוטיוב" להמלצה על סרטונים ועל "האלגוריתם של פייסבוק" להחליט אילו פוסטים תראו בציר הזמן שלכם. כל אלה נושאים של מחלוקת ודיון.
קָשׁוּר: הבעיה עם AI: מכונות לומדות דברים, אבל לא מצליחות להבין אותם
מדוע אלגוריתמים שנויים במחלוקת
חלוקה ארוכה היא אלגוריתם מוכר (בין רבים אחרים) לחלוקת מספרים. פשוט זה מבוצע על ידי תלמידי בית ספר במקום מחשבים. מעבד ה- Intel שלך משתמש באלגוריתם אחר לחלוטין כאשר הוא מחלק מספרים, אך התוצאות זהות.
דיבור לטקסט משתמש בדרך כלל בלימוד מכונה, אך איש אינו מדבר על "האלגוריתם" מדבר לטקסט מכיוון שיש תשובה נכונה באופן אובייקטיבי שכל אדם יכול לזהות באופן מיידי. לאף אחד לא אכפת מ"איך "המחשב מבין מה אמרת ובין אם זה למידת מכונה או לא. רק אכפת לנו אם המכונה קיבלה את התשובה הנכונה.
אך ליישומים אחרים של למידת מכונה אין את היתרון שיש תשובה "נכונה". זו הסיבה שאלגוריתמים הפכו לנושא קבוע לשיחה בתקשורת.
אלגוריתם למיון רשימה באלפביתיות הוא רק דרך לבצע משימה מוגדרת. אבל אלגוריתם כמו של גוגל ל"דירוג האתרים הטובים ביותר לחיפוש "איכשהו או של YouTube ל"המלצה על הסרטון הטוב ביותר" הוא הרבה יותר ערפל ולא מבצע משימה מוגדרת. אנשים יכולים להתווכח אם האלגוריתם הזה מייצר את התוצאות שהוא צריך, ולאנשים יהיו דעות שונות בנושא. אבל, עם דוגמת המיון האלפביתית שלנו, כולם יכולים להסכים שהרשימה מסודרת בסדר אלפביתי כראוי. אין מחלוקת.
כיצד עלינו להשתמש במילה "אלגוריתם?"
אלגוריתמים הם הבסיס לכל התוכנות. ללא אלגוריתמים, לא יהיה לך טלפון או מחשב, וכנראה היית קורא מאמר זה על דף נייר (למעשה, לא היית קורא אותו בכלל).
אבל, הציבור הרחב אינו משתמש במילה "אלגוריתם" כמונח לוכד עבור קוד מחשב. למעשה, רוב האנשים מניחים שיש הבדל בין קוד מחשב לאלגוריתם - אבל אין. בגלל הקשר בין המילה "אלגוריתם" ללמידת מכונה, משמעותה נעשתה מעורפלת, אך השימוש בה נעשה ספציפי יותר.
האם עליכם להתחיל להשתמש במילה "אלגוריתם" כדי לתאר אפילו את החלקים הקטנים ביותר של קוד המחשב? כנראה שלא, מכיוון שלא כולם יבינו למה אתה מתכוון. השפה תמיד משתנה, והיא תמיד משתנה מסיבה טובה. אנשים זקוקים למילה כדי לתאר את העולם המבלבל, האטום ולעיתים המפוקפק של למידת מכונה, ו"אלגוריתם "הופך למילה זו - לעת עתה.
עם זאת, כדאי לזכור שאלגוריתם (ולמידת מכונה) הוא, בבסיסו, חבורה של קוד שנכתב כדי לפתור משימות. אין טריק קסמים; זה פשוט איטרציה מורכבת יותר של התוכנה שאנחנו כבר מכירים.
מקורות: צִפחָה , ויקיפדיה , GeeksforGeeks