קורס יסודות בינה מלאכותית : RB33-10 מבוא לרשתות נוירונים

קורס יסודות בינה מלאכותית : RB33-10 מבוא לרשתות נוירונים


חלק א : מבוא לרשתות נוירונים קצת חומר תיאורטי – איך הכל עובד ?

תרגיל כיתה 1 : תרגול COLAB רשת נוירונים

התקן ספריות לפי הצורך

נתונה טבלה הבאה  בנה קוד פייתון להצגי אותה כגרף

# X Y
1 -4.000 -1285.600
2 -3.837 -1056.338
3 -3.673 -859.830
4 -3.510 -692.529
5 -3.347 -551.145
6 -3.184 -432.619
7 -3.020 -333.606
8 -2.857 -251.001
9 -2.694 -181.925
10 -2.531 -123.737
11 -2.367 -74.024
12 -2.204 -30.599
13 -2.041 8.259
14 -1.878 43.950
15 -1.714 77.434
16 -1.551 109.240
17 -1.388 139.488
18 -1.224 167.912
19 -1.061 193.890
20 -0.898 216.475
21 -0.735 234.426
22 -0.571 246.237
23 -0.408 250.174
24 -0.245 244.325
25 -0.082 226.646
26 0.082 194.999
27 0.245 147.192
28 0.408 81.025
29 0.571 -5.592
30 0.735 -114.849
31 0.898 -249.536
32 1.061 -412.119
33 1.224 -604.807
34 1.388 -829.621
35 1.551 -1088.473
36 1.714 -1383.237
37 1.878 -1715.813
38 2.041 -2088.194
39 2.204 -2502.529
40 2.367 -2961.189
41 2.531 -3466.831
42 2.694 -4022.476
43 2.857 -4631.575
44 3.020 -5297.084
45 3.184 -6022.547
46 3.347 -6811.175
47 3.510 -7666.923
48 3.673 -8593.574
49 3.837 -9595.813
50 4.000 -10678.304

 

  1. בנה  בעזרת בינה מלאכותית –  רשת ניירונים  אשר מקבלת את הנתונים  ומייצרת מודל
  2.  הצג איפוקס  , בדוק  עבור 20  , 100 , 350 . הצג גרף ERROR LOST
  3. הרץ על המודל שאומן  את המספרים בצעו פרדיקציה חשבו שגיע לפי נתוני TURE

-5  – 4.3  ,0 ,2,1.5

4.הצג את הנקודות על גרף הפונקציה

5.עבור סעיף 3 שאל את הבינה מלאכותית מה ניתן לשפר שהפרדיקציה תהייה טובה יותר

 

תרגיל 2

  1. נתח בעזרת בינה מלאכותית את הקוד הבא , המה עושה ?
  2. בקשת מהבינה מלאכותית לכתוב שוב אותו קוד עם הערות ובלוקים ומה עושה כל בלוק

 

 

 

 

 


 

 

   VS

 

רשת נוירונים — מהי?

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

לדוגמה:

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

הרשת לא מקבלת חוקים ידניים כמו:

אם יש אוזניים ושפם אז זה חתול

אלא היא לומדת לבד מתוך הרבה דוגמאות.


1. הרעיון הבסיסי (ללא ביאס וללא פונקציית אקטיבציה)

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

 

 

X הוא הסכום של הקלט כפול המשקלים

 

 

 

 

כל נוירון מקבל מספרים, מבצע חישוב, ומוציא מספר חדש.

לדוגמה:

קלטים → חישוב → פלט

בצורה פשוטה:

x1, x2, x3 → neuron → y


2. מה יש בתוך נוירון?

כל נוירון עושה בערך את זה:

y = x1w1 + x2w2 + x3*w3 + b

פירוש:

סימן משמעות
x קלט
w משקל
b הטיה
y תוצאה

המשקל w אומר לרשת כמה חשוב כל קלט.


3. דוגמה פשוטה — זיהוי כלב או חתול

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

הקלט הוא תמונה.

המטרה היא שהרשת תחזיר תשובה:

כלב

או:

חתול

בהתחלה הרשת לא יודעת כלום.

היא לא באמת מבינה מה זה כלב ומה זה חתול.

היא מקבלת אלפי תמונות לדוגמה:

תמונה תשובה נכונה
תמונה 1 חתול
תמונה 2 כלב
תמונה 3 חתול
תמונה 4 כלב
תמונה 5 כלב

כל תמונה הופכת למספרים.

במחשב, תמונה היא אוסף גדול של פיקסלים.

כל פיקסל הוא מספר שמייצג צבע או עוצמת אור.

לדוגמה:

פיקסלים של תמונה → מספרים → רשת נוירונים → תשובה

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

לאט לאט היא לומדת תבניות.

למשל, היא יכולה ללמוד שבתמונות של חתולים יש לפעמים:

אוזניים מחודדות
עיניים מסוימות
שפם
מבנה פנים צר יותר
פרווה מסוימת

ובתמונות של כלבים יש לפעמים:

חוטם ארוך יותר
אוזניים שונות
מבנה גוף אחר
צורת פנים אחרת
מרקם פרווה שונה

אבל חשוב להבין:

הרשת לא לומדת כמו בן אדם.

היא לא אומרת לעצמה:

"ראיתי שפם, לכן זה חתול."

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


איך היא לומדת מתוך אלפי תמונות?

בכל פעם הרשת מקבלת תמונה אחת.

לדוגמה:

תמונה של חתול

הרשת נותנת ניחוש:

כלב: 0.70
חתול: 0.30

כלומר הרשת חושבת שזה כלב בסיכוי 70%.

אבל התשובה הנכונה היא חתול.

לכן יש שגיאה.

עכשיו הרשת מתקנת את המשקלים שלה.

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

אחרי אלפי תמונות, התהליך חוזר שוב ושוב:

  1. הרשת מקבלת תמונה
  2. הרשת נותנת ניחוש
  3. בודקים מה התשובה הנכונה
  4. מחשבים כמה הרשת טעתה
  5. מתקנים את המשקלים
  6. ממשיכים לתמונה הבאה

אחרי הרבה מאוד חזרות, הרשת משתפרת.

בסוף היא יכולה לקבל תמונה חדשה שהיא לא ראתה בזמן האימון, ולנסות לזהות אם זה כלב או חתול.

לדוגמה:

כלב: 0.04
חתול: 0.96

כלומר הרשת חושבת שיש סיכוי של 96% שזה חתול.


4. מהי שכבה ברשת?

רשת נוירונים כוללת כמה שכבות:

Input Layer → Hidden Layers → Output Layer

Input Layer

מקבלת את הנתונים.

לדוגמה בתמונה:

פיקסלים של תמונה

Hidden Layers

מבצעות את הלמידה והחישובים.

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

קווים
קצוות
צבעים
בהירות

בשכבות עמוקות יותר היא יכולה ללמוד דברים מורכבים יותר כמו:

עיניים
אוזניים
פרווה
צורת פנים
מבנה גוף

Output Layer

נותנת את התוצאה.

לדוגמה:

חתול: 0.92
כלב: 0.08

הרשת אומרת: יש סיכוי של 92% שזה חתול.


5. איך הרשת לומדת?

הרשת מתחילה עם משקלים אקראיים.

בהתחלה היא טועה הרבה.

אחר כך היא עושה תהליך כזה:

  1. מקבלת קלט
  2. נותנת תשובה
  3. משווה לתשובה הנכונה
  4. מחשבת שגיאה
  5. מתקנת את המשקלים
  6. חוזרת על זה אלפי פעמים

זה נקרא Training — אימון.


6. מהי שגיאה?

אם התשובה הנכונה היא:

חתול

והרשת אמרה:

כלב

יש שגיאה גדולה.

אם הרשת אמרה:

חתול בסיכוי 90%

השגיאה קטנה.

המטרה של האימון היא:

להקטין את השגיאה כמה שיותר


7. מה הרשת באמת לומדת?

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

היא לומדת תבניות מספריות.

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

קצוות
צורות
צבעים
מרקמים
מבנה פנים
גלגלים
כנפיים

בקול היא יכולה ללמוד:

תדרים
קצב
עוצמה
תבנית רעש
שינוי בזמן


8. דוגמה: זיהוי  לפי קול

הקלט:

קובץ קול

מעבדים אותו לתמונה שנקראת Spectrogram.

הרשת מקבלת את ה־Spectrogram ולומדת לזהות:


רכב
רוח
דיבור
רעש רקע

בסוף היא מחזירה:


Car: 0.79
Wind: 0.03

..

..
Speech: 0.02

כלומר הרשת חושבת שזה רכב


9. למה קוראים לזה רשת?

כי יש הרבה נוירונים מחוברים זה לזה.

דוגמה:

Input → Neuron → Neuron → Neuron → Output

ברשת גדולה יש אלפי, מיליוני, ואפילו מיליארדי חיבורים.


10. משפט חשוב לזכור

רשת נוירונים היא לא קסם.

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

היא לומדת בעזרת דוגמאות, טעויות ותיקונים.


סיכום קצר

רשת נוירונים היא מודל שלומד מדוגמאות.

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

Data → Neural Network → Prediction → Error → Correction → Better Prediction

 

3. תרגול : הרצת תרגיל  (עם קוד פשוט ) רשתות נוירונים פרדיקציה 

קישור :

https://colab.research.google.com/drive/1aS5y_LKPePjloHi57PZforMGqOESZGgX?usp=sharing

 

 

 

 

 

 

4. ,תרגיל כיתה : בניית רשת נוירונים בעזרת בינה מלאכותית

4.1 בנה בעזרת בינה מלאכותית רשת נוירונים  בקוד פייתון  – בסביבת פיתוח קולאב אשר מקבל את הנתונים הבאים

4.2 הצג את גרף הלמידה הפעל על 40 איפוקס  , 100 איפוקס  האם הרשת למדה או דרוש יותר אימון ?

4.3 נבא את התוצאות : הבאות

0.1 , 1.5  . -2.85  , 2.6

4.4 הצג את גרף הנתונים של סידרה a  ואת הערכים לניסוי

נתונים ערכים לשאלה :

 

 

 

רשתות ניירונים ANN בינה מלאכותית 

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

רשת כזו שייכת למשפחת הרשתות העצביות המלאכותיות (Artificial Neural Networks), ובפרט – לרשתות מסוג Dense Feedforward, שבהן כל נוירון בשכבה אחת מחובר לכל הנוירונים בשכבה הבאה. הרשת מתבססת על למידה מפוקחת (Supervised Learning) – כלומר, היא לומדת מדוגמאות מתויגות מראש.

במה היא שונה מרשת שחוזה ערך כמו טמפרטורה?

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

הבדל עיקרי בין סיווג לרגרסיה:

  • Classification – הפלט הוא אחת מתוך קבוצה סופית של אפשרויות (למשל: אדום, ירוק או כחול) , זהוי מילה שהוקלטה , קטגוריה של המוצר  , קטגוריה של התקלה , האם האדם קופץ הולך , נופל מתגלגל .

  • הפלט ברשת סיווג הוא לרוב וקטור של הסתברויות לכל קטגוריה, והרשת בוחרת את ההסתברות הגבוהה ביותר.

  • Regression – הפלט הוא מספר ממשי אחד מתוך טווח בלתי מוגבל (למשל: חיזוי מחיר של מוצר,  טמפרטורה , גובה , לחץ של תמיסה).

  • רגרסיה הפלט הוא פשוט מספר אחד – פלט אחד