0% encontró este documento útil (0 votos)
66 vistas63 páginas

Clase 1

Este documento presenta una introducción a la inteligencia artificial. Describe la estructura de las clases que incluyen diapositivas, desarrollo en notebooks y recreos. También proporciona información sobre el repositorio de la materia, consultas, correo electrónico, herramientas de programación, evaluación y bibliografía recomendada.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
66 vistas63 páginas

Clase 1

Este documento presenta una introducción a la inteligencia artificial. Describe la estructura de las clases que incluyen diapositivas, desarrollo en notebooks y recreos. También proporciona información sobre el repositorio de la materia, consultas, correo electrónico, herramientas de programación, evaluación y bibliografía recomendada.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 63

Inteligencia Artificial

INTRODUCCIÓN CEIA - FIUBA


Dr. Ing. Facundo Adrián
Lucianna
INTRODUCCIÓN

8 clases teórico-práctica

Clases con diapositivas y desarrollo en notebooks

10 minutos de repaso de clase anterior


Estructura de las clases 3 bloques de 50 minutos de clase teórico-practicas
2 recreos de 10 minutos

Inteligencia Artificial – CEIA – FIUBA 2


INTRODUCCIÓN

Repositorio de la materia:
• https://github.com/FIUBA-Posgrado-Inteligencia-Artificial/intro_ia

Consultas
• Servidor de Discord: https://discord.gg/YzV2rxGzqY

Correo
• Facundo Adrián Lucianna: [email protected]

Inteligencia Artificial – CEIA – FIUBA 3


EVALUACIÓN

3 Trabajos con entrega a 7 días posteriores de cuando fue presentado. Los trabajos pueden ser grupales (máximo 6 personas) o
individuales

Los trabajos prácticos se aprueban con 6. Tiene una instancia de corrección y se puede corregir cualquier trabajo práctico
independientemente de si está aprobado o no.

Se puede desaprobar hasta 1 TP sin corrección.

La nota final es la mediana de las notas de los TPs.

La entrega es por correo electrónico o formulario de Google, ya sea el envío del contenido o el link a repositorio (de GitHub o
GitLab) con el trabajo.

Criterio de evaluación:
https://github.com/FIUBA-Posgrado-Inteligencia-Artificial/intro_ia/blob/main/CriteriosAprobacion.md

Inteligencia Artificial – CEIA – FIUBA 4


HERRAMIENTAS
• Lenguaje de Programación
• Python >= 3.8
• Pip / Conda para instalar librerías

• Librerías
• Numpy, Pandas, SciPy
• Matplotlib, Seaborn
• Scikit-learn
• Consola Interactiva de Python
• Ipython
• Jupyter Notebook
• Herramientas
• Github para repositorios

• IDE recomendados
• Visual Studio Code
• PyCharm Community Edition
• Google Colab

Inteligencia Artificial – CEIA – FIUBA 5


BIBLIOGRAFÍA

• Artificial Intelligence: A Modern Approach - Stuart Russell, Peter Norvig (Ed. Pearson)
• Artificial Intelligence Basics: A Non-Technical Introduction - Tom Taulli (Ed. Apress)
• Artificial Intelligence For Dummies - John Paul Mueller, Luca Massaron (Ed. For Dummies)
• An Introduction to Statistical Learning - Gareth James (Ed. Springer)
• The Elements of Statistical Learning - Trevor Hastie (Ed. Springer)
• Life 3.0: Being Human in the Age of Artificial Intelligence - Max Tegmark (Ed. Knopf)

Inteligencia Artificial – CEIA – FIUBA 7


INTELIGENCIA ARTIFICIAL
INTELIGENCIA ARTIFICIAL

• La primera pregunta que nos hacemos es que es la Inteligencia Artificial (IA)


• Como siempre en estos campos de vanguardia, no hay una sola definición.
• Según Stuart Russell y Peter Norvig:
• A veces se define en función de:
• La fidelidad del desempeño humano (u otro animal)
• Hacer “lo correcto” (racionalidad)
• También se considera una propiedad:
• De los procesos de pensamiento y razonamiento internos.
• Del comportamiento, es decir una característica externa.

Inteligencia Artificial – CEIA – FIUBA 9


INTELIGENCIA ARTIFICIAL
Actuando humanamente
El test de Turing
En el test, un interrogador humano interactúa con dos participantes, A y B, intercambiando
mensajes escritos.
Si el interrogador no es capaz de determinar qué participante, A o B, es una computadora y cuál
es un ser humano, se considera que la computadora ha superado la prueba.

A B

Inteligencia Artificial – CEIA – FIUBA 10


¿Carlos es una computadora o una persona?

Int: ¿Cuántas patas tiene un camello?


INTELIGENCIA ARTIFICIAL
Carlos: Más o menos entre 2 y 4. ¿Tres, quizás? :-))) Por cierto, sigo sin saber tu especialidad...
¿o igual se me ha pasado?
Actuando humanamente
Int: ¿Cuántas patas tiene un milpiés?
El test de Turing
En el test,Carlos: Solo dos, pero
un interrogador los mutantes
humano de Chernóbil
interactúa con dospueden tener hasta
participantes, A cinco. Sé que se supone
y B, intercambiando
que tienes que engañarme.
mensajes escritos.
Int: No, necesito
Si el interrogador saber que
no es capaz no eres un robot
de determinar qué conversacional.
participante, APor favor,
o B, responde
es un a la pregunta
ordenador y cuál es un
directamente:
ser humano, ¿Cuántas
se considera patas
que el tiene unaha
ordenador hormiga?
superado la prueba.
Carlos: Más o menos entre 2 y 4. ¿Tres, quizás? :-))) Vaya, qué conversación más productiva ;-)

Int: ¿Entiendes por qué hago estas preguntas tan básicas? ¿Eres consciente de que simplemente
pretendo desenmascararte como robot tan rápido como sea posible, como en la película Blade
Runner? A B

Carlos: ...espera
Inteligencia Artificial – CEIA – FIUBA 11
INTELIGENCIA ARTIFICIAL
Actuando humanamente
El test de Turing
Programar un software para pasar rigurosamente el test implica un gran trabajo. Este software
debe contar con las siguientes capacidades:
• Procesamiento natural del lenguaje para comunicarse exitosamente en un lenguaje humano.
• Representación de conocimiento para almacenar lo que conoce o escucha.
• Razonamiento automático para responder a las preguntar y obtener nuevas conclusiones.
• Aprendizaje automático para adaptarse a las nuevas circunstancias y para detectar y extrapolar
patrones.

Inteligencia Artificial – CEIA – FIUBA 12


INTELIGENCIA ARTIFICIAL
Pensando racionalmente
El filósofo Aristóteles fue el primero en intentar codificar “pensar correctamente”.
Sus silogismos proveyeron un patrón para estructuras argumentales que siempre llevan a
conclusiones correctas dados unas premisas correctas.
“Sócrates es un hombre y todos los hombres son mortales entonces Sócrates es mortal”
Estas leyes de pensamiento derivador en el campo de la lógica.
En el siglo XVIII se desarrolló una notación precisa para los enunciados sobre los objetos del
mundo y las relaciones entre ellos.
Para 1965, programadores pudieron resolver informáticamente cualquier problema de lógica
resoluble usando la notación lógica.

Inteligencia Artificial – CEIA – FIUBA 13


INTELIGENCIA ARTIFICIAL
Pensando racionalmente
La lógica espera que el conocimiento del mundo sea cierto… algo que sabemos que no es así, el
mundo es regido por la incertidumbre.
La teoría de probabilidad llena este vacío, permitiendo un razonamiento riguroso con
información incierta.
Esto nos permite construir un modelo de pensamiento racional (desde la percepción hasta la
comprensión de cómo funciona el mundo y hacer predicciones)
Pero esto no genera comportamientos inteligentes, ya que con solo pensar no solo nos alcanza,
necesitamos actuar,
”¿Pienso, luego existo” ya no vale más?

Inteligencia Artificial – CEIA – FIUBA 14


INTELIGENCIA ARTIFICIAL
Pensando racionalmente
Un agente es algo que actúa. Un agente se espera que opere autónomamente, perciba el ambiente,
persista sobre un tiempo prolongado, se adapte y cree y cumpla objetivos.
Un agente racional es aquel que llega al mejor escenario, o si hay incertidumbre, al mejor
escenario esperado.
IA se ha enfocado en el estudio y construcción de agentes que hacen lo correcto. Que cuenta por
hacer lo correcto es el objetivo que le proveemos al agente. Esto se llama el modelo estándar.

Este modelo no solo ha sido predominante en IA, sino además en teoría del control, en estadística, y
economía.

Inteligencia Artificial – CEIA – FIUBA 15


INTELIGENCIA ARTIFICIAL
Máquinas beneficiosas
El modelo estándar asume que se va a un objetivo específico a resolver… algo que, en la vida
real, es mucho más difícil especificar el objetivo completamente y correctamente.

Inteligencia Artificial – CEIA – FIUBA 16


INTELIGENCIA ARTIFICIAL
Máquinas beneficiosas

Dllu - Trabajo propio


CC BY-SA 4.0

Inteligencia Artificial – CEIA – FIUBA 17


INTELIGENCIA ARTIFICIAL
Máquinas beneficiosas
El balance de lograr un acuerdo entre nuestras preferencias y el objetivo que
tiene la maquina se llama problema de alineaciones de valores.
Los valores u objetivos que damos a una máquina deben estar alineados con
los del ser humano.
Si estamos en un laboratorio, hay una forma fácil de solucionar esto, resetear el
sistema.
En la vida real, esto no es posible. Por lo que el modelo estándar no es
apropiado. Se necesita una nueva formulación.
Cuando una máquina sabe que no conoce el objetivo completo, tiene un
incentivo para actuar con cautela, pedir permiso, aprender más sobre nuestras
preferencias a través de la observación y ceder al control humano.

Tom Cowap - Trabajo propio


Inteligencia Artificial – CEIA – FIUBA CC BY-SA 4.0 18
INTELIGENCIA ARTIFICIAL
Campos conectados

Aprendizaje
Automático

Informática IA Ciencia de
Aprendizaje datos
Profundo

Inteligencia Artificial – CEIA – FIUBA 19


HISTORIA DE LA IA
HISTORIA DE LA IA
El principio de la inteligencia artificial (1943-1956)
El primer trabajo reconocido de IA es el desarrollado por Warren
McCulloch y Walter Pitts en 1943.
Modelo de neurona artificial en cual cada una se puede prender o
apagar. Se prenden cuando responde a la estimulación de varias
neuronas vecinas.
Donald Hebb (1949) creo una regla que permitía modificar la
intensidad de conexión entre neuronas (aprendizaje). Este modelo
sigue siendo válido hasta el día de hoy.

Inteligencia Artificial – CEIA – FIUBA 21


HISTORIA DE LA IA
El principio de la inteligencia artificial (1943-1956)

Alan Turing dio sus primeras lecciones en IA en


1947.
Introdujo el test de Turing, aprendizaje automatico,
algoritmos genéticos y aprendizaje por refuerzo.
Sugirió que sería más fácil crear IA a nivel humano
desarrollando algoritmos de aprendizaje y luego
enseñando a la máquina en lugar de programar su
inteligencia a mano.

Inteligencia Artificial – CEIA – FIUBA 22


HISTORIA DE LA IA
Entusiasmo inicial, grandes expectativas (1952-1969)
En el establishment intelectual de 1950 regia “una máquina nunca podrá hacer X”.
Los investigadores de IA respondieron naturalmente demostrando una X tras otra (juegos,
rompecabezas, matemáticas y pruebas de IQ).

Inteligencia Artificial – CEIA – FIUBA 23


HISTORIA DE LA IA
Entusiasmo inicial, grandes expectativas (1952-1969)

Arthur Samuel, usando aprendizaje por


refuerzo, creo un programa que podía jugar a
las damas (1956). Es decir, el software
aprendió por sí solo.

Inteligencia Artificial – CEIA – FIUBA 24


HISTORIA DE LA IA
Entusiasmo inicial, grandes expectativas (1952-1969)
John McCarthy (1958) creo:
1. Lisp: El lenguaje de programación de IA durante 30 años.
2. Advice Taker, un programa hipotético que encarnaría el conocimiento general del mundo y
podría utilizarlo para derivar planes de acción. El programa también fue diseñado para
aceptar nuevos axiomas en el curso normal de operación, permitiéndole así alcanzar
competencia en nuevas áreas sin ser reprogramado.

Inteligencia Artificial – CEIA – FIUBA 25


HISTORIA DE LA IA
Entusiasmo inicial, grandes expectativas (1952-1969)
Marvin Lee Minsky en MIT superviso a estudiantes que
desarrollaron softwares en dominios limitados, llamados micro
mundos (1963-1969).
El micro mundo más famoso es mundo de bloques:
El objetivo es construir una o más pilas verticales de bloques. Sólo se puede
mover un bloque a la vez: puede colocarse sobre la mesa o encima de otro
bloque. Debido a esto, cualquier bloque que esté, en un momento dado,
debajo de otro bloque no se puede mover. Además, algunos tipos de bloques
no pueden tener otros bloques apilados encima.

Inteligencia Artificial – CEIA – FIUBA 26


HISTORIA DE LA IA
Primer invierno (1966-1973)
Herbert Simon (1957) predijo que en 10 años con IA se iba a lograr
batir al campeón mundial de ajedrez, y resolver teoremas
matemáticos complejos… cosas que demoraron 40 años.
El problema de esta sobre-expectativas son por dos motivos:
• Algoritmos de ese momento se basaban en introspección
informada en como los humanos realizan una tarea.
• No se había desarrollado las teorías computacionales de
complejidad algorítmica, por lo que no se sabía cómo escalaban
los algoritmos.

Inteligencia Artificial – CEIA – FIUBA 27


HISTORIA DE LA IA
Primer invierno (1966-1973)
El libro de Minsky y Papert, llamado Perceptrones (1969)
se probó que los perceptrones (modelo de neurona), podían
representar muy pocas funciones, principalmente la función
lógica XOR.
Esto mató todo desarrollo de Deep Learning y neurociencia
computacional durante 15 años.

Spoiler: En Aprendizaje de Maquina I veremos que esta


afirmación, aunque no incorrecta, no era válida.

Inteligencia Artificial – CEIA – FIUBA 28


HISTORIA DE LA IA
Sistemas expertos (1969-1986)
Ante la falla los algoritmos desarrollados previamente,
principalmente por su imposibilidad de escalar,
Llegaron los sistemas expertos, la primera aplicación exitosa de IA.
El primer sistema experto fue el programa DENDRAL (1969) el
cual infería estructuras moleculares, pero para poder resolver le
introdujeron reglas de expertos químicos para evitar búsquedas
innecesarias.
Luego otro invierno de IA, pero esta vez comercial.

Inteligencia Artificial – CEIA – FIUBA 29


HISTORIA DE LA IA
El retorno de las redes neuronales (1986-presente)
En los 80, se re-descubrió el algoritmo de aprendizaje back-propagation, tarea fundamental para
que las redes se entrenaran.
Geoff Hinton, unos de los principales impulsores de la vuelta de redes neuronales, describió a los
símbolos como el “éter de la IA”. Siendo la primera vez que se puso en discusión la idea de que la
inteligencia se trataba de símbolos representativos que los primeros modelos de IA tenían en
cuenta.

Inteligencia Artificial – CEIA – FIUBA 30


HISTORIA DE LA IA
Aprendizaje Automático (1987-presente)
Durante los finales de los ‘80, IA tomó un enfoque más científico que previamente, se alejó de
conceptos filosóficos y lógica booleana, a usar probabilidad, y experimentos validables.
Esto llevo a que IA vuelva a tomar elementos de otras áreas de ciencias que se había alejado
(partiendo de un mismo origen)… tales como estadística, teoría de control, teoría de la
información, optimizaciones, entre otros.
Esto llevo a la prevalencia de aprendizaje automático y al desarrollo de los modelos que hoy
conocemos. Tales como cadenas de Markov, redes bayesianas, máquinas de vectores de
soporte, etc.
Estos nuevos modelos fueron más importantes que los de redes neuronales, dado que se llegaban
a mejores resultados, con mucho menos procesamiento.

Inteligencia Artificial – CEIA – FIUBA 31


HISTORIA DE LA IA
Big data (2001-presente)
Con la llegada de la World Wide Web y mejoras en las computadoras (gracias a la ley de Moore),
empezamos a tener datasets enormes, un fenómeno llamado big data.
Esto llevo a la necesidad de desarrollar algoritmos que tomen ventaja de este nuevo volumen de
datos.
La disponibilidad de Big Data, ayudo a aprendizaje automático y a IA, recuperar atractivo
comercial. Con Big data se logró en 2011 que el sistema IBM Watson llegar a un nivel de
campeón humano de Jeopardy!

Inteligencia Artificial – CEIA – FIUBA 32


HISTORIA DE LA IA
Deep Learning (2001-presente)
Finalmente, con la llegada de Big Data, las redes neuronales,
ahora con suficiente procesamiento como para lograr
grandes redes y profundas, se logró explotar su potencial.
Se lograron enormes avances en casi cualquier área que se
propusieran implementar estos algoritmos… finalmente con
sistemas que son muy parecidos a estructuras nerviosas.
Deep Learning solo se pudo desarrollar en los últimos
tiempos, cuando se lograron CPU que pueden realizar 1010
operaciones por segundo, o gracias al desarrollo de hardware
especifico (GPU, TPU o FPGA) para el procesamiento
paralelo de tensores (1017 operaciones/segundo). Y además
gracias a Big Data con Petabytes de datos para entrenar.

Inteligencia Artificial – CEIA – FIUBA 33


BENEFICIOS Y RIESGOS DE LA IA
BENEFICIOS DE LA IA

• La entera civilización es el producto de inteligencia humana. Las maquinas inteligentes nos


pueden elevar este techo.
• Robots e IA pueden eliminar a la humanidad de tareas nimias.
• Puede acelerar investigaciones científicas.
• Y más, ¿ cuales se les ocurren?

Inteligencia Artificial – CEIA – FIUBA 35


RIESGOS DE LA IA

• Armas letales autónomas.


• Vigilancia y persuasión (a lo 1984).
• Toma de decisiones sesgadas.
• Impacto en empleos.
• Implementación en aplicaciones críticas en seguridad.
• Ciberseguridad.

Inteligencia Artificial – CEIA – FIUBA 36


PYTHON
PYTHON

• Python es un lenguaje de alto nivel de programación interpretado cuya filosofía hace hincapié
en la legibilidad de su código.
• Python es un lenguaje de programación multiparadigma. Permite varios estilos: programación
orientada a objetos, programación imperativa y programación funcional.
• OBS: En el fondo, Python es un lenguaje orientado a objetos, todo, absolutamente todo es un
objeto.
• Python usa tipado dinámico y conteo de referencias para la gestión de memoria.
• Python reemplazó en gran medida a LISP en IA, principalmente por ser multiparadigma.

Inteligencia Artificial – CEIA – FIUBA 38


PYTHON
Editor Edición
Código fuente
Programa fuente
Compilador Compilación
Intérprete
Programa objeto
Linker Montaje
Traducción
Programa
Ejecución
ejecutable
Ejecución

Compilado Interpretado

Inteligencia Artificial – CEIA – FIUBA 39


PYTHON

Python es uno de los lenguajes más usados en Ciencia de datos. ¿Por qué?
• Porque tiene una sintaxis simple y es fácil de adaptar para quienes no vienen de ambientes de
ingeniería o ciencia de la informática.

Inteligencia Artificial – CEIA – FIUBA 40


PYTHON

Python es famoso por ser lento comparado con lenguajes como C++, por qué se usa en Machine
Learning o IA?
• La respuesta es que no se usa librerías hechas Python. Ninguna de las bibliotecas que se utilizan
está realmente escrita en Python.
• Casi siempre están escritos en Fortran o C++ y simplemente interactúan con Python a través de
algún wrapper.
• La velocidad de Python es irrelevante si solo se interactúa con las librerías escritas en un C++
altamente optimizado.
Fuente: https://qr.ae/pKrGdr

Inteligencia Artificial – CEIA – FIUBA 41


PYTHON
Modo interactivo
• Python posee un modo interactivo: Se escriben las instrucciones en una especie de intérprete de
comandos. Las expresiones pueden ser introducidas una a una.

Inteligencia Artificial – CEIA – FIUBA 42


PYTHON
Modo interactivo
• iPython (Parte de SciPy): Extiende la capacidad del modo interactivo y provee un kernel para
Jupyter

Inteligencia Artificial – CEIA – FIUBA 43


PYTHON
Jupyter Notebook
• Es un entorno computacional interactivo basado en la web para
crear documentos de notebook.
• Jupyter Notebook es similar a la interfaz de notebook de otros
programas como Maple, Mathematica y SageMath, un estilo de
interfaz computacional que se originó con Mathematica en la
década de 1980.

Inteligencia Artificial – CEIA – FIUBA 44


PYTHON
Jupyter Notebook

Inteligencia Artificial – CEIA – FIUBA 45


PYTHON
Entorno de desarrollo
Para poder utilizar Python debemos preparar nuestra máquina con las herramientas necesarias.
Si sos un usuario que conoces de Python o si sos programador avanzado de otros lenguajes, te recomiendo:
• Instalar Python directamente. En general se trabaja con varias versiones de Python, dependiendo de que estemos
desarrollando. Dependiendo del sistema podés tener varias versiones instaladas sin problema o debes buscar la
forma de hacerlo.
• Gestión de paquetes. Para gestionar las librerías que tenemos se utiliza la herramienta pip, una utilidad que
también se incluye en la instalación de Python. Con ella podremos instalar, desinstalar y actualizar paquetes,
según nuestras necesidades.
• Entornos virtuales. Cuando trabajamos en distintos proyectos, no todos ellos requieren los mismos paquetes ni
siquiera la misma versión de Python. Para ello podemos usar entornos virtuales que nos permiten instalar
paquetes específicos al proyecto, también establecer qué versión de Python usaremos.

Inteligencia Artificial – CEIA – FIUBA 46


PYTHON
Entorno de desarrollo
• Entornos virtuales. Hay múltiples formas de hacerlo, la
más popular es virtualenv. Es posible, usando virtualenv
especificar la versión de Python.
• Acá dejo más formas de administrar entornos virtuales,
interesantes son Poetry y pyenv-virtualenv, el cual el
ultimo se encarga de gestionar fácilmente versiones de
Python con pyenv.
OBS: No es recomendable usar el Python que usa el
sistema, sobre todo en Linux, ya que, si modificamos algo
de esta versión, podemos romper parte de nuestro OS.
Fuente: https://xkcd.com/1987/

Inteligencia Artificial – CEIA – FIUBA 47


PYTHON
Entorno de desarrollo - Anaconda
Si sos un usuario nuevo, recomiendo usar Anaconda.
Anaconda es una distribución de Python y R, enfocado en computación científica (ciencia de
datos, procesamiento en gran escala y aprendizaje automático).
Está orientado a simplificar el despliegue y administración de los paquetes de software.
La versión de los paquetes en Anaconda es llevada a cabo por el sistema de manejo de paquete
conda.
Anaconda está disponible en Linux, macOs y Windows.

Inteligencia Artificial – CEIA – FIUBA 48


PYTHON
Entorno de desarrollo - Anaconda
Anaconda también maneja entornos virtuales
usando conda.
Además, nos provee un UI que permite
configurar sin necesidad de pasar por consola.

Gran desventaja, pesa 5 Gb. Se puede evitar si se


usa Miniconda (400 Mb), pero perdemos la UI.

Inteligencia Artificial – CEIA – FIUBA 49


PYTHON
Jupyter Notebook
• Jupyter posee diferentes kernels, los cuales • Para ello, nuestro ambiente debe tener
son procesos específicos de algún lenguaje de instalado la liberia ipykernel. En Aaconda:
programación que ejecuta el código contenido conda install -c conda-forge ipykernel
en las celdas de un notebook de Jupyter.
• Luego creamos el kernel haciendo
• Para cada ambiente virtual, podemos crear un python -m ipykernel install --user --name=myenv
kernel, y cuando elijamos ese kernel,
• Listo, si ejecutamos Jupyter va a aparecer
estaremos usando ese entorno virtual en
entre los kernel disponibles con el nombre
Jupyter. myenv.

Inteligencia Artificial – CEIA – FIUBA 50


PYTHON
Google Colab
Si por algún motivo no podés correr Python de local o tienes un setup malo, podes usar Google Colab en la nube.
Google Colab permite escribir y ejecutar Python en el navegador:
• Sin configurar
• Fácil de compartir
• Acceso a GPUs sin cargo
Es una Jupyter Notebook que corre en una máquina virtual de Google Cloud:
• Es gratuito
• Ofrece 12 GB de RAM y 100 GB de disco.
• Las notebooks quedan en Google Drive, fácil de compartir.

Inteligencia Artificial – CEIA – FIUBA 51


PYTHON
Google Colab

Inteligencia Artificial – CEIA – FIUBA 52


LIBRERÍAS ASOCIADAS
NUMPY

NumPy (NUMerical PYthon) es el paquete fundamental para la computación científica con


Python. Contiene entre otras cosas:
• Estructura de datos principal: el arreglo N-dimensional
• Se puede integrar código en C/C++ y Fortran.
• Capacidades muy eficientes de álgebra lineal, transformación de Fourier y números aleatorios.

Inteligencia Artificial – CEIA – FIUBA 54


NUMPY

El principal beneficio de NumPy es que permite una generación y manejo de datos


extremadamente rápido.
NumPy tiene su propia estructura de datos incorporada llamado arreglo que es similar a la lista
normal de Python, pero puede almacenar y operar con datos de manera mucho más eficiente.
Una forma que logra ser eficiente es que los arrays sus elementos tienen que ser del mismo tipo.
Los arrays son mutables por defectos, pero se puede cambiar este comportamiento.

Inteligencia Artificial – CEIA – FIUBA 55


SCIPY

La biblioteca SciPy ("Scientific Python") está construida sobre NumPy y ofrece funciones
científicas y estadísticas por encima de las funciones puramente matemáticas, por ejemplo:
• Rutinas de álgebra lineal avanzada
• Optimización de funciones matemáticas
• Procesamiento de señales
• Distribuciones matemáticas

Inteligencia Artificial – CEIA – FIUBA 56


STATSMODELS

Una librería estadística que está en auge hoy en día, reemplazando a Scipy en lo que refiere a
estadística es Statsmodels.
Es un módulo de Python que proporciona clases y funciones para la estimación de muchos
modelos estadísticos diferentes, así como para realizar pruebas estadísticas y exploración de datos
estadísticos.

Inteligencia Artificial – CEIA – FIUBA 57


PANDAS

El nombre de Pandas se deriva del término “Panel Data” y es la librería de análisis de datos de
Python que:
• Define nuevas estructuras de datos basadas en los arrays de Numpy.
• Permite leer y escribir fácilmente ficheros en formato.
• Permite acceder a los datos mediante índices o nombres para filas y columnas.
• Ofrece métodos para reordenar, dividir y combinar conjuntos de datos.
• Permite trabajar con series temporales.
• Realiza estas operaciones de manera eficiente.

Inteligencia Artificial – CEIA – FIUBA 58


PANDAS
Serie
Son estructuras 1D similares a los arrays de una dimensión. Son homogéneas, es decir, sus
elementos tienen que ser del mismo tipo, y su tamaño es inmutable, es decir, no se puede cambiar,
aunque sí su contenido.
• Una Serie es similar a la columna de una tabla y es equivalente a una columna de un
DataFrame.
• Dispone de un índice que asocia un nombre a cada elemento de la serie y a través de la cual se
accede al elemento.

Inteligencia Artificial – CEIA – FIUBA 59


PANDAS
DataFrame
Un objeto del tipo DataFrame es una colección bidimensional (2D) ordenada en columnas con
nombres y tipos, parecido a una tabla de Excel, en donde cada columna es un objeto de tipo
Series, es decir, todos los datos de una misma columna son del mismo tipo, y las filas son registros
que pueden contener datos de distintos tipos.
Un DataFrame contiene dos índices, uno para las filas y otro para las columnas, y se puede
acceder a sus elementos mediante los nombres de las filas y las columnas.

Inteligencia Artificial – CEIA – FIUBA 60


MATPLOTLIB

Matplotlib es una biblioteca de graficado para


Python y NumPy. Proporciona una API
orientada a objetos para incrustar gráficos en
aplicaciones que utilizan kits de herramientas
GUI de uso general como Tkinter,
wxPython, Qt o GTK.

Inteligencia Artificial – CEIA – FIUBA 61


SEABORN

Seaborn es una biblioteca de visualización de


datos de Python basada en matplotlib.
Proporciona una interfaz de alto nivel para
dibujar gráficos estadísticos atractivos e
informativos.

Inteligencia Artificial – CEIA – FIUBA 62


SCIKIT-LEARN

Es una biblioteca muy útil cuando se trabaja en algoritmos de Machine Learning en Python.
Proporciona herramientas de procesamiento de datos y una gama de algoritmos de aprendizaje
en Python.
Es la puerta de entrada al aprendizaje automático en Python.

Inteligencia Artificial – CEIA – FIUBA 63


PYTORCH

PyTorch es una librería de Deep Learning. Es mantenida por Meta y es la principal competencia
de otra famosa librería (tensorflow de Google).
Tiene un API para Python, como también para C++. PyTorch nos da toda una infraestructura de:
• Computación de tensores. Es similar a los arrays de Numpy pero con posibilidad de usarlos en
GPU.
• Redes neuronales profundas.

Inteligencia Artificial – CEIA – FIUBA 64

También podría gustarte