બેકપ્રોપેગેશન અલ્ગોરિધમ સી. બેકપ્રોપેગેશન પદ્ધતિનો ઉપયોગ કરીને મલ્ટિલેયર ન્યુરલ નેટવર્કને તાલીમ આપવા માટે અલ્ગોરિધમ

ગોલ બેકપ્રોપગેશનસરળ છે: એકંદર ભૂલમાં તે કેટલું યોગદાન આપે છે તેના પ્રમાણમાં દરેક વજનને સમાયોજિત કરો. જો આપણે દરેક વજનની ભૂલને પુનરાવર્તિત રીતે ઘટાડીશું, તો આપણી પાસે આખરે વજનનો સમૂહ હશે જે સારી આગાહી કરે છે.

એક સાંકળ નિયમ અપડેટ કરી રહ્યા છીએ

નેસ્ટેડ સમીકરણોની લાંબી શ્રેણી તરીકે વિચારી શકાય. જો તમે ફોરવર્ડ પ્રચાર વિશે આ રીતે વિચારો છો, તો પછી બેકપ્રોપગેશન માત્ર એક એપ્લિકેશન છે સાંકળ નિયમો(જટિલ કાર્ય તફાવત) નેસ્ટેડ સમીકરણમાં કોઈપણ ચલના સંદર્ભમાં નુકસાનના ડેરિવેટિવ્ઝ શોધવા માટે. ફોરવર્ડ પ્રચાર કાર્યને ધ્યાનમાં લેતા:

F(x)=A(B(C(x)))

A, B અને C વિવિધ સ્તરો પર છે. સાંકળના નિયમનો ઉપયોગ કરીને, આપણે x ના સંદર્ભમાં f(x) ના વ્યુત્પન્નની સરળતાથી ગણતરી કરી શકીએ છીએ:

F′(x)=f′(A)⋅A′(B)⋅B′(C)⋅C′(x)

આદર સાથે વ્યુત્પન્ન વિશે શું બી? આદર સાથે વ્યુત્પન્ન શોધવા માટે બી, તમે ડોળ કરી શકો છો કે B(C(x)) એક સ્થિર છે, તેને પ્લેસહોલ્ડર વેરીએબલ સાથે બદલો બી, અને આદર સાથે વ્યુત્પન્ન માટે શોધ ચાલુ રાખો બીધોરણ

F′(B)=f′(A)⋅A′(B)

આ સરળ પદ્ધતિ ફંક્શનની અંદર કોઈપણ ચલ સુધી વિસ્તરે છે અને અમને પરવાનગી આપે છે અસર ચોક્કસપણે નક્કી કરોએકંદર પરિણામ માટે દરેક ચલ.

સાંકળનો નિયમ લાગુ કરવો

ચાલો નેટવર્કમાં કોઈપણ વજનના સંદર્ભમાં નુકસાનના વ્યુત્પન્નની ગણતરી કરવા માટે સાંકળના નિયમનો ઉપયોગ કરીએ. ચેઇનિંગ નિયમ એ નિર્ધારિત કરવામાં મદદ કરશે કે દરેક વજન આપણી એકંદર ભૂલમાં કેટલો ફાળો આપે છે અને ભૂલને ઘટાડવા માટે દરેક વજનને કઈ દિશામાં અપડેટ કરવું જોઈએ. આગાહી કરવા અને કુલ ભૂલ અથવા નુકસાનની ગણતરી કરવા માટે તમારે અહીં સમીકરણોની જરૂર છે:

એક ન્યુરોન ધરાવતા નેટવર્કને જોતાં, કુલ નુકશાનન્યુરલ નેટવર્કની ગણતરી આ રીતે કરી શકાય છે:

કિંમત=C(R(Z(XW)))

સાંકળના નિયમનો ઉપયોગ કરીને, અમે વજન W ના સંદર્ભમાં નુકસાનનું વ્યુત્પન્ન સરળતાથી શોધી શકીએ છીએ.

C′(W)=C′(R)⋅R′(Z)⋅Z′(W)=(y^−y)⋅R′(Z)⋅X

હવે અમારી પાસે કોઈપણ વજનના સંદર્ભમાં નુકશાનના વ્યુત્પન્નની ગણતરી કરવા માટેનું સમીકરણ છે, ચાલો ન્યુરલ નેટવર્કનું ઉદાહરણ જોઈએ:

આદર સાથે નુકસાનનું વ્યુત્પન્ન શું છે વો?

C′(WO)=C′(y^)⋅y^′(ZO)⋅Z′O(WO)=(y^−y)⋅R′(ZO)⋅H

શું વિશે ? શોધવા માટે, અમે ફક્ત અમારા ફંક્શનમાં પાછા ફરતા રહીએ છીએ, ચેઇનિંગના નિયમને વારંવાર લાગુ કરીએ છીએ, જ્યાં સુધી આપણે એક તત્વ ધરાવતા ફંક્શન સુધી પહોંચીએ નહીં. .

C′(Wh)=C′(y^)⋅O′(Zo)⋅Z′o(H)⋅H′(Zh)⋅Z′h(Wh)=(y^−y)⋅R′(Zo) )⋅Wo⋅R′(Zh)⋅X

અને માત્ર મનોરંજન માટે, જો અમારા નેટવર્કમાં 10 છુપાયેલા સ્તરો હોય તો શું થાય.પ્રથમ વજન w1 માટે નુકશાનનું વ્યુત્પન્ન શું છે?

C(w1)=(dC/dy^)⋅(dy^/dZ11)⋅(dZ11/dH10)⋅(dH10/dZ10)⋅(dZ10/dH9)⋅(dH9/dZ9)⋅(dZ9/dH8)⋅( dH8/dZ8)⋅(dZ8/dH7)⋅(dH7/dZ7)⋅(dZ7/dH6)⋅(dH6/dZ6)⋅(dZ6/dH5)⋅(dH5/dZ5)⋅(dZ5/dH4)⋅(dZ5/dH4)⋅(dH4) dZ4)⋅(dZ4/dH3)⋅(dH3/dZ3)⋅(dZ3/dH2)⋅(dH2/dZ2)⋅(dZ2/dH1)⋅(dH1/dZ1)⋅(dZ1/dW1)

એક પેટર્ન નોટિસ? ડેરિવેટિવ નુકસાનની ગણતરી કરવા માટે જરૂરી ગણતરીની માત્રામાં વધારો થાય છે કારણ કે અમારું નેટવર્ક ઊંડું થતું જાય છે. પણ નોંધ કરો અમારી વ્યુત્પન્ન ગણતરીઓમાં નિરર્થકતા. દરેક સ્તરનું નુકસાન વ્યુત્પન્ન તત્વોમાં બે નવા તત્વો ઉમેરે છે જે તેની ઉપરના સ્તરો દ્વારા પહેલાથી ગણતરી કરવામાં આવ્યા હતા. જો આપણું કામ બચાવવા અને આ પુનરાવર્તિત ગણતરીઓને ટાળવાનો કોઈ રસ્તો હોત તો?

મેમોઈઝેશન સાથે કામ સાચવવું

મેમોઈઝેશનકમ્પ્યુટર વિજ્ઞાનમાં એક શબ્દ છે જેનો સરળ અર્થ છે: એક જ વસ્તુઓને વારંવાર ગણશો નહીં. મેમોઈઝેશનમાં, અમે સમાન કાર્યની પુનઃગણતરી ટાળવા માટે અગાઉ ગણતરી કરેલ પરિણામોનો સંગ્રહ કરીએ છીએ. આ પુનરાવર્તિત કાર્યોને ઝડપી બનાવવા માટે ઉપયોગી છે, જેમાંથી એક બેકપ્રોપેગેશન છે. નીચેના વ્યુત્પન્ન સમીકરણોમાં પેટર્ન પર ધ્યાન આપો.

આ દરેક સ્તરો સમાન ડેરિવેટિવ્ઝની પુનઃગણતરી કરે છે! દરેક વજન માટે લાંબા વ્યુત્પન્ન સમીકરણો લખવાને બદલે, અમે અમારા કાર્યને સાચવવા માટે મેમોઈઝેશનનો ઉપયોગ કરી શકીએ છીએ કારણ કે અમે નેટવર્ક દ્વારા ભૂલ પરત કરીએ છીએ. આ કરવા માટે, અમે 3 સમીકરણો (નીચે) વ્યાખ્યાયિત કરીએ છીએ જે એકસાથે વ્યક્ત કરે છે ટૂંકા સ્વરૂપબેકપ્રોપગેશન માટે જરૂરી તમામ ગણતરીઓ. ગણિત સમાન છે, પરંતુ સમીકરણો એક સરસ શોર્ટકટ પૂરો પાડે છે જેનો ઉપયોગ આપણે પહેલેથી જ કરેલી ગણતરીઓ પર નજર રાખવા માટે અને નેટવર્ક દ્વારા પાછા જઈએ ત્યારે આપણું કાર્ય સાચવવા માટે કરી શકીએ છીએ.

પ્રથમ આપણે ગણતરી કરીએ છીએ આઉટપુટ સ્તર ભૂલઅને પરિણામને તેની સામે છુપાયેલા સ્તર પર મોકલો. છુપાયેલા સ્તરની ભૂલની ગણતરી કર્યા પછી, અમે તેના મૂલ્યને પાછલા છુપાયેલા સ્તર પર પાછા આપીએ છીએ. અને તેથી આગળ અને તેથી આગળ. નેટવર્ક દ્વારા પાછા જઈને, અમે તે સ્તરના વજનના સંદર્ભમાં નુકસાનના વ્યુત્પન્નની ગણતરી કરવા માટે દરેક સ્તર પર 3જી ફોર્મ્યુલા લાગુ કરીએ છીએ. આ વ્યુત્પન્ન અમને કહે છે આપણું વજન કઈ દિશામાં ગોઠવવુંએકંદર નુકસાન ઘટાડવા માટે.

નોંધ:મુદત સ્તર ભૂલના સંદર્ભમાં નુકસાનના વ્યુત્પન્નનો ઉલ્લેખ કરે છે માટે પ્રવેશસ્તર તે પ્રશ્નનો જવાબ આપે છે: જ્યારે આ સ્તરમાં ઇનપુટ બદલાય છે ત્યારે નુકશાન કાર્યનું આઉટપુટ કેવી રીતે બદલાય છે?

આઉટપુટ લેયર ભૂલ

આઉટપુટ લેયરની ભૂલની ગણતરી કરવા માટે, આઉટપુટ લેયરના ઇનપુટના સંદર્ભમાં નુકસાનનું વ્યુત્પન્ન શોધવું જરૂરી છે, ઝો. આ પ્રશ્નનો જવાબ આપે છે: છેલ્લા સ્તરના વજન નેટવર્કમાં એકંદર ભૂલને કેવી રીતે અસર કરે છે? પછી વ્યુત્પન્ન છે:

C′(Zo)=(y^−y)⋅R′(Zo)

રેકોર્ડિંગને સરળ બનાવવા માટે, પ્રેક્ટિશનરો મોસામાન્ય રીતે ક્રમ બદલો (y^−y)∗R"(Zo)મુદત ઇઓ. તેથી આઉટપુટ લેયર ભૂલ માટેનું અમારું સૂત્ર છે:

Eo=(y^−y)⋅R′(Zo)

છુપાયેલ સ્તર ભૂલ

છુપાયેલા સ્તરની ભૂલની ગણતરી કરવા માટે, તમારે છુપાયેલા સ્તરના ઇનપુટના સંદર્ભમાં નુકસાનનું વ્યુત્પન્ન શોધવાની જરૂર છે, ઝ્હ.

Eh=Eo⋅Wo⋅R′(Zh)

આ સૂત્ર બેકપ્રોપગેશનનો આધાર છે. અમે વર્તમાન સ્તરની ભૂલની ગણતરી કરીએ છીએ અને ભારિત ભૂલને પાછલા સ્તર પર પસાર કરીએ છીએ, જ્યાં સુધી અમે અમારા પ્રથમ છુપાયેલા સ્તર સુધી પહોંચીએ ત્યાં સુધી પ્રક્રિયા ચાલુ રાખીએ છીએ. રસ્તામાં, અમે દરેક વજનના સંદર્ભમાં નુકશાનના વ્યુત્પન્નનો ઉપયોગ કરીને વજનને અપડેટ કરીએ છીએ.

કોઈપણ વજનના સંદર્ભમાં નુકશાનનું વ્યુત્પન્ન

ચાલો આઉટપુટ લેયરના વજનના સંદર્ભમાં નુકસાનના વ્યુત્પન્ન માટેના અમારા સૂત્ર પર પાછા ફરીએ વો.

C′(WO)=(y^−y)⋅R′(ZO)⋅H

આપણે જાણીએ છીએ કે આપણે પ્રથમ ભાગને આઉટપુટ લેયર એરર માટે સમીકરણ સાથે બદલી શકીએ છીએ એહ. એચછુપાયેલા સ્તરના સક્રિયકરણનું પ્રતિનિધિત્વ કરે છે.

C′(Wo)=Eo⋅H

આમ, અમારા નેટવર્કમાં કોઈપણ વજનના સંદર્ભમાં નુકસાનનું વ્યુત્પન્ન શોધવા માટે, અમે અનુરૂપ સ્તરની ભૂલને તેના ઇનપુટ (અગાઉના સ્તરનું આઉટપુટ) દ્વારા ગુણાકાર કરીએ છીએ.

C′(w)=CurrentLayerError⋅CurrentLayerInput

નોંધ: પ્રવેશઅગાઉના સ્તરમાંથી સક્રિયકરણનો સંદર્ભ આપે છે, ભારિત ઇનપુટનો નહીં, Z.

તેનો સારાંશ આપવા માટે

અહીં છેલ્લા 3 સમીકરણો છે જે એકસાથે બેકપ્રોપગેશનનો આધાર બનાવે છે.

અમારા ઉદાહરણનો ઉપયોગ કરીને વિઝ્યુઅલાઈઝ થયેલ પ્રક્રિયા અહીં છે ન્યુરલ નેટવર્કઉચ્ચ:

બેકપ્રોપેગેશન: સેમ્પલ કોડ

def relu_prime(z): જો z > 0: પરત 1 પરત 0 defકિંમત(yHat, y): પરત 0.5 * (yHat - y)**2 defકિંમત_પ્રાઈમ(yHat, y): પરત yHat-y defબેકપ્રોપ(x, y, Wh, Wo, lr): yHat = feed_forward(x, Wh, Wo) # સ્તર ભૂલ Eo = (yHat - y) * relu_prime(Zo) Eh = Eo * Wo * relu_prime(Zh) # વજન માટે કિંમત વ્યુત્પન્ન dWo = Eo * H dWh = Eh * x # અપડેટ વજન Wh -= lr * dWh Wo -= lr * dWo

ડેલ્ટા એ એક નિયમ છે જેનો ઉપયોગ આઉટપુટ લેયરના એરર વેલ્યુનો ઉપયોગ કરીને પરસેપ્ટ્રોનને તાલીમ આપતી વખતે થાય છે. જો નેટવર્કમાં બે અથવા વધુ સ્તરો છે, તો પછી મધ્યવર્તી સ્તરો માટે કોઈ સ્પષ્ટ ભૂલ મૂલ્ય નથી, અને ડેલ્ટા નિયમનો ઉપયોગ કરી શકાતો નથી.

બેકપ્રોપેગેશન પાછળનો મુખ્ય વિચાર એ છે કે છુપાયેલા સ્તરના ચેતાકોષો માટે ભૂલનો અંદાજ કેવી રીતે મેળવવો. તેની નોંધ લો પ્રખ્યાતઆઉટપુટ લેયરમાં ચેતાકોષો દ્વારા કરવામાં આવેલી ભૂલોને કારણે ઊભી થાય છે અજ્ઞાતછુપાયેલા સ્તર ચેતાકોષોની ભૂલો. છુપાયેલા સ્તર ચેતાકોષ અને આઉટપુટ ચેતાકોષ વચ્ચે સિનેપ્ટિક જોડાણનું મૂલ્ય જેટલું વધારે છે, વધુ મજબૂત ભૂલપ્રથમ બીજાની ભૂલને અસર કરે છે. પરિણામે, છુપાયેલા સ્તરોના તત્વોની ભૂલનો અંદાજ અનુગામી સ્તરોની ભૂલોના ભારિત સરવાળા તરીકે મેળવી શકાય છે.

બેકપ્રોપેગેશન એલ્ગોરિધમ (BEP), જે ડેલ્ટા નિયમનું સામાન્યીકરણ છે, તે તમને કોઈપણ સ્તરોની સંખ્યા સાથે PR ANN ને તાલીમ આપવા માટે પરવાનગી આપે છે. એવું કહી શકાય કે AORO વાસ્તવમાં વિવિધતાનો ઉપયોગ કરે છે ઢાળ વંશ, લઘુત્તમ ભૂલની દિશામાં વજનને ફરીથી ગોઠવવું.

AOR નો ઉપયોગ કરતી વખતે એવું માનવામાં આવે છે કે સિગ્મોઇડ ફંક્શનનો ઉપયોગ સક્રિયકરણ કાર્ય તરીકે થાય છે. આ ફંક્શન કોમ્પ્યુટેશનલ પ્રયત્નોને બચાવે છે કારણ કે તેમાં એક સરળ વ્યુત્પન્ન છે:

સિગ્મોઇડ ફંક્શન મજબૂત સિગ્નલોને 1 સુધી મર્યાદિત કરે છે અને નબળા સિગ્નલોને વિસ્તૃત કરે છે.

બેકપ્રોપેગેશન એલ્ગોરિધમનો અર્થ એ છે કે જ્યારે તાલીમ આપવામાં આવે છે, ત્યારે નેટવર્કને પ્રથમ એક છબી સાથે રજૂ કરવામાં આવે છે જેના માટે આઉટપુટ ભૂલની ગણતરી કરવામાં આવે છે. આ ભૂલ પછી નેટવર્ક દ્વારા વિરુદ્ધ દિશામાં પ્રચાર કરે છે, ઇન્ટરન્યુરોન કનેક્શન્સના વજનને બદલીને.

અલ્ગોરિધમમાં પરસેપ્ટ્રોનને તાલીમ આપતી વખતે ક્રિયાઓનો સમાન ક્રમ શામેલ છે. પ્રથમ, ઇન્ટરન્યુરોન જોડાણોનું વજન મેળવવામાં આવે છે રેન્ડમ મૂલ્યો, પછી નીચેના પગલાંઓ કરવામાં આવે છે:

1) એક તાલીમ જોડી પસંદ કરવામાં આવી છે ( એક્સ , Z*), એક્સઇનપુટ માટે પૂરા પાડવામાં આવેલ;

2) નેટવર્ક આઉટપુટની ગણતરી કરવામાં આવે છે ઝેડ = એફ(વાય);

3) આઉટપુટ ભૂલની ગણતરી કરવામાં આવે છે ;

4) નેટવર્ક વજન ભૂલો ઘટાડવા માટે એડજસ્ટ કરવામાં આવે છે;

સ્ટેપ 1 અને 2 એ નેટવર્ક દ્વારા ફોરવર્ડ પ્રચાર છે, અને 3 અને 4 રિવર્સ પ્રચાર છે.

તાલીમ પહેલાં, હાલની ઇનપુટ-આઉટપુટ જોડીને બે ભાગોમાં વિભાજીત કરવી જરૂરી છે: તાલીમ અને પરીક્ષણ.

પ્રશિક્ષણની ગુણવત્તા ચકાસવા માટે ટેસ્ટ જોડીનો ઉપયોગ કરવામાં આવે છે - જો તે ટેસ્ટ જોડી દ્વારા નિર્દિષ્ટ ઇનપુટ માટે ટેસ્ટની નજીક આઉટપુટ ઉત્પન્ન કરે તો ન્યુરલ નેટવર્ક સારી રીતે પ્રશિક્ષિત છે.

તાલીમ દરમિયાન, એવી પરિસ્થિતિ શક્ય છે જ્યારે ન્યુરલ નેટવર્ક તાલીમ ડેટા માટે સારા પરિણામો દર્શાવે છે, પરંતુ પરીક્ષણ ડેટા માટે ખરાબ પરિણામો. ત્યાં બે કારણો હોઈ શકે છે:

1. પરીક્ષણ ડેટા તાલીમ ડેટાથી ખૂબ જ અલગ છે, એટલે કે. તાલીમ જોડી ઇનપુટ જગ્યાના તમામ ક્ષેત્રોને આવરી લેતી નથી.


2. "પુનઃપ્રશિક્ષણ" ની ઘટના ઊભી થઈ છે ( ઓવરફિટિંગ), જ્યારે ન્યુરલ નેટવર્કની વર્તણૂક સમસ્યાનો ઉકેલ લાવવા કરતાં વધુ જટિલ હોવાનું બહાર આવે છે.

છેલ્લો કેસપોઈન્ટ દ્વારા અંદાજિત કાર્યની સમસ્યા માટે ફિગમાં સચિત્ર છે. 3.3, જ્યાં સફેદ વર્તુળો પરીક્ષણ ડેટા સૂચવે છે અને શ્યામ વર્તુળો તાલીમ ડેટા સૂચવે છે.

મલ્ટિલેયર ન્યુરલ નેટવર્ક્સમાં, છેલ્લા એક સિવાયના તમામ સ્તરોના ન્યુરોન્સના શ્રેષ્ઠ આઉટપુટ મૂલ્યો, એક નિયમ તરીકે, અજાણ્યા છે, ત્રણ- અથવા વધુ-સ્તરવાળા પરસેપ્ટ્રોનને હવે તાલીમ આપી શકાતી નથી, ફક્ત ભૂલ મૂલ્યો દ્વારા માર્ગદર્શન આપવામાં આવે છે નેટવર્ક આઉટપુટ પર

આ સમસ્યાને ઉકેલવા માટેનો એક વિકલ્પ એ છે કે ન્યુરલ નેટવર્કના દરેક સ્તર માટેના ઇનપુટ સિગ્નલોને અનુરૂપ આઉટપુટ સિગ્નલોનો સેટ વિકસાવવો, જે, અલબત્ત, ખૂબ જ શ્રમ-સઘન કામગીરી છે અને તે હંમેશા શક્ય નથી ચેતોપાગમના વજનના ગુણાંકને ગતિશીલ રીતે સમાયોજિત કરવા માટે, જે દરમિયાન, નિયમ તરીકે, મોટાભાગના નબળા સંબંધોઅને એક અથવા બીજી દિશામાં થોડી માત્રામાં ફેરફાર, અને માત્ર તે જ ફેરફારો સાચવવામાં આવે છે જેના પરિણામે સમગ્ર નેટવર્કના આઉટપુટમાં ભૂલમાં ઘટાડો થાય છે. આ પદ્ધતિ, છતાં

દેખીતી સરળતા, બોજારૂપ નિયમિત ગણતરીઓ જરૂરી છે અને અંતે, ત્રીજો, વધુ સ્વીકાર્ય વિકલ્પ એ છે કે ન્યુરલ નેટવર્કના આઉટપુટથી તેના ઇનપુટ સુધી, આ શિક્ષણમાં સિગ્નલોના સીધા પ્રચારની વિરુદ્ધ દિશામાં અલ્ગોરિધમને બેકપ્રોપેગેશન પ્રક્રિયા કહેવામાં આવે છે (ભૂલ પાછળનો પ્રચાર) તે તે છે જેની નીચે ચર્ચા કરવામાં આવી છે

બેકપ્રોપેગેશન એલ્ગોરિધમ એ પુનરાવર્તિત ગ્રેડિયન્ટ લર્નિંગ અલ્ગોરિધમ છે જેનો ઉપયોગ ઘટાડવા માટે થાય છે પ્રમાણભૂત વિચલનસીરીયલ કનેક્શન સાથે મલ્ટિલેયર ન્યુરલ નેટવર્કના જરૂરી આઉટપુટમાંથી વર્તમાન

પદ્ધતિ અનુસાર ઓછામાં ઓછા ચોરસ, ન્યુરલ નેટવર્કનું ઉદ્દેશ્ય ભૂલ કાર્ય એ મૂલ્ય છે

ન્યુરલ નેટવર્કના આઉટપુટ લેયર પર ચેતાકોષની વાસ્તવિક આઉટપુટ સ્થિતિ ક્યાં હોય છે જ્યારે કોઈ ઈમેજને તેના ઇનપુટ્સ પર ખવડાવવામાં આવે છે, ત્યારે આ ન્યુરોનની આવશ્યક આઉટપુટ સ્થિતિ

આઉટપુટ લેયરના તમામ ચેતાકોષો પર અને ગ્રેડિયન્ટ ડિસેન્ટ મેથડનો ઉપયોગ કરીને મિનિમાઇઝેશનની પ્રક્રિયા નીચે પ્રમાણે કરવામાં આવે છે

લેયર ન્યુરોન ને લેયર ન્યુરોન સાથે જોડતા સિનેપ્ટીક કનેક્શનનું વેઇટીંગ ગુણાંક ક્યાં છે - શીખવાની દર ગુણાંક,

જટિલ કાર્યોના ભિન્નતાના નિયમ અનુસાર

ન્યુરોનના ઇનપુટ સિગ્નલો અને સક્રિયકરણ કાર્યની દલીલનો ભારાંક ક્યાં છે કારણ કે સક્રિયકરણ કાર્યનું વ્યુત્પન્ન સમગ્ર એબ્સીસા અક્ષ પર નિર્ધારિત હોવું આવશ્યક છે, એકમ જમ્પ ફંક્શન અને અસંગતતાવાળા અન્ય સક્રિયકરણ કાર્યો માટે યોગ્ય નથી. વિચારણા હેઠળના ન્યુરલ નેટવર્ક તેઓ નીચેનાનો ઉપયોગ કરે છે સરળ કાર્યો, કેવી રીતે હાયપરબોલિક સ્પર્શકઅથવા ઘાતાંકીય સાથે ક્લાસિક સિગ્મોઇડ (કોષ્ટક 1 1 જુઓ) ઉદાહરણ તરીકે, અતિપરવલય સ્પર્શકના કિસ્સામાં

ત્રીજો ગુણક અગાઉના સ્તરના ચેતાકોષના આઉટપુટ જેટલો છે

(1.11) માં પ્રથમ પરિબળ માટે, તે સરળતાથી નીચે પ્રમાણે વિસ્તૃત કરી શકાય છે:

અહીં એક નવું ચલ રજૂ કરીને સ્તરના ચેતાકોષો વચ્ચે સમીકરણ કરવામાં આવે છે:

અમે જૂના સ્તરના મૂલ્યોમાંથી સ્તરના મૂલ્યોની ગણતરી કરવા માટે પુનરાવર્તિત સૂત્ર મેળવીએ છીએ

આઉટપુટ સ્તર માટે:

હવે આપણે વિસ્તૃત સ્વરૂપમાં (1.10) લખી શકીએ છીએ:

કેટલીકવાર વજન સુધારણાની પ્રક્રિયાને થોડી જડતા આપવા માટે, સપાટી પર આગળ વધતી વખતે તીક્ષ્ણ કૂદકાઓને સરળ બનાવવું. ઉદ્દેશ્ય કાર્ય, (1.17) અગાઉના પુનરાવર્તન પર વજનમાં ફેરફારના મૂલ્ય દ્વારા પૂરક છે.

જડતા ગુણાંક ક્યાં છે; વર્તમાન પુનરાવર્તન નંબર.

આમ, બેકપ્રોપેગેશન પ્રક્રિયાનો ઉપયોગ કરીને ન્યુરલ નેટવર્કને તાલીમ આપવા માટેનું સંપૂર્ણ અલ્ગોરિધમ નીચે પ્રમાણે બનાવવામાં આવ્યું છે.

પગલું 1. નેટવર્ક ઇનપુટ્સ પર સંભવિત છબીઓમાંથી એક લાગુ કરો અને, ન્યુરલ નેટવર્કની સામાન્ય કામગીરીના મોડમાં, જ્યારે સંકેતો ઇનપુટથી આઉટપુટમાં પ્રસારિત થાય છે, ત્યારે પછીના મૂલ્યોની ગણતરી કરો. ચાલો તમને યાદ અપાવીએ કે:

સ્તરમાં ચેતાકોષોની સંખ્યા ક્યાં છે, સતત આઉટપુટ સ્થિતિ સાથેના ચેતાકોષને ધ્યાનમાં લેતા જે પૂર્વગ્રહ સેટ કરે છે; સ્તર પર ન્યુરોન ઇનપુટ

સિગ્મોઇડ ક્યાં છે,

ઇનપુટ ઇમેજનો વેક્ટર ઘટક ક્યાં છે.

પગલું 4. ન્યુરલ નેટવર્કમાં તમામ વજનને સમાયોજિત કરો:

પગલું 5. જો નેટવર્ક ભૂલ નોંધપાત્ર છે, તો પગલું 1 પર જાઓ. અન્યથા, સમાપ્ત કરો.

પગલું 1 માં નેટવર્ક્સ વૈકલ્પિક રીતે રેન્ડમ ઓર્ડરબધી તાલીમની છબીઓ પ્રસ્તુત કરવામાં આવી છે જેથી નેટવર્ક, અલંકારિક રીતે કહીએ તો, કેટલાકને ભૂલી ન જાય કારણ કે તે અન્યને યાદ કરે છે.

અભિવ્યક્તિ (1.17) થી તે અનુસરે છે કે જ્યારે આઉટપુટ મૂલ્ય શૂન્ય તરફ વળે છે, ત્યારે શીખવાની કાર્યક્ષમતા નોંધપાત્ર રીતે ઘટે છે. દ્વિસંગી ઇનપુટ વેક્ટર સાથે, સરેરાશ અડધા વજનને સમાયોજિત કરવામાં આવશે નહીં, તેથી પ્રદેશ શક્ય મૂલ્યોન્યુરોન આઉટપુટને મર્યાદામાં સ્થાનાંતરિત કરવું ઇચ્છનીય છે, જે લોજિસ્ટિક કાર્યોના સરળ ફેરફારો દ્વારા પ્રાપ્ત થાય છે. ઉદાહરણ તરીકે, ઘાતાંકીય સાથેનો સિગ્મોઇડ ફોર્મમાં રૂપાંતરિત થાય છે:

ચાલો ન્યુરલ નેટવર્કની ક્ષમતાના પ્રશ્નને ધ્યાનમાં લઈએ, એટલે કે, તેના ઇનપુટ્સને પ્રસ્તુત કરેલી છબીઓની સંખ્યા જે તે ઓળખવાનું શીખી શકે છે. બે કરતાં વધુ સ્તરો ધરાવતા નેટવર્ક્સ માટે, આ પ્રશ્ન ખુલ્લો રહે છે. બે સ્તરોવાળા નેટવર્ક્સ માટે, નિર્ધારિત નેટવર્ક ક્ષમતાનો અંદાજ નીચે મુજબ છે:

એડજસ્ટેબલ વજનની સંખ્યા ક્યાં છે, આઉટપુટ લેયરમાં ન્યુરોન્સની સંખ્યા છે.

આ અભિવ્યક્તિ કેટલાક પ્રતિબંધોને ધ્યાનમાં લઈને મેળવવામાં આવી હતી. સૌપ્રથમ, છુપાયેલા સ્તરમાં ઇનપુટ્સ અને ચેતાકોષોની સંખ્યાએ અસમાનતાને સંતોષવી આવશ્યક છે બીજું, જો કે, ઉપરોક્ત અંદાજ ન્યુરોન્સના થ્રેશોલ્ડ સક્રિયકરણ કાર્યો અને સરળ સક્રિયકરણ કાર્યો સાથેના નેટવર્કની ક્ષમતા, ઉદાહરણ તરીકે (1.23), નેટવર્ક્સ માટે બનાવવામાં આવ્યો હતો. સામાન્ય રીતે વધારે છે. વધુમાં, નિર્ણાયક શબ્દનો અર્થ એવો થાય છે કે પરિણામી ક્ષમતા અંદાજ તમામ ઇનપુટ પેટર્ન માટે યોગ્ય છે જે ઇનપુટ્સ દ્વારા રજૂ કરી શકાય છે. વાસ્તવમાં, ઇનપુટ પેટર્નના વિતરણમાં કેટલીક નિયમિતતા હોય છે, જે ન્યુરલ નેટવર્કને સામાન્ય બનાવવા દે છે અને આ રીતે તેની વાસ્તવિક ક્ષમતામાં વધારો કરે છે. છબીઓના વિતરણથી, માં સામાન્ય કેસ, અગાઉથી જાણીતું નથી, અમે ફક્ત વાસ્તવિક ક્ષમતા વિશે કામચલાઉ રીતે વાત કરી શકીએ છીએ, પરંતુ સામાન્ય રીતે તે નિર્ધારિત ક્ષમતા કરતાં બમણી હોય છે.

ન્યુરલ નેટવર્કની ક્ષમતાનો પ્રશ્ન નેટવર્કના આઉટપુટ સ્તરની આવશ્યક શક્તિના પ્રશ્ન સાથે નજીકથી સંબંધિત છે જે છબીઓનું અંતિમ વર્ગીકરણ કરે છે. ઉદાહરણ તરીકે, ઇનપુટ ઈમેજોના સમૂહને બે વર્ગોમાં વિભાજીત કરવા માટે, એક આઉટપુટ ન્યુરોન પૂરતું છે. આ કિસ્સામાં, દરેક તાર્કિક સ્તર એક અલગ વર્ગ નિયુક્ત કરશે. થ્રેશોલ્ડ સક્રિયકરણ કાર્ય સાથે બે આઉટપુટ ચેતાકોષો પર, ચાર વર્ગો એન્કોડ કરી શકાય છે. વર્ગીકરણની વિશ્વસનીયતા વધારવા માટે, આઉટપુટ લેયરમાં દરેક વર્ગના એક ચેતાકોષને સોંપીને નિરર્થકતા દાખલ કરવી ઇચ્છનીય છે અથવા, વધુ સારી રીતે, ઘણા, જેમાંથી દરેકને તે નક્કી કરવા માટે તાલીમ આપવામાં આવે છે કે કોઈ છબી તેની પોતાની ડિગ્રી સાથે વર્ગની છે કે કેમ. આત્મવિશ્વાસ, ઉદાહરણ તરીકે: ઉચ્ચ, મધ્યમ અને નિમ્ન. આવા ન્યુરલ નેટવર્ક્સ અસ્પષ્ટ (અસ્પષ્ટ અથવા આંતરછેદ) સેટમાં સંયુક્ત ઇનપુટ છબીઓને વર્ગીકૃત કરવાનું શક્ય બનાવે છે. આ ગુણધર્મ આવા નેટવર્કને નજીક લાવે છે વાસ્તવિક પરિસ્થિતિઓજૈવિક ન્યુરલ નેટવર્કની કામગીરી.

પ્રશ્નમાં રહેલા ન્યુરલ નેટવર્કમાં ઘણા " અડચણો" પ્રથમ, પ્રક્રિયામાં મોટા હકારાત્મક અથવા છે નકારાત્મક મૂલ્યોવજન ચેતાકોષોના સિગ્મોઇડ્સ પરના કાર્યકારી બિંદુને સંતૃપ્તિ પ્રદેશમાં ખસેડી શકે છે. લોજિસ્ટિક ફંક્શનના વ્યુત્પન્નના નાના મૂલ્યો (1.15) અને (1.16) અનુસાર, શીખવાના બંધ તરફ દોરી જશે, જે નેટવર્કને લકવો કરે છે. બીજું, ગ્રેડિયન્ટ ડિસેન્ટ પદ્ધતિનો ઉપયોગ કરીને ઉદ્દેશ્ય કાર્યની વૈશ્વિક લઘુત્તમ શોધવાની બાંયધરી આપતું નથી. આ શીખવાની દર પસંદ કરવાના મુદ્દા સાથે નજીકથી સંબંધિત છે. વજનમાં વધારો અને તેથી, ચરમસીમાને શોધવાનો શીખવાનો દર અમર્યાદિત હોવો જોઈએ, પરંતુ આ કિસ્સામાં શિક્ષણ

અસ્વીકાર્ય રીતે ધીમે ધીમે થઈ રહ્યું છે. બીજી બાજુ, વજનમાં ખૂબ મોટા ગોઠવણો શીખવાની પ્રક્રિયામાં કાયમી અસ્થિરતા તરફ દોરી શકે છે. તેથી, 1 કરતાં ઓછી સંખ્યા (ઉદાહરણ તરીકે, 0.1) સામાન્ય રીતે શીખવાની દર ગુણાંક 1] તરીકે પસંદ કરવામાં આવે છે, જે શીખવાની પ્રક્રિયા દરમિયાન ધીમે ધીમે ઘટતી જાય છે. વધુમાં, સ્થાનિક મિનિમામાં નેટવર્કની આકસ્મિક હિટને બાકાત રાખવા માટે, કેટલીકવાર, ભારાંક ગુણાંકના મૂલ્યોને સ્થિર કર્યા પછી, 7 થી ગ્રેડિએન્ટ ડિસેન્ટ શરૂ કરવા માટે ટૂંકા સમય માટે નોંધપાત્ર રીતે વધારો કરવામાં આવે છે. નવો મુદ્દો. જો આ પ્રક્રિયાને ઘણી વખત પુનરાવર્તિત કરવાથી નેટવર્ક સમાન સ્થિતિમાં આવે છે, તો અમે ધારી શકીએ કે વૈશ્વિક લઘુત્તમ મળી ગયું છે.

સ્થાનિક મિનિમા અને નેટવર્ક પેરાલિસિસને દૂર કરવા માટે બીજી પદ્ધતિ છે, જે સ્ટોકેસ્ટિક ન્યુરલ નેટવર્કનો ઉપયોગ કરવાની છે.

ચાલો ઉપરોક્ત ભૌમિતિક અર્થઘટન આપીએ.

બેકપ્રોપેગેશન અલ્ગોરિધમમાં, ભૂલની સપાટીના ઢાળ વેક્ટરની ગણતરી કરવામાં આવે છે. આ વેક્ટર વર્તમાન બિંદુથી સપાટી પરના સૌથી ટૂંકા વંશની દિશા સૂચવે છે, ચળવળ જે ભૂલમાં ઘટાડો તરફ દોરી જાય છે. ઘટતા પગલાઓનો ક્રમ ઓછામાં ઓછા એક અથવા બીજા પ્રકાર તરફ દોરી જશે. અહીં મુશ્કેલી એ પગલાઓની લંબાઈ પસંદ કરવાનો મુદ્દો છે.

મુ મોટા કદપગલું, કન્વર્જન્સ ઝડપી હશે, પરંતુ ઉકેલ પર અથવા કિસ્સામાં કૂદવાનું જોખમ છે જટિલ આકારખોટી દિશામાં જવા માટે ભૂલની સપાટીઓ, ઉદાહરણ તરીકે, ઢોળાવવાળી સાંકડી કોતર સાથે આગળ વધવું, એક બાજુથી બીજી તરફ કૂદકો મારવો. તેનાથી વિપરીત, જ્યારે નાનું પગલુંઅને યોગ્ય દિશામાં જવા માટે ઘણી બધી પુનરાવર્તનોની જરૂર પડશે. વ્યવહારમાં, સ્ટેપનું કદ ઢોળાવની ઢાળના પ્રમાણસર તરીકે લેવામાં આવે છે, જેથી અલ્ગોરિધમ ન્યૂનતમની નજીક ધીમો પડી જાય. યોગ્ય પસંદગીશીખવાની ઝડપ પર આધાર રાખે છે ચોક્કસ કાર્યઅને સામાન્ય રીતે પ્રાયોગિક રીતે કરવામાં આવે છે. આ અચલ સમય પર પણ આધાર રાખે છે, જેમ જેમ અલ્ગોરિધમ આગળ વધે તેમ ઘટતું જાય છે.

સામાન્ય રીતે આ અલ્ગોરિધમને વેગ (અથવા જડતા) શબ્દનો સમાવેશ કરવા માટે સંશોધિત કરવામાં આવે છે. આ એક નિશ્ચિત દિશામાં પ્રગતિને પ્રોત્સાહન આપે છે, તેથી જો એક જ દિશામાં ઘણા પગલાં લેવામાં આવ્યા હોય, તો અલ્ગોરિધમ ઝડપને વધારે છે, જે તમને કેટલીકવાર સ્થાનિક લઘુત્તમ ટાળવા તેમજ સપાટ વિસ્તારોમાંથી ઝડપથી પસાર થવા દે છે.

એલ્ગોરિધમના દરેક પગલા પર, બધા તાલીમ ઉદાહરણો બદલામાં નેટવર્ક ઇનપુટને ખવડાવવામાં આવે છે, નેટવર્કના વાસ્તવિક આઉટપુટ મૂલ્યોની તુલના જરૂરી મૂલ્યો સાથે કરવામાં આવે છે, અને ભૂલની ગણતરી કરવામાં આવે છે. ભૂલનું મૂલ્ય તેમજ ભૂલની સપાટીની ઢાળ

ભીંગડાને સમાયોજિત કરવા માટે વપરાય છે, જેના પછી બધી ક્રિયાઓ પુનરાવર્તિત થાય છે. જ્યારે ચોક્કસ સંખ્યામાં યુગ પસાર થઈ જાય, અથવા જ્યારે ભૂલ ચોક્કસ નાના સ્તરે પહોંચે, અથવા જ્યારે ભૂલ ઘટતી અટકે ત્યારે શીખવાની પ્રક્રિયા બંધ થાય છે.

ચાલો આપણે ન્યુરલ નેટવર્કના સામાન્યીકરણ અને ફરીથી તાલીમની સમસ્યાઓને વધુ વિગતવાર ધ્યાનમાં લઈએ. સામાન્યીકરણ એ ન્યુરલ નેટવર્કની ક્ષમતા છે જે મૂળ તાલીમ સમૂહ સાથે સંબંધિત ન હોય તેવા ડેટા પર ચોક્કસ આગાહી કરવાની ક્ષમતા છે. ઓવરફિટિંગ એ ઓવરફિટિંગ છે જે ત્યારે થાય છે જ્યારે તાલીમ અલ્ગોરિધમ ખૂબ લાંબો સમય લે છે અને નેટવર્ક કાર્ય અથવા ઉપલબ્ધ ડેટાની માત્રા માટે ખૂબ જટિલ છે.

ચાલો આપણે ન્યુરલ નેટવર્ક દ્વારા નહીં, પરંતુ બહુપદીના માધ્યમથી ચોક્કસ અવલંબનને અંદાજિત કરવાના ઉદાહરણનો ઉપયોગ કરીને સામાન્યીકરણ અને પુનઃપ્રશિક્ષણની સમસ્યાઓ દર્શાવીએ, અને ઘટનાનો સાર એકદમ સમાન હશે.

બહુપદી આલેખ હોઈ શકે છે અલગ આકાર, અને પદોની ડિગ્રી અને સંખ્યા જેટલી વધારે છે, આ ફોર્મ વધુ જટિલ હોઈ શકે છે. પ્રારંભિક ડેટા માટે, તમે બહુપદી વળાંક (મોડલ) પસંદ કરી શકો છો અને આમ હાલની અવલંબનનું સમજૂતી મેળવી શકો છો. ડેટા ઘોંઘાટીયા હોઈ શકે છે, તેથી શ્રેષ્ઠ મોડલ બધા ઉપલબ્ધ બિંદુઓમાંથી બરાબર પસાર થાય તેવું માની શકાય નહીં. લો-ઓર્ડર બહુપદી વર્તમાન અવલંબનને વધુ સારી રીતે સમજાવી શકે છે, જો કે, તે અંદાજિત ડેટા માટે પૂરતું લવચીક માધ્યમ નથી, જ્યારે બહુપદી ઉચ્ચ ક્રમખૂબ લવચીક હોઈ શકે છે, પરંતુ વાસ્તવિક સંબંધ સાથે કોઈ લેવાદેવા ન હોય તેવું જટિલ સ્વરૂપ લેતી વખતે ડેટાને બરાબર અનુસરશે.

ન્યુરલ નેટવર્ક્સ સમાન મુશ્કેલીઓનો સામનો કરે છે. સાથે નેટવર્ક્સ મોટી સંખ્યામાંવજન ઉપર મોડલ કરવામાં આવે છે જટિલ કાર્યોઅને તેથી ઓવરટ્રેનિંગની સંભાવના છે. ઓછા વજનવાળા નેટવર્ક્સ હાલની અવલંબનને મોડેલ કરવા માટે પૂરતા લવચીક ન હોઈ શકે. ઉદાહરણ તરીકે, છુપાયેલા સ્તરો વિનાનું નેટવર્ક ફક્ત એક સામાન્ય રેખીય કાર્યનું મોડેલ કરે છે.

કેવી રીતે પસંદ કરવું યોગ્ય ડિગ્રીનેટવર્ક જટિલતા? લગભગ હંમેશા વધુ જટિલ નેટવર્ક નાની ભૂલ પેદા કરે છે, પરંતુ આ સૂચવતું નથી સારી ગુણવત્તામોડેલ, પરંતુ નેટવર્કને ફરીથી તાલીમ આપવા વિશે.

ઉકેલ બેન્ચમાર્ક ક્રોસ-વેલિડેશનનો ઉપયોગ કરવાનો છે. આ હેતુ માટે, તાલીમ નમૂનાનો એક ભાગ આરક્ષિત છે, જેનો ઉપયોગ બેકપ્રોપેગેશન અલ્ગોરિધમનો ઉપયોગ કરીને નેટવર્કને તાલીમ આપવા માટે નહીં, પરંતુ અલ્ગોરિધમ દરમિયાન પરિણામની સ્વતંત્ર દેખરેખ માટે થાય છે. કામની શરૂઆતમાં, તાલીમ પર નેટવર્ક ભૂલ આવી અને

નિયંત્રણ સેટ સમાન હશે. જેમ જેમ નેટવર્ક પ્રશિક્ષિત થાય છે તેમ, પ્રશિક્ષણ ભૂલ ઘટે છે, જેમ કે નિયંત્રણ સેટ પરની ભૂલ થાય છે. જો કંટ્રોલ એરર ઘટતી અટકે છે અથવા તો વધવાનું શરૂ કરે છે, તો આ સૂચવે છે કે નેટવર્કે ડેટાને ખૂબ નજીકથી (ઓવરટ્રેઇન્ડ) કરવાનું શરૂ કર્યું છે અને તાલીમ બંધ કરવી જોઈએ. જો આવું થાય, તો છુપાયેલા તત્વો અને/અથવા સ્તરોની સંખ્યા ઘટાડવી જોઈએ, કારણ કે નેટવર્ક આ કાર્ય માટે ખૂબ શક્તિશાળી છે. જો બંને ભૂલો (તાલીમ અને ક્રોસ-વેલિડેશન) પર્યાપ્ત નાના સ્તર સુધી પહોંચી ન હોય, તો કુદરતી રીતે ફરીથી તાલીમ આપવામાં આવી ન હતી, અને નેટવર્ક, તેનાથી વિપરિત, હાલની અવલંબનને મોડેલ કરવા માટે પૂરતું શક્તિશાળી નથી.

વર્ણવેલ સમસ્યાઓ એ હકીકત તરફ દોરી જાય છે કે જ્યારે વ્યવહારુ કામન્યુરલ નેટવર્ક્સ સાથે, તમારે મોટી સંખ્યામાં વિવિધ નેટવર્ક્સ સાથે પ્રયોગ કરવો પડશે, કેટલીકવાર તેમાંથી દરેકને ઘણી વખત તાલીમ આપવી પડશે અને પરિણામોની તુલના કરવી પડશે. પરિણામની ગુણવત્તાનું મુખ્ય સૂચક નિયંત્રણ ભૂલ છે. તે જ સમયે, સિસ્ટમ-વ્યાપી સિદ્ધાંત અનુસાર, લગભગ સમાન નિયંત્રણ ભૂલોવાળા બે નેટવર્કના, સરળ હોય તે પસંદ કરવાનું અર્થપૂર્ણ છે.

પુનરાવર્તિત પ્રયોગોની જરૂરિયાત એ હકીકત તરફ દોરી જાય છે કે નિયંત્રણ સમૂહ મોડેલ પસંદ કરવામાં મુખ્ય ભૂમિકા ભજવવાનું શરૂ કરે છે અને શીખવાની પ્રક્રિયાનો ભાગ બને છે. આ તેની ભૂમિકાને નબળી બનાવે છે સ્વતંત્ર માપદંડમોડેલની ગુણવત્તા. મુ મોટી સંખ્યામાંપ્રયોગો છે ઉચ્ચ સંભાવનાઆપે છે તે સારું નેટવર્ક પસંદ કરો સારું પરિણામનિયંત્રણ સેટ પર. જો કે, અંતિમ મોડલને યોગ્ય વિશ્વસનીયતા આપવા માટે, તેઓ ઘણીવાર (જ્યારે તાલીમ ઉદાહરણોની માત્રા તેને મંજૂરી આપે છે) નીચે મુજબ કરે છે: ઉદાહરણોનો એક પરીક્ષણ સેટ અનામત રાખો. તાલીમ અને ઉદાહરણોના પરીક્ષણ સેટ પર પ્રાપ્ત પરિણામો વાસ્તવિક છે અને શીખવાની પ્રક્રિયાની કલાકૃતિઓ નથી તેની ખાતરી કરવા માટે આ સમૂહના ડેટા પર અંતિમ મોડેલનું પરીક્ષણ કરવામાં આવે છે. અલબત્ત, તેની ભૂમિકા સારી રીતે ભજવવા માટે, ટેસ્ટ સેટનો ઉપયોગ ફક્ત એક જ વાર થવો જોઈએ: જો તેનો ફરીથી ઉપયોગ શીખવાની પ્રક્રિયાને સમાયોજિત કરવા માટે કરવામાં આવે, તો તે અસરકારક રીતે નિયંત્રણ સમૂહમાં ફેરવાઈ જશે.

નેટવર્ક પ્રશિક્ષણ પ્રક્રિયાને ઝડપી બનાવવા માટે, એરર બેકપ્રોપેગેશન અલ્ગોરિધમના અસંખ્ય ફેરફારોની દરખાસ્ત કરવામાં આવી છે, જેનાં ઉપયોગ સાથે સંકળાયેલ છે. વિવિધ કાર્યોભૂલો, દિશા અને પગલાના કદ નક્કી કરવા માટેની પ્રક્રિયાઓ.

1) ભૂલ કાર્યો:

પ્રશિક્ષણ ઉદાહરણોના સમગ્ર સેટ પર અભિન્ન ભૂલ કાર્યો;

પૂર્ણાંક અને અપૂર્ણાંક શક્તિઓના ભૂલ કાર્યો

2) દરેક પુનરાવર્તન પર પગલાનું કદ નક્કી કરવા માટેની પ્રક્રિયાઓ

દ્વિભાષા;

જડતા સંબંધો (ઉપર જુઓ);

3) પગલાની દિશા નક્કી કરવા માટેની પ્રક્રિયાઓ.

સેકન્ડ ઓર્ડર ડેરિવેટિવ્ઝના મેટ્રિક્સનો ઉપયોગ કરીને (ન્યૂટનની પદ્ધતિ);

કેટલાક પગલાઓમાં દિશાઓનો ઉપયોગ કરવો (પાર્ટન પદ્ધતિ).

કડક શબ્દોમાં કહીએ તો, બેકપ્રોપેગેશન પદ્ધતિ એ નેટવર્ક પુનઃગણતર કાર્યની વિશેષતાઓ પર આધારિત, ઝડપથી ઢાળની ગણતરી કરવા માટેની પદ્ધતિ છે જે ઢાળની ગણતરી કરવાની કોમ્પ્યુટેશનલ જટિલતાને ઘટાડે છે. પદ્ધતિ પ્રશિક્ષિત જોડાણોના છેલ્લા સ્તરના વજનના સંદર્ભમાં આંશિક ડેરિવેટિવ્ઝની ગણતરી કરવા માટે નેટવર્ક આઉટપુટ પરની ભૂલનો ઉપયોગ કરે છે, પછી અંતિમ સ્તરના આઉટપુટ પરની ભૂલ છેલ્લા સ્તરના વજનનો ઉપયોગ કરીને નક્કી કરવામાં આવે છે અને નેટવર્ક ભૂલ અને પ્રક્રિયા પુનરાવર્તિત થાય છે.

અલ્ગોરિધમનું વર્ણન

બેકપ્રોપગેશન એવા મલ્ટિલેયર નેટવર્ક્સને લાગુ પડે છે જેમના ચેતાકોષો સતત વ્યુત્પન્ન સાથે બિનરેખીયતા ધરાવે છે, જેમ કે:

વ્યુત્પન્નની ગણતરીની સરળતાને કારણે આ પ્રકારની બિનરેખીયતા અનુકૂળ છે:

નેટવર્કને તાલીમ આપવા માટે, સિગ્નલ વેક્ટરની પી જોડીનો ઉપયોગ કરવામાં આવે છે: ઇનપુટ વેક્ટર I અને વેક્ટર જે નેટવર્ક ડીના આઉટપુટ પર પ્રાપ્ત થવો જોઈએ. નેટવર્ક, માં સરળ કેસ, N સ્તરો ધરાવે છે, અને અનુગામી સ્તરના દરેક ચેતાકોષો સાથે જોડાણો દ્વારા અગાઉના સ્તરના તમામ ચેતાકોષો સાથે જોડાયેલા છે, જેમાં w [n] વજન છે.

પ્રત્યક્ષ પ્રસાર સાથે, દરેક સ્તર માટે સ્તરના આઉટપુટ પર કુલ સિગ્નલ (S [n]) અને ચેતાકોષના આઉટપુટ પર સિગ્નલની ગણતરી કરવામાં આવે છે (અને સંગ્રહિત). આમ, n-th સ્તરના i-th ચેતાકોષના ઇનપુટ પરનો સંકેત:

અહીં w (i,j) એ nમા સ્તરના જોડાણોનું વજન છે. ન્યુરોન આઉટપુટ સિગ્નલની ગણતરી કુલ સિગ્નલમાં ચેતાકોષની બિનરેખીયતાને લાગુ કરીને કરવામાં આવે છે.

આઉટપુટ લેયર સિગ્નલ x[N] ને નેટવર્ક Oનું આઉટપુટ સિગ્નલ માનવામાં આવે છે.

નેટવર્ક O અને સિગ્નલ ડીના આઉટપુટ સિગ્નલના આધારે, જે આપેલ ઇનપુટ માટે નેટવર્ક આઉટપુટ પર મેળવવો જોઈએ, નેટવર્ક ભૂલની ગણતરી કરવામાં આવે છે. સામાન્ય રીતે, તાલીમ સમૂહના તમામ વેક્ટર પરના વિચલનના સરેરાશ ચોરસનો ઉપયોગ થાય છે:

નેટવર્કને તાલીમ આપવા માટે, નેટવર્ક વજન પર ભૂલ કાર્યના ઢાળનો ઉપયોગ થાય છે. બેકપ્રોપેગેશન એલ્ગોરિધમમાં ભૂલના "સિગ્નલને બેકપ્રોપેગેટ કરીને" ભૂલ કાર્યના ઢાળની ગણતરીનો સમાવેશ થાય છે. પછી કનેક્શન વજનના સંદર્ભમાં ભૂલના આંશિક વ્યુત્પન્નની ગણતરી સૂત્રનો ઉપયોગ કરીને કરવામાં આવે છે:

અહીં d એ નેટવર્ક શેષ છે, જે આઉટપુટ લેયર માટે ભૂલ કાર્યનો ઉપયોગ કરીને ગણવામાં આવે છે:

અને છુપાયેલા સ્તરો માટે - અગાઉના સ્તરની વિસંગતતા અનુસાર:

ભૂલના કાર્ય તરીકે સિગ્મોઇડ બિનરેખીયતા અને સરેરાશ ચોરસ વિચલનના કિસ્સામાં:

નેટવર્કની વાસ્તવિક તાલીમમાં આવા વજન મૂલ્યો શોધવાનો સમાવેશ થાય છે જે નેટવર્ક આઉટપુટ પરની ભૂલને ઘટાડે છે. આ સમસ્યાને ઉકેલવા માટે ગ્રેડિયન્ટ-આધારિત અથવા ઢાળ-આધારિત ઘણી પદ્ધતિઓ ઉપલબ્ધ છે. સૌથી સરળ કિસ્સામાં, નેટવર્કને ગ્રેડિયન્ટ વેક્ટરની વિરુદ્ધ દિશામાં કનેક્શન વજનના નાના ઇન્ક્રીમેન્ટનો ઉપયોગ કરીને તાલીમ આપવામાં આવે છે:

આ શીખવાની પદ્ધતિને "ગ્રેડિયન્ટ ડિસેન્ટ ઑપ્ટિમાઇઝેશન" કહેવામાં આવે છે અને, ન્યુરલ નેટવર્ક્સના કિસ્સામાં, તેને ઘણીવાર બેકપ્રોપગેશન પદ્ધતિનો ભાગ ગણવામાં આવે છે.

ફંક્શન એપ્રોક્સિમેશનના ઉદાહરણનો ઉપયોગ કરીને ભૂલ બેકપ્રોપેગેશન અલ્ગોરિધમનો અમલ

સોંપણી: દલીલ મૂલ્યોનું ટેબલ હોવા દો ( x i ) અને અનુરૂપ કાર્ય મૂલ્યો ( f(x i )) (આ કોષ્ટક કેટલાક વિશ્લેષણાત્મક ગણતરીઓ દરમિયાન ઉદ્ભવ્યું હશે આપેલ કાર્યમાં પ્રતિકાર પર વર્તમાનની અવલંબનને ઓળખવા માટે પ્રયોગ હાથ ધરતી વખતે વિદ્યુત નેટવર્કવચ્ચેના જોડાણને ઓળખતી વખતે સૌર પ્રવૃત્તિઅને કાર્ડિયોલોજી સેન્ટરની મુલાકાતોની સંખ્યા, ખેડૂતોને સબસિડીની રકમ અને કૃષિ ઉત્પાદનના જથ્થા વચ્ચે, વગેરે).

મેટલેબ વાતાવરણમાં, કોષ્ટક-નિર્દિષ્ટ કાર્ય, i=1, 20 નો અંદાજ કાઢવા માટે ન્યુરલ નેટવર્કનું નિર્માણ અને તાલીમ આપવી જરૂરી છે. ન્યુરલ નેટવર્ક એપ્રોક્સિમેશન અલ્ગોરિધમનો અમલ કરે અને ગ્રાફના રૂપમાં અંદાજિત પરિણામો પ્રદર્શિત કરતા પ્રોગ્રામનો વિકાસ કરો.

અંદાજ એ હકીકતમાં સમાવિષ્ટ છે કે, f (x) પર ઉપલબ્ધ માહિતીનો ઉપયોગ કરીને, અમે અંદાજિત કાર્ય z (x) ને ધ્યાનમાં લઈ શકીએ છીએ જે અમુક અર્થમાં f (x) ની નજીક છે, જે અમને તેના પર અનુરૂપ કામગીરી કરવા અને મેળવવાની મંજૂરી આપે છે. આવા રિપ્લેસમેન્ટની ભૂલનો અંદાજ.

અંદાજનો સામાન્ય રીતે અર્થ થાય છે કેટલાકનું વર્ણન, કેટલીકવાર સ્પષ્ટ રીતે ઉલ્લેખિત નથી, અવલંબન અથવા અન્ય, સામાન્ય રીતે સરળ અથવા વધુ સમાન અવલંબનનો ઉપયોગ કરીને તેને રજૂ કરતા ડેટાનો સમૂહ. ઘણીવાર ડેટા વ્યક્તિગત એન્કર પોઈન્ટના રૂપમાં હોય છે, જેના કોઓર્ડિનેટ્સ ડેટા ટેબલ દ્વારા નિર્દિષ્ટ કરવામાં આવે છે. અંદાજિત પરિણામ નોડ પોઈન્ટમાંથી પસાર થઈ શકશે નહીં. તેનાથી વિપરીત, પ્રક્ષેપનું કાર્ય નોડ પોઈન્ટની નજીકમાં ડેટા શોધવાનું છે. આ હેતુ માટે, યોગ્ય કાર્યોનો ઉપયોગ કરવામાં આવે છે, જેનાં મૂલ્યો નોડલ બિંદુઓ પર આ બિંદુઓના કોઓર્ડિનેટ્સ સાથે સુસંગત છે.

કાર્ય. મેટલેબ વાતાવરણમાં, ટેબલ-નિર્દિષ્ટ કાર્યને અંદાજિત કરવા માટે ન્યુરલ નેટવર્કનું નિર્માણ અને તાલીમ આપવી જરૂરી છે (આકૃતિ 5 જુઓ).

આકૃતિ 5. મેટલેબ ગાણિતિક વાતાવરણમાં, કમાન્ડ વિન્ડોમાં, અમે ન્યુરલ નેટવર્ક બનાવવા અને તાલીમ આપવા માટેના પ્રોગ્રામ માટે કોડ લખીએ છીએ.

આને ઉકેલવા માટે, અમે newff (.) ફંક્શનનો ઉપયોગ કરીશું - બેકપ્રોપેગેશન પદ્ધતિનો ઉપયોગ કરીને તાલીમ સાથે "શાસ્ત્રીય" મલ્ટિલેયર ન્યુરલ નેટવર્ક બનાવવું, એટલે કે. આઉટપુટ લેયર પર નિર્ધારિત ન્યુરલ નેટવર્કના વાસ્તવિક અને સાચા પ્રતિભાવો વચ્ચેના તફાવતને ધ્યાનમાં લેતા સિનેપ્સ વજનમાં ફેરફાર થાય છે, જે સિગ્નલ ફ્લો તરફ વિરુદ્ધ દિશામાં પ્રચાર કરે છે. નેટવર્કમાં બે છુપાયેલા સ્તરો હશે. પ્રથમ સ્તરમાં 5 ચેતાકોષો છે, બીજું - 1. પ્રથમ સ્તરનું સક્રિયકરણ કાર્ય "ટેન્સિગ" છે (સિગ્મોઇડ કાર્ય, - 1 થી 1 ની શ્રેણીમાં મૂલ્યો સાથે આઉટપુટ વેક્ટર પરત કરે છે), બીજું - "પ્યુરેલિન" ( રેખીય કાર્યસક્રિયકરણ, આઉટપુટ વેક્ટર્સને અપરિવર્તિત પરત કરે છે). 100 તાલીમ યુગો હશે. તાલીમ કાર્ય "trainlm" - એક કાર્ય જે નેટવર્કને તાલીમ આપે છે (મૂળભૂત રીતે વપરાય છે કારણ કે તે સૌથી વધુ ઝડપી શિક્ષણ, પરંતુ ઘણી બધી મેમરીની જરૂર છે).

પ્રોગ્રામ કોડ:

પી = શૂન્ય (1, 20);

i = 1 માટે: 20% એરે બનાવટ P (i) = i*0.1; %ઇનપુટ (દલીલ) અંત T= ; %ઇનપુટ (ફંક્શન વેલ્યુ) નેટ = newff ([-1 2.09], ,("tansig" "purelin")); %એક ન્યુરલ નેટવર્ક નેટનું નિર્માણ. ટ્રેન પરમ. યુગ = 100; % તાલીમ યુગની સંખ્યા સેટ કરો નેટ = ટ્રેન (નેટ, પી, ટી); % નેટવર્ક તાલીમ y = સિમ(નેટ,પી); % પ્રશિક્ષિત નેટવર્ક મતદાન આકૃતિ(1);

પ્લોટ(P,T,P,y,"o"),ગ્રીડ; %સ્રોત ડેટા અને ન્યુરલ નેટવર્ક દ્વારા જનરેટ થયેલ કાર્યનો ગ્રાફ દોરવા.

ન્યુરલ નેટવર્કનું પરિણામ.

તાલીમ પરિણામ (જુઓ. આકૃતિ 2): આલેખ ન્યુરલ નેટવર્કનો તાલીમ સમય અને તાલીમ ભૂલ બતાવે છે. આ ઉદાહરણમાં, ન્યુરલ નેટવર્ક 100 -2.35 (0.00455531) સુધી પહોંચતા, ધીમે ધીમે શીખવા અને ભૂલોને ઘટાડીને તમામ 100 યુગોમાંથી પસાર થયું.

આકૃતિ 2. ન્યુરલ નેટવર્ક તાલીમનું પરિણામ

મૂળ ડેટાનો આલેખ અને ન્યુરલ નેટવર્ક દ્વારા જનરેટ થયેલ કાર્ય (ફિગ. 3 જુઓ): વર્તુળો મૂળ ડેટા સૂચવે છે, અને રેખા ન્યુરલ નેટવર્ક દ્વારા જનરેટ થયેલ કાર્ય સૂચવે છે. આગળ, પ્રાપ્ત બિંદુઓનો ઉપયોગ કરીને, તમે રીગ્રેસન બનાવી શકો છો અને અંદાજિત સમીકરણ મેળવી શકો છો (આકૃતિ 8 જુઓ). અમે ક્યુબિક રીગ્રેસનનો ઉપયોગ કર્યો છે કારણ કે તેનો ગ્રાફ સૌથી વધુ ચોક્કસ રીતે પ્રાપ્ત બિંદુઓમાંથી પસાર થાય છે. પરિણામી સમીકરણ આના જેવું લાગે છે:

y=0.049x 3 +0.88x 2 -0.006x+2.1.

આમ, આપણે જોઈએ છીએ કે ન્યુરલ નેટવર્કનો ઉપયોગ કરીને, તમે ફંક્શનને ઝડપથી શોધી શકો છો, ફક્ત તે બિંદુઓના કોઓર્ડિનેટ્સને જાણીને જેમાંથી તે પસાર થાય છે.

આકૃતિ 3. મૂળ ડેટાનો ગ્રાફ અને ન્યુરલ નેટવર્ક દ્વારા જનરેટ થયેલ કાર્ય


આકૃતિ 4. આશરે કાર્યનો ગ્રાફ

નેટવર્કને તાલીમ આપવાનો ધ્યેય તેના વજનને સમાયોજિત કરવાનો છે જેથી ઇનપુટ્સના ચોક્કસ સેટનો ઉપયોગ આઉટપુટના જરૂરી સમૂહ તરફ દોરી જાય. સંક્ષિપ્તતા માટે, ઇનપુટ્સ અને આઉટપુટના આ સેટને વેક્ટર કહેવામાં આવશે. તાલીમ દરમિયાન, એવું માનવામાં આવે છે કે દરેક ઇનપુટ વેક્ટર માટે તેની સાથે એક લક્ષ્ય વેક્ટર જોડાયેલ છે, જે જરૂરી આઉટપુટને સ્પષ્ટ કરે છે. એકસાથે તેઓને તાલીમ જોડી કહેવામાં આવે છે. સામાન્ય રીતે, નેટવર્કને ઘણી જોડી પર તાલીમ આપવામાં આવે છે.

તાલીમ શરૂ થાય તે પહેલાં, બધા વજનને નાના પ્રારંભિક મૂલ્યો અસાઇન કરવા જોઈએ, જે રેન્ડમ પર પસંદ કરવામાં આવે છે. આ સુનિશ્ચિત કરે છે કે નેટવર્ક મોટા વજનથી સંતૃપ્ત થતું નથી અને અન્ય સંખ્યાબંધ પેથોલોજીકલ કેસોને અટકાવે છે. ઉદાહરણ તરીકે, જો બધા વજન સમાન આપવામાં આવે પ્રારંભિક મૂલ્યો, અને જરૂરી કામગીરી માટે અસમાન મૂલ્યોની જરૂર છે, પછી નેટવર્ક શીખવા માટે સમર્થ હશે નહીં.

બેકપ્રોપેગેશન નેટવર્કને તાલીમ આપવાની જરૂર છે

નીચેની ક્રિયાઓ કરો:

1. તાલીમ સમૂહમાંથી આગલી તાલીમ જોડી પસંદ કરો, નેટવર્ક ઇનપુટ પર ઇનપુટ વેક્ટર સબમિટ કરો.

2. નેટવર્ક આઉટપુટની ગણતરી કરો.

3. નેટવર્ક આઉટપુટ અને જરૂરી આઉટપુટ વચ્ચેના તફાવતની ગણતરી કરો (તાલીમ જોડીનું લક્ષ્ય વેક્ટર)

4. નેટવર્કના વજનને સમાયોજિત કરો જેથી કરીને ભૂલને ઓછી કરી શકાય.

5. જ્યાં સુધી સમગ્ર સેટ પરની ભૂલ સ્વીકાર્ય સ્તર સુધી ન પહોંચે ત્યાં સુધી તાલીમ સેટના દરેક વેક્ટર માટે પગલાં 1 થી 4 નું પુનરાવર્તન કરો.

પગલાં 1 અને 2 દ્વારા કરવામાં આવતી કામગીરી જ્યારે નેટવર્ક પહેલેથી જ પ્રશિક્ષિત હોય ત્યારે કરવામાં આવતી કામગીરી જેવી જ હોય ​​છે, એટલે કે. ઇનપુટ વેક્ટર આપવામાં આવે છે અને પરિણામી આઉટપુટની ગણતરી કરવામાં આવે છે. ગણતરીઓ સ્તર દ્વારા કરવામાં આવે છે. ફિગ. 3 માં, લેયર j ના ચેતાકોષોના આઉટપુટની પ્રથમ ગણતરી કરવામાં આવે છે, પછી તેનો ઉપયોગ લેયર k ના ઇનપુટ તરીકે થાય છે, લેયર k ના ન્યુરોન્સના આઉટપુટની ગણતરી કરવામાં આવે છે, જે નેટવર્કના આઉટપુટ વેક્ટર બનાવે છે.

પગલું 3 માં, દરેક નેટવર્ક આઉટપુટ, જે ફિગ. 3 માં OUT લેબલ થયેલ છે, ભૂલ મેળવવા માટે લક્ષ્ય વેક્ટરના અનુરૂપ ઘટકમાંથી બાદબાકી કરવામાં આવે છે. આ ભૂલનો ઉપયોગ નેટવર્ક વજનને સમાયોજિત કરવા માટે પગલું 4 માં કરવામાં આવે છે, જેમાં લર્નિંગ અલ્ગોરિધમ (નીચે જુઓ) દ્વારા નિર્ધારિત વજનમાં ફેરફારની નિશાની અને તીવ્રતા છે.

આ ચાર પગલાંના પર્યાપ્ત પુનરાવર્તન પછી, વાસ્તવિક આઉટપુટ અને લક્ષ્ય આઉટપુટ વચ્ચેનો તફાવત સ્વીકાર્ય મૂલ્ય સુધી ઘટવો જોઈએ, અને નેટવર્ક શીખી ગયું હોવાનું કહેવાય છે. હવે નેટવર્કનો ઉપયોગ ઓળખ માટે થાય છે અને વજન બદલાતું નથી.

1 અને 2 પગલાંને "ફોરવર્ડ પાસ" તરીકે જોઈ શકાય છે કારણ કે સિગ્નલ નેટવર્ક દ્વારા ઇનપુટથી આઉટપુટ સુધી પ્રસારિત થાય છે. પગલાં 3, 4 એ "બેકપાસ" ની રચના કરે છે, અહીં ગણતરી કરેલ ભૂલ સિગ્નલ નેટવર્ક દ્વારા પાછા પ્રસારિત થાય છે અને વજનને સમાયોજિત કરવા માટે વપરાય છે. આ બે પાસ હવે વિગતવાર અને વધુ ગાણિતિક સ્વરૂપમાં વ્યક્ત કરવામાં આવશે.

આગળ પેસેજ.પગલાં 1 અને 2 માં વ્યક્ત કરી શકાય છે વેક્ટર ફોર્મનીચે પ્રમાણે: ઇનપુટ વેક્ટર આપવામાં આવે છે એક્સઅને આઉટપુટ વેક્ટર છે વાય. વેક્ટર ઇનપુટ-લક્ષ્ય જોડી એક્સઅને ટીતાલીમ સમૂહમાંથી લેવામાં આવે છે. ગણતરીઓ વેક્ટર પર હાથ ધરવામાં આવે છે એક્સઆઉટપુટ વેક્ટર મેળવવા માટે વાય.

આપણે જોયું તેમ, મલ્ટિલેયર નેટવર્ક્સમાં ગણતરી ઈનપુટની સૌથી નજીકના સ્તરથી શરૂ કરીને સ્તર દ્વારા કરવામાં આવે છે. પ્રથમ સ્તરમાં દરેક ચેતાકોષનું NET મૂલ્ય ન્યુરોનના ઇનપુટ્સના ભારિત સરવાળા તરીકે ગણવામાં આવે છે. સક્રિયકરણ કાર્ય F પછી NET ને "સંકુચિત" કરે છે અને તે સ્તરમાં દરેક ચેતાકોષ માટે આઉટ મૂલ્ય ઉત્પન્ન કરે છે. જ્યારે લેયરનો આઉટપુટ સેટ પ્રાપ્ત થાય છે, ત્યારે તે આગામી લેયર માટે ઇનપુટ સેટ બની જાય છે. જ્યાં સુધી નેટવર્ક આઉટપુટનો અંતિમ સેટ ન મળે ત્યાં સુધી પ્રક્રિયાને સ્તર દ્વારા પુનરાવર્તિત કરવામાં આવે છે.

આ પ્રક્રિયાને વેક્ટર નોટેશનનો ઉપયોગ કરીને કન્ડેન્સ્ડ સ્વરૂપમાં વ્યક્ત કરી શકાય છે. ન્યુરોન્સ વચ્ચેના વજનને મેટ્રિક્સ તરીકે ગણી શકાય ડબલ્યુ. ઉદાહરણ તરીકે, સ્તર 2 માં ચેતાકોષ 8 થી સ્તર 3 માં ન્યુરોન 5 સુધીનું વજન w 8.5 સૂચવવામાં આવે છે. પછી સ્તરનું NET વેક્ટર એનઉત્પાદનોના સરવાળા તરીકે નહીં, પરંતુ ઉત્પાદન તરીકે વ્યક્ત કરી શકાય છે એક્સઅને ડબલ્યુ. વેક્ટર નોટેશનમાં એન= XW. NET વેક્ટર પર F ફંક્શનને ઘટક રીતે લાગુ કરીને એનઆઉટપુટ વેક્ટર પ્રાપ્ત થાય છે વિશે. આમ, આપેલ સ્તર માટે, ગણતરીની પ્રક્રિયા નીચેના અભિવ્યક્તિ દ્વારા વર્ણવવામાં આવે છે:

=F( XW) (3)

એક સ્તરનું આઉટપુટ વેક્ટર એ બીજા માટેનું ઇનપુટ વેક્ટર છે.

રિવર્સ પાસ. આઉટપુટ લેયરના વજનને સમાયોજિત કરવું. આઉટપુટ લેયરમાં દરેક ચેતાકોષ માટે લક્ષ્ય મૂલ્ય નિર્દિષ્ટ કરવામાં આવ્યું હોવાથી, ફેરફાર કરેલા ડેલ્ટા નિયમનો ઉપયોગ કરીને વજનનું ગોઠવણ સરળતાથી હાથ ધરવામાં આવે છે. આંતરિક સ્તરોને "છુપાયેલા સ્તરો" કહેવામાં આવે છે અને તેમના આઉટપુટની તુલના કરવા માટે કોઈ લક્ષ્ય મૂલ્યો નથી. તેથી, શીખવું વધુ મુશ્કેલ બને છે.

છેલ્લા સ્તરની તાલીમ ફિગ. 2.4

ફિગ માં. આકૃતિ 2.4 ન્યુરોન p થી એક વજન માટે શીખવાની પ્રક્રિયા દર્શાવે છે.

છુપાયેલા સ્તરમાં j થી ન્યુરોન q આઉટપુટ સ્તર k માં. સ્તર k ચેતાકોષનું આઉટપુટ, લક્ષ્ય મૂલ્ય (લક્ષ્ય) માંથી બાદબાકી, ભૂલ સંકેત આપે છે. આ તે સ્તર 6 ચેતાકોષ માટે ગણતરી કરેલ સંકોચન કાર્યના વ્યુત્પન્ન દ્વારા ગુણાકાર કરવામાં આવે છે, આમ મૂલ્ય d આપે છે.

પછી d ને ન્યુરોન j ના OUT મૂલ્ય વડે ગુણાકાર કરવામાં આવે છે, જેમાંથી પ્રશ્નમાં વજન આવે છે. આ ઉત્પાદન બદલામાં શીખવાના દર પરિબળ h (સામાન્ય રીતે 0.01 અને 1.0 વચ્ચે) દ્વારા ગુણાકાર કરવામાં આવે છે અને પરિણામ વજનમાં ઉમેરવામાં આવે છે. છુપાયેલા સ્તરના ચેતાકોષથી આઉટપુટ સ્તરમાંના ચેતાકોષ સુધીના દરેક વજન માટે સમાન પ્રક્રિયા કરવામાં આવે છે.

નીચેના સમીકરણો આ ગણતરીને સમજાવે છે:

Dw pq, k = hd q, k OUT p, j (2.5)

w pq,k (n+1) = w pq, k (n) + Dw pq, k (2.6)

જ્યાં w pq, k (n) એ છુપાયેલા સ્તરમાં ન્યુરોન h થી સ્ટેપ n (સુધારણા પહેલા) ના આઉટપુટ લેયરમાં ન્યુરોન q સુધીના વજનનું મૂલ્ય છે, નોંધ કરો કે ઇન્ડેક્સ k એ સ્તરનો સંદર્ભ આપે છે જેમાં આ વજન સમાપ્ત થાય છે , એટલે કે, આ પુસ્તકમાં અપનાવેલ સંમેલન અનુસાર, જેની સાથે તે એકીકૃત છે; w pq, k (n+1) - સ્ટેપ n+1 પર વજન મૂલ્ય (સુધારણા પછી), આઉટપુટ લેયર k માં ચેતાકોષ માટે d q, k - d મૂલ્ય, OUT p, j - માં ન્યુરોન p માટે આઉટ મૂલ્ય છુપાયેલ સ્તર જે.

છુપાયેલા સ્તરના વજનને સમાયોજિત કરવું. આઉટપુટ લેયરની પહેલાના છુપાયેલા સ્તરમાં એક ન્યુરોનનો વિચાર કરો. જેમ જેમ તે આગળ વધે છે તેમ, આ ચેતાકોષ તેના આઉટપુટ સિગ્નલને આઉટપુટ લેયરમાં રહેલા ચેતાકોષોને જોડતા વજન દ્વારા પ્રસારિત કરે છે. તાલીમ દરમિયાન, આ વજન ઉલટા ક્રમમાં કાર્ય કરે છે, આઉટપુટ સ્તરમાંથી d ની કિંમતને છુપાયેલા સ્તર પર પાછું પસાર કરે છે. આ દરેક વજનને ન્યુરોનના d મૂલ્ય દ્વારા ગુણાકાર કરવામાં આવે છે જેની સાથે તે આઉટપુટ લેયરમાં જોડાયેલ છે. છુપાયેલા સ્તર ન્યુરોન માટે જરૂરી મૂલ્ય d આવા તમામ ઉત્પાદનોનો સરવાળો કરીને અને કમ્પ્રેશન ફંક્શનના વ્યુત્પન્ન દ્વારા ગુણાકાર કરીને મેળવવામાં આવે છે:

(ફિગ 5 જુઓ) એકવાર d નું મૂલ્ય પ્રાપ્ત થઈ જાય, પછી પ્રથમ છુપાયેલા સ્તરને ખવડાવતા વજનને સમીકરણો (5) અને (6) નો ઉપયોગ કરીને સમાયોજિત કરી શકાય છે, જ્યાં સ્તર અનુસાર સૂચકાંકોમાં ફેરફાર કરવામાં આવે છે.

આંતરિક સ્તરની તાલીમ ફિગ. 2.5

આપેલ છુપાયેલા સ્તરમાં દરેક ચેતાકોષ માટે, d ની ગણતરી કરવી આવશ્યક છે અને આ સ્તર સાથે સંકળાયેલા તમામ વજનને સમાયોજિત કરવું આવશ્યક છે. જ્યાં સુધી તમામ વજન સમાયોજિત ન થાય ત્યાં સુધી આ પ્રક્રિયાને ઈનપુટ તરફ સ્તર દ્વારા પુનરાવર્તિત કરવામાં આવે છે.

વેક્ટર નોટેશનનો ઉપયોગ કરીને, એરર બેકપ્રોપગેશન ઓપરેશન વધુ સઘન રીતે લખી શકાય છે. ચાલો આઉટપુટ લેયરના વેલ્યુઝના સેટને D k તરીકે અને આઉટપુટ લેયરના વજનના સેટને એરે W k તરીકે દર્શાવીએ. ડીજે મેળવવા માટે, આઉટપુટ લેયરનું ડી-વેક્ટર, નીચેની બે ક્રિયાઓ પૂરતી છે:

1. છુપાયેલા સ્તરને આઉટપુટ સ્તર સાથે જોડતા ટ્રાન્સપોઝ્ડ વેઇટ મેટ્રિક્સ W k દ્વારા આઉટપુટ લેયર D k ના d-વેક્ટરનો ગુણાકાર કરો.

2. છુપાયેલા સ્તરમાં અનુરૂપ ચેતાકોષના સંકોચન કાર્યના વ્યુત્પન્ન દ્વારા પરિણામી ઉત્પાદનના દરેક ઘટકને ગુણાકાર કરો.

સાંકેતિક સંકેતમાં:

,

જ્યાં $ ઓપરેટર વેક્ટરના ઘટક-વાર ઉત્પાદન સૂચવે છે. O j એ લેયર j નું આઉટપુટ વેક્ટર છે અને I એક વેક્ટર છે જેના બધા ઘટકો 1 ની બરાબર છે.

નેટવર્ક લકવો.નેટવર્ક તાલીમ પ્રક્રિયા દરમિયાન, કરેક્શનના પરિણામે વજનના મૂલ્યો ખૂબ મોટા થઈ શકે છે. આના પરિણામે તમામ અથવા મોટાભાગના ચેતાકોષો ખૂબ જ કામ કરી શકે છે મોટા મૂલ્યોઆઉટ, પ્રદેશમાં જ્યાં કમ્પ્રેશન ફંક્શનનું વ્યુત્પન્ન ખૂબ નાનું છે. શીખવાની પ્રક્રિયા દરમિયાન પાછી મોકલવામાં આવેલી ભૂલ આ વ્યુત્પન્નના પ્રમાણસર હોવાથી, શીખવાની પ્રક્રિયા વ્યવહારીક રીતે સ્થિર થઈ શકે છે. સૈદ્ધાંતિક દ્રષ્ટિકોણથી, આ સમસ્યા નબળી રીતે સમજી શકાય છે. આ સામાન્ય રીતે સ્ટેપ સાઇઝ n ને ઘટાડીને ટાળવામાં આવે છે, પરંતુ આ તાલીમનો સમય વધારે છે. લકવો અટકાવવા અથવા પુનઃપ્રાપ્ત કરવા માટે વિવિધ હ્યુરિસ્ટિક્સનો ઉપયોગ કરવામાં આવ્યો છે, પરંતુ હાલમાં તે માત્ર પ્રાયોગિક ગણી શકાય.

સ્થાનિક મિનિમા.બેકપ્રોપેગેશન ગ્રેડિએન્ટ ડિસેન્ટની વિવિધતાનો ઉપયોગ કરે છે, એટલે કે. ન્યૂનતમ તરફ વજનને સતત સમાયોજિત કરીને, ભૂલની સપાટીથી નીચે ખસે છે. જટિલ નેટવર્કની ભૂલ સપાટી ખૂબ જ કઠોર હોય છે અને તેમાં ટેકરીઓ, ખીણો, ફોલ્ડ્સ અને ઉચ્ચ-પરિમાણીય જગ્યામાં કોતરોનો સમાવેશ થાય છે. નેટવર્ક પ્રવેશી શકે છે સ્થાનિક લઘુત્તમ(છીછરી ખીણ) જ્યારે નજીકમાં ઘણી ઊંડી નીચી હોય છે. સ્થાનિક લઘુત્તમ બિંદુ પર, બધી દિશાઓ ઉપર તરફ નિર્દેશ કરે છે, અને નેટવર્ક તેમાંથી છટકી શકતું નથી. આંકડાકીય શિક્ષણ પદ્ધતિઓ આ મુશ્કેલીને ટાળવામાં મદદ કરી શકે છે, પરંતુ તે ધીમી છે. એક પદ્ધતિ પ્રસ્તાવિત છે જે કાશા મશીનની આંકડાકીય પદ્ધતિઓને બેકપ્રોપેગેશન ગ્રેડિયન્ટ ડિસેન્ટ સાથે જોડે છે અને એવી સિસ્ટમ તરફ દોરી જાય છે જે સાચવતી વખતે વૈશ્વિક લઘુત્તમ શોધે છે. ઊંચી ઝડપબેકપ્રોપગેશન પ્રકરણમાં આની ચર્ચા કરવામાં આવી છે. 5.

પગલું કદ.કન્વર્જન્સ પ્રૂફની સાવચેતીપૂર્વકની તપાસ બતાવે છે કે વજનમાં સુધારાઓ અસંખ્ય હોવાનું માનવામાં આવે છે. સ્પષ્ટપણે, આ વ્યવહારમાં શક્ય નથી, કારણ કે તે અનંત શીખવાની વળાંક તરફ દોરી જાય છે. પગલાનું કદ મર્યાદિત તરીકે લેવું જોઈએ, અને આ બાબતમાં વ્યક્તિએ ફક્ત અનુભવ પર આધાર રાખવો જોઈએ. જો સ્ટેપનું કદ ખૂબ નાનું હોય, તો કન્વર્જન્સ ખૂબ ધીમું હોય છે, પરંતુ જો તે ખૂબ મોટું હોય, તો લકવો અથવા સતત અસ્થિરતા આવી શકે છે.

અસ્થાયી અસ્થિરતા.જો નેટવર્ક અક્ષરોને ઓળખવાનું શીખે છે, તો A ને ભૂલી જવાનો કોઈ અર્થ નથી શીખવાની પ્રક્રિયા એવી હોવી જોઈએ કે જે પહેલાથી જ શીખ્યા છે તેને છોડ્યા વિના સમગ્ર તાલીમ સેટ પર નેટવર્કને પ્રશિક્ષિત કરવામાં આવે. કન્વર્જન્સ પ્રૂફમાં, આ શરત પૂરી થાય છે, પરંતુ તે પણ જરૂરી છે કે નેટવર્કને વજનને સમાયોજિત કરવામાં આવે તે પહેલાં તાલીમ સેટના તમામ વેક્ટર સાથે રજૂ કરવામાં આવે. વજનમાં જરૂરી ફેરફારોની ગણતરી સમગ્ર સેટ પર થવી જોઈએ, અને આ જરૂરી છે વધારાની મેમરી; આવા સંખ્યાબંધ તાલીમ ચક્ર પછી, વજન ન્યૂનતમ ભૂલમાં ફેરવાઈ જશે. જો નેટવર્ક સતત બદલાતા બાહ્ય વાતાવરણમાં હોય તો આ પદ્ધતિ નકામી હોઈ શકે છે, જેથી તે જ વેક્ટર બીજી વખત પુનરાવર્તિત ન થાય. આ કિસ્સામાં, શીખવાની પ્રક્રિયા ક્યારેય એકરૂપ થઈ શકતી નથી, ઉદ્દેશ્ય વિના ભટકતી હોય છે અથવા જંગલી રીતે ઓસીલેટ કરતી હોય છે. આ અર્થમાં, બેકપ્રોપગેશન જૈવિક પ્રણાલીઓથી વિપરીત છે.



શું તમને લેખ ગમ્યો? તમારા મિત્રો સાથે શેર કરો!