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

בינה מאלכותית RB108-3 – מבוא לרשתות ניירונים ובינה מלאכותית

חלק א:

  1. העשרה : נתחיל משהו מצחיק  – מזכיר SUNO

 

 

2 .notebooklm פודקאסט

קישור ל-NotebookLM:   https://notebooklm.google/

מה יכולת ה-NotebookLM

מה אפשר להעלות?

מה המערכת יודעת לעשות?

  • ליצור סיכומים אוטומטיים של המקורות. Google NotebookLM+2datacamp.com+2

  • מענה לשאלות בשפה טבעית בהתבסס על המקורות שהועלו, עם ציטוטים מדויקים. datacamp.com+1

  • הפקת “Audio Overviews” (סיכום אודיו) ו-“Video Overviews” (הצגת וידאו/מצגות) מתוך התוכן שלך. blog.google+2Google Help+2

  • יצירת כלי עזר נוספים: Mind Maps, Study Guides, Flashcards, Quizzes. Workspace Updates Blog+1

  • שיתוף מחברות (Notebooks) עם אחרים, ניתוח שימוש, הרשאות משתנות. Google Help

איך ניתן שהיא לא תוסיף דברים שלא בחורנו   ?

  • היא עובדת כ-RAG (Retrieval Augmented Generation): כלומר, התשובות מבוססות בעיקר על המקורות שהעלית. arXiv+1

  • בכל תשובה מופיעים ציטוטים שמצביעים על המקור המדויק שבו המידע לקוח. datacamp.com+1

  • חשוב לוודא שהמקורות עצמם אמינים, עדכניים ומלאים — איכות המקורות משפיעה ישירות על האמינות. datacamp.com

  • אם אין מקור מתאים, יש להיזהר: המערכת עדיין עלולה “להשליך” מידע שלא מגובה. למשל במחקר נמצא שיעור “hallucinations” נמוך יותר מ-LLMים רגילים אך לא אפסי. arXiv+1

איך היא  כן תוסיף עצמה – תכנים אוטומטיים

  • עם העלאת המקורות, המערכת יכולה לייצר אוטומטית סיכומים, שאלות מוצעות, ואף Audio/Video Overviews ללא פקודה מפורשת. Google Help

  • ניתן לבחור לשנות שפה/פורמט של הפלט (למשל לשפות שונות או פורמטים שונים) ולהתאים את הפלט לקהל או למטרה

  • “הוסף מידע חיצוני אם חסר” → היא תשלב מקורות כלליים.

אפשרות “Auto-Expand”

  • בממשק החדש (2025) יש כפתור “Expand with Gemini” שמאפשר להוסיף תובנות והרחבות מעבר למידע שבמחברת.

  • אם לוחצים עליו, NotebookLM מבצעת הרחבה באמצעות מודל השפה, תוך שמירת ההבחנה בין ציטוטים מהמקורות לבין השלמות AI.

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


 

חלק ב:    פיתוח מוצר בעזרת בינה מלאכותית LLM

 

תרגיל כיתה  1 : פיתוח מוצר  בצורה מדעית והנדסית  – מזווית מדעית תאורטית  (תרגיל חובה)

  1. בנה בעזרת בינה מלאכותית מערכת  אשר עשויה לזהות מצלמה נסתרת בגודל 10 ממ אשר משמת בעיקר במצלמות רוורס
  2. איזה אפשריות קיימות בשוק ומה מחירים
  3. איזה מודל פיסקאלי ומדעי מאפשר לזהות את המצלמות
  4. כיצד ניתן לסרוק חדר , לזיהוי המצלמה  איזה תדרים חסרונות ויתרונות
  5. חפש סרטונים בנושא : על פי מה עובדים הסרטונים הקיימים
  6. בנה טבלת השוואה , על הבטלה לעשות טבלת השוואה בין השיטות (עיקרון מדעי , מחיר , אמינות )
  7. בקש מאמרים מדעים וקישור למאמרים מדעיים 
  8. כיצד אתה יודע שהבינה מלאכותית לא טועה  ? הוכח זאת !

חלק ג :  מבוא  רשתות נוירונים (ראשוני)

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

 

 

מעבר בין שכבות יש פונקציית אקטיבציה? איפה היא מיושמת בפועל הערה קצרה
קלט → חבויה כן (בדרך כלל) אחרי החישוב הלינארי של השכבה החבויה:

z=Wx+bz=Wx+b ואז

a=f(z)a=f(z)

שכבת הקלט עצמה בלי אקטיבציה
חבויה → חבויה כן (בדרך כלל) אחרי

Wx+bWx+b בכל שכבה חבויה

לרוב ReLU  וכו’
חבויה → פלט תלוי במשימה או אחרי

Wx+bWx+b בשכבת הפלט, או בתוך ה-loss (עם logits)

רגרסיה: לרוב בלי; בינארי: sigmoid; רב־מחלקתי: softmax

 

פונקציה אקטיבציה :  (פועלת על כל  ניירון בודד )

  1. פונקציית אקטיבציה היא החלק ברשת שמכניס “אי־לינאריות”.

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

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

 

z=Wx+bz = Wx + b

ואז האקטיבציה מחליטה מה ייצא קדימה:

 

a=f(z)a = f(z)

במובן אינטואיטיבי, היא יכולה להפעיל נוירון (להעביר ערך משמעותי), או לכבות אותו (להחזיר 0 או ערך קטן), וכך נוצרת התנהגות של “שערים” שמדלקים/מכבים חלקים מהרשת לפי הקלט. לדוגמה, ReLU עושה בדיוק דבר כזה: אם

z<0z<0

היא מחזירה 0 (כיבוי), ואם

z>0z>0

היא מעבירה את

zz

(הפעלה). זה מאפשר לרשת לבנות פונקציות מורכבות מחלקים, כאילו יש אוסף של “כללים” שמופעלים רק כשצריך.

בנוסף, האקטיבציה עוזרת לרשת להתמודד עם אי־רציפויות או התנהגות “עם פינות” בעולם האמיתי. הרבה תופעות נראות כמו פונקציה שבקטעים שונים מתנהגת אחרת (למשל: עד סף מסוים אין תגובה, ואז יש תגובה חזקה; או מערכת שמתנהגת אחרת מעל/מתחת לערך קריטי). אקטיבציות כמו ReLU ומשפחתה יוצרות פונקציות שהן “חתוכות לקטעים” (piecewise), עם נקודות מעבר חדות יחסית, ולכן הן מסוגלות לבנות קירוב טוב גם לפונקציות שיש בהן שינוי חד בהתנהגות. חשוב לדייק: רשת סטנדרטית בדרך כלל תלמד קירוב רציף לפונקציה, אבל היא יכולה לייצר מעבר חד מאוד שנראה כמעט לא רציף, וכך להתאים לנתונים שמציגים “קפיצות” או שינוי פתאומי.

למה יש הרבה סוגי אקטיבציות? כי כל סוג נותן “אופי” אחר:

  • יש כאלה שמקלות על אימון עמוק ויציב (לכן ReLU/LeakyReLU/GELU נפוצות בשכבות חבויות).

  • יש כאלה שמגבילות פלט לטווח מסוים (למשל Sigmoid ל־0..1 כשצריך הסתברות).

  • יש כאלה שמתאימות לסיווג רב־מחלקתי (Softmax כדי לקבל הסתברויות שסכומן 1).

  • וחלק נבחרות כדי לשפר זרימת גרדיאנטים ולהימנע מבעיות באימון (כמו גרדיאנט נעלם).

בשורה אחת: פונקציית אקטיבציה מוסיפה אי־לינאריות, מאפשרת “הדלקה/כיבוי” של נוירונים לפי הקלט, ועוזרת לרשת לבנות פונקציות מורכבות עם אזורים שונים והתנהגות חדה, כולל קירוב טוב למצבים שנראים כמעט לא־רציפים.

 

טבלת מושגים בסיסית :

Concept Meaning (in this code) Where you see it Example from your program
Input (features) The numbers you feed into the model so it can learn the rule x = np.linspace(...) and model.Input(shape=(1,)) x values between -2 and 2 (one feature per sample)
Output / Target (labels) The “correct answer” the model should learn to predict from x y = 3*x**5 - 5*x**2 + 2*x + 14 y is the true function value for each x
Model Output (prediction) What the network actually predicts for a given input predicted = model.predict(x_test) predicted[i][0] is the predicted y for x_test[i]
Activation function A non-linear function applied after a Dense layer’s linear part (Wx+b) to let the network learn complex shapes Dense(..., activation='relu') relu(z)=max(0,z) used in the hidden layers
Linear part (Wx + b) The weighted sum + bias computed inside each Dense layer before activation inside every Dense(...) Not written explicitly; Keras does it internally
Hidden layer Internal layers that transform input step-by-step before final output Dense(64, activation='relu') 3 hidden layers with 64 neurons each
Output layer Last layer that produces the final numeric prediction Dense(1) 1 neuron, no activation (linear), good for regression
Loss (error measure) How wrong the model is; training tries to minimize it loss='mean_squared_error' and loss_log MSE: average of (y_true - y_pred)^2
Epoch One full pass of training over all training samples epochs = 760 and the training loop Each loop iteration trains 1 epoch (epochs=1)
הסבר איזה סוג רשת

הסבר על הקוד מבנה רשת ומושגי יסוד

MLP (Multi-Layer Perceptron) הוא סוג רשת עצבית “קדימה” (Feed-Forward) שמורכבת משכבות Dense / Fully-Connected. מטרת הרשת היא ללמוד מיפוי בין קלט לפלט:

 

xy^x \rightarrow \hat{y}

כאשר

y^\hat{y}

הוא החיזוי שהרשת מחזירה.

1) מה זה MLP

MLP היא רשת שבה:

  1. המידע זורם רק קדימה: קלט → שכבות חבויות → פלט.

  2. כל שכבה היא Dense: כל נוירון מחובר לכל הערכים שיוצאים מהשכבה הקודמת.

  3. בדרך כלל יש פונקציית אקטיבציה בשכבות החבויות כדי לאפשר לרשת ללמוד קשרים לא-לינאריים.


2) קלט (Input) ותכונות (Features)

Input / Features הם הנתונים שהרשת מקבלת כדי לבצע חיזוי.

בדוגמה:

  • x = np.array([0,1,2,3,4,10])

כאן לכל דוגמה יש תכונה אחת בלבד (מספר אחד). לכן במודל מופיע:

  • tf.keras.Input(shape=(1,))

המשמעות של shape=(1,):

  • כל דוגמה היא וקטור באורך 1:

    [x][x]

  • אם לכל דוגמה היו 3 תכונות (למשל

    x1,x2,x3x_1,x_2,x_3), היה נכתב shape=(3,).


3) פלט יעד (Targets / Labels)

Targets (Labels) הם “התשובות הנכונות” שהרשת צריכה ללמוד לחזות.

בדוגמה:

  • y = np.array([1,3,5,7,9,21])

כל זוג

(x,y)(x,y)

הוא דוגמת אימון:

  • x=0y=1x=0 \Rightarrow y=1

  • x=10y=21x=10 \Rightarrow y=21

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

xx

, היא תחזיר

y^\hat{y}

קרוב ל-

yy

.


4) נוירון (Neuron) ומה הוא מחשב

בשכבת Dense, כל נוירון מבצע שני שלבים:

שלב א: חישוב לינארי

 

z=Wx+bz = W x + b

  • WW

    = משקולות (Weights)

  • bb

    = הטיה (Bias)

  • xx

    = הקלט לשכבה (וקטור)

  • zz

    = פלט לפני אקטיבציה (נקרא גם pre-activation)

שלב ב: אקטיבציה (Activation)

 

a=f(z)a = f(z)

  • ff

    = פונקציית אקטיבציה

  • aa

    = הפלט של הנוירון אחרי האקטיבציה

בקוד לא רואים את

WW

ו-

bb

נכתבים מפורש, אבל הם קיימים בכל Dense(...) ונלמדים במהלך האימון.


5) שכבת Dense / Fully-Connected

שכבת Dense עם units = N אומרת:

  • יש N נוירונים בשכבה.

  • כל אחד מה-N מקבל את כל הערכים מהשכבה הקודמת.

בדוגמה:

  • Dense(10, relu) → 10 נוירונים

  • Dense(12, relu) → 12 נוירונים

  • Dense(10, relu) → 10 נוירונים

  • Dense(1) → נוירון אחד בפלט


6) שכבות חבויות (Hidden Layers)

שכבות חבויות הן השכבות בין הקלט לפלט. הן “מעבדות” את הקלט בשלבים.

בדוגמה:

  • 3 שכבות חבויות: 10 → 12 → 10

למה צריך שכבות חבויות?

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

    y=2x+1y=2x+1 מדובר בקשר לינארי, ולכן אפשר גם מודל פשוט יותר (למשל שכבת Dense(1) אחת).


7) פונקציית אקטיבציה (Activation Function)

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

בדוגמה האקטיבציה היא:

  • activation='relu'

ReLU

 

ReLU(z)=max(0,z)\text{ReLU}(z) = \max(0, z)

מה היא עושה:

  • אם

    zz שלילי → יוצא 0

  • אם

    zz חיובי → נשאר כמו שהוא


8) שכבת פלט (Output Layer) וסוג הבעיה (Regression)

שכבת הפלט בדוגמה:

  • Dense(1) בלי אקטיבציה

זה מתאים ל-Regression (רגרסיה): ניבוי מספר רציף.

למה בלי אקטיבציה בפלט?

  • כי ברגרסיה רוצים שהפלט יוכל להיות כל מספר (לא מוגבל ל-0..1 או להסתברות).


9) פונקציית הפסד (Loss) – MSE

הפסד (Loss) מודד כמה החיזוי שגוי. כאן משתמשים ב:

  • mean_squared_error (MSE)

 

MSE=1N(yy^)2\text{MSE} = \frac{1}{N}\sum (y – \hat{y})^2

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


10) אופטימייזר (Optimizer) – Adam

האופטימייזר הוא האלגוריתם שמעדכן את

WW

ו-

bb

כדי להקטין את ה-Loss.

בדוגמה:

  • optimizer='adam'

Adam הוא וריאציה יעילה של Gradient Descent עם התאמת קצב למידה לכל פרמטר.


11) Epoch ואימון (Training)

Epoch הוא מעבר אימון אחד על כל הדאטה.

בדוגמה:

  • epochs = 350

  • בתוך הלולאה: model.fit(..., epochs=1)

כל איטרציה בלולאה מאמנת Epoch אחד, שומרת Loss, ומדפיסה אותו.


12) חיזוי (Prediction) והכללה (Generalization)

אחרי אימון, הרשת מבצעת חיזוי באמצעות:

  • model.predict(x_test)

בדוגמה:

  • x_test = [3.0, 4.0, 8.0]

הערך 8 לא נמצא בדאטה המקורי (0,1,2,3,4,10), ולכן הוא בודק יכולת הכללה: ללמוד את הכלל ולא רק לזכור נקודות.

 

 

 

 

קישור :

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 – הפלט הוא מספר ממשי אחד מתוך טווח בלתי מוגבל (למשל: חיזוי מחיר של מוצר,  טמפרטורה , גובה , לחץ של תמיסה).

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

קישור ל ANN –  (Artificial Neural Network) classifier

https://colab.research.google.com/drive/1MgFjPa8y-megnslGQ7-lhqqxPeKlwype?usp=sharing


SDR – Software Defined Radio

 

 

 


תרגיל כיתה 2.1 רשת ניירונים חיזוי קטגוריה  

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

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

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

מטרה :

 

 

 


 

 

 

 

במהלך אימון של רשת נוירונים, אנו מודדים שני מדדים חשובים:

אובדן אימון (Training Loss) 

אובדן האימון מודד עד כמה המודל מצליח לחזות נכון את הדוגמאות שהוא ראה ולמד מהן בזמן האימון.

ו־אובדן ולידציה (Validation Loss).

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

 

 

 

 

 


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

 

תרגיל 2 : בנה רשת ניירונים   colab בעזרת בינה מאלכותית   TensorFlow   עבור הפונקציה  1 משתנה

y=x^2+3

  1. בנה את הפונקציה והצב לה ערכים מ -10 עד 10 בקפיצות של 1
  2. הצג גרף של הפונקציה
  3. בנה רשת בעזרת בינה מלאוכתית אשר מקבל את קלט ופלט ומאמנת את הרשת
  4. בצע פרדיקציה עבור הערכים -2 , -3.45  ,7.45 והצג אותם ערכים לפי הנוסחה וערכים לפי פרדקציה של הרשת

תרגיל 3 : בנה רשת ניירונים   colab בעזרת בינה מאלכותית   TensorFlow   עבור הפונקציה 2 משתנים

  1. בנה את הפונקציה והצב לה ערכים  m    מ0 עד 10 בקפיצות של 1  , h מ  0 עד 10
  2. הצג גרף של הפונקציה עבור m=2 h=0 to 10
  3. בנה רשת בעזרת בינה מלאוכתית אשר מקבל את קלט ופלט ומאמנת את הרשת
  4.  בצע פרדיקציה עבור הערכים  m=2  h=0.5   ; m=2  h=2.5