जावास्क्रिप्ट मशीन लर्निंग के लिए: व्यवहार में संभावनाएं और सीमाएं

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

जावास्क्रिप्ट मशीन लर्निंग के लिए: व्यवहार में संभावनाएं और सीमाएं

\n\n

कई डेवलपर्स यह मानने के आदी हैं कि मशीन लर्निंग Python का विशेषाधिकार है। वास्तव में, TensorFlow, PyTorch और Scikit-learn लाइब्रेरीज़ के साथ Python का इकोसिस्टम इस क्षेत्र में हावी है। हालांकि, JavaScript (विशेष रूप से Node.js वातावरण में) भी ML के लिए दिलचस्प उपकरण प्रदान करता है। इस लेख में, हम देखेंगे कि JavaScript पर क्या किया जा सकता है, इसकी वास्तविक सीमाएं कहां हैं, और उपलब्ध लाइब्रेरीज़ का व्यावहारिक रूप से उपयोग कैसे करें।

\n\n

ML के लिए JavaScript क्यों? मुख्य परिदृश्य

\n\n

JavaScript का मुख्य लाभ इसकी बहुमुखी प्रतिभा है। यदि आपकी टीम पहले से JS में लिखती है और आपके पास Python सीखने के संसाधन नहीं हैं, तो आप सीधे Node.js में सरल ML मॉडल लागू कर सकते हैं। उपयोग के मुख्य परिदृश्य:

\n\n
    \n
  • ब्राउज़र-आधारित मशीन लर्निंग — क्लाइंट पर सीधे मॉडल चलाना (उदाहरण के लिए, ब्राउज़र में TensorFlow.js)। यह संवेदनशील डेटा (चिकित्सा, वित्त) वाले कार्यों के लिए आदर्श है।
  • \n
  • सर्वर-साइड समाधान — Node.js सरल पूर्वानुमान, टेक्स्ट वर्गीकरण या भावना विश्लेषण को अच्छी तरह से संभालता है।
  • \n
  • प्रोटोटाइपिंग और सीखना — त्वरित प्रयोगों और अवधारणा प्रदर्शन के लिए।
  • \n
  • वेब इकोसिस्टम के साथ एकीकरण — यदि आपका प्रोजेक्ट पहले से Node.js पर है, तो एक अलग Python माइक्रोसर्विस शुरू करने की आवश्यकता नहीं है।
  • \n
\n\n

व्यावहारिक उदाहरण: Brain.js के साथ संख्याओं का वर्गीकरण

\n\n

Brain.js JavaScript पर न्यूरल नेटवर्क के लिए सबसे सरल लाइब्रेरीज़ में से एक है। इसे GPU की आवश्यकता नहीं है और यह CPU पर प्रशिक्षण के लिए उपयुक्त है। आइए हस्तलिखित अंकों की पहचान का एक उदाहरण देखें (MNIST का सरलीकृत संस्करण)।

\n\n

पहले लाइब्रेरी स्थापित करें:

\n
npm install brain.js
\n\n

अब 4x4 पिक्सेल की बाइनरी छवियों के आधार पर अंक 0 और 1 को पहचानने के लिए न्यूरल नेटवर्क को प्रशिक्षित करने का कोड लिखें:

\n\n
const brain = require('brain.js');\n\n// एक छिपी हुई परत के साथ न्यूरल नेटवर्क बनाएं\nconst net = new brain.NeuralNetwork({ hiddenLayers: [3] });\n\n// प्रशिक्षण डेटा: 16 इनपुट (4x4), 1 आउटपुट (0 या 1)\nconst trainingData = [\n    { input: [0,0,0,0, 0,1,1,0, 0,1,1,0, 0,0,0,0], output: [0] }, // अंक 0\n    { input: [0,0,0,0, 0,0,1,0, 0,0,1,0, 0,0,0,0], output: [1] }, // अंक 1\n    { input: [0,0,0,0, 1,1,1,0, 0,1,1,0, 0,0,0,0], output: [0] }, // एक और 0\n    { input: [0,0,0,0, 0,0,1,0, 0,1,1,0, 0,0,0,0], output: [1] }  // एक और 1\n];\n\n// नेटवर्क को प्रशिक्षित करें\nnet.train(trainingData, {\n    iterations: 2000,\n    errorThresh: 0.005,\n    log: true,\n    logPeriod: 500\n});\n\n// परीक्षण करें\nconst testData = [0,0,0,0, 0,1,1,0, 0,1,1,0, 0,0,0,0]; // 0 जैसा दिखता है\nconst result = net.run(testData);\nconsole.log(`परिणाम: ${result[0] > 0.5 ? '1' : '0'} (विश्वास: ${result[0].toFixed(3)})`);
\n\n

यह उदाहरण दिखाता है कि एक सरल नेटवर्क को कितनी जल्दी प्रशिक्षित किया जा सकता है। हालांकि, वास्तविक MNIST पहचान के लिए अधिक गहरी आर्किटेक्चर और हजारों उदाहरणों की आवश्यकता होगी।

\n\n

TensorFlow.js: Node.js के लिए एक शक्तिशाली उपकरण

\n\n

TensorFlow.js JavaScript पर लोकप्रिय फ्रेमवर्क का एक पोर्ट है। यह ब्राउज़र और Node.js दोनों को सपोर्ट करता है। यहां रियल एस्टेट की कीमतों की भविष्यवाणी के लिए लीनियर रिग्रेशन का एक उदाहरण है (सरलीकृत):

\n\n
const tf = require('@tensorflow/tfjs-node');\n\n// डेटा: क्षेत्रफल (वर्ग मीटर) -> मूल्य ($)\nconst xs = tf.tensor2d([50, 60, 70, 80, 90], [5, 1]);\nconst ys = tf.tensor2d([150000, 180000, 210000, 240000, 270000], [5, 1]);\n\n// मॉडल बनाएं\nconst model = tf.sequential();\nmodel.add(tf.layers.dense({ units: 1, inputShape: [1] }));\n\n// कंपाइल करें\nmodel.compile({ optimizer: 'sgd', loss: 'meanSquaredError' });\n\n// प्रशिक्षित करें\nasync function train() {\n    await model.fit(xs, ys, { epochs: 100 });\n    \n    // 75 वर्ग मीटर के घर के लिए भविष्यवाणी\n    const prediction = model.predict(tf.tensor2d([75], [1, 1]));\n    prediction.print(); // ~225000\n}\n\ntrain();
\n\n

TensorFlow.js अधिकांश तक पहुंच प्रदान करता है

ब्लॉग

पुस्तक अनुशंसाएँ