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

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

استمرارًا لتدريب الذكاء الاصطناعي في MATLAB، سنناقش في هذا المقال التكتل الهرمي. البيانات المستخدمة في هذا المثال، مثل الأمثلة التي تم حلها من قبل، تتضمن (Iris Dataset). K-Means تجميع بيانات قزحية “أقسام”. ولكن إذا أردنا أيضًا فحص مقاييس مختلفة للتجميع في البيانات، فإن التجميع الهرمي يسمح لنا بالقيام بذلك عن طريق إنشاء شجرة هرمية من المجموعات.

أولاً، نقوم بإنشاء شجرة تجميع باستخدام المسافات بين الملاحظات واستخدام مقياس المسافة الإقليدية في البيانات.

eucD = pdist(meas,'euclidean');

clustTreeEuc = linkage(eucD,'average');

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

cophenet(clustTreeEuc,eucD)

الإجابة تساوي 0.8770. يمكننا استخدام مخطط الأسنان لتصور المجموعات الهرمية.

[h,nodes] = dendrogram(clustTreeEuc,0);

h_gca = gca;

h_gca.TickDir = 'out';

h_gca.TickLength = [.002 0];

h_gca.XTickLabel = [];

إخراج الكود أعلاه سوف يرسم مخطط الأسنان كما هو موضح أدناه.

الذكاء الاصطناعي في MATLAB

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

cosD = pdist(meas,'cosine');

clustTreeCos = linkage(cosD,'average');

cophenet(clustTreeCos,cosD)

الإجابة تساوي 0.9360.

[h,nodes] = dendrogram(clustTreeCos,0);

h_gca = gca;

h_gca.TickDir = 'out';

h_gca.TickLength = [.002 0];

h_gca.XTickLabel = [];

رسم مخطط الأسنان من حيث معيار جيب التمام على النحو التالی.

الذكاء الاصطناعي في MATLAB

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

[h,nodes] = dendrogram(clustTreeCos,12);

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

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

[sum(ismember(nodes,[11 12 9 10])) sum(ismember(nodes,[6 7 8])) ...

sum(ismember(nodes,[1 2 4 3])) sum(nodes==5)]

سيكون إخراج الكود أعلاه على النحو التالي:

ans =

54 46 49 1

لأغراض عديدة، قد يكون مخطط الأسنان نتيجة كافية.

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

hidx = cluster(clustTreeCos,'criterion','distance','cutoff',.006);

for i = 1:5

clust = find(hidx==i);

plot3(meas(clust,1),meas(clust,2),meas(clust,3),ptsymb{i});

hold on

end

hold off

xlabel('Sepal Length');

ylabel('Sepal Width');

zlabel('Petal Length');

view(-137,10);

grid on

إخراج الكود أعلاه لرسم مخطط مبعثر التجميع هو كما يلي.

الذكاء الاصطناعي في MATLAB

يوضح هذا الرسم البياني أن نتائج المجموعات الهرمية مع مسافة جيب التمام مماثلة نوعيا لنتائج K-Means بما في ذلك ثلاث مجموعات. إنشاء شجرة مجموعات هرمية له بعض المزايا. في k-mean clustering، هناك حاجة لإجراء تجارب مهمة مع قيم مختلفة لـ K، والتي يمكن تسهيلها في وقت واحد من خلال توضيح مخطط شجرة dendogram.

يسمح لنا التجميع الهرمي أيضًا بتجربة روابط مختلفة. على سبيل المثال، تجميع بيانات الزنبق باستخدام رابط واحد او (Single Linkage)، والذي يميل إلى ربط الكائنات على مسافات أكبر من متوسط ​​المسافة، له تفسير مختلف تمامًا لهيكل البيانات.

clustTreeSng = linkage(eucD,'single');

[h,nodes] = dendrogram(clustTreeSng,0);

h_gca = gca;

h_gca.TickDir = 'out';

h_gca.TickLength = [.002 0];

h_gca.XTickLabel = [];

رسم مخطط الأسنان بوصلة واحدة في إخراج الكود أعلاه كما يلي.

الذكاء الاصطناعي في MATLAB باستخدام الخوارزمية الجينية

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

مشكلة التحسين المقيدة في MATLAB

في هذه المشكلة، الوظيفة الموضوعية التي نريد تصغيرها هي دالة بسيطة تحتوي على المتغير التربيعي x.

simple_objective(x) = (4 - 2.1*x(1)^2 + x(1)^4/3)*x(1)^2 + x(1)*x(2) + (-4 + 4*x(2)^2)*x(2)^2;

تشمل الحدود والقيود غير الخطية في هذه المشكلة ما يلي.

الذكاء الاصطناعي في MATLAB

تطوير الكود لوظيفة التركيب في MATLAB

نقوم بإنشاء ملف MATLAB باسم simple_objective.m يحتوي على الكود التالي.

type simple_objective

من خلال تشغيل الكود أعلاه، سيكون لدينا المخرجات التالية.

الذكاء الاصطناعي في MATLAB

يقبل ga مُدخلًا باسم x، حيث تكون عناصر x مساوية لحجم عدد المتغيرات في المشكلة. تحسب الدالة target القيمة العددية للدالة الهدف وتعيدها في وسيطة الإخراج y.

تطوير كود لوظيفة ظرفية في MATLAB

نقوم بإنشاء ملف MATLAB باسم simple_constraint.m يحتوي على الكود التالي.

type simple_constraint

من خلال تنفيذ كود المشكلة، سيكون لدينا المخرجات التالية.

تحسب دالة القيد قيم جميع قيود عدم المساواة والمساواة وترجع المتجهين c و ceq على التوالي. تمثل قيمة c قيود عدم المساواة غير الخطية التي يحاول المحلل جعلها مساوية للصفر أو أقل منه. تشير قيمة ceq إلى قيود المساواة غير الخطية التي يحاول المحلل تعيينها مساوية للصفر. هذا المثال ليس له شرط مساواة غير خطية ، لذلك [] = ceq.

التقليل باستخدام الخوارزمية الجينية في MATLAB

نحدد الوظيفة الهدف كمقبض وظيفة.

ObjectiveFunction = @simple_objective;

نحدد حدود المشكلة.

ConstraintFunction = @simple_constraint;

نحدد عدد متغيرات المشكلة.

nvars = 2;

نسمي حلالا ونطلب النقطة المثلى x وقيمة الوظيفة عند النقطة المثلى fval.

nvars = 2;

من خلال تنفيذ الكود أعلاه، نرى قيم x و fval في الإخراج.

الذكاء الاصطناعي في MATLAB

توضيح

لمعرفة تقدم الحل، نختار وظيفتين للرسم البياني. ترسم دالة الرسم gaplotbestf أفضل قيمة للدالة الهدف في كل تكرار، وترسم وظيفة الرسمgaplotmaxconstr الحد الأقصى لانتهاك القيد في كل تكرار. قمنا بتعيين هاتين الوظيفتين لرسم الرسم البياني في “صفيف الخلية”. أيضًا، من خلال تعيين خيار العرض على “iter”، نعرض معلومات حول تقدم الحلول في نافذة الأوامر.

[x,fval] = ga(ObjectiveFunction,nvars,[],[],[],[],lb,ub, ...

ConstraintFunction,options)

من خلال تشغيل الكود أعلاه، سيكون لدينا المخرجات التالية.

ويمكن رؤية الحل الأمثل والحد الأقصى للقيود للأجيال المختلفة على النحو التالي.

الذكاء الاصطناعي في MATLAB

ويتم حساب قيم x و fval على النحو التالي.

الذكاء الاصطناعي في MATLAB

توفر الخوارزمية الجينية تفاصيل حول نوع المشكلة وعوامل الإنشاء والتقاطع والطفرة والاختيار في كل تكرار.

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

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

يستخدم ga وظائف الطفرات والتقاطع لتوليد أفراد جدد في كل جيل. يفي ga بالقيود الخطية والمحدودة باستخدام وظائف الانتقال والتقاطع لإنشاء نقاط مجدية او Feasible. وظيفة الطفرة الافتراضية لـ ga في المشكلات غير المقيدة هي وظيفة الطفرة الغوسية، والتي لا تفي بقيود الخطية، لذا فإن ga تتخلف عن دالة الطفرة القابلة للتكيف بدلاً من ذلك. إذا كانت لدينا وظيفة انتقال مخصصة، فيمكن لهذه الوظيفة المخصصة فقط إنشاء نقاط “مجدية” وفقًا للقيود الخطية والمحدودة. تقوم جميع وظائف التقاطع في صندوق الأدوات بإنشاء نقاط تفي بالقيود والحدود الخطية.

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

نقطة انطلاق

لتسريع الحل، يمكننا توفير عدد سكان أولي في خيار InitialPopulationMatrix. يستخدم ga السكان الأوليين لبدء التحسين. نحدد متجه صف أو مصفوفة حيث يمثل كل صف نقطة بداية.

X0 = [0.8 12.5]; % Start point (row vector)

options.InitialPopulationMatrix = X0;

[x,fval] = ga(ObjectiveFunction,nvars,[],[],[],[],lb,ub, ...

ConstraintFunction,options)

من خلال تنفيذ الكود أعلاه، سيكون لدينا المخرجات التالية لاقتراح السكان الأولي.

الذكاء الاصطناعي في MATLAB

ويتم حساب الحل الأمثل والحد الأقصى للقيد للأجيال المختلفة على النحو التالي.

يتم حساب المخرجات على النحو التالي.

x = 1×2

0.8122 12.3104

fval = 9.1269e+04

نلاحظ أنه في هذا المثال، لا يؤدي توفير نقطة بداية إلى تغيير جوهري في تقدم الحل.

أسئلة شائعة ومتكررة

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

لماذا تعتبر MATLAB أداة مناسبة للذكاء الاصطناعي؟

لدى MATLAB عدة طرق للتفاعل ونقل البيانات بين أطر التعلم العميق. يدعم MATLAB ONNX لاستيراد وتصدير النماذج في أطر أخرى. على سبيل المثال، يمكن استيراد نموذج مصمم في PyTorch إلى MATLAB، ويمكن تصدير النماذج المدربة في MATLAB باستخدام إطار عمل ONNX.

كيف يتم استخدام MATLAB في الذكاء الاصطناعي؟

تقدم MATLAB نفس الإمكانات التي توفرها أدوات الذكاء الاصطناعي المخصصة مثل Caffe و TensorFlow، والأهم من ذلك، تتيح لك MATLAB دمج الذكاء الاصطناعي في سير عمل كامل لتطوير نظام مصمم بالكامل. نموذج الذكاء الاصطناعي هو جزء واحد فقط من سير العمل الكامل لتطوير نظام مصمم بالكامل.

ما هو مواعدة MATLAB ؟

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

أين هو MATLAB الأكثر استخداما؟

تتضمن بعض أهم تطبيقات MATLAB ما يلي.

ميكاترونكس

  • الاختبار والقياس
  • علم الأحياء الحسابي والتمويل الحسابي
  • الروبوتية
  • تحليل البيانات
  • إصلاحات متوقعة
  • التحكم في المحرك والقوة
  • تعلم عميق

استنتاج

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

منشور ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

السلة