359 קריאות
359 קריאות

מדוע בינה מלאכותית צריכה להפסיד (קצת) כדי לזהות את הפנים שלך טוב יותר

על ידי Eva Vanski13m2025/03/13
Read on Terminal Reader

יותר מדי זמן; לקרוא

זיהוי פנים (FR) נמצא בשימוש נרחב במגזר הפיננסי, אבטחה, מעקב וידאו, שירותי בית חכם, אימות רב-גורמי וכו'. במאמר זה נצלול עמוק לתוך מגמות מחקר עדכניות
featured image - מדוע בינה מלאכותית צריכה להפסיד (קצת) כדי לזהות את הפנים שלך טוב יותר
Eva Vanski HackerNoon profile picture
0-item

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


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

זיהוי פנים ויישומיו

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


מעבר לשימושים המעשיים הללו, דגמי FR ממלאים גם תפקיד מפתח במודלים גנרטיביים מודרניים. הם משמשים בדרך כלל לאובדן זיהוי במודלים של שיקום פנים כמו GFPGAN ו-CodeFormer, כלים להחלפת פנים כמו SimSwap ו-FaceShifter, מודלים מבוססי Image-to-Image GAN כמו pSp ו-HyperStyle, כמו גם במודלים מבוססי Transformer ו-Stable Diffusion לשימור זהות.


ArcFace (2018–2019) היא פונקציית אובדן הזיהוי הנפוצה ביותר, בעוד ב-CosFace (2018) וב-FaceNet נעשה שימוש בתדירות נמוכה בהרבה.

עבור סקירה זו, אתמקד באופן שבו השתנה נוף ה-FR מאז ArcFace, במיוחד בשנים האחרונות.

סקירה קצרה של צינור זיהוי הפנים

זיהוי Fce דורש עיבוד מוקדם: זיהוי פנים, חיתוך ויישור. העיבוד המקדים צריך להיות זהה גם עבור נתוני אימון וגם עבור נתוני בדיקה, בדרך כלל באמצעות יישור דמוי FFHQ (Flickr-Faces-HQ Dataset). בדרך כלל, שני גלאים נוספים נפרדים משמשים לכך: גלאי תיבה תוחמת פנים וגלאי ציון דרך פנים. ישנם מודלים מקצה לקצה, עם יישור שמאומנים יחד עם המודל הראשי, אבל אני לא מתייחס אליהם בחלק הזה של הסקירה. כאן, אנו מניחים שמערך הנתונים של ההדרכה והבדיקה נחתכים ומיושרים באופן אחיד. לפיכך, המודל מוזן בכניסות חתוכות ומיושרות.


צינור קדם-עיבוד FR טיפוסי

במערך ההדרכה עבור משימת FR, יש כמה תמונות לכל זהות (אדם). המשימה של הדוגמנית היא ללמוד להבחין בין תמונות השייכות לאותו אדם לבין תמונות של אנשים שונים.


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


  • עַמוּד הַשִׁדרָה. עמוד שדרה, אשר יכול להיקרא גם מחלץ תכונה, לוקח תמונת פנים מעובדת מראש כקלט ומוציא וקטור תכונה של הטבעות. עמודי שדרה קלאסיים הם רשתות עצביות קונבולוציוניות (CNN) כגון ResNet, VGGNet, ResFace, SE-ResNet ואחרות. אלה יכולים להיות גם דגמי VisionTransformer או Feature Pyramid Network או הווריאציות המורכבות יותר שלהם. לא נתעכב על עמודי השדרה של דגמים בפירוט בחלק זה של הסקירה.


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

סוגי פונקציות הפסד

הפסד מבוסס זוג

הקטגוריה הראשונה נקראת «אובדן מבוסס זוג», לפעמים הן נקראות «שיטות מבוססות למידה מטריות»: אובדן ניגודי, אובדן שלישייה, אובדן N-זוגות.


שיטות אלו משלבות את צמדי המדגם החיוביים והשליליים לפני אימון המודל או משלבות באופן דינמי זוגות מדגם באינטרנט במהלך האימון. שני המצבים הללו מאפשרים לחלץ ייצוגי פנים משמעותיים ברמת המדגם, אך יגדילו באופן אקספוננציאלי את גודל הנתונים.


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


ערכת אובדן שלישייה


הגידול המהיר של מספר הזוגות האפשריים עם גודל מערך הנתונים מאלץ אותנו לחפש אסטרטגיות לבחירת זוג, שהן בדרך כלל אמפיריות ומורכבות מבחינה חישובית.

הפסד מבוסס סיווג

קטגוריה נוספת נקראת «אובדן מבוסס סיווג» או לפעמים נקראת «שיטות מבוססות למידה אבטיפוס»: אובדן Softmax, CosFace, ArcFace, NormFace. הם עובדים עם מידע כללי על מחלקות באמצעות אב טיפוס, המכונה גם פרוקסי כיתה או מרכז כיתה. אבות טיפוס הם פרמטרים הניתנים ללמידה, המתעדכנים במהלך אימון המודל. נכון לעכשיו, הפסדים מבוססי סיווג משמשים בעיקר למודלים של זיהוי פנים.

היסטוריה של הפסדים מבוססי סיווג

אם ניקח בחשבון את המשימה FR כסיווג, אז נוכל להשתמש באובדן softmax (שם אחר הוא אובדן צולב אנטרופיה קטגורי). במהותו, אובדן Softmax הוא פונקציית הפעלה של Softmax + אובדן חוצה אנטרופיה.

תכנית הפסד

נזכיר את הנוסחאות. הראשון הוא הפעלת Softmax, והשני הוא אובדן Cross-Entropy.


Softmax activation, and Cross-Entropy loss





שילוב של קבל:

Softmax loss









פונקציית האובדן מקבלת את התוצאה של השכבה האחרונה המחוברת במלואה, כאשר 𝒙𝒊 מציינת את תכונת ההטמעה של תמונת האימון 𝑖-ה, 𝑦𝑖 היא התווית של 𝒙𝒊 ו- 𝑾 מציינת את המשקל של השכבה האחרונה המחוברת במלואה.


זה עובד, אבל יש בעיה - הגבולות בין השיעורים מטושטשים. צעד חדש ב-FR נעשה בשנת 2018 עם הופעת דגם ArcFace. הבסיס נשאר אובדן softmax, אבל אנחנו עוברים לשקול את הזוויות בין הווקטורים. הבה נזכיר את הדמיון הקוסינוס של הנוסחה:







בואו נעשה החלפה בנוסחת ההפסד של softmax





לאחר מכן, מוסיפים שוליים כך שהזוויות התוך-מעמדיות קטנות יותר והזוויות הבין-מעמדיות גדולות יותר. זה נותן פער בין השיעורים במקום הגבולות המטושטשים של אובדן softmax.


שיטות דומות: אם נחליף את cos(θ + m) ב-cos θ − m נקבל אובדן CosFace.

בשיטות המבוססות על Softmax, אב הטיפוס נחשב למאוחסן במטריצת המקדם של השכבה הליניארית האחרונה, כלומר, Pi = Wi, אב הטיפוס מתעדכן באמצעות הגרדיאנט שלו בהפצה לאחור (בגלל זה הופיע השם «שיטות למידה מבוססות אב טיפוס»).

כאן מתחילה ההיסטוריה של פונקציות האובדן המודרניות עבור FR. במהלך השנים, הופיעו שינויים ושיפורים רבים, אך די בנוסחאות שניתנו לעיל כדי להבין את החומר הנוסף.

תת-מרכז ArcFace

אחד השיפורים הופיע ב-2020, הוא נקרא Sub-center ArcFace והוא מיועד למערכי נתונים רועשים. אילוץ קומפקטיות תוך-מעמדי מוביל להתאמת יתר של נתונים רועשים. תת-מרכז ArcFace מציג תת מחלקות. דגימה בקבוצת הדרכה צריכה להיות קרובה לאחד מתתי-המרכזים החיוביים, לא לכולם. זה מפחית את השפעת הרעש בנתונים.












גם למודלים של ArcFace וגם ל-Sub-center ArcFace יש הטמעות בתוך ספריית Insightface, כולל קוד לאימון ומשקולות מאומנות מראש.


ל-Insightface יש יישום של ArcFace עם עמודי שדרה שונים: iresnet (34,50,100,200,2060), mobilefacenet, vit (VisionTransformer).


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

מערכי הנתונים MS1M, Glint360K, WebFace42M שימשו להדרכה.

שוליים גמישים

האתגר העיקרי של שיטות זיהוי פנים הוא רעש נתונים. שיטות מבוססות למידה של אב טיפוס רגישות להטיות של אב טיפוס שרעש מציג. אחת הדרכים לאזן בין התאמה יתר ותת התאמה היא להתאים את המרווח, הפרמטר העיקרי בהפסדי softmax-base.

AdaCos

אחת השיטות הראשונות להתאים קנה מידה ושולי זוויתי עבור הפסדי softmax מבוססי קוסינוס כגון L2-softmax, CosFace ו-ArcFace.

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

2019, נְיָר , יישום pytorch (אבל ללא משקולות מאומנות מראש)

 Changing process of angles in each mini-batchwhen training














מאומן על מערכי נתונים של CASIA-WebFace ו-MS1M, רזולוציית קלט 144 × 144. נבדק על מערכי נתונים של LFW, MegaFace ו-IJB-C, בהשוואה לאובדי L2-softmax, CosFace ו-ArcFace.


במהלך השנים האחרונות, הופיעו מספר שיטות ציון דרך ליישום שולי הסתגלות ב-FR, כגון Dyn-ArcFace (2022), MagFace (2021), ElasticFace (2021), אך אנו נתמקד באחת העבודות האחרונות בתחום זה - X2-Softmax (2023).


X2-Softmax


בהשוואה ל-AdaCos, X2-Softmax מנסה להסביר את ההתפלגות הלא אחידה של המחלקות. מרווח קבוע המתאים בין מחלקות מסוימות, עשוי להיות גדול מכדי להתכנס בין מחלקות אחרות, או קטן מדי כדי לקדם קומפקטיות פנים-מעמדית משמעותית של תכונות הפנים בין מחלקות אחרות.

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

הבה נזכיר את הנוסחה הכללית להפסדים מבוססי softmax:







כאן, עבור הפסדים כגון ArcFace או CosFace, רק פונקציית הלוגיטים f(θ) שונה. עבור פונקציית האובדן X2-Softmax זה נראה כך:






הפסדים מסורתיים מבוססי softmax משתמשים בקוסינוס, אך קוסינוס הופך לפונקציה ריבועית כאשר מורחב אותה לסדרת טיילור, כך שפונקציה ריבועית נבחרת עבור X2-Softmax. ביטול מונחים מסדר גבוה של x ושמירה על מונחים קבועים וריבועיים יכולים למנוע התאמת יתר של המודל.


כאן a, h ו-k הם היפרפרמטרים: h ו-k קובעים את מיקום הקודקוד של עקומת הפונקציה הלוגיטס, ו-a קובע את כיוון פתיחת העקומה ואת מידת התקבצות.


ב-X2-Softmax, כאשר הזווית בין המשקולות θ גדלה, השוליים הזוויתיים ∆θ גדלים באופן מונוטוני בו-זמנית.

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


להדרכה, המחברים בחרו בעמוד השדרה של Resnet50. המודל הוכשר על מערך הנתונים MS1Mv3 (מבוסס על MS-Celeb-1M שעובד מראש על ידי RetinaFace, להסרת תמונות רועשות) - 93,000 זהויות ו-5.1 מיליון תמונות פנים.

SFace: אובדן Hypersphere מוגבל בסיגמואיד לזיהוי פנים חזק

רוב ההפסדים עם מרווחים גמישים נשארים בתוך ההפסדים המבוססים על softmax, אבל יש יוצאים מן הכלל. SFace נוטש הפסדים מבוססי softmax אך שומרת על הרעיון של אופטימיזציה של מרחקים תוך-מעמדיים ובין-מעמדיים. המודל מטיל אילוצים תוך-מעמדיים ובין-מעמדיים על סעפת ההיפרספרה, הנשלטות על ידי שתי עקומות סיגמואידיות. עקומות משנות שיפועים על ידי שליטה בקצב השינוי של המקדמים כשהם מתקרבים למרכז היעד או המעמד הזרה.

2022, נְיָר , יישום pytorch (משקולות מאומנות מראש זמינות גם להורדה)

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


הרעיון של הגבלת הטבעות פנים כדי להפוך אותן לאפליות במגוון היפרספרות כבר נראה, למשל, ב-Sphereface (Deep hypersphere embedding לזיהוי פנים, 2017).


המטרה היא להקטין את המרחק תוך-מחלקה ולהגדיל את המרחק בין-מעמדי, כך שניתן לנסח את אובדן ההיפרספרה המוגבל בסיגמואיד כמו






היכן 𝜃𝑦𝑖 הוא המרחק הזוויתי בין תכונת הטבעה של תמונת האימון ה- 𝑖 לבין אב הטיפוס המתאים. 𝜃j הוא המרחק הזוויתי לאבות הטיפוס הזרים.






פונקציות 𝑟𝑖𝑛𝑡𝑟 ו- 𝑟𝑖𝑛𝑡𝑒𝑟 המיועדות לשינוי קנה מידה של יעדים פנים-מעמדיים ובין-מעמדיים בהתאמה ולשליטה בדרגת האופטימיזציה. [·]𝑏 הוא אופרטור שיפוע הבלוק, אשר מונע את התרומה של התשומות שלו להילקח בחשבון עבור שיפועים מחשוב.

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

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










𝑠 היא האסימפטוטה העליונה של שתי עקומות סיגמואידיות כסקאלה הראשונית של שיפוע, ו- 𝑘 היא הבקרה על השיפוע של עקומות סיגמואידיות. היפרפרמטרים 𝑎 ו- 𝑏 מחליטים על היירוט האופקי של שתי עקומות סיגמואידיות ולמעשה שולטים במרווח הגמיש כדי לדכא את מהירות התנועה.


בהשוואה לפונקציות אובדן מבוססות softmax, ניתן להגביל את המרחק הבין-מחלקה והבין-מעמדי של SFace לרמה מתוכננת ולכן ניתן לבצע אופטימיזציה בצורה מתונה, וזה בדיוק היתרון של SFace.

להדרכה, המחברים בחרו בעמוד השדרה של ResNet (כמו עבור Arcface).


המודל הוכשר על מערכי הנתונים CASIA-WebFace, VGGFace2 ו-MS-Celeb-1M.

אב טיפוס כהפצה

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

VPL (לימוד אב טיפוס וריאצי)

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

VPL - מייצג כל מחלקה כהתפלגות ולא כנקודה במרחב הסמוי.













VPL מייעל את הדמיון בין דוגמאות מסט אימון לסט של אבות טיפוס וריאציות שנדגמים מהתפלגות לפי כיתה.

ההפצה של אבות טיפוס מאוחסנת ב-M ומתפרקת על פני ∆t שלבים. המחברים אימנו את ההפסד עם עמודי שדרה של ResNet50, ResNet100 ו-MXNet, כאשר MXNet נבחר כאחרון לבדיקה. מערך הנתונים של MS1M משמש לאימון, גודל הקלט של גידולי הפנים הוא 112×112.

ישנן מספר גישות שממשיכות את הנושא של השלמה של שיטות מבוססות אב טיפוס עם היתרונות של הפסדים מבוססי זוג (או נקראים אחרת מודלים מבוססי דגימה לדגימה), כגון UniTSFace (2023) או UNPG (Unified Negative Pair Generation toward Well-discriminative Feature Space for Face Recognition, 2022). אתמקד באחד ההפסדים החדשים ביותר במאמר זה: EPL.

EPL: לימוד אב טיפוס אמפירי לזיהוי פנים עמוק

באובדן Softmax מבוסס-שוליים, ההפסד מחושב בהשוואה לאבות טיפוס (מרכזי כיתה); כל הדגימות של כיתה אחת נמשכות למרכז משותף במהלך תהליך ההכשרה. מה שנחשב כממוצע במהלך תהליך ההכשרה, ומושפע מאוד מחריגים של דוגמאות שיכולות לסטות ממרכז האב-טיפוס. בשיטות מבוססות Softmax, אב הטיפוס נחשב למאוחסן במטריצת המקדם של השכבה הליניארית האחרונה, כלומר, Pi = Wi, אב הטיפוס מתעדכן באמצעות הגרדיאנט שלו בהפצה לאחור, ופונקציית ההפסד ממקסמת את הדמיון בין תכונות הדוגמאות לאבות הטיפוס המקבילים.

2024, נְיָר , יישום pytorch (משקולות מאומנות מראש זמינות גם להורדה)


ב-EPL נוצרים ומתעדכנים אבות טיפוס:

  • באופן אקראי בתחילת האימון
  • במהלך אימון המודל, כל דוגמה (X) באמצעות התכונות שלה x = E(X) מעדכנת את אב הטיפוס האמפירי המתאים Pi(e), כאשר E הוא מקודד פנים:








כאשר "α" הוא מקדם עדכון אדפטיבי שנוצר באמצעות התכונה x ואב הטיפוס שלה, "σ" הוא פונקציית הפעלה להתאמת מקדם העדכון לטווח מתאים ו-s(·, ·) היא פונקציית דמיון, הנלקחת בדרך כלל כפונקציית קוסינוס.


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


תהליך אימון: המקודד מחלץ את התכונות, מקדמים אדפטיביים α מחושבים כדי לעדכן את אב הטיפוס האמפירי, הדמיון בין התכונות לאבות הטיפוס משמש לחישוב ההפסד לאימון המקודד.

כדי למנף באופן מקיף את היכולות של למידת אב-טיפוס וגם למידת אב-טיפוס אמפירית, EPL משלבת אותם יחד כסכום ומציגה שוליים ברורים. עמוד השדרה של ResNet שימש לאימון ו-CASIA-WebFace כמערך נתונים לאימון. המודל נבדק על מערכי נתונים של MRF, IJB-C, LFW, CFP-FP, AgeDB ו-MegaFace.

שנאי-ArcFace

כפי שעולה מהאמור לעיל, לרוב, שינוי ההפסד משמש לפתרון בעיית הנתונים הרועשים והתאמת יתר, בעוד שעמוד השדרה אחראי ל"מורכבות" הדגם, אך ישנם יוצאים מן הכלל.


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

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


בענף 2 אנו לוקחים את הפלט של גודל H × W × D, והופכים אותו לוקטורים S בגודל 1 × 1 × D. ניתן לראות את הרצף הזה כרצף של הטבעות מטלאים עבור מקודד שנאי סטנדרטי. לאחר שכבת מקודד השנאי, מיושמת שכבה ליניארית ללא הגדרות נוספות של הפעלה או נשירה. לאחר מכן, פונקציית האנטרופיה הצולבת מעריכה הפסד עבור התפלגות ההסתברות של הפלט (עבור מחלקות היעד N). שני ההפסדים "ענף-1" ו-"ענף-2" משולבים באמצעות סכום משוקלל.

בשלב התיקוף (בדיקה) חותכים את הענף השני ומשתמשים רק בהטבעות מהענף הראשון הסטנדרטי. לבדיקת MS1M-arcface ו- WebFace4M (קבוצת משנה של WebFace 260M).


מַסְקָנָה

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

הנושאים הבאים נותרו מחוץ לחלק זה של הסקירה:

  • עמודי שדרה של דגמי FR
  • דגמי FR למקרים מיוחדים כגון מודע לחסימה, איפור-/גיל-/תאורה-/פוזה-זיהוי פנים בלתי משתנה
  • תלת מימד / דינמי FR
  • סקירת מערכי נתונים של FR הם ילמדו בחלקים הבאים.


L O A D I N G
. . . comments & more!

About Author

Eva Vanski HackerNoon profile picture
Eva Vanski@evansky
Machine Learning Engineer with expertise in Computer Vision and Recommender Systems.

תלו תגים

מאמר זה הוצג ב...

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks