التعلم التدريجي القائم على السكان

في علوم الحاسوب والتعلم الآلي ، يُعدّ التعلم التزايدي القائم على السكان ( PBIL ) خوارزميةً للتحسين ، وخوارزميةً لتقدير التوزيع . وهو نوع من الخوارزميات الجينية حيث يتم تطوير النمط الجيني لمجموعة سكانية كاملة ( متجه احتمالي ) بدلاً من تطوير أفرادها بشكل فردي. [ 1 ] اقترح شوميت بالوجا هذه الخوارزمية عام 1994. وتتميز هذه الخوارزمية ببساطتها مقارنةً بالخوارزمية الجينية التقليدية، وفي كثير من الحالات تُحقق نتائج أفضل منها. [ 2 ] [ 3 ] [ 4 ]

الخوارزمية

في PBIL، يتم تمثيل الجينات كقيم حقيقية في النطاق [0،1]، مما يشير إلى احتمال ظهور أي أليل معين في ذلك الجين .

خوارزمية PBIL هي كما يلي:

  1. يتم توليد مجموعة سكانية من متجه الاحتمالات.
  2. يتم تقييم لياقة كل عضو وتصنيفه.
  3. تحديث النمط الجيني للسكان (متجه الاحتمالية) بناءً على الفرد الأكثر ملاءمة.
  4. تحوّل.
  5. كرر الخطوات من 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 ; } } } }

انظر أيضاً

مراجع

  1. كاري، فخر الدين أ.؛ دي سيلفا، كلارنس (2004)، الحوسبة المرنة وتصميم الأنظمة الذكية ، أديسون ويسلي، ISBN 0-321-11617-8
  2. بالوجا، شوميت (1994)، "التعلم التزايدي القائم على السكان: طريقة لدمج تحسين الوظائف القائم على البحث الجيني والتعلم التنافسي"، تقرير فني ، رقم CMU–CS–94–163، بيتسبرغ، بنسلفانيا: جامعة كارنيجي ميلون، CiteSeerX 10.1.1.61.8554  
  3. بالوجا، شوميت؛ كاروانا، ريتش (1995)، إزالة علم الوراثة من الخوارزمية الجينية القياسية ، دار نشر مورغان كوفمان، الصفحات 38-46 ، CiteSeerX 10.1.1.44.5424  
  4. بالوجا، شوميت (1995)، مقارنة تجريبية لسبع طرق استدلالية لتحسين الدوال التكرارية والتطورية ، CiteSeerX 10.1.1.43.1108