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
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:
Input o Ingreso La capa de
ingreso
Hidden o Ocultas Las capas ocultas
están entre las de ingreso y salida.
Output o Salida Esta capa es la
final y llevará o no función de activación dependiendo si es usada para
clasificación o regresión, respectivamente.
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.