קורס יסודות בינה מלאכותית RB27-13 – בסיסי נתונים-רשתות ניירונים ובינה מלאכותית
- כותרת: כיצד בסיסי נתונים ושפת SQL משנים את עולם המיד
בעידן הדיגיטלי, כמויות המידע שעסקים וארגונים צוברים גדלות בקצב מסחרר. כאן נכנסים לתמונה בסיסי הנתונים ו-שפת SQL – כלים קריטיים לארגון, אחסון, שליפה וניתוח של מידע.
בסיס נתונים (Database) הוא מבנה המאחסן מידע בצורה מסודרת, כך שניתן לאחזר ולעדכן אותו ביעילות. לדוגמה, אתר מסחר ישמור מידע על מוצרים, לקוחות והזמנות בבסיס נתונים.
https://www.w3schools.com/mysql/mysql_intro.asp
SQL (Structured Query Language) היא שפה אוניברסלית לניהול בסיסי נתונים. בעזרתה ניתן:
-
ליצור טבלאות חדשות (
CREATE TABLE
) -
להזין נתונים (
INSERT
) -
לשאול שאלות כמו "מי הלקוח שקנה הכי הרבה?" (
SELECT
) -
לעדכן נתונים (
UPDATE
) -
ולמחוק מידע (
DELETE
)
Before: P002 → 13.99
After: P002 → 14.99
Before: P003 stock = 60
After: P003 stock = 80
New Row Added:
| P006 | Gaming Mouse | 100 | 12.00 | 19.99 |
| P007 | Webcam 1080p | 50 | 18.00 | 29.99 |
פקודת ORDER BY ב-SQL – הסבר ודוגמאות
ב-SQL, הפקודה ORDER BY
משמשת למיון של תוצאות השאילתה לפי עמודה אחת או יותר. ניתן לבחור למיין מהקטן לגדול (בסדר עולה – ASC) או מהגדול לקטן (בסדר יורד – DESC). ברירת המחדל היא מיון עולה.
מבנה כללי:
דוגמאות על טבלת Orders
נניח שיש לנו טבלה בשם Orders
עם העמודות הבאות:
-
OrderID
– מספר הזמנה -
CustomerID
– מזהה לקוח -
EmployeeID
– מזהה עובד -
OrderDate
– תאריך ההזמנה -
ShipperID
– מזהה חברת שילוח
דוגמה 1: מיון ההזמנות לפי תאריך (מהישן לחדש)
דוגמה 2: מיון לפי מזהה הלקוח מהגבוה לנמוך
דוגמה 3: כמה הזמנות ביצע כל לקוח, ממויין מהכי הרבה לפחות
באמצעות ORDER BY
ניתן לשלוט על סדר הצגת הנתונים ולבצע ניתוחים יעילים, כמו איתור לקוחות פעילים יותר, תאריכים עמוסים בהזמנות, ועוד.
טבלת בן ואב
טבלת : Orders
טבלת : Order_Items
תרגיל כיתה 1 : בסיסי נתונים ובינה מאלכותית
היכנסת לאתר דרך ה גימייל
- טען את הנתונים הבאים לchat gpt ונתן לבינה מלאכותית ללמוד אותם – לאחר מכן בקש מהבינה המלאכותית לבנות לך שאילתות SQL
- CustomerID INT PRIMARY KEY,
CustomerName VARCHAR(100),
ContactName VARCHAR(100),
Address VARCHAR(100),
City VARCHAR(50),
PostalCode VARCHAR(20),
Country VARCHAR(50)
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
4. בנה בעזרת בינה מאלכותית שאילתות עבור בסיס הנתונים שם הבטלה הינה Customers
4.1 – הצגת כל הנתונים בטבלה
4.2 – הצגת שם לקוח (CustomerName) ומדינה (Country)
4.3 – הצגת כל הלקוחות מהעיר 'México D.F.'
4.4 – הצגת כל הלקוחות מגרמניה (Germany) או מבריטניה (UK)
4.5 – הצגת כתובת (Address) ומיקוד (PostalCode) של הלקוחה 'Christina Berglund'
4.6 – הצגת מספר הלקוחות בכל מדינה
4.7 – הצגת לקוחות שהמיקוד שלהם מתחיל ב-‘05’
4.8 – הצגת שמות לקוחות לפי סדר אלפביתי יורד
4.9 – הצגת כל הלקוחות שאין להם מיקוד (PostalCode ריק)
4.10 – שינוי שם העמודה בתוצאה ל-"שם לקוח"
פתרון תרגיל :1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
— 4.1 – הצגת כל הנתונים בטבלה
SELECT * FROM Customers;
— 4.2 – הצגת שם לקוח ומדינה
SELECT CustomerName, Country FROM Customers;
— 4.3 – הצגת כל הלקוחות מהעיר 'México D.F.'
SELECT * FROM Customers
WHERE City = 'México D.F.';
— 4.4 – הצגת כל הלקוחות מגרמניה או מבריטניה
SELECT * FROM Customers
WHERE Country IN ('Germany', 'UK');
— 4.5 – הצגת כתובת ומיקוד של הלקוחה 'Christina Berglund'
SELECT Address, PostalCode FROM Customers
WHERE ContactName = 'Christina Berglund';
— 4.6 – ספירת לקוחות לפי מדינה
SELECT Country, COUNT(*) AS TotalCustomers
FROM Customers
GROUP BY Country;
— 4.7 – לקוחות שמיקוד שלהם מתחיל ב–‘05’
SELECT * FROM Customers
WHERE PostalCode LIKE '05%';
— 4.8 – שמות לקוחות בסדר יורד
SELECT CustomerName FROM Customers
ORDER BY CustomerName DESC;
— 4.9 – לקוחות ללא מיקוד
SELECT * FROM Customers
WHERE PostalCode IS NULL OR PostalCode = ";
— 4.10 – הצגת שם לקוח עם שינוי כותרת העמודה לעברית
SELECT CustomerName AS 'שם לקוח' FROM Customers;
|
תרגיל 2 : טבלת ORDERS
1.נתונה הטבלה הבאה https://www.w3schools.com/mysql/trymysql.asp?filename=trysql_select_where
1.1 נתח בעזרת בינה מלאכותית את הטבלה ובנה שאילתות ב SQL הרצ את השאילתות בתיבה
2. בנה שאילתה כמה הזמנות עשה לקוח 58
3. בנה דוח ב SQL שמראה כמה לקוחות עשה כל לקוח ומיין בסדר יורד
4. בנה דוח הזמנות שמראה כמה הזמנות נעשו בכל יום
תרגיל 3 : טבלת OrderDetails קשר בן ואב
למד את הבינה מלאכותית ללמוד את הטבלה לבד שמות העמודות ושם טבלה חובה לתת לה
https://www.w3schools.com/mysql/trymysql.asp?filename=trysql_select_where
- מה טבלת אב ומה טבלת בן
- בנה שאליתה מראה את הזמנה 10250 וכל הפריטים שהוזמנו בה
- בנה שאילתה ב SQL הראה את כל המוצרים שנכללו בהזמנה 10248 יחד עם המידע הרלוונטי מהטבלה Orders.
חלק ב : SDR ובינה מלאכותית
אזהרה:
HackRF מסוגל לשדר, ולכן שימוש לא חוקי בתדרים יכול להפר חוקי תקשורת ולהפריע לשירותים קריטיים (כמו GPS או רשתות סלולר). יש להשתמש בזהירות ובתחומים מורשים לפי החוק של מדינת ישראל ומעבדה מורשה לניסויים.
מה זה HackRF?
HackRF הוא מכשיר Software Defined Radio (SDR) פתוח וזול יחסית, שמאפשר שליחה וקליטה של אותות רדיו בטווח רחב של תדרים – הכל דרך המחשב.
תכונות עיקריות:
-
טווח תדרים: מ־1 MHz עד 6 GHz
-
Duplex: רק Half-Duplex – לא יכול לשדר ולקלוט בו זמנית
-
רוחב סרט: עד 20 MHz
-
USB: חיבור USB 2.0
-
תמיכה בתוכנה: עובד עם תוכנות כמו GNURadio, SDR#, GQRX ועוד
-
קוד פתוח: גם החומרה וגם התוכנה
למה משמש HackRF?
-
ניתוח אותות אלחוטיים (WiFi, Bluetooth, GSM, GPS, ועוד)
-
קליטת שידורי לווין
-
בדיקות אבטחה של מערכות אלחוטיות
-
יצירת אותות (RF Signal Generation)
-
לימוד ונסיונות בתחום ה־RF וה־SDR
דוגמה לשימוש:
אפשר להשתמש ב-HackRF עם תוכנה כמו GNU Radio
כדי לנתח תדרים, להקליט שידורים, ואפילו לדמות פרוטוקולים כמו NFC או RFID.
1. Replay Attack With HackRF
2. HackRF One Portapack H2+
5. פייטון ו SDR pyrtlsdr התכנה ויצירת קוד בעזרת בינה מלאכותית
1 |
pip install pyrtlsdr numpy matplotlib |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
import numpy as np import matplotlib.pyplot as plt from rtlsdr import RtlSdr import time # --- Step 1: Initialize the SDR device --- sdr = RtlSdr() # --- Step 2: Configure SDR parameters --- # Sampling rate in Hz (2.4 million samples per second) sdr.sample_rate = 2.4e6 # Center frequency in Hz (e.g., 100 MHz to tune into FM radio band) sdr.center_freq = 100e6 # Gain setting – 'auto' lets the SDR choose an appropriate gain sdr.gain = 'auto' # --- Step 3: Read samples for approximately 3 seconds --- print("Reading SDR samples for 3 seconds...") start_time = time.time() samples = [] # Read samples in small chunks for 3 seconds while time.time() - start_time < 3: # Each call returns 1024 complex I/Q samples data = sdr.read_samples(1024) samples.extend(data) # Close the SDR device to release hardware sdr.close() # Convert list to numpy array samples = np.array(samples) # --- Step 4: Plot the Power Spectral Density (FFT graph) --- # Set up plot size plt.figure(figsize=(10, 4)) # Compute and display the power spectrum # NFFT: number of points in FFT window # Fs: sampling rate (in MHz for plotting) # Fc: center frequency (in MHz for plotting) plt.psd(samples, NFFT=1024, Fs=sdr.sample_rate / 1e6, Fc=sdr.center_freq / 1e6) # Add labels and title plt.title("SDR Spectrum Analysis (3-second Snapshot)") plt.xlabel("Frequency [MHz]") plt.ylabel("Power [dB]") plt.grid(True) plt.tight_layout() plt.show() |
ישום המרה :
udio from RTLSDR and convert to text using Google Speech-to-Text service
חלק 3: תרגיל כיתה פיתוח מוצר
זיהוי מצלמות נסתרות באמצעות בינה מלאכותית
מטרת התרגיל:
פיתוח תוכנה מבוססת בינה מלאכותית (AI) לזיהוי מצלמות נסתרות בגודל 10 מ"מ, המותקנות בחדרי מלון ומחוברות באמצעות כבל נסתר באורך של 30 מטר למסך מרוחק.
שלבים לביצוע:
1. חקר ראשוני:
-
בצעו חיפוש עצמאי באינטרנט כדי להבין את סוגי המצלמות הנסתרות הקיימות בשוק.
-
אתרו סרטונים ומאמרים המתארים את אופן הפעולה וההתקנה של מצלמות אלו.
-
הכינו רשימה של לפחות 3 סוגי מצלמות נפוצות, כולל מאפיינים טכניים כגון גודל, סוג עדשה, ואופן החיבור.
2. הבנת עקרונות פיזיקליים:
-
למדו על עקרונות פיזיקליים הרלוונטיים לזיהוי מצלמות נסתרות, כגון:
-
השתקפות אור מעדשות.
-
פליטת קרינה אינפרא-אדומה.
-
שדות אלקטרומגנטיים הנפלטים ממעגלים אלקטרוניים.
-
-
הסבירו כיצד עקרונות אלו יכולים לסייע בזיהוי מצלמות מוסתרות.Szmidjammer
3. סקירת טכנולוגיות קיימות:
-
חקרו טכנולוגיות קיימות לזיהוי מצלמות נסתרות, כגון:
-
גלאי RF (תדר רדיו).
-
גלאי אינפרא-אדום.
-
אפליקציות מבוססות AI לסמארטפונים.
-
-
השוו בין הטכנולוגיות השונות מבחינת יעילות, עלות, ונוחות שימוש.Google Play+2Szmidjammer+2Amazon+2
4. פיתוח אלגוריתם מבוסס AI:
-
הציעו אלגוריתם מבוסס בינה מלאכותית לזיהוי מצלמות נסתרות, בהתבסס על המידע שנאסף.
-
הגדירו את סוגי הנתונים שהאלגוריתם ינתח (למשל, תמונות, אותות RF).
-
הסבירו כיצד האלגוריתם יזהה דפוסים המעידים על נוכחות מצלמה נסתרת.Szmidjammer
5. תכנון ניסוי:
-
תכננו ניסוי לבדיקת יעילות האלגוריתם שפותח:
-
הגדירו את סביבת הניסוי (למשל, חדר מדמה חדר מלון).
-
ציינו את הציוד הדרוש לביצוע הניסוי.
-
הסבירו כיצד תמדדו את הצלחת האלגוריתם בזיהוי מצלמות נסתרות.
-
6. דיון במגבלות ואתגרים:
-
דונו במגבלות האפשריות של הגישה המוצעת, כגון:
-
מצלמות שאינן פעילות בזמן הסריקה.
-
הסתרה מתוחכמת במיוחד של מצלמות.
-
-
הציעו דרכים להתמודדות עם אתגרים אלו.