Las redes neuronales son la base del Deep Learninng el cuál es el avance más significativo del la inteligencia artificial en estos años,estat tecnología que existe desde el siglo pasado pero que al fin se pudo refinar hasta hace una década permite reconocimineto de imágenes, traducción de idiomas y mucho más.

Partimos por la base: ¿Qué es una neurona?

La neurona es una unidad matemática que realiza un solo cálculo (de primer orden) el cuál pasara por la función de activación. explicaremos estos con mas detalle.

Cálculo realizado en la neurona

El cálculo involucra uno a más datos ingresados inputs \(X_n\),a los cuales se les asigna un peso weight \(W_n\) y otro tipo especial de peso llamado bias \(b\).

Aquí podemos ver una nurona con 3 inputs.

El cálculo que haría la neurona sería: \[\begin{equation} f(x)= X_0*W_o+X_1*W_1+X_2*W_2 + b \end{equation}\]

Para crear las neurona que estamos viendo el en el gráfico podemos usar:

#Importamos las librería
from tensorflow import keras
from tensorflow.keras import layers

# Cremos la neurona
model = keras.Sequential([
    layers.Dense(units=1, input_shape=[3])
])

Describiendo los argumentos:

  • units define cuanta neuronas crearemos, en este caso 1
  • input_shape, dentro de una lista [] se indica el número de inputs, en este caso 3.

La nuerona crea una linea, un plano o un hiper plano dependiendo de la cantidad de dimensiones ingresadas (En este caso un plano).

El problema aquí es que siempre se tratan de funciones lineales, por tal motivo si sumamos muchas funciones lineales obtendremos otra lineal. Esto genera un porblema, el de que no se pueden hacer curvas o planos doblados, por tal porblema que es necesaria la función de activación.

Función de activación

La función de activación, cómo se comentó anteriormente, es necesaria para darle la característica no lineal al sumar las neuronas.
Se aplica una simple función a los resultados del cálculo, las mas comun es Rectifier linera unit tambien llamada ReLU

\[\begin{equation} ReLU= max(0,y) \end{equation}\]
Selecciona el valor máximo entre o y el output de la neurona (y)

Para implementar la función de activación en tensorflow

from tensorflow import keras
from tensorflow.keras import layers

model = keras.Sequential([
    layers.Dense(units=1, activation='relu', input_shape=[3])
    ])

Describiendo los argumentos:

  • activation, aquí podemos seleccionar entre diferentes funciones de activación cómo relu,softmax o sigmoide.

Ahora si, Redes Neuronales ¿Que són?

Pues las redes nuronales, son simplemente acumular redes neuronales con dos configuraciones: aumentar las capas o aumentar las neuronas por capa.
Las capas se dividen en:

Preparamos una red neuronal de 3 capas

Prepararemos una red neuronal con la capa de input con 2 datos, 2 capas ocultas y una capa de salida.

Para el diseño de la red neuronal, recopilamos los datos:

  • Input_shape será [2], por 2 datos de ingreso
  • Activation usaremos la función ‘relu’
  • La primera capa oculta tendrá cuatro neuronas y la segunda 3, entonces units serán 4 y 3 respectivamente.
  • La capa final será para regresión, entonces no añadiremos función de activación.

Podemos programarla en tensorflow de la siguiente manera:

from tensorflow import keras
from tensorflow.keras import layers

model = keras.Sequential([
    # capas ocultas
    layers.Dense(units=4, activation='relu', input_shape=[2]),
    layers.Dense(units=3, activation='relu'),
    # capa final lineal
    layers.Dense(units=1),
])

Quieres aprender mas acerca de redes neuronales

Aquí te dejo algunos enlaces y videos para que profundices en el tema.

Redes Neuronales: 1 La neurona

Red Neuronales: 2 La red neuronal

LS0tDQp0aXRsZTogIsK/UXXDqSBzb24gbGFzIHJlZGVzIG5ldXJvbmFsZXMgeSBjw7NtbyBmdW5jaW9uYW4/Ig0Kc3VidGl0bGU6ICJBcHJlbmRlIGPDs21vIGZ1bmNpb25hIHLDoXBpZGFtZW50ZSINCmF1dGhvcjogIkNsYXl0b24gSmhvcmRhbiBJbGlxdWluIFphdmFsZXRhIg0KZGF0ZTogIjMwIGRlIG1hcnpvLCAyMDIyIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCi0tLQ0KDQpMYXMgcmVkZXMgbmV1cm9uYWxlcyBzb24gbGEgYmFzZSBkZWwgKipEZWVwIExlYXJuaW5uZyoqIGVsIGN1w6FsIGVzIGVsIGF2YW5jZSBtw6FzIA0Kc2lnbmlmaWNhdGl2byBkZWwgbGEgaW50ZWxpZ2VuY2lhIGFydGlmaWNpYWwgZW4gZXN0b3MgYcOxb3MsZXN0YXQgdGVjbm9sb2fDrWEgcXVlIA0KZXhpc3RlIGRlc2RlIGVsIHNpZ2xvIHBhc2FkbyBwZXJvIHF1ZSBhbCBmaW4gc2UgcHVkbyByZWZpbmFyIGhhc3RhIGhhY2UgdW5hIGTDqWNhZGENCnBlcm1pdGUgcmVjb25vY2ltaW5ldG8gZGUgaW3DoWdlbmVzLCB0cmFkdWNjacOzbiBkZSBpZGlvbWFzIHkgbXVjaG8gbcOhcy4NCg0KIyBQYXJ0aW1vcyBwb3IgbGEgYmFzZTogwr9RdcOpIGVzIHVuYSBuZXVyb25hPw0KDQpMYSBuZXVyb25hIGVzIHVuYSB1bmlkYWQgbWF0ZW3DoXRpY2EgcXVlIHJlYWxpemEgdW4gc29sbyBjw6FsY3VsbyAoZGUgcHJpbWVyIG9yZGVuKSBlbCBjdcOhbCBwYXNhcmEgcG9yIA0KbGEgZnVuY2nDs24gZGUgYWN0aXZhY2nDs24uIGV4cGxpY2FyZW1vcyBlc3RvcyBjb24gbWFzIGRldGFsbGUuDQoNCiMjIEPDoWxjdWxvIHJlYWxpemFkbyBlbiBsYSBuZXVyb25hDQpFbCBjw6FsY3VsbyBpbnZvbHVjcmEgdW5vIGEgbcOhcyBkYXRvcyBpbmdyZXNhZG9zICppbnB1dHMqICRYX24kLGEgbG9zIGN1YWxlcyBzZSANCmxlcyBhc2lnbmEgdW4gcGVzbyAqd2VpZ2h0KiAkV19uJCB5IG90cm8gdGlwbyBlc3BlY2lhbCBkZSBwZXNvIGxsYW1hZG8gKmJpYXMqICRiJC4NCg0KPGNlbnRlcj4NCiFbXShodHRwczovL2kuaW1ndXIuY29tL3Z5WFNubFoucG5nKQ0KIA0KPC9jZW50ZXI+DQpBcXXDrSBwb2RlbW9zIHZlciB1bmEgbnVyb25hIGNvbiAzIGlucHV0cy4NCg0KDQpFbCBjw6FsY3VsbyBxdWUgaGFyw61hIGxhIG5ldXJvbmEgc2Vyw61hOg0KXGJlZ2lue2VxdWF0aW9ufQ0KZih4KT0gWF8wKldfbytYXzEqV18xK1hfMipXXzIgKyBiDQpcZW5ke2VxdWF0aW9ufQ0KDQpQYXJhIGNyZWFyIGxhcyBuZXVyb25hIHF1ZSBlc3RhbW9zIHZpZW5kbyBlbCBlbiBlbCBncsOhZmljbyBwb2RlbW9zIHVzYXI6DQpgYGBweXRob24NCiNJbXBvcnRhbW9zIGxhcyBsaWJyZXLDrWENCmZyb20gdGVuc29yZmxvdyBpbXBvcnQga2VyYXMNCmZyb20gdGVuc29yZmxvdy5rZXJhcyBpbXBvcnQgbGF5ZXJzDQoNCiMgQ3JlbW9zIGxhIG5ldXJvbmENCm1vZGVsID0ga2VyYXMuU2VxdWVudGlhbChbDQogICAgbGF5ZXJzLkRlbnNlKHVuaXRzPTEsIGlucHV0X3NoYXBlPVszXSkNCl0pDQoNCmBgYA0KDQpEZXNjcmliaWVuZG8gbG9zIGFyZ3VtZW50b3M6DQoNCg0KLSBgdW5pdHNgIGRlZmluZSBjdWFudGEgbmV1cm9uYXMgY3JlYXJlbW9zLCBlbiBlc3RlIGNhc28gMQ0KLSBgaW5wdXRfc2hhcGVgLCBkZW50cm8gZGUgdW5hIGxpc3RhIFtdIHNlIGluZGljYSBlbCBuw7ptZXJvIGRlIGlucHV0cywgZW4gZXN0ZSBjYXNvIDMuDQoNCg0KTGEgbnVlcm9uYSBjcmVhIHVuYSBsaW5lYSwgdW4gcGxhbm8gbyB1biBoaXBlciBwbGFubyBkZXBlbmRpZW5kbyBkZSBsYSBjYW50aWRhZCBkZSBkaW1lbnNpb25lcyBpbmdyZXNhZGFzIChFbiBlc3RlIGNhc28gdW4gcGxhbm8pLg0KDQoNCj5FbCBwcm9ibGVtYSBhcXXDrSBlcyBxdWUgc2llbXByZSBzZSB0cmF0YW4gZGUgZnVuY2lvbmVzIGxpbmVhbGVzLCBwb3IgdGFsIG1vdGl2byBzaSBzdW1hbW9zIG11Y2hhcyBmdW5jaW9uZXMgbGluZWFsZXMgb2J0ZW5kcmVtb3Mgb3RyYSBsaW5lYWwuDQo+IEVzdG8gZ2VuZXJhIHVuIHBvcmJsZW1hLCBlbCBkZSBxdWUgbm8gc2UgcHVlZGVuIGhhY2VyIGN1cnZhcyBvIHBsYW5vcyBkb2JsYWRvcywgcG9yIHRhbCBwb3JibGVtYSBxdWUgZXMgbmVjZXNhcmlhIGxhIGZ1bmNpw7NuIGRlIGFjdGl2YWNpw7NuLg0KDQoNCiMjIEZ1bmNpw7NuIGRlIGFjdGl2YWNpw7NuDQoNCkxhIGZ1bmNpw7NuIGRlIGFjdGl2YWNpw7NuLCBjw7NtbyBzZSBjb21lbnTDsyBhbnRlcmlvcm1lbnRlLCBlcyBuZWNlc2FyaWEgcGFyYSBkYXJsZSBsYSBjYXJhY3RlcsOtc3RpY2Egbm8gbGluZWFsIGFsIHN1bWFyIGxhcyBuZXVyb25hcy4gIA0KU2UgYXBsaWNhIHVuYSBzaW1wbGUgZnVuY2nDs24gYSBsb3MgcmVzdWx0YWRvcyBkZWwgY8OhbGN1bG8sIGxhcyBtYXMgY29tdW4gZXMgKioqUmVjdGlmaWVyIGxpbmVyYSB1bml0KioqIHRhbWJpZW4gbGxhbWFkYSAqKipSZUxVKioqDQoNClxiZWdpbntlcXVhdGlvbn0NClJlTFU9IG1heCgwLHkpDQpcZW5ke2VxdWF0aW9ufQ0KPGNlbnRlcj4NCipTZWxlY2Npb25hIGVsIHZhbG9yIG3DoXhpbW8gZW50cmUgbyB5IGVsIG91dHB1dCBkZSBsYSBuZXVyb25hICh5KSoNCjwvY2VudGVyPg0KPGNlbnRlcj4NCiFbXShodHRwczovL2kuaW1ndXIuY29tL2FlSXlBbEYucG5nKQ0KPC9jZW50ZXI+DQoNClBhcmEgaW1wbGVtZW50YXIgbGEgZnVuY2nDs24gZGUgYWN0aXZhY2nDs24gZW4gdGVuc29yZmxvdw0KDQpgYGBQeXRob24NCmZyb20gdGVuc29yZmxvdyBpbXBvcnQga2VyYXMNCmZyb20gdGVuc29yZmxvdy5rZXJhcyBpbXBvcnQgbGF5ZXJzDQoNCm1vZGVsID0ga2VyYXMuU2VxdWVudGlhbChbDQogICAgbGF5ZXJzLkRlbnNlKHVuaXRzPTEsIGFjdGl2YXRpb249J3JlbHUnLCBpbnB1dF9zaGFwZT1bM10pDQogICAgXSkNCg0KYGBgDQpEZXNjcmliaWVuZG8gbG9zIGFyZ3VtZW50b3M6IA0KDQoNCi0gYGFjdGl2YXRpb25gLCBhcXXDrSBwb2RlbW9zIHNlbGVjY2lvbmFyIGVudHJlIGRpZmVyZW50ZXMgZnVuY2lvbmVzIGRlIGFjdGl2YWNpw7NuIGPDs21vIHJlbHUsc29mdG1heCBvIHNpZ21vaWRlLg0KDQojIEFob3JhIHNpLCBSZWRlcyBOZXVyb25hbGVzIMK/UXVlIHPDs24/IA0KDQpQdWVzIGxhcyByZWRlcyBudXJvbmFsZXMsIHNvbiBzaW1wbGVtZW50ZSBhY3VtdWxhciByZWRlcyBuZXVyb25hbGVzIGNvbiBkb3MgY29uZmlndXJhY2lvbmVzOiBhdW1lbnRhciBsYXMgY2FwYXMgbyBhdW1lbnRhciBsYXMgbmV1cm9uYXMNCnBvciBjYXBhLiAgDQpMYXMgY2FwYXMgc2UgZGl2aWRlbiBlbjoNCg0KDQoNCi0gKipJbnB1dCoqIG8gKipJbmdyZXNvKiogIExhIGNhcGEgZGUgaW5ncmVzbw0KLSAqKkhpZGRlbioqIG8gKipPY3VsdGFzKiogTGFzIGNhcGFzIG9jdWx0YXMgZXN0w6FuIGVudHJlIGxhcyBkZSBpbmdyZXNvIHkgc2FsaWRhLg0KLSAqKk91dHB1dCoqIG8gKipTYWxpZGEqKiBFc3RhIGNhcGEgZXMgbGEgZmluYWwgeSBsbGV2YXLDoSBvIG5vIGZ1bmNpw7NuIGRlIGFjdGl2YWNpw7NuIGRlcGVuZGllbmRvIHNpIGVzIHVzYWRhIHBhcmEgY2xhc2lmaWNhY2nDs24gbyByZWdyZXNpw7NuLCByZXNwZWN0aXZhbWVudGUuDQoNCg0KIyMgUHJlcGFyYW1vcyB1bmEgcmVkIG5ldXJvbmFsIGRlIDMgY2FwYXMNClByZXBhcmFyZW1vcyB1bmEgcmVkIG5ldXJvbmFsIGNvbiBsYSBjYXBhIGRlIGlucHV0IGNvbiAyIGRhdG9zLCAyIGNhcGFzIG9jdWx0YXMgeSB1bmEgY2FwYSBkZSBzYWxpZGEuDQoNCjxjZW50ZXI+DQohW10oaHR0cHM6Ly9pLmltZ3VyLmNvbS9ZNWl3RlFaLnBuZykNCjwvY2VudGVyPg0KUGFyYSBlbCBkaXNlw7FvIGRlIGxhIHJlZCBuZXVyb25hbCwgcmVjb3BpbGFtb3MgbG9zIGRhdG9zOiANCg0KDQotIGBJbnB1dF9zaGFwZWAgc2Vyw6EgWzJdLCBwb3IgMiBkYXRvcyBkZSBpbmdyZXNvDQotIGBBY3RpdmF0aW9uYCB1c2FyZW1vcyBsYSBmdW5jacOzbiAncmVsdScNCi0gTGEgcHJpbWVyYSBjYXBhIG9jdWx0YSB0ZW5kcsOhIGN1YXRybyBuZXVyb25hcyB5IGxhIHNlZ3VuZGEgMywgZW50b25jZXMgYHVuaXRzYCBzZXLDoW4gNCB5IDMgcmVzcGVjdGl2YW1lbnRlLg0KLSBMYSBjYXBhIGZpbmFsIHNlcsOhIHBhcmEgcmVncmVzacOzbiwgZW50b25jZXMgbm8gYcOxYWRpcmVtb3MgZnVuY2nDs24gZGUgYWN0aXZhY2nDs24uDQoNCg0KUG9kZW1vcyBwcm9ncmFtYXJsYSBlbiB0ZW5zb3JmbG93IGRlIGxhIHNpZ3VpZW50ZSBtYW5lcmE6ICANCmBgYCBweXRob24NCmZyb20gdGVuc29yZmxvdyBpbXBvcnQga2VyYXMNCmZyb20gdGVuc29yZmxvdy5rZXJhcyBpbXBvcnQgbGF5ZXJzDQoNCm1vZGVsID0ga2VyYXMuU2VxdWVudGlhbChbDQogICAgIyBjYXBhcyBvY3VsdGFzDQogICAgbGF5ZXJzLkRlbnNlKHVuaXRzPTQsIGFjdGl2YXRpb249J3JlbHUnLCBpbnB1dF9zaGFwZT1bMl0pLA0KICAgIGxheWVycy5EZW5zZSh1bml0cz0zLCBhY3RpdmF0aW9uPSdyZWx1JyksDQogICAgIyBjYXBhIGZpbmFsIGxpbmVhbA0KICAgIGxheWVycy5EZW5zZSh1bml0cz0xKSwNCl0pDQoNCmBgYA0KDQojIFF1aWVyZXMgYXByZW5kZXIgbWFzIGFjZXJjYSBkZSByZWRlcyBuZXVyb25hbGVzDQoNCkFxdcOtIHRlIGRlam8gYWxndW5vcyBlbmxhY2VzIHkgdmlkZW9zIHBhcmEgcXVlIHByb2Z1bmRpY2VzIGVuIGVsIHRlbWEuICANCg0KDQotIFtBcHJlbmRlciByZWRlcyBuZXVyb25hbGVzIGNvbiBFZFhdKGh0dHBzOi8vd3d3LmVkeC5vcmcvZXMvYXByZW5kZS9yZWRlcy1uZXVyb25hbGVzKQ0KLSBbQmxvZyBtdXkgYnVlbm8gZGUgYXByZW5kZSBtYWNoaW5lIGxlYXJuaW5nXShodHRwczovL3d3dy5hcHJlbmRlbWFjaGluZWxlYXJuaW5nLmNvbS9jcmVhci11bmEtcmVkLW5ldXJvbmFsLWVuLXB5dGhvbi1kZXNkZS1jZXJvLykNCg0KIyMgUmVkZXMgTmV1cm9uYWxlczogMSBMYSBuZXVyb25hDQoNCjxpZnJhbWUgd2lkdGg9IjU2MCIgaGVpZ2h0PSIzMTUiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvTVJJdjJJd0ZUUGciIHRpdGxlPSJZb3VUdWJlIHZpZGVvIHBsYXllciIgZnJhbWVib3JkZXI9IjAiIGFsbG93ZnVsbHNjcmVlbiBkYXRhLWV4dGVybmFsPTE+PC9pZnJhbWU+DQoNCiMjIFJlZCBOZXVyb25hbGVzOiAyIExhIHJlZCBuZXVyb25hbA0KPGlmcmFtZSB3aWR0aD0iNTYwIiBoZWlnaHQ9IjMxNSIgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC91d2JIT3BwOXhrYyIgdGl0bGU9IllvdVR1YmUgdmlkZW8gcGxheWVyIiBmcmFtZWJvcmRlcj0iMCIgYWxsb3dmdWxsc2NyZWVuIGRhdGEtZXh0ZXJuYWw9MT48L2lmcmFtZT4NCg0KDQoNCg0K