البحث عن المعادن و ... الشبكة العصبية

مبدأ تشغيل كاشف المعادن النبضية
أحد الخيارات الشائعة لبناء أجهزة البحث عن المعادن هو كاشف المعادن النبضي ( الحث ( PI )) - وهو جهاز بسيط وموثوق به (عمق الكشف الجيد ، ومقاومة زيادة تمعدن التربة ، والقدرة على العمل في المياه المالحة) ، والتي لها مجالات مختلفة من التطبيق - من الشؤون العسكرية (المستخدمون التقليديون لـ "النبضات") قبل البحث عن الذهب (هذه الهواية تحظى بشعبية خاصة في أستراليا).
لكن لديه أيضًا عيبًا كبيرًا - صعوبات كبيرة في التمييز ، أي عن طريق تحديد نوع الهدف ، على سبيل المثال ، لمعرفة ما إذا كان مصنوعًا من معدن غير حديدية أو أسود ، أو لتمييز لغم مضاد للأفراد في علبة بلاستيكية عن كومة من الحطام المعدني؟ ما هو سبب هذه المشكلة؟
النظر في مبدأ تشغيل جهاز الكشف عن المعادن النبضية.


مفتاح إلكتروني (عادةً MOSFET يمكنه تحمل الفولتية بعدة مئات فولت - على سبيل المثال ، يتم استخدام IRF740 الشهير في هذا العمل للمهندسين الماليزيين ، ويتم استخدام IRF730 الأقل قوة في مصفوفة تناظرية رقمية قابلة للبرمجة في GreenPAK في هذا المشروع ) البطارية). عندما يتم تطبيق نبضة التحكم (عادة بتردد عدة مئات من هيرتز) على بوابة الترانزستور ، يتم فتح MOSFET - الدائرة مغلقة ، يبدأ تيار متزايد (تدريجياً بسبب العملية العابرة) بالتدفق عبر الملف. نحن ننتظر عدة عشرات أو مئات من ميكروثانية من الزيادة الحالية إلى المستوى المطلوب و ... نحن كسر الدائرة - لقد انتهت نبض التحكم. الحالية i من خلال لفائف ، وبالتالي ، فإن التدفق المغناطيسي  Phi يتناقص الملف بشكل حاد (لتسريع عملية إغلاق MOSFET ، يتم تزويد نبض التحكم ليس مباشرة إلى البوابة ، ولكن من خلال محرك خاص) ، والذي ، بسبب ظاهرة الحث الكهرومغناطيسي ، يؤدي إلى حدوث EMF eL=wd Phi overdt وزيادة حادة في الجهد لفائف. ثم يبدأ مستوى الجهد في الملف في الانخفاض. ولكن إذا كان الكائن الموصّل ("الهدف") يقع بالقرب من الملف ، فإن التدفق المغناطيسي يتناقص جنبا إلى جنب مع التيار من خلال الملف ، مما يؤدي إلى تيارات الدوامة iin في هذا الهدف. هذه التيارات الدوامة تخلق تدفقها المغناطيسي.  Phiin الذي يحاول الحفاظ على المجال المغناطيسي التخميد للملف. يؤدي هذا التأثير إلى زيادة في مدة توهين الجهد عبر الملف ، وهو مؤشر على غياب أو وجود هدف (يتم اتخاذ القرار إما عن طريق دمج الإشارة وتقدير القيمة المتكاملة ( أ ) أو بناءً على قيم الإشارة في عدة نقاط ( ب )):


ملاحظة : يمكن أن تكون البقول أيضًا ثنائية القطب (على سبيل المثال ، في كاشف Vallon VMH2 المعدني - وهو جهاز كلاسيكي يستخدم لإزالة الألغام):

( المصدر )
في الوقت نفسه ، فإن القيمة المتوسطة (المكون الثابت) للحقل المغناطيسي المتولدة من كاشف المعدن تقترب من الصفر ، وهو ما ينبغي (كما تقول الفهارس بعناية ، "وفقًا للشركة المصنعة") منع التآكل عند البحث عن الألغام التي تستجيب لحقل مغناطيسي (على الرغم من أن الكتاب يقول "كتيب الكشف عن المعادن لإزالة الألغام للأغراض الإنسانية" ، مع إزالة الألغام للأغراض الإنسانية من غير المرجح وقوع مثل هذا الحادث).

جنبا إلى جنب مع الخيار الموصوف مع ملف واحد ، يجمع بين وظائف الإرسال والاستقبال ، وهناك أجهزة الكشف عن المعادن نبض مع لفائف منفصلة. يستخدم هذا المخطط ليس فقط في مجال البحث عن المعادن ، ولكن أيضًا في الكشف عن الخلل ( اختبار النبض الدوامي الحالي (PEC) ) - الرابط 1 ، الرابط 2 . في هذه الحالة ، يعمل أحد الملفات ( ملف الإرسال / محرك الأقراص ) على إثارة التيارات الدوامية في الهدف ، والآخر ( ملف الاستقبال / الالتقاط ) عبارة عن مستشعر مجال مغناطيسي. يتيح هذا النهج تحليل المجال المغناطيسي ليس فقط في مرحلة التناقص (بعد فصل مصدر القدرة عن ملف الإرسال) ، ولكن أيضًا في مرحلة الزيادة (بعد توصيل مصدر القدرة بملف الإرسال):

هنا وصف كبير لهذه التكنولوجيا:
طريقة تحلل الدوامة الحالية لتوصيف المقاومة للمعادن عالية النقاء

قضية التمييز
تنشأ مشكلة التعرف على نوع المعدن من حقيقة أن منحنى الجهد الناتج على الملف يتأثر بحجم وشكل الهدف ، وبعده عن الملف والكهرباء (الموصلية المحددة  سيجما ) والمغناطيسية (نفاذية مغناطيسية  mu ) خواص المادة المستهدفة.
فيما يلي بعض الاقتباسات حول هذا الموضوع:

(المصدر: أحمد تورك ، Koksal A. Hocaoglu ، Alexey A. Vertiy Subsurface Sensing)
التمييز في أنواع المعادن - بما أن نبض التعريفي يكتشف المعدن خلال الفترة الزمنية التي يستغرقها نبضات الشذوذ في الانحلال ، فإنه عادة ما يستخدم فقط للكشف عن المعدن ، بدلاً من تحديد نوع المعدن.
( المصدر )
... قد يؤدي الحجم والعمق والأهداف المحيطة واستجابة التربة إلى تغيير الإشارة بطريقة تجعل التمييز الصحيح غير ممكن.
( المصدر )
بذلت محاولات عديدة لإنشاء أجهزة الكشف عن المعادن النبضية القادرة على التمييز بين الحديد والفضة والنحاس ، ولكن كل هذه المحاولات حققت نجاحًا محدودًا للغاية. هذا يرجع إلى فيزياء إشارة النبض.
( المصدر )

تتمثل إحدى طرق حل هذه المشكلة في استخدام ملفات Double-D ( DD ) بدلاً من حلقة أحادية عادية ، على سبيل المثال ، في أجهزة الكشف عن المعادن Minelab GPX series الشائعة:

( المصدر )
في مثل هذا الملف ، يتم تقسيم ملفات الإرسال ( TX ) وملفات الاستقبال ( RX ):

( المصدر )
في هذه الحالة ، يتم تحليل الإشارة من الهدف ليس فقط عندما تنخفض ، ولكن أيضًا عندما يرتفع التيار في ملف الإرسال. لكن هذا التمييز ليس موثوقًا به للغاية:

( المصدر )
ولكن ماذا عن لفائف حلقة أحادية؟ تشير العديد من الأعمال ( رابط 1 رابط 2 رابط 3 ) إلى أن الإشارة في الملف من الهدف يمكن تمثيلها كمجموع مرجح من الإشارات الأسية المتحللة ، حيث تكون القيم القصوى وثوابت الوقت مفردة وتعتمد على المادة وحجمها وشكلها:
u(t)= sumNi=1Aiet/ taui
ذكرت تجارب التمييز مع جهاز الكشف عن المعادن القياسي في الجيش الأمريكي أن الأجسام الصغيرة كانت تتميز بشكل جيد من قبل أحد الأسس في التجارب التي أجراها واضعو المقال. Ae alphat ، وبالنسبة للكائنات الكبيرة ، تم طلب اثنين بالفعل - Ae alphat+Be betat .
تشير هذه المقالة إلى أنه يمكن تمثيل ثابت وقت المكون الأسي كنسبة من الحث والمقاومة المعادلة  taue=Le overR ويتم التعبير عنها لأسطوانة بنصف قطر القاعدة R و طويل القامة ح :
 tau= mur mu0 sigmaR2h over8
في هذه الورقة ، يتم إعطاء تعبير لثبات وقت الانحلال للتيارات الدوامة بالنسبة إلى كرة نصف قطرها R :
 tau= mur mu0 sigmaR2 over chi2 ،
اين  تشي هي نتيجة حل المعادلة tg chi=((mur1) chi over mur1+ chi2

ملاحظة : لا يمكن الحصول على مثل هذه التعبيرات التحليلية إلا للأجسام المتماثلة البسيطة. لذلك ، لدراسة التيارات الدوامة ، يمكن للمرء استخدام حزم البرامج للمحاكاة العددية للعمليات الكهرومغناطيسية. مثال على ذلك هو محاكاة الفرامل الكهرومغناطيسية الدوامة الحالية في حزمة COMSOL Multiphysics :

( المصدر )

كما يتضح ، تشتمل التعبيرات الخاصة بثبات الوقت معًا على النفاذية المغناطيسية والتوصيل الكهربائي وحجم الهدف. إن الفصل بين تأثير هذه العوامل بشكل منفصل والمطلوب للتمييز ليس بالأمر السهل.
في العمل الذي سبق ذكره ، يُقترح استخدام المصنف البايزي للتمييز بين المناجم والحطام المعدني (يتم اختبار فرضيتين: H0دولا - القمامة H1 - لي) ، لكن هذا يتطلب تقديرات إضافية لتماثل الإشارة ، إلخ. (من المثير للاهتمام أن تكوين العوامل المستخدمة يشمل طاقة الإشارة ، المقدرة كـ  sumNi=1u2i cdot Deltat )
للتوضيح ، قمت بالبناء على شاشة حاملتي التجريبية بالتصميم الأصلي للرسم البياني للجهد عبر الملف لتحقيق أهداف مختلفة:
لا هدف:

الهدف رقم 1 (المعادن الحديدية) على مسافات مختلفة من الملف:

الهدف رقم 2 (المعادن الحديدية):

الهدف رقم 3 (المعادن غير الحديدية) على مسافات مختلفة من الملف:

الهدف رقم 4 (المعادن غير الحديدية):

كما يتضح ، نظرًا لزيادة النفاذية المغناطيسية ، فإن أهداف المعادن الحديدية لها مستوى إشارة أولي أعلى من أهداف المعادن غير الحديدية ، لكن الإشارة تضعف بشكل أسرع بسبب انخفاض التوصيل الكهربائي.
الشبكة العصبية
كيف إذاً ، بناءً على هذه الميزات غير الصارمة للغاية ، لتصنيف الهدف ، لا سيما عند تغيير المسافة من الهدف إلى ملف الكشف عن المعادن؟ لدينا أداة رائعة - شبكة عصبية اصطناعية. تلعب الشبكات العصبية تيك تاك تو ، لعبة ورق ، لعبة البوكر ، وتوقع الطقس ونوعية النبيذ ، وحساب المقاومة لحركة الآلات الزراعية ... لذلك سوف نستخدم شبكة عصبية لحل مشكلة التمييز!
والدليل على أن هذا ممكن هو مقال "تحسين أداء أنظمة PI من خلال استخدام الشبكة العصبية" من قبل الباحثين الإيرانيين:

البيانات لشبكة العصبية
لملء مجموعة البيانات للتدريب ، والتحقق من صحة الشبكة العصبية واختبارها ، عندما أقوم بالضغط على زر على هيكل مقعد الاختبار الخاص بي ، يتم قياس 8 نقاط (عدد النقاط المحددة تجريبياً) على منحنى الجهد وقراءة ATmega328 ADC بشكل رمزي في المنفذ التسلسلي المتصل بموصل USB بالكمبيوتر.
في الحامل أمام مدخلات مضخم التشغيل ، يتم تشغيل محدد الصمام الثنائي ، ولكن ، كما أظهرت المحاكاة ، في المجال الذي يهمنا (مع وجود جهد كهربي منخفض على الملف) ، يكون تأثيره على قيمة الجهد ضئيلًا:

عند تشغيل وضع التسجيل في برنامج طرفي (على سبيل المثال ، Tera Term ) ، نحصل على بيانات "خام" (للراحة ، يمكن إضافة التعليقات إلى البروتوكول في Tera Term ). أداة صغيرة مكتوبة في Go تحول هذه البيانات إلى تنسيق مناسب للاستهلاك بواسطة شبكة عصبية:
i1 i2 ... i8 o1 o2
مثال على صف مع مجموعة من القيم:
588 352 312 280 252 240 206 192 0 1
بيانات الإدخال i1 i2 ... i8 هي عينات من ADC 10 بت في النطاق 0 ... 1023.
يتم عرض الإخراج o1 o2 في النموذج:
"المعادن الحديدية" ( 1 0) ، "المعادن غير الحديدية" (0 1 ).
قمت بجمع البيانات عندما كان هناك هدف مصنوع من المعدن الحديدية بالقرب من الملف (الهدف رقم 1 ، الهدف رقم 2) ، وهدف المعدن غير الحديدية (الهدف رقم 3 ، الهدف رقم 4) ، وكانت الأهداف موجودة على مسافات مختلفة عن ملف البحث. لمزيد من الاستخدام ، اخترنا البيانات المقابلة لمستوى إشارة كافية - مع ما لا يقل عن قيمتين غير صفرية. تم تجاهل مجموعات البيانات المطابقة للحمل الزائد لمدخلات ADC - والتي تحتوي على العديد من القيم القصوى الممكنة (1023):

لتوضيح ذلك ، أجريت تحليلًا للانحدار لمجموعة بيانات واحدة:

يتم وصف الإشارة المستقبلة جيدًا بمجموع الأسي:
437.9e0.29x+93.1e12.1x اين x - الرقم المرجعي.
لقد قمت بتخصيص معظم البيانات (110 مجموعات من القيم ، ملف train.dat ) للتدريب ( مجموعة بيانات التدريب ) (يتم تخصيصها بشكل عشوائي - يتم خلطها أثناء التحميل) ، والجزء الأصغر (40 مجموعة ، ملف test.dat ) - للتحقق من صحة الشبكة العصبية ( التحقق من الصحة مجموعة البيانات ) - إجراء عمليات تدقيق شاملة بأبسط أشكالها (على البيانات المؤجلة ( مجموعة بيانات holdout )).
هيكل الشبكة العصبية
ستتألف الشبكة العصبية الكلاسيكية للتوزيع المباشر التي تم إنشاؤها من ثلاث طبقات:
طبقة المدخلات - من 8 خلايا عصبية - تدرك نقاط منحنى الجهد ؛
طبقة خفية - من ثلاثة خلايا عصبية ؛
طبقة الإخراج - من اثنين من الخلايا العصبية.

(الشبكة "8-3-2")
استخدم الإيرانيون في العمل المذكور أعلاه عينتين (على التوالي ، عصبونات إدخال اثنين) وثلاثة عصبونات في طبقتين مخفيتين (يُصور مخطط الشبكة العصبية ويوصف في مقالتهم بشكل غير واضح).
حالة الخلايا العصبية z يعرف بأنه مرجح ( w - الوزن) المبلغ ن إشارات الإدخال x (ينظر إليها التشعبات) والتحيزات ب :
z= sumni=1wi cdotxi+wi+1 cdotb
(يمكن أن تكون إضافة التحيز بمثابة تأثير التحيز العصبي الإضافي)
يتم تحويل حالة الخلية العصبية إلى إشارة خرج (عند أطراف المحور العصبي) باستخدام وظيفة التنشيط و :
y=f(z)
تنتقل إشارات دخل الشبكة العصبية التي تصل إلى الخلايا العصبية لطبقة الإدخال إلى مخرجاتها دون تغيير ، وهو ما يتوافق مع وظيفة التنشيط الخطي:
f(z)=z
بالنسبة للخلايا العصبية للطبقة المخفية وطبقة الإخراج ، يتم استخدام وظيفة التنشيط غير الخطية ، "السيني" ، أو بالأحرى خيارها الشائع جدًا ، الوظيفة اللوجيستية ، مع فاصل من القيم (0 ؛ 1):
f(z)=1 over1+ez
يعد اختيار وظيفة التنشيط هذا أمرًا رائعًا لعينات ADC غير السالبة. لكن هذا يتطلب ، بالطبع ، تطبيع قيم الإدخال - قسّمها على 1024 ، مما يضمن قيمة أقل من 1.
استخدم الإيرانيون الظل القطعي كدالة تنشيط.
تحدد القيم عند مخرجات الخلايا العصبية لطبقة المخرجات نتائج الشبكة العصبية. سوف تشير الخلية العصبية ذات القيمة القصوى للناتج إلى القرار (الفئة الفائزة) الذي اتخذته الشبكة: الفئة الأولى عبارة عن "معادن حديدية" ، أما الفئة الثانية فهي "معادن غير حديدية".
استخدم الإيرانيون ثلاث خلايا عصبية ، تشير إلى الحديد والنحاس والرصاص.
غالبًا ما يتم استخدام Python لحل مشكلات تعلم الآلة - PyTorch و Keras و TensorFlow و CNTK والمكتبات والأطر الخاصة بالشبكات العصبية يتم إنشاؤها أيضًا من أجل JavaScript - Synaptic و Java - Deeplearning4j و C ++ - CNTK و MATLAB .
لكن فيما يتعلق بالاستخدام "الميداني" اللاحق في كاشف المعادن ، فإن هذه الأُطُر / المكتبات لا تُستخدم إلا قليلاً ، لذلك ، ومن أجل فهم مفصل للعملية ، قمت ببناء شبكتي العصبية دون استخدام مكتبات دعم ANN إضافية. بالطبع ، يمكن أيضًا كتابة شبكة عصبية باللغة الأساسية :-). لكن تحت تأثير تفضيلاتي الشخصية ، اخترت Go .
تدريب الشبكة العصبية والتحقق من صحتها
عند إنشاء شبكة ، تتم تهيئة الأوزان بقيم عشوائية في النطاق (-0.1 ؛ 0.1).
لقد استخدمت أسلوب نزول التدرج العشوائي ( SGD ) لتدريب الشبكة.
تقوم الشبكة العصبية بتكرار واحد من عملية التعلم ، باستخدام إحدى مجموعات البيانات المقدمة للتدريب بالتسلسل. في هذه الحالة ، يتم تنفيذ عملية التوزيع المباشر أولاً - تعالج الشبكة مجموعة الإشارات المقدمة من مثال التدريب المقدم إلى الإدخال. ثم ، استنادًا إلى الحل الذي تم الحصول عليه ، يتم تنفيذ خوارزمية backpropagation. لتحديث المقاييس في عملية التعلم ، قمت بتطبيق صيغة النسب التدرج "الفانيليا" ، والتي تستخدم مقياس تشعبي واحد - معامل معدل التعلم  alpha (المشار إليها في بعض الأحيان  eta ) ، أي لا تستخدم hyperparameter الشعبية الثانية - عامل لحظة  g a m m a ( عامل الزخم ).
ينتهي عصر التعلم بعد استخدام مجموعة كاملة من بيانات التدريب. بعد نهاية العصر ، يتم حساب متوسط ​​مربع الخطأ ( Mean Squared Error ( MSE )) في التدريب ، ويتم تغذية الشبكة العصبية بمجموعة من القيم للتحقق من الصحة (التدقيق التبادلي على البيانات المؤجلة) ، يتم تحديد متوسط ​​مربع خطأ التحقق من الصحة ، دقة التنبؤات ( الدقة ) وتكرار الدورة. تتوقف الدورة بعد بلوغ المستوى المطلوب للمربع المتوسط ​​لخطأ التحقق من الصحة.
بعد تجميع التعليمات البرمجية المصدر (file nn4md.go ) وإطلاق الملف القابل للتنفيذ ، يتم عرض عملية التعلم في رقم حقبة وحدة التحكم ( Epoch ) ، ومتوسط ​​مربع أخطاء التعلم والتحقق من الصحة ( MSE ) ودقة التنبؤات على مجموعة البيانات للتحقق من الصحة ( Acc .).
فيما يلي جزء من هذا البروتوكول:

يؤثر التغير في رقم البداية على القيم الأولية لأوزان الشبكة العصبية ، مما يؤدي إلى اختلافات بسيطة في عملية التعلم. باستخدام عامل سرعة التعلم وهو 0.1 ، يتم إكمال التعلم (عندما تكون MSE = 0.01 في مجموعة الاختبار) في حوالي 300 عصر.
دقة القرارات على مجموعة البيانات للتحقق من الصحة هي 100 ٪ (يعطي البرنامج عدد الخلايا العصبية الفائزة ، بدءا من 0 - "0" - أول خلية عصبية ، حديدية ؛ "1" - الخلية العصبية الثانية ، المعادن غير الحديدية):
0 -> 0
0 -> 0
0 -> 0
...
1 -> 1
1 -> 1
1 -> 1

يتم تخزين أوزان الشبكة العصبية الناتجة بعد التدريب لاستخدامها لاحقًا في ملف nn4md.json النصي بتنسيق JSON . بالمناسبة ، لترميز هياكل JSON على Go ، من المريح استخدام هذه الأداة عبر الإنترنت .
نظرًا لأنه لم يتم بعد تطوير معيار مقبول ومناسب عمومًا لتنسيق تخزين إعدادات الشبكات العصبية (على الرغم من وجود NNEF بالطبع - ولكن بالنسبة إلى هذه الشبكة البسيطة فإن IMHO كثير جدًا) ، فقد استخدمت التنسيق الخاص بي:

اختبار الشبكة العصبية
والآن نحن نختبر شبكة عصبية مدربة على التعرف على أهداف جديدة ( مجموعة بيانات الاختبار ).
الهدف رقم 5 (من المعادن الحديدية) :
نوع المنحنى:

مجموعة من القيم:
768 224 96 48 14 - - 0
الهدف رقم 6 (من المعادن غير الحديدية) :
نوع المنحنى:

مجموعة من القيم:
655 352 254 192 152 124 96 78
بعد الانتهاء من التدريب ، يتوقع البرنامج إدخال البيانات للاختبار.
تحقق من الهدف رقم 5:

النجاح - "0" - المعادن الحديدية.
تحقق الآن من الهدف رقم 6:

النجاح - "1" - المعادن غير الحديدية.
تكاد يكون هذا بمثابة " دليل على المفهوم ".
تتوفر ملفات مجموعة البيانات وملف أوزان الشبكة وكود المصدر في مستودع جيثب.

Source: https://habr.com/ru/post/ar435884/


All Articles