ארכיון פוסטים מהחודש "ספטמבר, 2012"

ספידי קומפוזר – תקציר

יום שישי, 28 בספטמבר, 2012

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

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

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

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

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

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

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

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

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

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


נכתב על-ידי אורי אבן-חן, ספידי תוכנה.