Este documento apresenta um resumo de redes neurais para inferência estatística. Ele introduz conceitos básicos de redes neurais, o software Matlab e a toolbox Netlab. O documento descreve como gerar dados de treinamento fictícios, definir a arquitetura de uma rede neural multicamada e treiná-la usando os algoritmos de otimização do Matlab.
Problema da Mochila 0-1 (Knapsack problem)Marcos Castro
O documento descreve o problema da mochila 0-1, no qual o objetivo é selecionar um conjunto de itens de modo a maximizar o valor total dentro da capacidade máxima de uma mochila. O documento discute abordagens gulosas e de programação dinâmica para resolver o problema, concluindo com uma recorrência recursiva para calcular a solução ótima de forma eficiente.
O documento descreve o núcleo e a imagem de uma transformação linear. O núcleo é o conjunto de vetores que mapeiam para o vetor nulo, enquanto a imagem é o conjunto de vetores alvo. O documento fornece exemplos de cálculo do núcleo e da imagem para transformações lineares entre espaços vetoriais.
O documento descreve os passos para estudar uma função racional. Estes incluem determinar o domínio, estudar a continuidade, encontrar interseções com os eixos, analisar simetrias, monotonia e extremos, pontos de inflexão, assímptotas e esboçar o gráfico. A função dada é f(x)=1/2(x+1/x) e seu estudo segue esta sequência de procedimentos.
Cálculo numérico aula 04 - resolução de sistemas de equações lineares - mét...Rodolfo Almeida
O documento discute métodos numéricos para resolver sistemas de equações lineares, incluindo classificação de sistemas, métodos exatos como eliminação de Gauss e decomposição LU, e métodos iterativos como Jacobi e Gauss-Seidel.
Este documento fornece exemplos resolvidos de derivadas laterais e verificação de derivabilidade em pontos. Resume quatro exemplos mostrando como calcular as derivadas à esquerda e à direita em diferentes funções e pontos para determinar se a função é derivável. Também fornece contatos para aulas particulares de matemática.
1) La tabla presenta las derivadas e integrales de varias funciones comunes. Proporciona fórmulas para derivar e integrar funciones constantes, variables, sumas, productos, cocientes, exponenciales, logaritmos, funciones trigonométricas y sus inversas.
2) Se usan letras como f, u, v, x, c para representar funciones y constantes. Se dan las derivadas de cada función en términos de estas letras y sus derivadas.
3) La tabla es útil para derivar e integrar funciones compuestas de
O documento introduz o conceito de derivadas parciais e apresenta exemplos para esclarecer sua definição e cálculo. A função índice de calor é usada para ilustrar como derivar uma função de duas variáveis. As derivadas parciais de f(x,y)=9-x2-y2 são calculadas no ponto (1,-1), resultando em fx(1,-1)=-2 e fy(1,-1)=2.
Problema da Mochila 0-1 (Knapsack problem)Marcos Castro
O documento descreve o problema da mochila 0-1, no qual o objetivo é selecionar um conjunto de itens de modo a maximizar o valor total dentro da capacidade máxima de uma mochila. O documento discute abordagens gulosas e de programação dinâmica para resolver o problema, concluindo com uma recorrência recursiva para calcular a solução ótima de forma eficiente.
O documento descreve o núcleo e a imagem de uma transformação linear. O núcleo é o conjunto de vetores que mapeiam para o vetor nulo, enquanto a imagem é o conjunto de vetores alvo. O documento fornece exemplos de cálculo do núcleo e da imagem para transformações lineares entre espaços vetoriais.
O documento descreve os passos para estudar uma função racional. Estes incluem determinar o domínio, estudar a continuidade, encontrar interseções com os eixos, analisar simetrias, monotonia e extremos, pontos de inflexão, assímptotas e esboçar o gráfico. A função dada é f(x)=1/2(x+1/x) e seu estudo segue esta sequência de procedimentos.
Cálculo numérico aula 04 - resolução de sistemas de equações lineares - mét...Rodolfo Almeida
O documento discute métodos numéricos para resolver sistemas de equações lineares, incluindo classificação de sistemas, métodos exatos como eliminação de Gauss e decomposição LU, e métodos iterativos como Jacobi e Gauss-Seidel.
Este documento fornece exemplos resolvidos de derivadas laterais e verificação de derivabilidade em pontos. Resume quatro exemplos mostrando como calcular as derivadas à esquerda e à direita em diferentes funções e pontos para determinar se a função é derivável. Também fornece contatos para aulas particulares de matemática.
1) La tabla presenta las derivadas e integrales de varias funciones comunes. Proporciona fórmulas para derivar e integrar funciones constantes, variables, sumas, productos, cocientes, exponenciales, logaritmos, funciones trigonométricas y sus inversas.
2) Se usan letras como f, u, v, x, c para representar funciones y constantes. Se dan las derivadas de cada función en términos de estas letras y sus derivadas.
3) La tabla es útil para derivar e integrar funciones compuestas de
O documento introduz o conceito de derivadas parciais e apresenta exemplos para esclarecer sua definição e cálculo. A função índice de calor é usada para ilustrar como derivar uma função de duas variáveis. As derivadas parciais de f(x,y)=9-x2-y2 são calculadas no ponto (1,-1), resultando em fx(1,-1)=-2 e fy(1,-1)=2.
1. O documento discute cisalhamento transversal em vigas, apresentando a relação entre esforço cortante e tensão cisalhante.
2. Apresenta a fórmula para calcular tensão cisalhante em seções retangulares e suas limitações.
3. Inclui dois exemplos numéricos ilustrando cálculos de momento de inércia, momento estático, esforço cortante e tensão cisalhante em pontos de vigas.
O documento discute conceitos iniciais sobre derivadas, incluindo: (1) Galileu descreveu a relação entre espaço e tempo na queda dos corpos, mas faltava o cálculo diferencial; (2) Newton e Leibniz desenvolveram o cálculo diferencial para medir a taxa de mudança de fenômenos físicos; (3) Isso permitiu explicar o mundo com matemática e desencadeou avanços científicos e tecnológicos.
Este documento fornece exemplos resolvidos de cálculo de área entre curvas usando integrais. O autor explica como calcular a área entre duas funções nos casos de integração em x e integração em y, ilustrando com quatro exemplos numéricos.
Este documento discute a ergonomia e sua classificação. Distingue entre análise ergonômica e intervenção ergonômica. Classifica a ergonomia em termos de objeto, objetivo, contexto e dimensão. Discute a ergonomia da produção, ergonomia do produto, ergonomia de concepção, ergonomia de correção, e classifica a ergonomia em macro, meso e micro. O objetivo final da ergonomia é adequar o trabalho ao homem para melhorar suas condições e saúde no
Exercícios Resolvidos: Equação da reta tangenteDiego Oliveira
Este documento fornece 7 exemplos resolvidos de como encontrar a equação da reta tangente a uma curva ou função em um ponto específico. A fórmula geral para a equação da tangente é apresentada e aplicada nos exemplos, que variam de parábolas, funções polinomiais e curvas implícitas.
O documento apresenta conceitos sobre cálculo de limites de funções, incluindo regras adicionais para funções racionais e casos de indeterminação. São explicadas propriedades de limites como soma, diferença, produto e quociente. Um exemplo numérico é resolvido usando fatoração para eliminar uma indeterminação.
O documento lista fórmulas para calcular área e perímetro de figuras planas como quadrado, retângulo, paralelogramo, triângulo, losango, trapézio e círculo, bem como fórmulas para calcular volume de sólidos geométricos como cubo, paralelepípedo, prisma retangular, pirâmide, cilindro retangular e cone.
O documento discute métodos para avaliar alternativas sob incerteza, incluindo a matriz de resultados, princípio da dominância, regras de Maximax, Maximin, Minimax e Hurwicz. Apresenta também um exemplo ilustrativo sobre escolha entre comprar ou não um seguro de carro.
Aula 7 - Funções Logarítmicas, Exponenciais e TrigonometricasTurma1NC
O documento apresenta definições e propriedades de funções elementares como exponenciais, logaritmos e funções trigonométricas. Inclui regras de exponenciação, propriedades dos logaritmos, identidades trigonométricas e fórmulas para conversão de ângulos.
O documento explica como alterar os parâmetros A, B, C e D afetam a função seno f(x) = A + B sen (Cx + D). Alterar A ou B muda a imagem, enquanto alterar C ou D muda o domínio. Exemplos mostram como diferentes valores para esses parâmetros afetam a amplitude, frequência e deslocamento do gráfico da função seno.
Profº Marcelo Santos Chaves Cálculo I (limites trigonométricos)MarcelloSantosChaves
The document provides solutions to 12 limit problems involving trigonometric functions. Each problem is solved in 3 steps or less. The solutions show that:
1) Many of the limits evaluate to simple numeric values like 1, 0, or constants like a.
2) Trigonometric limits are often solved by factorizing the expressions and applying standard trigonometric limits like lim(sinx/x) = 1 as x approaches 0.
3) More complex problems are broken down into composite limits and simplified through algebraic manipulation and properties of limits.
Este documento discute a prevenção de acidentes no ambiente de trabalho, especificamente:
1) A prevenção tem como objetivo proporcionar ao trabalhador condições para manter sua saúde;
2) Existem dois tipos de prevenção: passiva, que estuda acidentes passados para evitar repeti-los, e ativa, que identifica riscos potenciais antecipadamente;
3) Ambos os tipos de prevenção são necessários para proteger a saúde dos trabalhadores.
O documento apresenta exemplos de resolução de equações diferenciais exatas. Primeiramente, define o que é uma equação diferencial exata e como encontrá-la. Em seguida, resolve exemplos ilustrando o processo de determinar se uma equação é exata e, caso seja, encontrar sua solução. Por fim, propõe exercícios para o aluno praticar.
O documento descreve funções de primeiro grau, incluindo sua forma geral como y = ax + b, onde a é a taxa de variação e b é o termo independente. Ele explica como calcular a raiz ou zero de uma função, que é o valor de x que torna y igual a zero. Também discute como determinar se uma função é crescente ou decrescente com base no sinal de a, e como identificar uma função de primeiro grau a partir de seu gráfico.
O documento apresenta o método do binômio de Newton para desenvolver potências de binômios. Explica que cada termo do desenvolvimento é dado por um coeficiente binomial multiplicado pelos expoentes da variável x e a. Fornece a fórmula geral para calcular qualquer termo e aplica exemplos para encontrar termos específicos de binômios.
O documento discute as Normas Regulamentadoras 17, 23, 24, 26 e 31, que tratam respectivamente de ergonomia, proteção contra incêndios, condições sanitárias e de conforto no trabalho, sinalização de segurança e segurança no trabalho em atividades rurais. As normas estabelecem requisitos para mobiliário, equipamentos, iluminação, instalações sanitárias, transporte de cargas e edificações para promover a saúde e segurança dos trabalhadores.
O documento introduz os conceitos básicos de teoria dos grafos, incluindo definições formais e informais de grafos, exemplos de grafos, terminologia comum e aplicações. Além disso, aborda conceitos específicos como grafos isomorfos, grafos planares, árvores e percursos em árvores.
Função de duas variáveis, domínios e imagemIsadora Toledo
O documento define funções de duas variáveis reais e fornece exemplos para ilustrar conceitos como domínio, imagem e curvas de nível. O primeiro exemplo calcula o valor de uma função para um ponto específico e determina seu domínio e imagem. O segundo exemplo representa graficamente uma função através de curvas de nível e traça três curvas de nível específicas.
Redes Neurais Artificiais: Regras de AprendizadoJackson Daner
O documento discute os processos de aprendizado em redes neurais artificiais, incluindo algoritmos de aprendizado supervisionado, não-supervisionado e por reforço. As regras de aprendizado, como as regras de Hebb e Delta, são usadas para ajustar os pesos das conexões e melhorar o desempenho da rede.
Redes Neurais Artificiais - Modelos e suas implementaçõesgpolo
O documento discute redes neurais artificiais, incluindo: (1) Neurônios artificiais e como são implementados, (2) Redes de Hopfield que são usadas para reconstrução de padrões e segmentação de imagens, (3) Mapas auto-organizáveis de Kohonen que realizam classificação não supervisionada.
1. O documento discute cisalhamento transversal em vigas, apresentando a relação entre esforço cortante e tensão cisalhante.
2. Apresenta a fórmula para calcular tensão cisalhante em seções retangulares e suas limitações.
3. Inclui dois exemplos numéricos ilustrando cálculos de momento de inércia, momento estático, esforço cortante e tensão cisalhante em pontos de vigas.
O documento discute conceitos iniciais sobre derivadas, incluindo: (1) Galileu descreveu a relação entre espaço e tempo na queda dos corpos, mas faltava o cálculo diferencial; (2) Newton e Leibniz desenvolveram o cálculo diferencial para medir a taxa de mudança de fenômenos físicos; (3) Isso permitiu explicar o mundo com matemática e desencadeou avanços científicos e tecnológicos.
Este documento fornece exemplos resolvidos de cálculo de área entre curvas usando integrais. O autor explica como calcular a área entre duas funções nos casos de integração em x e integração em y, ilustrando com quatro exemplos numéricos.
Este documento discute a ergonomia e sua classificação. Distingue entre análise ergonômica e intervenção ergonômica. Classifica a ergonomia em termos de objeto, objetivo, contexto e dimensão. Discute a ergonomia da produção, ergonomia do produto, ergonomia de concepção, ergonomia de correção, e classifica a ergonomia em macro, meso e micro. O objetivo final da ergonomia é adequar o trabalho ao homem para melhorar suas condições e saúde no
Exercícios Resolvidos: Equação da reta tangenteDiego Oliveira
Este documento fornece 7 exemplos resolvidos de como encontrar a equação da reta tangente a uma curva ou função em um ponto específico. A fórmula geral para a equação da tangente é apresentada e aplicada nos exemplos, que variam de parábolas, funções polinomiais e curvas implícitas.
O documento apresenta conceitos sobre cálculo de limites de funções, incluindo regras adicionais para funções racionais e casos de indeterminação. São explicadas propriedades de limites como soma, diferença, produto e quociente. Um exemplo numérico é resolvido usando fatoração para eliminar uma indeterminação.
O documento lista fórmulas para calcular área e perímetro de figuras planas como quadrado, retângulo, paralelogramo, triângulo, losango, trapézio e círculo, bem como fórmulas para calcular volume de sólidos geométricos como cubo, paralelepípedo, prisma retangular, pirâmide, cilindro retangular e cone.
O documento discute métodos para avaliar alternativas sob incerteza, incluindo a matriz de resultados, princípio da dominância, regras de Maximax, Maximin, Minimax e Hurwicz. Apresenta também um exemplo ilustrativo sobre escolha entre comprar ou não um seguro de carro.
Aula 7 - Funções Logarítmicas, Exponenciais e TrigonometricasTurma1NC
O documento apresenta definições e propriedades de funções elementares como exponenciais, logaritmos e funções trigonométricas. Inclui regras de exponenciação, propriedades dos logaritmos, identidades trigonométricas e fórmulas para conversão de ângulos.
O documento explica como alterar os parâmetros A, B, C e D afetam a função seno f(x) = A + B sen (Cx + D). Alterar A ou B muda a imagem, enquanto alterar C ou D muda o domínio. Exemplos mostram como diferentes valores para esses parâmetros afetam a amplitude, frequência e deslocamento do gráfico da função seno.
Profº Marcelo Santos Chaves Cálculo I (limites trigonométricos)MarcelloSantosChaves
The document provides solutions to 12 limit problems involving trigonometric functions. Each problem is solved in 3 steps or less. The solutions show that:
1) Many of the limits evaluate to simple numeric values like 1, 0, or constants like a.
2) Trigonometric limits are often solved by factorizing the expressions and applying standard trigonometric limits like lim(sinx/x) = 1 as x approaches 0.
3) More complex problems are broken down into composite limits and simplified through algebraic manipulation and properties of limits.
Este documento discute a prevenção de acidentes no ambiente de trabalho, especificamente:
1) A prevenção tem como objetivo proporcionar ao trabalhador condições para manter sua saúde;
2) Existem dois tipos de prevenção: passiva, que estuda acidentes passados para evitar repeti-los, e ativa, que identifica riscos potenciais antecipadamente;
3) Ambos os tipos de prevenção são necessários para proteger a saúde dos trabalhadores.
O documento apresenta exemplos de resolução de equações diferenciais exatas. Primeiramente, define o que é uma equação diferencial exata e como encontrá-la. Em seguida, resolve exemplos ilustrando o processo de determinar se uma equação é exata e, caso seja, encontrar sua solução. Por fim, propõe exercícios para o aluno praticar.
O documento descreve funções de primeiro grau, incluindo sua forma geral como y = ax + b, onde a é a taxa de variação e b é o termo independente. Ele explica como calcular a raiz ou zero de uma função, que é o valor de x que torna y igual a zero. Também discute como determinar se uma função é crescente ou decrescente com base no sinal de a, e como identificar uma função de primeiro grau a partir de seu gráfico.
O documento apresenta o método do binômio de Newton para desenvolver potências de binômios. Explica que cada termo do desenvolvimento é dado por um coeficiente binomial multiplicado pelos expoentes da variável x e a. Fornece a fórmula geral para calcular qualquer termo e aplica exemplos para encontrar termos específicos de binômios.
O documento discute as Normas Regulamentadoras 17, 23, 24, 26 e 31, que tratam respectivamente de ergonomia, proteção contra incêndios, condições sanitárias e de conforto no trabalho, sinalização de segurança e segurança no trabalho em atividades rurais. As normas estabelecem requisitos para mobiliário, equipamentos, iluminação, instalações sanitárias, transporte de cargas e edificações para promover a saúde e segurança dos trabalhadores.
O documento introduz os conceitos básicos de teoria dos grafos, incluindo definições formais e informais de grafos, exemplos de grafos, terminologia comum e aplicações. Além disso, aborda conceitos específicos como grafos isomorfos, grafos planares, árvores e percursos em árvores.
Função de duas variáveis, domínios e imagemIsadora Toledo
O documento define funções de duas variáveis reais e fornece exemplos para ilustrar conceitos como domínio, imagem e curvas de nível. O primeiro exemplo calcula o valor de uma função para um ponto específico e determina seu domínio e imagem. O segundo exemplo representa graficamente uma função através de curvas de nível e traça três curvas de nível específicas.
Redes Neurais Artificiais: Regras de AprendizadoJackson Daner
O documento discute os processos de aprendizado em redes neurais artificiais, incluindo algoritmos de aprendizado supervisionado, não-supervisionado e por reforço. As regras de aprendizado, como as regras de Hebb e Delta, são usadas para ajustar os pesos das conexões e melhorar o desempenho da rede.
Redes Neurais Artificiais - Modelos e suas implementaçõesgpolo
O documento discute redes neurais artificiais, incluindo: (1) Neurônios artificiais e como são implementados, (2) Redes de Hopfield que são usadas para reconstrução de padrões e segmentação de imagens, (3) Mapas auto-organizáveis de Kohonen que realizam classificação não supervisionada.
O documento discute cenários de stress testing para avaliar o impacto de condições adversas em uma carteira de investimentos. Ele apresenta um caso de estudo de um total return swap e sua decomposição em fatores de risco como câmbio, taxa de juros e índices de ações. Além disso, discute a geração de cenários adversos com base em riscos individuais ou por meio de simulações históricas.
Anatomia Comparativa de Modelos de Risco de CréditoRenato Vicente
1. O documento descreve e compara quatro modelos de risco de crédito: CreditRisk+, CreditMetrics, KMV e CreditPortfolioView.
2. CreditRisk+ usa distribuições gama para fatores de risco e aproximação de Poisson para calcular probabilidades de inadimplência. CreditMetrics usa cortes baseados em dados históricos. KMV calcula probabilidades a partir da distância para inadimplência. CreditPortfolioView usa regressão logit.
3. O documento também mapeia como CreditRisk+ e CreditMetrics podem ser representados um no modelo do outro at
Este documento discute modelos para avaliar o risco de crédito. Primeiramente, aborda um modelo com taxas de inadimplência constantes em um único setor, analisando a frequência e severidade das perdas. Em seguida, apresenta um modelo com taxas variáveis em múltiplos setores, considerando como esses fatores afetam a análise de risco. Por fim, fornece inputs e outputs para exemplificar os cálculos desses modelos.
1) O documento introduz o conceito de opções reais para avaliação de projetos, comparando-as com opções financeiras tradicionais. 2) Discute como opções reais fornecem flexibilidade e valor ao considerar possibilidades futuras. 3) Apresenta um caso prático sobre a migração de um sistema SAP, mostrando como as opções reais tornam o projeto economicamente viável.
O documento discute modelos para análise de risco de liquidez em operações de venda de grandes posições em ativos. Em 3 frases: (1) Apresenta modelos em tempo discreto e contínuo para calcular o custo ótimo de execução de vendas considerando impacto de preço e volatilidade; (2) Discutem a estratégia ótima de execução que minimiza o custo total levando em conta o custo médio e de oportunidade do capital; (3) Introduz o conceito de L-VaR para quantificar o
[1] O documento apresenta métodos para calcular o valor em risco (VaR) de portfólios não-lineares, incluindo aproximações delta e delta-quadrática para portfólios dependentes de um ou mais fatores de risco.
[2] No caso de um único fator de risco, o retorno do portfólio segue uma distribuição qui-quadrado misturada normal. Para múltiplos fatores, a variância do retorno é decomposta em uma combinação de variáveis qui-quadrado.
[3] É apresentado um exemplo
1) O documento descreve os conceitos básicos de probabilidade física, incluindo espaço amostral e eventos.
2) É apresentado um exemplo de distribuição de bolinhas em caixas para ilustrar esses conceitos.
3) Os axiomas de Kolmogorov estabelecem propriedades fundamentais que devem ser obedecidas por qualquer medida de probabilidade.
Este documento resume e compara vários modelos matemáticos de risco sistêmico no sistema financeiro. O Modelo Iori-Jafarey examina como a conectividade entre bancos e a variedade de oportunidades de investimento afetam a estabilidade do sistema. O Modelo Aleksiejuk-Holyst-Kossinets modela como os defaults se espalham através de empréstimos entre bancos. O Modelo Aleksiejuk-Holyst examina como os defaults ocorrem em padrões de auto-organização crítica. A
Medida de risco por Teoria de Valores ExtremosRenato Vicente
O documento resume os principais conceitos da Teoria de Valores Extremos (EVT) para medir riscos, incluindo: 1) a distribuição generalizada de valores extremos para máximos em blocos e a distribuição generalizada de Pareto para violações de limiares; 2) estimação de parâmetros dessas distribuições; 3) determinação de intervalos de confiança para medidas de risco via inversão de testes de verossimilhança ou bootstrap.
[1] Processos Gaussianos são métodos não-paramétricos para inferência e previsão que modelam a distribuição de probabilidade sobre funções. [2] Kernel models e redes neurais multicamadas podem ser vistos como aproximações de processos gaussianos quando o número de parâmetros tende ao infinito. [3] Processos gaussianos permitem fazer previsões de novas observações de forma probabilística.
O documento apresenta uma introdução à estatística, definindo-a como o ramo do método científico que lida com dados obtidos através de contagens e medições de populações. Discute as principais partes da estatística, incluindo estatística descritiva, inferência estatística e decisão estatística. Brevemente descreve a história da estatística desde os primeiros registros no Egito Antigo e China até o desenvolvimento da teoria das probabilidades no século 17.
O documento resume vários testes de backtesting de modelos de análise de risco:
1) Teste de Proporção de Falhas (Kupiec POF) - Analisa se o número observado de falhas está de acordo com a probabilidade estimada.
2) Tempo até Primeira Falha (Kupiec TUFF) - Verifica se o tempo médio até a primeira falha observada está de acordo com o esperado.
3) Ponderação por tamanho de perda (Lopez) - Avalia se a magnitude agregada das perdas está dentro do esperado para a distribuição assum
O documento resume o modelo KMV de análise de risco de crédito, que calcula a probabilidade de default de um ativo usando a distância-para-default. A distância-para-default mede a diferença entre o valor de mercado dos ativos e o ponto de default, ajustado pela volatilidade. A probabilidade de default é então calculada usando uma curva empírica que corrige os efeitos do processo estocástico assumido.
Estatistica: introducao a teoria de decisaoRenato Vicente
1) O documento discute a teoria de decisão para escolher a melhor ação em situações de incerteza. 2) É apresentado um exemplo de manutenção de relógios para ilustrar como calcular as probabilidades e custos médios de cada ação. 3) Há discussão sobre como informações adicionais sobre os defeitos podem ser usadas para melhorar a regra de decisão.
O documento discute gestão de riscos financeiros, incluindo identificação de riscos de mercado, de crédito, operacional e de negócios. Ele também cobre técnicas para avaliar investimentos sob incerteza, como modelagem de cenários e construção de histograma de fluxos de pagamentos possíveis. Além disso, apresenta alternativas para proteção contra variação cambial, como swap, termo e opção de compra.
1) O documento discute modelos probabilísticos discretos, incluindo variáveis aleatórias discretas e suas distribuições de probabilidade.
2) É introduzido o modelo uniforme para descrever experimentos como lançamento de dados, onde cada resultado tem a mesma probabilidade.
3) O modelo geométrico é usado para descrever o intervalo até a primeira falha em sistemas, como de aterrissagem de aviões, onde a probabilidade de falha é constante a cada uso.
O documento discute técnicas bayesianas, incluindo o teorema de Bayes, modelos hierárquicos, inferência de parâmetros e hiperparâmetros, e seleção de modelos. É apresentado o uso do teorema de Bayes para classificação de dados através de um perceptron contínuo. Métodos bayesianos são comparados a métodos frequentistas e discutidas aproximações para inferência bayesiana.
O documento discute redes neurais para classificação e regressão. Brevemente descreve a história das redes neurais, como elas podem ser usadas para classificação e regressão, e aplicações como detecção de fraude e previsão de riscos. Também resume perceptrons, redes multicamadas, e o algoritmo backpropagation para treinamento de redes neurais.
O documento define termos e conceitos relacionados a sistemas lineares, incluindo: 1) equações lineares e não lineares; 2) solução de equações e sistemas lineares; 3) sistemas normais, possíveis, determinados e indeterminados. Ele também descreve métodos para resolver e classificar sistemas lineares, como a regra de Cramer e o escalonamento da matriz.
Este documento apresenta um mini-curso de MATLAB com os seguintes tópicos: 1) Introdução ao MATLAB, 2) Matlab Básico, 3) Programação em Matlab, 4) Matemática Simbólica, 5) Interfaces gráficas e Toolbox, 6) Simulink. O documento inclui referências bibliográficas e informações sobre os professores.
O documento apresenta o método das funções geradoras para resolver equações polinomiais com várias variáveis. Em 3 exemplos, é mostrado como construir tabelas que mapeiam expoentes para coeficientes, permitindo enumerar todas as soluções de equações como 2x1 + x2 = n, 4x1 + 2x2 + y3 = m, onde as variáveis assumem valores inteiros não negativos e y3 valores fixos.
O documento apresenta um índice com os principais tópicos de matemática que serão abordados, incluindo conjuntos numerais, operações algébricas, porcentagem, geometria e estatística. Os tópicos são divididos em seções com explicações concisas sobre cada conceito matemático.
1) O documento discute matrizes, determinantes e sistemas lineares, apresentando conceitos e exemplos destes tópicos da álgebra linear.
2) É apresentada uma citação de Paulo Freire sobre a importância da educação para a transformação da sociedade.
3) São mostrados exemplos de cálculo de determinantes utilizando a regra de Sarrus e propriedades dos determinantes.
O documento discute conceitos de matrizes, determinantes e sistemas lineares. Aborda: 1) definição e tipos de matrizes; 2) cálculo de determinantes usando regras de Sarrus e Laplace; 3) resolução de sistemas lineares por escalonamento e método de Cramer. Também apresenta aplicações dos determinantes no cálculo de áreas de polígonos.
1) O documento discute matrizes, determinantes e sistemas lineares, apresentando conceitos e exemplos destes tópicos da álgebra linear.
2) É apresentada uma citação de Paulo Freire sobre a importância da educação para a transformação da sociedade.
3) São mostrados exemplos de cálculo de determinantes utilizando a regra de Sarrus e propriedades dos determinantes.
Este documento apresenta um curso de MATLAB Avançado e Simulink dividido em duas partes. A primeira parte aborda conceitos básicos de MATLAB, criação e manipulação de matrizes, gráficos e processamento de imagens. A segunda parte tratará de variáveis simbólicas, programas em interface gráfica e Simulink.
1) O documento é uma prova de cálculo I contendo 3 questões. A primeira questão pede para calcular 5 integras. A segunda pede para calcular a área de uma elipse. A terceira pede para mostrar propriedades de integras de funções trigonométricas.
2) O documento também fornece uma tabela de primitivas comuns.
1a lista de equaııes diferenciais e sıries 2010Carolina Teles
1) A lista de exercícios apresenta 20 questões sobre séries numéricas e suas propriedades de convergência e soma.
2) Os exercícios abordam técnicas como séries geométricas, razão, critério de Leibniz e expansões em séries de Taylor e MacLaurin.
3) São solicitadas análises de convergência, cálculos de somas, aproximações de funções e representações em séries de funções.
O documento apresenta uma demonstração matemática da regra de sinais, explicando conceitos preliminares como elemento oposto, propriedade distributiva e definição de multiplicação por zero. A demonstração é feita em vários passos, desde adição com sinais iguais e diferentes até o produto com sinais iguais e diferentes, provando assim porque menos por menos resulta em mais.
O documento discute equações do segundo grau e parábolas, incluindo suas aplicações, propriedades e como construí-las. Explica como determinar vértices, raízes, máximos e mínimos, e relaciona essas características com os coeficientes da equação. Por fim, fornece exercícios para praticar os conceitos aprendidos.
FORMA ANALÍTICA E MÉTODOS DAS DIFERENÇAS FINITAS APLICADO AO POTENCIAL DENTRO...JÚLIO PEIXOTO
Resolução analiticamente o problema de Dirichlet, aplicado a uma calha condutora fechada com quatro condições de fronteira e comparar com uma solução de cálculo numérico utilizando o método das diferenças finita. Todas os resultados serão apresentados de forma gráfica e por fim será realizado uma comparação para análise do erro percentual dos dois métodos utilizados.
1) O documento apresenta as técnicas de derivação de funções elementares como constante, potência, múltiplo constante, soma e diferença.
2) São definidas as derivadas de funções como xn, c, cx e f(x) + g(x) e apresentados exemplos de cálculo.
3) São identificados os pontos onde a curva y = x4 – 6x2 + 4 tem tangentes horizontais.
Este documento apresenta um curso básico de MATLAB, abordando conceitos como tipos de variáveis, criação e manipulação de matrizes, operações básicas, criação e manipulação de gráficos, funções, equações diferenciais, loops e condicionais. O curso inclui exemplos de código e exercícios para fixar os conceitos apresentados.
1. O documento apresenta exercícios sobre o conjunto dos números reais, incluindo determinar supremos, ínfimos, máximos e mínimos de subconjuntos de R.
2. Aborda também conceitos como representação decimal de números reais, racionais e irracionais, e propriedades algébricas dos números reais.
3. Inclui a demonstração da irracionalidade de √2 para mostrar que não é possível representá-lo como fração de inteiros.
O documento apresenta uma introdução sobre funções exponenciais e seu uso em diversas áreas como física, química e biologia. Em seguida, exemplifica o cálculo do número de antepassados de um casal usando funções exponenciais e apresenta a definição formal de função exponencial e algumas de suas propriedades gráficas e algébricas.
Este documento apresenta a definição de módulo ou valor absoluto nos reais e algumas de suas propriedades, como: 1) o módulo é sempre não-negativo; 2) o módulo de um número é igual à sua distância até a origem na reta real; 3) o módulo permite representar intervalos como conjuntos de números.
1) O documento apresenta os conceitos de função exponencial e logarítmica, incluindo suas definições, gráficos e propriedades.
2) É dado um exemplo numérico de cálculo de logaritmo e outro de aplicação de logaritmo na resolução de um problema de juros compostos.
3) São fornecidos exercícios sobre esboço de gráficos, resolução de equações exponenciais e cálculo de logaritmos para fixação dos conceitos apresentados.
Estatística: Introduçao à Estimacao BayesianaRenato Vicente
1) O capítulo introduz a lógica indutiva versus dedutiva e como a estimativa bayesiana usa a lógica indutiva para determinar causas prováveis com base em evidências observadas.
2) Discute os axiomas de Cox e como eles levam ao teorema de Bayes, que resume o procedimento de análise de dados usando probabilidades condicionais.
3) Faz um breve histórico sobre como a estimativa bayesiana foi desenvolvida por Bernoulli, Bayes e Laplace, mas foi ignorada no século XIX devido a definições
O documento discute métodos para estimar densidades de probabilidade a partir de dados, incluindo métodos paramétricos bayesianos, métodos de núcleo e misturas de distribuições. O algoritmo EM é descrito como uma abordagem para inferir parâmetros de misturas de distribuições maximizando a verossimilhança dos dados.
O documento discute riscos de derivativos, incluindo: 1) gregas que medem sensibilidade de derivativos a fatores como preço do ativo, taxa de juros e volatilidade; 2) estratégias de hedge usando derivativos para neutralizar riscos; 3) superfície de volatilidade implícita extraída de opções.
O documento discute vários modelos estatísticos para medir e gerenciar riscos operacionais de acordo com os requisitos do Basiléia II. Ele explica o Enfoque Básico, Padrão e Avançado, incluindo o Modelo Atuarial, Causal e Bayesiano. Também discute distribuições de probabilidade, teoria de valores extremos e bibliografia relevante.
Este documento resume três modelos principais para análise e gestão de risco de crédito:
1) CreditMetrics desenvolvido pelo JP Morgan utiliza uma abordagem baseada em probabilidades de migração entre ratings ao longo do tempo.
2) O modelo KMV da empresa de mesmo nome se baseia na estrutura de capital da empresa e no modelo de Merton para avaliar o risco de default.
3) O CreditRisk+ do Credit Suisse é um modelo estatístico que estima probabilidades condicionais de inadimplência.
O documento discute métodos de simulação histórica para estimar Value at Risk (VaR). A simulação histórica naïve usa o histórico de retornos para gerar cenários futuros. O método BRW atribui pesos diferentes aos cenários históricos. O método de Hull-White normaliza os retornos usando estimativas de volatilidade GARCH/EWMA.
1) O documento descreve o método de simulação de Monte Carlo para avaliação de risco de carteiras, gerando cenários pseudo-aleatórios para fatores de risco e reprecificando a carteira em cada cenário.
2) É mostrado como aplicar o método para carteiras com derivativos e múltiplos fatores de risco, gerando números aleatórios que respeitem as correlações entre os fatores.
3) O VaR é calculado como o quantil da distribuição dos resultados de P&L nos cenários simulados
1) O documento discute vários conceitos e medidas de risco, incluindo medidas derivadas da teoria de utilidade, axiomatizações de medidas de risco, desvio padrão, downside risk, medidas condicionais, Value-at-Risk e Conditional Value-at-Risk.
2) É apresentada uma classe geral de medidas de risco baseadas em momentos parciais e distribuições.
3) O Value-at-Risk não é uma medida coerente de risco, ao contrário do Conditional Value-at-Risk.
Este documento discute a estimação de volatilidades e correlações para o cálculo do Valor em Risco (VaR). A primeira parte descreve métodos como média móvel e EWMA para estimar volatilidades usando séries históricas de retornos. A segunda parte aborda a estimação de correlações entre ativos. A terceira parte discute a otimização do parâmetro lambda no modelo EWMA.
O documento discute o conceito de Value-at-Risk (VaR) e fornece detalhes sobre: (1) Objetivos do VaR como medida de risco, (2) Métodos para calcular o VaR usando simulações de preços e modelos estatísticos, (3) Dinâmica de preços usando modelos de passeio aleatório.
1. Nossa percepção e memória são influenciadas por vieses cognitivos que podem nos levar a conclusões errôneas;
2. Questionários podem não capturar com precisão as opiniões das pessoas devido a heurísticas e vieses de resposta;
3. Nossas decisões são frequentemente influenciadas por atalhos mentais como disponibilidade e representatividade, levando a erros de julgamento.
1. O documento discute os conceitos de pseudociência e relativismo, argumentando que nem tudo é possível e que relatos pessoais e experiências individuais são fontes pouco confiáveis de informação.
2. Aborda também que eventos muito raros podem ocorrer por acaso e que o relativismo é pouco produtivo em contraste com a abordagem científica de que a realidade objetiva pode ser acessada através de experimentos.
3. Em resumo, conclui que afirmações extraordinárias requerem evidências extraordinárias.
Atividade letra da música - Espalhe Amor, Anavitória.Mary Alvarenga
A música 'Espalhe Amor', interpretada pela cantora Anavitória é uma celebração do amor e de sua capacidade de transformar e conectar as pessoas. A letra sugere uma reflexão sobre como o amor, quando verdadeiramente compartilhado, pode ultrapassar barreiras alcançando outros corações e provocando mudanças positivas.
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Biblioteca UCS
A biblioteca abriga, em seu acervo de coleções especiais o terceiro volume da obra editada em Lisboa, em 1843. Sua exibe
detalhes dourados e vermelhos. A obra narra um romance de cavalaria, relatando a
vida e façanhas do cavaleiro Clarimundo,
que se torna Rei da Hungria e Imperador
de Constantinopla.
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoMateusTavares54
Quer aprender inglês e espanhol de um jeito divertido? Aqui você encontra atividades legais para imprimir e usar. É só imprimir e começar a brincar enquanto aprende!
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxLuizHenriquedeAlmeid6
Slideshare Lição 11, Central Gospel, Os Mortos Em Cristo, 1Tr24, Pr Henrique, EBD NA TV, Revista ano 11, nº 1, Revista Estudo Bíblico Jovens E Adultos, Central Gospel, 2º Trimestre de 2024, Professor, Tema, Os Grandes Temas Do Fim, Comentarista, Pr. Joá Caitano, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Com. Extra Pr. Luiz Henrique, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
Redes neurais com matlab
1. Redes Neurais para Inferência Estatística
-F E A / U S P J u n / 2 0 0 2
Renato Vicente∗
Programa
1. Introdução: Redes Neurais, Matlab e Netlab
2. Algoritmos de Otimização
3. Estimação de Densidades de Probabilidade
4. Redes Neurais com uma Camada
5. Redes Neurais Multicamada
6. Amostragem
7. Técnicas Bayesianas
Opcionalmente:
8. Radial Basis Functions
9. Redução Dimensional e Visualização de dados
10. Processos Gaussianos
Referências Básicas:
• Using Matlab, The MathWorks Inc. (2000);
• Bishop, C.M., Neural Networks for Pattern Recognition, Oxford University
Press, Oxford, 1995;
• Nabney, I.T., Netlab: Algorithms for Pattern Recognition, Springer,
London, 2002.
∗
rvicente@usp.br
Criado por Renato Vicente 1 27/01/06
2. Introdução: Redes Neurais, Matlab e Netlab
Redes Neurais
Rede Neural é um nome fantasia para modelos de inferência multidimensionais e não-
lineares. O grande apelo destes modelos está em sua capacidade de “aprender”, generalizar
ou extrair regras automaticamente de conjuntos de dados complexos.
No caso mais simples, temos um conjunto de pares entrada-saída D = {( x(n ) , t (n ) )}n =1 e
p
queremos modelar a função t = y = y (x, w ) que produz melhores estimativas para pares
ˆ
fora do conjunto D , dados vetores x. Este problema é denominado r e g r e s s ã o . A Rede
Neural consiste simplesmente de uma escolha particular para a família de funções
y( x , w ) parametrizada por w, denominados p e s o s s i n á p t i c o s .
A importância das Redes Neurais neste contexto está no fato delas representarem um
esquema bastante genérico para a representação de famílias de funções não-lineares com
várias variáveis de entrada e saída e controladas por um certo número de parâmetros
ajustáveis.
Há uma série de famílias, ou arquiteturas, clássicas para Redes Neurais que são
representadas graficamente.
P e r c e p t r o n L i n e a r P e r c e p t r o n N ã o -lin e a r
N
N
y = ∑ w j x j + w0 y = g ∑ w j x j + w0
j =1
j =1
1 x 1 x
R e d e M u lticam a d a
n N
y = g ∑ u l g 1 ∑ w j x j + w0
l =1
j =1
Criado por Renato Vicente 2 27/01/06
3. É possível 1 mostrar que Redes Neurais Multicamada com um número N suficientemente
grande de unidades na mamada interna (ou escondida) podem representar qualquer
função com erro menor que ε ( N ) . Uma maneira simples e direta para percebermos este
fato é ilustrada abaixo:
N
∑{
g ( z ) ≈ g ( z0 ) +Θ ( x)gi +1 − gi }Θ ( z − zi )
1
i =0
0
0
x=0
x=0
Na figura uma função arbitrária g(z) é representada por uma soma de funções degrau
Θ( z − zi ) sobre uma partição da reta P = {z0 , z1,..., z N }. A medida que refinamos a
partição fazendo zi +1 − zi < δ ( N ) , reduzimos o erro ε ( N ) .
Quando as saídas consistem de classes discretas t ∈ {1,..., c} o problema de inferência é
denominado c l a s s i f i c a ç ã o .
1
Hornik, K. (1991). Approximation capabilities of multilayer feedforward networks. Neural Networks 4 (2),
251-257.
Criado por Renato Vicente 3 27/01/06
4. Matlab
Matlab (M a t r i x L a b o r a t o r y ) é uma linguagem para computação científica com estrutura
otimizada para a realização de operações com matrizes. O ambiente Matlab é composto
por uma série de funções pré-definidas para cálculo, leitura e escrita de arquivos e
visualização. Este conjunto de funções pode ser facilmente extendido por t o o l b o x e s
dedicadas. Há t o o l b o x e s para finanças, tratamento de sinais, econometria e redes neurais.
Para ilustrar a forma como matrizes podem ser tratadas pelo Matlab utilizamos o
quadrado mágico de Dührer que é utilizado como exemplo no G e t S t a r t que acompanha
o software. Na linha de comando do Matlab entramos:
> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
A=
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
Após este comando a matriz A fica armazenada no W o r k s p a c e do Matlab conforme
ilustrado abaixo.
Criado por Renato Vicente 4 27/01/06
5. As propriedades do quadadro mágico podem ser analisadas utilizando funções do Matlab.
Por exemplo, a função abaixo soma cada uma das linhas da matriz A.
> sum (A)
ans =
34 34 34 34
Na ausência de definição de variável de saída o Matlab aloca o resultado no W o r k s p a c e
sob o nome a n s . Assim ao entrarmos
> ans
ans =
34 34 34 34
Se quisermos somar as colunas ao invés das linhas temos que transpor a matriz A, isso
feito simplesmente pelo comando
>A'
ans =
16 5 9 4
3 10 6 15
2 11 7 14
13 8 12 1
Assim podemos realizar a soma das colunas entrando
>sum(A')'
ans =
34
34
34
34
Novamente o resultado é 34. Podemos também calcular a soma da diagonal, ou traço,
de duas formas:
> diag (A)
ans =
16
10
7
1
Criado por Renato Vicente 5 27/01/06
6. > sum (diag(A))
ans =
34
Ou
> trace(A)
ans =
34
Curiosamente continuamos obtendo 34. Somemos agora a antidiagonal da matriz A, para
isso podemos utilizar a função f l i p l r para enviarmos cada coluna da esquerda para a
direita da matriz A.
> fliplr (A)
ans =
13 2 3 16
8 11 10 5
12 7 6 9
1 14 15 4
E a seguir
> sum(diag(fliplr(A)))
ans =
34
As somas são sempre iguais a 34 pois quando dividimos números inteiros de 1 a 16 em
quatro grupos com somas iguais temos:
> t=1:1:16
t=
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
> sum(t)/4
ans =
34
Aqui utilizamos ":" para gerarmos números de 1 a 16 em passos de 1.
Criado por Renato Vicente 6 27/01/06
7. O Matlab possui uma função específica para a criação de quadrados mágicos de qualquer
dimensão, esta função é
> B=magic(4)
B=
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
É possível reordenar as colunas de B para reobtermos A utilizando o comando
> B(:,[1 3 2 4])
ans =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
Netlab
O Netlab é uma t o o l b o x para Redes Neurais para Matlab disponibilizada gratuitamente
no site do Neural Computing Research Group da Univerisdade de Aston
(www.ncrg.aston.ac.uk). Esta t o o l b o x toran a implementação de modelos baseados em
Redes Neurais muito simples. Os códigos produzidos em Matlab podem então ser
convertidos em executáveis utilizando o M a t l a b C o m p i l e r . Como um primeiro contato
com o Netlab escreveremos sua versão para o clássico "H e l l o W o r l d ".
Começamos por gerar de um conjunto de dados fictícios para treinamento de nossa
Rede Neural. Para isso vamos supor que a função que queremos inferir é
f ( x) = sin (2π x ) . No entanto, só temos acesso a uma versão corrompida por ruído
gaussiando desta função assim, nosso conjunto de dados é "gerado" da seguinte forma:
tn = sin(2π xn ) + σε n
,
ε n ~ N (0,1)
onde N(0,1) é uma distribuição normal com média nula e variância unitária.
No Matlab teremos
1 x=[0:1/19:1]';
2 ndata=size(x,1);
3 t=sin(2*pi*x) + 0.15*randn(ndata,1);
Criado por Renato Vicente 7 27/01/06
8. Aqui utilizamos alguns recursos novos. Utilizamos ao final de cada linha ";" , esta
instrução faz com que o Matlab omita resultados intermediários dos cálculos sendo
executados. A primeira instrução gera um vetor coluna x com 20 dimensões contendo
números de 0 a 1 em intervalos de 1/19. Na linha 2 utilizamos a função s i z e ( x , 1 ) para
obtermos o tamnho em número de linhas do vetor coluna x, assim, se entrarmos:
> size(x)
ans =
20 1
Ou seja, o vetor x possui 20 linhas e 1 coluna, s i z e ( x , 1 ) nos dá o número de linhas,
enquanto s i z e ( x , 2 ) nos dá o número de colunas. Na linha 3 utilizamos a função
r a n d n ( l i n h a s , c o l s ) para gerarmos um vetor de números aleatórios independentes com
distribuição gaussiana com média nula e variância unitária. De forma genérica esta
instrução pode ser empregada pra gerar matrizes aleatórias de qualquer tamanho.
>ran dn(5,5)
ans =
1.3808 0.3908 -1.3745 -1.3454 -0.7826
1.3198 0.0203 -0.8393 1.4819 -0.7673
-0.9094 -0.4060 -0.2086 0.0327 -0.1072
-2.3056 -1.5349 0.7559 1.8705 -0.9771
1.7887 0.2214 0.3757 -1.2090 -0.9640
No Matlab, podemos visualizar o vetor t e a função original utilizando:
> plot(x,sin(2*pi*x),x,t,'k+');
1.5
1
0.5
0
-0.5
-1
-1.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Gerado nosso conjunto fictício de dados, podemos definir uma arquitetura de rede para
utilizarmos na inferência. Assumiremos aqui que uma Rede Neural Multicamada com 3
Criado por Renato Vicente 8 27/01/06
9. unidades na camada escondida seja adequada. No Netlab podemos definir uma
arquitetura de rede em uma única linha de comando.
4 net=mlp (1, 3, 1, 'linear')
net =
type: 'mlp'
nin: 1
nhidden: 3
nout: 1
nwts: 10
actfn: 'linear'
w1: [-1.6823 -0.5927 0.1820]
b1: [-0.1300 -0.1185 -0.0827]
w2: [3x1 double]
b2: 0.2541
A função m l p do Netlab cria uma estrutura que especifica completamente a arquitetura
e os parâmetros iniciais da Rede Neural. Assim a rede possui n i n = 1 entrada, n h i d d e n = 3
unidades na camada interna, n o u t = 1 saída e n w t s = 1 0 parâmetros entre pesos sinápticos e
limiares. Os parâmetros são iniciados em valores aleatórios. Graficamente teremos:
Cada unidade possui uma entrada extra denotada por uma seta que regula o l i m i a r d e
d i s p a r o de cada um dos neurônios. Cada neurônio da camada escondida gerado pela
função m l p implementa uma f u n ç ã o d e t r a n s f e r ê n c i a s i g m o i d a l do tipo tanh(b + ∑ w j x j ) .
j
Já o neurônio da camada de saída implementa a função de transferência especificada na
função m l p , no caso, uma função linear. Assim, a arquitetura da Rede Neural que
utilizaremos representa a seguinte família de funções:
3
y( x, w, b ) = b2 + ∑ w2 l tanh(b1l + w1l x) .
l =1
O terceiro passo consiste no treinamento desta rede utilizando os dados fictícios
contidos no conjunto de treinamento. Para isso o Netlab utiliza a infra-estrutura de
algoritmos de otimização do Matlab. Primeiro é necessário armazenar as configurações
padrão dos otimizadores do Matlab:
Criado por Renato Vicente 9 27/01/06
10. 5 options=foptions;
A seguir personalizamos algumas destas opções:
6 options(1) = 0;
Este comando evita que os algoritmos de otimização exibam na tela a evolução passo a
passo da função custo sendo minimizada.
7 options(14) =100;
Esta instrução limita em 100 passos os ciclos de otimização. Agora podemos treinar nossa
rede utilizando a função n e t o p t do Netlab:
8 [net, options] = netopt(net, options, x, t, 'scg');
Warning: Maximum number of iterations has been exceeded
A função n e t o p t otimiza os parâmetros da rede definida pela estrutura n e t , utilizando as
opções de otimizador defindas em o p t i o n s e utilizando os dados de entrada contidos no
vetor x e de saída contidos no vetor t . O último argumento em n e t o p t especifica o tipo
de algoritmo a ser utilizado na otimização, no exemplo, 's c g ' significa s c a l e d g r a d i e n t . A
função retorna uma mensagem de aviso indicando que a otimização foi terminada devido
ao limite de 100 passos de otimização.
Neste momento já obtivemos no W o r k s p a c e do Matlab uma estrutura n e t com
parâmetros otimizados assim:
> net.w1
ans =
-5.2017 0.8701 1.5318
> net.w2
ans =
2.6033
1.0716
3.4209
> net.b1
ans =
2.4785 -0.6179 -0.3766
> net.b2
ans =
-0.7588
Criado por Renato Vicente 10 27/01/06
11. O quarto passo consiste em utilizarmos a rede recém treinada. Para isso utilizamos a
função m l p f w d do Netlab, assim se quisermos saber qual seria a saída para a entrada
x = 0 . 5 6 5 , calculamos:
>mlpfwd(net,0.565)
ans =
-0.4632
Para analisarmos visualmente a qualidade de nosso modelo para os dados representamso
em um gráfico previsões para várias entradas e o valor "real":
9 plotvals=[0:0.01:1]';
10 y=mlpfwd(net,plotvals);
11 plot(plotvals, y, 'ob',plotvals,sin(2*pi*plotvals));
1.5
1
0.5
0
-0.5
-1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Na figura acima as previsões aparecem como circunferências e o valor "real" como uma
linha cheia. A qualidade da previsão irá depender da Rede Neural empregada e do nível
de ruído dos dados.
Criado por Renato Vicente 11 27/01/06
12. Toda a seção de Matlab, utilizada neste problema pode ser armazenada na forma de um
arquivo .m como o exibido a seguir:
Exercícios
(1) Escreva uma rotina ou função em Matlab que calcule o erro quadrático de predição da
Rede Neural Multicamada utilizada no exemplo acima no conjunto p l o t v a l .
E ( x) = ∑ f ( x j ) − y( x j; w b) .
2
,
j
(2) Treine Redes Multicamada com número de unidades na camada interna indo de
n h i d d e n = 1 a n h i d d e n = 30 e construa um gráfico do erro de predição acima contra o
número de unidades na camada escondida. Qual é a melhor escolha de arquitetura ?
Criado por Renato Vicente 12 27/01/06
13. Algoritmos de Otimização
Aprendizado em Redes Neurais: Um Problema de Otimização
Como já dissemos, o problema de regressão utilizando Redes Neurais consiste em
encontrar a função tˆ = y (x, w ) que produz melhores estimativas para a regra implícita
em um conjunto de exemplo de pares entrada-saída D = {(x ( n ) , t ( n ) )}n=1 .
p
É importante ressaltar que a tarefa central de uma regressão não é a memorização do
conjunto de exemplos D, mas sim a antecipação de pares novos (ou fora da amostra) que
poderiam ser gerados pelo mesmo processo que gerou D.
A descrição completa do processo gerador do conjunto D é fornecida por uma densidade de
probabilidade conjunta p (x, t ) sobre D. Esta densidade de probabilidade pode ser
decomposta da seguinte forma:
p (x, t ) = p (t x) p (x) (1.1)
A densidade p (t x) é conhecida como densidade condicional e representa a probabilidade
de uma saída t dada uma entrada com valor específico x. Já a densidade p(x) representa a
densidade incondicional de x que pode ser calculada a partir da densidade conjunta por
integração (també conhecida como marginalização):
p (x) = ∫ p (t, x) dt (1.2)
Uma maneira pictórica de representarmos um modelo para o processo de geração do
conjunto de dados D é exibida na figura a seguir:
Processo
estocástico Processo Saídas
de geração determinístico de corrompidas
de entradas geração de saídas por ruído
x y(x) t
ruído
No modelo acima há dois processos estocásticos: o de geração das entradas x descrito pela
densidade p(x) e o de geração de saídas com ruído descrito pela densidade condicional
p (t x ) .
Criado por Renato Vicente 10/06/02
13
14. O aprendizado consiste em estimarmos a densidade condicional de probabilidade p (t x)
que melhor se ajuste ao conjunto D, possibilitando assim a predição de saídas possíveis
para entradas x fora do conjunto D utilizado no treinamento.
Ao modelarmos os dados utilizando Redes Neurais supomos uma arquitetura de rede, o que
equivale à escolha de uma família de funções y (x; w ) parametrizada por w. Por
conseqüência a densidade condicional p (t x; w ) também é parametrizada por w. Para
encontrarmos qual é o vetor w que melhor ajusta os dados em D, podemos maximizar a
função de verossimilhança definida por:
p
L(w ) = ∏ p(x n , t n ; w )
n =1
p
(1.3)
= ∏ p (t x ; w ) p ( x )
n n n
n =1
Alternativamente, e com uma série de vantagens práticas podemos definir uma função erro
que deve ser minimizada no aprendizado:
E (w ) = − ln L(w )
p p
(1.4)
= −∑ ln p(t n x n ; w ) − ∑ ln p (x n )
n =1 n =1
O segundo somatório não depende do vetor de parâmetros w, podendo ser ignorado na
minimização do erro E(w):
p
E (w ) = −∑ ln p (t n x n ; w ) (1.5)
n =1
O aprendizado em uma Rede Neural consiste simplemente em uma tarefa de otimização:
minimizar E(w) dado o modelo o conjunto de treinamento D e a densidade condicional
p(t x; w ) .
Erro quadrático
Suponhamos que o processo real de produção de saídas t consista de uma perturbação
estocástica ε sobre uma função determinística h(x) assim:
t = h( x) + ε (1.6)
Suponhamos agora que a perturbação estocástica (ruído) seja distribuída de forma
normal:
Criado por Renato Vicente 10/06/02
14
15. ε2 1
p (ε ) = exp − 2 (1.7)
2πσ 2 2σ
Se modelarmos a função real com uma Rede Neural cuja arquitetura implemente a
família y (x; w ) a densidade condicional será :
1 (t − y (x; w ) )2
p(t x) = exp − . (1.8)
2πσ 2
2σ 2
O erro será então :
p
E (w ) = −∑ ln p (t n x n ; w )
n =1
(1.9)
∑ (t − y (x; w) ) + Np ln σ + 2 ln(2π )
p
1 2 Np
= n
2σ 2 n =1
Ao omitirmos as constantes e o fator de escala em frente ao somatório teremos a
seguinte medida de erro de aprendizado:
E ( w ) = ∑ (t n − y ( x n ; w ) ) ,
1 p 2
(1.10)
2 n =1
que é a distância Euclidiana clássica utilizada em regressões usuais.
Erro r-Minkowski
Se supusermos que o ruído ε é distribuído segundo uma generalização de uma
gaussiana:
1
p (ε ) =
rβ r
2Γ(1/ r )
exp − β ε ( r
) (1.11)
O erro de treinamento tomará a seguinte forma:
∑ (t − y ( x n ; w ) ) .
1 p n r
E (w ) = (1.12)
2 n =1
A figura abaixo representa densidades para vários valores de r.
Criado por Renato Vicente 10/06/02
15
16. A escolha de diferentes valores para o parâmetro r regula a sensibilidade do modelo a
valores com erros grandes, como pode ser visto na figura abaixo:
Conforme r aumenta maior é a penalização para desvios grandes que passam, por serem
pouco prováveis, a ser considerados incompatíveis com os dados.
Exercícios
(1) Generalize (1.10) para o caso de saídas t multidimensionais.
(2) Demonstre a expressão (1.12) para a função erro r-Minkowski.
Criado por Renato Vicente 10/06/02
16
17. Otimização
Há várias técnicas para otimização de funções multidimensionais e não-lineares como a
função erro que devemos minimizar. Genericamente um algoritmo iterativo de
otimização no espaço de parâmetros w consiste em uma busca onde a cada passo são
determinados uma direção e um tamanho de passo:
w t +1 = w t + α t d t (1.13)
Quanto mais informação sobre a geometria da superfície definida pela função erro E(w)
for utilizada mais eficiente será o algoritmo. Uma boa idéia de como um algoritmo de
otimização pode utilizar a geometria da função erro pode ser obtida utilizando uma
aproximação quadrática para a superfície. Consideremos a seguinte expansão em torno de
um ponto w :ˆ
1
E (w ) ≅ E (w ) + (w − w ) ⋅∇E (w ) + (w − w ) ⋅ H (w − w )
ˆ ˆ ˆ ˆ ˆ (1.14)
2
A matriz H é conhecida como Hessiano sendo definida como:
∂2E
H jk = (1.15)
∂w j ∂wk ˆ
w
Suponha que w = w seja um extremo de E, então:
ˆ *
1
E (w ) ≅ E (w* ) + (w − w* ) ⋅ H (w − w* ) (1.16)
2
Podemos calcular os autovetores do Hessiano H :
Hu k = λk u k , (1.17)
onde
u j ⋅ u k = δ jk . (1.18)
Podemos expandir o vetor w – w* na base dos autovetores de H para escrevermos:
w − w* = ∑ α k u k (1.19)
k
Substituindo (1.19) em (1.16) e utilizando (1.17) e (1.18) :
1
E (w ) ≅ E (w* ) + ∑ λkα k2 . (1.20)
2 k
Assim, os autovetores da Hessiana indicam direções ortogonais que diagonalizam a
matriz H. De (1.20) pode-se concluir que para que w* defina um mínimo é necessário
que todos os autovalores sejam positivos, além disso a velocidade de convergência do
erro é maior em direções com autovalor maior.
Otimização em Netlab
Criado por Renato Vicente 10/06/02
17
18. Discutiremos quatro técnicas implementadas pelo Netlab:
1. Gradient Descent
2. Gradiente Conjugado
3. Gradiente Conjugado Escalado
4. Quase-Newton
Para exemplificarmos como Netlab pode ser usado para otimizar funções utilizaremos
um de seus programas de demonstração denominado demopt1. O programa demopt1
demonstra a otimização da seguinte função:
y ( x1 , x2 ) = 100( x2 − x12 ) 2 + (1 − x1 ) 2 , (1.21)
conhecida como função de Rosenbrock utilizando quatro técnicas diferentes.
No Matlab podemos visualizar a superfície definida pela função acima com um único
comando:
> ezsurfc ('100*(x1-x2^2)^2+(1-x1)^2',[-2, 2],[-2,2] )
Criado por Renato Vicente 10/06/02
18
19. Alternativamente, podemos utilizar a seguinte sintaxe menos direta:
1 x1=-2:0.01:2;
2 x2=-2:0.01:2;
3 [sx1, sx2] =meshgrid (x1,x2);
As instruções acima geram matrizes que contém o produto cartesiano dos vetores x1 e
x2, assim se digitarmos
> [sx1(10,23) sx2(10,23)]
ans =
-1.7800 -1.9100
Veremos um par específico de valores.
A função de Rosenbrock pode ser calculada de duas formas:
> Y= 100*(sx1-sx2.^2).^2 +(1-sx1).^2;
> size(Y)
ans =
401 401
onde utilizamos ".^ " com um ponto antes da operação para elevarmos cada componente
das matrizes X1 e X2, sem "." teríamos calculado um produto matricial. Note que a
resposta é uma discretização da superfície com 401 por 401 pontos.
Para exemplificar o cálculo com e sem ".":
>A=[0 1; 1 0]
A=
0 1
1 0
Um produto matricial será:
> A^2
ans =
1 0
0 1
ou
> A*A
ans =
1 0
0 1
Criado por Renato Vicente 10/06/02
19
20. Componente a componente teremos
> A.^2
ans =
0 1
1 0
Uma outra forma de avaliarmos a função de Rosenbrock é utilizarmos diretamente a
função do Netlab chamada rosen:
> Y1=rosen([sx1(:),sx2(:)]);
Esta operação retorna um vetor com 401 x 401 valores:
> size(Y1)
ans =
160801 1
Este vetor pode então ser convertido em uma matrz com as dimensões apropriadas
utilizando:
> Y1=reshape(Y1,length(x1),length(x2));
Esta instrução converte um vetor em uma matriz com o número de linhas igual ao
número de dimensões do vetor x1 (length(x1)) e o número de colunas igual ao número
de dimensões do vetor x2 (length(x2)). A matriz é preenchida coluna a coluna conforme o
exemplo a seguir:
>A=[1 2 3 4 5 6 7 8 9 10 11 12];
>A=reshape(A,4,3)
A=
1 5 9
2 6 10
3 7 11
4 8 12
Para plotarmos a superfície podemos utilizar a seguinte instrução :
>surf(x1,x2,Y)
Podemos também plotar curvas de nível da superfície:
> l=-1:6;
>v=2.^l;
>contour(x1,x2,Y,v)
Criado por Renato Vicente 10/06/02
20
21. Os mínimos da função são (-1,1) e (1,-1).
As funções de otimização do Netlab utilizam a seguinte sintaxe:
> [x, options, errlog, pointlog] = nome ('function', x, options, 'grad');
São quatro as funções de otimização: quasinew (Quase-Newton), conjgrad (gradiente
conjugado), scg (gradiente conjugado escalado) e graddesc (Gradient Descent). Os
argumentos das funções são, respectivamente: a função que se quer otimizar 'function', o
ponto inicial x, o vetor de opções de otimização options e o gradiente da função que se
quer otimizar 'grad'.
As saídas destas funções são, respectivamente: o resultado da otimização x, o vetor de
opcções de otimização atualizado após o processo options, os valores de erro após cada
ciclo errlog e a trajetória percorrida no espaço dos parâmetros pointlog.
O vetor options contém parâmetros para operação da rotina de otimização e parâmetros
específicos para cada algoritmo:
options(1) : 1 para mostrar na tela os valores de erro, 0 para exibir apenas mensagens de
aviso e -1 para não exibir nada;
options(2): Valor da precisão absoluta requerida para encerrar o processo de otimização.
Se xt +1 − xt < options (2) então esta condição é satisfeita.
options(3): Valor da precisão requerida na função otimizada. Se
function(xt +1 ) − function(xt ) < options(3) então a condição é satisfeita. Se esta e a
condição acima forem satisfeitas a otimização é encerrada.
Criado por Renato Vicente 10/06/02
21
22. options (7): 1 se uma busca em linha é utilizada para minimização na direção do
gradiente, 0 (default) se cada passo é dado na direção do negativo do gradiente com um
learning rate definido por options(18).
options(9): 1 para que a função verifique o gradiente informado 'grad' contra a função
'function'.
options(10): registra o número total de avaliações de 'function'.
options(11): registra o número total de avaliações de 'grad'.
options(14): número máximo de iterações.
options(18): learning rate. (default=0.01).
Gradient Descent
O método de gradient descent consiste na escolha do negativo do gradiente da função
erro como direção para cada passo de otimização, o tamnho de cada passo é definido
por uma learning rate η assim:
w t +1 = w t − η∇E (w t ) (1.22)
Os pontos fixos do algoritmo em (1.22) coincidem com os extremos da função erro, no
entanto nada garante que ocorra convergência para estes pontos fixos. Analisemos a
convergência do gradient descent em torno de um ponto fixo w* .
O gradiente da função erro em torno de um ponto fixo pode ser aproximado (utilizando
uma série de Taylor) por :
∇E (w ) ≅ ∇∇E (w* ) (w − w* ) , (1.23)
onde H = ∇∇E é o Hessiano da função erro.
Sejam λ j os autovalores do Hessiano e u j seus autovetores assim:
Hu j = λ j u j (1.24)
*
Expandindo w-w na base destes autovetores teremos:
∇E ≅ ∑ α j λ j u j e (1.25)
j
(w t +1 − w* ) − (w t − w* ) = ∑ (α t +1 − α t )u j (1.26)
j
Utilizando (1.22) podemos escrever uma dinâmica para as componentes do caminho
traçado no espaço dos parâmetros na direção de cada autovetor do Hessiano:
∆α j = −ηλ jα j (1.27)
Criado por Renato Vicente 10/06/02
22
23. A dinâmica ao redor do ponto fixo será :
α j ,t +1 = (1 − ηλ j )α j ,t (1.28)
Considerando learning rate η fixa, para n passos teremos:
α j ,t + n = (1 − ηλ j ) n α j ,t (1.29)
De (1.29) fica patente que uma condição necessária para que haja convergência de todas
as componentes para o ponto fixo α j = 0 quando n → ∞ é
1 − ηλ j < 1 . (1.30)
Esta condição obriga que a learning rate η respeite :
2
η< , (1.31)
λmax
onde λmax é o maior autovalor do Hessiano. Note que quanto maior o produto da
learning rate pelo autovalor, menor é o fator multiplicador em (1.29) e, por
conseqüência, mais rápida é a convergência. Quando o Hessiano possuir um espectro de
autovalores amplo (o que ocorre freqüentemente) as várias direções apresentarão tempos
de convergência bem diferentes. O processo total de convergência é dominado pela
direção com convergência mais lenta, ou seja, a direção com menor autovalor. A
convergência será então dominada por:
λ
(1 − 2 min ) . (1.32)
λmax
Se na vizinhança de um ponto fixo o Hessiano apresentar autovalores muito diferentes
, ou seja, a superfície de erro apresentar curvas de nível elipsoidais bastante alongadas, a
convergência do algoritmo será muito lenta.
Em geral gradient descent é bastante ineficiente sendo de pouco interesse prático. Apesar
disso este algoritmo recebeu bastante atenção do meio acadêmico devido à facilidade de
análise utilizando técnicas exatas. Várias formas de melhorar seu desempenho foram
propostas entre elas: adição de um termo de "momento", redução do número de passos
necessários para convergência pela utilização de um esquema para minimização
unidimensional e implementação de learning rates variando com o tempo.
O termo de momento é como segue:
w t +1 = w t − η∇E (w t ) + µ (w t − w t −1 ) , (1.33)
com 0 ≤ µ ≤ 1 .
Este termo tem o mesmo sinal da última variação, assim, se uma componente foi
reduzida ela continuará sendo reduzida. Em geral isto será uma vantagem em trechos da
superfície de erro em forma de vale, com pouca curvatura na direção do mínimo e muita
curvatura em uma outra direção qualquer como ilustrado a seguir.
Criado por Renato Vicente 10/06/02
23
24. >ezsurfc ('10*x1^2+x2',[-1, 1],[0,10] )
O gradiente da função acima é ∇E = (10 x1 ,1) , assim, se iniciarmos a otimização fora do
eixo x1 = 0 teremos fortes oscilações em decorrência da grande curvatura de uma das
direções:
O termo de momento neste caso adicionará uma certa inércia à direção (0,1)
aumentando a taxa de convergência.
Uma outra forma de reduzirmos o número de passos necessários para convergência é a
redução do número de dimensões do problema apenas à direção do gradiente pela
introdução de um algoritmo de otimização unidimensional a cada passo de otimização.
Criado por Renato Vicente 10/06/02
24
25. Nesta variante a cada passo encontramos a amplitude do deslocamento na direção do
gradiente , assim:
w t +1 = w t − λ *∇E (w t ) , (1.34)
onde λ * é definido como o mínimo de:
E (λ ) = E (w t − λ∇E ( w t )) . (1.35)
De forma equivalente, escolhemos λ de forma a termos:
dE (λ )
= −∇E (w t +1 ) ⋅∇E (w t ) = 0 , (1.36)
dλ
ou seja, gradientes sucessivos ortogonais. A minimização unidimensional em (1.35) pode
ser realizada utilizando uma busca linear. Utilizando esta forma é possível aumentar
consideravelmente a velocidade de convergência do gradient descent. O incoveniente deste
algoritmo está na condição (1.36) que força movimentos em zig-zag no espaço de
parâmetros.
Neste ponto, vale a pena discutirmos um pouco algoritmos de busca linear. O Netlab
utiliza um algoritmo proposto por Brent1 bastante eficiente e robusto que não utiliza o
gradiente unidimensional da função na otimização . O algoritmo de Brent consiste em:
1. Encontrar 3 pontos a<b<c, tais que E(b)<E(a) e E(b)<E(a) .
2. Ajustar uma parábola passando pelos pontos a,b e c.
3. Minimizando a parábola para encontrar d.
4. Repetindo o processo para pontos d e escolhendo entre a,b,c os dois com menor
erro.
Em Netlab uma busca linear é implementada pela função a seguir:
> [x, options] = linemin(f, pt, dir, fpt, options);
Onde f é a função a ser minimizada, pt é o ponto inicial, dir é a direção que define a
linha de busca, fpt é o valor da função no ponto de início e options é o vetor de opções de
otimização. O ponto de mínimo é dado por pt+x.*dir.
Como exemplo apresentamos a seguir otimização da função de Rosenbrock empregando
Gradient Descent seguirá os seguintes passos:
1 options = foptions;
Para importar configurações padrão para o otimizador.
1
Brent, R. 1973, Algorithms for Minimization without Derivatives. Englewood Cliffs, NJ: Prentice-Hall.
Criado por Renato Vicente 10/06/02
25
26. 2 options(1) = -1;
3 options(3) = 1e-8;
4 options(7)=1;
5 options(14) = 100;
Nada é exibido na tela , a precisão requerida para as variações na função otimizada é de 10-
8
, a otimização empregará a variante com busca linear e o número total de iterações é
fixado em 100. O vetor options inicia o processo na seguinte configuração:
>options(1)
ans =
-1
>options(2)
ans =
1.0000e-004
>options(3)
ans =
1.0000e-008
>options(9)
ans =
0
>options(10)
ans =
0
>options(11)
ans =
0
>options(14)
ans =
100
Assim a otimização deve encerrar quando as precisões fixadas forem atingidas ou quando o
número de iterações chegar a 100. Para vermos todas as outras opções disponíveis basta
utilizarmos o comando:
> help graddesc
GRADDESC Gradient descent optimization.
Description
[X, OPTIONS, FLOG, POINTLOG] = GRADDESC(F, X, OPTIONS, GRADF) uses
batch gradient descent to find a local minimum of the function F(X)
whose gradient is given by GRADF(X). A log of the function values
after each cycle is (optionally) returned in ERRLOG, and a log of the
points visited is (optionally) returned in POINTLOG.
Note that X is a row vector and F returns a scalar value. The point
at which F has a local minimum is returned as X. The function value
at that point is returned in OPTIONS(8).
GRADDESC(F, X, OPTIONS, GRADF, P1, P2, ...) allows additional
Criado por Renato Vicente 10/06/02
26
27. arguments to be passed to F() and GRADF().
The optional parameters have the following interpretations.
OPTIONS(1) is set to 1 to display error values; also logs error
values in the return argument ERRLOG, and the points visited in the
return argument POINTSLOG. If OPTIONS(1) is set to 0, then only
warning messages are displayed. If OPTIONS(1) is -1, then nothing is
displayed.
OPTIONS(2) is the absolute precision required for the value of X at
the solution. If the absolute difference between the values of X
between two successive steps is less than OPTIONS(2), then this
condition is satisfied.
OPTIONS(3) is a measure of the precision required of the objective
function at the solution. If the absolute difference between the
objective function values between two successive steps is less than
OPTIONS(3), then this condition is satisfied. Both this and the
previous condition must be satisfied for termination.
OPTIONS(7) determines the line minimisation method used. If it is
set to 1 then a line minimiser is used (in the direction of the
negative gradient). If it is 0 (the default), then each parameter
update is a fixed multiple (the learning rate) of the negative
gradient added to a fixed multiple (the momentum) of the previous
parameter update.
OPTIONS(9) should be set to 1 to check the user defined gradient
function GRADF with GRADCHEK. This is carried out at the initial
parameter vector X.
OPTIONS(10) returns the total number of function evaluations
(including those in any line searches).
OPTIONS(11) returns the total number of gradient evaluations.
OPTIONS(14) is the maximum number of iterations; default 100.
OPTIONS(15) is the precision in parameter space of the line search;
default FOPTIONS(2).
OPTIONS(17) is the momentum; default 0.5. It should be scaled by the
inverse of the number of data points.
OPTIONS(18) is the learning rate; default 0.01. It should be scaled
by the inverse of the number of data points.
See also
CONJGRAD, LINEMIN, OLGD, MINBRACK, QUASINEW, SCG
Definimos o ponto inicial como:
5 x = [-2,3];
Criado por Renato Vicente 10/06/02
27
28. A otimização propriamente dita pode ser implementada em uma linha :
6 [x,options,errgd,trajgd]=graddesc('rosen',x,options,'rosegrad');
O resultado final da otimização está longe do valor correto:
>x
x=
-0.5424 0.2886
A figura a seguir ilustra a trajetória percorrida durante o processo de otimização:
>a = -1.5:.02:1.5;
>b = -0.5:.02:2.1;
>[A, B] = meshgrid(a, b);
> Z = rosen([A(:), B(:)]);
> Z = reshape(Z, length(b), length(a));
> l = -10:6;
> v=2.^l;
> contour(a, b, Z, v);
> hold on;
> plot(trajgd(:,1), trajgd(:,2), 'b-', 'MarkerSize', 6)
> title('Gradient Descent')
Exercícios
(1) Repita a otimização acima para o gradient descent sem termo de momento com
os seguites valores para learning rate η = 0.001,0.01, 0.5 . Construa o gráfico
acima em cada um dos casos. Repita os experimentos adicionando momentos
µ = 0.1, 0.5 .
Criado por Renato Vicente 10/06/02
28
30. Gradiente Conjugado
Como vimos anteriormente o método de gradient descent consiste na escolha do
negativo do gradiente da função erro como direção para cada passo de otimização. Em
sua versão mais eficiente o tamanho de cada passo é definido por uma busca linear,
assim:
w t +1 = w t − λ *∇E (w t ) ,
onde
λ * = arg min E (w t − λ∇t E ) . (2.1)
Esta escolha tem a incoveniência de induzir uma trajetória em zig-zag no espaço dos
parâmetros já que:
dE
= 0 ⇒ ∇E (w t +1 ) ⋅ ∇E (w t ) = 0 , (2.2)
d λ λ =λ *
o que implica que duas direções de otimização consecutivas são sempre ortogonais. A
condição (2.1) garante que a função seja minimizada na direção do gradiente ∇t E , no
entanto o passo seguinte na direção do gradiente ∇t +1 E não garante que (2.2) continue
sendo verdade, assim cada passo pode destruir parte do trabalho de otimização do passo
anterior. Uma maneira de solucionar este problema é impor que a nova direção dt+1 de
otimização seja tal que o gradiente no novo ponto no espaço dos parâmetros não tenha
componentes na direção dt do último passo de otimização, assim:
∇E (w t+1 + λ d t+1 ) ⋅ d t = 0 . (2.3)
Expandindo o gradiente acima ao redor de wt+1 teremos:
(∇E (w t +1 ) + Hdt +1 ) ⋅ dt ≅ 0 , (2.4)
onde H é o Hessiano e por construção teremos que:
dt ⋅ Hdt +1 ≅ 0 . (2.5)
As direções acima são mutuamente conjugadas . Vetores mutuamente conjugados formam
uma base ortogonal com métrica definida pelo Hessiano H. Suponhamos agora que
iniciamos o processo de otimização no ponto w1 do espaço dos parâmetros.
Suponhamos que w* seja o mínimo da função erro E. A correção necessária para
atingirmos o mínimo da função erro pode ser expandida em uma base de vetores
mutuamente conjugados:
N
w * − w1 = ∑ α i d i , (2.6)
i =1
onde N é a dimensão do espaço de parâmetros. Se definirmos
j −1
w j = w1 + ∑ α i d i , (2.7)
i =1
teremos a correção no componente j do vetor de parâmetros, alternativamente
w j +1 = w j + α j d j (2.8)
expressa como cada componente do vetor de parâmetros é corrigida a partir da
componente anterior. Assim a otimização utilizando gradientes conjugados ocorre por
Criado por Renato Vicente 23/06/02
29
31. otimização de uma componente por vez. Desta forma se calcularmos exatamente as
direções conjugadas em cada passo precisaremo de exatos N passos para otimização. Para
superfícies quadráticas apenas precisamos calcular a Hessiana (segundas derivadas) uma
única vez. As direções conjugadas são obtidas simplesmente resolvendo um problema de
autovalores para H pois :
d k ⋅ Hd j = λ j d k ⋅ d j = λ jδ jk , (2.9)
Para superfícies genéricas o problema se torna mais complicado pois a Hessiana muda
conforme a posição no espaço dos parâmetros e seria necessário recalcular a Hessiana e
resolver o problema de autovalores acima para cada ponto. Para entendermos como
podemos utilizar gradientes conjugados de forma prática, começamos por analisar o caso
mais simples de uma superfície quadrática.
Suponhamos que a superfície de erro que queremos minimizar tenha a seguinte forma:
1
E (w ) = ω ⋅ w + w ⋅ Hw . (2.10)
2
O gradiente desta função erro no ponto w será:
∇E (w ) = ω + Hw . (2.11)
O ponto de mínimo será:
ω + Hw * = 0 . (2.12)
Agora, utilizando (2.6) teremos:
(2.13)
d j ⋅ H ( w * − w1 ) = d j ⋅ H ∑ α i d i ,
N
(2.14)
i =1
onde dj são direções conjugadas.
Utilizando (2.12):
N
−d j ⋅ ω − d j ⋅ Hw1 = ∑ α i d j ⋅ H di = α j d j ⋅ H d j . (2.15)
i =1
Assim encontramos a correção necessária em cada uma das direções conjugadas:
d ⋅ (ω + Hw1 )
αj = − j . (2.16)
dj ⋅H dj
Utilizando (2.7) teremos
j −1
d j ⋅ Hw j = d j ⋅ Hw1 + ∑ α i d j ⋅ Hdi = d j ⋅ Hw1 e (2.17)
i =1 !#"
" $
0
d j ⋅ (ω + Hw j ) d j ⋅∇E (w j )
αj = − . =− (2.18)
dj ⋅H dj dj ⋅H dj
Calculadas as correções em cada uma das direções conjugadas temos que encontrar uma
forma de encontrarmos as próprias direções que seja mais eficiente do que o cálculo de
Hessianas e a solução de problemas de autovalor. Uma maneira prática consiste em
Criado por Renato Vicente 23/06/02
30
32. adotarmos como primeira direção o negativo do gradiente no ponto de início
d1 = −∇E (w1 ) . A seguir construímos cada uma das direções iterativamente:
d j +1 = −∇E (w j +1 ) + β j d j (2.19)
Empregando a condição para direções conjugadas teremos:
d j +1 ⋅ Hd j = −∇E (w j +1 ) ⋅ Hd j + β j d j ⋅ Hd j = 0 e (2.20)
−∇E (w j +1 ) ⋅ Hd j
βj =
d j ⋅ Hd j
Se assumirmos uma aproximação quadrática em torno de cada ponto do espaço
poderemos empregar (2.20) como algoritmo para qualquer superfície. Nesta aproximação
podemos escrever:
∇E (w j +1 ) − ∇E (w j ) = Hw j +1 − Hw j = α j Hd j (2.21)
e por conseqüência:
−∇E (w j +1 ) ⋅ ∇E (w j +1 ) − ∇E (w j )
βj = (2.22)
d j ⋅ ∇E (w j +1 ) − ∇E (w j )
conhecida como equação de Hesteness-Stiefel1. Com algum trabalho de álgebra é possível
mostrar que :
∇E (w j ) ⋅ d k = 0, j ≠ k
Empregando (2.19) teremos também que
d j ⋅∇E (w j ) = −∇E (w j ) ⋅∇E (w j ) . (2.23)
Substituindo em (2.22) encontramos a equação de Polak-Ribiere 2:
(2.24)
−∇E (w j +1 ) ⋅ ∇E (w j +1 ) − ∇E (w j )
βj = . (2.25)
∇E (w j ) ⋅∇E (w j )
Note que não é necessário calcular o Hessiano para avaliarmos as direções conjugadas, no
entanto precisamos desta avaliação para calcularmos o tamanho do passo α j (vide
expressão (2.18) ). Para evitarmos o cálculo do Hessiano, muito caro para um número
muito grande de dimensões, podemos utilizar uma busca linear na direção conjugada do
momento. Assim chegamos a uma descrição completa do algoritmo de gradientes
conjugados:
1. Escolha um ponto inicial no espaço dos parâmetros w1 ;
2. Calcule o gradiente no ponto inicial e faça a primeira direção de otimização ser
d1 = −∇E (w1 ) ;
3. Para descobrir a amplitude do passo na direção d1, utilize uma busca linear
encontrando α1 = arg min E (w j + α d1 ) ;
1
Hestenes, M.R. e E. Stiefel (1952). Methods of conjugate gradients for solving linear systems. Journal of
Research of the National Bureau of Standards 49 (6), 409-436.
2
Polak, E. (1971). Computational Methods in optimization: A unified Approach. New York: Academic Press.
Criado por Renato Vicente 23/06/02
31
33. 4. Calcule w 2 = w1 + α1d1 ;
5. Pare se os critérios de convergência foram satisfeitos
6. Calcule ∇E (w 2 ) ;
7. A nova direção é dada por d 2 = −∇E (w 2 ) + β1d1 , com β1 definido pela relação de
Polak-Ribiere.
8. Vá para o passo 3 para o novo d.
Utilizemos agora a implementação em Netlab do algoritmo de gradiente conjugado para
otimizarmos novamente a função de Rosenbrock. Começamos por verificar as opções
de otimização disponíveis para a função conjgrad:
> help conjgrad
CONJGRAD Conjugate gradients optimization.
Description
[X, OPTIONS, FLOG, POINTLOG] = CONJGRAD(F, X, OPTIONS, GRADF) uses a
conjugate gradients algorithm to find the minimum of the function
F(X) whose gradient is given by GRADF(X). Here X is a row vector and
F returns a scalar value. The point at which F has a local minimum
is returned as X. The function value at that point is returned in
OPTIONS(8). A log of the function values after each cycle is
(optionally) returned in FLOG, and a log of the points visited is
(optionally) returned in POINTLOG.
CONJGRAD(F, X, OPTIONS, GRADF, P1, P2, ...) allows additional
arguments to be passed to F() and GRADF().
The optional parameters have the following interpretations.
OPTIONS(1) is set to 1 to display error values; also logs error
values in the return argument ERRLOG, and the points visited in the
return argument POINTSLOG. If OPTIONS(1) is set to 0, then only
warning messages are displayed. If OPTIONS(1) is -1, then nothing is
displayed.
OPTIONS(2) is a measure of the absolute precision required for the
value of X at the solution. If the absolute difference between the
values of X between two successive steps is less than OPTIONS(2),
then this condition is satisfied.
OPTIONS(3) is a measure of the precision required of the objective
function at the solution. If the absolute difference between the
objective function values between two successive steps is less than
OPTIONS(3), then this condition is satisfied. Both this and the
previous condition must be satisfied for termination.
OPTIONS(9) is set to 1 to check the user defined gradient function.
OPTIONS(10) returns the total number of function evaluations
(including those in any line searches).
Criado por Renato Vicente 23/06/02
32
34. OPTIONS(11) returns the total number of gradient evaluations.
OPTIONS(14) is the maximum number of iterations; default 100.
OPTIONS(15) is the precision in parameter space of the line search;
default 1E-4.
See also
GRADDESC, LINEMIN, MINBRACK, QUASINEW, SCG
Primeiro inicializamos as opções de otimização carregando as opções de default com:
> options=foptions
options =
Columns 1 through 8
0 0.0001 0.0001 0.0000 0 0 0 0
Columns 9 through 16
0 0 0 0 0 0 0 0.0000
Columns 17 through 18
0.1000 0
Ajustamos então algumas destas opções:
>options(1)=-1;
Para não mostrarmos em tela a trajetória de otimização.
>options(3)=1e-8;
Se em dois passos consecutivos a função erro diferir em menos de 1e-8 e se o vetor de
parâmetros diferir em menos de 1e-2 (options(2) ) a otimização deverá ser encerrada.
>options(14)=100;
A otimização deverá parar se o número de iterações atingir 100.
Agora definimos o ponto inicial :
> x=[-2 3];
A otimização é realizada em uma única linha:
> [x,options,errgd,trajgd]=conjgrad('rosen',x,options,'rosegrad');
As saídas são
>x
x=
1.0000 1.0000
O ponto ótimo, que neste caso está correto !
>options
options =
Columns 1 through 8
-1.0000 0.0001 0.0000 0.0000 0 0 0 0.0000
Columns 9 through 16
0 526.0000 28.0000 0 0 100.0000 0 0.0000
Columns 17 through 18
0.1000 0
Criado por Renato Vicente 23/06/02
33
35. Este vetor nos informa que foram utilizadas 526 avaliações da função minimizada e que o
gradiente desta função foi avaliado 28 vezes ( uma vez a cada iteração).
errgd e trajgd nos informam o valor do erro em cada passo e a trajetória no
espaço dos parâmetros. Para vermos a evolução do erro podemos utilizar
> plot(errgd,'b-o');
É interessante comentar neste ponto que para passarmos funções como argumentos para
rotinas de otimização precisamos criar arquivos .m para a função e para o gradiente da
função.
> edit rosen;
Criado por Renato Vicente 23/06/02
34
37. O Netlab oferece uma função que possibilita a verificação de um gradiente:
>gradchek([-2,3], 'rosen', 'rosegrad');
Checking gradient ...
analytic diffs delta
-806.0000 -806.0000 0.0000
-200.0000 -200.0000 0.0000
Na saída analytic fornece o valor calculado pela função rosegrad , diffs calcula o gradiente
numericamente utilizando a função rosen e delta mostra a diferença entre as duas formas de
cálculo.
Para visualizarmos a trajetória de otimização repetimos o procedimento utilizado quando
discutimos gradient descent:
>a=-1.5:.02:1.5;
>b=-0.5:.02:2.1;
> [A,B]=meshgrid(a,b);
>Z=rosen([A(:),B(:)]);
>Z=reshape(Z,length(b),length(a));
Criado por Renato Vicente 23/06/02
36
38. >l=-10:6;
>v=2.^l;
>contour(a,b,Z,v);
>hold on;
>plot(trajgd(:,1),trajgd(:,2),'--bs','LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','g',...
'MarkerSize',10)
>title('Gradiente Conjugado')
Aqui utilizamos alguns recursos novos para produzirmos o gráfico, as propriedades são:
1. LineWidth : espessura da linha em pontos;
2. MarkerEdgeColor : cor da borda do símbolo utizado;
3. MarkerFaceColor: cor do preenchimento do símbolo;
4. MarkerSize: tamanho dos símbolos em pontos.
É fácil perceber o desempenho muito superior deste algoritmo frente ao gradient descent.
Gradiente Conjugado Escalado
Lembremos que, para uma superfície quadrática, a amplitude de cada passo de otimização
é dada por:
d ⋅∇E (w j )
αj = − j . (2.26)
dj ⋅H dj
Para evitar o cálculo da Hessiana acimao algoritmo de gradientes conjugados utiliza a
cada passo uma otimização linear para . Esta otimização linear tem duas desvantagens: (1)
requer um grande número de avaliações de valor da função sendo otimizada e (2) a
convergência do algoritmo de gradientes depende da qualidade de cada otimização
unidimensional. Para evitar o cálculo da Hessiana ou o uso de otimizações
Criado por Renato Vicente 23/06/02
37
39. unidimensionais a cada passo Møller3 criou o algoritmo de gradientes conjugados
escalado.
A idéia central do algoritmo é utilizar uma aproximação numérica para o termo
envolvendo a Hessiana em (2.26).
Suponha ε = ε 0 / d j , onde ε 0 é uma quantidade pequena e positiva, observemos que :
∇E (w j + ε d j ) ≈ ∇E (w j ) + ε Hd j , (2.27)
portanto uma aproximação numérica para (2.26) é:
∇E ( w j + ε d j ) − ∇E ( w j )
Hd j ≈ . (2.28)
ε
Esta aproximação funciona se : 1) a função sendo minimizada for quadrática; 2) a
Hessiana for positiva definida. Para superfícies genéricas nada garantirá que a Hessiana é
positiva definida e um passo de otimização utilizando (2.26) poderá aumentar o valor da
função em algumas direções. Para podermos usar a aproximação numérica (2.28) e
minimizar estes efeitos podemos corrigir a equação para:
d j ⋅∇E (w j )
αj = − 2
(2.29)
dj ⋅ H dj +γ j dj
O parâmetro γ regula a escala (daí o nome gradiente conjugado escalado) de cada passo e é
inicializado como γ 1 = 1 . Quanto maior o parâmetro de escala, menor é a amplitude do
passo de otimização. A escala apropriada depende do quanto a função sendo otimizada é
localmente diferente de uma superfície quadrática. Se a função for exatamente quadrática
γ = 0 , se a função for distante de uma função quadrática γ deve aumentar.
Uma medida do grau de similaridade local entre a função e uma superfície quadrática foi
introduzida por Fletcher sendo:
E (w j ) − E (w j + α j d j )
∆j = , (2.30)
E (w j ) − EQ (w j + α j d j )
1
onde EQ (w j + α j d j ) = E (w j ) + α j d j ∇E (w j ) + α 2d j ⋅ Hd j .
j Utilizando (2.26)
2
simplificamos (2.30) e escrevemos:
2 E (w j ) − E (w j + α j d j )
∆j = . (2.31)
α jd j ⋅ d j
Com base neste parâmetro de comparação são feitas escolhas heurísticas para o
parâmetro de escala a cada passo da otimização. As escolhas são as seguintes:
γj
1. Se ∆ j > 0, 75 então γ j +1 = ;
2
3
Møller ,M. (1993). A scaled conjugate gradient algorithm for fast supervised learning. Neural Networks
6(4), 525-533.
Criado por Renato Vicente 23/06/02
38
40. 2. Se 0, 25 < ∆ j < 0, 75 então γ j +1 = γ j ;
3. Se ∆ j < 0, 25 então γ j +1 = 4γ j ;
4. Se ∆ j < 0 então γ j +1 = 4γ j e o passo de otimização não é efetuado;
O algoritmo de gradientes conjugados escalados adquire então a seguinte forma:
1. Escolha um ponto inicial no espaço dos parâmetros w1 ;
2. Inicialize o parâmetro de escala em γ 1 = 1 ;
3. Calcule o gradiente no ponto inicial e faça a primeira direção de otimização ser
d1 = −∇E (w1 ) ;
4. Para descobrir a amplitude do passo na direção d1 utilize (2.28) e (2.29);
5. Calcule w 2 = w1 + α1d1 ;
6. Pare se os critérios de convergência foram satisfeitos;
7. Calcule o parâmetro de comparação ∆ ;
8. Atualize o parâmetro de escala γ de acordo com as condições acima;
9. Calcule ∇E (w 2 ) ;
10. A nova direção é dada por d 2 = −∇E (w 2 ) + β1d1 , com β1 definido pela relação de
Polak-Ribiere;
11. Vá para o passo 3 para o novo d e para o novo parâmetro de escala γ .
A utilização do Netlab para otimização com gradientes conjugados escalados segue
exatamente os mesmos passos que utilizamos para gradientes conjugados.
> options = foptions;
> options(1)=-1;
>options(3)=1e-8;
>options(14)=100;
> x=[-2 3];
> [x,options,errgd,trajgd]=scg('rosen',x,options,'rosegrad');
>x
x=
1.0000 0.9999
> options
options =
Columns 1 through 11
-1.0000 0.0001 0.0000 0.0000 0 0 0 0.0000 0 52.0000 78.0000
Columns 12 through 18
0 0 100.0000 0 0.0000 0.1000 0
Note que a qualidade do resultado final é ligeiramente inferior àquela obtida com o
gradiente conjugado mas o número de avaliações de função foi reduzido de 526 para 52
ao deixarmos de utilizar otimizações unidimensionais. Para exibirmos a trajetória
Criado por Renato Vicente 23/06/02
39
41. utilizamos o mesmo código utilizado para o algoritmo de gradiente conjugado, mas
desta vez salvamos um arquivo .m como exibido abaixo:
>trajetória
Neste exemplo o desempenho do gradiente conjugado mostrou-se muito similar, e até
um pouco inferior, ao desempenho do gradiente conjugado simples. Em geral o
Criado por Renato Vicente 23/06/02
40
42. gradiente conjugado escalado exibe o melhor desempenho, no entanto é interessante
sempre testar cada um dos algoritmos caso a caso.
Método de Newton
O método de Newton se baseia em uma idéia muito simples. Retomemos a expansão de
Taylor para o gradiente em torno de um ponto wj.
∇E ( w ) ≈ ∇E ( w j ) + H ( w − w j ) . (2.32)
Suponhamos agora que w é um mínimo, então:
H (w − w j ) = −∇E (w j ) . (2.33)
Se resolvermos esta equação em w para qualquer wj, então teremos encontrado o
mínimo. A solução para a equação é :
w = w j − H −1∇E (w j ) . (2.34)
Lembrando que (2.34) encontra o mínimo de E , o que equivale a encontrarmos a raiz
f (w ) = ∇E(w ) . Ou seja, em uma dimensão, temos o conhecido método de Newton-
Raphson.
f ( xn )
x = xn − . (2.35)
f ′( xn )
A direção definida por H −1∇E (w j ) é conhecida como direção de Newton e tem como
propriedade principal apontar para um extremo local da função erro.
Quase-Newton
O método de Newton tem uma série de desvantagens que limitam sua utilização prática
em problemas de otimização com muitas dimensões:
1. O algoritmo requer a avaliação e inversão da matriz Hessiana que requerem,
respectivamente, O(W2 N) e O(W3) operações, sendo W o número de parâmetros
e N o número de pontos.
2. Quando a superfície onde a otimização é realizada não é quadrática é necessário
recalcular o Hessiano e seu inverso em cada ponto.
3. Ao redor de alguns pontos o Hessiano pode não ser positivo definido.
Uma alternativa para contornar estes problemas intrínsecos ao método de Newton é
implementar um método que produza uma aproximação positiva definida para a inversa
da matriz Hessiana.
Criado por Renato Vicente 23/06/02
41
43. Lembremos que na aproximação quadrática:
∇E (w j ) − ∇E (w j −1 ) = H (w j − w j −1 ) (2.36)
Definindo
q j = ∇E (w j ) − ∇E (w j −1 ) e (2.37)
v j = w j − w j −1 (2.38)
v j = Hq j (2.39)
Se quisermos produzir uma aproximação para a inversa da Hessiana podemos exigir que
para cada um dos pontos já excursionados que
G j +1 v i = qi ,1 ≤ i ≤ j (2.40)
Após N passos com vetores linearmente independentes, com N sendo o número de
dimenaões da matriz Hessiana teremos G N = H −1 . Um procedimento para construção
de uma série de matrizes positvas definidas que respeitem (2.40) é conhecido como
algoritmo BFGS (Broyden-Fletcher-Goldfarb-Shanno)4:
v j ⋅ G j v j (q j qTj ) (q j vTj ) G j + G j ( v j qTj )
G j +1 = G j + 1 + − (2.41)
v j ⋅q j q j ⋅ v j qj ⋅vj
Note que (q j vTj ) significa uma matriz com componentes (q j vTj ) = qi, j vl , j .
il
Em geral a superfície que está sendo otimizada não é quadrática assim a aproximação em
(2.32) tem validade limitada e a amplitude do passo no método quase-Newton deve ser
controlada:
w j +1 = w j + α j G j ∇E (w j ) (2.42)
A amplitude α j do passo de otimização pode ser obtida por uma busca linear, mas isso
só é necessário se o passo de Newton total ( α j =1) aumentar o valor da função erro.
Como fizemos anteriormente, começamos por verificar as instruções no help da função
quasinew:
4
Press et al., Numerical Recipes in C: The Art of Scientific Computing, Cambridge University Press
(disponível gratuitamente em www.nr.com).
Criado por Renato Vicente 23/06/02
42
44. >help quasinew
QUASINEW Quasi-Newton optimization.
Description
[X, OPTIONS, FLOG, POINTLOG] = QUASINEW(F, X, OPTIONS, GRADF) uses a
quasi-Newton algorithm to find a local minimum of the function F(X)
whose gradient is given by GRADF(X). Here X is a row vector and F
returns a scalar value. The point at which F has a local minimum is
returned as X. The function value at that point is returned in
OPTIONS(8). A log of the function values after each cycle is
(optionally) returned in FLOG, and a log of the points visited is
(optionally) returned in POINTLOG.
QUASINEW(F, X, OPTIONS, GRADF, P1, P2, ...) allows additional
arguments to be passed to F() and GRADF().
The optional parameters have the following interpretations.
OPTIONS(1) is set to 1 to display error values; also logs error
values in the return argument ERRLOG, and the points visited in the
return argument POINTSLOG. If OPTIONS(1) is set to 0, then only
warning messages are displayed. If OPTIONS(1) is -1, then nothing is
displayed.
OPTIONS(2) is a measure of the absolute precision required for the
value of X at the solution. If the absolute difference between the
values of X between two successive steps is less than OPTIONS(2),
then this condition is satisfied.
OPTIONS(3) is a measure of the precision required of the objective
function at the solution. If the absolute difference between the
objective function values between two successive steps is less than
OPTIONS(3), then this condition is satisfied. Both this and the
previous condition must be satisfied for termination.
OPTIONS(9) should be set to 1 to check the user defined gradient
function.
OPTIONS(10) returns the total number of function evaluations
(including those in any line searches).
OPTIONS(11) returns the total number of gradient evaluations.
OPTIONS(14) is the maximum number of iterations; default 100.
OPTIONS(15) is the precision in parameter space of the line search;
default 1E-2.
See also
CONJGRAD, GRADDESC, LINEMIN, MINBRACK, SCG
Criado por Renato Vicente 23/06/02
43
45. > options = foptions;
> options(1)=-1;
>options(3)=1e-8;
>options(14)=100;
> x=[-2 3];
> [x,options,errgd,trajgd]=quasinew('rosen',x,options,'rosegrad');
>x
x=
1.0000 1.0000
Utilizando o método trajetoria.m :
Criado por Renato Vicente 23/06/02
44
46. Estimação de Densidades de Probabilidade
Simulação e Clustering
No problema típico de simulação em finanças temos dados históricos provenientes de
um determinado processo e desejamos gerar cenários futuros que sejam compatíveis com
o comportamento estatístico observado. Em sua forma mais geral conhecemos uma
seqüência de dados x1 , x2 ,..., xt mais uma seqüência de informações de mercado
z1 , z2 ,..., zt e queremos estimar uma distribuição condicional do futuro em relação ao
passado p ( xt +1 , xt + 2 ,... x1 , z1 ,..., xt , zt ; w) , onde w são parâmetros da distribuição. A
simulação consiste da amostragem de p . Estas simulações são conhecidas como Monte-
Carlo e encontram aplicação importante na avaliação de riscos.
A versão mais simples do problema de estimação de densidades envolve apenas
distribuições conjuntas (não-condicionadas) p ( x; w) . Neste capítulo exemplificaremos
o uso de Netlab na estimação de densidades de probabilidade conjuntas utilizando o
modelo conhecido como Mistura de Gaussianas.
Nosso problema de exemplo será a estimação da densidade conjunta não-condicional de
retornos diários de uma carteira contendo três ações: VALE5, ITAU4 e ELET3.
Representando em um gráfico cerca de 700 dias de séries teremos:
>x=load('retornos.dat');
>plot3(x(:,1),x(:,2),x(:,3),'.');
Criado por Renato Vicente 23/06/02
45
47. A densidade que observamos é resultado da convolução de um processo com densidades
condicionais de um dia quase-normais, não-estacionário e com grandes mudanças nas
covariâncias. Isso dá origem a uma densidade não-gaussiana.
No problema de clustering queremos separar um conjunto de dados x1 , x2 ,..., xt em
classes C1, C2, ...,Cn para isso modelamos a densidade p ( x; w) como uma mistura de
n
Gaussianas p ( x) = ∑ p (C j ) pgauss ( x C j ) e definimos a qual classe pertence um ponto
j =1
específico x encontrnado a classe que maximiza p (C j x) .
Misturas de Gaussianas
A idéia central por trás da estimação de densidades de porbabilidade utilizando misturas
de normais está na utilização de uma combinação de distribuições simples, no caso
Gaussianas, para modelar distribuições de complexidade arbitrária. É possível mostrar
que, com um número suficientemente grande de densidades gaussianas é possível
representar qualquer densidade 1. Uma mistura de gaussianas é a dada por:
M
p (x) = ∑ P( j ) pgauss (x j ) (3.1)
j =1
Os coeficiente P( j ) são denominados coeficientes de mistura e as densidades pgauss (x j )
são componentes da mistura. Para que (3.1) defina uma densidade de probabilidade as
seguintes condições são necessárias:
M
1. ∑ P( j ) = 1
j =1
0 ≤ P( j ) ≤ 1
2. ∫ dx p gauss (x j ) = 1 ∀j .
Uma representação gráfica para um GMM (Gaussian Mixture Model) é:
∑ P( j ) p(x j)
p(x|j)P(j)
P(j)
1
McLachlan, G.J. e K.E. Basford (1988). Misxture Models: Inference and Applications to Clustering. New
York: Marcel Dekker.
Criado por Renato Vicente 23/06/02
46
48. Os componentes da mistura têm a seguinte forma genérica:
1 1
p(x j ) = exp − (x − µ j ) ⋅ C −1 (x − µ j )
j (3.2)
2
1/ 2
(2π ) d /2
Cj
As matrizes de covariância Cj podem ter diversas formas que influenciarão o número
de componentes necessário para a representação de uma densidade:
• Esférica: Nesta escolha as covariâncias são descritas por apenas um parâmetro
C j = σ 2 I . O Netlab trás uma demonstração do uso de GMM com componentes
j
esféricos.
>demgmm2
• Diagonal: Cada matriz de covariância é descrita por N parâmetros, onde N é a
dimensão do espaço dos dados, assim Ckl , j = δ klσ k , j . Este caso é exemplificado no
Netlab pela demonstração demgmm3.
Criado por Renato Vicente 23/06/02
47
49. N2 + N
• Completa: A covariância utilizada tem parâmetros , ou seja, Ckl , j = σ kl , j .
2
2
Utilizando demgmm4.
Em Netlab podemos construir um GMM utilizando o comando gmm (dim, comp, covar)
que define uma estrutura com dim dimensões, comp componentes de mistura e
covariância de tipo covar. Se quisermos construir um modelo para a distribuição
conjunta dos retornos das ações descrita acima utilizando 5 componentes com
covariâncias completas, devemos digitar:
> mix= gmm(3,5,'full');
A estrutura definida tem as seguintes componentes:
>mix
mix =
type: 'gmm'
nin: 3
ncentres: 5
covar_type: 'full'
priors: [0.2000 0.2000 0.2000 0.2000 0.2000]
centres: [5x3 double]
covars: [3x3x5 double]
nwts: 65
Os priors são os componentes de mistura e nwts é o número de parâmetros.
A mistura acima precisa ser inicializada, para isso utilizamos o comando gmminit.
Criado por Renato Vicente 23/06/02
48
50. >help gmminit
GMMINIT Initialises Gaussian mixture model from data
Description
MIX = GMMINIT(MIX, X, OPTIONS) uses a dataset X to initialise the
parameters of a Gaussian mixture model defined by the data structure
MIX. The k-means algorithm is used to determine the centres. The
priors are computed from the proportion of examples belonging to each
cluster. The covariance matrices are calculated as the sample
covariance of the points associated with (i.e. closest to) the
corresponding centres. For a mixture of PPCA model, the PPCA
decomposition is calculated for the points closest to a given centre.
This initialisation can be used as the starting point for training
the model using the EM algorithm.
See also
GMM
>options=foptions;
>mix=gmminit(mix,x,options);
>mix
mix =
type: 'gmm'
nin: 3
ncentres: 5
covar_type: 'full'
priors: [0.0639 0.3083 0.0111 0.4264 0.1903]
centres: [5x3 double]
covars: [3x3x5 double]
nwts: 65
A função gmminit utiliza um algoritmo não-paramétrico denominado K-médias
implementado pela função kmeans do Netlab que consiste dos seguintes passos:
1. Os N dados são são divididos em K grupos S1, S2 e SK com o mesmo número
de componentes;
1
2. São calculadas médias (centros) para cada grupo: µ j = ∑ xn ;
N j n∈S j
3. Calculam-se as distâncias de cada dado em relação a cada um dos centros e
reagrupam-se os dados no grupo de centro mais próximo de forma a
K
minimizar E = ∑ ∑ xn − µ j
2
.
j =1 n∈S j
4. Volta ao passo 2.
Após inicialização o treinamento do GMM é efetuado utilizando um algoritmo de
otimização de verossimilhança denominado EM através da função gmmem.
Criado por Renato Vicente 23/06/02
49
51. >help gmmem
GMMEM EM algorithm for Gaussian mixture model.
Description
[MIX, OPTIONS, ERRLOG] = GMMEM(MIX, X, OPTIONS) uses the Expectation
Maximization algorithm of Dempster et al. to estimate the parameters
of a Gaussian mixture model defined by a data structure MIX. The
matrix X represents the data whose expectation is maximized, with
each row corresponding to a vector. The optional parameters have
the following interpretations.
OPTIONS(1) is set to 1 to display error values; also logs error
values in the return argument ERRLOG. If OPTIONS(1) is set to 0, then
only warning messages are displayed. If OPTIONS(1) is -1, then
nothing is displayed.
OPTIONS(3) is a measure of the absolute precision required of the
error function at the solution. If the change in log likelihood
between two steps of the EM algorithm is less than this value, then
the function terminates.
OPTIONS(5) is set to 1 if a covariance matrix is reset to its
original value when any of its singular values are too small (less
than MIN_COVAR which has the value eps). With the default value of
0 no action is taken.
OPTIONS(14) is the maximum number of iterations; default 100.
The optional return value OPTIONS contains the final error value
(i.e. data log likelihood) in OPTIONS(8).
See also
GMM, GMMINIT
Note a opção(5) que tem por objetivo evitar que a covariância colapse sobre um ponto,
o que corresponde a um overfitting dos dados modelados.
>options=foptions;
>options(1)=-1;
> [mix,options,errlog] =gmmem(mix,x,options);
> mix
mix =
type: 'gmm'
nin: 3
ncentres: 5
covar_type: 'full'
priors: [0.0063 0.1210 0.2052 0.2196 0.4479]
centres: [5x3 double]
covars: [3x3x5 double]
nwts: 65
Criado por Renato Vicente 23/06/02
50
52. Os centros são :
> mix.centres
ans =
0.1779 0.1205 0.2443
-0.0056 0.0001 -0.0091
0.0095 0.0246 0.0130
0.0051 -0.0100 -0.0060
-0.0052 -0.0049 -0.0046
Se quisermos agora simular retornos utilizando nosso modelo recém treinado basta
utilizarmos a função [data,label]=gmmsamp(mix,n), com n sendo o número de amostras,
data sendo os dados amostrados e label a componente geradora.
> [simula,label_sim]=gmmsamp(mix,500);
>plot3(simula(:,1),simula(:,2),simula(:,3),'rs','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g','Mark
erSize',5);
Algoritmo EM (Expectation-Maximization)
A estimação dos parâmetros em um GMM se baseia em um algoritmo conhecido como
EM (Expectation-Maximization) 2. Para encontrarmos os parâmetros mais adequados
para modelar os dados devemos maximizar a função verossimilhança no conjunto de
dados {xn }n =1 :
N
N
L( P, µ , C ) = ∑ ln p ( xn ) , (3.3)
n =1
Esta função de verossimilhança é função dos coeficientes de mistura das médias e das
matrizes de covariância. Para simplificar os cálculos podemos, alternativamente,
minimizar uma função erro definida como:
E = − ln L (3.4)
2
Dempster, A. P., N.M. Laird e D.B. Rubin (1977). Maximum likelihood from incomplete data via the EM
algorithm. journal of the Royal Statistical Society, B 39 (1), 1-38.
Criado por Renato Vicente 23/06/02
51
53. Se substituirmos a estrutura do GMM em (3.4) teremos:
N
M
E = − ∑ ln ∑ p ( xn j ) P( j ) (3.5)
n =1 j =1
Poderiamos utilizar os algoritmos estudados no capítulo anterior para otimizarmos a
funcção erro em (3.5), no entanto, a experiência mostra que , para misturas de gaussianas,
o algoritmo EM converge melhor e mais rápido.
Queremos minimizar (3.5). A cada alteração de parâmetros temos :
N
p (x )
∆E = −∑ ln t +1 n (3.6)
n =1 pt ( xn )
Se utilizarmos a estrutura da mistura e multiplicarmos o numerador e denominador por
Pt ( j xn ) teremos:
M
N ∑ Pt +1 ( j ) pt +1 ( xn j ) P ( j x )
∆E = −∑ ln
j =1 t n
(3.7)
n =1 pt ( xn ) Pt ( j xn )
A manipulação acima teve por objetivo possibilitar o uso da desigualdade de Jensen:
Se λ j ≥ 0 e ∑λ j = 1 , então ln ∑ λ j x j ≥ ∑ λ j ln( x j ) .
j j j
M
Como ∑ P ( j x ) = 1 podemos escrever uma desigualdade baseada em
j =1
t n (3.7):
N M P ( j ) pt +1 ( xn j )
∆E ≤ −∑∑ Pt ( j xn ) ln t +1 (3.8)
n =1 j =1 Pt ( j x n ) pt ( xn j )
Na otimização queremos minimizar a função erro E. Isso implica em minimizar ∆E ao
escolher novos parâmetros. Podemos reescrever (3.8) como :
N M N M
Et +1 ≤ Et − ∑∑ Pt ( j xn ) ln Pt +1 ( j ) pt +1 ( xn j ) + ∑∑ Pt ( j xn ) ln Pt ( j ) pt ( xn j )
(3.9)
n =1 j =1 n =1 j =1
Note que o último termo acima não depende dos novos parâmetros em t+1 sendo,
portanto, uma constante. Já o segundo termo varia com a escolha de novos parâmetros.
A propriedade interessante de (3.9) é o fato de que qualquer alteração no segundo termo
a direita que reduza o valor da soma dos termos automaticamente implica na redução do
erro no novo passo. Chamemos o segundo termo à esquerda de Q e o terceiro de Q0 ,
teremos:
Criado por Renato Vicente 23/06/02
52