Mostrando entradas con la etiqueta Redes Neuronales. Mostrar todas las entradas
Mostrando entradas con la etiqueta Redes Neuronales. Mostrar todas las entradas

martes, 20 de noviembre de 2012

Reporte de contribución Redes Neuronales

Proyecto: Speaker Recognition System

El proyecto consiste en hacer una red neuronal que sea capaz de reconocer al locutor, y así poder validar que entre al sistema o no. Es decir con solo escuchar la voz de una persona es posible decir si es la persona indicada o no.

Mi contribución se divide en 2 partes, primero continuar con el tratamiento del audio y mejorar los cálculos ya hechos, para poder alimentar la neurona, que consistió en codificar en python formulas matemáticas y trabajo de investigación, segundo la realización de la interfaz para que el usuario pueda acceder al sistema.

Repositorio
Otro link


Entradas de datos:

Se terminó con el tratamiento de la señal que se había dado ya en la primera parte, estos fueron los pasos definitivos y correctos que seguí y que utilizamos para la entrada de la red neuronal.

La Investigación y Codificación del tratamiento de las señales, para poder dar las entradas a la red neuronal.

Extracción de Características

Es el proceso en el que se extrae la información de la señal para poder representar al locutor mediante un modelo propio.
Para representar la señal de la voz se usará el coeficiente MFCC (Mel Frequency Cepstrum Coefficients).
Los MFCC se pueden calcular trabajando en el dominio de la frecuencia.



Tramado y Enventanada: Estos dos pasos tienen como meta disminuir la distorsión, la función de wavfile.read nos da una lista de la señal ya aplicado el tramado y enventanado.

FFT: Se hace la transformada rápida de Fourier, que convierte cada trama de N muestras del dominio temporal al dominio de la frecuencia. El resultado de este paso
se conoce como el espectro de la señal.

Transformación a escala Mel: La percepción humana de las frecuencias no sigue una escala lineal. Por esto se debe hacer un escalado de las frecuencias en Hz a una escala subjetiva conocida como la escala Mel. Se da mayor importancia a la información contenida en las bajas frecuencias en consonancia con el comportamiento del oído humano.

Cepstrum: Se convierte el espectro Log Mel al tiempo. Para esto primero se calcula el logaritmo de SK. Luego como los coeficientes Mel (y su logaritmo) son números reales, se los puede convertir al dominio temporal usando la Transformada Discreta del Coseno (DCT). Este resultado es el que llamamos MFCC.

 Código:




La otra parte de mi contribución es la Ventana que verá el usuario cuando entrene la red, se realizó una interfaz sencilla que muestra en la parte principal un texto para que el usuario pueda leerlo, en la parte siguiente un input text para que escriba su nombre de usuario, después botones para iniciar la grabación y otro botón para salir del sistema. Una parte de esto la hizo también mi compañero Roberto Martínez.

También integré el código de la interfaz con el de tratamiento de los datos, para que al grabar el usuario su voz automáticamente se vaya al tratamiento y se pueda meter el dato a la red neuronal y así saber si si es la persona o no lo es. Se importaron las funciones del archivo audio.py que es el que nos ayuda a sacar los datos importantes del audio.

Código:




Esta vez mis contribuciones corresponden a los commits: [35, 36, 41, 46, 47]
Y los commits anteriores fueron: [12, 13, 26, 27, 28, 29, 30, 31, 32]

Repositorio:



Gráficas del tratamiento de datos:





martes, 13 de noviembre de 2012

Detección de fraude en tarjetas de crédito con redes neuronales

Credit Card Fraud Detection with a Neural-Network

Por Sushmito Ghosh and Douglas L. Reilly

En este artículo proponen el uso de una red neuronal que detecta fraude en las tarjetas de crédito, entrenando con base a las transacciones y probando datos que se registraron en la tarjeta en un periodo de 2 meses. Esta red se formo sobre ejemplos de fraude de tarjetas perdidas, robadas, fraude de falsificación. Un sistema basado en esto se instaló en IBM 3090 Mellon Bank.

Este tipo de fraude va en aumento en la industria de las tarjetas de crédito, se estima que alrededor de 850 millones de dólares es la pérdida por fraudes, lo que es un 10% más que en 1991.

Aunque hay bastantes formas de fraude en tarjetas de crédito, hay algunas categorías principales. El fraude debido a robo o perdida representa el nivel básico. Otra categoría es el fraude por tarjetas falsificadas. Y el robo de tarjetas de correo llamado NRI ha sido muy importante en los últimos años, en algunas partes el problema ha sido tan grave que los emisores han usado métodos alternativos de tarjeta de entrega y programas especiales de activación de tarjetas de crédito. Con la tarjeta de activación la tarjeta esta bloqueada hasta que el banco llama al cliente para ver si recibió la tarjeta.
Otra fuente de fraude es la pérdida por correo, en esos casos el comprador no esta presente en el momento de la transacción.



La diversidad de actividades fraudulentas como se demuestra en las diferentes formas de fraude que se mencionaron ya, hace que la detección del comportamiento fraudulento no sea fácil, entonces los bancos al obtener solicitudes de tarjetas de crédito tienen que seguir una rutina para saber detectar si hay fraude.

Entonces se revisa cada actividad en la cuenta, y es posible especificar límites nominales en el número de transacciones que se espera que ocurran en un día de manera razonable.
La mayoría de los bancos usan solamente el análisis estadístico básico para el desarrollo de normas contra el fraude, el uso de técnicas más sofisticadas tecnológicas pueden ayudar a detectar fraude para mejorar los resultados. Particularmente esto puede ser visto como un patrón de reconocimiento, este problema de detección de fraude parece ser muy adecuado para aplicar una solución con red neuronal.

El banco Mellon estudio la factibilidad de usar redes neuronales en la detección de este fraude, y determinó la eficacia de reconocer fraudes en tarjetas de crédito. Esto consistió en la formación de una red neuronal basada en muestras de fraude, seguida con la ejecución de pruebas a ciegas de el modelo , entrenando solo una parte, si muestrar y guardando todas las transacciones.
Cuando se llega una solicitud de transacción, para que pudiera ser actualizada se comprueban los datos del titular de la tarjeta(número de cuenta y código). También se pueden tomar datos como hora del día. Entonces son archivados estos datos de las transacciones para la red neuronal.



El diseño de la red neuronal se basa en un proceso de extracción de características al que se le aplica una entrada de datos con el fin de representar el comportamiento. Un conjunto de 50 campos de datos se le puede combinar para que produzca 20 características que se utilicen como entrada en la red. Las caracteristicas se pueden agrupar en categorías. Los datos de entrada pueden incluir elementos descriptivos como la cantidad de transacción, el día la hora a la que se produce, así como caracterización de las características del uso de la tarjeta para pagos efectuados con ella.


Se usan tres capas, de alimentación hacia adelante, que es un modelado preciso de distribuciones estadísticas. Este tipo de red es ideal para modelos compactos y de forma no lineal de regiones malla, entre los procedimientos de formación de varios conocidos para dicha red Feed-forward de tres capas que combina redes de radio con pocos perceptrones con interior de subproductos de perceptrones actualmente llamado Función de base radial redes (RBFs). En una red RBF, la capa de entrada de células transmite el vector de patrón de entrada a todas las células en la segunda capa.

En una red RBF la capa de entrada transmite un vector de patrón de entrada a todas las células en la segunda capa. Se calcula la activacion:





Durante el entrenamiento correctamente los patrones correctos de la clase, que provoca actividad en la capa media, incrementa el peso W2ij:



martes, 21 de agosto de 2012

Función sigmoidal

Para no olvidar, aquí dejo una entrada con una gráfica sigmoidal en GNUPLOT.
En gnuplot:

 La gráfica


martes, 7 de agosto de 2012

Redes neuronales artificiales

Dinámica de tecleo




La biometría del tecleo, es la información de tiempo detallado que describe exactamente cuando cada tecla es presionada y soltada por una persona cuando escribe en un teclado de computadora.
La dinámica de tecleo es una rama de la biometría que se dedica al estudio del reconocimiento del patrón de tecleo de un usuario.

La manera de escribir es tan única como la firma y la escritura.

Se puede también hacer detección de errores y esto es tan único en la personas para poder decidir de quien es el texto tecleado.

Lenguaje Python
Libreria

Aplicación que permita mantener abiertas sesiones en las computadoras y cuando cambie de usuario abrir sus sesiones automáticamente étc.