MenúInicial

Cine

TopTen
Películas
Entrevistas
Guiones
Links

Literatura

TopTen
Libros
Relatos
Enigmas
Links

IA

¿Qué es?
Nacimiento
Vertientes
Robótica
Sist. Expertos
Neurocomput.
Links

La Web

 




III.Aprendiendo y generalizando
¿Cómo se enseña a un niñoa reconocer lo que es un osito? Se le enseñan ejemplos de ositoy se le dice "esto es un osito". Cuando el niño ve un "patito" ydice "osito", se le corrige y se le dice "esto es un osito". Durante estaetapa del aprendizaje del niño, se puede esperar que si se vuelvena presentar algunos de los ejemplos que ya han aparecido y se le pregunta"¿es esto un osito?", el niño responderá correctamente.Pero no sólo eso. A partir de cierto momento, si se le enseñaal niño nuevos objetos, que no haya visto jamás antes, sepodrá esperar que sea también capaz de identificar cuálesde ellos son ositos y cuáles no. Por supuesto, para que el aprendizajesea efectivo, será necesario que el niño haya tenido un númerosuficiente de ejemplos y que estos hayan sido suficientemente representativos.No basta con enseñarle sólo un osito, ni un conjunto de ositos"picassianos". Por otra parte siempre habrá casos en los que noestará muy claro si determinado peluche es un osito o cualquierotro animal y es que, como diría Platón, intuimos la idea(el eidos) de "el osito" a partir de realizaciones concretas de osito,que no son sino la sombra de éste en la caverna.

La capacidad de generalización de losejemplos concretos conocidos a la clase general, es uno de los ingredientesde la inteligencia. Pero, ¿cómo puede aprender una neuronaartificial? El primero en responder a esta cuestión fue DonaldO. Hebb, que de las observaciones de experimentos neurobiológicosdedujo que si las neuronas de ambos lados de una sinapsis se activan simultáneamenterepetidas veces, el valor de la sinapsis se incrementa. Este principioes lo que se conoce como postulado de aprendizaje de Hebb. Asípues, el aprendizaje de una neurona y de una red neuronal se traduce enla adaptación de los pesos de sus conexiones sinápticas,para disminuir el error entre la salida producida ante una entrada y lasalida correcta.

En el Listado 2,se puede observar una neurona ya provista de capacidad de aprendizaje graciasal método entrenamiento_supervisado, que acepta como argumentosun vector de entrada y una salida correcta, y devuelve 0 en caso de aciertoy 1 en caso de fallo.
 

Listado 2. NeuronaArtificial capaz de aprender

class neurona_t {
private:
   vector_t __pesos;
   float __umbral_activacion;
   float __tasa_aprendizaje;
public:
   neurona_t(void): __pesos(NUM_ENTRADAS)
{
       __umbral_activacion=0;
       __tasa_aprendizaje=0.1;
}
   int salida(vector_t entrada) {
       return (__pesos * entrada >
     __umbral_activacion) ? 1: 0;
}
   int entrenamiento_supervisado(vector_t
entrada, int salidaOK) {
       int resultado=salida(entrada);
       if (resultado != salidaOK) {
          if (resultado> salidaOK) {
            __pesos=__pesos - 

            (__tasa_aprendizaje * entrada);
            __umbral_activacion += 
                        __tasa_aprendizaje;
          }else{
             __pesos=__pesos + 
                (__tasa_aprendizaje * entrada);
             __umbral_activacion -=
                 __tasa_aprendizaje;
                 }
                 return 1;
        }else{
                 return 0;
         }
      }
      float getUmbralActivacion (void) const{
   return __umbral_activacion; }
      float getTasaAprendizaje (void) const{
   return __tasa_aprendizaje; }
      vector_t getPesos (void) const {
   return __pesos; }
};  //class neurona_t

I.La neurona biológica
II.Los orígenes: La neurona de McCulloch y Pitts
III.Aprendiendo y generalizando
IV.El perceptrón de Rossenblatt
V.Aprendizaje del perceptrón
VI.Minsky y Papert: comienza la etapa oscura