miniatura|307x307px|Neurona artificial que consisteix en dendrites, axó i funció llindar Una xarxa neuronal artificial (ANN) o xarxa neuronal combina principis biològics amb estadística avançada per resoldre problemes en dominis com el reconeixement de patrons i els jocs. Les xarxes neuronals artificials (ANN) adopten el model bàsic d'anàlegs neuronals connectats entre si de diverses maneres.

Estructura Neurona Una neurona amb etiqueta rebent una entrada de les neurones predecessores consta dels components següents:

una activació , l'estat de la neurona, depenent d'un paràmetre de temps discret, un llindar opcional , que es manté fix tret que es canviï mitjançant l'aprenentatge, una funció d'activació que calcula la nova activació en un moment donat de , i l'entrada neta donant lloc a la relació

i una funció de sortida càlcul de la sortida de l'activació

Sovint la funció de sortida és simplement la funció identitat.

Una neurona d'entrada no té predecessor, però serveix com a interfície d'entrada per a tota la xarxa. De la mateixa manera, una neurona de sortida no té successora i, per tant, serveix com a interfície de sortida de tota la xarxa.

Funció de propagació La funció de propagació calcula l'entrada a la neurona de les sortides i normalment té la forma

Biaix Es pot afegir un terme de biaix, canviant la forma a la següent:

on és un biaix.

Xarxes neuronals com a funcions Els models de xarxes neuronals es poden veure com la definició d'una funció que pren una entrada (observació) i produeix una sortida (decisió). o una distribució sobre o tots dos i . De vegades, els models estan íntimament associats amb una regla d'aprenentatge particular. Un ús comú de la frase "model ANN" és realment la definició d'una classe d'aquestes funcions (on els membres de la classe s'obtenen variant paràmetres, pesos de connexió o especificitats de l'arquitectura com ara el nombre de neurones, el nombre de capes o la seva connectivitat).

Matemàticament, la funció de xarxa d'una neurona es defineix com una composició d'altres funcions , que es pot descompondre encara més en altres funcions. Això es pot representar convenientment com una estructura de xarxa, amb fletxes que representen les dependències entre funcions. Un tipus de composició molt utilitzat és la suma ponderada no lineal, on , on (comunament anomenada funció d'activació) és una funció predefinida, com ara la tangent hiperbòlica, la funció sigmoide, la funció softmax o la funció rectificadora. La característica important de la funció d'activació és que proporciona una transició suau a mesura que canvien els valors d'entrada, és a dir, un petit canvi en l'entrada produeix un petit canvi en la sortida. El següent fa referència a un conjunt de funcions com a vector . miniatura|150x150px|Gràfic de dependència d'ANN Aquesta figura representa aquesta descomposició de , amb les dependències entre variables indicades per fletxes. Aquests es poden interpretar de dues maneres.

La primera vista és la vista funcional: l'entrada es transforma en un vector tridimensional , que després es transforma en un vector bidimensional , que finalment es transforma en . Aquesta perspectiva es troba més habitualment en el context de l'optimització.

La segona visió és la probabilística: la variable aleatòria depèn de la variable aleatòria , que depèn de , que depèn de la variable aleatòria . Aquesta vista es troba més habitualment en el context de models gràfics.

Les dues visions són en gran part equivalents. En qualsevol cas, per a aquesta arquitectura en particular, els components de les capes individuals són independents entre si (per exemple, els components de són independents entre si donada la seva entrada

). Això permet, naturalment, un cert grau de paral·lelisme en la implementació. miniatura|134x134px|Dues representacions separades del gràfic de dependència recurrent de les xarxes neuronals artificials Les xarxes com l'anterior s'anomenen comunament de prealimentació, perquè el seu graf és un graf acíclic dirigit. Les xarxes amb cicles s'anomenen comunament recurrents. Aquestes xarxes es representen habitualment de la manera que es mostra a la part superior de la figura, on es mostra com a dependent de si mateix. Tanmateix, no es mostra una dependència temporal implícita.

Retropropagació Els algoritmes d'entrenament de retropropagació es divideixen en tres categories:

descens més pronunciat (amb taxa d'aprenentatge i momentum variables, retropropagació resilient); quasi-Newton (Broyden–Fletcher–Goldfarb–Shanno, secant d'un pas); Gradient de Levenberg-Marquardt i gradient conjugat (actualització de Fletcher-Reeves, actualització de Polak-Ribiére, reinici de Powell-Beale, gradient conjugat escalat).

Algoritme Sigui una xarxa amb connexions, entrades i sortides.

A sota, denoten vectors en , vectors en , i vectors en . Aquests s'anomenen entrades, sortides i pesos, respectivament.

La xarxa correspon a una funció que, donat un pes , assigna una entrada a una sortida .

En l'aprenentatge supervisat, una seqüència d'exemples d'entrenament produeix una seqüència de pesos començant des d'un pes inicial , normalment escollits a l'atzar.

Aquests pesos es calculen al seu torn: primer calculeu utilitzant només per . La sortida de l'algoritme és llavors , donant una nova funció . El càlcul és el mateix a cada pas, per tant, només el cas es descriu.

es calcula a partir de considerant un pes variable i aplicant el descens de gradient a la funció per trobar un mínim local, començant a .

Aprenentatge de pseudocodi Per implementar l'algoritme anterior, es necessiten fórmules explícites per al gradient de la funció on la funció és .

L'algoritme d'aprenentatge es pot dividir en dues fases: propagació i actualització de pes.

Propagació La propagació implica els passos següents:

Propagació cap endavant a través de la xarxa per generar el(s) valor(s) de sortida Càlcul del cost (terme d'error) Propagació de les activacions de sortida a través de la xarxa utilitzant el patró d'entrenament objectiu per generar els deltes (la diferència entre els valors de sortida objectiu i real) de totes les neurones de sortida i ocultes.

Actualització de pes Per a cada pes:

Multipliqueu el delta de sortida del pes i l'activació d'entrada per trobar el gradient del pes. Resteu el percentatge del gradient del pes.

La taxa d'aprenentatge és el percentatge que influeix en la velocitat i la qualitat de l'aprenentatge. Com més gran sigui la relació, més ràpid s'entrena la neurona, però com més baixa sigui la relació, més precís serà l'entrenament. El signe del gradient d'un pes indica si l'error varia directament amb o inversament al pes. Per tant, el pes s'ha d'actualitzar en la direcció oposada, "descendent" el gradient.

Pseudocodi Pseudocodi per a un algorisme de descens de gradient estocàstic per entrenar una xarxa de tres capes (una capa oculta):initialize network weights (often small random values).

do

for each training example named ex do

prediction = neural-net-output(network, ex) // forward pass

actual = teacher-output(ex)

compute error (prediction - actual) at the output units

compute Δ𝑤ℎ for all weights from hidden layer to output layer // backward pass

compute Δ𝑤𝑖 for all weights from input layer to hidden layer // backward pass continued

update network weights // input layer not modified by error estimate

until error rate becomes acceptably low return the networkLes línies etiquetades com a "backward pass" es poden implementar mitjançant l'algoritme de retropropagació, que calcula el gradient de l'error de la xarxa respecte als pesos modificables de la xarxa.Werbos, Paul J. (1994). The Roots of Backpropagation. From Ordered Derivatives to Neural Networks and Political Forecasting. New York, NY: John Wiley & Sons, Inc.

Referències

Categoria:Intel·ligència artificial Categoria:Aprenentatge automàtic