Kotlin में मशीन लर्निंग: आधुनिक लाइब्रेरीज़ और टूल्स
Kotlin एक स्टैटिकली टाइप की गई प्रोग्रामिंग भाषा है जो JVM पर काम करती है और Java के साथ पूरी तरह से संगत है। इसके संक्षिप्त सिंटैक्स, null-सुरक्षा और शक्तिशाली इकोसिस्टम के कारण, Kotlin का उपयोग Data Science और मशीन लर्निंग में तेज़ी से बढ़ रहा है। इस लेख में हम उन प्रमुख लाइब्रेरीज़ पर चर्चा करेंगे जो Python पर जाए बिना सीधे Kotlin में ML समस्याओं को हल करने में मदद करती हैं।
1. KotlinDL — JetBrains की डीप लर्निंग लाइब्रेरी
KotlinDL Kotlin (JetBrains) के निर्माताओं की आधिकारिक लाइब्रेरी है, जो न्यूरल नेटवर्क बनाने और प्रशिक्षित करने के लिए डिज़ाइन की गई है। यह हाई-लेवल API (Keras-like) और लो-लेवल टेंसर ऑपरेशंस दोनों को सपोर्ट करती है।
मुख्य विशेषताएं:
- मॉडल बिल्डिंग: Sequential, Functional API
- लेयर्स: Dense, Conv2D, MaxPooling, Dropout, LSTM और अन्य
- ऑप्टिमाइज़र: Adam, SGD, RMSprop
- लॉस फंक्शन: CrossEntropy, MSE, MAE
- प्री-ट्रेंड मॉडल लोड करना (ONNX, TensorFlow SavedModel)
- इमेज, टेक्स्ट और टेबुलर डेटा के साथ काम करना
उदाहरण: क्लासिफिकेशन के लिए सरल न्यूरल नेटवर्क
import org.jetbrains.kotlinx.dl.api.core.Sequential
import org.jetbrains.kotlinx.dl.api.core.layer.core.Dense
import org.jetbrains.kotlinx.dl.api.core.layer.reshaping.Flatten
import org.jetbrains.kotlinx.dl.api.core.optimizer.Adam
import org.jetbrains.kotlinx.dl.dataset.mnist
fun main() {
val model = Sequential.of(
Flatten(inputShape = longArrayOf(28, 28)),
Dense(128, activation = "relu"),
Dense(10, activation = "softmax")
)
model.use {
it.compile(optimizer = Adam(), loss = "categoricalCrossEntropy")
val (train, test) = mnist()
it.fit(train, epochs = 5, batchSize = 32)
val accuracy = it.evaluate(test)
println("सटीकता: $accuracy")
}
}
2. Smile — सांख्यिकी और ML के लिए सर्व-उद्देश्यीय लाइब्रेरी
Smile (Statistical Machine Intelligence & Learning Engine) एक शक्तिशाली Java/Kotlin लाइब्रेरी है जो मशीन लर्निंग के लगभग सभी क्लासिकल एल्गोरिदम को कवर करती है। इसमें 200 से अधिक एल्गोरिदम का कार्यान्वयन शामिल है।
प्रमुख मॉड्यूल:
- क्लासिफिकेशन: SVM, Random Forest, Decision Trees, Naive Bayes
- रिग्रेशन: Linear, Ridge, LASSO, Gaussian Process
- क्लस्टरिंग: K-Means, DBSCAN, Hierarchical, GMM
- डायमेंशनैलिटी रिडक्शन: PCA, t-SNE, MDS
- नेचुरल लैंग्वेज प्रोसेसिंग (NLP): टोकनाइज़ेशन, स्टेमिंग, N-ग्राम
- विज़ुअलाइज़ेशन: ग्राफ़, scatter plots, heatmaps
उदाहरण: Smile में लीनियर रिग्रेशन
import smile.regression.OLS
import smile.data.DataFrame
import smile.data.type.DataTypes
import smile.data.vector.DoubleVector
fun main() {
// डेटा के साथ DataFrame बनाएं
val x = doubleArrayOf(1.0, 2.0, 3.0, 4.0, 5.0)
val y = doubleArrayOf(2.1, 4.2, 6.0, 7.9, 10.1)
val df = DataFrame.of(DoubleVector.of("x", x), DoubleVector.of("y", y))
// OLS मॉडल प्रशिक्षित करें (साधारण न्यूनतम वर्ग विधि)
val model = OLS.fit(df, "y", "x")
println("गुणांक: ${model.coefficients()}")
println("x=6 के लिए पूर्वानुमान: ${model.predict(doubleArrayOf(6.0))}")
}
3. Koma — मैट्रिक्स गणना और वैज्ञानिक गणनाएं
Koma एक लाइब्रेरी है जो बहु-आयामी ऐरे और मैट्रिक्स के साथ काम करने के लिए है, जो Python के NumPy से प्रेरित है। यह संख्यात्मक गणना, सांख्यिकी और ML से पहले डेटा प्रीप्रोसेसिंग के लिए आदर्श है।
विशेषताएं:
- मैट्रिक्स बनाना: zeros, ones, eye, rand
- ऑपरेशंस: जोड़, गुणा, ट्रांसपोज़, इनवर्स मैट्रिक्स
- लीनियर अलजेब्रा: SVD, eigenvalues, QR decomposition
- सांख्यिकी: माध्य, विचरण, मानक विचलन
- प्लॉटिंग: सरल ग्राफ़ और चार्ट
उदाहरण: Koma के साथ बुनियादी मैट्रिक्स ऑपरेशंस
import koma.*
import koma.extensions.*
fun main() {
// 3x3 मैट्रिक्स बनाएं
val a = mat[1, 2, 3;
4, 5, 6;
7, 8, 10]
// ट्रांसपोज़ और इनवर्स
println("मूल मैट्रिक्स:\n$a")
println("ट्रांसपोज़:\n${a.T}")
println("इनवर्स:\n${a.inv()}")
// मैट्रिक्स गुणा
val b = ones(3, 3)
println("a * b:\n${a * b}")
}
4. Kotlin-Numpy — Python जैसी संख्यात्मक गणना
Kotlin-Numpy एक लाइब्रेरी है जो Kotlin में NumPy जैसा अनुभव प्रदान करती है। यह बड़े पैमाने पर संख्यात्मक गणना और डेटा मैनिपुलेशन के लिए उपयोगी है।
मुख्य विशेषताएं:
- N-डायमेंशनल ऐरे (ndarray)
- ब्रॉडकास्टिंग और वेक्टराइज़्ड ऑपरेशंस
- लीनियर अलजेब्रा फंक्शंस
- रैंडम नंबर जनरेशन
- फूरियर ट्रांसफॉर्म और सिग्नल प्रोसेसिंग
उदाहरण: Kotlin-Numpy के साथ ऐरे ऑपरेशंस
import org.jetbrains.kotlinx.multik.api.*
import org.jetbrains.kotlinx.multik.ndarray.data.*
fun main() {
// 2D ऐरे बनाएं
val a = mk.ndarray(mk[1, 2, 3], mk[4, 5, 6])
val b = mk.ndarray(mk[7, 8, 9], mk[10, 11, 12])
// एलिमेंट-वाइज़ ऑपरेशंस
println("a + b = ${a + b}")
println("a * 2 = ${a * 2}")
println("sin(a) = ${a.map { kotlin.math.sin(it) }}")
// मैट्रिक्स गुणा
println("डॉट प्रोडक्ट:\n${a.dot(b.T)}")
}
निष्कर्ष
Kotlin में मशीन लर्निंग अब एक व्यावहारिक विकल्प बन गया है। KotlinDL, Smile, Koma और Kotlin-Numpy जैसी लाइब्रेरीज़ के साथ, आप Python पर निर्भर हुए बिना पूर्ण ML पाइपलाइन बना सकते हैं। यदि आप Kotlin डेवलपर हैं और Data Science में कदम रखना चाहते हैं, तो ये लाइब्रेरीज़ आपके लिए एक बेहतरीन शुरुआत हैं।