**DL4J** (או **Eclipse** **Deeplearning4j**) היא ספריית תוכנה כתובה ב-Java עבור JVM. הספרייה משמשת כשלד תוכנה עם תמיכה רחבה באלגוריתמי למידה עמוקה. DL4J כולל יישומים של מכונת בולצמן המוגבלת, רשתות אמונה עמוקה, מקודד עמוקים, מחסנית אוטומטית מוערמת ורשת טנזור עצבית רקורסיבית, word2vec, doc2vec ו-GloVe. אלגוריתמים אלו כוללים כולם עיבוד מקבילי ומבוזר המשתלבים עם Apache Hadoop ו-Spark.

DL4J היא תוכנת קוד פתוח ששוחררה תחת Apache License 2.0, שפותחה בעיקר על ידי קבוצת למידת מכונה בסן פרנסיסקו. היא נתמכת מסחרית על ידי הסטארט-אפ Skymind, המאגד את DL4J, TensorFlow, Keras וספריות למידה עמוקה אחרות בהפצה ארגונית הנקראת Skymind Intelligence Layer. באוקטובר 2017 DL4J נתרמה לקרן Eclipse.

מבוא
----

DL4J מסתמכת על שפת התכנות הנפוצה Java, אם כי היא תואמת ל-Clojure וכוללת ממשק תכנות יישומים לScala (API). היא מופעלת על ידי ספריית עיבוד חישובים מתמטית קוד פתוח משלה, ND4J, ועובדת עם CPUs ו-GPUs.

נעשה שימוש ב-DL4J במספר יישומים מסחריים ואקדמאים. הקוד מנוהל ב-GitHub. פורום תמיכה מתקיים ב Gitter. 

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

הפצה
----

אימון עם DL4J מתרחש באשכול. רשתות עצביות מאומנות במקביל באמצעות הפחתה איטרטיבית, שפועלת על Hadoop- YARN ועל Spark. כאשר DL4J משתלב גם עם ליבות CUDA כדי לבצע פעולות GPU טהורות, ועובד עם GPUs מבוזרים.

מחשוב מדעי עבור JVM
-------------------

DL4J כולל מחלקת מערך n-ממדית באמצעות ND4J המאפשרת מחשוב מדעי ב-Java ו-Scala, בדומה לפונקציות ש-NumPy מספקת לפייתון. היא מבוססת למעשה על ספרייה לפעולות אלגברה ליניארית ומטריצות בסביבת ייצור.

ספריית וקטוריזציה של DataVec ללימוד מכונה
-----------------------------------------

DataVec וקטוריזציה של פורמטים שונים של קבצים וסוגי נתונים באמצעות מערכת פורמט קלט/פלט הדומה לשימוש של Hadoop ב-MapReduce; כלומר, היא הופכת סוגי נתונים שונים לעמודות של סקלרים המכונים "וקטורים". DataVec נועד להגדיר וקטור קובצי CSV, תמונות, קול, טקסט, וידאו וסדרות זמן.

טקסט ו-NLP
----------

DL4J כולל ערכת כלים למידול מרחב וקטור ו"מידול נושאים", המיושמת ב-Java ומשולבת עם GPUs מקבילים לביצועים. הוא נועד להתמודד עם סטים גדולים של טקסט.

Deeplearning4j כולל הטמעות של term frequency–inverse document frequency (או tf–idf), למידה עמוקה ואלגוריתם word2vec של Mikolov, doc2vec, ו-GloVe, מיושמים מחדש ומטוייבים ב-Java. היא מסתמכת על t-SNE להדמיות של ענן-מילים.

מקרי שימוש ואינטגרציות מהעולם האמיתי
------------------------------------

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

שרת מודל למידת מכונה
--------------------

DL4J משרתת מודלים של לימוד מכונה להסקת מסקנות בייצור באמצעות מהדורת המפתחים החינמית של SKIL, שכבת ה-Skymind Intelligence Layer. שרת מודלים משרת את המודלים הפרמטריים של לימוד מכונה שמקבל החלטות לגבי נתונים. הוא משמש לשלב ההסקה של למידת מכונה, לאחר data pipelines והכשרת מודלים (model training). שרת מודל הוא הכלי המאפשר לבצע מחקר במדעי-הנתונים בסביבת ייצור בעולם האמיתי.

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

שרת המודלים של SKIL מסוגל לייבא מודלים ממסגרות Python כגון Tensorflow, Keras, Theano ו-CNTK, ובכך מבטיח התגברות על מחסום גדול בפריסת מודלים של למידה עמוקה.

הערות שוליים
------------

1. ↑  Vance, Ashlee (2014-06-03). "Deep Learning for (Some of) the People". *Bloomberg Businessweek*. נבדק ב-2014-06-28.
2. ↑  Novet, Jordan (2015-11-14). "Want an open-source deep learning framework? Take your pick". *VentureBeat*. נבדק ב-2015-11-24.
3. ↑  TV, Functional (2015-02-12). "Adam Gibson, DeepLearning4j on Spark and Data Science on JVM with nd4j, SF Spark @Galvanize 20150212". *SF Spark Meetup*. נבדק ב-2015-03-01.
4. ↑  "Github Repository". באפריל 2020. `{{cite web}}`:  (עזרה)
5. 1 2  "deeplearning4j.org".
6. ↑  "Skymind Intelligence Layer Community Edition". אורכב מ-המקור ב-2017-11-07. נבדק ב-2017-11-02.
7. ↑  "Eclipse Deeplearning4j Project Page". 22 ביוני 2017. `{{cite web}}`:  (עזרה)
8. ↑  "Skymind's Deeplearning4j, the Eclipse Foundation, and scientific computing in the JVM". *Jaxenter*. 13 בנובמבר 2017. נבדק ב-2017-11-15. `{{cite web}}`:  (עזרה)
9. ↑  Harris, Derrick (2014-06-02). "A startup called Skymind launches, pushing open source deep learning". *GigaOM.com*. נבדק ב-2014-06-29.
10. ↑  Novet, Jordan (2014-06-02). "Skymind launches with open-source, plug-and-play deep learning features for your app". נבדק ב-2014-06-29.
11. ↑  Deeplearning4j source code
12. ↑  Deeplearning4j Gitter Support Channel
13. ↑  Deeplearning4j Visualization Tools
14. ↑  Deeplearning4j Computation Graph
15. ↑  "Iterative reduce". 15 במרץ 2020. `{{cite web}}`:  (עזרה)
16. ↑  DataVec ETL for Machine Learning
17. ↑  Anomaly Detection for Time Series Data with Deep Learning
18. ↑  word2vec
19. ↑  "Archived copy". אורכב מ-המקור ב-2016-03-10. נבדק ב-2016-02-22. `{{cite web}}`:  (עזרה)
20. ↑  "Archived copy". אורכב מ-המקור ב-2016-03-10. נבדק ב-2016-02-22. `{{cite web}}`:  (עזרה)
21. ↑
22. ↑  "Archived copy". אורכב מ-המקור ב-2017-09-21. נבדק ב-2017-09-20. `{{cite web}}`:  (עזרה)
23. ↑  "Archived copy". אורכב מ-המקור ב-2017-09-21. נבדק ב-2017-09-20. `{{cite web}}`:  (עזרה)