Introdução a Redes Neurais Herman M Gomes DSC/CEEI/UFCG Definição de uma Rede Neural “Uma rede neural é um processador maciçamente paralelo e distribuído constituído por unidades de processamento simples, o qual tem a propensão natural de armazenar conhecimento experimental e torná-lo disponível para uso.” [Haykin99] Algumas Semelhanças entre uma Rede Neural e o Cérebro O conhecimento é adquirido do ambiente pela rede neural através de um processo de aprendizagem Os pesos das conexões entre neurônios são utilizados para armazenar o conhecimento adquirido Características de Redes Neurais Generalização Não-linearidade (ao se utilizar neurônios não lineares) Aprendizagem a partir de exemplos (a partir de tabelas de entrada-saída Adaptatividade a mudanças no ambiente Respostas fornecidas com um nível de confiança Tolerância a falhas Facilidade de implementação em Hardware (VLSI) Analogia neurobiológica O Cérebro Humano Sensores Sistema Nervoso Central Circuitos Inter-regiões Nível de Abstração Estímulos Rede Neural Circuitos locais Neurônios Árvores dendrídicas Microcircuitos neurais Sinapses Moléculas Atuadores Respostas Modelo Computacional de um Neurônio Um conjunto de sinapses, ou pesos de conexão Um somador dos sinais de entrada ponderados pelos pesos de conexão Uma função de ativação para limitar a amplitude de saída do neurônio Modelo Estocástico 1 com probabilidade P(v) f ( x) 1 com probabilidade 1 P(v) 1 P (v ) 1 exp(v / T ) Arquiteturas Neurais Redes de única camada sem retro-alimentação Arquiteturas Neurais Redes de múltiplas camadas sem retro-alimentação Arquiteturas Neurais Redes recorrentes Representação do Conhecimento O conhecimento normalmente consiste de 2 tipos de informação: – – O estado conhecido do ambiente, representado por fatos (informação a priori). Observações (medições) sobre o ambiente obtidas em termos de sensores. O conhecimento pode ser rotulado ou não-rotulado Exemplos (observações) utilizados para treinar uma rede neural podem ser positivos ou negativos. Representação do Conhecimento Existe um conjunto de quatro regras intuitivas que explicam de uma forma geral a representação do conhecimento numa rede neural [Anderson88] Representação do Conhecimento Regra 1: Entradas similares de classes similares devem normalmente produzir representações similares dentro da rede neural, e devem portanto ser classificadas como sendo da mesma classe. Representação do Conhecimento Regra 2: Objetos que serão classificados em classes diferentes devem receber representações amplamente diferentes dentro da rede neural. Representação do Conhecimento Regra 3. Se uma característica em particular é importante, então deve existir um grande número de neurônios envolvidos na representação daquela característica na rede neural. Representação do Conhecimento Regra 4: A informação a priori e invariâncias devem ser incorporadas ao projeto de uma rede neural, portanto simplificando o problema de aprendizagem. Representação do Conhecimento Como incorporar informação a priori no projeto de uma rede neural? – – Restringindo a arquitetura através do uso de campos receptivos Restringindo a escolha de pesos sinápticos através do uso de compartilhamento de pesos Representação do Conhecimento Como Incorporar Invariâncias no Projeto de uma Rede Neural? – – – Invariância por estrutura Invariância por treinamento Espaços de características invariantes Representação do Conhecimento Campos receptivos e compartilhamento de pesos x1 1 x2 x3 x4 2 x5 x6 Representação do Conhecimento Invariância por estrutura – – Conexões sinápticas entre os neurônios são definidas de tal forma que versões transformadas de uma mesma entrada são forçadas a produzir uma mesma saída Por exemplo: suponha que forcemos wji=wjk para todos os pixels que estão a uma mesma distância do centro de uma imagem. Então a rede neural construída desta forma será invariante a rotações em torno do centro da imagem. Representação do Conhecimento Invariância por treinamento – – – – – Subconjunto das possíveis transformações que um vetor de entrada pode sofrer são apresentados durante o treinamento Exemplo1: para reconhecer objetos visuais independente do ângulo de visão, pode-se treinar a rede com diferentes visões planas do objeto (reconhecimento 3D a partir de imagens 2D). Exemplo2: para determinar que uma certa caligrafia pertence a um indivíduo, pode-se treinar uma rede neural com diferentes amostras de caracteres de um mesmo autor. Muito útil quando é difícil se derivar um modelo para os dados. Desvantagens: overhead computacional, variações de treinamento precisam ser fornecidas para cada nova classe. Representação do Conhecimento Espaços de Características Invariantes Entrada – – Extrator de Características Invariantes Classificador Neural Estimativa de classe Vantagens: redução da dimensão do espaço de entrada, arquitetura da rede pode ser mais simples, invariância normalmente vale para todas as classes de objetos. Possível desvantagem: quando o processo de extração de características é muito complicado ou demanda muito tempo. Redes Neurais e Inteligência Artificial Nível de explicação – – Estilo de processamento – – IA clássica: modelos mentais simbólocos Redes Neurais: modelos neurobiológicos IA clássica: sequencial Redes Neurais: paralelo Estrutura da representação – – IA clássica: manipulação formal top-down de uma linguagem de algoritmos e representações de dados Redes Neurais: processadores paralelos distribuídos com a habilidade natural de aprender, e que operam naturalmente de uma maneira bottom-up. Redes Neurais e Inteligência Artificial Extração de regras de redes neurais – – – – Alternativa para unir as abordagens conexionistas e simbolistas na solução de um problema Validar o correto funcionamento das redes Descobrir características de destaque no espaço de entrada (mineração de dados) Tornar o conhecimento aprendido compreensível por seres humanos Redes Neurais como Grafos Dirigidos Um grafo de fluxo de sinal é uma rede de ligações dirigidas que são interconectadas em certos pontos chamados de nós. Um nó típico j possui um nó de sinal associado xj. Uma típica ligação dirigida se origina no nó j e termina no nó k, tendo uma função de transferência que especifica a forma pela qual o sinal yk no nó k depende do sinal xj no nó j. Redes Neurais como Grafos Dirigidos xj xj wkj yk =wkj . xj f(.) yk =f(xj) xj yk =yi + yj xj Redes Neurais como Grafos Dirigidos Grafo de fluxo de sinal representando um neurônio x0=+1 vk x1 ... xm f(.) yk Aprendizagem Definição no contexto de Redes Neurais “Aprendizagem é um processo pelo qual os parâmetros livres de uma rede neural são adaptados através de um processo de estimulação pelo ambiente onde a rede se encontra. O tipo de aprendizagem é determinado pela forma na qual as mudanças de parâmetros ocorrem” Aprendizagem A definição anterior implica no seguinte: – – – A rede neural é estimulada pelo ambiente A rede neural sofre mudanças em seus parâmetros livres como um resultado desta estimulação A rede neural passa a responder de maneira diferente ao ambiente devido às mudanças que ocorreram em sua estrutura interna Algoritmo de Aprendizagem: conjunto bem definido de regras para a solução de um problema de aprendizagem. Aprendizagem Tipos de Aprendizagem – – – – – Correção do erro Com base em memória Hebbiana Competitiva Com e sem professor Usos da Aprendizagem – – – – – Associação de Padrões Reconhecimento de Padrões Aproximação de Funções Controle Filtragem Aprendizagem Correção do erro ek(n)=dk(n) – yk(n) x1(n) x2(n) -1 ... x(n) f(.) xj(n) ... xm(n) vk(n) yk(n) dk(n) ek(n) Aprendizagem Correção do erro – – Objetivo: aplicar uma sequência de ajustes corretivos aos pesos do neurônio k, de forma a passo-a-passo forçar o sinal de saída yk a se tornar cada vez mais próximo do sinal de resposta dk. Este objetivo é atingido através da minimização de uma função de custo ou de índice de desempenho E(n), definida como: 1 2 E (n) ek (n) 2 Aprendizagem Correção do erro – A minimização da função E(n) leva a uma regra de aprendizagem comumente denominada de delta rule ou regra de Widrow-Hoff (1960): wkj (n) ek (n) x j (n) wkj (n 1) wkj (n) wkj (n) Aprendizagem Com base em Memória – Todas as experiências passadas são explicitamente armazenadas em uma vasta memória de exemplos de entrada-saída corretamente classificados: N i 1 {( xi , di )} – – Exemplo: aprendizagem utilizando os k-vizinhos-maispróximos. Uma métrica de distância no espaço de entrada precisa ser especificada. Aprendizagem Hebbiana (contexto neurobiológico) – Quando um axônio de uma célula A está próximo o suficiente para excitar uma célula B e repetidamente, ou persistentemente, faz a célula B disparar, então algum processo de crescimento ou mudanças metabólicas passam a ocorrer em uma ou ambas as células de forma que observa-se um aumento na eficiência de A como uma das células responsáveis pelo disparo de B Aprendizagem Hebbiana (contexto computacional) – – – Se dois neurônios em cada lado de uma conexão são ativados simultaneamente (sincronamente), então o peso daquela sinapse é seletivamente aumentado. Se dois neurônios em cada lado de uma conexão são ativados assincronamente, então o peso daquela conexão é seletivamente diminuida ou eliminado. Em outras palavras, a regra de Hebb é um mecanismo para aumentar a eficiência de uma sinapse na forma de uma função da correlação entre as atividades pré e pós sinapticas. wkj (n) yk (n) x j (n) Aprendizagem Competitiva – – Os neurônios de uma rede neural competem entre si para se tornarem ativos (através de um mecanismo de inibição lateral). Em uma rede baseada em aprendizagem hebbiana, vários neurônios de saída podem estar ativos simultaneamente, porém, com aprendizagem competitiva, apenas um neurônio de saída está ativo num dado instante de tempo. ( x j wkj ) se o neurôniok ganha a competição wkj (n) 0 se o neurôniok perde a competição Aprendizagem Sem professor – Por reforço reforço primário vetor de entrada Ambiente Crítico heurística de reforço ações Sistema de Aprendizagem Aprendizagem Sem professor – Não supervisionada ou auto-organizável vetor de entrada descrevendo o estado do ambiente Ambiente – Sistema de Aprendizagem É possível utilizar uma regra de aprendizagem competitiva para executar uma aprendizagem não supervisionada Aprendizagem Usos da Aprendizagem – Associação de Padrões xk yk, k=1,2,...,q vetor de entrada x vetor de saída y Associador de Padrões – – Auto (xk = yk) Vs. Heteroassociação (xk yk) Fases de Armazenamento (Storage) e de Uso (Recall) Aprendizagem Usos da Aprendizagem – Reconhecimento de Padrões vetor de entrada x Rede neural nãosupervisionada para extração de características . . . x Espaço de observações m-dimensional y Espaço de características q-dimensional Espaço de decisão r-dimensional ... vetor de caracterís Rede neural ticas y supervisionada para classificação Classes de Padrões 1 2 3 r Aprendizagem Usos da Aprendizagem – – – Aproximação de funções Considere o mapeamento não-linear d=f(x) Suponha que f(.) seja desconhecida e que dispomos de apenas um conjunto de amostras da função F {( xi , di )} N i 1 – O objetivo é projetar uma rede neural que aproxime a função desconhecida f(.) de tal forma que: F ( x) f ( x) Perceptrons de única camada McCulloch and Pitts (1943) – Hebb (1949) – Introduziram a idéia de redes neurais como máquinas de computação Postulou a primeira regra para aprendizagem autoorganizável Rosenblatt (1958) – Apresentou o perceptron como o primeiro modelo de rede neural para aprendizagem supervisionada Perceptrons de única camada O problema da filtragem adaptativa Sistema ... Entradas x1(i) Dinâmico xm(i) x1(n) Desconhecido w1(i) w2(i) f(.) -1 ... Modelo Adaptativo para o sistema x2(n) d(i) xj(n) wj(i) v(i) y(i) d(i) ... xm(n) wk(i) e(i) Perceptrons de única camada O comportamento externo do sistema pode ser descrito por um conjunto de pontos P={x(i), d(i); i=1,2,...,n,...} x(i)=[x1(i), x2(i),..., xm(i)]T Considerando um neurônio linear (f(x)=x), a saída y(i) tem exatamente o mesmo valor de v(i) (o campo local induzido) y(i)=v(i)=xT(i) w(i) w(i)=[w1(i), w2(i),..., wm(i)]T Tipicamente, y(i) é diferente de d(i), e portanto, o resultado de sua comparação resulta em um sinal de erro: e(i)= d(i)- y(i) Perceptrons de única camada A forma pela qual o sinal de erro e(i) é utilizado para controlar os ajustes nos pesos é determinada pela função de custo utilizada para para derivar o algoritmo de filtragem adaptativa de interesse. Esta questão é fortemente relacionada a um problema de otimização matemática. A seguir apresentaremos algumas técnicas de otimização sem restrições que serão úteis no entendimento do treinamento não apenas de filtros adaptativos bem como de neurônios simples. Perceptrons de única camada Considere uma função de custo C(w) que é continuamente diferenciável com relação a um certo vetor de pesos (parâmetro) w. C(w) mapeia elementos de w em números reais é uma medida que permite escolher o vetor w de um algoritmo de filtragem adaptativa de forma que o filtro de comporte de forma ótima. O problema então se resume a encontrar uma solução ótima w* que satisfaz a condição: C(w*)<=C(w) “Minimize a função de custo C(w) com respeito ao vetor de pesos w” Perceptrons de única camada Portanto, a condição necessária para uma solução ótima é a seguinte: C(w*) 0 O vetor gradiente da função de custo é escrito da seguinte forma: C C C C (w ) , ,..., wm w1 w2 T Perceptrons de única camada Uma classe de algoritmos de otimização sem restrições que é apropriada para o projeto de filtros adaptativos é baseada no conceito de descendente iterativo (repetitivo) local: “Partindo de uma estimativa inicial w(0), gere uma seqüência de vetores de peso w(1), w(2),.., de tal forma que a função de custo C(w) é reduzida a cada iteração do algoritmo.” Ou seja, C(w(n+1)) < C(w(n)) Espera-se que o algoritmo irá eventualmente convergir para a solução ótima w* Perceptrons de única camada Método do descendente mais inclinado – – Os ajustes sucessivos aplicados ao vetor de pesos w são na direção do descendente mais inclinado, ou seja, na direção oposta ao vetor de gradiente g C (w) Assim, o algoritmo é formalmente descrito pela seguinte equação: w(n 1) w(n) g(n) – Pela equação acima, ao passar da iteração n para a n+1, o algoritmo aplica a correção: w(n) g(n) – Esta equação é na verdade uma representação mais formal da regra de correção do erro descrita anteriormente. Perceptrons de única camada Método do descendente mais inclinado – Para provar que a formulação do algoritmo do descendente mais inclinado satisfaz a condição de minimização da função de custo, é possível utilizar uma expansão de Taylor em torno de w(n) para aproximar C(w(n+1)) como: C (w(n 1)) C (w(n)) gT (n)w(n) – Substituindo na equação acima a expressão obtida anteriormente para a variação no vetor de pesos w(n) g(n) , tem-se: C (w(n 1)) C (w(n)) gT (n)g(n) C (w(n)) || g(n) ||2 – Isto mostra que para um parâmetro de aprendizagem positivo e pequeno, a função de custo diminui à medida que o algoritmo progride de uma iteração para outra Perceptrons de única camada Método de Newton Minimize passo-a-passo uma aproximação quadrática da função de custo C(w) em torno do ponto corrente w(n) – Expandindo a função de custo em termos de uma série de Taylor de 2a ordem, tem-se: 1 C (w(n)) C (w(n 1)) C (w(n)) gT (n)w(n) wT (n)H(n)w(n) 2 – Perceptrons de única camada Método de Newton – – Como antes, g(n) é o vetor gradiente da função de custo C(w) avaliada no ponto w(n). A matriz H(n) é a matriz Hessiana m-x-n de C(w), definida por: 2g 2g 2g ... 2 w w w w w 1 1 2 1 m 2 2 g g ... 2 H C (w ) w 2 w 1 w 22 ... ... ... 2 2 2 g g g ... w w w m2 m 1 w m w 2 A equação acima requer que a função de custo C(w) seja 2 vezes continuamente diferenciável com relação aos elementos de w. Perceptrons de única camada Método de Newton Ao diferenciar a expansão em série de Taylor apresentada anteriormente: 1 C (w(n)) C (w(n 1)) C (w(n)) gT (n)w(n) wT (n)H(n)w(n) 2 – com respeito a w , tem-se que a variação C (w ) é minimizada quando: – g(n) H(n)w(n) 0 – – – -1 Resolvendo esta equação para w (n) , tem-se: w(n) H (n)g(n) Em outras palavras: w(n 1) w(n) w(n) w(n) H 1 (n)g(n) A matriz Hessiana tem que ser positiva e definida para todo n. Perceptrons de única camada Método de Gauss-Newton – – – – Diferentemente do método de Newton, o qual requer o conhecmento da matriz Hessiana da função de custo, o método de Gauss-Newton requer apenas a matrix Jacobiana (transposta da matriz gradiente) do vetor de erros e(n). A função de custo é expressa como a soma dos erros quadrados: 1 n 2 C (w) e (i) 2 i 1 O sinal de erro e(i) é uma função do vetor de pesos w. Partindo-se da derivação do vetor de erros e com respeito ao vetor de pesos w, chega-se a: w(n 1) w(n) (J T (n)J (n))1 J T (n)e(n) Perceptrons de única camada Método Linear dos Mínimos Quadrados – – A função de custo também é expressa como a soma dos erros quadrados. O vetor de erros e(n) pode ser expresso como: e(n) d(n) X(n)w(n) – Ao derivar a equação acima com respeito a w(n), chega-se à matriz gradiente, que é a transposta da Jacobiana do erro: e(n) XT (n) – J (n) X(n) Substituindo a equação do vetor de erros e a Jacobiana do erro acima na equação de atualização do peso do método de Gauss-Newton, tem-se: w(n 1) ( XT (n) X(n))1 XT (n)d(n) Perceptrons de única camada Algoritmo LMS (Least-Mean-Square) Baseia-se nos valores instantâneos da função de custo: 1 2 C (w) e ( n) 2 – Derivando C(w) com relação ao vetor de pesos w, tem-se: C (w ) e(n) e( n ) w w – Dado que, num neurônio linear, o erro instantâneo pode ser expresso como: e(n) d (n) xT (n)w(n), – – tem-se que: e( n) x( n) w – Portanto: C (w) x ( n ) e( n ) w Perceptrons de única camada Algoritmo LMS (Least-Mean-Square) – Se considerarmos a derivada dos valores instantâneos de C(w) com relação ao vetor de pesos w, como sendo uma estimativa da função gradiente: C (w) x(n)e(n) gˆ (n) w – podemos então re-escrever a equação de atualização do método da descida mais inclinada como sendo: ˆ (n 1) w ˆ (n) x(n)e(n) w Perceptrons de única camada Perceptrons (Rosenblatt) – – – As técnicas de otimização apresentadas anteriormente foram desenvolvidas em torno de um neurônio linear (sem função de ativação) Perceptrons são construídos a partir de neurônios nãolineares de McCulloch-Pitts. Existe um limiar externo (bias) aplicado ao neurônio de forma que +1 é produzido se a soma de pesos vezes entradas extrapola este liminar, e –1 é produzido no caso oposto. b Classe C1 Classe C2 Superfície de decisão w1x1 + w2x2 + b = 0 Perceptrons de única camada Perceptrons (Rosenblatt) x(n) = [+1,x1(n), x2(n),..., xm(n)]T w(n) = [b(n), w1(n), w2(n),..., wm(n)]T wT x > 0 para todo vetor de entrada x pertencente à classe C1 wT x <= 0 para todo vetor de entrada x pertencente à classe C2 – Considere vetores de treinamento T1 e T2 pertencentes às classes C1 e C2, respectivamente, então: w(n+1) = w(n) se w(n)T x(n) > 0 e x(n) pertence a T1 w(n+1) = w(n) se w(n)T x(n) <= 0 e x(n) pertence a T2 Perceptrons de única camada Perceptrons (Rosenblatt) – Caso contrário, o vetor de pesos é atualizado de acordo com a regra: w(n+1) = w(n) - (n)x(n) se w(n)T x(n) > 0 e x(n) pertence a T2 w(n+1) = w(n) +(n)x(n) se w(n)T x(n) <= 0 e x(n) pertence a T1 – Prova Reconhecimento Estatístico de Padrões Um exemplo: – – – – – Considere imagens de caraceteres manuscritos a e b, representados por vetores de pixels da forma x = (x1,x2,...,xd)T. O objetivo é desenvolver um algoritmo para associar imagens (denotadas por um vetor x) a uma das duas classes de caracteres Ck, k=1,2. Apesar do problema ser simples, pode existir um número muito grande de variáveis (suponha imagens de 256x256, por exemplo). Representar numa tabela cada imagem possível juntamente com sua classe correspondente também seria uma tarefa não muito prática (28x256x256 = 10158000). Uma forma de resolver o problema da quantidade de variáveis seria através da extração de características. Reconhecimento Estatístico de Padrões Um exemplo: – – – – No exemplo dos caracteres podemos escolher z1 como sendo o quociente entre a altura e a largura do caracter. Assim, em geral caracteres b (classe C2) irão possuir valores de z1 maiores que caracteres a. A figura abaixo ilustra um histograma hipotético para a distribuição da variável z1 com relação às classes C1 e C2. Uma imagem desconhecida, cujo valor observado de z1 é A, é mais provável que pertença à classe C1. Por quê? C1 C2 A z1 Reconhecimento Estatístico de Padrões Um exemplo: – – Uma abordagem para resolver o problema inicial seria portanto construir um classificador que utiliza um limiar sobre z1 para decidir se o padrão pertence a C1 ou a C2. É possível se esperar que o número de classificações incorretas seria minimizado se o limiar for escolhido como sendo o ponto de intersecção entre os 2 histogramas. C1 C2 A z1 Reconhecimento Estatístico de Padrões Um exemplo: – – A adição de novas características para o problema dos caracteres pode permitir uma melhor separação entre as classes através da introdução de uma superfície de decisão no espaço de características. Porém, na maioria dos problemas reais de classificação uma separação ideal não é possível. z2 C1 x x x x x x x x C2 z1 Reconhecimento Estatístico de Padrões Classificação e Regressão – – – – No exemplo dos caracteres, uma imagem foi recebida como entrada e uma dentre duas classes foi associada a esta imagem. Alternativamente, é possível representar o resultado da classificação em termos de uma variável y que assume 1 quando a imagem é classificada como C1 e 0, quando classificada como C2. Generalizando esta idéia, o processo de classificação pode ser visto como um mapeamento entre um conjunto de variáveis de entrada para um conjunto de variáveis de saída. Este mapeamento é modelado em termos de alguma função matemática que contém um número de parâmetros ajustáveis, cujos valores são determinados com ajuda dos dados: yk yk (x;w) Reconhecimento Estatístico de Padrões Classificação e Regressão – – – Em problemas de classificação, a tarefa é associar novas entradas a uma dentre um conjunto discreto de classes ou categorias. Por outro lado, em problemas de regressão, as saídas representam valores de variáveis contínuas. Ambos os problemas de classificação e de regressão podem ser vistos como um caso particular de aproximação de funções: Em problemas de regressão, procuramos aproximar a função de regressão. Em problemas de classificação, procuramos aproximar as probabilidades de pertinência das diferentes classes expressas como funções das variáveis de entradas Reconhecimento Estatístico de Padrões A praga da dimensionalidade – – – – O pré-processamento pode ter uma grande influência na performance de um sistema de reconhecimento de padrões Para ilustrar isto, vamos dividir cada variável de entrada em um certo número de intervalos O valor de cada variável pode ser aproximadamente especificado dizendo em que intervalo ele se encontra Isto implica em dividir o espaço de entrada em um enorme conjunto de caixas x3 x2 x1 Reconhecimento Estatístico de Padrões A praga da dimensionalidade – – Se cada variável é dividida em M intervalos, então o número total de células é Md, onde d é a dimensão do espaço de entrada Considerando que cada célula contém pelo menos 1 ponto dos dados, isto implica que a quantidade de dados necessária para especificar o treinamento cresce exponencialmente com a dimensão d do espaço de entrada Reconhecimento Estatístico de Padrões Ajuste de uma curva polinomial – Dado um polinônio: M y( x) w0 w1 x ... wM x w j x j M j 0 – – Dado um conjunto de pontos (xn, tn) que se deseja aproximar Ajustar uma curva polinomial a estes pontos consiste em encontrar os coeficientes w0, w1,...wM que tornem y(xn) aproximadamente igual a tn, para todo n. Reconhecimento Estatístico de Padrões Ajuste de uma curva polinomial – Os procedimentos padrão de ajuste de curvas envolvem a minimização da soma dos erros quadrados entre o valor retornado pela função y(x) e os valores tn que se deseja aproximar 1 N E ( y( xn , w) tn ) 2 2 n1 Reconhecimento Estatístico de Padrões Ajuste de uma curva polinomial – Através da diferenciação da função de erro E, é possível se chegar a um conjunto de equações lineares simultâneas cuja solução são os coeficientes do polinômio que minimizam o erro M A j 1 j , j´ Aj , j´ ( xn ) j j´ n w j T j´ T j , j´ tn ( xn ) j´ n