💡

كيف يتعلم الكمبيوتر؟

كيف يتعلم الكمبيوتر؟

جميعنا سمع ببرنامج كورتانا Kortana المساعد الآلي الصوتي في نظام التشغيل ويندوز، كذلك سمعنا بخدمة سكايب الجديدة في الترجمة الفورية و غيرها من البرامج التي تتعرف على الصوت وتحلله، والسؤال الآن كيف تتمكن الآلات من فهم هذا وما علاقة ذلك بالذكاء الصناعي؟ تابعوا معنا.

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

بدايةً الكمبيوتر لايفهم المعلومات كما هي بل يعتمد على نظام الترميز الثنائي (0\1) لفهم المعلومات، بمعنى آخر أي معلومة يتم تقديمها للجهاز بواسطة أدوات الإدخال (لوحة المفاتيح، الكاميرا، الميكروفون، الخ..) يتم تحويلها إلى ترميز ثنائي حتى يتمكن الحاسب من فهمها، ثم يتم تخزين المعلومات في الذاكرة (قصيرة المدى وطويلة المدى) لتسجيل البيانات.

ولكن كيف يفهم الحاسوب هذه البيانات؟ وكيف يتعلم الكمبيوتر منها ويستعملها في تحليل بيانات أخرى؟ 

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

ما هي سلسلة ماركوف ( Markov chain )؟

سلسلة ماركوف في وقت متقطع: هي السلسلة X1, X2, X3,... متكونة من متغيرات عشوائية ، مجموعة القيم الممكنة تدعى فضاء الحالات.
بمعنى آخر أن (X1)  تعبر عن قيمة المتغير في اللحظة 1
فإذا كان توزيع الاحتمال الشرطي ل Xn+1=x  في اللحظة n+1  مرتبطا بكل الحالات التي قبلها يعني (P(Xn+1=x)|X0,X1,….,Xn).
حيث Xnهي حالة العملية في اللحظة n.
قام مركوف بتبسيط هذه الإحتمالية فأثبت أنها تساوي  (P(Xn+1=x)|Xn).

والمهم بالنسبة لنا بعيداً عن المعادلات، هو أن معرفة الحالة في اللحظة (n+1) لا يلزم معرفة كل الحالات السابقة بل يكفي معرفة الحالة التي قبله وهكذا دواليك، أي كل حالة مرتبطة بالتي قبلها مباشرة.

وتتمثل الفائدة من هذه السلسلة في ربط مجموعة من الأحداث بنسب وهو ما يمكننا من فهم وتوقع أحداث جديدة بناءً على المعلومات المجمعة والمحسوبة سابقاً.

الآن كيف نستعمل هذه السلسة في الذكاء الصناعي وإعطاء القدرة للكمبيوتر على فهم المعلومات المقدمة له والتعلم منها ؟

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

نعم فكيف يتم ذلك ؟

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

ملاحظة هنالك تحسينات عليها باستعمال تقنيات أخرى نتعرف عليها لاحقاً.

المصادر

  1. cds.cern.ch
  2. ar.wikipedia.org