
مرحبًا ، اسمي رومان لابين ، أنا طالب في السنة الثانية من كلية المدرسة العليا للفيزياء العامة والتطبيقية بجامعة الأمم المتحدة. تمكنت هذا العام من اجتياز الاختيار والمشاركة في عمل مدرسة Intel الصيفية في نيجني نوفغورود. كانت مهمتي هي تحديد لون السيارة باستخدام مكتبة Tensorflow ، التي عملت عليها مع مرشدتي ومهندس فريق ICV Alexei Sidnev.
وهذا ما حصلت عليه.
هناك عدة جوانب لهذه المهمة:
- يمكن طلاء السيارة بعدة ألوان ، كما في KDPV. وفي إحدى مجموعات البيانات ، على سبيل المثال ، كانت لدينا سيارة مموهة.
- اعتمادًا على الإضاءة والكاميرا التي تلتقط صورًا لما يحدث على الطريق ، ستبدو السيارات من نفس اللون مختلفة تمامًا. قد تحتوي السيارات "المضيئة" على جزء صغير جدًا يتوافق مع اللون "الحقيقي" للسيارة.
كشف لون السيارة
لون السيارة مادة غريبة نوعًا ما. لدى الشركة المصنعة فهم واضح عن لون السيارة التي تنتجها ، على سبيل المثال: الوهمية ، والجليد ، واللؤلؤ الأسود ، والبلوتو ، والجير ، والكريبتون ، وأنكور ، والعقيق ، والبلاتين ، والبلوز. ولدى شرطة المرور رأي في ألوان السيارات المحافظة والمحافظة إلى حد ما. كل شخص لديه تصور شخصي للون (يمكنك تذكر القصة الشعبية حول لون الفستان). وهكذا ، قررنا الترميز على النحو التالي.
على كل صورة ، تم وضع علامة على إحداثيات رؤوس المستطيلات المحاذية حول السيارات (فيما يلي
سأستخدم النسخة الإنجليزية -
مربع محيط
السيارة ) وداخلها هي المناطق التي تصف بشكل أفضل لون المركبات (
مربع اللون ). رقم الأخير يساوي لون السيارة (
n x
box box - n-color car).
من الآن فصاعدا ، فإن أرقام السيارات غير واضحة لإمكانية نشر الصور في المجال العام.
تعليم مجموعة بيانات السياراتفي المستقبل ، عملنا مع فضاءين لونيين - RGB و LAB - بالفئتين 8 و 810/81 على التوالي. لمقارنة نتائج الطرق المختلفة ، استخدمنا 8 فئات في RGB لتحديد اللون ، والتي يتم الحصول عليها عن طريق تقسيم مكعب BGR إلى 8 مكعبات صغيرة متساوية. يمكن أن يطلق عليهم بسهولة الأسماء الشائعة: أبيض ، أسود ، أحمر ، أخضر ، أزرق ، وردي ، أصفر ، سماوي. لتقييم خطأ أي طريقة ، استخدمنا بالفعل مساحة لون LAB ، حيث يتم تحديد
المسافة بين الألوان.
هناك طريقتان حدسيتان لتحديد اللون حسب
مربع اللون : متوسط أو متوسط. ولكن في
مربع الألوان توجد وحدات بكسل بألوان مختلفة ، لذلك أردت أن أعرف مدى دقة عمل كل من هذين النهجين.
بالنسبة إلى 8 ألوان RGB لكل
مربع ألوان لكل جهاز في مجموعة البيانات ، حددنا متوسط لون البكسل ووسيطه ، وتظهر النتائج في الأشكال أدناه. يتم تمييز الألوان "الحقيقية" في الخطوط - أي الألوان المحددة على التوالي كمتوسط أو كمتوسط ، في الأعمدة - الألوان الموجودة من حيث المبدأ. عند إضافة جهاز واحد إلى الجدول ، تم تسوية عدد وحدات البكسل لكل لون إلى عددها ، أي أن مجموع جميع القيم المضافة إلى الصف يساوي واحدًا.
بحث في دقة تحديد لون الآلة كمتوسط لون لبيكسل لون abox. متوسط الدقة: 75٪التحقيق في دقة تحديد لون الجهاز كلون متوسط للبكسل في مربع اللون. متوسط الدقة: 76٪كما ترى ، لا يوجد فرق معين بين الطرق ، مما يشير إلى ترميز جيد. في المستقبل ، استخدمنا الوسيط ، لأنه أظهر أفضل نتيجة.
سيتم تحديد لون السيارة بناءً على المنطقة الموجودة داخل
الصندوق المحيط بالسيارة .
هل تحتاج شبكات؟
السؤال لا مفر منه: هل الشبكات العصبية ضرورية حقًا لحل مهمة بسيطة بشكل حدسي؟ ربما يمكنك أن تأخذ اللون المتوسط أو الأوسط للبكسل في
صندوق محيط
السيارة بنفس الطريقة؟ توضح الأشكال أدناه نتيجة هذا النهج. كما سيظهر لاحقًا ، فهو أسوأ من طريقة استخدام الشبكات العصبية.
توزيع حصة السيارات ذات قيمة الخطأ L2 في مساحة LAB بين لون مربع اللون المحدد كمتوسط ولون المربع المحيط للسيارة لقيمة هذا الخطأتوزيع حصة السيارات ذات قيمة الخطأ L2 في مساحة LAB بين مربع لون اللون المحدد كمتوسط ولون مربع محيط السيارة من قيمة هذا الخطأوصف نهج المهمة
في عملنا ، استخدمنا بنية Resnet-10 لإبراز الميزات. من أجل حل مشاكل تسمية واحدة وعلامات
متعددة ، تم اختيار وظائف التنشيط لـ
softmax و
السيني على التوالي.
كانت إحدى المسائل المهمة هي اختيار المقياس الذي يمكننا من خلاله مقارنة نتائجنا. في حالة مهام تسمية واحدة ، يمكنك تحديد الفصل الذي يتوافق مع
الحد الأقصى للاستجابة . ومع ذلك ، من الواضح أن هذا الحل لن يعمل في حالة الأجهزة متعددة العلامات / متعددة الألوان ، لأن argmax ينتج لونًا واحدًا على الأرجح. يعتمد المقياس
L1 على عدد الفئات ، وبالتالي ، لا يمكن استخدامه أيضًا لمقارنة جميع النتائج. لذلك ، تقرر التفكير في قياس المنطقة تحت
منحنى ROC (ROC AUC - المنطقة تحت المنحنى) كما هو عالمي ومعترف به عالميًا.
عملنا في فضاءين لونيين. الأول هو
RGB القياسي ، حيث اخترنا 8 فئات: قمنا بتقسيم مكعب RGB إلى 8 مكعبات فرعية متطابقة: أبيض ، أسود ، أحمر ، أخضر ، أزرق ، وردي ، أصفر ، سماوي. مثل هذا التقسيم فظ للغاية ، ولكنه بسيط.
تقسيم مساحة ألوان RGB إلى 8 مناطقبالإضافة إلى ذلك ، أجرينا دراسات مع مساحة ألوان LAB ، والتي استخدمت القسم في 810 فئة. لماذا الكثير؟ تم تقديم LAB بعد أن
اكتشف العالم الأمريكي
David MacAdam أن هناك مناطق من الألوان غير مرئية للعين البشرية (
MacAdam ellipses ). تم بناء LAB بحيث تحتوي هذه القطع الناقصة على شكل دوائر (في قسم ثابت L - سطوع).
علامات الحذف في MacAdam ومساحة ألوان LAB ( المصدر )في المجموع ، يوجد 81 دائرة في قسم هذه الدوائر ، وقد اتخذنا الخطوة 10 فيما يتعلق بالمعلمة L (من 0 إلى 100) ، وحصلنا على 810 فئة. بالإضافة إلى ذلك ، أجرينا تجربة مع فئة L ثابتة ، وبالمقابل ، 81 فئة.
RGB و LAB
تم الحصول على النتائج التالية لمشكلة الفئة 8 ومساحة RGB:
وظيفة التنشيط | مهمة تعدد العلامات | ROC AUC |
---|
softmax | - | 0.97 |
السيني | ✓ | 0.88 |
جدول نتائج التعرف على الألوان للآلات في مشكلة من فئة 8يبدو أن نتيجة المهمة متعددة التصنيفات جيدة بالفعل. للتحقق من هذا الافتراض ، قمنا ببناء مصفوفة خطأ ، مع أخذ 0.55 كقيمة العتبة للاحتمال. على سبيل المثال إذا تم تجاوز هذه القيمة في احتمالية اللون المطابق ، فإننا نفترض أن الجهاز مطلي بهذا اللون. على الرغم من حقيقة أن العتبة يتم اختيارها منخفضة بما يكفي ، يمكن رؤيتها أخطاء نموذجية في تحديد لون السيارة واستخلاص النتائج.
جدول نتائج التعرف على الألوان للسيارات في مشكلة الدرجة الثامنةما عليك سوى إلقاء نظرة على الخطوط المقابلة للألوان الخضراء أو الوردية للتأكد من أن النموذج بعيد عن الكمال. سنعود إلى سؤال لماذا مع قيمة متري كبيرة مثل هذه النتيجة الغريبة الفاشلة ، سنعود على الفور ونشير على الفور: عند التفكير في 8 فئات فقط ، يقع عدد كبير من الألوان في فئتي "الأبيض" و "الأسود" ، وبالتالي هذه النتيجة .
لذلك ، سننتقل إلى مساحة لون LAB ونجري أبحاثًا هناك.
تفعيل التنشيط | مهمة تعدد العلامات | ROC AUC |
---|
softmax | - | 0.915 |
السيني | ✓ | 0.846 |
جدول نتائج التعرف على ألوان الجهاز في مشكلة فئة 810والنتيجة أقل ، وهو أمر منطقي ، حيث زاد عدد الفصول بمقدار مرتين من حيث الحجم. بأخذ النتيجة السينية كنقطة انطلاق ، حاولنا تحسين نموذجنا.
مختبر: تجارب بأوزان مختلفة
قبل ذلك ، تم إجراء جميع التجارب باستخدام أوزان الوحدة في دالة
الخسارة (
الخسارة ):
هنا GT هي الحقيقة الأرضية ، W هي الأوزان.
يمكنك إدخال
مسافة في فراغ لون LAB. لنفترض أن لدينا وحدة واحدة في GT. ثم يتوافق مع بعض المتوازيات المستطيلة في الفضاء اللوني LAB. تتم إزالة هذا التوازي (على وجه التحديد ، مركزه) على مسافة مختلفة من جميع المتوازيات الأخرى (مرة أخرى ، مراكزها). اعتمادًا على هذه المسافة ، يمكنك تجربة المقاييس التالية:
أ) صفر بدلاً من وحدة في GT ، وعند الابتعاد عنها - زيادة في الأوزان ؛
ب) على العكس من ذلك ، بدلاً من الوحدة في GT ، تكون واحدة ؛ عند إزالتها ، يكون انخفاضًا في الأوزان ؛
ج) الخيار أ) بالإضافة إلى مضاف غوسي صغير بسعة ½ بدلاً من وحدة في GT ؛
د) الخيار أ) بالإضافة إلى مضاف غوسي صغير بسعة 1 بدلاً من الوحدة في GT ؛
هـ) الخيار ب) مع مادة مضافة صغيرة على أقصى مسافة من الوحدة في GT.
النسخة الأخيرة من المقاييس التي أجرينا بها التجارب ، كما أسماها ، ثلاثية Gauss ، وهي ثلاثة توزيعات عادية مع مراكز في مكان الوحدات في GT ، وكذلك في أقصى مسافة منها.
تتركز ثلاثة توزيعات عادية على الوحدات في GT وعلى أكبر مسافة منهايجب شرحه بمزيد من التفصيل. يمكنك تحديد أكثر متوازيات المسافات البعيدة ، وبالتالي ، الفئات ومقارنتها في البعد عن الأصل. بالنسبة للفئة المقابلة للفئة البعيدة ، يتم تعيين اتساع التوزيع يساوي 0.8 ، وبالنسبة للفئة الثانية يكون أصغر بمقدار م ، حيث m هي نسبة المسافة من المصدر إلى البعيد البعيد إلى المسافة بين المصدر والقريب.
النتائج معروضة في الجدول. نظرًا لحقيقة أنه في مقاييس الخيار أ) لم يكن هناك أي أوزان - فقط للوحدات في GT ، جاءت النتيجة عليها أسوأ من نقطة البداية ، نظرًا لأن الشبكة لم تأخذ في الاعتبار تعريفات الألوان الناجحة ، والتعلم أسوأ. تزامنت المتغيرات من الأوزان ب) و هـ) عمليا ، لذلك تزامنت النتيجة عليها. وأظهرت أكبر زيادة في النسب المئوية مقارنة بالنتيجة الأولية بمتغير الأوزان و) - غاوس ثلاثي.
وظيفة التنشيط | عدد الفصول | نوع الأوزان | ROC AUC |
---|
السيني | 810 | أ) | 0.844 |
ب) هـ) | 0.848 |
ج) | 0.888 |
د) | 0.879 |
و) | 0.909 |
نتائج التعرف على الألوان من الآلات في مشكلة فئة 810 مع خيارات الوزن المختلفةLAB: تجربة التسميات الجديدة
لذا ، أجرينا تجارب بأوزان مختلفة في
الخسارة . ثم قررنا محاولة ترك الأوزان واحدة ، وتغيير التسميات ، التي يتم نقلها إلى وظيفة الخسارة وتستخدم لتحسين الشبكة. إذا كانت العلامات قبل ذلك تزامنت مع GT ، فقد قرروا الآن استخدام توزيعات غوسية مرة أخرى مع المراكز في مكان الوحدات في GT:
الدافع وراء هذا القرار هو كما يلي. والحقيقة هي أنه مع التسميات العادية ، تقع جميع السيارات في مجموعات البيانات في عدد ثابت من الفئات ، أقل من 810 ، لذلك تتعلم الشبكة تحديد لون سيارات هذه الفئات فقط. مع الملصقات الجديدة ، تقع القيم غير الصفرية في جميع الفئات ، ويمكننا أن نتوقع زيادة في دقة تحديد لون السيارة. لقد جربنا سيغما (الانحراف المعياري) للتوزيعات الغوسية أعلاه: 41.9 و 20.9. لماذا؟ يتم اختيار سيجما الأولى على النحو التالي: يتم أخذ الحد الأدنى للمسافة بين الفئات (28) ويتم تحديد سيجما من شرط انخفاض التوزيع مرتين في الفئة المجاورة لـ GT'noye. والثاني سيجما أصغر مرتين من الأول.
توزيع سيارات مجموعة بيانات التدريب حسب الفصول مع تسميات مختلفة في حالة فقدانفي الواقع ، كان من الممكن تحسين النتيجة باستخدام مثل هذه الخدعة ، كما هو موضح في الجدول. ونتيجة لذلك وصلت دقة التحديد إلى 0.955!
وظيفة التنشيط | عدد الفصول | نوع التصنيف | نوع الأوزان | ROC AUC |
---|
السيني | 810 | المعتاد | منها | 0.846 |
المعتاد | ثلاثة غاوس | 0.909 |
جديد ، σ 1 | ثلاثة غاوس | 0.955 |
جديد ، σ 2 | 0.946 |
نتائج التعرف على الألوان للآلات في فئة الفئة 810: مع الملصقات العادية وأوزان الوحدات ، مع الملصقات والأوزان العادية في شكل غاوس ثلاثي ، مع الملصقات الجديدة وأوزان الوحداتمختبر: 81
إذا تحدثنا عن تجارب غير ناجحة ، يجب أن نذكر محاولة تدريب شبكة بها 81 فئة ومعلمة ثابتة L. لاحظنا خلال التجارب السابقة أن السطوع تحدده الشبكة بدقة تامة ، وقررنا تدريب المعلمات a و b فقط (لذلك تسمى الإحداثيات الأخرى في LAB). لسوء الحظ ، على الرغم من حقيقة أن الشبكة كانت قادرة على التدريب بشكل مثالي في الطائرة ، مما يدل على قيمة أكبر من حيث القياس ، فإن فكرة تعيين المعلمة L عند إخراج الشبكة كمتوسط
لمربع السيارة المحيط تحطم وكان اللون الحقيقي وبالتالي محددًا مختلفًا تمامًا.
مقارنة مع حل مشكلة دون استخدام الشبكات العصبية
الآن دعونا نعود إلى البداية ونقارن ما حدث معنا مع التعرف على لون السيارة دون استخدام الشبكات العصبية.
النتائج موضحة في الأشكال أدناه. يمكن ملاحظة أن الذروة أصبحت أكثر 3 مرات ، وانخفض عدد السيارات مع وجود خطأ كبير بين اللون الحقيقي ولون معين بشكل ملحوظ.
توزيع حصة السيارات ذات قيمة الخطأ L2 في مساحة LAB بين المربع المحيط بالألوان المحدد كمتوسط ولون المربع المحيط بالسيارة لقيمة هذا الخطأتوزيع حصة السيارات ذات قيمة الخطأ L2 في مساحة LAB بين اللون عند إخراج الشبكة العصبية ولون الصندوق المحيط للسيارة بقيمة هذا الخطأأمثلة
فيما يلي أمثلة للتعرف على لون السيارة. الأول هو أن الآلة السوداء (حالة نموذجية) يتم التعرف عليها على أنها سوداء ، والمسافة في مساحة LAB بين اللون الحقيقي واللون المحدد (18.16) أقل من الحد الأدنى للمسافة بين الفئات (28). في الشكل الثاني ، تمكنت الشبكة ليس فقط من تحديد أن السيارة مضاءة (هناك احتمال كبير يتوافق مع إحدى فئات الألوان البيضاء) ، ولكن أيضًا لونها الحقيقي (الفضي). ومع ذلك ، لم تكتشف الشبكة الجهاز من الشكل التالي ، المضاء أيضًا ، باللون الأحمر. لم تتمكن الشبكة من تحديد لون السيارة الموضح في الشكل أدناه ، والذي ينبع من حقيقة أن احتمالات جميع الألوان صغيرة جدًا.
من نواح عديدة ، كانت المهمة بسبب الحاجة إلى التعرف على السيارات متعددة الألوان. يصور الرقم الأخير سيارة باللونين الأسود والأصفر نغمتين. كان من المرجح أن تتعرف الشبكة على اللون الأسود ، والذي ربما يرجع إلى هيمنة الآلات من هذا والألوان المماثلة في مجموعة بيانات التدريب ، واللون الأصفر ، القريب من الحقيقي ، دخل أعلى 3.
منحنى ROC: التصور والمشاكل
لذا ، في الناتج حصلنا على نتيجة قياس عالية إلى حد ما. يوضح الشكل التالي منحنيات ROC لحل مشكلة مع 8 فئات ، ومشكلة مع 810 فئات ، بالإضافة إلى الحلول دون استخدام الشبكات العصبية. يمكن ملاحظة أن النتيجة مختلفة قليلاً عن تلك التي تمت كتابتها سابقًا. تم الحصول على النتائج السابقة باستخدام TensorFlow ، وتم الحصول على الرسوم البيانية أدناه باستخدام حزمة تعلم scikit.
منحنى ROC للعديد من الخيارات لحل المشكلة. على اليمين توجد الزاوية اليسرى العليا من المخطط الأيسريمكنك أخذ أي أرقام ثابتة كقيم عتبة (على سبيل المثال ، Tensorflow ، عندما تقوم بتعيين المعلمة المقابلة على 50 ، تأخذ نفس عدد العتبات من 0 إلى 1 على فترات متساوية) ، يمكنك استخدام القيم عند إخراج الشبكة ، أو يمكنك تحديدها من الأسفل حتى لا تضع في اعتبارك قيم ترتيب 10
-4 ، على سبيل المثال. وتظهر نتيجة هذا النهج الأخير في الشكل التالي.
منحنى ROC للعديد من الخيارات لحل المشكلة مع عتبة 10 -4يمكن ملاحظة أن جميع المنحنيات التي تتوافق مع حل المشكلة باستخدام الشبكات العصبية أفضل بشكل مميز (أعلى) من حل المشكلة بدونها ، ولكن لا يمكنك اختيار أفضل منحنى بالتأكيد بين أولها. اعتمادًا على العتبة التي يختارها المستخدم ، تتوافق المنحنيات المختلفة مع الحلول المثلى المختلفة للمشكلة. لذلك ، من ناحية ، وجدنا نهجًا يسمح لنا بتحديد لون الماكينة بدقة ويظهر مقياسًا عاليًا ، من ناحية أخرى ، أظهرنا أنه لم يتم الوصول إلى الحد بعد وأن مقياس المنطقة تحت منحنى ROC له عيوبه.
جاهز للإجابة على الأسئلة والاستماع إلى التعليقات في التعليقات.