بسم الله الرحمن الرحيم اليوم إن شاء الله نبدأ
موضوع جديد، الموضوع هذا ليس جديدًا، بل هو قديم، لأنه
لما نحن نقول hybrid intelligence systems، الـ
hybrid، المقصود به أنه نحن نخلط أكثر من تقنية من
تقنيات الذكاء الاصطناعي في system واحد، والتقنيات
التي نحن نخلطها هي نفس التقنيات التي شرحناها
قبل ذلك، أو تعرّفنا عليها قبل ذلك. فالمسألة الجديدة
هي كيف عملية الـcombination، كيف how do we
combine two techniques into a system؟ في المحاضرة
هذه، إن شاء الله، نرى دمجًا ما بين two techniques،
وهما الـ neural networks
والـ rule-based expert system. والمحاضرة التي
بعدها نرى الدمج ما بين الـ fuzzy logic وما بين
الـ neural networks في system واحد. وبعدها كانت في
المحاضرات التي تليها دمج بعض التقنيات الأخرى الـ...
الـ... الدافع من وراء الدمج هو أن نستفيد من
مميزات إحدى التقنيات، ونغطي نقاط الضعف عند نقاط
التقنية الأخرى. يعني مثلًا، على سبيل المثال، الـ slide
هذه تعرض التقنيات المختلفة، تعرض التقنيات
المختلفة: ES يعني rule-based expert systems، FS
يعني fuzzy systems أو fuzzy logic، NN يعني neural
networks، وGA يعني genetic algorithms. الصحيح هنا معناه
أن هذه التقنية قوية في هذا الجانب. يعني مثلًا، الـ
rule-based expert systems قوية في knowledge
representation، لأنه زي ما عرفنا نحن أن الـ
knowledge يُعبّر عنها بشكل rules، فيه مرونة في
التعبير عن مختلف جوانب المسألة على شكل
rules. وهذا الكلام مريح، لأنه أصلاً الـ human
expert هو أصلاً ينظر إلى الأمور على شكل rules، أنه
إذا توفر هذا أو توفر هذا فنحن نستطيع أن نستنتج هذا. المهم
أنه بصفة عامة، أنا لست مضطرًا أن أمر على جميع العناصر، بل
بصفة عامة، أنا لدي تقنيات قوية في جوانب
الشيء الشائع جدًا في الـ knowledge base أن أحيانًا
تأتي المعلومة غير دقيقة أو غير clear-cut، بينما ضعيفة
في الـ adaptability والـ learning ability. الـ
learning ability، أن الـ system يتعلم من... من... في
هذا الجانب، وهو الـ learning والـ adaptability،
الـ neural networks قوية، والـ groupings قوية، فأنا
لو جئت ببساطة شديدة، ونظرت إلى الرسم، وقلت: شوف
أين الـ expert system، الـ rule-based expert system؟
ضعيفة، المربع الأبيض هذا يشير إلى أن هذه
التقنية سيئة أو ضعيفة في هذا الجانب. سنجد
أن في المقابل، neural networks قوية في نفس هذا
الجانب. الصحيح الغامق معناه is good، الصحيح الخفيف
rather good، rather good يعني شئ جيد، يعني أقل
جودة بقليل. فإذا وجدت هذا الرسم، يقترح عليّ
مواطن يمكنني أن أدمجها، يمكنني أن أدمج بين الـ rule
based expert system والـ neural network، بحيث أن مزايا
هذه تغطي على عيوب هذه، ولاحظ مزايا هذه أيضًا، ممكن
تغطي على عيوب الـ neural network، عيوب الـ neural network في الـ
knowledge representation.
في الـ neural networks ليس لدينا مرونة كبيرة في تمثيل
الـ knowledge. أمامي أيضًا، سنرى أيضًا الـ
genetic algorithm مع، لِمَ مع الـ expert system، مع
الـ rule-based expert system، لأن الـ genetic
algorithm مع الـ fuzzy، لكي تغطي جوانب الضعف في الـ fuzzy.
واضح؟ فأول مثال الذي سننظر إليه هو عبارة عن hybrid
expert system يدمج بين rule-based و neural
networks. المثال
بسيط جدًا، ندخل
على الـ neural network بشكل مباشر. لو
أنا لدي برنامج مطلوب منه أن يميّز بناءً على صور
صور تحتوي على طيور ومراكب
في البحر، الصور
نفسها تم تحليلها ببرنامج، هذا البرنامج يستخلص
مجموعة خصائص الـ object الذي في الصورة: هل له أجنحة؟
هل الـ object الذي في الصورة له ذيل؟ هل له... أيش
يعني beak؟ منقار؟ تمام؟ هل له ريش؟ هل له motor؟
آه؟ هذا motor. تخيل أنه عندي الصورة تدخل على image
analysis system أو module، جزء الـ Image Analyst.
موضوع هذا سيعطيني مجموعة... الـ features، كم
واحدة؟ تمام؟ هذه للـ Wings، وهذه للـ Tail، وهذه للـ
Beak، وهذه للـ Feathers، وهذه للـ Engine. ماذا
سيعطيني؟ سيعطيني: هل له أم لا، يعني إذا قال لي
plus one، plus one، minus one، minus one، plus one، يعني
هو يقول لي أن هذا الـ object الذي في الصورة، بعد
عملية التحليل، وجدنا أنه له wings، له tail، ليس له
beak، ليس له feather، وله engine. طبعًا لو لم يستطع
أن يتعرف على ما إذا كانت واحدة من الخصائص هذه موجودة
أم لا، يعطيني zero، بذلك يعطيني zero. هذا الـ input، هذه الخلاصة ندخلها على الـ system، هذا الـ
expert system هذا، لكي يميّز ما إذا كان الـ
object في الصورة هو عبارة عن bird
أم طائرة أم قارب شراعي (glider). تمام؟ أيش الرابط
المشترك ما بين الـ plane والـ bird والـ glider، أنه
الـ plane تشترك مع الـ bird في أنها لها أجنحة، و لها
ذيل. تمام؟ هذا الـ glider الذي له motor، والـ plane
الذي له motor. ففيه قواسم مشتركة هنا وهنا. المهم أن
نحن، هذه المنظومة كلها، أن لدينا صور، الصور
التي تدخل على image analysis module، الـ image
analysis module وظيفته أن يخرج لي الـ feature set.
هذا الـ feature set، هذا يدخل كـ input إلى من؟ إلى
knowledge-based system، لكي الـ knowledge-based
system، هذا الـ neural knowledge-based system، rule
based system، يميّز لي، يميّز الـ object الذي في الصورة.
طيب، أين الـ hybridness في الموضوع؟ أين الدمج؟ الدمج
واضح من الصورة أن لديّ هنا الـ neural network، وفي
نفس الوقت الـ neural network، الـ hidden layer
تُمثّل مجموعة الـ rules، مجموعة الـ rules التي في
الـ system. الآن، الـ rules هذه عُبرت عنها بـ 5
rules، كل rule مُعبّر عنها على شكل neuron، الـ
neuron الواحد يأخذ inputs من مختلف الـ input nodes
تَبعة الـ input layer. الـ input layer فيها الخمسة
input nodes، والتي كل واحد يقابل واحد من الخصائص
الخمسة. الآن، الـ node هذه وظيفتها هي تمثيل rule. أيش
يعني؟ يعني تعطي one أو zero، one أو zero على حسب
ما الـ input الذي يدخل إليها، كأنه نحن نقول، أو كأنه
كل واحد من الـ rules هذه الذي يقول: إذا wings
and tail and beak and... and... كذا، فـ الـ output
هيكون نعم bird أو لا، ليس bird. واضح؟ طيب، الآن نحن لسنا
نقول أنه إذا له wings وإذا له tail وإذا له
beak وإذا له feather وإذا له engine، فيكون bird.
طبعًا لا. الآن نحن نعطيها الـ inputs كلها، الخمسة،
ومن خلال عمليات الـ training، نكتشف في النهاية أن
واحدًا من الـ... أو بعضًا من الـ inputs سيكون وزنه
يُعادل zero. zero، يعني أيش؟ يعني هذا الـ
feature يُلغى أصلاً من الـ rule، والذي ليس zero هو
الذي يبقى. يعني لو وجدنا هذا ليس zero، أنت لاحظ، نحن
لماذا نقول؟ لو نظرنا إلى الأوزان هذه، الأوزان هي عبارة
عن الأوزان النهائية التي مسجلة هنا، نقول: كم
وزن الـ wings؟ كم وزن الـ
tail؟
كم وزن الـ beak؟ صحيح؟ كم وزن الـ
feathers؟ عالي أم لا؟ طبيعي جدًا أن يكون عاليًا.
ستقول: طيب، ليس معنى أن الـ wings، للطائر، لها
wings، ولماذا هذه ثمانية، ومن السالب أيضًا؟ عندك
تفسير لذلك؟ نصف وثلاثة، لا. كلما كان عاليًا، كلما
كان له وزن أكبر، وله دور أكبر في القرار، ولكن لأنه
مشتركة مع الـ plane، الـ wings مشتركة مع الـ plane،
فهي ليست determining factor، ليست عاملًا حاسمًا، إنما
الذي يحسب أكثر هو feathers، فالوزن
يضعف كلما كان هناك تشابه مع class آخر. الـ engine هنا one
point
one. فإذا كان مشتركة، أو ليس لها أهمية مثل الـ
engine، فهو يكون ضعيفًا. لأن من المهم أن نستشف أن
الـ neural network تقول لي أن rule واحد، يجب استخلاص
من هذه الـ neural network، أن rule واحد ستكون صيغته: either
beak
and feathers.
أنا عملية استخلاص rule من الـ neural network، و
أوزانها بعد عملية تدريبها. يعني في البداية تُبنَى
الأوزان هذه، initialized at random variables، من
خلال عملية التدريب. لماذا عملية التدريب؟ نحن نجلب
صورًا، أو نجلب plus، ونجلب feature sets، آه، يعني a
list أو a set of feature vectors، كل واحد من feature
vector، و نعطيها، ونقول لها: هذه الـ features، يعني
bird features، أخرى يعني plane features، ثالثة يعني
glider، وندرب على هذا الكلام حتى تستقر الأشياء
الأوزان تبعها. لأن بعد أن تستقر الأوزان، أو ترِسُو
على هذا الكلام، نستطيع أن نستخلص الـ rules من الـ
network. طبعًا أنا لست مضطرًا لاستخلاص الـ rules، ولو فعلت
أنا عمليًا، لو جلبت أي feature vector، لو جلبت أي صورة
وأخرجت منها الـ vector تبعها، feature set، وأدخلته على
الـ neural network، neural network لوحدها ستخرج يعني one
عند واحد من الثلاثة هؤلاء، و zeros عند الآخرين. ولكن أنا
أريد أن أستخلص rules، لماذا؟ لأنني أريد المزايا تبع الـ rule
based expert system. يعني أنا أُوظّف الـ neural
network تقنيةً لأصل إلى rules، ماشي؟ والـ rules
بعد ذلك، تصبح هي المحتوى تبع الـ knowledge base
الذي أريد أن يعمل الـ system عليه بعد ذلك. طبعًا، استفدت أنا
استفدت أنه في الـ rule-based expert system أنا
أحصل على أشياء مثل الـ explanation، مثلًا، عندما يكون
عندي الـ knowledge معبّر عنها على شكل rules، وفي أي
لحظة سُئِلَ سؤال: طيب، كيف استنتجت؟ أعطينا الـ
system
استنتجت أن هذا plane. لو سألت هذا السؤال
الـ neural network، لن تُعطيني، لن أستطيع أن آخذ منها تفسيرًا.
أما لو سألت الـ rule-based expert system، الـ
inference engine تبعه يستطيع تتبع تسلسل الـ
execution تبع الـ rules ويقول لي: أن نحن أو أنا
استنتجت هذا الاستنتاج بناءً على rule كذا أو rule
كذا أو rule كذا، أو بناءً على أن والله الـ rule كذا، لأن
أن الـ rule الثاني fired. واضح؟ فأنا، نقطة الضعف في
الـ neural network هي عدم القدرة على، أو لا أستطيع أن أبني
explanation منها، بينما في الـ rule-based أستطيع أن أحصل
على explanation. صحيح؟ فَنحن وجدنا أن الدمج ما بين الـ
neural network وما بين الـ rule-based inference
بحيث أن neural network ندربها لكي تعطي rules، والـ 178 00:
عشان أربعة و ثلاثة، هذه ثلاثة، وهذول اثنين مع بعض
ثلاثة و هذا الواحد، ثلاثة من عشرة، أربعة ثلاثة الآن
حط هذا في كفة و هذول في كفة الآن، لو أنا أخذت لو
أنا أخذت العنصر هذا اللي هو الثاني، واحد، و حطيته
هنا و شيلته من هنا، كده بيصير الآن مجموع
أربعة، أنا شيلت الاثنين من هنا و حطيتهما هنا. 2
في الأول كانت كفة هذا البند لحاله أقل من البنود
الأخرى، لأن صارت هذول اثنين أكبر من البند
هذول، مظهر، يبقى الثلاثة بنود الثانية وزنهم أقل، يبقى
أنا بقدر أكتفي بالبندين هذول، خد بالك، بمعنى آخر أن
إحنا بناخد البنود اللي وزنها أو الـ data
items، هتقول الـ data items بشكل الـ feature set اللي
وزنها، الـ weight تبعها أكثر من الـ... لأن وزنها
لحاله، وزنها لحاله يكفي في اتخاذ القرار، الشيء
الثاني أنه لو إنه الـ rule based system يشتغل كـ
dialogue، إيش يعني dialogue؟ يعني الـ rule، يعني أول
شيء بدنا نسأل: هل الـ object له wings؟ yes or no؟ هل
الـ object له tail؟ yes or no؟ في حالة الـ dialogue
بنبدأ الأسئلة بليش بال عناصر اللي لها وزن أكبر، يعني
ببدأ بالـ feathers، فأول سؤال بيكون أنه... فأول
سؤال، بدي أفضل بقول: هل له feathers ولا لا؟ الآن
الإجابة اللي هتجيلي، ممكن يجيلي yes، ممكن يجيلي
no، أو I don't know، لا أعلم. yes يعني plus one، و
no يعني minus one، الـ 0 يعني الـ zero. الآن في الـ
dialogue، أنا بدي أستمر في السؤال عن الـ features
واحدة واحدة، لحد ما أصبح قادر على اتخاذ القرار، أو
الـ system اللي بده يسأل لحد ما يصبح قادر. الـ feathers
لحاله ما يكفيش، الـ feathers و الـ beak لحاله ممكن يكفوا
هتلاقيها متوفرة للمعلومة بما بالسلب و بالإيجاب
احتمالا ما يكفيش، الكلام ده، فبيصير و بيصير لازم يسأل عن
الـ feature اللي بعدهم، بيضلوا يستمر لحد... دي نفس
المنطق، إن لحد دي كمية اللي معلوم لديه أصبحت أكثر
وزناً من اللي لسه مش معروف لديه، يعني الآن أنا هنا
مجرد ما إحنا سألنا عن الـ features feathers وجالي plus
one، one ضرب الوزن تبع الـ feathers بيطلع 2.8، هذا الآن
هو حتى الآن اللي معلوم، اللي مش معلوم هما باقي لسه
مش معلومين، لأن الـ dialogue إحنا ماشيين على اللي مش معلوم
الوزي تبقى 4.3، الآن بيسأل على الـ next most
important أو الـ next highest weight feature اللي
هي إيش؟ الـ beak، هل له beak؟ أي نعم، الـ beak، الـ one
مضروبة في وزنها، واللي جابها مضروبة في الـ
feathers مضروبة في وزنها، أعطاني إجمالي وزن خمسة في
المقابل، اللي unknown أصبح 2.1 زي ما توقعت، فالآن بما
أنه صار وزن أو إجمالي الوزن المعلوم أكبر من اللي ده
أصلاً ما في داعي أسأل، و أكتفي بأنه هذول الـ two
features، و قرر أنه يشبهه بهذا الاسم ده: rule one
إذا rule one أعطتني استنتاج، هتعطيني، ما أعطتنيش، ينتقل
ليش الـ reasoning أو الـ inference على rule two. rule
two هتسألني برضه على نفس الـ features، بعض من الـ
features، حكون أنا already عرفتهم من خلال الـ
dialogue، و بعضهم لسه ما عرفتش
الـ system بيجري حسابه على اللي انعرف، وإذا احتاج
يعرف أكثر بيسأل عن الباقي، وبيشتغل بهذه الطريقة، فسواء
كان إحنا بدنا نستخدم rules، rules مختصرة، أو بدنا
نخلي الـ system يشتغل dialogue، القاعدة واحدة في إنه
إحنا بنختار الـ feature، أول شيء بنبدأ بالـ features
اللي أكثر أهمية، صح؟ بمعنى اللي وزنها أعلى، و نمشي
بهذا النهج لحد ما وزن الـ features اللي أصبحت
معلومة أكبر من وزن الـ features اللي لسه مش معلومة
هذا يكفي لاتخاذ القرار تبع الـ rule الأخرى
النقطة اللي نحكي فيها هو أن ممكن أن الـ system تبعك
يكون مش بس rule based system، اللي بيدمج بين الـ neural
network وبين الـ rule based expert system، ممكن الـ
hidden يبقى
فيها أكثر من one layer، والـ rules تبقى موزعة على
عدة layers، عندك هنا مثال، هذا موزع الخمسة rules
هذول في layer، بعد ذلك أعمل layer ثانية، بعد ذلك
أعمل layer ثالثة، اللي يعني الـ layers هذه المربعة
أو الـ nodes المربعة عبارة عن disjunction، بسميها
disjunction layer، لأن اللي فيها disjunction nodes
إيش يعني disjunction؟ يعني or، و الـ conjunction
layers، يعني الـ nodes بتاعتها بتاخد الـ input بتاعهم
بـ end، تتمجمع بـ end واضح، يعني R1 بتقول لي أنه
R1 بتقول: إذا A1، الـ attribute هنا كإيه اختصار الـ
attribute؟ Attribute زيها زي الـ feature، Attribute
one and Attribute ثلاثة and Attribute ثلاثة
Attribute ثلاثة و واحد، then بي واحد، بي واحد، لأن بي
واحد تروح بس إلها وزن، فالأوزان هذه بنقدر ناخدها
نفهمها على أنها certainty factors، تذكروا الـ
certainty factors، هذه الأوزان الآن برضه من وراء
إحنا بندربها، بتيجي من خلال الـ training، صح؟ اه، يبقى
أنا الآن الـ neural network زي في المثال الأولاني
الـ neural network بتفيدني في شغلة مهمة، وهي إعطاء
الوزن بالنسبة لكل واحد من العوامل المؤثرة على الـ rule
وهذا الكلام بيجي من خلال التدريب، قبل هيك لما
ما كناش بندمج، لما كنا بنحكي عن الـ rule based لحاله
كنا من أين ناخد الـ certainty factors؟ من الـ expert
الـ expert أصلاً من أين جاب الـ certainty factors؟ من
خبرته، من خبرته السابقة، إحنا دلوقتي بنعطي خبرته على
شكل حالات سابقة، نغذيها للـ network، الـ network إيش
بتسوي؟ بتضبط الأوزان أو بتستكشف الأوزان و بتثبتها
هذه الأوزان أصبحت عبارة عن certainty factors للـ
system، فهذه disjunction
nodes بتغذي
اللي بعدها، وفي الآخر في عندي أنا هنا برضه
disjunction nodes اللي هي بتعطيني الـ output
النهائي. هذا البرنامج يتم
تدريبه، وبعد ذلك بيحصل إن يعطيني الـ output، أو إذا
قلت بأخذ الـ rules أنا و بصيغها في الـ rule based
expert system، قلنا إذا صيغتها في الـ rule based
expert system، بحصل على computation أقل، و بحصل على
explanation، صح؟ بيصير أقدر أعمل explanation، فهذا
المثال الثاني، زي ما قلنا، ممكن تبقى النورة، و هو
عملياً في الحياة العملية، تكون الشبكات بتطلب أكثر من
layer في الـ hidden ما بين الـ input و ما بين الـ
output، اسألي السؤال، طيب، توزيع الـ rules، توزيع الـ
rules هذه، مين اللي حدد إن الـ rules هذه تاخد input
واحد فقط؟ من حدد إن هذي تاخد input من A3 و A4؟ من
حدد اللي هو إيش الـ topology تبع الـ network
topology، يعني كيفية تربيط أو ربط الـ nodes ببعضها
يعني، مش معناه هذي بتاخد بس من هنا، بينما هذي بتاخد
هذا و هذا، هذا الكلام هنا في هذا المثال بيجي من الـ
human expert، تمام، الـ human expert هو اللي بيقولي
منطقياً أنا بقدر أضع الـ rule على أنها: إذا كان هذا
الـ attribute و هذا الـ attribute، بقدر أستنتج هذا
الكلام، وهذا الكلام مع الـ output اللي جاء من هنا
بقدر أستنتج هذا الكلام، واضح؟ فالـ topology أو تربية
الـ network مع بعضها في هذا المثال جايب من الـ human
expert، بس استغناء عن الـ human expert في إيش هنا؟ في
إيش؟ استغناء عن الـ human expert في الأوزان اللي هي
الـ certain، الـ certainties، من أين أجد الـ
certainties؟ من عملية التدريب، عملية تدريب للـ
network، مظبوط؟ في أمثلة أخرى إحنا ممكن عملياً كمان
نستغنى عن الـ human expert في، حتى كمان العلاقات ما
بين الـ rules، إن الـ rule
يتحدد لها الـ input تبعها من خلال عملية التدريب، طيب
ماشي، الحمد لله، إحنا هنا نكون خلصنا الحكي عن الـ
hybrid expert system اللي بيدمج بين، أو مثال على
hybrid expert system اللي بيدمج بين neural
network و ما بين الـ rule based inference، اسمه إيه؟
إيش؟ neuro expert system، أو neuro expert system
المحاضرة الجاية إن شاء الله بنشوف اللي هو الـ fuzzy
system مع الـ expert system، يعني الـ fuzzy logic مع
الـ expert system في hybrid system واحد، يعطيكم
العافية