5.1.1 Introducción.
Los técnicos profesionales por todo el mundo confían en MATLAB acelera su investigación, condensa el tiempo invertido en el análisis y desarrollo, reduce costos del proyecto, y produce soluciones eficaces. El ambiente de MATLAB fomenta la creatividad y le permite probar y comparar rápidamente alternativas múltiples. Consecuentemente, usted produce soluciones mejores
Los usuarios han encontrado que la combinación de la interfaz de MATLAB, el lenguaje, y las funciones incorporadas de las matemáticas y de los gráficos hace a MATLAB la plataforma preferida para programar, comparado a C, al FORTRAN, y a otros lenguajes.
MATLAB maneja una gama de tareas computacionales que se usan en la ingeniería y la ciencia, de la adquisición de datos y del análisis, al desarrollo. El ambiente de MATLAB integra procesador matemático, la visualización, y un lenguaje técnico de gran alcance. Las interfaces incorporadas le permiten tener acceso rápidamente e importar datos a los instrumentos, de los archivos, y de las bases de datos y de los programas externos. Además, MATLAB le deja integrar las rutinas externas escritas en C, C++, el FORTRAN, y Java con sus usos de MATLAB.
Características Dominantes
|
• |
El procesador numérico para los resultados rápidos y exactos |
|
• |
Gráficos para visualizar y para analizar sus datos |
|
• |
Ambiente interactivo del lenguaje y de programación |
|
• |
Herramientas para construir GUIs de encargo |
|
• |
Interfaces a las lenguajes externos, tales como C, C++, FORTRAN, y Java |
|
• |
Ayuda para los datos de importación de archivos y de dispositivos externos y para usar el archivo bajo I/O (más el acceso a las bases de datos y al hardware adicional vía productos adicionados) |
|
• |
Conversión de los usos de MATLAB a C y a C++ con la habitación del recopilador |
Este amplio sistema de capacidades hace de MATLAB una base de origen ideal para los líquidos de revelado de los problemas técnicos.
El ambiente de MATLAB se diseña para el cómputo interactivo o automatizado. Usando las funciones incorporadas de las matemáticas y de los gráficos y las herramientas fáciles de utilizar, usted puede analizar y visualizar sus datos en marcha. Las herramientas estructuradas del lenguaje y la programación le dejan los resultados de sus exploraciones interactivos y desarrollan sus propios algoritmos y usos.
¿Que es MATLAB?
El ® de MATLAB es una lengua de alto rendimiento para un proceso computacional técnico. Integra el cómputo, la visualización, y la programación en un ambiente fácil de utilizar donde los problemas y las soluciones se expresan en la notación matemática familiar. Las aplicaciones típicas incluyen:
MATLAB es un sistema interactivo con un elemento de datos básico, es un arsenal que no requiere el dimensioning. Esto permite que usted solucione muchos problemas técnicos, especialmente ésos con formulaciones de matriz y de vector, en una fracción del tiempo que tomaría para escribir un programa en una lengua no interactivo escalar tal como C o FORTRAN.
El nombre MATLAB está dado por el laboratorio de la matriz . MATLAB fue escrito originalmente para proporcionar el acceso fácil al software de la matriz desarrollado por los proyectos de LINPACK y de EISPACK. Hoy, el software de las aplicaciones de MATLAB se convirtió por los proyectos de LAPACK y de ARPACK, que juntos representan el estado plus ultra en el software para el cómputo de la matriz.
MATLAB se ha desarrollado durante años con la entrada de muchos usuarios. En ambientes de la universidad, es la herramienta educacional estándar para los cursos introductorios y avanzados en matemáticas, la ingeniería, y la ciencia. En industria, MATLAB es la herramienta de la opción para la investigación, el desarrollo, y el análisis de alta-productividad.
MATLAB ofrece una familia de las soluciones de aplicación especifica (application-specific) llamadas las cajas de herramientas . Muy importante para la mayoría de los usuarios de MATLAB, las cajas de herramientas permite que usted aprenda y que aplique tecnología especializada. Las cajas de herramientas son colecciones comprensivas de las funciones de MATLAB (M-archivos) que extienden el ambiente de MATLAB para solucionar clases particulares de problemas. Las áreas en las cuales las cajas de herramientas están disponibles incluyen el proceso de señal, sistemas de control, redes neuronales, lógica difusa, la simulación, y muchos otras.
El Sistema de MATLAB
El sistema de MATLAB consiste en cinco porciones principales:
Ambiente Del Desarrollo. Éste es el sistema de las herramientas y de las instalaciones que le ayudan a utilizar funciones y archivos de MATLAB. Muchas de estas herramientas son interfaces gráficas. Incluye el tablero del escritorio de MATLAB y la ventana del comando, una historia del comando, y los browsers para la visión, el espacio de trabajo, los archivos, y el camino de búsqueda en un fichero.
La Biblioteca Matemática De la Función de MATLAB. Ésta es una colección extensa de algoritmos de cómputo que se extienden de funciones elementales como la suma, seno, coseno, y la aritmética compleja, a funciones más sofisticadas como lo contrario de la matriz, valores propios de la matriz, las funciones de Bessel, y transformada rápida de Fourier.
El Lenguaje de MATLAB. Este es un lenguaje de alto nivel de matrix/array con declaraciones de control del flujo, funciones, las estructuras de datos, la entrada-salida, y las características de programación orientadas al objeto. Permite la creación rápida de pequeños programas desechables, y también crear programas completos de uso grande y complejo.
Manejador Graphics®. Éste es el sistema de los gráficos de MATLAB. Incluye los comandos de alto nivel para la visualización de los datos, el proceso de imagen, la animación, y los gráficos de dos dimensiones y tridimensionales de la presentación. También incluye los comandos bajos así como los cuales permita que usted modifique completamente el aspecto para requisitos particulares de gráficos para construir interfaces gráficas completas en sus usos de MATLAB.
El Application Program Interface de MATLAB (Api). Ésta es una biblioteca que permite que usted escriba los programas de C y del FORTRAN que trabajan recíprocamente con MATLAB. Incluye las instalaciones para las rutinas que llaman de MATLAB (el ligamiento dinámico), llamando a MATLAB como motor de cómputo, y para los archivos de lectura y de escritura.
Descripción de la caja de herramientas de redes neuronales (Neural Network Toolbox)
La caja de herramientas de redes neuronales extiende el ambiente de aplicación de MATLAB para proporcionar las herramientas para el diseño, la puesta en práctica, la visualización, y la simulación de redes neuronales. Las redes neuronales son herramientas únicamente de gran alcance en usos donde estaría difícil o imposible el análisis formal, por ejemplo el reconocimiento de patrones y la identificación y el control no lineales del sistema. La caja de herramientas de redes neuronales proporciona la ayuda comprensiva para muchos paradigmas probados de la red, así como una interfaz gráfica que permita que usted diseñe y que maneje sus redes. El diseño modular, abierto, y extensible de la caja de herramientas simplifica la creación de funciones y de redes modificadas para requisitos particulares.
Características Dominantes
• |
Interfaz gráfica (GUI) para crear, entrenar, y simular a sus redes neuronales |
|
• |
La ayuda para usuario lo más comúnmente posible arquitecturas de red supervisada y no supervisada. |
|
• |
Un sistema comprensivo de entrenamiento y de funciones de aprendizaje |
|
• |
Una habitación de los bloques del Simulink, así como la documentación y demostraciones de los usos del sistema de control |
|
• |
La generación automática de Simulink modelado de los objetos de la red neuronal |
|
• |
Representación modular de la red, permitiendo un número ilimitado de la entrada que fija capas, e interconexiones de la red |
|
• |
Funciones pre y de proceso del bias para mejorar el entrenamiento de la red y determinar el funcionamiento de la red |
|
• |
Rutinas para mejorar la generalización |
|
• |
Funciones de la visualización para el funcionamiento de la red neuronal |
El primer paso del entrenamiento de una red neuronal es crear la red. La función newff crea una red con conexión hacia adelante. Esta función requiere de cuatro parámetros y regresa un objeto del tipo red:
Por ejemplo el siguiente comando crea una red de dos capas. Tendrá un vector de entrada con dos elementos (p-1 = 2), tres neuronas en la primera capa (L-1 = 3) y una neurona en la segunda capa (salida) (m = 1).
La función de transferencia en la primera capa será la tansig, y la función de transferencia en la capa de salida será lineal. Los valores para el primer elemento del vector de entrada estarán en el rango de -1 y 2, los valores del segundo elemento del vector de entrada estará en el rango de 0 y 5, esto es, la matriz XR es de la forma siguiente:
XR = [-1 2; 0 5];
Y la función de entrenamiento será traingd (la cual describiremos más adelante).
net=newff(XR,[L-1,m],'tansig','purelin','traingd');
Este comando crea un objeto del tipo red y también inicializa los pesos y el bias de la red, usando por default el comando (initnw). Por lo tanto la red esta lista para ser entrenada.
Inicialización de pesos (init, initnw, rands)
Si necesitas re- inicializar, o cambiar la inicialización por default de los pesos, utiliza el comando init:
net=init(net);
Esta función toma como entrada un objeto de tipo red y regresa un objeto de tipo red con los pesos y bias inicializados. Esta función es invocada por el comando newff y usa el algoritmo de Nguyen-Widrow.
Si, por ejemplo, queremos re-inicializar los pesos y los bias en la primera capa de forma aleatoria, usando la función rands, debemos usar los siguientes comandos:
net.layers{1}.initFcn = 'initwb';
net.inputWeights{1,1}.initFcn = 'rands';
net.biases{1,1}.initFcn = 'rands';
net.biases{2,1}.initFcn = 'rands';
net = init(net);
La función sim simula una red neuronal. La función sim toma la entrada de la red X, y el objeto red net, y regresa la salida de la red Y.
Aquí se muestra como puede ser usado el comando simuff, para simular la red que creamos anteriormente para un vector de entrada simple:
x = [1;2];
a = sim(net,x)
a = -0.1011
Abajo, el comando sim es llamado para calcular las salidas para un vector de entrada de tres elementos.
X = [1 3 2;2 4 1];
Y = sim(net,X)
Y = -0.1011 -0.2308 0.4955
La función adapt es usada para entrenar redes en el modo de crecimiento (pattern). Esta función toma el objeto red, las entradas y los valores deseados para el entrenamiento, y regresa el objeto red entrenado con los valores de salida y errores de la red para los pesos y bias finales.
La alternativa para un entrenamiento en crecimiento es el entrenamiento batch, el cual es invocado usando la función train. En el modo batch los pesos y bias de la red son actualizados solo después de haber concluido el entrenamiento en la red.
Algunas de las funciones disponibles para el entrenamiento de tipo batch se listan en la tabla siguiente junto con un tiempo relativo de convergencia.
Function |
Technique |
Time |
Epochs |
Mflops |
traingdx |
Variable Learning Rate |
57.71 |
980 |
2.50 |
trainrp |
Rprop |
12.95 |
185 |
0.56 |
trainscg |
Scaled Conj. Grad. |
16.06 |
106 |
0.70 |
traincgf |
Fletcher-Powell CG |
16.40 |
81 |
0.99 |
traincgp |
Polak-Ribiére CG |
19.16 |
89 |
0.75 |
traincgb |
Powell-Beale CG |
15.03 |
74 |
0.59 |
trainoss |
One-Step-Secant |
18.46 |
101 |
0.75 |
trainbfg |
BFGS quasi-Newton |
10.86 |
44 |
1.02 |
trainlm |
Levenberg-Marquardt |
1.87 |
6 |
0.46 |
Lista de funciones
Versión 4,0,1
Funciones del análisis
errsurf - superficie del error de la neurona de entrada
maxlinlr – máxima tarifa del aprendizaje para una capa lineal
Funciones de inicialización de la capa
initnw - función de la inicialización de la capa de Nguyen-Widrow
initwb - función de inicialización de los pesos y del bias.
Funciones de aprendizaje
learncon - función de aprendizaje diagonal de la conciencia
learngd - función de aprendizaje del gradiente descendente
learngdm - función de aprendizaje del gradiente con momentum
learnh - función del aprendizaje de Hebb
learnhd - Hebb con la función de aprendizaje descendente
learnis - función de aprendizaje del peso de Instar
learnk - función de aprendizaje Kohonen
learnlv1 - función de aprendizaje LVQ1
learnlv2 - función de aprendizaje LVQ2
learnos - función de aprendizaje de Outstar
learnp - función de aprendizaje del Perceptron
learnpn - función normalizada de aprendizaje del perceptron
learnsom - función de aprendizaje del mapa de auto-organización
learnwh - regla de aprendizaje de Widrow-Hoff
Funciones de la búsqueda de la línea
srchbac - búsqueda de la vuelta hacia atrás
srchbre - interpolación de la combinación de la sección de oro y cuadrática de Brent
srchcha - interpolación cúbica de Charalambous
srchgol - búsqueda de la sección oro
srchhyb - búsqueda del híbrido bisection/cubic
Creación redes
red - crea una red neuronal
newc - crea una capa competitiva
newcf - crea una red conexión hacia adelante backpropagation
newelm - crea una red de Elman backpropagation
newff - crea una red feed-forward backpropagation
newfftd - crea un red feed-forward de entrada retrasada backpropagation
newgrnn - diseña una red neuronal generalizada de regresión
newhop - crea una red recurrente de Hopfield
newlin - crea una capa lineal
newlind - diseña una capa lineal
newlvq - crea una red de cuantización del vector de aprendizaje
newp - crea un perceptron
newpnn - diseña una red probabilistica
newrb - diseña una red de base radial
newrbe - diseña una red de base radial exacta
newsom - crea un mapa de auto-organización
Funciones de inicialización de la red
initlay - función de inicialización de la red capa por capa
Funciones del error
mae - función absoluta del error
mse – función cuadrática media del error
msereg – función de regularización de ajuste del error medio
sse – función que ajusta la suma del error
Funciones para graficar
hintonw - gráfico de Hinton de la matriz del peso
hintonwb - gráfico de Hinton de la matriz del peso y del vector bias
plotbr – grafica el funcionamiento de la red del diagrama para el entrenamiento bayesian de la regularización
plotes - traza una superficie del error de una sola neurona de entrada
plotpc - traza la línea en diagrama del vector de clasificación del perceptron
plotpv – diagrama de los vectores input/target del perceptron
plotep - traza una posición del peso-bias respecto a una superficie de error
plotperf – diagrama del funcionamiento de la red
plotsom – diagrama del mapa de auto-organización
plotv – diagrama de los vectores de origen como líneas
plotvec – diagrama de los vectores con diversos colores
Funciones de entrenamiento
trainb - entrenamiento con regla de aprendizaje de la hornada del peso y del bias
trainbfg - backpropagation quasi-Newton de BFGS
trainbr - regularización bayesiana
trainc - funciones ascendentes de entrenamiento cíclico
traincgb - backpropagation conyugal del gradiente de Powell-Beale
traincgf - backpropagation conyugal del gradiente de Fletcher-Powell
traincgp - backpropagation conyugal del gradiente de Polak-Ribiere
traingd - backpropagation de la pendiente del gradiente
traingdm - pendiente del gradiente con el backpropagation del ímpetu
traingda - pendiente del gradiente con el backpropagation adaptativo del lr
traingdx - pendiente w/momentum y backpropagation adaptativo del gradiente del lr
trainlm - backpropagation de Levenberg-Marquardt
trainoss - backpropagation secante de un solo paso
trainr - funciones ascendentes del entrenamiento w/learning al azar
trainrp - backpropagation resistente (Rprop)
trains - funciones incrementales del entrenamiento w/learning secuencial
trainscg - backpropagation conyugal del gradiente descendente
Funciones de transferencia
compet - función de transferencia competitiva
hardlim - función de transferencia escalon
hardlims - función de transferencia de limite simétrica
logsig - función de transferencia sigmoidal
poslin - función de transferencia lineal positiva
purelin - función de transferencia lineal
radbas - función de transferencia de base radial
satlin - saturación de la función de transferencia lineal
satlins - función de transferencia lineal de saturación simétrica
softmax - función de transferencia máxima suave
tansig - función de transferencia sigmoidea de la tangente hiperbólica
tribas - función de transferencia de base triangular
Simulación redes
sim - simula una red neuronal
init - inicializa una red neuronal
adap - permite que una red neuronal se adapte
train - entrena a una red neuronal
disp - exhibe las características de una red neuronal
exhibit - exhibe el nombre y las características de una variable de la red neuronal
Funciones del peso
dist - función euclidiana de la distancia del peso
dotprod - función del producto de punto del peso
mandist - función de la distancia de Maniatan del peso
negdist - función del producto de punto del peso
normprod - función normalizada del producto de punto del peso
Funciones de inicialización de los pesos y bias
initcon - función de inicialización diagonal de la conciencia
initzero - función de inicialización a cero de weight/bias
randnc - función de inicialización normalizada de la columna del peso
randnr - función de inicialización normalizada de la fila del peso
rands - función de inicialización simétrica al azar de weight/bias