15 de febrero de 2017

Y, ¿por qué la lógica?

Ya discutimos la vez pasada la motivación para representar lo que sabemos de una forma que podamos acceder y reutilizar fácilmente. Y al final, cerré diciendo que se necesita un lenguaje formal y que no deje lugar a interpretaciones ambiguas; en pocas palabras, una lógica. Pero, ¿es eso cierto? ¿Necesitamos realmente ese tipo de formalismos? A final de cuentas, mucha gente dice no entender la lógica y, mucho como las matemáticas, tiene miedo a acercarse a ella. Además, por milenios hemos usado formas mucho menos estructuradas para transmitir lo que sabemos, y en la actualidad tenemos miles de millones de páginas (libros, enciclopedias, artículos, sin contar tantos elementos multimediales) escritas en lenguaje natural.
Las preguntas obvias en este caso son dos: ¿vale la pena intentar traducir todo eso a un lenguaje formal? y ¿es siquiera posible hacerlo? Voy a dejar de lado la segunda pregunta para el futuro (aunque, si son impacientes, la respuesta corta y fácil es "no") y tratar de dar una respuesta afirmativa a la primera.
La verdad es que las distintas formas que tenemos para compartir lo que sabemos surgieron por un motivo. Y todas tienen beneficios y desventajas.
Por ejemplo, los refranes son muy fáciles de aprender. Son frases cortas, generalmente con una rima o un ritmo claros, y los escuchamos desde chicos. También pueden ser muy útiles. Nos enseñan reglas de sociedad, atajos para trabajos simples, e incluso dan tips para sobrevivir en distintas situaciones. Pero, justo porque son tan simples y cortos, no se pueden usar para transmitir nociones más complejas. Además, a veces no es totalmente obvio qué quieren decir.
En el otro extremo encontramos Wikipedia, o incluso internet en conjunto. Sin limitaciones de espacio o estilo, es posible explicar con tanto detalle como se quiera cada idea, cada concepto, cada método. Pero es esa misma falta de límites lo que la hace difícil de explotar. Se puede encontrar tanto sobre un sólo tema que es casi imposible filtrar aquello que es relevante y útil de aquello que no lo es. Y siempre queda el riesgo de perder partes fundamentales. Todo esto sin tomar en cuenta la ambigüedad, por ejemplo, al usar la misma palabra en varios contextos distintos con otro significado.
Aquí es donde entra en campo la lógica. Como dije antes, cuando hablo de lógica simplemente me refiero a un lenguaje formal, en el que los términos que se usan están claramente especificados. Existen, en realidad, muchas lógicas (de lo que iremos hablando a lo largo de estos textos). Pero lo que tienen en común es que todos ellos dan un significado preciso a lo que describen. Obviamente, siendo tan rígidos se vuelven menos capaces de expresar ciertas cosas. Además, se necesita entrenamiento para escribir y entender estos lenguajes. Por el otro lado, como se basan en reglas precisas y bien definidas, son muy útiles para dejar que las máquinas se ocupen en interpretarlas. Así, si tenemos cantidades ingentes de información (como en internet), podemos dejar el trabajo pesado a un robot.
Una cosa muy importante, que se volverá más clara mientras continuemos, es que el hecho de que las lógicas sean precisas, no las vuelve triviales. En realidad, una de las ventajas que tienen es que no necesitan hacer todo explícito, sino que pueden dar sólo la información relevante y dejar que quien la interprete deduzca el resto. Nosotros hacemos eso todo el tiempo sin darnos cuenta: si nos dicen que Paganini era un violista, sabemos inmediatamente que era un músico y que tocaba el violín, porque sabemos el significado de "violinista" sin que se necesite que alguien nos diga que Paganini tiene todas esas propiedades. Hacer que una máquina sea capaz de hacer todas esas deducciones es toda otra historia.
Es claro que hay muchas preguntas por responder. Empezando por ¿qué lógica y por qué?, ¿cómo usarla prácticamente? y ¿cuáles son sus limitaciones? Este tipo de preguntas básicas nos van a guiar por las próximas entradas.

15 de enero de 2017

¿Representación del conocimiento?

Es innegable que a lo largo de los siglos hemos acumulado muchísimo conocimiento. Tanto, de hecho, que actualmente sería imposible para cualquier persona saber algo más que una minúscula fracción de lo que se conoce, incluso si pasara toda la vida estudiando. Y este conocimiento no es superfluo. Lo usamos en continuación para pasar nuestros días, para planear nuestras acciones, diseñar nuevas herramientas y, claro, entender cosas nuevas, que se agregan a nuestra colección del saber.
Pero, ¿cómo hemos hecho para tener más conocimiento de lo que podemos acumular en una vida? La única forma de lograr esto es desarrollando métodos para guardar, compartir, e interpretar aquello que sabemos. Desde el inicio de la historia, eso es justamente lo que hemos hecho. Por siglos hemos experimentado muchas formas para enseñar a las generaciones futuras. Desde mitos, leyendas y refranes, hasta libros de análisis y enciclopedias, pasando por la pintura y otros tipos de arte, todos estos métodos tienen una meta en común: transmitir al receptor una parte de lo que el locutor sabe.
Claramente, todos estos métodos tienen ventajas y desventajas. Los refranes son fáciles de recordar, pero su aplicación es muy limitada. Mitos y leyendas son más amplios, pero necesitan un mayor esfuerzo de memorización. Estos tres métodos, junto con el arte, son también difíciles de interpretar y fácilmente resultan confusos. Una enciclopedia puede presentar mucha información en detalle, pero requiere un mayor esfuerzo para localizar, entender y aplicar las porciones relevantes de su contenido.
Imaginen ahora que queremos transmitir todo ese conocimiento a una máquina, tal vez para que nos ayude a tomar decisiones bien informadas, o tal vez para resolver algunos de los problemas abiertos en la ciencia. Entonces tenemos que codificar lo que sabemos, todo ese conocimiento, de alguna forma que lo pueda interpretar y usar.
Mi meta es hablar sobre la representación del conocimiento. Las distintas técnicas que existen, sus limitaciones, sus extensiones, y los casos donde son útiles. Pero vamos a dejar de lado las cosas que funcionan para nosotros como humanos para enfocarnos en los métodos que se pueden hacer automáticamente. Para usar un nombre llamativo, hablaremos sobre inteligencia artificial. Por eso necesitamos representaciones que no dejen lugar a malos entendidos, donde sea totalmente claro qué significa cada símbolo.
En términos técnicos, queremos un lenguaje con una semántica clara y precisa. Por ese motivo, seguido hablaré de "lógica". Pero ¡no se asusten! Cuando digo lógica me refiero simplemente al hecho de que los símbolos que se usan tienen un significado pre-definido y bien aceptado. De esta forma, podemos sacar conclusiones claras y precisas de forma automática, sin miedo a haber interpretado mal el conocimiento.
Así que, si están interesados, únanse a mi en este viaje, en el que aprenderemos juntos tantas cosas de este mundo. Como seguramente ya se dieron cuenta, intentaré complementar la información que doy con referencias y enlaces a otros artículos y ensayos. Cuando sea posible, hablaré también de detalles actuales e incluso de los desarrollos que se están llevando a cabo en el área.