¿Qué es el sesgo en la red neuronal artificial?

En una red neuronal artificial típica, cada neurona / actividad en una “capa” está conectada, a través de un peso, a cada neurona en la siguiente actividad. Cada una de estas actividades almacena algún tipo de cálculo, normalmente un compuesto de las actividades ponderadas en las capas anteriores.

Una unidad de sesgo es una neurona “extra” agregada a cada capa de pre-salida que almacena el valor de 1. Las unidades de sesgo no están conectadas a ninguna capa anterior y, en este sentido, no representan una verdadera “actividad”.

Eche un vistazo a la siguiente ilustración:

Las unidades de sesgo se caracterizan por el texto “+1”. Como puede ver, una unidad de polarización se agrega al inicio / final de la entrada y a cada capa oculta, y no está influenciada por los valores de la capa anterior. En otras palabras, estas neuronas no tienen conexiones entrantes.

Entonces, ¿por qué tenemos unidades de sesgo? Bueno, las unidades de polarización aún tienen conexiones salientes y pueden contribuir a la salida de la ANN. Llamemos a los pesos salientes de las unidades de polarización w_b. Ahora, veamos una red neuronal realmente simple que solo tiene una entrada y una conexión:

Digamos que act (), nuestra función de activación, es solo f (x) = x, o la función de identidad. En tal caso, nuestra ANN representaría una línea porque la salida es solo el peso (m) multiplicado por la entrada (x).

Cuando cambiamos nuestro peso w1, cambiaremos el gradiente de la función para que sea más pronunciada o más plana. Pero, ¿qué pasa con el desplazamiento vertical de la función? En otras palabras, ¿qué hay de establecer la intersección en y? ¡Esto es crucial para muchos problemas de modelado! Nuestros modelos óptimos pueden no pasar por el origen.

Entonces, sabemos que nuestra función output = w * input (y = mx) necesita tener este término constante agregado. En otras palabras, podemos decir output = w * input + w_b , donde w_b es nuestro término constante c. Sin embargo, cuando usamos redes neuronales o hacemos un aprendizaje de múltiples variables, nuestros cálculos se realizarán mediante álgebra lineal y aritmética matricial, por ejemplo. producto punto, multiplicación. Esto también se puede ver gráficamente en el ANN. Debe haber un número coincidente de pesos y actividades para que ocurra una suma ponderada. Debido a esto, necesitamos “agregar” un término de entrada adicional para poder agregar un término constante con él. Dado que uno multiplicado por cualquier valor es ese valor, simplemente “insertamos” un valor adicional de 1 en cada capa. Esto se llama la unidad de sesgo.

A partir de este diagrama, puede ver que ahora hemos agregado el término de sesgo y, por lo tanto, el peso w_b se agregará a la suma ponderada y se alimentará a través de la función de activación como un valor constante. Este término constante, también llamado “término de intercepción” (como lo demuestra el ejemplo lineal), desplaza la función de activación hacia la izquierda o hacia la derecha. También será la salida cuando la entrada sea cero.

Aquí hay un diagrama de cómo los diferentes pesos transformarán la función de activación (sigmoide en este caso) al aumentarla / disminuirla:

Pero ahora, al agregar la unidad de sesgo, existe la posibilidad de traducir la función de activación:

Volviendo al ejemplo de regresión lineal, si w_b es 1, entonces agregaremos sesgo * w_b = 1 * w_b = w_b a la función de activación. En el ejemplo con la línea, podemos crear una intersección en y que no sea cero:

Estoy seguro de que puede imaginar escenarios infinitos en los que la línea de mejor ajuste no pasa por el origen ni se acerca. Las unidades de sesgo son importantes con las redes neuronales de la misma manera.

Gracias por A2A.
A diferencia de otras respuestas aquí, trataré de explicar el sesgo en palabras simples sin profundizar en el cálculo o la teoría ANN. En un nivel muy básico, una red neuronal es una función, con valores de entrada y valores de salida. Denotemos esta función de la siguiente manera:

y = f (x)

Una red neuronal aprende mediante la acumulación de todos los fragmentos aprendidos por cada neurona. Esto es lo mismo que cómo podemos aproximar una función curva al juntar muchos segmentos de línea. (Imagen tomada de wikipedia: función lineal por partes – Wikipedia)

Digamos, por simplicidad, que la función de activación que elegimos para nuestras neuronas es una función lineal. Esto hace que el problema sea exactamente igual al que se muestra en el gráfico anterior. Nuestra pequeña red neuronal tiene que estimar la curva usando un grupo de segmentos lineales, que a su vez serán estimados por cada neurona. ( Si esto va por encima de la cabeza, te sugiero que juegues un poco con esta cosa increíble: Tensorflow – Neural Network Playground )

Ahora, consideremos una neurona. Dará una salida

y = w1 * a + w2 * b + w3 * c +….

para entradas (a, b, c …) y los pesos correspondientes (w1, w2, w3 …)

Así que ahora tenemos un pequeño módulo de aprendizaje que puede aprender cualquier función lineal. Podemos juntar muchos de estos pequeños módulos para aprender una función curva. Pero espera … ¿Dónde está la constante, dices? Está bien. Puede parecer que la función lineal anterior es un caso general, ¡pero realmente no tiene un término constante!

¡Y ahí es donde el sesgo viene al rescate! Elegimos una constante (típicamente 1 o -1) y dejamos que nuestra red neuronal decida el peso con el que se debe multiplicar el término constante para obtener la función deseada.

Espero que esto ayude.

Trataré de explicar la importancia del sesgo en términos del algoritmo de aprendizaje Perceptron . Tomando el ejemplo de la aprobación de crédito bancario en el que los atributos de los clientes, tales como edad, ingresos, préstamos existentes, etc. se consideran como entrada y se denotan como un vector X = {x1, x2, x3 … ..xd} y los pesos de estos atributos como W = {w1, w2, w3 …… wd}.

Tenga en cuenta que el sesgo también se conoce como umbral , que ahora tendrá más sentido para usted.

Digamos que el banco aprueba el crédito si [matemática] (\ sum_ {i = 1} ^ d WiXi [/ matemática] [matemática]> umbral) [/ matemática] y niega si es menor. Entonces, esta fórmula lineal se puede escribir como una hipótesis que es:

[matemática] h (x) = (\ sum_ {i = 1} ^ d WiXi-umbral) [/ matemática]

Supongamos que [matemática] umbral = -W0 [/ matemática], la ecuación anterior se puede reescribir como

[matemáticas] h (x) = signo ((\ sum_ {i = 1} ^ d WiXi) + W0) [/ matemáticas]

Introduciendo X0 = 1 en la ecuación.

[matemáticas] h (x) = signo ((\ sum_ {i = 1} ^ d WiXi) + W0X0) [/ matemáticas]

Ahora podemos simplemente escribir la ecuación de hipótesis como

[matemáticas] h (x) = signo (\ sum_ {i = 0} ^ d WiXi). [/ matemáticas]

Esta es la forma estándar. La forma vectorial es [matemática] h (x) = signo (W’X) [/ matemática].

Esta es la fórmula (conjunto de hipótesis) que utilizamos para el algoritmo de aprendizaje de Perceptron. Usamos la forma W’X, en varios otros algoritmos también. Ahora ya conoce la importancia matemática del sesgo o umbral en PLA. Echemos un vistazo a la red neuronal de la puerta lógica AND.

Y

Supuesto peso vector W = [w0, w1, w2] = [- 30,20,20]

h (x) = g (-30 * 1 + 20 * x1 + 20 * x2)

MESA DE LA VERDAD:

Ahora supongamos que no hay sesgo. h (x) = g (20 * x1 + 20 * x2), no obtendríamos el resultado de la puerta AND. Si observamos, encontraremos que el resultado de la hipótesis sin sesgo es el mismo que el de los OR, pero es solo una coincidencia, nada más.

Usar el sesgo es solo una buena práctica y facilita que la red neuronal funcione de manera eficiente. Los sesgos son valores asociados con cada nodo en la entrada y ocultos de una red, pero en la práctica se tratan exactamente de la misma manera que otros pesos. El uso de sesgos en una red neuronal aumenta la capacidad de la red para resolver problemas.

Todavía estoy aprendiendo y puedo estar equivocado en varios puntos, así que corrígeme .

Lecturas adicionales:

Encontré una pregunta similar en StackOverflow. Léelo

Notas de clase del famoso curso de aprendizaje automático del profesor Andrew Ng: Capítulo 8

Otro MOOC brillante sobre aprendizaje automático del profesor Yaser S. Abu Mostafa de CalTech: Aprendiendo de los datos

En palabras más simples, es esa salida de la red neuronal cuando tiene una entrada absolutamente cero.

Déjame explicarte con un ejemplo:

Cuando implementa una compuerta AND con un perceptrón simple (efectivamente, una sola neurona), tiene en cuenta tanto las entradas, sus pesos correspondientes, e intenta predecir la salida, así:

El sesgo se muestra a lápiz.

Como puede ver, todo encajó cuando tomamos en cuenta el sesgo. Si no hubiera habido sesgo, los pesos óptimos en las dos entradas (para que tuviéramos la salida correcta) habrían sido extremadamente computacionalmente costosos de determinar, si no imposible. Al incluir el sesgo y al darle un valor apropiado, podríamos asignar de manera efectiva y (más importante) simplemente, las cuatro combinaciones posibles de entradas a sus salidas.

Para corroborar mi primera definición de sesgo, la salida habría sido “-30” si los pesos en las dos entradas hubieran sido cero o las entradas hubieran sido cero. (Pero eso no sería una muy buena representación de la puerta AND, por supuesto).

Para dar más justificación, aquí hay un ejemplo para una puerta OR:

Y lo siguiente es para un NO:

Ahora, la pregunta obvia debe ser: ¿Cómo diablos sabemos qué valor elegir para sesgo? Y la respuesta es que no es tan difícil elegir un sesgo para modelos muy simplistas como las puertas antes mencionadas. Es solo una intuición simple (ya que estos modelos son por brevedad). Y mientras trabaja con aplicaciones complejas y redes neuronales con capas ocultas, el algoritmo de aprendizaje lo hará por nosotros. No tenemos que preocuparnos por elegirlo. Un algoritmo muy famoso utilizado es el algoritmo de retropropagación. A continuación se presentan algunos enlaces para obtener más información sobre Backpropagation.

(1. https://www.coursera.org/learn/m

2. Redes neuronales y aprendizaje profundo)

Espero que esta respuesta ayude.

De Propel (x):

“El científico investigador del MIT Rahul Bhargava describe el aprendizaje automático como” el proceso de capacitación de una computadora para tomar decisiones que usted desea que tome ayuda “. Muchos de estos productos ya están en el mercado y ya nos están dirigiendo hacia cursos de acción favorables. Algo tan simple como Alexa aconsejarle que traiga un paraguas basado en informes meteorológicos muestra que los dispositivos de inteligencia artificial actuales tienen la capacidad de sintetizar información y darle consejos sobre cómo proceder. Sin embargo, surgen problemas cuando el “proceso de capacitación” no se ajusta a los sesgos dentro de un conjunto de datos dado. Estos problemas son muchos y variados, pero entre los más desalentadores de todos es el reciente aumento en lo que se ha denominado “sesgo emergente”.

Según el estudio Bias in Computer Systems, el sesgo emergente se produce “como resultado del cambio en el conocimiento social, la población o los valores culturales”. Por supuesto, estos valores cambiantes se reflejan mejor hoy en el mundo de las redes sociales. Facebook es un excelente ejemplo. Los usuarios pueden compartir artículos y clips de noticias con su red y, a su vez, ver lo que comparten sus amigos.

El problema es que cuanto más compartas, mejores serán los algoritmos de Facebook para determinar qué contenido te interesa. Por ejemplo, si me gusta una página para los amantes del café, el algoritmo de Facebook puede recomendar un artículo que me diga que beber tres tazas de café al día tiene muchos beneficios para la salud. Si luego compartiera ese artículo, los bots de Facebook lo recogerían y recomendarían más artículos en una línea similar. Quizás vería y haría clic en un artículo de seguimiento que haga referencia a un estudio similar con resultados similares. Y luego tal vez vería una reacción de alguien que atribuye su bienestar general a beber tres tazas de café al día. Aquí es donde se afianza el sesgo emergente.

Debido a que me gustó una página para los amantes del café, todos los artículos en mi feed afirman los beneficios de beber tres tazas de café al día. Pero lo que el algoritmo no me muestra es el contraestudio que establece los efectos negativos del consumo excesivo de cafeína. La capacidad de Facebook para detectar mis intereses y atraerlos crea una burbuja que permite muy poco contraargumento.

A medida que el algoritmo de Facebook se acostumbra a sus preferencias, recomienda más contenido en función de su historial. Esto puede crear lo que Kristian Hammond de TechCrunch se refiere como “burbujas de sesgo” en las que el único contenido que se ve es el que se alinea con el contenido que le gustó o compartió en el pasado. “El resultado”, señala Hammond, “es un flujo de información sesgada hacia el conjunto de creencias existente de un usuario”.

Fuente: Por qué el sesgo emergente en el aprendizaje automático debería aterrorizarlo – Propel (x)

Considere un escenario en el que su NN debería responder la siguiente pregunta:
¿Qué posibilidades tienes de ir al cine hoy?

Considere las características (entradas) como [x1, x2, x3] donde
x1 = ¿Hace buen tiempo?
x2 = ¿Alguien me acompaña?
x3 = ¿Está cerca del transporte público? No tengo auto.

Como los pesos representan la importancia de cada entrada, mis pesos de muestra son:
w1 = 3 (¿Qué tan importante es la condición climática para que yo vaya al cine?)
w2 = 4 (¿Cuánto deseo que alguien me acompañe?)
w3 = 7 (¿Cuánto prefieres un lugar cercano?)

El sesgo representa tu disposición general para ir al cine. Si el sesgo es demasiado grande, se inclina hacia un resultado positivo.

Salida = No si ∑ wx + sesgo ≤ 0

Salida = Sí si ∑ wx + sesgo> 0

Solo soy un novato en ANN. Mis disculpas por cualquier información incorrecta.

Considere un escenario en el que su NN debería responder la siguiente pregunta:
¿Qué posibilidades hay de ir a ver una película hoy? Considere las características (entradas) como [x1, x2, x3] donde
x1 = ¿Hace buen tiempo?
x2 = ¿Alguien me acompaña?
x3 = ¿Está cerca del transporte público? No soy dueño de un automóvil. Dado que los pesos representan la importancia de cada entrada, mis pesos de muestra son:
w1 = 3 (¿Qué tan importante es la condición climática para que yo vaya al cine?)
w2 = 4 (¿Cuánto deseo que alguien me acompañe?)
w3 = 7 (¿Cuánto prefiere un lugar cercano?) Bias representa su disposición general para ir al cine. Si el sesgo es demasiado grande, se inclina hacia un resultado positivo. Salida = No si ∑ wx + sesgo ≤ 0 Salida = Sí si ∑ wx + sesgo> 0 Solo soy un novato en ANN. Mis disculpas por cualquier información incorrecta.

Guía para principiantes de redes neuronales artificiales

Las respuestas en la excelente url compartida por Shehroz son muy buenas.

En particular, la respuesta de Nate, la respuesta de zfy y la respuesta de Pradi de la url son geniales.

Sin embargo , diré un poco más para aclarar aún más las cosas:

En términos más simples, los sesgos permiten que se aprendan / almacenen más y más variaciones de pesos … ( nota al margen : a veces se les da algún umbral). De todos modos, más variaciones significan que los sesgos agregan una representación más rica del espacio de entrada a los pesos aprendidos / almacenados del modelo. (Donde mejores pesos pueden mejorar el poder de adivinación de la red neuronal)

Por ejemplo, en los modelos de aprendizaje, la hipótesis / conjetura está deseablemente limitada por [matemática] y = 0 [/ matemática] o [matemática] y = 1 [/ matemática] dada alguna entrada, tal vez alguna tarea de clasificación … es decir, alguna [matemática] ] y = 0 [/ matemáticas] para algunas [matemáticas] x = (1,1) [/ matemáticas] y algunas [matemáticas] y = 1 [/ matemáticas] para algunas [matemáticas] x = (0,1) [/ mates].

Si ignoramos el sesgo, muchas entradas pueden terminar siendo representadas por muchos de los mismos pesos (es decir, los pesos aprendidos ocurren principalmente cerca del origen [matemática] (0,0) [/ matemática]. El modelo sería entonces limitado). a cantidades más pobres de buenos pesos aprendidos, en lugar de muchos muchos más buenos pesos buenos, podría aprender mejor con sesgo (donde los pesos mal aprendidos conducen a conjeturas más pobres o una disminución en el poder de adivinación de la red neuronal)

Por lo tanto, es óptimo que el modelo aprenda tanto cerca del origen, como también, en tantos lugares como sea posible dentro del límite de umbral / decisión. Con el sesgo podemos habilitar grados de libertad cerca del origen, pero no limitado a la región inmediata del origen.

Fragmento tomado de una respuesta mía muy reciente en el enlace de Sherhoz.

Es posible que desee leer este hilo – Rol de sesgo en redes neuronales

En los términos más simples, es evitar una situación en la que f (x1, x2,… xn) = 0, donde x1, x2, .. xn = 0
Encontré que esta explicación es muy directa y clara: la naturaleza del código

El sesgo es un nodo que siempre está activado. El peso frente al sesgo permite que su función (sigmoidea, lineal, lo que sea) se mueva hacia adelante y hacia atrás con el entrenamiento. Los otros pesos solo sirven para cambiar la inclinación del sigmoide.

More Interesting

¿Qué tan probable es que, como en la película "Terminator", las computadoras del sistema de defensa interconectado se vuelvan conscientes de sí mismas y ataquen a la humanidad?

¿Cuáles serán algunos de los principales trabajos creados en el futuro como resultado de la automatización y la inteligencia artificial?

¿Cómo son relevantes los proyectos como Apache Spark para la inteligencia artificial?

Si los humanos pudieran aprender a copiar nuestra conciencia e incrustarla en una máquina, como un Transformador, ¿estarías dispuesto?

¿Cuáles son las principales diferencias entre la inteligencia artificial y el aprendizaje automático? ¿El aprendizaje automático es parte de la inteligencia artificial?

¿Cuál es una forma intuitiva de definir 'conocimiento previo' en el contexto del aprendizaje automático bayesiano?

¿En qué sección la introducción de robots e IA causará riesgos laborales? En ese momento, ¿cuál será el trabajo más rentable?

¿Qué país crees que tendrá primero inteligencia artificial a nivel humano?

¿Se acerca el segundo invierno de IA?

¿Cómo se crean los softwares de inteligencia artificial como la asistencia de Google y Siri?

¿Podría una revuelta robot / IA ser el 'Gran filtro' que algunos han propuesto para explicar la paradoja de Fermi?

¿Se puede diseñar una prueba de coeficiente intelectual para medir la inteligencia de un sistema de IA?

¿Qué pasaría realmente si una IA oye una paradoja?

¿Hay repositorios de investigación en línea para la investigación de inteligencia artificial?

Cómo conectarme con otras personas para trabajar en IA, ML y PNL para ampliar aún más mis habilidades