آبل كريتمل مقابل كاجل

خلال WWDC الأخيرة ، قدمت Apple أحدث أدواتها تسمى CreateML. بصفتي متحمسًا لـ ML ، أعجبت حقًا بما رأيته في الجلسة المخصصة (703) ، لذلك اعتقدت أنه من المفيد التحقق من مدى قوته بالفعل.

1. CreateML باختصار (يمكنك تخطي إذا شاهدت عرض WWDC).

إنشاء ML هو إطار جديد مصمم لمساعدة المطورين بسهولة وبسرعة بناء نماذج تعلم الآلة باستخدام Swift و Xcode. في الوقت الحالي ، يمكنه العمل مع 3 أنواع من البيانات: الصور والنصوص والبيانات المجدولة. سير العمل بسيط للغاية ، تحتاج فقط إلى تقديم مجموعة من بيانات التدريب وكتابة بضعة أسطر من التعليمات البرمجية ويحدث السحر ، نموذج CoreML الصغير جاهز للاستخدام في تطبيقك. تعد شركة Apple بتقليل وقت التدريب بشكل كبير ، والذي في حالة وجود 10000 صورة يجب حسابها في دقائق (كما هو الحال دائمًا تتجنب Apple تقديم التفاصيل). التدريب سريع للغاية ، لأنه (في حالة مصنف الصور) تستخدم Apple برنامج Transfer Learning. لا نعرف ما هي الشبكة العصبية ، ولكن أثناء العرض التقديمي ، تم ذكر Inception-v3 كمثال على أحدث الحلول لتصنيف الصور.

2. العرض التوضيحي WWDC باختصار (يمكنك تخطي إذا شاهدت عرض WWDC).

خلال WWDC ، أظهر مقدمو العروض مدى سهولة بناء نماذج مختلفة ، أولاً كان مصنف الصور ، تم إنشاؤه باستخدام أسطر من الكود فقط:

كان المثال الثاني متشابهًا جدًا ، حيث حدد "مصنف النص" ما إذا كان النص موجبًا أم سالبًا ، كما في حالة الصورة ، كان سطرا الشفرة فقط يكفيان لتدريبه:

بالنسبة لي ، كان العرض التوضيحي الأكثر إثارة للاهتمام هو الأخير ، حيث قدم العمل مع بيانات جدولية. في هذه الحالة ، يستخدم CreateML تنسيق بيانات جديد ، يسمى MLDataTable ، للوهلة الأولى هو مجرد غلاف لمصفوفة البيانات العادية ، ولحسن الحظ يحتوي على محلل CSV و JSON مدمج.

في حالة البيانات الجدولية ، يقدم CreateML مسارين: واحد سهل وأكثر تطوراً قليلاً. في البداية ، ألقِ نظرة على أبسط طريقة للعثور على معادلة أسعار المنازل ، وهي تشبه تقريباً المثالين السابقين:

قد يتم حل مشاكل البيانات الجدولية (حسب الحالة) باستخدام إما MLRegressor لمشاكل الانحدار و MLClassifier للتصنيف. ولكن هذا ليس كل ما هو مثير للاهتمام حقًا ، أثناء العمل على البيانات المجدولة ، يمكنك تحديد طريقة التصنيف / الانحدار التي سيتم استخدامها يدويًا ، حيث أن الزوجين يدعمان CreateML الأكثر استخدامًا في الصناعة:

3. CreateML في مشاكل الحياة الحقيقية

تطبيقات العرض التوضيحي بسيطة دائمًا قدر الإمكان ، مما يجعلها سهلة الفهم وهذا جيد. ولكن في حالة "التعلم الآلي" ، حقيقة أن هناك شيئًا ما يعمل بمثال بسيط ، لا يعني حقًا أنه سيعمل مع مثال أكثر تطوراً. المستخدمون المستهدفون في CreateML هم المطورين ، وليسوا خبراء ML أو علماء البيانات ، لذلك قررت أن أتصرف مثل مبتدئ ML متوسط ​​، لا أقوم بتحليل البيانات بعمق ، فقط ضع مجموعات في CreateML واتركها تقوم بالسحر. قررت استخدام مسابقات Kaggle كمعيار ، ثم قارنت جودة النموذج بما حققته Kagglers ، كما أردت أيضًا التحقق من مدى سرعة CreateML. في الكثير من الحالات ، يتمثل مفتاح نموذج sucessfull في فهم البيانات والمعالجة المسبقة ، إذا كان المطور سوف يستورد ملف CSV وسيشغل MLRegressor متوقعًا الحصول على نتائج عالية الجودة لمشكلة معقدة ... قد يكون محبطًا بالفعل من التأثير. ولهذا السبب قررت اختيار أمثلة قريبة من مشاكل الحياة الحقيقية ولكنها ليست معقدة للغاية ، لأن هذا سيكون بلا معنى دون معالجة البيانات المسبقة.

تكوين Macbook Pro كمرجع:

لقد بدأت باختبار "مصنف الصور" ، ولأغراض الاختبار ، استخدمت "تصنيف شتلات النباتات" (https://www.kaggle.com/c/plant-seedlings-classification) ، والذي يهدف إلى تحديد أنواع الشتلات من صورة ما. مجموعة البيانات أكبر بكثير من تلك المعروضة في العرض التوضيحي ، حيث تحتوي على أكثر من 4300 صورة ، أقوم بتشغيل الكود باستخدام أسطر كود اثنين فقط ، والنتيجة واضحة أدناه:

لقد تأثرت حقًا بالنتيجة ، استغرق الأمر 5 دقائق على جهاز كمبيوتر محمول مطور نموذجي لتدريب نموذج جيد جدًا ، باستخدام 1.7 جيجابايت من بيانات التدريب. هل هناك طريقة أفضل لإنشاء نموذج Proof of Concept وتطبيق تطبيق iOS / macOS للتحقق من الفكرة؟ لا أعتقد ذلك. أبل ، لقد قمت بعمل رائع ، حقًا. ما يثير الانتباه أيضًا هو أن CreateML يقوم تلقائيًا بإنشاء مجموعة التحقق من الصحة من تلك المقدمة كتدريب ، لذلك لا يتعين على المطور تقسيم هذه البيانات يدويًا ، وهي خطوة صغيرة لتبسيط العملية.

حسنًا ، لن يقوم الجميع بإنشاء تطبيق "Not Hotdog" ، لذلك دعونا نلقي نظرة على حالة أخرى شائعة جدًا في التعلم الآلي ، "بيانات جدولية" ومشاكل الانحدار / التصنيف. في هذه الحالة ، بدأت بـ "Getting Started Titanic Survivals" (https://www.kaggle.com/c/titanic) ، الهدف من هذه المسابقة هو تحديد ما إذا كان هناك ركاب معينين سينجو من تصادم مع جبل الجليد بناءً على بيانات مثل العمر والجنس ، ونوع التذكرة ، والسطح ، إلخ.

قمت بتنزيل ملف CSV ، وقمت بإنشاء MLClassifier ، وضغط التشغيل و ...

حسنًا ، لا يعمل ، يحتاج CreateML إلى بيانات نظيفة تمامًا. هذه ليست مشكلة كبيرة ، يمكنني إزالة الصفوف التي تحتوي على أعمدة فارغة باستخدام أسطر ثنائية من Python ، ولكن هذا يقلل من كمية بيانات التدريب من 891 مثالًا إلى 183 فقط ، ولكنه يعمل على الأقل. أبلغني xCode أثناء التشغيل التالي: "الميزة \ التذكرة \" ليست من النوع (رقمي أو سلسلة أو صفيف أو قاموس). \ n "لذلك أسقطت هذا العمود وأخيراً حصلت على نموذج عمل:

مرة أخرى ، لقد تأثرت بالنتيجة ، كانت البيانات سهلة نسبيًا ، لكنها قريبة مما قد يواجهه الكثير من المطورين في تطبيقات نموذجية. CreateML يعمل ، إنه سريع وفعال.

المحاولة الثانية كانت مسابقة "التنبؤ بإيرادات المطاعم" (https://www.kaggle.com/c/restaurant-revenue-prediction/data) ، حيث يتمثل الهدف في تقدير إيرادات المطعم في سنة معينة ، باستخدام تاريخ الافتتاح ، المدينة ، نوع المطعم ، إلخ. كما هو الحال في تيتانيك ، قمت فقط بتنزيل البيانات وتشغيل الملعب:

في هذه الحالة ، قررت CreateML استخدام Boosted Tree Regressor ونتيجة لذلك فإن MSE أقل من تلك التي فازت بالمنافسة قبل 3 سنوات. بالطبع قد يكون السبب في ذلك هو حقيقة أن ألواح المتصدرين يتم إنشاؤها استنادًا إلى بيانات ليست عامة ، ولكن لا يزال ، قد تمكنت CreateML من بناء جيد جدًا ، وربما حتى يمكن مقارنتها بالنموذج الفائز في بضع ثوان. هذا هو ما يحتاجه معظم المطورين.

4. إيجابيات وسلبيات CreateML

الايجابيات:

  • حاليًا هي أسهل طريقة لإنشاء نماذج ML لنظام التشغيل iOS / macOS ، خاصة لتطبيقات Proof Of Concept ، أو أولئك الذين يعملون ببيانات بسيطة نسبيًا
  • يفتح CreateML عالم ML لآلاف من مطوري iOS / macOS
  • فعالة جدا وسهلة الاستخدام

سلبيات:

  • عدد قليل جدًا من الطرق لضبط وتصحيح النموذج النهائي
  • لا معرفة عامة عن النموذج المستخدم لتصنيف الصور
  • لا توجد أدوات للمعالجة المسبقة للبيانات (ولكن هذا واضح ، هدف Apple ليس علماء البيانات ، بل مطوري البرامج)

5. رأيي

يبدو أن CreateML أداة رائعة حقًا ، لا سيما للمطورين ، الذين لا يعملون مع Machine Learning على الإطلاق ، إنها سريعة وفعالة وسهلة الاستخدام للغاية. إذا كنت من مطوري iOS / macOS ، فجرّب ذلك.

6. سؤال مفتوح

هل مشكلة نماذج ML الكبيرة لتصنيف الصور مخفية تمامًا من خلال حقيقة أن جميع الأوزان يتم تخزينها داخل نظام التشغيل iOS / macOS ويقوم CreatML بإنشاء نموذج CoreML يحتوي على أوزان فقط للطبقة الأخيرة المعاد تدريبها من (Inception-V3)؟