miniatura|400px|Xarxa neuronal artificial perceptró simple amb 3 neurones d'entrada, 4 neurones en la seva capa oculta i una neurona de sortida. Una xarxa neuronal artificial (XNA), o senzillament xarxa neuronal (XN) és un paradigma d'aprenentatge i processament automàtic inspirat en la forma en què funciona el sistema nerviós dels animals. Es tracta d'un sistema d'interconnexió de neurones en una xarxa que col·labora per produir un estímul de sortida. Aquest conjunt de neurones artificials interconnectades que utilitza un model matemàtic o computacional de processament de dades basat en una aproximació connexionista per a la computació. Dins l'entorn d'intel·ligència artificial és freqüent referir-se a elles com xarxes de neurones o xarxes neuronals.

Els investigadors no es posen d'acord a l'hora de definir què és una xarxa neuronal, però la majoria coincideix a dir que es tracta d'una xarxa d'elements de processament relativament simples en què el funcionament global es troba determinat per les connexions entre els elements de processament i els paràmetres d'aquests. La inspiració original de la tècnica es va extraure de l'estudi de les xarxes bioelèctriques del cervell que estan formades per neurones i per les sinapsis d'aquestes (vegeu xarxa neuronal biològica). En un model de xarxa neuronal, els nodes (també anomenats neurones, neurodes, elements de processament o unitats) estan connectats per formar una xarxa de nodes i, per això, s'anomena xarxa neuronal.

Funcionament Les xarxes neuronals consisteixen en una simulació de les propietats observades en els sistemes neuronals biològics a través de models matemàtics recreats mitjançant mecanismes artificials (com un circuit integrat, un ordinador o un conjunt de vàlvules). L'objectiu és aconseguir que les màquines donin respostes similars a les que és capaç de donar el cervell que es caracteritzen per la seva generalització i la seva robustesa.

miniatura|perceptró amb 2 entrades. Una xarxa neuronal es compon d'unitats anomenades neurones. Cada neurona rep una sèrie d'entrades a través d'interconnexions i emet una sortida. Aquesta sortida ve donada per tres funcions:

Una funció de propagació (també coneguda com a funció d'excitació), que generalment consisteix en el sumatori de cada entrada multiplicada pel pes del seu interconnexió (valor net). Si el pes és positiu, la connexió s'anomena excitadora , si és negatiu, s'anomena inhibitòria . Una funció d'activació, que modifica l'anterior. Pot no existir, en aquest cas, la sortida és la mateixa funció de propagació. Una funció de transferència, que s'aplica al valor retornat per la funció d'activació. S'utilitza per a limitar la sortida de la neurona i generalment ve donada per la interpretació que vulguem donar-li a aquestes sortides. Algunes de les més utilitzades són la funció sigmoide (per obtenir valors en l'interval [0,1]) i la tangent hiperbòlica (per obtenir valors en l'interval [-1,1]).

Disseny i programació d'una xarxa neuronal Amb un paradigma convencional de programació a enginyeria del programari, l'objectiu del programador és modelar matemàticament (amb diferents graus de formalisme) el problema en qüestió i posteriorment formular una solució (programa) mitjançant un algorisme codificat que tingui una sèrie de propietats que permetin resoldre aquest problema. En contraposició, l'aproximació basada en les xarxes neuronals part d'un conjunt de dades d'entrada prou significatiu i l'objectiu és aconseguir que la xarxa aprengui automàticament les propietats desitjades. En aquest sentit, el disseny de la xarxa té menys a veure amb qüestions com els fluxos de dades i la detecció de condicions, i més a veure amb qüestions com ara la selecció del model de xarxa, la de les variables a incorporar i el preprocessament de la informació que formarà el conjunt d'entrenament. Així mateix, el procés pel qual els paràmetres de la xarxa s'adeqüen a la resolució de cada problema no es denomina genèricament programació sinó que se sol anomenar entrenament neuronal.

Per exemple en una xarxa que s'aplicarà al diagnòstic d'imatges mèdiques; durant la fase d'entrenament el sistema rep imatges de teixits que se sap són cancerígens i teixits que se sap són sans, així com les respectives classificacions d'aquestes imatges. Si l'entrenament és l'adequat, una vegada conclòs, el sistema podrà rebre imatges de teixits no classificats i obtenir la seva classificació sa /no sa amb un bon grau de seguretat. Les variables d'entrada poden ser des dels punts individuals de cada imatge fins a un vector de característiques de les mateixes que es puguin incorporar al sistema (per exemple, procedència anatòmica del teixit de la imatge o l'edat del pacient a qui se li va extreure la mostra).

Estructura lang=none|miniatura|Una xarxa neuronal és un conjunt de nodes interconectats, paregut al l'extensíssima xarxa de neurones al cervell humà. Com el cervell, una xarxa neuronal artificial és un conjunt paral·lel d'unitats de processament petites i simples on les interconnexions constitueixen una gran part de la intel·ligència de la xarxa. No obstant això, les xarxes neuronals artificials són prou diferents del cervell pel que fa a l'estructura. Per exemple, una xarxa neuronal és molt més menuda que el cervell. A més, les unitats utilitzades en una xarxa neuronal són, generalment, molt més simples que les neurones. Tot i això, algunes funcions que semblen exclusives del cervell, com és el cas de l'aprenentatge, s'han reproduït a escala més senzilla en les xarxes neuronals.

La majoria dels científics coincideixen que una xarxa neuronal és molt diferent en termes d'estructura d'un cervell animal. Igual que el cervell, una xarxa neuronal es compon d'un conjunt massivament paral·lel d'unitats de procés molt simples i és en les connexions entre aquestes unitats on resideix la intel·ligència de la xarxa. No obstant això, en termes d'escala, un cervell és molt més gran que qualsevol xarxa neuronal creada fins a l'actualitat, i les neurones artificials també són més simples que la seva contrapartida animal.

Biològicament, un cervell aprèn mitjançant la reorganització de les connexions sinàptiques entre les neurones que el componen. De la mateixa manera, les XNA tenen un gran nombre de processadors virtuals interconnectats que de forma simplificada simulen la funcionalitat de les neurones biològiques. En aquesta simulació, la reorganització de les connexions sinàptiques biològiques es modela mitjançant un mecanisme de pesos , que són ajustats durant la fase d'aprenentatge. En una xarxa neuronal entrenada, el conjunt dels pesos determina el coneixement d'aquesta XNA i té la propietat de resoldre el problema per al qual la xarxa neuronal ha estat entrenada.

D'altra banda, en una xarxa neuronal, a més dels pesos i les connexions, cada neurona té associada una funció matemàtica anomenada funció de transferència. Aquesta funció genera el senyal de sortida de la neurona a partir dels senyals d'entrada. L'entrada de la funció és la suma de tots els senyals d'entrada pel pes associat a la connexió d'entrada del senyal. Alguns exemples d'entrades són la funció graó de Heaviside, la lineal o mixta, la sigmoide i la funció gaussiana, recordant que la funció de transferència és la relació entre el senyal de sortida i l'entrada.

Models En una xarxa neuronal típica, cada node funciona gairebé com una neurona biològica. En una neurona biològica, cada sinapsi d'entrada té un pes associat. Quan el pes de cada sinapsi, multiplicat per la seva entrada, se suma a totes les sinapsis entrants i aquesta suma és major que algun «valor llindar», la neurona es dispara i envia un valor a una altra neurona de la xarxa. El node típic d'una xarxa neuronal intenta emular aquest funcionament. Cada node conté un conjunt de línies d'entrada que són anàlogues a les sinapsis d'entrada d'una neurona biològica. A més, cada node té una «funció d'activació» (coneguda també com a «funció de transferència») que li indica quan ha de disparar-se, semblant a allò que ocorre en una neurona biològica. En la seva forma més senzilla, aquesta funció d'activació pot generar un valor «1» si l'entrada sumada és major que algun valor, però si això no es produeix, generarà un valor «0». No obstant això, les funcions d'activació no sempre són tan senzilles. De fet, per crear xarxes que puguen realitzar una tasca útil, les funcions d'activació quasi sempre han de ser més complexes per a, almenys, alguns dels nodes de la xarxa.

Una xarxa neuronal feedforward, un dels tipus de xarxes neuronals més comuns, està formada per un conjunt de nodes i connexions. Aquests nodes s'organitzen en capes. Generalment, les connexions es formen connectant cadascun dels nodes d'una determinada capa a totes les neurones de la següent capa. D'aquesta manera, tots els nodes d'una determinada capa estan connectats a tots els nodes de la següent.

Normalment, en una xarxa neuronal feedforward hi ha almenys tres capes: una capa d'entrada, una capa oculta i una capa de sortida. La capa d'entrada no processa res, ja que és en aquesta on el vector de dades alimenta la xarxa. Així doncs, la capa d'entrada alimenta la capa oculta i aquesta, al seu torn, alimenta la capa de sortida. El processament real de la xarxa té lloc en els nodes de la capa oculta i de la capa de sortida.

Quan un nombre suficient de neurones estan connectades en capes, la xarxa es pot «entrenar» per fer tasques útils usant un algorisme d'entrenament. Les xarxes feedforward, en concret, si estan entrenades apropiadament, són molts útils per fer tasques intel·ligents de classificació o d'identificació d'informació desconeguda.

Càlculs La corba sigmoïdal sovint s'utilitza com a funció de transferència perquè aquesta introdueix no-linealitat en els càlculs de la xarxa en delimitar el nivell d'activació de la neurona a un interval [0,1]. La funció sigmoïdal compta amb l'avantatge addicional de tenir una funció derivable molt simple, tal com cal per retropropagar els errors a través d'una xarxa neuronal feedforward. A més, poden utilitzar-se altres funcions amb característiques semblants. Majoritàriament, s'usa la funció tanh que delimita les activacions en l'interval [-1, 1] encara que, de vegades, també s'usa una funció lineal piece-wise que simplement talla l'activació en compte de delimitar-la. miniatura|Funció sigmoïdal utilitzada com a funció d'activació de les neurones Si no s'introdueix no-linealitat que la delimita o la talla, la xarxa perd gran part del seu poder computacional i es converteix en una senzilla operació de multiplicació de matrius de l'àlgebra lineal.

Altres models de càlculs alternatius de les xarxes neuronals inclouen models amb bucles en què s'utilitzen processos amb retard i models el guanyador s'ho emporta tot on la neurona amb el major valor de càlcul pren un valor 1 i totes les altres neurones prenen el valor 0.

Normalment, els pesos d'una xarxa neuronal s'inicien en uns valors aleatoris baixos. Açò mostra que la xarxa no té cap mena de coneixement; la seua sortida és, bàsicament, una funció aleatòria de l'entrada. A mesura que el procés d'entrenament avança, els pesos de les connexions es modifiquen gradualment segons les regles computacionals específiques de l'algorisme d'aprenentatge que s'utilitza. Finalment, els pesos ideals convergeixen en uns valors que els permeten realitzar un càlcul útil. Es pot dir que, al començament, les xarxes neuronals no tenen cap mena de coneixement i tracten d'obtenir algun tipus de coneixement real, encara que aquest és subsimbòlic.

Avantatges Les xarxes neuronals artificials tenen molts avantatges pel fet que estan basades en l'estructura del sistema nerviós, principalment el cervell.