OTIMIZAÇÃO DA FUNÇÃO SENO OBTIDA PELO MODELO FUZZY DE SUGENO USANDO O MÉTODO DOS MÍNIMOS QUADRADOS

Embed Size (px)

Citation preview

  • OTIMIZAO DA FUNO SENO OBTIDA PELO MODELO

    FUZZY TSK USANDO O MTODO DOS MNIMOS QUADRADOS

    Antnio talo Rodrigues Pedrosa. E-mail: [email protected]

    Ps-Graduao em Engenharia Mecnica pelo Instituto Militar de Engenharia

    1. Modelo Takagi-Sugeno-Kang

    O sistema de inferncia difusa (FIS) um modelo de computao popular baseado

    nos conceitos da teoria de conjuntos difusos; regras se ento difusas; e lgica difusa. A

    estrutura bsica de um sistema de inferncia difusa consiste em trs componentes

    conceituais: a base de regras, que contm uma seleo de regras fuzzy; uma base de

    dados, que define as funes de pertinncia usadas nas regras fuzzy; e um mecanismo

    lgico, que realiza o procedimento de inferncia sobre as regras que resultaro na sada

    ou concluso (Jang J.-S. R., 1997).

    Takagi, Sugeno e Kang definiram o mtodo TSK, consistindo em uma abordagem

    sistemtica para gerar regras fuzzy baseada em um conjunto de dados de entrada (input)

    e sada (output), seguindo:

    (1)

    onde A e B so conjuntos fuzzy do antecedente, e z uma funo crisp do

    consequente. Quando essa funo representa uma polinomial de primeira ordem,

    chama-se de Modelo Fuzzy TSK de primeira ordem. Quando essa funo assume

    valores constantes, ela chamada de Modelo Fuzzy de ordem-zero.

    Cada funo crisp ter um output crisp, dessa forma, o output obtido para cada

    input ser dado pela mdia ponderada de cada uma das sadas, na forma:

    (2)

    em que wn representa o grau de ativao de cada um dos outpus obtidos. Na

    maioria das vezes, opta-se por trabalhar com funes normalizadas, aquelas em que a

    soma dos graus de ativao seja igual a 1, com isso simplifica-se sua forma mais

    usual:

    (3)

    Dessa forma, obtm-se outputs de forma crisp, ou seja, a resposta de sada no se

    apresenta como um conjunto fuzzy, que permite trabalhar melhor com esses dados, o

    que torna o mtodo TSK o mais utilizado nas ferramentas de otimizao.

    2. Mtodo dos Mnimos Quadrados

    Na maioria dos problemas de mnimos quadrados, a sada do modelo linear y

    dado pela expresso de parametrizao linear:

    (4)

  • onde u = [u1, ... , up]T o vetor de entrada do modelo, f1 , ... , fn so funes

    conhecidas de u, e 1, ... , n so parmetros conhecidos a serem estimados. Essa funo conhecida como funo de regresso e os n so conhecidos como coeficientes de regresso (Jang J.-S. R., 1997).

    Com isso, procura-se estimar os parmetros desconhecidos. Para tanto, deve-se

    realizar experimentos que retornem o campo de dados output para cada input. O que

    significa que ser obtido um valor yn para cada valor de un, na forma:

    {

    (5)

    Esse procedimento pode ser reescrito como uma multiplicao de matrizes na

    forma:

    (6)

    em que A chamada de matriz design e representa o conjunto de funes a ser

    otimizadas, seguindo como:

    [

    ]

    (7)

    e o vetor de parmetros desconhecidos sendo:

    [

    ]

    (8)

    e por fim o vetor y representada pelos outputs:

    [ ]

    (9)

    Para identificar os parmetros desconhecidos, deve-se resolver a Eq. 6, que

    ficaria:

    (10)

  • No entanto, para a maioria dos experimentos realizados, existem muito mais

    inputs que funes a ser otimizadas, por isso, agrega-se erros soluo encontrada,

    retornando a forma:

    (11)

    Dessa forma, o erro encontrado na forma:

    (12)

    O mtodo dos mnimos quadrados consiste em minimizar a soma dos quadrados

    de cada erro encontrado para os inputs, assim, o mtodo se torna

    (13)

    A soluo para a minimizao desse problema se d por:

    (14)

    3. Aplicao do algoritmo

    3.1 Sada com funes de pertinncia triangulares

    O algoritmo implantado para o mtodo de mnimos quadrados foi totalmente

    adequado para o software MATLAB.

    O objetivo do problema proposto o de encontrar uma aproximao para os

    valores da funo senide no intervalo de 0 a 2. Chamaremos de Y a esses valores, e esse intervalo ser analisado em pontos que variam de 0,1.

    Pela Eq. 3, obtm-se os outputs relativos ao modelo TSK apresentado. Deve-se

    ento definir as funes de pertinncia () que sero adotadas.

    Sero utilizadas cinco funes triangulares com o comando trimf do prprio MATLAB.

  • O script acima representa as funes de pertinncia, que podem ser analisadas

    pelo grfico gerado.

    Figura 1 Funes de Pertinncia Triangulares

    Esse grfico (Fig. 1) mostra as pertinncias triangulares para cinco ngulos

    diferentes e normalizadas.

    A matriz design da Eq. 7 que se deseja otimizar ser dada pelas funes de

    pertinncia para cada ngulo, como segue:

    Esses valores sero otimizados para que se aproximem do esperado em Y, que

    representa o seno real. Utiliza-se a Eq. 14 para isso, considerando uma varivel P como

    0 1 2 3 4 5 6 70

    0.1

    0.2

    0.3

    0.4

    0.5

    0.6

    0.7

    0.8

    0.9

    1

    Gra

    us d

    e P

    ert

    inncia

    Graus em Radiano

    a1: x = 0

    a2: x = /2

    a3: x =

    a4: x = 3/2

    a5: x = 2

  • sendo a pseudo-inversa da matriz design, TETA o vetor de parmetros desconhecidos apresentado na Eq. 6 e Y_ como o resultado otimizado pelo processo. Assim:

    O mtodo do LSE (Last Square Estimator), possui um erro agregado, que pode

    ser comparado pelo processo de diferena quadrtica dos termos. Para isso, foi criado o

    arquivo SOMAQUAD.m no MATLAB que realizar a soma do quadrado da diferena

    de cada termo do seno real com o seu respectivo mtodo.

    Com essa funo criada, podemos ver na tela qual o erro associado a cada uma

    das curvas e avaliar o resultado da otimizao, seguindo:

    O script retornar no prompt de comando o valor encontrado para a margem de

    erro do mtodo LSE. Nesse caso, foi encontrado o valor de 0.367615. Analisando o

    grfico da figura 2 originado pelo script acima, percebe-se que a curva obtida tende a se

    aproximar do valor real do seno, mas com certa discrepncia, pois constituda por um

    conjunto de retas sem suavizao nos seus picos, o que afasta o resultado

    principalmente nos pontos caractersticos da curva, os mximos.

  • Figura 2 - Seno Real e o Seno encontrado por TSK Triangular

    3.2 Sada com funes de pertinncia gaussianas

    Para otimizar o processo, optou-se por funes de pertinncia mais suaves, para

    que os outputs se aproximassem da senoidal, reduzindo o erro encontrado. Assim, as

    novas funes de pertinncia sero definidas como:

    Utilizando os mesmos pontos caractersticos, optou-se por cinco curvas

    gaussianas onde o desvio-padro () vale

    , resultando no grfico mostrado na Figura 3,

    utilizando os script abaixo:

    0 1 2 3 4 5 6 7-1.5

    -1

    -0.5

    0

    0.5

    1

    1.5

    seno Real

    seno TSK Otimizado

  • Figura 3 Funes de Pertinncia Gaussianas

    Apesar de aprimorar os resultados de sada, percebe-se graficamente que as novas

    funes de pertinncias no encontram-se normalizadas. Nesse contexto, deve-se

    utilizar a Eq. 2 na sua forma natural. Com isso, faz-se necessrio conhecer o valor do

    somatrio do denominador apresentado em cada ponto, que pode ser escrito como:

    em que S corresponde ao vetor associado ao somatrio do denominador, resultando na

    matriz A apresentada pelo script.

    O processo para otimizao por LSE continua o mesmo, com o clculo da pseudo-

    inversa e o produto dos parmetros encontrados pela matriz design. A curva otimizada

    por esse procedimento pode ser vista na Figura 4.

    Com a mudana nas funes de pertinncia, pode-se perceber que o erro se torna

    muito pequeno, valendo 0.0141932 para o valor de sugerido.

    0 1 2 3 4 5 6 70

    0.1

    0.2

    0.3

    0.4

    0.5

    0.6

    0.7

    0.8

    0.9

    1

    Gra

    us d

    e P

    ert

    inncia

    Graus em Radiano

    a1: x = 0

    a2: x = /2

    a3: x =

    a4: x = 3/2

    a5: x = 2

  • Figura 4 Seno Real e o Otimizado com TSK Gaussiano

    3.3 Sada com funes de pertinncia de primeira ordem

    Uma soluo proposta por Takagi, Sugeno e Kang foi a de se utilizar outputs

    como funes lineares de primeira ordem, chamado de modelo fuzzy TSK de primeira

    ordem, para que se obtivesse uma preciso ainda maior, dessa forma, o valor encontrado

    para a sada ser na forma:

    (15)

    Que resulta em uma sada global como:

    (16)

    em que B representa a soma de todos os wibi para cada funo de pertinncia

    sugerida. Com isso, deve-se encontrar mais um parmetro de otimizao para o sistema,

    levando-se em considerao que se trata de uma constante, pode-se represent-lo

    acrescentando um valor unitrio na matriz design. Assim, para o modelo que utiliza

    funes gaussianas como graus de ativao, o script segue na forma:

    em que o ltimo elemento adicionado corresponde a

    .

    0 1 2 3 4 5 6 7-1

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    seno Real

    seno TSK Otimizado

  • Realizando o procedimento de otimizao LSE, obtm-se um erro de 0.00124372,

    e uma curva mostrada na Figura 5.

    Figura 5 - Seno Real e o Otimizado de Primeira Ordem Gaussiano

    O mesmo procedimento pode ser utilizado para funes de pertinncia

    triangulares normalizadas, em que a matriz design se apresenta como:

    Encontra-se um erro associado de 0.975803 e uma curva como mostrada na

    Figura 6.

    0 1 2 3 4 5 6 7-1

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    seno Real

    seno TSK Otimizado

  • Figura 6 - Seno Real e o TSK de Primeira Ordem Triangular

    4. Toolbox MATLAB

    4.1 Funo TSK triangular

    O MATLAB possui uma toolbox que permite modelar sistemas difusos com

    regras lgicas simples, implementando essas regras no sistema de inferncia de estudo.

    Para isso, basta que se digite o comando fuzzy no prompt de comando do software. Na

    janela que se abre, possvel escolher entre os mtodos de defuzificao Mamdani ou

    Sugeno, como apresentado na Fig. 7.

    Pode-se ento, conseguir a curva referente aos graus de pertinncia apresentados

    anteriormente. Primeiramente, foi utilizada a funo triangular de pertinncia nos

    ngulos de

    , apresentando-se como na Fig. 8. Obviamente, esse o

    mesmo grfico visto na Fig. 1, j que se tratam das mesmas funes, utilizando os

    mesmos pontos e mesmo intervalo.

    O prximo passo definir os outputs, que representam os valores do seno para

    cada um dos ngulos escolhidos nas funes de pertinncia, sendo ento -1, 0 e 1. Cada

    um desses valores ser o output para a funo quando o ngulo tiver pertinncia

    mxima. Esses valores foram nomeados como negativo, zero e positivo,

    respectivamente, como pode ser visto na Fig. 9.

    Com todos os parmetros definidos, deve-se implementar as regras para cada uma

    das funes de pertinncia, como dito anteriormente, fazendo cada entrada corresponder

    sada ponderada pelos graus de pertinncia, mostrado na Fig. 10.

    Por ltimo, possvel conferir a curva adquirida pelo mtodo na opo surface da

    toolbox para comparar com a senoidal esperada. O resultado apresentado na Fig. 11 e

    pode-se perceber que se assemelha curva da Fig. 2, porm, sem a otimizao realizada

    pelo mtodo do LSE.

    0 1 2 3 4 5 6 7-1.5

    -1

    -0.5

    0

    0.5

    1

    1.5

    seno Real

    seno TSK Otimizado

  • Figura 7 Inputs, mtodo e outputs pela toolbox do Matlab

    Figura 8 Funes de Pertinncia Triangulares

  • Figura 9 Outputs para o TSK triangular

    Figura 10 - Regras no modelo TSK triangular

  • Figura 11 Curva obtida pelo TSK triangular

    4.2 Funo TSK gaussiana

    Repetindo o mesmo procedimento, podemos utilizar a funo de pertinncia

    gaussiana, da mesma forma como foi realizado anteriormente. Tambm utilizando cinco

    funes de pertinncia, e o igual a

    , representa-se pela figura 12.

    Foram utilizados os mesmos outputs e regras, assim como o mtodo de

    defuzificao tambm foi mantido. Dessa forma, a curva apresentada pode ser

    visualizada na Fig. 13. Nota-se pela figura, que a curva se aproxima ainda mais da

    senoidal e daquela apresentada na Fig. 4, mas sem a otimizao.

  • Figura 12 Funes de pertinncia gaussianas

    Figura 13 Curva obtida pelo TSK gaussiano

  • 5. Modelo Mamdani

    Outro mtodo de defuzificao utilizado o Mamdani FIS, que trata mais

    facilmente de regras de controle lingusticas. Esse um sistema de inferncia que

    calcula o output com base na rea obtida pelos grficos de sada do modelo.

    Existem cinco mtodos de defuzificao, sendo: o centroide da rea, o bissetor da

    rea, a mdia do mximo, menor dos mximos e maior dos mximos. Nesse trabalho,

    foi escolhido o centroide da rea para o clculo do output, sendo apresentado como:

    (17)

    que pode ser visualizado na Fig. 14.

    Figura 14 Representao do centroide calculado pelo Mamdani FIS

    5.1 Mamdani pelo toolbox do Matlab

    O toolbox do MATLAB pode resolver sistemas Mamdani da mesma forma que j

    foi apresentado. Para os inputs triangulares, utilizando os mesmos parmetros de

    entrada, foi definido que a sada tambm seria da mesma forma, triangular (nesse caso,

    os ngulos foram apresentados em graus. Os parmetros de sada tambm foram

    mantidos como -1, 0 e 1. Esse output pode ser visualizado na Fig. 15.

    A representao da resposta em funo de cada entrada pode ser visualizado em

    rules, como apresentado na Fig. 16, e a resposta da defuzificao apresentada em

    surface, como na Fig. 17.

  • Figura 15 Output Mamdani triangular

    Figura 16 Centroide da funo triangular

  • Figura 17 Curva encontrada pelo Mamdani triangular

    O mesmo mtodo foi utilizado em funes gaussianas para analisar a suavizao

    da curva, e verificar se o resultado se aproxima da senoidal. Assim, os parmetros e

    resultados so apresentados a seguir. Nota-se pela curva apresentada que h uma

    aproximao da funo seno, mas ainda existe um erro associado considervel.

  • Figura 18 Outputs Mamdani gaussiana

    Figura 19 Centroide da funo gaussiana

  • Figura 20 Curva encontrada pela gaussiana