Eng.Ahmed Al-kaf 💻
Eng.Ahmed Al-kaf 💻

@alkaf2012

23 تغريدة 150 قراءة Sep 25, 2019
Hi everyone ?
إن شاء الله تحت هذي التغريدة راح اشرح لكم
مفاهيم و اساسيات بناء NN
و الخوارزميات المستخدمة و فائدتها و المشاكل اللي ممكن تواجهك
وبعدها راح اتكلم عن CNN مفهومها، الخوارزميات، آلية عملها، تطبيقاتها، أمثلة، كيف ممكن تبدأ فيها... الخ
#AI #DeepLearning
في البداية حاب اقولك إذا حاب تتعلم هذا المجال وتتعمق فيه
فلازم يكون عند فكرة عن لغة #البايثون
وممكن هذا الكورس يفيدك
udacity.com
#Neural_network
مبني على اساس فكرة preceptrons
و اللي فكرتها قائمة على ثلاث مراحل
١ مدخلات features(x) وكل مدخل له (w)
الوزن الخاص فيه
٢ الطبقات المخفية تحتوي على Activatic function راح اشرح بعض انواعها وكيفية عملها
٣ المخرجات
باختصار تتمثل في المعادلة XW+b=output
b = bise
أمثلة #Activatic_function
١ Step function جدا بسيطة قائمة على فكرة صفر او واحد
٢ Sigmod حتى نحول الصفر و الواحد إلى نسبة احتمال وجود كل عنصر في حالة وجود مدخلين
لأكثر من مدخلين softmax
٣ Relu الأكثر استخدماً خاصة مع CNN
#DeepLearning
قائمة على تدريب #Neural_network
ببيانات متوفرة عندي ومن ثم اقوم باختباراها
نقوم بتحسين عملية التدريب بمقارنة نتائج التدريب بالإجابات الصحيحة و التي تسمى #ground_truth
ومن ثم القيام بعملية loss function نقوم بحساب نسبة الخطأ
ثم نستخدم backpropagation من أجل تحسين قيم الاوزان (w) لكل مدخل للحصول على نتائج أقرب لل #ground_truth
من أشهر المكتاب لل neural network
مكتبة #PyTorch للبايثون
التغريدات اللي جاية راح أتكلم ان شاء الله عن
#CNN #Convolutional_Neural_network
في البداية حاب أوضح الفرق بين NN و CNN
وليش تعدت الحاجة لاستخدام #CNN
في عملية NN نحن غالبا بندخل الصور على شكل مصفوفة 1dimension و اللي نسميها vectors و غالبا عن طريق عملية تسمى flatting لاستخراج #features من الصورة
ولكن مشكلتها انها ما تحتفظ بالمعلومات المكانية للبيانات.
فمثلا وجود الجسم في مواقع و أحجام مختلفة داخل الصورة يُصَعِّب من عمل NN ولذلك تم إنشاء CNN و اللي تقوم على إدخال الصور على شكل مصفوفة 2dimensions عن طريقة تحويل الصور الملونة على صور رمادية
و من ثم إضافة طبقتين إضافية على طبقات NN وهي #convolutional و #pooling #صيفي_وادي_مكة
غالبا نحتاج لأكثر من ٧٠٠ صورة لتدريب CNN على اكتشاف نمط واحد
من المواقع اللي توفر لك مجموعة من data
Kaggle
COCO
mnist
Cifar 10
وغيرها
أيضا من أشهر المكتبات المستخدمة TensorFlow
طبقة convolutional هي عبارة عن مجموعة من الفلاتر و اللي تطبق على الصورة بهدف عمل تباين لتوظيح شكل الجسم في الصورة من أمثلة هذه الفلاتر فلتر high pass frequency و يعمل على رسم حدود بيضاء في الأماكن اللي فيها تغير كبير في درجة اللون وبكذا يرسم حدود للجسم
i.stack.imgur.com
طبقة pooling الهدف منها هو تصغير حجم أبعاد الصورة المستخرجة من طبقة convolutional وبذلك يصغر حجم الصورة + تزيد من وضوح الحدود
ufldl.stanford.edu
#صيفي_وادي_مكة
الان راح ادخل على مشروع جديد في #DeepLearning
وهو #GAN
ان شاء الله مجرد ما أنتهي منه راح اكمل على هذا الثرد و اشرح لكم كيفية عمله
ولكن حتى تتعرف على فكرة المشروع ممكن تشوف هذا المقطع
youtube.com
بعض المصطلحات
#Overfitting
هي ارتفاع نسبة accursy للموديل بالنسبة لصور التدريب و انخفضها لصور الاختبار
و السبب ان الموديل بدأ يميل لحفظ صور التدريب فقط
#Dropout
هي علمية تستخدم لتجنب الوقوع في overfittingتقوم بايقاف جزء من اللير بشكل عشوائي و التركيز على البقية لغرض تحسين الأوزان
أثناء تطوير نموذج CNN ظهرت R-CNN
region of conventional neural network
واللي تسمح بأنك تقوم multi classification in 1 image
حيث راح تكون النتائج شيء مشابه للي في هذي الصورة ?
طبعاً ظهرت بعض الموديل المحسنه من هذا النوع مثل
Fast R-CNN
Faster R-CNN
Mask R-CNN
ثم قامت شركة فيسبوك بتطوير مكتبة تدعى YOLO
و التي تعمل بطريقة مختلفة و سهلة الاستخدام و التي تقوم على نفس نبدأ R-CNN مما جعل الكثير يلتفت لها
سبق وتكلمت عن Loss function
و backpropagation
و التي تقوم بحساب نسبة الخطأ لغرض تحسين قيم الاوزان
من أشهر الدوال التي تقوم بذلك
#SGD
#Adam
#rmsprop
ويوجد غيرها ايضاً
كل واحدة منهم لها طريقة مختلفة في العمل
من أصعب الأمور في موضوع التعلم العميق هو العثور على dataset
خاصة بموضوعك
عادةً في #DeepLearning نحتاج أكثر من 500 صورة عشان ندرب الموديل على اكتشاف نمط معين بدقة عالية
هناك بعض الخدع لزيادة عدد الصور
مثل استخدام دالة #ImageDataGenerator
التفاصيل?
pyimagesearch.com
احد تقنيات #DeepLearning هيا #RNN
وهيا اختصار لكلمة Recurrent Neural Networks
ميزة هذا النوع من التدريب أنه يحتفظ بذاكرة للعمليات السابقة
و اللي ممكن تساعده على زيادة دقة الاحتمالات
بناءاً على history للموديل
لذا فهو يستخدم الملاحظات السابقة لتوقع النتيجة القادمة
تقوم فكرة هذا النوع على تمرير المخرج في المره الاولى كمدخل للمره الثانية و هكذا
تعمل بناء على فكرة #LSTM long short term memory
هناك اكثر من طريقة لبناء هذا الموديل ولكن الأكثر شهره هو
تقسيم hidden layer الى 4 مناطق كما هو موضح في الصورة
بعض الامثلة على استخدامتها
توقع طقس الغد
توقع قيم الأسهم
توليد الكلمات بناءً على الحرف المدخل (( وبذلك ممكن تعطيه حرف و تطلب منه توليد 10000 حرف بعده وراح يكتب لك كتاب كامل ?
إذا حاب تجرب عمل RNN وكيف ممكن يولد لك تكملة بناءً على المدخل
هذا الرابط رائع جداً
في مجموعة من الموديلات اللتي سبق تدريبها ورفعها على الموقع
اختر نوع الموديل اللي حاب تجربه و ابدأ بالرسم وراح يكمل لك الرسمة??
magenta.tensorflow.org

جاري تحميل الاقتراحات...