مقالات بالعربي: ذكاء اصطناعي
‏إظهار الرسائل ذات التسميات ذكاء اصطناعي. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات ذكاء اصطناعي. إظهار كافة الرسائل

8/11/2016

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

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


جميعنا سمع ببرنامج كورتانا 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 ملي ثانية.
ثم يقوم كل وحدة مع الحرف الذي تتكرر معه.
ثم يقوم بربط كل وحدة بالوحدة التي تليها في الكلام وتحديد عدد مرات الارتباط.
وهكذا عند دخول كلام جديد يتقم تقطيعه ومقارنته بالنموذج المبني من معلومات التعلم وترجيح أي سلسلة من الحروف هي الأقرب إلى الكلام الجديد من الكلام القديم ثم يتم إخراجها كنتيجة.
نعم هكذا يتم الأمر بإستعمال سلسلة ماركوف.
يعني مقطع الصوت في لحظة معينة مرتبط بما قبله مباشرة دون الحاجة إلى ربطه بباقي السلسلة.

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

المصادر:
cds.cern.ch
ar.wikipedia.org

6/30/2016

ما هو الذكّاء الاصطناعي ؟ وكيف يمكن الوصول إليه ؟

ما هو الذكّاء الصناعي أو الاصطناعي ، وكيف يمكن الوصول إليه ؟


ربما أول ما يتبادر إلى أذهانكم عند قراءة هذه الكلمة الذكاء الصناعي أو الذكاء الاصطناعي صورة روبوت، أو ربما صورة آلي من أحد افلام الرسوم المتحركة التي شاهدتموها في صغركم، أو ربما صورة لآلة ذكية في التلفاز أو على الوبب، فما حقيقة الذكاء الصناعي؟ وكيف نحصل على أشياء ذكية ؟ ماهي العملية ؟ وكيف يتم ذلك ؟ هل هو سحر أم الأمر أبسط من ذلك ؟ ومتى يُعتبر الشيء ذكياً ؟ وكيف ينتج 'الذكاء' عند الآلة ؟ و غيرها من الأسئلة التي يمكن أن تتبادر إلى ذهن الفرد، سنعرض الإجابة عليها في هذا المقال!

الحقيقة إن مصطلح الذكاء الصناعي هو مصطلح يستمعل لدلالة على شيء واسع جداً، على علم واسع يتضمن مجالات كثيرة جداً:

تعريف الذكاء الاصطناعي

الذكاء الصناعي (Artificial Intelligence) عُرِّف بأنّه سلوك وخصائص معينة تتسم بها البرامج الحاسوبية تجعلها تحاكي القدرات الذهنية البشرية وأنماط عملها، ومن أهم هذه الخاصيات القدرة على التعلم والاستنتاج ورد الفعل على أوضاع لم تبرمج في الآلة.

إلا أنَّ هذا المصطلح جدلي نظراً لعدم توفر تعريف محدد للذكاء، والذكاء الاصطناعي فرع من علم الحاسوب، وتُعرِّف الكثير من المؤلفات الذكاء الاصطناعي على أنه "دراسة وتصميم العملاء الأذكياء"، والعميل الذكي هو نظام يستوعب بيئته ويتخذ المواقف التي تزيد من فرصته في النجاح في تحقيق مهمته أو مهمة فريقه، وقد صاغ عالم الحاسوب جون مكارثي هذا المصطلح بالأساس في عام 1956، وعرَّفه بنفسه بأنه "علم وهندسة صنع الآلات الذكية".

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

عمليات بسيطة و لكن التعقيد يأتي من كثرة هذه العمليات وسرعتها، و هنا تأتي قدرة الحاسوب بإعتباره في النهاية آلة حساب، فكل ما نراه من برامج ثلاثية الأبعاد و فيديوهات و صور و تعديل عليها و تحكم بالأقمار الصناعية غيرها من البرامج هي كلها في النهاية مجموعة بيانات (0/1 ) بلغة الحاسوب، يتم جمعها طرحها و ضربها و قسمتها ثم يتم تقديم نتيجة هذه الحسابات بشكل معين مفهوم للإنسان.

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

بعد إداركنا للأفكار السابقة ننتقل إلى محاكاة قدرة الإنسان على إستيعاب المحيط الذي هو فيه والتحليل و الإستنتاج بناءً على المعطايات المستقاة من المحيط الخارجي، والسؤال كيف سنجعل الحاسوب أو برامج الحاسوب تتعلم من محيطها وتتفاعل معه كما يفعل الإنسان ؟

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

ولجعل برامج الحاسوب ذكيةً وقادرةً على استيعاب محيطها و فهمِ ما يُقدَم لها من بيانات؛ تم محاكاة طريقة تعلم البشر أو لنقل الأطفال تحديداً، فتم وضع ثلاث أنماط تَعلُم للحاسب.

أنماط تعلم الحاسوب

1- التعلم المراقب

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

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

2- التعلم شبه المراقب

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

3- التعلم الآلي

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

في الحقيقة الذكاء الاصطناعي أعقد من هذا، و لكن حاولنا قدر الإمكان تبسيط الأمور، ولكي نبين مدى تعقيده يكفي أن نقول أنّه لمحاكاة قدرة طفل عمره 3 سنوات على التعرف على الصور وماتحتويه تطلب الأمر عملاً لمدة 9 سنوات كاملة من قبل أكثر من 50000 شخص بتنسيق من أكبر مختبرات العالم و أرقى الجامعات ورغم ذلك النتيجة تعتبر مقبولة.

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

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

المصادر:
1- Russell & Norvig 2003
2- Crevier 1993, p. 50
3- جون مكارثي، "ما هو الذكاء الاصطناعي؟ "
4- أطروحة دارتموث: مؤتمر دارتموث:
5- McCorduck, pp. 111-136
6- Crevier 1993, pp. 47-49
7- Russell & Norvig 2003, p. 17
8- NRC 1999, pp. 200-201