Está en la página 1de 73

www.senati.edu.

pe
Introducción

Fernando Tuesta Zuta www.senati.edu.pe


¿Redes Neuronales?
Las redes neuronales artificiales están inspiradas en la estructura y funcionamiento de los sistemas
nerviosos, donde la neurona es el elemento principal, pero para empezar la explicación hay que tomar
en cuenta que hay dos modelos: Modelo Biológico y Modelo artificial.
Y para ello, primero hay que saber que es una neurona, una neurona es una célula, un componente
principal del sistema nervioso, cuya función principal es recibir, procesar y transmitir información,
están especializadas en la recepción de estímulos y conducción del impulso nervioso (en forma de
potencial de acción).

www.senati.edu.pe
Neurona biológica
Una neurona tiene tres partes principales:
• Ramas de extensión o Dendritas reciben estímulos de entrada.
• Cuerpo de la Neurona, procesa estímulos de entrada.
• Axón, emite estímulos de salida de las dendritas a otras neuronas.
La señal transmitida entre los terminales axónicos y las dendritas de otra neurona es de origen químico.
Además, esta conexión entre axón de una neurona y las dendritas de otra se llama sinapsis.

www.senati.edu.pe
Neurona artificial
Las neuronas artificiales y en consecuencia, las redes neuronales, tratan de imitar la funcionalidad de
un cerebro biológico, aunque el sistema artificial no alcanza la complejidad del mismo.
Las entradas Xi representan las señales que provienen de otras neuronas y que son capturadas por las
dendritas, los pesos Wi son la intensidad de la sinapsis que conecta dos neuronas; tanto Xi como Wi
son valores reales. “𝜃” es la función umbral que la neurona debe sobrepasar para activarse; este
proceso también ocurre biológicamente en el cuerpo de la célula.

Representación de la
neurona biológica a la
neurona artificial.

www.senati.edu.pe
Neuronas artificiales
Las señales de entrada a una neurona artificial X1, X2, Xn son variables continuas.
• Cada señal de entrada pasa a través de una ganancia o peso.
• Los pesos pueden ser positivos (excitatorios), o negativos (inhibitorios).
• El nodo sumatorio acumula todas las señales de entrada multiplicadas por los pesos o ponderadas y
las transfiere a la salida a través de una función umbral o función de transferencia.

Representación de la
neurona biológica a la
neurona artificial.

www.senati.edu.pe
Neurona Artificial - Funcionamiento

www.senati.edu.pe
Hechos históricos y conceptos

Javier Laredo de las Heras Muñoz www.senati.edu.pe


Alan Turing
El primero en estudiar el cerebro como una forma de ver el mundo de la computación, logrando
crear la computadora moderna, y años más tarde, con su manuscrito “Intelligent Machinery”, sentaba
las bases de lo que hoy en día es el campo de la inteligencia artificial.

En el artículo Intelligent Machinery, Turing idea una red neuronal a la que dio el nombre de «Máquina
Inorgánica de tipo B», que consistía en neuronas artificiales y dispositivos que modificaban las
conexiones entre ellas.
www.senati.edu.pe
En 1943, Warren McCulloch, un neurofisiólogo, y Walter Pitts, un matemático, dieron los primeros
fundamentos de la computación neuronal, explicaron la posible forma de trabajar de las neuronas y
modelaron una red neuronal simple mediante circuitos eléctricos.

www.senati.edu.pe
¿Qué es una red neuronal?
Las redes neuronales artificiales son un modelo que se inspira en el funcionamiento del cerebro
humano, más específicamente, de las neuronas y sus conexiones entre ellas, lo que le permite a nuestro
cerebro resolver problemas complejos. Las neuronas artificiales también están conectadas entre si y al
igual que las reales, se transmiten señales, yendo desde la entrada hasta generar una o varias salidas.

www.senati.edu.pe
Donal Hebb en 1949 fue el primero en explicar los procesos del aprendizaje, desde un punto de vista
psicológico, desarrollando una regla de como el aprendizaje ocurría. Estos trabajos formaron las bases
de la teoría de redes neuronales artificiales.

www.senati.edu.pe
La neurona recibe estimulos externos de las
conexiones de entrada (valores de entrada) con
estos valores la neurona ejecurtara un cálculo
interno y dará como resultado un valor de salida.

Para el cálculo, la neurona utiliza todos los valores de


entrada para hacer una suma ponderada, la ponderación
de las entradas viene dada por el peso que se le asigna a
cada una de las coneciones de entrada; estos pesos son
los parámetros que podremos ajustar para que la red
neuronal pueda aprender

www.senati.edu.pe
Entre los años 1950 y 1956 karl Lashley, la información no era almacenada
en forma centralizada en el cerebro, sino que era distribuida encima de él.

El Congreso de Dartmouth se conoce como el inicio de la inteligencia artificial.

John McCarthy Marvin L. Minsky Nathaniel Rochester Claude E. Shannon

www.senati.edu.pe
Frank Rosenblatt en 1957, comenzó el desarrollo del Perceptrón, la red neuronal más antigua que se
conoce, es usado actualmente en el reconocimiento de patrones.

Inspirado en el trabajo de Warren McCulloch y Walter Pitts creó el Perceptrón, la unidad desde donde
nacería y se potenciarían las redes neuronales artificiales.

www.senati.edu.pe
Un perceptrón toma varias entradas binarias X1, X2, etc. y produce una sola salida binaria. Para
calcular la salida, Rosenblatt introduce el concepto de “pesos” w1, w2, etc., un número real que
expresa la importancia de la respectiva entrada con la salida. La salida de la neurona será 1 o 0 si la
suma de la multiplicación de pesos por entradas es mayor o menor a un determinado umbral.

Inspirado en el trabajo de Warren


McCulloch y Walter Pitts

www.senati.edu.pe
En 1960, Bernard Widrow y Marcial Hoff, desarrollaron la red neuronal ADALINE, (Adaptative Linear
Elements), el primer modelo que fue utilizado para resolver un problema real: filtros adaptativos para
eliminar ecos en las líneas telefónicas.

www.senati.edu.pe
Stephen Grossberg, en 1967, desarrolló la red neuronal Avalancha, que se utilizó para actividades como
reconocimiento continuo del habla.

Esto consistía en elementos discretos con actividad que varía en el tiempo que satisface ecuaciones
diferenciales continuas, para resolver actividades como reconocimiento continuo de habla y
aprendizaje de los brazos de un robot.
www.senati.edu.pe
Marvin Minsky y Seymour Papert en 1969, demostraron que el Perceptrón era una red muy débil pues
no podía resolver problemas sencillos como el aprendizaje de una función no-lineal. Sin embargo, los
estudios sobre redes neuronales artificiales continuaron, como es el caso de James Anderson que
desarrolló un modelo lineal llamado Asociador Lineal.

El cual consistía en unos elementos integradores lineales (neuronas) que sumaban sus entradas. Este
modelo se basa en el principio de que las conexiones entre neuronas son reforzadas cada vez que son
activadas.
www.senati.edu.pe
En 1974 Paul Werbos, desarrolló la idea básica del algoritmo Backpropagation (algoritmo de
aprendizaje de propagación hacia atrás); sin embargo su estudio quedó totalmente claro en 1985

www.senati.edu.pe
Noticias de IA y Machine Learning

Brayhan Linares & Moisés García www.senati.edu.pe


Para algunos, esta fase se inició en 2007 con la llegada de los teléfonos inteligentes.

Hace ya algún tiempo que hemos logrado la IA. Los avances de la IA a la hora de superar
la capacidad humana en actividades como el ajedrez ,el juego del Go y la traducción llegan
ahora a los titulares, pero la IA está presente en la industria desde, al menos, la década de
1980.
www.senati.edu.pe
2005. Un ordenador al volante
Un coche autónomo desarrollado por la Universidad de Stanford (EE.UU) gana una competición de
vehículos robot tras conducir 212 kilómetros de desierto sin apoyo humano.

www.senati.edu.pe
2011. Watson gana Jeopardi!
El ordenador desarrollado por IBM bate a los campeones humanos del concurso de televisión
estadounidense de preguntas y respuestas, Jeopardi! Nuevos avances en el procesamiento del lenguaje
natural.

www.senati.edu.pe
Mismo año (2016). AlphaGo vence al Go
Un programa desarrollado por Google DeepMind, vence al campeón mundial del histórico juego Go.
Es uno de los grandes hitos del aprendizaje profundo, una de las técnicas más relevantes en este
momento en inteligencia artificial.

www.senati.edu.pe
2017. Libratus vence al póker
Creado en la Universidad de Carnegie Mellon (EE.UU), el software se impone a rivales humanos en
un torneo múltiple de Texas hold’em para dos personas. Supone un hito por la información imperfecta
que caracteriza al póker.

www.senati.edu.pe
Abril 2018. DeepMimic
Es un sistema de aprendizaje reforzado que permite que un personaje pueda aprender a resolver una
tarea imitando un movimiento de referencia que se le ha enseñado previamente, consiguiendo así unas
dinámicas mucho más naturales y realistas.

www.senati.edu.pe
Abril 2018. DeepMimic

www.senati.edu.pe
Abril 2018. Generación de imágenes a partir de gráficos de escena
“Lo que no puedo crear no lo entiendo”, con esta cita de Richard Feynman comienza el artículo
publicado por la universidad de Stanford y Google en el que han presentado un sistema para la
generación de imágenes completamente nuevas simplemente a partir de la descripción dada en forma
de grafos de los elementos que queremos ver en esa imagen.

www.senati.edu.pe
Abril 2018. Sintetizando imágenes de humanos en poses invisibles
Con este sistema al darle una imagen en la que aparezca un sujeto en una posee determinada, nosotros
podemos definirle una nueva pose objetivo y el sistema aprenderá a crear una nueva imagen en el que
el sujeto aparezca en dicha pose.

www.senati.edu.pe
Abril 2018. Modelo audiovisual para la separación de voz independiente del hablante.
Este modelo puede detectar y separar una señal de audio de una pista en la que se encuentran varios
audios mezclados, un efecto que los humanos podemos hacer de forma natural y que se conoce como el
efecto de la fiesta de cóctel.

www.senati.edu.pe
Junio 2018. Fútbol en tu mesa (Soccer on Your Tabletop - NVIDIA)
Este sistema permite que a partir de un vídeo en dos dimensiones de un partido de fútbol, la señal de
vídeos que se ve por el televisor, se puede reconstruir el campo en tres dimensiones, incluyendo las
avatares de los jugadores en su localización y pose original.

www.senati.edu.pe
Junio 2018. DensePose
Este sistema, presentado por Facebook, nos muestra una evolución de la técnica de machine learning
que permite determinar la pose de una persona a partir de un vídeo en dos dimensiones, logrando
establecer una malla completa que equivale a la geometría tridimensional de la persona, y más
increíble aún es conocer que el sistema es capaz de realizar estas operaciones en múltiples fotogramas
por segundo y corriendo únicamente en una sola GPU.

www.senati.edu.pe
Junio 2018. Inteligencia artificial detecta a las personas a través de las paredes
El MIT, presenta un sistema capaz de estimar la pose y la localización de una persona mediante las
perturbaciones que ésta produce en las señales de radiofrecuencia wifi, puesto que las señales wifi son
capaces de atravesar paredes y obstáculos, este sistema es robusto incluso para la inferencia de poses
en situaciones donde visualmente el sujeto no puede ser percibido. Durante el entrenamiento el sistema
si accede a la señal visual para sincronizar el esqueleto inferido de la imagen con los patrones de la
señal wifi pero posteriormente a eso el sistema es capaz de continuar influyendo la pose solamente a
partir de las perturbaciones de radio con una eficacia similar a la de los sistemas basados en visión
(infrarroja o radar).

www.senati.edu.pe
Julio-Agosto 2018. Deep Learning en patrones de réplicas después de grandes terremotos
Una colaboración entre Google y la universidad de Harvard, nos explica cómo mediante el uso de redes
neuronales se ha conseguido entrenar a un modelo con el que poder localizar con precisión las réplicas
producidas por un terremoto.

www.senati.edu.pe
Julio-Agosto 2018. Everybody Dance Now
Con este modelo se ha conseguido utilizar algoritmos generativos de machine learning para la
sintetización de vídeos los que una persona aparece realizando los movimientos extraídos de otro
vídeo, a esta técnica se le denomina “motion transfer”.

www.senati.edu.pe
Marzo 2019. Unificando la física y el aprendizaje profundo con TossingBot
Es un robot que además de clasficar objetos, tiene la capacidad de agarrarlos y luego lanzarlos con con
bastante precision a una ubicación específica.

www.senati.edu.pe
Marzo 2019. Unificando la física y el aprendizaje profundo con TossingBot
Aquí se le ve, en la izquierda, como al principio le cuesta si quiera agarrar uno de los objetos pero
después de más horas de entrenamiento ya se ven mejores resultado, como se puede apreciar a la
derecha.

www.senati.edu.pe
Julio-Agosto 2018. Sophia
Construida por la compañía Hanson Robotics que se dedica a hacer robots con apariencia humana,
dispone de cámaras de reconocimiento de objetos y un sintetizador de lenguaje natural en varios
idiomas, gracias al uso de esas y otras varias tecnologías, es capaz de sostener una conversación, hasta
cierto punto, coherente… PERO…

www.senati.edu.pe
2016. Microsoft lanza Tay
El bot fue creado por las divisiones de tecnología y búsqueda Bing de microsoft. Fue diseñado para
imitar los patrones de lenguaje de una adolescente estadounidense mujer de 19 años, y para aprender de
las interacciones con usuarios humanos de Twitter. Tras apenas 16 horas de funcionamiento, causó
controversia por entregar mensajes ofensivos por lo que fue dado debaja inmediatamente.

“La conocida
multinacional lanza en
“El software se
Internet
vuelve racista,
un chatbot capaz de
xenófobo y
aprender a partir de
homófobo.”
la interacción con las
personas.”

www.senati.edu.pe
Requisitos de Aprendizaje

Moisés García Hidalgo www.senati.edu.pe


Programar en Python
Saber programar en Python es uno de las cosas bases que alguien debe saber si está interesado en
estudiar y sumergirse, en este campo de la Inteligencia Artificial y Machine Learning.
Pero al hablar de “saber programar”, no solo se habla de lo básico sino también de lo Avanzado, como
lo es la Programación Orientada a Objetos (POO), y esto es de he hecho lo más usado en Machine
Learning, por lo que saber POO es fundamental.

www.senati.edu.pe
¿Matemática?
A veces cuando aprendemos a programar o a hablar sobre programación, no escuchamos que hablen de
formulas matemáticas, solo es el entender la lógica y de saber como aplicarla a lo que uno quiere.

Pero para este tipo de tecnologías es necesario saber algo más que solo la lógica de programación y eso
es justamente las matemáticas.
www.senati.edu.pe
Matemática
Saber como se operan las sumatorias, saber cuales son las funciones “sigmoide” o “relu”, saber de
derivadas, saber de métodos estadísticos como el “error cuadrático medio”…

www.senati.edu.pe
Matemática
Saber de matrices, como se operan entre ellas, saber la traspuesta e inversa de una matriz…

www.senati.edu.pe
Matemática

www.senati.edu.pe
Matemática

www.senati.edu.pe
Matemática aplicada a la POO

www.senati.edu.pe
Matemática aplicada a la POO

www.senati.edu.pe
Herramientas de desarrollo

Cristian Diaz Gutierrez www.senati.edu.pe


¿Qué es Anaconda?
Anaconda o Anaconda Navigator, es una distribución de herramientas para ciencia de datos y crear
modelos de aprendizaje automático, usando como lenguajes a Python y R.

www.senati.edu.pe
VSCode vs Spyder vs JupyterLab vs Jupyter-
Notebook
Cuatro principales herramientas que nos ofrece Anaconda, aunque el VSCode no viene por defecto, al
tenerlo instalado Anaconda lo reconoce. Ahora, cuál elijo? Eso dependerá bastante de lo que uno
requiere o busca hacer, y en nuestro es hacer Machine Learning (ML).

www.senati.edu.pe
VSCode y Spyder
Aunque ambos se parecen, la realidad es que VSCode es solo es un “editor de código”, mientras que
Spyder si es una IDE y más aún, desarrollada para trabajar con Python.
Es cierto que VSCode dispone de herramientas para compilar y hacer debug, pero tanto este como
Spyder, ejecutan todo el código fuente en un “barrido”, y eso en ML podría sobrecargar mucho a
nuestro hardware.

www.senati.edu.pe
JupyterLab y Jupyter-Notebook
Se podría decir que ambos son lo mismo pero uno es más completo que el otro. Jupyter-Notebook, es
simple y fácil de usar, con la limitante de que solo puedes trabajar un archive a la vez. En cambio, con
JupyterLab, puedes abrir en varias pestañas más de un solo proyecto Notebook e instalar extensiones
que puedan complementar nuestro proyecto. Y no solo eso, lo esencial en ambos es que se puede
ejecutar código por secciones y hacer comentarios usando markdown como lenguaje, con esto los
archivos jupyter se pueden enriquecer bastante y con el código de programa incluido.

www.senati.edu.pe
¿Qué librerías se usan en Machine Learning?
El conjunto de librerías es Amplio y explicar cada una a fondo tomará tiempo, así que solo se dará una
breve explicación a cada una de las principals librerías usadas en el campo del Machine Learning.

www.senati.edu.pe
NumPy
Es como un equivalente de Matlab pero en Python, ya que permite hacer operaciones con matrices de
manera muy eficiente y de maneras muy variadas. Operaciones de álgebra lineal, transformadas de
Fourier, generación de números aleatorios… Básicamente para operaciones matemáticas complejas.

www.senati.edu.pe
SciPy
Es un software de código abierto para matemáticas, ciencias e ingeniería, que se complementa con
NumPy y Matplotlib.

www.senati.edu.pe
Matplotlib
Es la librería estándar que nos permite hacer gráficas en 2D y hasta en 3D de manera muy sencilla y
personalizable, se puede crear visualizaciones estáticas, animadas e interactivas y todo con Python.

www.senati.edu.pe
Scikit-Learn
Contiene herramientas simples y eficientes para el análisis de datos predictivos, accesible para todos y
reutilizable en varios contextos, construido sobre NumPy, SciPy y matplotlib.

www.senati.edu.pe
IPython
Es un shell interactivo que añade funcionalidades extra al modo interactivo incluido con Python, como
resaltado de líneas y errores mediante colores, una sintaxis adicional para el shell, autocompletado
mediante tabulador de variables, módulos y atributos; entre otras funcionalidades.

www.senati.edu.pe
TensorFlow
Creado por el equipo de Google Brain, es una biblioteca de código abierto compatible con
Python para el cálculo numérico que hace que el aprendizaje automático sea más rápido y
fácil.

www.senati.edu.pe
¿Cómo funciona TensorFlow?
TensorFlow permite a los desarrolladores crear gráficos de flujo de datos: estructuras que
describen cómo se mueven los datos a través de un gráfico.

TensorFlow proporciona todo esto para el programador a través del lenguaje Python.
www.senati.edu.pe
PyTorch
Es un paquete de Python diseñado para realizar cálculos numéricos haciendo uso de la programación de
tensores. Además permite su ejecución en GPU para acelerar los cálculos.

Normalmente PyTorch es usado tanto para sustituir numpy y procesar los cálculos en GPU centrado
principalmente en el desarrollo de redes neuronales.
www.senati.edu.pe
Keras
Keras: es una API de alto nivel para el desarrollo de redes neuronales escrita en Python. Utiliza otras
librerías de forma interna como son Tensorflow, CNTK

Fue desarrollado con el propósito


de facilitar y agilizar el
desarrollo y la experimentación
con redes neuronales.

www.senati.edu.pe
Pandas
Pandas es un paquete versátil muy utilizado, que nos facilita leer datasets o conjuntos de datos en un
formato medianamente útil, en el caso de Python sería dataFrame. También nos permite varias
operaciones básicas de estadísticas y de dataFrames.

www.senati.edu.pe
Simplicidad vs Flexibilidad

Mayor simplicidad Mayor flexibilidad


pero menor pero menor
flexibilidad en la simplicidad en
arquitectura de la código para el
red neuronal. entrenamiento.

www.senati.edu.pe
Hacking con Python

Cristian Diaz Gutierrez www.senati.edu.pe


Hacking ético:
Es denominado a la acción que realizar un pirata informático para encontrar vulnerabilidades
en un sistema o brechas y que de esta forma sean parchados sin generar daño a los usuarios o
empresas.

www.senati.edu.pe
Herramientas hechas en Python:

SQLMAP
1. Identificación
2. Explotación
3. Análisis
4. Post explotación

www.senati.edu.pe
Herramientas hechas en Python:

NMAP
1. Identificación, analisis,
reconocimiento o
explotación
2. Hecha en python
3. Es una de la más
usada para auditorías
de redes

www.senati.edu.pe
Wappalyzer
Es desde hace tiempo una completa utilidad online que permite la detección de tecnologías presentes
en sitios webs.

www.senati.edu.pe
Aplicaciones Implementadas

Moisés García Hidalgo www.senati.edu.pe


www.senati.edu.pe

También podría gustarte