אינטליגנציה - מלאכותית
תחום האינטליגנציה המלאכותית קיים שנים רבות.
עשורים מתכנתים שונים ניסו לדמות אינטליגנציה במשחקי מחשב, סימולציות ולמידת התנהגות.
הם הצליחו במידה מסוימת - אך ההצלחה הזו רק חיקתה את המטרה העילית - אינטליגנציה חכמה.
ומה אני מתכוון בחכמה?
אינטליגנציה שתוכל להתמודד עם שינויים.
אלגוריתם שכתוב עבור שח-מט לא יכל לפתור בעיות מיקום.
תוכנה שבנויה לדבר עם אדם לא תתמודד עם בקרת רכב.
אך ב-2014 חל שינוי דרמטי בתחום.Deepmind
נצחו לראשונה במשחק בשם -go
.
הניצחון על המשחק GO - AlphaGO
המשחק גו קל ללמידה אך קשה לנצחון.
“Easy to learn, hard to master”.
המחשב “ניצח” את השחמט כבר מזמן אך גו היה מעיין אתגר בלתי פתיר עבור האנושות.
אך ב-2014 קרה הבלתי ייאמן - מחשב ניצח שחקן מקצועי בין הטובים בעולם.
ניתן לקרוא כאן את המאמר הרשמי:
https://storage.googleapis.com/deepmind-media/alphago/AlphaGoNaturePaper.pdf
אם להיות מאוד גס - הפתרון היה טמון בשני צעדים שאחד מהם הוא עץ מאוד חכם.
יש גם סרט לצפייה:
https://www.youtube.com/watch?v=WXuK6gekU1Y
אלגוריתם לומד ורשתות נוירונים
אם קראתם במאמר למעלה - תוכלו לשים לב לכמה מושגים:
- למידה עמוקה
- רשת נוירונים
- אימון אלגוריתם
- סט מידע - Data set
המושג רשת נוירונים נלקח מהביולוגיה - כמו שמוח בנוי מנוירונים שמעבירים מידע בשכבות אז כך גם רשת נוירונים במחשב בנויה בשכבות.
כמו שהאדם לומד כך גם אלגוריתם שבנוי על רשת נוירונים יודעת ללמוד.
כדי ללמוד צריך לאמן את האלגוריתם - שווה ערך לישיבה עם ספר ולמידה.
וכמובן הרשת צריכה ללמוד על סמך נתונים - זה בעצם ה-Data set
שאתם צריכים בשביל לאמן את הרשת.
עולם הגו שנפרץ קדימה הייתה קפיצת מדרגה ראשונה בעולם ה-AI
.
אך זו לא הפעם הראשונה שניסו להשתמש במנגנון חכם שיכול ללמוד.
הרשת נוירונים הראשונה
ב-1952 מרווין מינסקי סטונדט מהרוורד מימש את טכנולוגיית ה-SNARC
- Stochastic Neural Analog Reinforcement Calculator
.
זה היה המימוש הראשון לרשתות נוירונים שיכולה ללמוד - אך הייתה בעיה מאוד מהותית בטכנולוגיה הזו.
כדי “ללמד” את הרשת היה צורך בהזנה ידנית של הקלטים על מנת לומר לרשת שהיא ניחשה נכון.
מה כל כך מיוחד בזה?
שמדובר ברשת נוירונים המדמה למידה כמו אצל נוירונים אנושיים - ההשוואה הזו מאוד גסה אך היא עוזרת להבין את העיקר.
מהי רשת נוירונים?
רשת נוירונים
כמו שהסברנו רשת נוירונים זה כמו שזה נשמע - שכבות נוירונים שמחברות בין נוירונים אחת לשנייה.
ניתן לשים לב לכמה שכבות:
- שכבת הקלט
- 2 שכבות עיבוד
- שכבת פלט
כאשר רשת לומדת היא צריכה לקבל מידע מאיפשהו.
המידע הזה נקרא Data Set
.
מידע - DataSet
מידע אמין הוא הוא מידע עם תיוגים.
מידע מתיוג הוא כזה שמייצג את הקלט ואיזה פלט רצוי.
כמו ילד שמראים לו תמונה של חתול ואומרים לו - זה חתול!
כאשר יש לנו יותר מתמונה אחת מתויגת אנחנו יכולים לקרוא למידע שלנו DataSet
.
- נקודה למחשבה -
חברות רבות היום מייצרות וקונות מידע מתויגת, בתחום הלמידה העמוקה מידע מתויג שווה הון.
זה לא רק האלגוריתם אלה גם המידע.
המידע המתויג בדרך כלל מחולק 80% ו20% למידע לאימון ומידע לטסטים.
אנחנו מאמנים את המודלים ואחר כך מנסים אותו על מידע מתויג אמין.
משקולות ולמידה
לכל חיבור יש משקולת שמכבידה או מקלה על התוצאה ובכך נותנת “משקל” לנקודות.
לכן כל נקודה יכולה להשפיע יותר או פחות על התוצאה.
ככל שאנחנו מאמנים את המודל שלנו על מידע מתויג ואמין המודל משנה גם את המשקולות שלו.
מקרה קצה שיכול להיות למשל זה לאמן מודל על בסיס תמונות שהקצוות אף פעם אינן חתול.
המודל יבין שהפיקסלים בקצוות הן בדרך כלל לא חתול ובעצם יילמד משהו שלא בהכרח נכון.
לכן מידע מתויג, אמין, איכותי ומגוון הוא נושא מאוד מרכזי בכל תחום הלמידה העמוקה.
ממליץ לראות את הסרטון הזה כדי לדעת איך רשתות עובדות ו”לומדות”.
סרטון למידה
מעט מתמטיקה מאחורי הנוירונים
כל נוירון מייצג פונקציה מסוימת שהיא בדרך כלל אינה לינארית.
תאורטית ניתן להשתמש בפונקציה לינארית אך זה ייגרום לפונקציונאליות שלנו להיות פחות מורכבת ועם תוצאות יותר צפויות.
במקרה של נוירונים שהם קלט אנחנו לא נבצע איזושהיא טרנספורמציה אלה פשוט ניקח את הערך ההתחלתי.
אלו ערכים זה יכולים להיות?
- צבע של פיקסל מתמונה
- ערך של ערוץ מקובץ סאונד
- ערך מתמטי שיש לו ייצוג למשל מס’ כוכבים של סרט
ובכך אנחנו מתחילים את ההבנה הראשונית המתמטית שלנו:
הערכים מחוברים וכמו שראינו ע”פ המשקל שהם מייצגים בתהליך.
חלק מתהליך הלמידה הוא גם להבין מה גודל המשקלים אל מול הפונקציות המחושבות.
כיוון הפונקציות והמשקלים זה בעצם תהליך ה”למידה” שהוא מבצע.
ע”י חלוקה שונה של המשקלים אנחנו יכולים לתת ערך גדול יותר או קטן יותר לחלק מהפונקציות.
ובכך לדעת מה “מתאים” לנו יותר.
בסרטון הלמידה למעלה יש דוגמא מעולה לאיך זה משפיע על התוצאה הסופית.
סוגי רשת נוירונים
יש כמה סוגי רשתות שמגדירות שכבות מסוימות אך יש פה עקרונות שעוזרים לרשתות האלו לעבור מ”למידה” ל-“למידה עמוקה”.
ובכך אנחנו עושים את האבחנה בין AI
- Machine Learning
ל-Deep Learning
.
יש יותר סוגי אך אלו הם הנפוצים מביניהם:
Perceptron - Multilayer Perceptron Neural Network
רשתות פשוטות עם קלאסיפיקציה בינארית והבחנה לינארית.
נכון שאמרנו שפונקציות הן לא לינאריות בלמידה עמוקה ולכן רשתות כאלו הן יותר פשוטות מאחרים וניתן להשתמש בהם בעיקר לכלי אבחנה וזיהוי קול.
Feed Forward Neural Network
זוהי רשת פשוטה שמורכבת משכבות.
כל קלט הולך בכיוון אחד והשכבות אינן מורכבות יותר מדי.
רוב העבודה היא בלמידה פשוטה ומשתמשים בזה בשביל מיון, זיהוי פנים ועבודות לא מורכבות.
Recurrent Neural Network
רשת נוירונים שיודעת להחזיר לארוך ולחשב מחדש אחרים על בסיס למידה חדשה.
מודלים כאלו יכולים להיות מחוברים יחד ולפתור בעיות מורכבות בעולם ה-NLP
- Natural Language Processing
.
וזהו בעצם הבסיס ל-AI
חדשים שאתם שומעים עליהם כמו -ChatGPT
.
Generative AI ו-ChatGPT
אחרי שהבנו מאיפה התהליכים התחילו ניתן לדבר על-Generative AI
.
המודלים האלו משמשים את האנשים בתור כלי ליצירת תוכן, איזה תוכן?
- טקסט בשפות שונות
- תמונות
- קול
- קוד
- פקודות במחשב
בעצם “אוטומציה” לתהליכים שעד היום נחשבו לקשים לפתירה.
MidJourney
AI
שיצר עוד היסטוריה ע”י יצירה של אומנות מכתיבת טקסט.
זהו לא ה-AI
היחידי בתחומו אך הוא בין הפופולריים כיום וב-8 דולר לחודש אתם יכולים לקבל גישה לבוט מאוד חזק.
אתר:
https://www.midjourney.com/showcase/recent/
קרדיט ל-MidJourney
.
Magic Erase
AI
חכם שיודע למחוק עצמים מתוך תמונות.
הסתקרנתם? גם אנחנו.
אתר:
https://magicstudio.com/magiceraser/
DeepL
בין אתרי התרגום הכי טובים שיצא לי להשתמש - גוגל כבר לא במקום 1 אמרנו?
אתר:
https://www.deepl.com/translator
Chat-GPT
ובשורה ה-200 הגענו סוף סוף לבוט המבוקש והפופלרי שעשה היסטוריה - הChatGPT
.
הבוט שהוא בעצם צ’אט מבוסס על מודלים לשפה ואומן ע”י מקורות רבים מהרשת.
הוא יודע:
- לדבר עם האדם
- לספק לו תשובות מקצועיות
- לענות על מגוון רחב של שאלות
- לעזור בפתרון בעיות
איך להשתמש בבוט
הבוט לא מושלם.
הוא כמובן לא מדבר על כל דבר רע-
איך לבנות נשק, איך ליצור כימיקליים רעילים וכדו’
הוא גם משתדל לא לענות על שאלות שהוא לא אומן עליהם או מורכב מדי לענות.
קיימות לבוט מגרעות אחרות גם כן:
- הדיבור שלו הוא באופן מחושב בלבד - אין לו התרשמות מרגשות שונים.
- תשובות מקצועיות עד כדי, לעיתים המקצועיות שלו בשלבים בסיסיים בלבד והוא לא פעם מטעה עד שמתקנים אותו.
- לא כל בעיה הוא יידע לפתור בכזו קלות גם אם לכם יש את כל הרעיון בראש.
למה הוא כן טוב?
לקבל הצעות שונות
למשל שאלתי אותו איפה כדאי לטייל ביוון:
לקבל ביקורת על היצירות שלנו
למשל יש לי פונקציה לא יעילה לביצוע מיון של מערך:
1 | def sort(arr): |
מה שאני יכול לבקש ממנו זה לנסות לייעל את הפונקציה הזו:
ואחרי בדיקה אכן היא יעילה בהרבה יותר:
1 | Sort 1 is on: |
כמובן ניתן לקבל ביקורת על מגוון יצירות טקסטואלים כמו שירים, סיפורים, פסקאות.
אני לעיתים משתמש בבוט כדי לתת לי ביקורת על הפוסטים שלי!
לכתוב לנו דברים קטנים
הבוט כרגע בשנת 2023 לא יודע לעשות דברים מורכבים מדי.
אך בדברים קטנים הוא יעיל מאוד ויכול לעזור לנו בשלל תחכומים:
שימו לב שעם עברית הוא לא הכי מסתדר אז זה עליכם לתקן את הבעיות שלו :)
אז איפה אנחנו כיום?
אנחנו בעיצומה של מהפכה.
מצד אחד הכלים המפותחים כיום יכולים להציל אותנו ולבצע דברים אוטומטיים לפעולות שנחשבו עד היום מורכבות מדי למחשב.
החל מהמכונית האוטונמית, ועד הרובוטים שמכינים אוכל.
קשה לדעת מתי בעתיד הם יידעו להחליף את כולנו אך דבר אחד ברור - קשה מאוד להחליף את הקונטקס האנושי בהתהליכים.
לעיתים הבוטים לא ידעו באמת מהי ה”שפה” שלנו.
כמו סלנג שמשתנה מדור לדור כך גם הרעיונות והדרכים של האנושות משתנים מדור לדור.
האם צריך לפחד?
ממש לא.
עושים מאמצים רבים בתחום הרגולציה כדי שהבוטים האלו לא יהיו משומשים לרעה.
כמו שמכונית אוטונומית יכולה להיות משהו טוב ולנסוע על הכביש באופן חוקי לחלוטין,
האקרים יכולים לפרוץ אליה ולשלוח פקודות זדוניות כדי להתנגש או ליצור תאונות שרשרת.
אבל לכל הפרנואידים וחסרי הביטחון מבינינו אני יכול להגיד לכם גם שעם גדילת התעשייה, כך גם המגנים שלנו גדלים ועושים מאמצים רבים בתחום הרגולציה והסייבר לפתור את הבעיות האלו.
האם פחדנו מקוצבי לב?
כן, אבל פתרו את הבעיות האלו.
כך גם הבעיות עם ה-AI
ייפתרו.
איך להמשיך?
אני ממליץ לכם לקרוא עוד ועוד על מודלים וללמוד עוד ועוד על התעשייה הזו.
אתר עם הרבה מודלים הוא Hugging Face
.
כמו כן קיימים ב-GitHUB
הרבה פרוייקטים עם קוד פתוח למודלים שונים.
תודה על הקריאה!