Skip to content

08. Rede Neural

Leonardo Azzi Martins edited this page Dec 4, 2021 · 1 revision

A rede neural artificial, mais conhecida apenas como rede neural, é um tipo de inteligência artificial (AI) baseado no sistema nervoso de animais. Ela simula o funcionamento de neurônios e suas interações, sendo capaz de interpretar dados, co-relacioná-los e computar as saídas adequadas, mesmo com entradas complexas e de difícil análise. Isso é possível por meio do treinamento das redes neurais, onde se “ensina” à rede quais são as saídas desejadas para cada entrada de dados.

Após fazer isso com alguns conjuntos de entradas e saídas de dados pré-definidos, a rede consegue interpretar conjuntos de dados diferentes do que ela foi treinada e computar os valores corretos de saída desejados. Por conta disso, as redes neurais são uma ferramenta extremamente poderosa para a solução de tarefas complexas, como a que pretende-se realizar com o projeto, o controle do joelho da prótese a partir de variáveis do movimento da coxa do usuário.

Existem diversos tipos de redes neurais, tendo foco em diferentes tipos de tarefas. Existem redes neurais focadas em predição de comportamento, reconhecimento de padrões, respostas de uma variável em relação ao tempo, dentre outras. No atual estágio de desenvolvimento do projeto, o tipo que demonstrou melhor resultado foi a rede neural de predição temporal de entrada-saída não-linear. Este tipo de rede neural leva em conta uma dada quantidade de entradas anteriores para calcular sua saída, sendo especialmente útil no controle de sistemas com dados com constante variação e difícil interpretação. O sistema utiliza 50 neurônios e leva em conta a entrada atual e as 5 entradas anteriores de cada variável, e apresenta um resultado bastante satisfatório, com erro médio de aproximadamente ±1,7 graus, ou seja, um erro menor que a precisão do encoder.

Para a atual implementação, primeiro foi feita uma pesquisa sobre como funcionam as Redes Neurais Artificiais. Logo após aprendemos a utilizar o software MATLAB, que é uma poderosa ferramenta para análise de dados e desenvolvimento de métodos de controle. Utilizamos então uma das toolboxes nativas do MATLAB para começar a simular redes neurais. Começamos utilizando o tipo mais simples de rede neural, utilizado para predição em amostras estáticas, porém este tipo não obteve desempenho satisfatório.

Partimos então para as Redes Neurais de séries em tempo (time series) e estas se mostraram bem mais aptas à tarefa. Começamos os testes pela rede Neural Auto Regressiva com entrada eXógena (NARX), que teve excelente desempenho. Todavia, ao tentar colocar essa rede num uso real, esta não teve bom desempenho, pois dependia de valores anteriores à sua inicialização para funcionar corretamente. A rede neural de entrada-saída não linear, por sua vez, teve um bom desempenho nos testes, mas foi inferior à NARX. Entretanto, ela foi aplicada com grande sucesso em uma situação real, sendo a escolhida para a utilização na prótese.