ראשית טענו קבצים קטנים יחסית (למשל
עמודות),
100-
שורות ו
100
בעלי מימדים של
רצוי בעלי סוגי מידע שונים - כותרות,
תאריכים, ערכים מספריים שלמים,
מחרוזות וכו'. בהתחלה אל תנסו להשתמש
בכלים מובנים או תוספים של שפות תכנות,
אלא נסו לממש זאת בעצמכם - זה ישנה
את אופן ההסתכלות שלכם על המידע
ועל כמות הזמן שנחסכת לכם בשימוש
חוזר של קוד. לאחר מכן תתחילו לעשות
שימוש חוזר בקוד, בין אם שאתם כתבתם
ובין אם מצאתם באתר שיתוף קבצים או
חבילות מוכנות. זכרו תמיד שיש המון שפות
תכנות בחוץ, וכמעט בכולן ישנו מימוש
לקריאת קובץ אקסל או טקסט אחר. חפשו
או
csvread
,
xlsread
פונקציות מובנות כמו
(או את מקביליהן כמובן)
readtable
אפילו
שיקצרו את זמן העבודה שלכם וימקדו
אתכם בעיקר. שימו לב לזמן הטעינה
2 -
של הקובץ וכמות הזיכרון שיש לכם
פרמטרים שיהיו מאד חשובים בהמשך.
לאחר טעינת קבצים קטנים, נסו לעבוד עם
קבצים גדולים יותר, כאלו שאקסל יחזיר
לכם הודעת שגיאה אם תנסו לפתוח אותם
http
”. ב-//:
File
not
Loaded Completely
“ -
תוכלו למצוא המון דוגמאות
www
.
data
.
gov
שכוללות גם תחומי חיים שונים וגם סוגי
קבצים שונים - מקום נהדר להתחיל. בשלב
זה המטרה היא להתמודד עם כמות המידע
הגדולה ועם אופן העיבוד שלה, ולצורך כך
תצטרכו ללמוד שיטות לעיבוד המידע בצורה
של גושים. יש להגדיר "מצביע" לקובץ, ואז
לטעון בכל פעם גוש אחר של מידע. אתם
memmapfile
תעשו שימוש בפונקציות כמו
, שמאפשרות לכן לבצע את
MapReduce
ו-
העיבוד הזה. פעם קראתי הסבר ממש פשוט
- ומציע גם
MapReduce
של אופן הפעולה של
לכם לעשות זאת. השלב הבא יהיה העבודה עם
JDBC
/
ODBC
או
SQL
מאגרי נתונים מבוססי
- אלו כבר מערכות שהמידע זמין בצורה
יחסית פשוטה, וכל שצריך הוא לשאול שאלה
נכונה את המערכת, ע"י בניה של שאילתא
) מתאימה. לצורך כך כמובן שתצטרכו
Query
(
גישה למאגר נתונים שכזה, וניתן למצוא רבים
כאלו. לדוגמא, מיקרוסופט מציעה מאגר
של מידע ועם עדכונים
10
GB
נתונים כזה עם
חופשיים בחינם, וכמובן שלא ניתן להתעלם
הפופולרית. לא משנה מה תתקינו
mySQL
מ-
או עם מה תעבדו - חשוב לשים לב לתהליך
העבודה, לאופן כתיבת השאילתא, לאופן
רכישת המידע ולאופן כתיבת התוצאות
בחזרה. ובשלב האחרון, שימו יהבכם ותבחנו
.
Spark
או
Hadoop
כיצד אתם מתמודדים עם
מאגרי נתונים מבוזרים שבהם אתם מוכרחים
וכל העיבוד נעשה
MapReduce
להשתמש ב-
ישירות בענן. אם לא תעבדו נכון - תקבלו
תוצאות לא נכונות.
הנושא המרכזי ביותר הוא עולם המתמטיקה,
כלומר - שימוש בסטטיסטיקה וניתוח נתונים
וכמובן ידע והיכרות עם אלגוריתמים מסוגים
שונים - לימוד מכונה/עיבוד תמונה/עיבוד
אות - בהתאם לנושאים המעניינים אתכם
או שבהם תעסקו. לא כל העוסקים בתחום
הם בוגרי תואר בהנדסה או מתימטיקה ולכן
אני מציע לעבור לפחות הכשרה או שתיים
בעולם הניתוח הסטטיסטי. יש קורס ממש
שמראה כיצד עושים זאת,
Coursera
טוב של
אבל גם ספר טוב יכול לשמש בתור מנחה
מצוין. תתמקדו בעיקר - איך לפתור בעיות
מינימום ומקסימום, איך מבצעים פעולות
אלגבריות כמו כפל מטריצות וקצת על רשתות
נוירונים. זה יספק לכם מבוא מצוין לפרק
הבא של לימוד מכונה שרובו ככולו מבוסס על
מתמטיקה. וכאן שוב ניתן למצוא ספר מצוין,
לעבור קורס במרכז הדרכה בסיסטמטיקס
. לא מצאתי אף קורס
Coursera
או קורס ב-
שיכול להנחיל את כל תורת לימוד המכונה
בפרק זמן סביר, ועל כן תיאלצו להמשיך
ולהתעמק וללמוד בעצמכם גם לאחר הקורס -
ואפילו כדאי לעשות זאת. זהו תחום של המדע
שממשיך להתפתח כל הזמן וחייבים להישאר
עדכניים. לפני מספר שנים, עם כניסת יכולות
מתקדמות לעיבוד וידאו, התפתח תחום שלם
שעוסק בלמידה מתוך וידאו וכיום ניתן לראות
דוגמאות רבות של זיהוי עצמים בתוך סרטים,
מעקב אחרי חשודים וכמובן מציאת קשר בין
מספר תמונות ממספר אתרי אינטרנט או
אתרי שיתוף מידע קיימים. אז אם חבר תייג
אותי בתור חבר באינסטגרם, כנראה שאני גם
חבר שלו בפייסבוק וניתן להציע לו להוסיף
אותי בתור חבר, נכון? את החלק האחרון
של הלימוד תיאלצו כבר לעשות בהתאם
לתחום שמעניין אתכם. בנושא של עיבוד
אות ותמונה יש לא מעט קורסים והכשרות,
בין אם באוניברסיטאות או מכללות ובין אם
בהכשרות אונליין למיניהן. אבל שימו לב שלא
ניתן לצפות מאף בוגר של קורס "חד-פעמי"
שכזה באמת להבין בחומר, ללא תרגול, בניה
של מערכת או שתיים ולמידה מניסיון של
אחרים. ובנושא זה אני תמיד ממליץ לשוחח
עם מי שכבר עשה את זה, כלומר להתייעץ עם
מישהו שהוא מומחה לתחום הייחודי, ולקבל
ממנו הכוונה ועצה. מניסיוני - ברוב המקרים
זה ייעשה בשמחה.
ולבסוף ידע וניסיון בהטמעת פתרון בעולם
/וכדומה. כאשר
Web
האמיתי - קוד מכונה/
אנו רוצים להטמיע מערכת בעולם האמיתי,
היא צריכה להתנהג לפי הגדרות העולם
האמיתי, שבו כל שניה לוקחת בדיוק שניה
ואם צריכת הזיכרון גבוהה בבית אחד מעבר
למה שיש - המערכת קורסת. לשם כך יש
לבצע היכרות מעמיקה עם מערכות הפעלה
ועם מעבדי זמן-אמת, אשר כיום נחלקים
. תחת
FPGA
ו-
DSP
סוגים -
2-
בכלליות ל
נכללים כל אותם מחשבים
DSP
קטגוריות
שיכולים להריץ מערכת הפעלה, והם
בדר"כ מכילים עוד רכיבי זיכרון, ממשקים
,
ARM
יכללו מעבדי
DSP
וכדומה. סוגים של
מעבדי אינטל, רוב המעבדים הסלולריים
TI
,
NXP
,
Freescale
ויצרנים רבים נוספים (,
...). בכדי להפעיל מעבדים אלו יש
Windriver
- שפת
++
C
/
C
להשתמש בשפת תכנות מסוג
תכנות ותיקה שהחליפה את שפת האסמבלי
לרוב יהיו
FPGA
ועדיין חיה ונושמת. מעבדי
מוכווני מטרה וינסו לבצע אותה בשיטה
המקבילה והמהירה ביותר. מעבדי תקשורת,
סלולר, כל המוצרים שמיוצרים בכמויות של
או
FPGA
אלפים ומעלה לרוב יהיו מבוססי
שכן עלות הייצור שלהם נמוכה. בכדי
ASIC
להפעיל מעבדים מסוג זה יש לכתוב בשפת
VHDL
, אשר נקראת
C
מכונה הדומה לשפת
. יש כמובן גישות ושיטות נוספות,
Verilog
או
יש כבר
Web
אך לא נרחיב בנושא. לעולם ה-
צורך להכיר כתיבה של שפות אשר נעשה בהם
JAVAScript
שימוש היום בעולם זה, כמו ,
. יש לזכור ששפות
JAVA
,
C
#,
HTML
,
Python
תכנות הן מאד דומות במהות ובעקרונות
המנחים אותן, אך עשויות להיות מאד שונות
. לכן
Syntax
במימוש ובפקודות, כלומר ב-
כדאי להכיר לפחות שפה אחת בצורה מלאה
«
web
דוגמא לשילוב המודלים והתובנות ביישומי
New-Tech Magazine l 78