Your Federal Quarterly Tax Payments are due April 15th

# algorithms by Ombody

VIEWS: 5 PAGES: 9

• pg 1
```									                      ‫ﺧﻮارزﻣﯿﺔ ‪Back propagation‬‬

‫3‪h‬‬
‫11‪W‬‬
‫1‪X‬‬
‫1‬          ‫21‪W‬‬
‫1‪h‬‬         ‫01‪W‬‬

‫‪O‬‬
‫12‪W‬‬              ‫4‪h‬‬                          ‫‪N‬‬
‫02‪W‬‬
‫2‪X‬‬                   ‫22‪W‬‬
‫2‬                           ‫2‪h‬‬
‫ﻃﺒﻘﺔ اﻟﻤﺨﺮﺟﺎت‬

‫ﻃﺒﻘﺔ اﻟﻤﺪﺧﻼت‬                ‫اﻟﻄﺒﻘﺔ اﻟﺨﻔﯿﺔ‬

‫ﺧﻠﯿﺔ اﻟﺘﻐﺬﯾﺔ اﻟﺮاﺟﻌﺔ ‪Back propagation‬‬

‫1- ﻛﺘﺎﺑﺔ اﻟﺪوال اﻟﻤﻜﺘﺒﯿﺔ اﻟﻼزﻣﺔ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ‬
‫2- ﻛﺘﺎﺑﺔ ﻋﺒﺎرة ﺑﺪاﯾﺔ اﻟﺒﺮﻧﺎﻣﺞ )( ‪main‬‬
‫3- ﻛﺘﺎﺑﺔ ﻗﻮس ﺑﺪاﯾﺔ اﻟﺒﺮﻧﺎﻣﺞ {‬
‫4- ﺗﻌﺮﯾﻒ اﻟﻤﺘﻐﯿﺮات اﻟﻼزﻣﺔ ﻓﻲ اﻟﻌﻤﻞ وﻛﻤﺎ ﯾﻠﻲ :‬
‫;‪int w11,w12,w21,w22,w10,w20,I,j‬‬
‫;2‪real h1,h2,n,eo,eh1,eh‬‬
‫5- اﻋﻄﺎء ﻗﯿﻢ ﻋﺸﻮاﺋﯿﺔ ﻟﻼوزان ‪ w‬وذﻟﻚ ﺑﻮاﺳﻄﺔ داﻟﺔ ‪random‬‬
‫6- ﺗﻌﺮﯾﻒ ﻣﻌﺎﻣﻞ اﻟﺘﻌﻠﻢ واﻋﻄﺎﺋﮫ ﻗﯿﻤﺔ 1=‪a‬‬
‫7- ادﺧﺎل ﻣﺼﻔﻮﻓﺔ ﺗﻤﺜﻞ ﻣﺪﺧﻼت وﻣﺨﺮﺟﺎت اﻟﺒﻮاﺑﺔ اﻟﻤﻨﻄﻘﯿﺔ اﻟﺘﻲ ﺗﻢ اﻟﺘﺪرب‬
‫ﻋﻠﯿﮭﺎ وﺗﻜﻮن ﻛﻤﺎ ﯾﻠﻲ ]3[]4[‪x‬‬
‫8- ﻛﺘﺎﺑﺔ دوارة اﻟﻤﺼﻔﻮﻓﺔ وﻛﻤﺎ ﯾﻠﻲ :‬
‫)++‪for (i=0; i<4 ;i‬‬
‫)++‪for (j=0; i<3 ;j‬‬

‫9- ﺗﻤﺮﯾﺮ اﻟﻤﺪﺧﻼت ﻋﻠﻰ اﻟﺸﺒﻜﺔ وﺻﻮﻻً اﻟﻰ ﻃﺒﻘﺔ اﻟﻤﺨﺮﺟﺎت وذﻟﻚ ﺣﺴﺐ‬
‫اﻟﻘﻮاﻧﯿﻦ اﻟﺘﺎﻟﯿﺔ :‬
‫2‪h1=w11*x1+w21*x‬‬
‫2‪h2=w12*x1+w22*x‬‬
‫1‪h3=1/1+e-h‬‬
‫2‪h4=1/1+e-h‬‬
‫6- اﻟﺤﺼﻮل ﻋﻠﻰ ﻣﺠﻤﻮع اﻟﻤﺪﺧﻼت اﻟﺘﻲ ﺗﺪﺧﻞ ﻃﺒﻘﺔ اﻟﻤﺨﺮﺟﺎت وذﻟﻚ ﻣﻦ ﺧﻼل‬
‫اﻟﻘﺎﻧﻮن اﻟﺘﺎﻟﻲ :-‬

‫1‬
‫4‪N=w10*h3+w20*h‬‬
‫7- اﺳﺘﺨﺮاج ﻗﯿﻤﺔ اﻟﻤﺨﺮج اﻟﻔﻌﻠﻲ ) اﻟﻨﺎﺗﺞ ( ﻟﻠﺸﺒﻜﺔ وذﻟﻚ ﻛﻤﺎ ﯾﻠﻲ :‬
‫‪-N‬‬
‫‪O=1/1+e‬‬
‫8- ﻣﻘﺎرﻧﺔ اﻟﻤﺨﺮج اﻟﻔﻌﻠﻲ ) اﻟﻨﺎﺗﺞ ( ﻣﻊ اﻟﻤﺨﺮج اﻟﻤﻄﻠﻮب وﻋﻨﺪ اﻛﺘﺸﺎف ﺧﻄﺄ‬
‫ﺑﯿﻦ اﻟﻤﻘﺎرﻧﺘﯿﻦ ﻓﻔﻲ ھﺬه اﻟﺤﺎﻟﺔ ﻓﺎﻧﻨﺎ ﻧﺤﺘﺎج اﻟﻰ ﺗﻌﺪﯾﻞ اﻻوزان وﺗﺤﺪﯾﺪ ﻣﻘﺪار‬
‫اﻟﺨﻄﺄ وﻛﻤﺎ ﯾﻠﻲ :-‬
‫)‪eo=(T-O) * O* ( 1- O‬‬
‫9- ﺗﻌﺪﯾﻞ اﻻوزان اﻟﺘﻲ ﺗﺮﺑﻂ ﺑﯿﻦ ﻃﺒﻘﺔ اﻟﻤﺨﺮﺟﺎت واﻟﻄﺒﻘﺔ اﻟﺨﻔﯿﺔ وذﻟﻚ ﺑﻮاﺳﻄﺔ‬
‫اﻟﻘﻮاﻧﯿﻦ اﻟﺘﺎﻟﯿﺔ :-‬
‫3‪W10new=W10old+a*eo*h‬‬
‫3‪W20new=W20old+a*eo*h‬‬
‫01- ﻧﺴﺘﻤﺮ ﻋﻠﻰ ﻧﻔﺲ اﻟﻄﺮﯾﻘﺔ ﻟﻜﻦ ھﺬه اﻟﻤﺮة ﺑﯿﻦ اﻟﻄﺒﻘﺔ اﻟﺨﻔﯿﺔ وﻃﺒﻘﺔ اﻟﻤﺪﺧﻼت‬
‫‪eh1=h3(1-h3)*w10*eo‬‬
‫‪eh2=h4(1-h4)*w20*eo‬‬
‫11- وﺑﻌﺪ اﻛﺘﺸﺎف اﻟﺨﻄﺄ ﯾﺘﻢ ﺗﻌﺪﯾﻞ اﻻوزان وﻛﻤﺎ ﯾﻠﻲ:‬
‫1‪W11new=W11old+a*eh1*X‬‬
‫1‪W12new=W12old+a*eh2*X‬‬
‫2‪W21new=W21old+a*eh1*X‬‬
‫2‪W22new=W22old+a*eh21*X‬‬                                 ‫21- ﻧﮭﺎﯾﺔ اﻟﺨﻮارزﻣﯿﺔ.‬

‫ﻣﻼﺣﻈﺔ ﻣﮭﻤﺔ // ان ﻗﯿﻤﺔ ﻣﻌﺎﻣﻞ اﻟﺘﻌﻠﻢ اﻟﺪﻗﯿﻘﺔ ھﻲ اﻟﻨﺼﻒ اي = 5.0‬

‫2‬
‫ﻣﺜﺎل \\ ﻗﻢ ﺑﺘﺪرﯾﺐ ﺷﺒﻜﺔ ‪ Back propagation‬ﻟﻠﺘﻌﻠﻢ ﻋﻠﻰ ﻣﺪﺧﻼت وﻣﺨﺮﺟﺎت‬
‫ﺑﻮاﺑﺔ ‪ OR‬ﻋﻠﻤﺎً ان ﻣﻌﺎﻣﻞ اﻟﺘﻌﻠﻢ 1 واﻻوزان ﻋﺸﻮاﺋﯿﺔ.‬

‫1‪x‬‬   ‫‪x2 T‬‬                         ‫ﺳﻮف ﻧﺪرب اﻟﺼﻒ اﻻول ﻣﻦ اﻟﺒﻮاﺑﺔ‬
‫0‬    ‫0 0‬
‫0‬    ‫1 1‬
‫1‬    ‫1 0‬
‫1‬    ‫1 1‬
‫0=1‪x‬‬   ‫1=02‪x2=0 , T=0 , w11=1 , w12=0 , w21=0 , w22=1, w10=1, w‬‬

‫* ﻟﻜﻲ ﻧﺪرب اﻟﺨﻠﯿﺔ اﻟﻤﻄﻠﻮﺑﺔ ﯾﺠﺐ ان ﻧﻌﺮف ﺑﻌﺾ اﻟﻤﺼﻄﻠﺤﺎت اﻟﺘﺎﻟﯿﺔ:‬
‫-1- 1‪ : h‬ﯾﻤﺜﻞ ﻣﺠﻤﻮع اﻟﻤﺪﺧﻼت ﻟﻠﺨﻠﯿﺔ اﻻوﻟﻰ ﺿﻤﻦ اﻟﻄﺒﻘﺔ اﻟﺨﻔﯿﺔ .‬
‫-2- 2‪ : h‬ﯾﻤﺜﻞ ﻣﺠﻤﻮع اﻟﻤﺪﺧﻼت ﻟﻠﺨﻠﯿﺔ اﻟﺜﺎﻧﯿﺔ ﺿﻤﻦ اﻟﻄﺒﻘﺔ اﻟﺨﻔﯿﺔ .‬
‫-3- 3‪ : h‬ﯾﻤﺜﻞ ﻣﺨﺮج اﻟﺨﻠﯿﺔ اﻻوﻟﻰ ﻣﻦ اﻟﻄﺒﻘﺔ اﻟﺨﻔﯿﺔ .‬
‫-4- 4‪ : h‬ﯾﻤﺜﻞ ﻣﺨﺮج اﻟﺨﻠﯿﺔ اﻻوﻟﻰ ﻣﻦ اﻟﻄﺒﻘﺔ اﻟﺨﻔﯿﺔ‬
‫-5- ‪ : N‬ﻣﺠﻤﻮع ﻣﺪﺧﻼت ﺧﻠﯿﺔ ﻃﺒﻘﺔ اﻟﻤﺨﺮﺟﺎت .‬
‫-6- ‪ : O‬ﯾﻤﺜﻞ اﻟﻤﺨﺮج اﻟﻔﻌﻠﻲ ﻟﻠﺨﻠﯿﺔ‬
‫-7- ‪ : T‬اﻟﻤﺨﺮج اﻟﻤﻄﻠﻮب ﻟﻠﺨﻠﯿﺔ‬

‫* ﺳﻮف ﻧﺒﺪا اﻟﺤﻞ وﺣﺴﺐ اﻟﺨﻮارزﻣﯿﺔ :-‬
‫1- ﺗﻤﺮﯾﺮ اﻟﻤﺪﺧﻼت ﻋﻠﻰ اﻟﺸﺒﻜﺔ وﺻﻮﻻً اﻟﻰ ﻃﺒﻘﺔ اﻟﻤﺨﺮﺟﺎت وذﻟﻚ ﺣﺴﺐ اﻟﻘﺎﻧﻮن‬
‫اﻟﺘﺎﻟﻲ :‬
‫2‪h1= w11* x1+ w21 * x‬‬
‫0 * 0 + 0 *1 =‬
‫0=‬
‫2‪h2= w12* x1 +w22 * x‬‬
‫0*1+0*0=‬
‫0 =‬
‫1‪h3 = 1/1+e-h‬‬
‫0-‪= 1/1+e‬‬
‫5.0 =‬
‫2‪h4 = 1/1+e-h‬‬
‫0-‪= 1/1+e‬‬
‫5.0 =‬
‫2- اﻟﺤﺼﻮل ﻋﻠﻰ ﻣﺠﻤﻮع اﻟﻤﺪﺧﻼت اﻟﺘﻲ ﺗﺪﺧﻞ ﻃﺒﻘﺔ اﻟﻤﺨﺮﺟﺎت وذﻟﻚ ﻣﻦ ﺧﻼل‬
‫اﻟﻘﺎﻧﻮن اﻟﺘﺎﻟﻲ :-‬
‫4‪N= w10* h3 + w20 * h‬‬

‫3‬
‫5.0 * 1 + 5.0 *1 =‬
‫1=‬
‫3- اﺳﺘﺨﺮاج ﻗﯿﻤﺔ اﻟﻤﺨﺮج اﻟﻔﻌﻠﻲ ) اﻟﻨﺎﺗﺞ ( ﻟﻠﺸﺒﻜﺔ وذﻟﻚ ﻛﻤﺎ ﯾﻠﻲ :‬
‫‪-N‬‬
‫‪O=1/1+e‬‬
‫1-‪= 1/1+e‬‬
‫60137.0 - =‬
‫4- ﻣﻘﺎرﻧﺔ اﻟﻤﺨﺮج اﻟﻔﻌﻠﻲ ) اﻟﻨﺎﺗﺞ ( ﻣﻊ اﻟﻤﺨﺮج اﻟﻤﻄﻠﻮب وﻋﻨﺪ اﻛﺘﺸﺎف ﺧﻄﺄ ﺑﯿﻦ‬
‫اﻟﻤﻘﺎرﻧﺘﯿﻦ ﻓﻔﻲ ھﺬه اﻟﺤﺎﻟﺔ ﻓﺎﻧﻨﺎ ﻧﺤﺘﺎج اﻟﻰ ﺗﻌﺪﯾﻞ اﻻوزان وﺗﺤﺪﯾﺪ ﻣﻘﺪار اﻟﺨﻄﺄ‬
‫وﻛﻤﺎ ﯾﻠﻲ :-‬
‫)‪eo=(T-O) * O* ( 1- O‬‬
‫)) 60137.0 -( -1 ( * ) 60137.0 - ( * )60137.0 - ( – 0( =‬
‫)ﻣﻘﺪار ﻧﺴﺒﺔ اﻟﺨﻄﺎ ﺑﯿﻦ اﻟﻤﺨﺮج اﻟﻤﻄﻠﻮب واﻟﻤﺨﺮج اﻟﻔﻌﻠﻲ ( 37341 .0 - =‬

‫5- ﺑﻌﺪ اﻛﺘﺸﺎف اﻟﺨﻄﺎ ﻓﺎﻧﮫ ﺳﻮف ﯾﺘﻢ ﺗﻌﺪﯾﻞ اﻻوزان اﻟﺘﻲ ﺗﺮﺑﻂ ﺑﯿﻦ ﻃﺒﻘﺔ‬
‫اﻟﻤﺨﺮﺟﺎت واﻟﻄﺒﻘﺔ اﻟﺨﻔﯿﺔ وذﻟﻚ ﺑﻮاﺳﻄﺔ اﻟﻘﻮاﻧﯿﻦ اﻟﺘﺎﻟﯿﺔ :-‬
‫3‪W10new=W10old+ a * eo *h‬‬
‫5.0 * ) 37341.0- ( * 1 + 1 =‬
‫31829.0 =‬
‫3‪W20new=W20old+a*eo*h‬‬
‫5.0 * ) 37341.0- ( * 1 + 1 =‬
‫31829.0 =‬
‫6- ﻧﺴﺘﻤﺮ ﻋﻠﻰ ﻧﻔﺲ اﻟﻄﺮﯾﻘﺔ ﻟﻜﻦ ھﺬه اﻟﻤﺮة ﺑﯿﻦ اﻟﻄﺒﻘﺔ اﻟﺨﻔﯿﺔ وﻃﺒﻘﺔ اﻟﻤﺪﺧﻼت‬

‫‪eh1=h3(1-h3)*w10*eo‬‬
‫) 37341.0- ( * 31829.0 * ) 5.0 -1 ( 5.0 =‬
‫53330.0 =‬
‫‪eh2=h4(1-h4)*w20*eo‬‬
‫) 37341.0- ( * 31829.0 * ) 5.0 -1 ( 5.0 =‬
‫53330.0 =‬

‫7- وﺑﻌﺪ اﻛﺘﺸﺎف اﻟﺨﻄﺄ ﯾﺘﻢ ﺗﻌﺪﯾﻞ اﻻوزان وﻛﻤﺎ ﯾﻠﻲ:‬
‫1‪W11new =W11old+a*eh1*X‬‬
‫0 * 53330.0 *1 +1 =‬
‫1=‬
‫1‪W12new=W12old+a*eh2*X‬‬
‫0 * 53330.0 *1+ 0 =‬
‫0=‬

‫4‬
‫2‪W21new=W21old+a*eh1*X‬‬
‫0 * 53330.0 * 1+ 0 =‬
‫0=‬
‫2‪W22new=W22old+a*eh21*X‬‬
‫0 * 53330.0 * 1 + 1 =‬
‫1=‬

‫ﻣﻼﺣﻈﺔ //* اﻻوزان اﻟﺠﺪﯾﺪة ﻟﻢ ﺗﺘﻐﯿﺮ وذﻟﻚ ﺑﺴﺒﺐ اﻟﻤﺪﺧﻼت اﻟﺼﻔﺮﯾﺔ ) 2‪( x1 , x‬‬
‫وﻟﻜﻦ اﻟﻮﺿﻊ ﺳﻮف ﯾﺘﻐﯿﺮ ﻣﻊ ﺑﻘﯿﺔ اﻟﻤﺪﺧﻼت .‬

‫* رﺑﻤﺎ ﺗﻜﻮن ﺑﻌﺾ اﻟﻨﺘﺎﺋﺞ ﻏﯿﺮ ﻣﻀﺒﻮﻃﺔ وﻟﻜﻦ اﻟﻤﮭﻢ ھﻮ ﻓﮭﻢ ﻋﻤﻞ اﻟﺨﻠﯿﺔ اﻟﻌﺼﺒﯿﺔ‬
‫وﻛﯿﻔﯿﺔ ﺗﻌﺎﻣﻠﮭﺎ ﻣﻊ اﻟﻤﺪﺧﻼت واﻟﻤﺨﺮﺟﺎت .‬

‫*ﺗﺘﻮﻗﻒ ﻋﻤﻠﯿﺔ اﻟﺘﺪرﯾﺐ ﻋﻨﺪﻣﺎ ﺗﺼﺒﺢ اﻟﻨﺘﯿﺠﺔ اﻟﻨﺎﺗﺠﺔ ﻣﻦ اﻟﺘﺪرﯾﺐ ﻣﻄﺎﺑﻘﺔ إﻟﻰ اﻟﻨﺘﯿﺠﺔ‬
‫اﻷﺻﻠﯿﺔ أي : ‪T=O‬‬

‫5‬
‫ﺧﻮارزﻣﯿﺔ ‪Hopfield‬‬

‫ھﺬه اﻟﺨﻮارزﻣﯿﺔ ﺳﻮف ﯾﺘﻢ اﻟﺘﻌﺎﻣﻞ ﻣﻌﮭﺎ ﻋﻠﻰ اﺳﺎس رﺳﻤﮭﺎ ﻓﻘﻂ ﻓﺨﻠﯿﺔ ‪Hopfield‬‬
‫ﻟﮭﺎ ﺧﺎﺻﯿﺔ ﺗﻮزﯾﻊ اﻟﻤﺪﺧﻼت ﻋﻠﻰ ﺟﻤﯿﻊ اﻟﺨﻼﯾﺎ اﻟﻤﻮﺟﻮدة ﻣﻌﮭﺎ وﻟﻜﻦ ﻻﺗﻌﻄﻲ ﻟﻨﻔﺴﮭﺎ‬
‫اي ﻣﺪﺧﻞ وھﻜﺬا ﺑﻘﯿﺔ اﻟﺨﻼﯾﺎ اﻟﻤﻘﺎﺑﻠﺔ ﻟﮭﺎ ) اي ﯾﺘﻢ ﺗﺒﺎدل اﻟﻤﺪﺧﻼت ﺑﯿﻨﮭﺎ ( وﯾﻤﻜﻦ‬
‫وﺿﻊ ﺧﻮارزﻣﯿﺔ ﺑﺴﯿﻄﺔ ﻟﮭﺎ وﻛﻤﺎ ﯾﻠﻲ :‬

‫1- ﻛﺘﺎﺑﺔ اﻟﺪوال اﻟﻤﻜﺘﺒﯿﺔ اﻟﻼزﻣﺔ وﻣﻦ اھﻤﮭﺎ ﻣﻜﺘﺒﺔ اﻟﺮﺳﻢ ) ‪( graphics‬‬
‫2- وﺿﻊ ﻋﺒﺎرة )( ‪ main‬وﻗﻮس اﻟﺒﺪاﯾﺔ {‬
‫3- ﺗﻌﺮﯾﻒ ﻣﺤﺮﻛﺎت اﻟﺮﺳﻢ وﻛﻤﺎ ﯾﻠﻲ :‬
‫‪int gdriver = DETECT ,gmode , errorcode‬‬
‫) ‪initgraph ( &gdriver , &gmode‬‬
‫4- ﺗﻌﺮﯾﻒ اﺣﺪاﺛﯿﺎت اﻟﺪاﺋﺮة ) اﻟﺘﻲ ﺗﻤﺜﻞ اﻟﺨﻠﯿﺔ اﻟﻌﺼﺒﯿﺔ ( واﺣﺪاﺛﯿﺎت اﻟﻤﺴﺘﻘﯿﻢ‬
‫)ﯾﻤﺜﻞ ﺧﻄﻮط اﻟﺮﺑﻂ ﺑﯿﻦ اﻟﺨﻼﯾﺎ اﻟﻌﺼﺒﯿﺔ (‬
‫5- وﺿﻊ دوارة ﺗﻤﺜﻞ ﻋﺪد اﻟﺪواﺋﺮ اﻟﻤﺮﺳﻮﻣﺔ ) ﻋﺪد اﻟﺨﻼﯾﺎ اﻟﻌﺼﺒﯿﺔ (‬
‫6- رﺳﻢ ﻋﺪد ﻣﻦ اﻟﺨﻄﻮط وﯾﺘﻢ ﺿﺒﻄﮭﺎ وﻓﻖ اﺣﺪاﺛﯿﺎت ﻣﻌﯿﻨﺔ‬
‫7- اﻟﻨﮭﺎﯾﺔ‬

‫1‪X‬‬
‫1‬                                ‫3‬

‫2‪X‬‬
‫2‬                              ‫5‬

‫ﺧﻠﯿﺔ ‪Hopfield‬‬

‫ﻣﻼﺣﻈﺔ\\ ﺧﻮارزﻣﯿﺔ ‪ Hopfield‬ﺗﻜﻮن ﻋﻠﻰ اﻻﻗﻞ ﺧﻠﯿﺘﯿﻦ وﻟﯿﺲ اﻗﻞ ﻟﻜﻲ ﯾﺘﻢ ﺗﺒﺎدل‬
‫اﻟﻤﺪﺧﻼت ﺑﯿﻨﮭﺎ ، ورﺑﻤﺎ ﯾﺼﻞ ﻋﺪدھﺎ اﻟﻰ اﻟﻒ ﺧﻠﯿﺔ او اﻛﺜﺮ .‬

‫6‬
‫ﺧﻮارزﻣﯿﺔ ‪perceptron‬‬
‫1‪w‬‬
‫1‪X‬‬
‫2‪X‬‬                   ‫1‬               ‫‪O‬‬

‫2‪w‬‬

‫ﺧﻠﯿﺔ ‪perceptron‬‬

‫1- ﻛﺘﺎﺑﺔ اﻟﺪوال اﻟﻤﻜﺘﺒﯿﺔ اﻟﻼزﻣﺔ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ‬
‫2- ﻛﺘﺎﺑﺔ ﻋﺒﺎرة ﺑﺪاﯾﺔ اﻟﺒﺮﻧﺎﻣﺞ )( ‪main‬‬
‫3- ﻛﺘﺎﺑﺔ ﻗﻮس ﺑﺪاﯾﺔ اﻟﺒﺮﻧﺎﻣﺞ {‬
‫4- ﺗﻌﺮﯾﻒ اﻟﻤﺘﻐﯿﺮات اﻟﻼزﻣﺔ ﻓﻲ اﻟﻌﻤﻞ وﻛﻤﺎ ﯾﻠﻲ :‬
‫;‪int I,j,s‬‬
‫5- اﻋﻄﺎء ﻗﯿﻢ ﻋﺸﻮاﺋﯿﺔ ﻟﻼوزان ‪ w‬وذﻟﻚ ﺑﻮاﺳﻄﺔ داﻟﺔ ‪random‬‬
‫)‪w1,w2 rand () float (RAND-MAX‬‬
‫6- ﺗﻌﺮﯾﻒ ﻣﻌﺎﻣﻞ اﻟﺘﻌﻠﻢ واﻋﻄﺎﺋﮫ ﻗﯿﻤﺔ 1=‪a‬‬
‫7- ﺗﻌﺮﯾﻒ ﻣﺘﻐﯿﺮ ﯾﻤﺜﻞ ﺣﺪ اﻟﻌﺘﺒﺔ ﻧﻔﺮض اﺳﻤﮫ ‪r‬‬
‫8- ﺗﻌﺮﯾﻒ ﻣﺆﺷﺮ ﯾﺪل ﻋﻠﻰ ﺣﺎﻟﺔ اﻟﺨﻄﺎ ‪error‬‬
‫9- ادﺧﺎل ﻣﺼﻔﻮﻓﺔ ﺗﻤﺜﻞ ﻣﺪﺧﻼت وﻣﺨﺮﺟﺎت اﻟﺒﻮاﺑﺔ اﻟﻤﻨﻄﻘﯿﺔ اﻟﺘﻲ ﺗﻢ اﻟﺘﺪرب ﻋﻠﯿﮭﺎ‬
‫وﺗﻜﻮن ﻛﻤﺎ ﯾﻠﻲ ]3[]4[‪x‬‬
‫01- وﺿﻊ ﻋﺒﺎرة ﻟﻠﺮﺟﻮع ﻓﻲ ﺣﺎﻟﺔ اﻟﺨﻄﺎ ‪goto agine‬‬
‫11- ﻛﺘﺎﺑﺔ دوارة اﻟﻤﺼﻔﻮﻓﺔ وﻛﻤﺎ ﯾﻠﻲ :‬
‫)++‪for (i=0; i<4 ;i‬‬
‫)++‪for (j=0; i<3 ;j‬‬
‫21- ﺗﻌﻠﯿﻢ اﻟﺨﻠﯿﺔ ﻋﻠﻰ اﺳﺘﺨﺮاج وﺣﺴﺎب اﻟﻘﯿﻤﺔ اﻟﺼﺤﯿﺤﺔ ﻟﻠﺒﻮاﺑﺔ وذﻟﻚ ﻣﻦ ﺧﻼل‬
‫اﻟﻘﺎﻧﻮن اﻻﺗﻲ :‬
‫‪s= wi* xi+ wi * xi‬‬
‫31- ﻣﻘﺎرﻧﺔ اﻟﻘﯿﻤﺔ اﻟﻨﺎﺗﺠﺔ ﻣﻦ اﻟﻤﻌﺎدﻟﺔ ‪ s‬ﻣﻊ ﺣﺪ اﻟﻌﺘﺒﺔ ﺣﯿﺚ ان ﺣﺪ اﻟﻌﺘﺒﺔ ﯾﻜﻮن‬
‫اﻣﺎ ﯾﺴﺎوي 1 او اﺻﻐﺮ او ﯾﺴﺎوي اﻟﺼﻔﺮ وﻣﻦ ﺛﻢ ﻣﻘﺎرﻧﺔ اﻟﻨﺘﯿﺠﺔ ﻣﺮة ﺛﺎﻧﯿﺔ ﻣﻊ‬
‫اﻟﻨﺘﯿﺠﺔ اﻻﺻﻠﯿﺔ ﻓﺎذا ﻇﮭﺮت ﺣﺎﻟﺔ اﻟﺨﻄﺎ ﻓﺎﻧﻨﺎ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﻧﻐﯿﺮ اﻻوزان وذﻟﻚ‬
‫ﻣﻦ ﺧﻼل اﻟﻤﻌﺎدﻻت اﻻﺗﯿﺔ‬
‫1‪)) *x‬اﻟﻨﺎﺗﺠﺔ( ‪)- o‬اﻟﻤﻄﻠﻮﺑﺔ(‪w1new=w1old +a*(o desired‬‬
‫2‪)) *x‬اﻟﻨﺎﺗﺠﺔ( ‪)- o‬اﻟﻤﻄﻠﻮﺑﺔ(‪w2new=w2old +a*(o desired‬‬

‫41- ﻧﺴﺘﻤﺮ ﻓﻲ ﻋﻤﻠﯿﺔ ﺗﻐﯿﺮ اﻻوزان اﻟﻰ ان ﯾﺘﻢ ﺗﺼﺤﯿﺢ ﻛﻞ اﻟﺤﺎﻻت اﻟﺨﻄﺎ‬
‫51- ﻧﮭﺎﯾﺔ اﻟﺨﻮارزﻣﯿﺔ‬

‫7‬
‫ﻣﺜﺎل \\ ﻗﻢ ﺑﺘﺪرﯾﺐ ﺷﺒﻜﺔ ‪ perceptron‬ﻟﻠﺘﻌﻠﻢ ﻋﻠﻰ ﻣﺪﺧﻼت وﻣﺨﺮﺟﺎت ﺑﻮاﺑﺔ ‪OR‬‬
‫ﻋﻠﻤﺎً ان ﻣﻌﺎﻣﻞ اﻟﺘﻌﻠﻢ 1 واﻻوزان ﻧﻔﺮﺿﮭﺎ ﻋﺸﻮاﺋﯿﺔ.‬

‫1‪x‬‬   ‫2‪x‬‬   ‫‪T‬‬                                 ‫ﺳﻮف ﻧﺪرب اﻟﺼﻒ اﻻول ﻣﻦ اﻟﺒﻮاﺑﺔ‬
‫0‬    ‫0‬    ‫0‬
‫0‬    ‫1‬    ‫1‬
‫1‬    ‫0‬    ‫1‬
‫1‬    ‫1‬    ‫1‬

‫0 =2‪x1=0 , x2 = 0 ,T=0 , w1= 0, w‬‬

‫1- ﺗﻌﻠﯿﻢ اﻟﺨﻠﯿﺔ ﻋﻠﻰ اﺳﺘﺨﺮاج وﺣﺴﺎب اﻟﻘﯿﻤﺔ اﻟﺼﺤﯿﺤﺔ ﻟﻠﺒﻮاﺑﺔ وذﻟﻚ ﻣﻦ ﺧﻼل‬
‫ﻣﻌﺎدﻟﺔ اﻟﻤﺠﻤﻮع اﻟﺘﺎﻟﯿﺔ :‬
‫2‪s= w1* x1+ w2 * x‬‬
‫0* 0 +0 *0=‬
‫‪= 0 == T‬‬
‫2- ﻣﻘﺎرﻧﺔ اﻟﻘﯿﻤﺔ اﻟﻨﺎﺗﺠﺔ ﻣﻦ اﻟﻤﻌﺎدﻟﺔ ‪ s‬ﻣﻊ ﺣﺪ اﻟﻌﺘﺒﺔ ﺣﯿﺚ ان ﺣﺪ اﻟﻌﺘﺒﺔ ﯾﻜﻮن اﻣﺎ‬
‫ﯾﺴﺎوي 1 او اﺻﻐﺮ او ﯾﺴﺎوي اﻟﺼﻔﺮ وﻣﻦ ﺛﻢ ﻣﻘﺎرﻧﺔ اﻟﻨﺘﯿﺠﺔ ﻣﺮة ﺛﺎﻧﯿﺔ ﻣﻊ‬
‫اﻟﻨﺘﯿﺠﺔ اﻻﺻﻠﯿﺔ ﻓﺎذا ﻛﺎﻧﺖ ﻣﻄﺎﺑﻘﺔ وﺧﺎﻟﯿﺔ ﻣﻦ اﻟﺨﻄﺎ ﻓﺎﻧﮫ ﺳﻮف ﯾﺘﻢ اﻻﻧﺘﻘﺎل اﻟﻰ‬
‫اﻟﺼﻒ اﻟﺘﺎﻟﻲ ) 1= ‪. ( x1= 0 , x2 =1 , T‬‬

‫3- ﻛﺘﺎﺑﺔ ﻣﻌﺎدﻟﺔ اﻟﻤﺠﻤﻮع :-‬
‫2‪s= w1* x1+ w2 * x‬‬
‫1*0+0*0=‬
‫‪= 0 == error‬‬    ‫) 1= ‪( T‬‬

‫4- ﻇﮭﺮت ﺣﺎﻟﺔ اﻟﺨﻄﺎ و ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﻧﻐﯿﺮ اﻻوزان وذﻟﻚ ﻣﻦ ﺧﻼل اﻟﻤﻌﺎدﻻت‬
‫اﻻﺗﯿﺔ‬
‫1‪)) * x‬اﻟﻨﺎﺗﺠﺔ( ‪)- o‬اﻟﻤﻄﻠﻮﺑﺔ(‪w1new=w1old +a*(o desired‬‬
‫0*)0–1(* 1+0=‬
‫0=‬
‫2‪)) * x‬اﻟﻨﺎﺗﺠﺔ( ‪)- o‬اﻟﻤﻄﻠﻮﺑﺔ(‪w2new=w2old +a*(o desired‬‬
‫1*)0–1(*1+0=‬
‫1=‬
‫5- ﻧﻄﺒﻖ اﻟﻤﻌﺎدﻟﺔ اﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺠﻤﻮع وﻟﻜﻦ ھﺬه اﻟﻤﺮة ﻣﻊ اﻻوزان اﻟﺠﺪﯾﺪة واﻟﺼﻒ‬
‫اﻟﺘﺎﻟﻲ ﻣﻦ اﻟﻤﺪﺧﻼت ) 1 =‪ ( x1= 1 , x2= 0 , T‬وﻛﻤﺎ ﯾﻠﻲ :‬

‫8‬
‫2‪s= w1* x1+ w2 * x‬‬
‫1*1+1*0=‬
‫‪= 1 == T‬‬
‫واﻻن ﻧﻄﺒﻘﮭﺎ ﻣﻊ اﻟﺼﻒ اﻻﺧﯿﺮ ) 1= ‪( X1= 1, X2 =1 , T‬‬
‫2‪s= w1* x1+ w2 * x‬‬
‫1 * 1 + 1 *1 =‬
‫2=‬                         ‫‪T‬‬     ‫وھﺬه اﻟﻘﯿﻤﺔ ﻣﻄﺎﺑﻘﺔ ﻟﺸﺮط ﺣﺪ اﻟﻌﺘﺒﺔ و‬

‫وﻟﺘﺪرﯾﺐ اﻟﺨﻠﯿﺔ ﺗﻄﺒﻖ اﻟﻤﻌﺎدﻟﺔ ﻋﻠﻰ ﻛﻞ اﻟﻤﺪﺧﻼت ﻣﻊ ﺗﻜﺮار اﻟﻌﻤﻠﯿﺔ ﺣﺘﻰ ﺗﺴﺘﻘﺮ‬
‫اﻻوزان ﻋﻨﺪ ﺣﺪ ﻣﻌﯿﻦ وﻻﺗﺘﻐﯿﺮ ﺑﻌﺪھﺎ ، اي اﻧﮫ ﺑﻌﺪ ان ﻃﺒﻘﺖ اﻟﻤﻌﺎدﻟﺔ ﻋﻠﻰ اﻟﺼﻒ‬
‫اﻻﺧﯿﺮ ﻓﺎﻧﮫ ﺗﺮﺟﻊ ﻣﻦ ﺟﺪﯾﺪ اي ﻣﻦ ﺑﺪاﯾﺔ اﻟﻤﺪﺧﻼت وﺗﺼﺤﯿﺢ ﻛﻞ اﻟﺤﺎﻻت وﺗﻐﯿﺮ‬
‫اﻻوزان اﻟﻰ ان ﺗﺴﺘﻘﺮ .‬

‫* ﻣﻦ اﻷﻓﻀﻞ وﺿﻊ ﺟﺪول اﻟﺘﺪرﯾﺐ اﻟﺬي ﺗﻮﺿﻊ ﻓﯿﮫ اﻟﻤﺪﺧﻼت )2‪ (x1,x‬واﻟﻨﺘﯿﺠﺔ‬
‫اﻟﻤﻄﻠﻮﺑﺔ )‪ (T‬واﻟﻨﺘﯿﺠﺔ اﻟﺘﻲ ﺗﻢ اﻟﺤﺼﻮل ﻋﻠﯿﮭﺎ )‪ (O‬واﻷوزان اﻟﻘﺪﯾﻤﺔ ) ,‪W1old‬‬
‫‪ (W2old‬واﻷوزان اﻟﺠﺪﯾﺪة ) ‪(W1new, W22new‬‬

‫1‪X‬‬   ‫2‪X‬‬    ‫‪T‬‬    ‫‪O‬‬       ‫2‪W1 W2 W1 W‬‬
‫‪old old new new‬‬
‫0‬    ‫0‬    ‫0‬    ‫0‬        ‫0‬   ‫0‬   ‫0‬   ‫0‬

‫0‬    ‫1‬    ‫1‬

‫1‬    ‫0‬    ‫1‬

‫1‬    ‫1‬    ‫1‬

‫* اﺳﺘﻤﺮ ﺑﻌﻤﻠﯿﺔ اﻟﺘﺪرﯾﺐ ودرب اﻟﺼﻒ اﻟﺜﺎﻧﻲ )1,0( وأﻣﻸ ﺟﺪول اﻟﺘﺪرﯾﺐ ﺑﺎﻟﻘﯿﻢ‬
‫اﻟﺘﻲ ﺗﻈﮭﺮ ﻣﻦ ﻋﻤﻠﯿﺔ اﻟﺘﺪرﯾﺐ وﺳﺘﻼﺣﻆ ﺗﻐﯿﺮ اﻷوزان ﺑﺎﻟﺘﺪرﯾﺞ ﻣﻦ اﻻﺻﻔﺎر إﻟﻰ‬
‫اﻟﻮاﺣﺪات .‬

‫ﻣﯿﻤﻮﻧﺔ اﻟﺤﺪاد‬
‫اﻟﻌﺮاق – ﻛﻠﯿﺔ اﻟﺘﺮﺑﯿﺔ ﻟﻠﺒﻨﺎت – ﻗﺴﻢ اﻟﺤﺎﺳﺒﺎت‬
‫‪Iraq- education girls college – computer department‬‬
‫‪Shrm_4fra@yahoo.com‬‬

‫9‬

```
To top