كيفية جعل الصندوق الأسود لغة نموذج أسهل للفهم؟

أطروحة 3608 الكلمات، وعندما يكون التعلم مدى المتوقع 10 دقيقة أو أكثر

المصدر: اللاعب Pawe Durczok / Unsplash

لتصور نص مقروء آليا، وهذه المادة سوف بناء نموذج الحراري النص FIG حددت "قراءة" الموقف، وبالتالي يحدد النص المذكور القهوة الضحلة الخبز أو الخبز العميق.

على مر السنين، لقد تم تطوير الشبكة العصبية التلافيف (CNN) في المهام رؤية الكمبيوتر، والتي أعطت المجالات التالية جلبت تحسنا كبيرا:

زيادة متانة نموذج

البصري والحد من التحيز نموذج

فهم أفضل لكيفية تغيير الناتج صورة نموذج التعلم عمق المواجهة

منذ التوصل إلى فهم أفضل للنموذج جلبت هذه الفوائد واضحة، لماذا لا تعطيه نفس الاهتمام إلى تفسيرها للنموذج في (NLP) مجال المعالجة الطبيعية للغة؟

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

CNN موقف التركيز البصري

سيتم فهم تقنيات CNN المستخدمة هنا هذا الموقف القائم على الرؤية في التركيز على النص الذي تم التعرف على استخدام نفس، ثم قم بإنشاء خريطة حرارية، وعرضها في نص CNN موقف التركيز على منطقة معينة لتصنيفها.

في هذه الحقبة من GPT-2، بيرت، نموذج إلمو وغيرها من درجة عالية من التطور، وكانت CNN قليلا وراء هذا الاتجاه. ولكن في الواقع، وتطبيق CNN لا يزال يؤدي بشكل جيد للغاية، وعلى عكس بعض نموذج متقدم وجود كمية كبيرة وطويلة الاستدلال الوقت، كبير أثر الذاكرة غير مؤات.

البن المحمص توقعت الطريقة:

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

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

هنا هو بناء CNN والتدريب في بيانات رمز Keras:

X = df.blind_assesment.values ص = df.y.values tokenizer = Tokenizer (NUM_WORDS = 4000) tokenizer.fit_on_texts (X) X = tokenizer.texts_to_sequences (X) vocab_size = ليون (tokenizer.word_index) + 1 # بإضافة 1 بسبب محفوظة مؤشر 0 MAXLEN = 200 embedding_dim = 50 X = pad_sequences (X، الحشو = 'آخر'، MAXLEN = MAXLEN) sequence_input = layers.Input (الشكل = (MAXLEN،)، dtype = 'int32') embedded_sequences = layers.Embedding (vocab_size، embedding_dim، input_length = MAXLEN) (sequence_input) l_cov1 = layers.Conv1D (317، 3، وتفعيل = 'relu') (embedded_sequences) l_pool1 = layers.MaxPooling1D (2) (l_cov1) l_cov2 = layers.Conv1D (317، 1، وتفعيل = 'relu') (l_pool1) l_cov3 = layers.Conv1D (317، 2، وتفعيل = 'relu') (l_cov2) l_pool3 = layers.GlobalMaxPooling1D () (l_cov3) # تجميع أقصى العالمي l_bnorm = layers.BatchNormalization () (l_pool3) l_dense = layers.Dense (128، وتفعيل = 'relu') (l_pool3) preds = layers.Dense (1، تفعيل = 'السيني "، اسم =' preds ') (l_dense) نموذج = النموذجي (sequence_input والمخرجات = preds) model.compile (محسن = 'آدم'، فقدان = 'binary_crossentropy، مقاييس = ) model.summary () model.fit (X، Y، العهود = 3، validation_split = 0.1، batch_size = 10)

إذا كان نموذج Keras وهذا يبدو مختلفا بعض الشيء، فذلك لأن Keras باستخدام واجهة برمجة التطبيقات الوظيفية (https://keras.io/getting-started/functional-api-guide/). هذا رمز والتكيف مع نموذج التدريب، التحقق من دقة البيانات على تدريب حوالي 75 -80. بنيت المادة CNN على المصنف النص هناك الكثير، ولن يتم التوسع فيها. هذه المادة سوف تركز على كيفية تفسير التنبؤ التي المصنف.

إنشاء مخطط تنشيط:

استخدام Keras سريع وبسيط ويتطلب سوى بضعة أسطر من التعليمات البرمجية.

1. استخدام هذا النموذج والحصول على انتاج طبقة النهائية CNN.

ويمكن الحصول على تجزئة هيكل نموذج باستخدام وظيفة model.summary () في السنوات Keras. الرسوم البيانية conv1d_45 هو اسم للنموذج CNN طبقة النهائية.

التعليمة البرمجية التالية يمكن أن يتحقق إلا إلى التنبؤ الدرجة، ولكن أيضا للحصول على طبقة نهائية من CNN:

class_idx = np.argmax (y_pred ) اللازمة #not في هذه الحالة كما فئتين فقط class_output = model.output last_conv_layer = model.get_layer ( "conv1d_45")

FIG 2 حيث يتم حساب الناتج وفقا لفئة، ويجمع كل التدرج.

ورغم أن هذا يبدو معقدا، ولكن في الواقع وظيفة استخدام Keras الخلفية يستغرق سوى بضعة أسطر من التعليمات البرمجية:

الخريجون = K.gradients (class_output، last_conv_layer.output) pooled_grads = K.mean (الخريجون) أعاد = K.function ( ، ) pooled_grads_value، conv_layer_output_value = أعاد ( )

وبلغ متوسط 3. خرائط ميزة وتطبيع (تنظيم) وهو ما بين 0 و 1.

خريطة التمثيل اللوني = np.mean (conv_layer_output_value، محور = -1) خريطة التمثيل اللوني = np.maximum (خريطة التمثيل اللوني، 0) خريطة التمثيل اللوني / = np.max (خريطة التمثيل اللوني) القيم #normalise في التنبؤ

البعد الفئة CNN يتوقع الآن يتم الحصول على الشكل النهائي للطبقة الانتاج، للحصول على FIG تفعيل الحراري. ثم تحتاج فقط إلى إعادة ضبط طول المدخل الأولي للمعلومات (عدد الكلمات) (تمتد) في الحجم، من أجل أن نفهم بالضبط ما تؤدي الكلمات الشبكة العصبية.

البصري الناتج لغة توصيف النص التشعبي (HTML)

إضافة بعض أساس في HTML التنبؤ النهائية لإنشاء واجهة المستخدم فعالة جدا، مع زيادة القدرة على فهم كيفية جعل تنبؤات النموذج.

norm_len = MAXLEN / last_conv_layer.output_shape # العثور على نسبة من النص مقابل طول طبقة التحويل أتش تي أم أل = "" إذا y_pred > 0.5: برد = 'النور' آخر: برد = 'الظلام' أتش تي أم أل + = " < شبر > < H3 > وبناء على الوصف، يرى النموذج أن هذا هو {} مشوي القهوة. ".Format (سابق التحديد) أتش تي أم أل + = " < صغير > < ر > الثقة: {:} .0f < ر > < ر > < / الصغيرة > < / H3 > < / سبان > ".Format (القيمة المطلقة (((y_pred * 100) -50) * 2)) لي، أنا في اعدد (tokenizer.sequences_to_texts (Xtst) .split ()): أتش تي أم أل + = " < فترة = نمط "لون الخلفية: رغبا ({}، 0150، {})" > {} < / سبان > ".Format (خريطة التمثيل اللوني * 255، خريطة التمثيل اللوني -0.3، ط) HTML (HTML)

هذا مقتطف شفرة HTML يعطي نتائج الإخراج التالية على جوجل Colab:

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

باختصار، هذه المقالة تشرح كيفية تسليط الضوء بسهولة نموذج للتنبؤ (تصنيف) من خلال "القراءة" في المنطقة. وهذا له انعكاسات هامة على المجالات التالية:

1. هذا النموذج هو التصحيح الأساسية وشيك المعقولية.

سيفهم 2. نموذج أفضل لماذا تم أساء تصنيف العينات التدريب.

3. الكشف عن التحيز نموذجي التي قد تكون موجودة.

كود بوابة:

https://colab.research.google.com/drive/1taIt9A9tsENJTYh3eK0ZuUyRIdrHeNty

انتباه رسالة الابهام

معا نحن نشارك في التعلم وتطوير AI الجاف

ترحب منظمة العفو الدولية انتباه منصة الشنق كله من الطبقة سائل الإعلام "قراءة التقنية الأساسية"

WalkingPad مفرغة A1 برو مراجعة: قامة قصيرة سهولة التخزين، من السهل أن "السير" للخروج من الصحة

190623 النحل تدمير مجموعة من المشجعين لا العشب يمكن أن تمتص فقط وضع المتواضع قدمت مجموعة المنشورة

صدر سوني الرائد كامل الإطار الصغير واحد A7R4: 6100000000 بكسل في 3500 $

"رؤية موازية" يأتي: هواوي قرص M6 مفتوحة الروبوت قرص رؤية التنمية

هوايان: جسر قناة هوايان افتتح رسميا

التقنية رد: كيف أحصل على جوجل، الفيسبوك والأمازون عرض؟

شين قو كايوان K1 حالة التقييم: عهدا جديدا من ATX مفتوحة 3.0

جيدة إلى الأعلى، طريقك من العلماء بيانات قصيرة من مهارات 13

اليوم صوت الأساسية | الجبن مزدوجة والقيام بشيء ما؟ أعيد فيديكس العضو الشحن هواوي الهاتف الخليوي

500000 الجائزة الكبرى! دانتشو مكافأة القبض على 93 الاحتيال الهاربين الاتصالات السلكية واللاسلكية، يرجى الاطلاع على الشرطة

اكتشف هواوي عملية باولو! 2799 يوان الجهاز الجديد، لمساعدتك على الجراحة التجميلية والساقين رقيقة وسحبها

يجب أن نرى! المادة سيد الأكثر تقدما في الوقت الحقيقي نظام الكشف عن وجوه YOLO