Fashion-MNIST عبارة عن مجموعة بيانات لصور مقالات Zalando، تتكون من مجموعة تدريب مكونة من 60,000 مثال ومجموعة اختبار مكونة من 10,000 مثال. كل مثال عبارة عن صورة بدرجات الرمادي مقاس 28×28، مرتبطة بعلامة من 10 فئات. تعمل مجموعة البيانات كبديل مباشر لمجموعة بيانات MNIST الأصلية لمعايرة خوارزميات التعلم الآلي، مما يوفر بديلاً أكثر تحديًا بسبب تعقيدها وتنوعها في الصور المتعلقة بالموضة.
لاستخدام مجموعة بيانات Fashion-MNIST عمليًا في منصة الذكاء الاصطناعي التابعة لـ Google Cloud، يجب اتباع عدة خطوات منظمة تشمل إعداد البيانات وتدريب النموذج والنشر والتقييم. تتطلب كل مرحلة من هذه المراحل فهمًا شاملاً لكل من مجموعة البيانات وبيئة Google Cloud.
الخطوة 1: إعداد بيئة Google Cloud
قبل استخدام مجموعة البيانات، تأكد من أن لديك حساب Google Cloud. قم بإعداد مشروع جديد في Google Cloud Console. قم بتمكين الفوترة لمشروعك وتنشيط واجهة برمجة تطبيقات Cloud AI Platform. يعد هذا الإعداد مهمًا لأنه يسمح لك بالاستفادة من البنية الأساسية القوية لـ Google لمهام التعلم الآلي.
1. إنشاء مشروع Google Cloud:انتقل إلى وحدة تحكم Google Cloud وأنشئ مشروعًا جديدًا. قم بتعيين اسم فريد لمشروعك لتسهيل التعرف عليه.
2. تمكين واجهات برمجة التطبيقات:انتقل إلى لوحة معلومات API والخدمات وقم بتمكين واجهة برمجة تطبيقات Cloud AI Platform. تعد هذه الواجهة ضرورية لنشر نماذج التعلم الآلي على Google Cloud.
3. قم بتثبيت Cloud SDK:قم بتنزيل وتثبيت مجموعة أدوات تطوير البرامج Google Cloud على جهازك المحلي. توفر مجموعة أدوات تطوير البرامج هذه أداة سطر الأوامر `gcloud`، وهي ضرورية للتفاعل مع موارد Google Cloud الخاصة بك.
الخطوة 2: إعداد مجموعة بيانات Fashion-MNIST
يمكن الوصول إلى مجموعة بيانات Fashion-MNIST من مصادر مختلفة، بما في ذلك مستودع GitHub الرسمي. من الضروري معالجة مجموعة البيانات مسبقًا للتأكد من أنها بالتنسيق الصحيح لنماذج التدريب على Google Cloud.
1. تنزيل مجموعة البيانات:تتوفر مجموعة البيانات بتنسيقات متعددة، بما في ذلك تنسيقات CSV وNumPy. بالنسبة لمستخدمي TensorFlow، يمكن تحميلها مباشرة باستخدام وحدة `tensorflow.keras.datasets`.
python from tensorflow.keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
2. معالجة البيانات:قم بتطبيع قيم البكسل في الصور إلى النطاق [0، 1] عن طريق القسمة على 255. هذه الخطوة مهمة لضمان تقارب النموذج بكفاءة أثناء التدريب.
python train_images = train_images/255.0 test_images = test_images/255.0
3. إعادة تشكيل البيانات وزيادتها:اعتمادًا على بنية النموذج، قد تحتاج إلى إعادة تشكيل البيانات. بالإضافة إلى ذلك، ضع في اعتبارك تقنيات زيادة البيانات مثل التدوير والتكبير والانعكاس الأفقي لتعزيز قوة النموذج.
الخطوة 3: تطوير النموذج
قم بتطوير نموذج تعلُّم آلي مناسب لمجموعة بيانات Fashion-MNIST. تُعد الشبكات العصبية التلافيفية (CNNs) خيارًا شائعًا نظرًا لفعاليتها في مهام تصنيف الصور.
1. تحديد بنية النموذج:استخدم TensorFlow أو PyTorch لتحديد نموذج CNN. قد تتضمن البنية النموذجية طبقات ملتوية متعددة تليها طبقات تجميع قصوى وطبقة كثيفة متصلة بالكامل.
python model = tf.keras.Sequential([ tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Conv2D(64, (3, 3), activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(64, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ])
2. تجميع النموذج:اختر مُحسِّنًا ودالة خسارة ومقاييس مناسبة. بالنسبة للتصنيف متعدد الفئات، يُستخدم عادةً `sparse_categorical_crossentropy`.
python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
3. تدريب النموذج:قم بتركيب النموذج على بيانات التدريب. استخدم بيانات التحقق لمراقبة أداء النموذج وتجنب الإفراط في التركيب.
python model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
الخطوة 4: نشر النموذج على منصة Google Cloud AI
بمجرد تدريب النموذج، فإن الخطوة التالية هي نشره على Google Cloud AI Platform للحصول على تنبؤات قابلة للتطوير.
1. احفظ النموذج:قم بتصدير النموذج المدرب إلى تنسيق متوافق مع Google Cloud، مثل TensorFlow SavedModel.
python model.save('fashion_mnist_model')
2. تحميل النموذج إلى Google Cloud Storage:استخدم أداة سطر الأوامر `gsutil` لتحميل النموذج إلى دلو Google Cloud Storage.
bash gsutil cp -r fashion_mnist_model gs://your-bucket-name/
3. إنشاء نموذج على منصة الذكاء الاصطناعي:في وحدة تحكم Google Cloud، انتقل إلى AI Platform > Models (منصة الذكاء الاصطناعي > النماذج) وقم بإنشاء نموذج جديد. حدد اسم النموذج والمنطقة.
4. نشر نسخة النموذج:قم بإنشاء إصدار جديد من النموذج من خلال تحديد مسار التخزين السحابي للنموذج المحفوظ. قم بتكوين نوع الجهاز وخيارات التوسع بناءً على احتياجاتك للتنبؤ.
5. اختبار النشر:استخدم خدمة التنبؤ الخاصة بمنصة الذكاء الاصطناعي لاختبار النموذج المنشور. يمكنك إرسال طلبات HTTP مع بيانات الصورة إلى نقطة نهاية النموذج وتلقي التنبؤات.
python from google.cloud import aiplatform project = 'your-project-id' endpoint_id = 'your-endpoint-id' location = 'us-central1' aiplatform.init(project=project, location=location) endpoint = aiplatform.Endpoint(endpoint_id=endpoint_id) # Example prediction response = endpoint.predict(instances=[test_images[0].tolist()]) print(response)
الخطوة 5: تقييم النموذج والتكرار
بعد النشر، من المهم تقييم أداء النموذج وتكرار التصميم لتحسين الدقة والكفاءة.
1. مراقبة أداء النموذج:استخدم أدوات المراقبة من Google Cloud لتتبع مقاييس أداء النموذج مثل زمن الوصول والإنتاجية ودقة التنبؤ. تعد هذه البيانات ذات قيمة لا تقدر بثمن لتحديد الاختناقات والمجالات التي تحتاج إلى تحسين.
2. A اختبار/B:قم بإجراء اختبار A/B لمقارنة إصدارات النماذج المختلفة. يساعد هذا النهج في فهم تأثير التغييرات واختيار النموذج الأفضل أداءً.
3. التكامل والنشر المستمر (CI/CD):تنفيذ ممارسات CI/CD لأتمتة نشر إصدارات النماذج الجديدة. يضمن هذا الإعداد تسليم التحسينات بسرعة إلى الإنتاج.
4. ردود الفعل حلقة:إنشاء حلقة تغذية مرتدة مع المستخدمين النهائيين لجمع رؤى حول تنبؤات النموذج. استخدم هذه التغذية الراجعة لضبط النموذج وتعزيز أهميته للتطبيقات في العالم الحقيقي.
5. إعادة التدريب باستخدام بيانات جديدة:تحديث النموذج بانتظام ببيانات جديدة للحفاظ على دقته بمرور الوقت. هذه الممارسة مهمة بشكل خاص في صناعة الأزياء، حيث تتطور الاتجاهات والأنماط بسرعة.
توفر مجموعة بيانات Fashion-MNIST حالة استخدام عملية لنشر نماذج تصنيف الصور على منصة الذكاء الاصطناعي من Google Cloud. باتباع الخطوات الموضحة، يمكن للمرء الاستفادة بشكل فعال من البنية الأساسية لشركة Google لبناء ونشر وصيانة نماذج التعلم الآلي القابلة للتطوير. لا تعمل هذه العملية على تعزيز دقة وأداء النموذج فحسب، بل تضمن أيضًا إمكانية تطبيقه على السيناريوهات الواقعية في صناعة الأزياء.
تقوم Google بتحديث منصة الذكاء الاصطناعي الخاصة بها بشكل متكرر (اعتبارًا من عام 2024، تطورت إلى منصة Vertex للذكاء الاصطناعي). إذا واجهت أي مشكلات مع هذه التحديثات، فيمكنك أيضًا تجربة الكود التالي:
python import google.auth import google.auth.transport.requests import requests import json from tensorflow.keras.datasets import fashion_mnist import numpy as np # Load and preprocess Fashion MNIST data (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data() test_images = test_images/255.0 # Add channel dimension to all test images test_images = test_images.reshape(-1, 28, 28, 1) # Prepare your model and project details project_id = 'project_id' model_name = 'modelname' model_version = 'V1' region = 'europe-west3' # AI Platform prediction endpoint URL url = f'https://{region}-ml.googleapis.com/v1/projects/{project_id}/models/{model_name}/versions/{model_version}:predict' # Authenticate and get the auth token credentials, _ = google.auth.default() auth_req = google.auth.transport.requests.Request() credentials.refresh(auth_req) auth_token = credentials.token # Set up headers for the request headers = { 'Authorization': f'Bearer {auth_token}', 'Content-Type': 'application/json' } class_labels = [ "T-shirt/top", "Trouser", "Pullover", "Dress", "Coat", "Sandal", "Shirt", "Sneaker", "Bag", "Ankle boot" ] # Loop through the first 6 test images for i in range(6): # Prepare the instance for prediction instance = test_images[i].tolist() # Make the request body data = json.dumps({"instances": [instance]}) # Send the request response = requests.post(url, headers=headers, data=data) response_json = response.json() # Extract the predictions predicted_probs = response_json['predictions'][0] # Get the index of the highest probability predicted_index = np.argmax(predicted_probs) predicted_label = class_labels[predicted_index] predicted_probability = predicted_probs[predicted_index] # Print the result in a more readable format print(response_json) print(f"Image {i + 1}: Predicted class: {predicted_label} ({predicted_index}) with probability {predicted_probability:.10f}")
أسئلة وأجوبة أخرى حديثة بخصوص EITC/AI/GCML تعلم الآلة على Google Cloud:
- ذكرتَ أنواعًا عديدة من الخوارزميات، مثل الانحدار الخطي وأشجار القرار. هل هذه كلها شبكات عصبية؟
- ما هي مقاييس تقييم أداء النموذج؟
- ما هو الانحدار الخطي؟
- هل من الممكن الجمع بين نماذج التعلم الآلي المختلفة وبناء الذكاء الاصطناعي الرئيسي؟
- ما هي بعض الخوارزميات الأكثر شيوعًا المستخدمة في التعلم الآلي؟
- كيفية إنشاء نسخة من النموذج؟
- كيفية تطبيق الخطوات السبع للتعلم الآلي في سياق مثال؟
- كيف يمكن تطبيق التعلم الآلي على بيانات تصاريح البناء؟
- لماذا تم إيقاف جداول AutoML وما الذي يخلفها؟
- ما هي مهمة تفسير الرسومات التي يرسمها اللاعبون في سياق الذكاء الاصطناعي؟
عرض المزيد من الأسئلة والأجوبة في EITC/AI/GCML Google Cloud Machine Learning