كتاب "التعلم العميق بالصور. دليل مرئي للذكاء الاصطناعي "

صورةمرحبا ، هابروجيتيلي! أصبح التعلم العميق محركًا قويًا للعمل مع الذكاء الاصطناعي. توفر لك الرسوم التوضيحية الحية وأمثلة التعليمات البرمجية البسيطة عناء الخوض في تعقيدات إنشاء نماذج التعلم العميق ، مما يجعل المهام المعقدة سهلة الوصول إليها وممتعة.



يستخدم جون كرون وجرانت بيليفيلد والرسام العظيم أجلاي باسينز أمثلة وتشابهات حية لشرح ما هو التعلم العميق ، ولماذا يتمتع بشعبية كبيرة ، وكيف يرتبط بالنهج الأخرى لتعلم الآلة. الكتاب مثالي للمطورين وعلماء البيانات والباحثين والمحللين والمبرمجين الطموحين الذين يرغبون في تطبيق التعلم العميق على عملهم. يتم استكمال الحسابات النظرية تمامًا برمز التطبيق في Python في دفاتر Jupyter. سوف تتعلم تقنيات إنشاء نماذج فعالة في TensorFlow و Keras ، بالإضافة إلى التعرف على PyTorch.



ستمكّنك المعرفة الأساسية للتعلم العميق من إنشاء تطبيقات في العالم الحقيقي ، بدءًا من رؤية الكمبيوتر ومعالجة اللغة الطبيعية وحتى إنشاء الصور وخوارزميات الألعاب.



شبكة عمق متوسط ​​من Keras



في ختام هذا الفصل ، سنجسد المعرفة النظرية الجديدة في شبكة عصبية ونرى ما إذا كان بإمكاننا تجاوز النموذج السابق الضحل في تصنيف الأعداد المكتوبة بخط اليد.



المراحل القليلة الأولى من إنشاء شبكة من العمق المتوسط ​​في دفتر الملاحظات Jupyter intermediate_net_in_keras.ipynb مطابقة لمراحل إنشاء سلفها - شبكة ضحلة. أولاً ، يتم تحميل نفس تبعيات Keras ، ويتم إدخال مجموعة بيانات MNIST ومعالجتها بنفس الطريقة. كما ترى في القائمة 8.1 ، تبدأ المتعة حيث يتم تعريف بنية الشبكة العصبية.



قائمة 8.1. كود يحدد بنية الشبكة العصبية متوسطة العمق



model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(784,)))
model.add(Dense(64, activation='relu'))
model.add(Dense(10, activation='softmax'))


السطر الأول في جزء الشفرة هذا ، model = Sequential () ، هو نفسه في الشبكة السابقة (List 5.6) ؛ هو مثال لكائن نموذج الشبكة العصبية. يبدأ السطر التالي التناقض. في ذلك ، استبدلنا وظيفة التنشيط السيني في الطبقة المخفية الأولى بوظيفة relu ، كما هو موصى به في الفصل 6. بقيت جميع المعلمات الأخرى للطبقة الأولى ، باستثناء وظيفة التنشيط ، كما هي: لا تزال تتكون من 64 خلية عصبية ، وظل بُعد طبقة الإدخال كما هو - 784 عصبون.



تغيير آخر مهم في القائمة 8.1 على العمارة الضحلة في القائمة 5.6 هو وجود طبقة مخفية ثانية من الخلايا العصبية الاصطناعية. من خلال استدعاء model.add () ، نقوم بسهولة بإضافة طبقة ثانية كثيفة مع 64 خلية عصبية ، مما يبرر الكلمة وسيطة في اسم دفتر الملاحظات. من خلال استدعاء model.summary () ، يمكنك أن ترى ، كما هو موضح في الشكل. 8.9 أن هذه الطبقة الإضافية تضيف 4160 معلمة تعلم إضافية ، مقارنة بالهندسة الضحلة (انظر الشكل 7.5). يمكن تقسيم المعلمات إلى:



  • 4096 أوزان مقابلة لاتصالات كل من الخلايا العصبية الـ 64 في الطبقة المخفية الثانية مع كل من الخلايا العصبية الـ 64 في الطبقة المخفية الأولى (64 × 64 = 4096) ؛
  • بالإضافة إلى 64 إزاحة ، واحد لكل خلية عصبية في الطبقة المخفية الثانية ؛
  • والنتيجة هي 4160 معلمة: n المعلمات = nw + nb = 4096 + 64 =

    = 4160.


بالإضافة إلى التغييرات في بنية النموذج ، قمنا أيضًا بتغيير خيارات التجميع للنموذج ، كما هو موضح في القائمة 8.2.



قائمة 8.2. كود تجميع الشبكة العصبية الوسيطة



model.compile(loss='categorical_crossentropy',
                      optimizer=SGD(lr=0.1),
                      metrics=['accuracy'])


صورة


هذه الخطوط من القائمة 8.2:



  • تعيين دالة تكلفة استنادًا إلى الإنتروبيا المتقاطعة: loss = 'categorical_crossentropy' (في شبكة ضحلة ، تم استخدام التكلفة التربيعية خسارة = 'mean_squared_error') ؛
  • تحديد طريقة هبوط التدرج العشوائي لتقليل التكلفة: محسن = SGD ؛
  • تحديد فرط معلمة معدل التعلم: lr = 0.1 (1) ؛
  • , , Keras , : metrics=['accuracy'](2).


(1) , , .



(2) , , , , , . , , , . , , : , (, « 86 »), (« 86 , »).


أخيرًا ، نقوم بتدريب الشبكة الوسيطة عن طريق تشغيل الرمز في القائمة 8.3.

قائمة 8.3. كود تدريب الشبكة العصبية الوسيطة



model.fit(X_train, y_train,
              batch_size=128, epochs=20,
              verbose=1,
              validation_data=(X_valid, y_valid))


الشيء الوحيد الذي تغير في التدريب المتوسط ​​للشبكة مقارنة بالشبكة الضحلة (انظر القائمة 5.7) هو انخفاض في ترتيب المعلمات الفائقة من 200 إلى 20. كما سترى لاحقًا ، فإن البنية المتوسطة الأكثر كفاءة تتطلب فترات أقل بكثير للتعلم.



صورة


في التين. يعرض الإصدار 8.10 نتائج العصور الأربعة الأولى للتعلم الشبكي. كما تتذكر على الأرجح ، وصلت العمارة الضحلة إلى هضبة بدقة 86 ٪ على بيانات الاختبار بعد 200 حقبة. تجاوزت شبكة العمق المتوسط ​​هذه بشكل كبير: كما هو موضح في مجال val_acc ، وصلت الشبكة إلى دقة 92.34٪ بعد فترة التدريب الأولى. بعد العصر الثالث ، تجاوزت الدقة 95٪ ، وبحلول القرن العشرين ، يبدو أنها وصلت إلى هضبة تبلغ حوالي 97.6٪. لقد حققنا تقدما جديا!



دعونا نلقي نظرة فاحصة على إخراج model.fit () ، الموضح في الشكل. 8.10:



  • يملأ

    شريط التقدم ، كما هو موضح أدناه ، أكثر من 469 "دورات تعلم" (انظر الشكل 8.5): 60000/60000 [======================== ======]
  • 1s 15us/step , 469 1 , 15 .
  • loss . 0.4744 (SGD) , 0.0332 .
  • acc — . 86.37% 99% . , .
  • , (val_loss), , 0.08 .
  • (val_acc). , 97.6%, 86% .




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



»يمكن العثور على مزيد من المعلومات حول الكتاب على موقع الناشر على الويب

» المحتويات

» مقتطفات



لـ Khabrozhiteley خصم 25 ٪ على القسيمة - التعلم العميق



عند دفع النسخة الورقية من الكتاب ، يتم إرسال كتاب إلكتروني عبر البريد الإلكتروني.



All Articles