You are on page 1of 18

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/348213671

Digital image processing: artificial neural networks

Presentation · January 2021

CITATIONS READS
0 238

1 author:

Ziad Alqadi
Al-Balqa' Applied University
283 PUBLICATIONS 2,821 CITATIONS

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

eighted check sum usage for increasing data transfer errors detection and correction efficiency View project

Scientific Hypothesis as a source of innovation and discovery View project

All content following this page was uploaded by Ziad Alqadi on 05 January 2021.

The user has requested enhancement of the downloaded file.


Digital image processing

Introduction to ANN
‫‪Digital image processing‬‬

‫الشبكات العصبية هي نموذج لمعالجة المعلومات مستوحى من الطريقة التي يعالج بها الجهازالعصبي البيولوجي مثل الدماغ المعلومات‪ .‬وهي تتألف‬
‫من عدد كبيرمن عناصرالمعالجة شديدةالترابط (الخالياالعصبية) التي تعمل في انسجام لحل مشكلة معينة‪.‬‬
‫يمكن استخدام‪ANN‬في مجموعة متنوعة من المهام المعقدة‪:‬‬
‫‪ .1‬الشبكات العصبية االصطناعية (‪ )ANN‬لالنحداروالتصنيف‬
‫‪ .2‬الشبكات العصبية االلتفافية (‪ )CNN‬لرؤية الكمبيوتر‬
‫‪ .3‬الشبكاتالعصبيةالمتكررة (‪ )RNN‬لتحليل السالسل الزمنية‬
‫‪ .4‬خرائط ذاتية التنظيم الستخراج الميزة‬
‫‪ .5‬آالت التعلم العميق ألنظمة التوصية‬
‫‪ .6‬التشفيرالتلقائي ألنظمة التوصية‬
‫الخاليا العصبية‪Neurons‬‬

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

‫الشكل ‪ :1‬الخاليا العصبية البيولوجية‬


‫‪Introduction to ANN‬‬
‫‪Digital image processing‬‬

‫تعمل كل خلية عصبية في الشبكة و كما هو مبين في الشكل ‪ 2‬على تنفيذ الوظائف التالية‪:‬‬
‫‪ -1‬ايجاد مجموع نواتج ضرب المدخالت باالوزان‪.‬‬
‫‪ -2‬تطبيق دالة التنشيط المخصصة للخلية لحساب قيم المخرجات‪.‬‬
‫و تجدر االشارة هنا الى كافة الخاليا العصبية في الطبقة الواحدة يجب ان تستخدم نفس دالة التنشيط‪.‬‬
‫تستخدم مدخالت االساس بقيم مساوية لل واحد وذلك لتحسن اداء الشبكة و لتقليل دورات التدريب اللزمة للشبكة للوصول الى النتائج المطلوبة و‬
‫بتحقيق القيمة المحددة لنسبة الخطا بين القيم المحسوبة و القيم المطلوب تحقيقيها( و يفترض ان تكون نسبة الخطا صفرية)‪.‬‬

‫الشكل ‪ :2‬عمل الخلية‬


‫تستخدم عدة انواع من دوال التنشيط و يعتمد اختيلر النوع المحدد منها على النتائج المتوقة من كل خلية و من اهم هذه الدوال‪:‬‬
‫الدالة الخطية ‪Linear : purelin‬‬ ‫‪-‬‬
‫تكون هنا قيمة المخرج مساوية لقيمة المجموع المحسوب للخلية‪.‬‬
‫دالة ‪logsig‬‬ ‫‪-‬‬
‫تكون قيمة المخرج هنا محصورة بين الصفر و الواحد و يحسب المخرج كما هو مبين في الشكل ‪3‬‬
‫دالة ‪tansig‬‬ ‫‪-‬‬
‫تكون قيمة المخرج هنا محصورة بين سالب واحد و الواحد و يحسب المخرج كما هو مبين في الشكل ‪3‬‬

‫‪Introduction to ANN‬‬
‫‪Digital image processing‬‬

‫الشكل ‪:3‬دوال التنشيط‬


‫دورة التدريب ‪Training cycle :epochs‬‬
‫دورة التدريب و كما هو مبين في الشكل ‪ 4‬تنفذ مرحلتين من التنفيذ هما‪:‬‬

‫الشكل ‪ :4‬دورة التدريب‬


‫‪ -1‬التنفيذ االمامي بدءا من طبقة المدخالت لحساب المخرجات باستخدام قيم المدخالت و دوال التنشيط‪.‬‬
‫‪ -2‬التنفيذ الخلفي بدءا من طبقة المخرجات لحساب الخطا و اجراء التعديل الالزم على االوزان‬
‫و تجدر االشارة هنا الى انه اذا كانت نسبة الخطا صفرية فان عملية التدريب سوف تقطع و في بعض االحيان يتطلب االمر زيادة عدد دورات‬
‫التدريب لتحقيق نسبة خطا افضل‪.‬‬
‫و يبين الشكل ‪ 5‬و ‪ 6‬واحدة من دورات التدريب لشبكة عصبية‪:‬‬

‫‪Introduction to ANN‬‬
‫‪Digital image processing‬‬

‫الشكل ‪ :5‬دورة التدريب‬

‫الشكل ‪ :6‬دورة التدريب(تكملة)‬


‫و بعد االنتهاء من دورة التدريب يمكن بدء دورة جديدة باالوزان المعدلة‪.‬‬
‫يحب ان تكون سرعة التدريب متدنية و اقل من ‪ 1‬لتحقيق نتائج حسابات جيدة للشبكة العصبية‪.‬‬
‫تتنوع الشبكات العصبية المستخدمة حاليا و تعتمد عملية اختيار النوع المعين على التطبيق المراد حله و من هذه االنواع نورد ما يلي‪:‬‬
‫‪ -1‬الشبكات العصبية ذات التغذية االمامية‪:‬‬
‫و هي من اكثر االنواع شيوعا و تتكون هذه الشبكة و كما هو مبين في الشكل ‪ 7‬من مجموعة من الخاليا المتصلة و الموزعة في طبقات و‬
‫يجب ان ترتبط كل خلية فيها بجميع المدخالت في الطبقة الواقعة في مستوى ادنى‬

‫‪Introduction to ANN‬‬
‫‪Digital image processing‬‬

‫الشكل ‪ :7‬شبكة تغذية امامية‬


‫‪ -2‬الشبكات التتالية ‪Cascade ANN‬‬
‫و في هذا النوع من الشبكات تربط اوزان طبقة الدخل بالطبقة الالحقة و كما هو مبين في الشكل ‪8‬‬

‫الشكل ‪ :8‬الشبكة التتالية‬


‫‪ -3‬شبكة المان‬
‫في هذا النوع من الشبكات و كما هو مبين في الشكل ‪ 9‬بضاف الى طبقة المدخالت طبقة اعاقة مدخالتها تكون من الطبقة التالية‬

‫‪Introduction to ANN‬‬
‫‪Digital image processing‬‬

‫الشكل ‪ :9‬شبكة المان‬


‫و بغض النظر عن نوع الشبكة المستخدم فان عملية استخدام الشبكة العصبية لتحقيق حل لمشكلة ما يجب ان تمر في المراحل التالية‪:‬‬
‫تحديد المدخالت‬
‫تحديد قيم المخرجات المطلوبة – الهدف‬
‫استحداث الشبكة و هنا ال بد من اخذ االكور التالية في الحسبان‪:‬‬
‫‪ ‬تحديد عدد الطبقات‬
‫‪ ‬تحديد عدد الخاليا في كل طبقة‬
‫‪ ‬تحديد دالة التنشيط لكل طبقة‬
‫‪ ‬تحديد نوع الشبكة‬
‫تهيئة الشبكة باعطاء قيم عشوايية لالوزان و االسهل تصفيرها‬
‫تحديد عدد مرات التدريب المطلوبة‬
‫تحديد نسبة الخطا المقبولة‬
‫تدريب الشبكة‬
‫اذا كانت النتائج مقبولة احفط الشبكة لتنفيذها عند الحاجة و اال زد عدد مرات التدريب او عدل هيكل الشبكة او عدل دوال‬
‫التنشيط ثم درب الشبكة من جدبد‪.‬‬
‫مثال‪ :‬لنقم ببناء شبكة لحل المعادلة التالية‬

‫نحدد المدخالت و المخرجات و كما هو مبين في الجدول ادناه‪:‬‬

‫‪Introduction to ANN‬‬
‫‪Digital image processing‬‬

‫عدد الطبقات ‪ 1‬و عدد الخاليا ‪ 1‬و دالة التنشيط خطية‬


‫عدد دورات التدريب ‪ 20‬و نسبة الخطا صفرية‪ ،‬سرعة التدريب =‪0.01‬‬
‫و االن لنستخدم مات الب لبناء هذه الشبكة‪:‬‬
‫نفذ البرنامج التالي‪:‬‬

‫ستعطي الشبكة المخرجات التالية‪:‬‬

‫الحظ وجود نسبة خطا استرجع االوزان‪:‬‬

‫‪Introduction to ANN‬‬
‫‪Digital image processing‬‬

‫الحظ ان االوزان قريبة جدا من معامالت المعادلة‪.‬‬


‫و يمكن تقليل نسبة الخطا بتعديل هيكل الشبكة و زيادة عدد دورات التدريب‬
‫نفذ االن النسخة المعدلة من البرنامج التالية لتحصل على مخرجات ادق‪:‬‬

‫قارن النتائج مع النتائج السابقة‬

‫و االن لنختر شبكة اخرى‪:‬‬


‫نفذ البرنامج التالي باستخدام الشبكة التتالية‪:‬‬

‫‪Introduction to ANN‬‬
‫‪Digital image processing‬‬

‫ستحصل على المخرجات التالية‪:‬‬

‫عدل هيكل الشبكة كما يلي و ستحصل على نسبة خطا صفرية‪:‬‬

‫‪Introduction to ANN‬‬
‫‪Digital image processing‬‬

‫لنستخدم االن شبكة المان‬


‫نفذ البرنامح التالي‪:‬‬

‫و ستحصل على نسبة خطا عالية‬

‫لكن ماذا لو كان عدد المعدالت اثنان و كان لدينا قيم المعدلة ‪ y1‬و المحددة القيم‬
‫و على فرض ان‪:‬‬

‫في هذه الحالة نضطر الى اضافة خلية الى طبقة المخرجات و سوف نستخدم الدخالت و المخرجات التالية‬

‫‪Introduction to ANN‬‬
‫‪Digital image processing‬‬

‫نفذ البرنامج التالي‪:‬‬

‫ستحصل على النتائج التالية‬

‫و االن لننفذ بعض االمثلة‬

‫‪Introduction to ANN‬‬
‫‪Digital image processing‬‬

‫مثال ‪:‬‬
‫استحدث شبكة لتمثيل العمليات المنطقية االساسية لثالثة متغيرات رقمية‬
‫عدد المداخل ‪3‬‬
‫عدد المخارج ‪ 3‬واحد لكل عملية‬
‫عدد الطبقات ‪ 2‬و لكل منهم ‪ 3‬خاليا‬
‫دالة التنشيط ‪ logsig‬الن القيم ‪ 0‬او ‪1‬‬
‫نحدد اوال المدخالت و المخرجات المطلوبة و كما هو نبين في الجدول التالي‪:‬‬

‫‪Input 1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪Input 2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪Input 3‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪Target 1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫)‪(AND‬‬
‫‪Target 2‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫)‪(OR‬‬
‫‪Target 3‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫)‪(XOR‬‬

‫و االن نفذ البرنامج التالي‪:‬‬

‫ستكون نسبة الخطا صفرية و ستكون النتائج كما يلي‪:‬‬

‫‪Introduction to ANN‬‬
‫‪Digital image processing‬‬

‫احفظ الشبكة ثم حملها و نفذها مت شئت كما هو مبين ادناه‪:‬‬

‫و االن لنستخدم شبكة التغذية االمامية‪:‬‬


‫نفذ البرنامج التالي‪:‬‬

‫‪Introduction to ANN‬‬
‫‪Digital image processing‬‬

‫ستحصل على نفس النتائج السابقة و بنسبة خطا صفرية‪:‬‬

‫مثال‪:‬‬
‫استخدم المدخالت و المخرجات المطلوبة لبناء شبكة عصبية‪:‬‬

‫نفذ البرنامج التالي‪:‬‬

‫‪Introduction to ANN‬‬
‫‪Digital image processing‬‬

‫مثال‪:‬‬
‫افترض اننا استخرجنا الخواص التالية لعشرة صور ابن الشبكة الالزمة العطاء مميز للصورة‬
‫‪Image number‬‬ ‫‪Features‬‬

‫‪1‬‬ ‫‪54652‬‬ ‫‪13120‬‬ ‫‪9671‬‬ ‫‪74428‬‬

‫‪2‬‬ ‫‪53327‬‬ ‫‪13437‬‬ ‫‪10515‬‬ ‫‪73455‬‬

‫‪3‬‬ ‫‪47689‬‬ ‫‪17487‬‬ ‫‪13517‬‬ ‫‪72353‬‬

‫‪4‬‬ ‫‪56979‬‬ ‫‪16205‬‬ ‫‪15978‬‬ ‫‪61584‬‬

‫‪5‬‬ ‫‪37264‬‬ ‫‪16354‬‬ ‫‪12097‬‬ ‫‪85256‬‬

‫‪6‬‬ ‫‪54971‬‬ ‫‪15982‬‬ ‫‪14652‬‬ ‫‪66071‬‬

‫‪7‬‬ ‫‪63647‬‬ ‫‪13819‬‬ ‫‪12041‬‬ ‫‪62004‬‬

‫‪8‬‬ ‫‪56902‬‬ ‫‪15739‬‬ ‫‪14101‬‬ ‫‪64229‬‬

‫‪9‬‬ ‫‪57483‬‬ ‫‪18066‬‬ ‫‪16746‬‬ ‫‪58919‬‬

‫‪10‬‬ ‫‪52831‬‬ ‫‪19290‬‬ ‫‪15960‬‬ ‫‪62923‬‬

‫هنا ال بد من االنتباة الى ان خواص الصورة يجب ان تكون في عمود اي انه البد من قلب المدخالت ‪.‬‬

‫قيم المدخالت كبير االمر الذي قد يؤدي الى فشل الشبكة في احتساب المخرجات الن ناتج دالة التنشيط سيكون دائما واحد الن العدد الليبيري‬
‫المرفوع لقوة كبيرة و سالبة سيكون دائما صفر و لهذا ال بد من معايرة البيانات بقسمتها على القيمة العظمى و الن نفذ البرنامج التالي‪:‬‬

‫‪Introduction to ANN‬‬
‫‪Digital image processing‬‬

‫ستحصل علي نتيجة خطا صفرية‬

‫و االن احفظ الشبكة ثم حملها و نفذها باستخدام خواص الصور كما يلي‪:‬‬

‫‪Introduction to ANN‬‬

‫‪View publication stats‬‬

You might also like