التعلم الآلي باستخدام TypeScript: أفضل مكتبات ML في 2024

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

التعلم الآلي باستخدام TypeScript: مراجعة المكتبات والأدوات



TypeScript ليس مجرد كتابة صارمة لـ JavaScript. بفضل نظامه البيئي وتوافقه مع JS، أصبح منصة قوية للتعلم الآلي (ML) مباشرة في المتصفح أو على الخادم (Node.js). في هذه المقالة، سنستعرض أربع مكتبات رئيسية تتيح تطوير وتدريب وتشغيل نماذج ML باستخدام TypeScript.



1. TensorFlow.js — الرائد في ML باستخدام TypeScript

TensorFlow.js هو نسخة من إطار TensorFlow الشهير بلغة JavaScript/TypeScript. يدعم كل من المتصفح و Node.js. الميزة الرئيسية هي القدرة على إجراء التدريب والاستدلال (التنبؤ) مباشرة على جانب العميل دون إرسال البيانات إلى الخادم.



التثبيت

npm install @tensorflow/tfjsnpm install @tensorflow/tfjs-node  // لـ Node.js مع تسريع CPUnpm install @tensorflow/tfjs-node-gpu // لـ GPU


مثال: الانحدار الخطي باستخدام TypeScript

import * as tf from '@tensorflow/tfjs';

// إنشاء نموذج بسيط: y = 2x - 1const model = tf.sequential();model.add(tf.layers.dense({ units: 1, inputShape: [1] }));

// التجميعmodel.compile({ optimizer: 'sgd', loss: 'meanSquaredError' });

// بيانات التدريبconst xs = tf.tensor2d([0, 1, 2, 3, 4], [5, 1]);const ys = tf.tensor2d([-1, 1, 3, 5, 7], [5, 1]);

// التدريبmodel.fit(xs, ys, { epochs: 250 }).then(() => { // التنبؤ لـ x=5 const output = model.predict(tf.tensor2d([5], [1, 1])) as tf.Tensor; output.print(); // ≈ 9 (2*5 - 1)});


يدعم TensorFlow.js أيضًا تحميل النماذج المدربة مسبقًا (مثل MobileNet لتصنيف الصور) والعمل مع الرسوم البيانية الحسابية.



2. ML5.js — ML للمشاريع الإبداعية

ML5.js مبني فوق TensorFlow.js ويركز على سهولة الاستخدام. مثالي للفنانين والمصممين والمبتدئين في ML. توفر المكتبة واجهات برمجة تطبيقات عالية المستوى لمهام التصنيف وتوليد النصوص والتعرف على الإيماءات وغيرها.



التثبيت

npm install ml5


مثال: تصنيف الصور (MobileNet)

import * as ml5 from 'ml5';

// تحميل نموذج MobileNet المدرب مسبقًاconst classifier = ml5.imageClassifier('MobileNet');

// تصنيف صورة من URLconst img = new Image();img.crossOrigin = 'anonymous';img.src = 'https://example.com/cat.jpg';

img.onload = () => { classifier.classify(img, (err: Error | null, results: any[]) => { if (err) { console.error(err); return; } console.log('النتائج:', results); // [{ label: 'tabby cat', confidence: 0.98 }, ...] });};


يقوم ML5.js تلقائيًا بتحميل أوزان النموذج ويوفر استدعاءً بسيطًا. مناسب تمامًا للنماذج الأولية السريعة والتركيبات التفاعلية.



3. Brain.js — شبكات عصبية بدون تعقيدات

Brain.js هي مكتبة لإنشاء الشبكات العصبية بأقل قدر من الكود. تدعم الشبكات الأمامية و LSTM و RNN. تعمل في كل من المتصفح و Node.js.



التثبيت

npm install brain.js


مثال: دالة XOR (الاستبعاد المنطقي)

import * as brain from 'brain.js';

const net = new brain.NeuralNetwork();

net.train([ { input: [0, 0], output: [0] }, { input: [0, 1], output: [1] }, { input: [1, 0], output: [1] }, { input: [1, 1], output: [0] }], { iterations: 10000, errorThresh: 0.005});

const output = net.run([1, 0]); // ≈ 0.98 (قريب من 1)console.log(`النتيجة: ${output}`);


يقوم Brain.js تلقائيًا بتطبيع البيانات ويدعم حفظ/تحميل النموذج المدرب بصيغة JSON.



4. Synaptic — مرونة معمارية

Synaptic هي مكتبة لإنشاء بنى شبكات عصبية معقدة: perceptrons، شبكات متعددة الطبقات

توصيات