محتويات الدرس:
- مقدمة
- حيز المسألة
- المدخلات والمخرجات
- ما نريد أن يفعله الحاسب
- ارتباط بيولوجي
- البنية الخاصة بالشبكات العصبية التلافيفية
- المراجع
أجزاء الدرس:
مقدمة:
عندما نسمع للوهلة الأولى بعبارة الشبكات العصبية التلافيفية Convolutional Neural Network يتبادر إلى الأذهان مزيج غريب بين علم الأحياء والرياضيات مع القليل من علوم الحاسب [1] ، ولكن في واقع الأمر فإن هذه الشبكات تعد من أكثر الابتكارات تأثيراً في مجال الرؤية المحوسبة Computer Vision وهو مجال يعنى في تطوير تقنيات تمكن الحواسيب من الرؤية والتعرف على الأشياء والبيئة المحيطة من خلال فهم محتوى الصور الرقمية ومقاطع الفيديو [2].
في عام 2012 أقدم عالم الحاسب Alex Krizhevsky على استخدام الشبكات العصبية التلافيفية للفوز في مسابقة ImageNet ( أولمبياد سنوية للرؤية المحوسبة) وهو أول عام تتقدم فيه هذه الشبكات إلى الصدارة مقارنة بالتقنيات الأخرى والتي بدورها أدت إلى انخفاض سجل أخطاء التصنيف من 26% إلى 15% والذي اعتبر آنذاك تقدمًا مذهلاً في هذا المجال. [3]
ومنذ ذلك الحين استخدمت مجموعة كبيرة من الشركات التعلم العميق وشبكاته العصبية في صميم خدماتها فعلى سبيل المثال قامت فيسبوك باستخدام الشبكات العصبية لخوارزميات العلامات التلقائية الخاصة بها و جوجل في خوازميات البحث عن الصور وأمازون في أنظمة التوصية الخاصة بمنتجاتها وإنستغرام لبنية البحث الخاصة بها وغيرها من الشركات الأخرى، وبالرغم من ذلك فإن الاستخدام التقليدي والأكثر شيوعاً للشبكات العصبية التلافيفية هو معالجة الصور Image Processing ومن هذا المنطلق سنأخذكم في جولة مقسمة إلى عدة أجزاء تشرح هذه الشبكات بالتفصيل واستخداماتها في تصنيف الصور.
حيز المسألة:
تصنيف الصور Images classification هو عملية التقاط صورة على هيئة مدخلات والتعرف على محتواها وتصنيفه إلى فئة أو أكثر من الكائنات أو الأشياء على هيئة مخرجات على سبيل المثال (قطة ، كلب ، طائر ، غروب الشمس، سيارة .. إلخ) أو توقع احتمالية وجود تلك الفئات التي تصف الصورة على أفضل وجه ممكن (Pcat = 80%, Pdog =15%, Pbird = 5% …).
تعتبر مهمة التعرف هذه واحدة من أولى المهارات التي نتعلمها منذ لحظة ولادتنا وهي التي تستخدم بشكل طبيعي ودون أدنى مجهود كبالغين فبدون التفكير مطولاً بإمكاننا تحديد البيئة التي نتواجد فيها وكذلك الأشياء التي تحيط بنا بسرعة وسلاسة فائقتين. وعندما نرى صورة أو عندما ننظر إلى العالم من حولنا ، فإننا في معظم الأوقات نكون قادرين على تحديد خصائص المشهد على الفور وإعطاء كل كائن تسمية و كل ذلك بشكل لاواعي ولكن مالفرق بين ما نشاهده وبين مايشاهده الحاسب؟!
المدخلات والمخرجات:
عندما يرى الحاسوب صورة ما (يأخذ الصورة كمدخلات) ، سيشاهد مجموعة من قيم البكسل Pixel وهو أصغر مكون لأي صورة ، يحدد عدد هذه البكسلات وقيمها بناءً على دقة الصورة (حجمها) و شدة الألوان المستخدمة في كل بكسل . هذه المجموعة من البكسلات تمثل عن طريق مصفوفة من الأرقام تكتب على سبيل المثال على النحو التالي :32 × 32 × 3 يشير أول عددين إلى أبعاد الصورة وناتج ضرب هذين العددين (1024) هو عدد البكسلات Pixels الموجودة في الصورة بينما يشير الرقم 3 إلى قيم RGB وهي ثلاث قنوات رئيسة تستخدم لتحديد لون كل بكسل ، لنفترض أن لدينا صورة ببغاء ملونة بصيغة JPG وحجمها 480 × 480 ستكون المصفوفة التمثيلية 480 × 480 × 3. وعدد بكسلات الصورة سيكون 230400 بكسل كل من هذه البكسلات له لونه الخاص المتشكل من من القيم التي يتم إعطاؤها للقنوات الثلاث RGB وكل قناة تحمل قيمة مابين 0 و 255 والتي تصف شدة لون البكسل وهكذا إلى أن يتم إضاءة جميع البكسلات بقيم قنوات ال RGB وظهور صورة الببغاء الجميلة
#ملاحظة: عدد الألوان المتاح استخدامها لأي بكسل من خلال قنوات RGB هو 255 × 255 × 255 = 16581375 لوناً !
شاهد الصورة أدناه لبكسل واحد برتقالي اللون تشكل عن طريق القنوات الثلاث RGB بالإمكان تجربة ذلك بنفسك عبر الرابط [4]
رغم أن هذه الأرقام لا معنى لها بالنسبة لنا عندما نقوم بتصنيف الصور، إلا أنها المدخلات الوحيدة المتاحة للحاسب ليتكمن من تصنيف الصور فكل مافي الأمر أن الحاسب المدرب جيداً سيتمكن من توقع احتمالية أن تكون الصورة فئة معينة من خلال تلك المصفوفة من الأرقام كما هو موضح في الصورة أدناه فقد توقع الحاسب محتوى الصورة على النحو التالي (80% للقطة ، 15% للكلب ، 5% للطائر ، …. إلخ)
ما نريد أن يفعله الحاسب
الآن بعد أن عرفنا حيز المسألة وكل من المدخلات والمخرجات ، لنفكر في كيفية التعامل مع هذا. ما نريد أن يفعله الحاسب هو أن يكون قادرًا على التمييز بين جميع الصور التي نقدمها له ومعرفة الميزات الفريدة التي تجعل من الكلب كلبًا أو من القطة قطة. هذه العملية أيضًا تجري في أذهاننا بشكل لا شعوري ، فعندما ننظر إلى صورة كلب، فإنه بالإمكان تصنيفها بسهولة على هذا النحو من خلال ماتحتويه الصورة على ميزات محددة مثل الأرجل الأربعة ، شكل الفم والأذنين وغيرها من التفاصيل الأخرى. بطريقة مماثلة ، يكون الحاسب قادرًا على إجراء تصنيف للصور من خلال البحث عن ميزات منخفضة المستوى مثل الحواف والمنحنيات ، ثم بناء المزيد من المفاهيم المجردة من خلال سلسلة من الطبقات التلافيفية وهذه نظرة عامة على ما تفعله الشبكات العصبية التلافيفية CNN. لذا دعونا ندخل في التفاصيل أكثر.
ارتباط بيولوجي:
كما ذكرنا في مقدمة المقال فإن مصطلح الشبكات العصبية التلافيفية يوحي لنا بارتباط بعلم الأحياء أو علم الأعصاب ، وهذا صحيح إلى حد كبير ، فهذه الشبكات مستلهمة بيولوجيًا من القشرة البصرية Visual Cortex الموجودة لدينا نحن البشر والتي تحتوي على مناطق صغيرة من الخلايا تسمى بالخلايا العصبية أو العصبونات neurons حساسة لمناطق معينة من المجال البصري.
تم توسيع هذه الفكرة في عام 1962 من خلال تجربة رائعة قام بها العالمان (فيديو) [5] Hubel and Wiesel والحاصلان على جائزة نوبل في الطب و علم وظائف الأعضاء [6] حيث أظهرا أن بعض الخلايا العصبية الفردية individual neuronal cells في الدماغ تستجيب (أو تُشغَّل) عبر تعرض المجال البصري المتصل بها لحواف ذات اتجاه معين وتكون هذه الحواف عامودية، أفقية أو قُطرية انظر الشكل أدناه لتتعرف على طريقة استجابة هذه الخلايا العصبية (العصبونات) وفقاً لاتجاه تلك الحواف. [7]
كما اكتشف Hubel و Wiesel أن كل هذه الخلايا العصبية يتم تنظيمها في بنية عمودية ومعاً تكون قادرة على إنتاج الإدراك البصري. هذه الفكرة الخاصة بالمكونات المتخصصة داخل نظام له مهام معينة والتي تقتضي بأن الخلايا العصبية في القشرة البصرية تبحث عن خصائص محددة هي فكرة تستخدمها الآلات أيضًا ، وهي الأساس وراء الشبكات العصبية التلافيفية CNN.
البنية الخاصة بالشبكات العصبية التلافيفية:
كل ما تفعله الشبكات العصبية التلافيفية CNN هي أنها تلتقط الصورة ، وتمررها عبر سلسلة من الطبقات التلافيفية ، وغير الخطية ، وطبقات القيم العليا المشتركة (الاختزال) ، والطبقات تامة الاتصال، منتهية بطبقة المخرجات أو النتائج. وكما قلنا سابقًا ، يمكن أن يكون الناتج فئة واحدة أو احتمالية للفئات التي تصف الصورة على أفضل وجه ممكن.
الآن بعد أن قمنا بالتمهيد النظري للشبكات العصبية التلافيفية سنقوم في الأجزاء القادمة بشرح هذه الطبقات بمزيد من التفصيل ليتسنى لكم معرفة محتويات الصندوق الأسود لهذه الشبكات وكيفية عملها في الخلفية.
المراجع
[1] [Online]. Available: https://adeshpande3.github.io/A-Beginner’s-Guide-To-Understanding-Convolutional-Neural-Networks/
[2] [Online]. Available: https://machinelearningmastery.com/what-is-computer-vision
[3] A. Krizhevsky, S. Ilya and E. H. Geoffrey, Advances in neural information processing systems, vol. 25, pp. 1097-1105, 2012.
[4] [Online]. Available: https://csfieldguide.org.nz/en/interactives/rgb-mixer/
[5] [Online]. Available: https://www.youtube.com/watch?v=Cw5PKV9Rj3o
[6] [Online]. Available: http://braintour.harvard.edu/archives/portfolio-items/hubel-and-wiesel
[7] B. J. Baars and N. M. Gage, Cognition, Brain, and Consciousness Introduction to Cognitive Neuroscience, 2010.
مقال ممتع و مليء بالفائدة في مجال cnn
بارك الله بك