التعلم التدريجي القائم على السكان
في علوم الحاسوب والتعلم الآلي ، يُعدّ التعلم التزايدي القائم على السكان ( PBIL ) خوارزميةً للتحسين ، وخوارزميةً لتقدير التوزيع . وهو نوع من الخوارزميات الجينية حيث يتم تطوير النمط الجيني لمجموعة سكانية كاملة ( متجه احتمالي ) بدلاً من تطوير أفرادها بشكل فردي. [ 1 ] اقترح شوميت بالوجا هذه الخوارزمية عام 1994. وتتميز هذه الخوارزمية ببساطتها مقارنةً بالخوارزمية الجينية التقليدية، وفي كثير من الحالات تُحقق نتائج أفضل منها. [ 2 ] [ 3 ] [ 4 ]
الخوارزمية
في PBIL، يتم تمثيل الجينات كقيم حقيقية في النطاق [0،1]، مما يشير إلى احتمال ظهور أي أليل معين في ذلك الجين .
خوارزمية PBIL هي كما يلي:
- يتم توليد مجموعة سكانية من متجه الاحتمالات.
- يتم تقييم لياقة كل عضو وتصنيفه.
- تحديث النمط الجيني للسكان (متجه الاحتمالية) بناءً على الفرد الأكثر ملاءمة.
- تحوّل.
- كرر الخطوات من 1 إلى 4
شفرة المصدر
هذا جزء من شفرة المصدر مكتوب بلغة جافا . في الورقة البحثية، تم استخدام القيم التالية: learnRate = 0.1، negLearnRate = 0.075، mutProb = 0.02، وmutShift = 0.05. يكفي استخدام N = 100 و ITER_COUNT = 1000 لحل مشكلة صغيرة.
public void optimize ( ) { final int totalBits = getTotalBits (); final double [] probVec = new double [ totalBits ] ; Arrays.fill ( probVec , 0.5 ); bestCost = POSITIVE_INFINITY ; for ( int i = 0 ; i < ITER_COUNT ; i ++ ) { // إنشاء N جين final boolean [ ] [] genes = new [ N ][ totalBits ] ; for ( boolean [] gene : genes ) { for ( int k = 0 ; k < gene.length ; k ++ ) { if ( rand_nextDouble ( ) < probVec [ k ] ) gene [ k ] = true ; } }// حساب التكاليف final double [ ] costs = new double [ N ] ; for ( int j = 0 ; j < N ; j ++ ) { costs [ j ] = costFunc.cost ( toRealVec ( genes [ j ] , domains )) ; }// إيجاد الجينات ذات التكلفة الدنيا والقصوى boolean [] minGene = null , maxGene = null ; double minCost = POSITIVE_INFINITY , maxCost = NEGATIVE_INFINITY ; for ( int j = 0 ; j < N ; j ++ ) { double cost = costs [ j ] ; if ( minCost > cost ) { minCost = cost ; minGene = genes [ j ] ; } if ( maxCost < cost ) { maxCost = cost ; maxGene = genes [ j ] ; } }// قارن مع الجين ذي التكلفة الأفضل إذا ( كانت التكلفة الأفضل > التكلفة الدنيا ) { التكلفة الأفضل = التكلفة الدنيا ؛ الجين الأفضل = الجين الأدنى ؛ }// تحديث متجه الاحتمالية باستخدام الجينات ذات التكلفة القصوى والدنيا for ( int j = 0 ; j < totalBits ; j ++ ) { if ( minGene [ j ] == maxGene [ j ] ) { probVec [ j ] = probVec [ j ] * ( 1d - learnRate ) + ( minGene [ j ] ? 1d : 0d ) * learnRate ; } else { final double learnRate2 = learnRate + negLearnRate ; probVec [ j ] = probVec [ j ] * ( 1d - learnRate2 ) + ( minGene [ j ] ? 1d : 0d ) * learnRate2 ; } }// طفرة for ( int j = 0 ; j < TotalBits ; j ++ ) { if ( rand . nextDouble () < mutProb ) { probVec [ j ] = probVec [ j ] * ( 1d - mutShift ) + ( rand . nextBoolean () ? 1d : 0d ) * mutShift ; } } } }انظر أيضاً
- خوارزمية تقدير التوزيع (EDA)
- نظام تصنيف التعلم (LCS)
مراجع
- ↑ كاري، فخر الدين أ.؛ دي سيلفا، كلارنس (2004)، الحوسبة المرنة وتصميم الأنظمة الذكية ، أديسون ويسلي، ISBN 0-321-11617-8
- ↑ بالوجا، شوميت (1994)، "التعلم التزايدي القائم على السكان: طريقة لدمج تحسين الوظائف القائم على البحث الجيني والتعلم التنافسي"، تقرير فني ، رقم CMU–CS–94–163، بيتسبرغ، بنسلفانيا: جامعة كارنيجي ميلون، CiteSeerX 10.1.1.61.8554
- ↑ بالوجا، شوميت؛ كاروانا، ريتش (1995)، إزالة علم الوراثة من الخوارزمية الجينية القياسية ، دار نشر مورغان كوفمان، الصفحات 38-46 ، CiteSeerX 10.1.1.44.5424
- ↑ بالوجا، شوميت (1995)، مقارنة تجريبية لسبع طرق استدلالية لتحسين الدوال التكرارية والتطورية ، CiteSeerX 10.1.1.43.1108
- الخوارزميات الجينية
