8
Curso: Bacharelado em Sistemas de Informação Disciplina: Inteligência Artificial Professor: Paulo Cesar Fernandes de Oliveira, BSc, PhD Unidade 08 – MATLAB Neural Network Toolkit 1. Introdução Uma rede neural artificial (NN daqui em diante) é um modelo matemático que consiste de neurônios interconectados que imitam, em uma escala menor, a forma que um neurônio biológico funciona. Uma NN possui a habilidade de aprender a partir dos dados, tanto de uma maneira supervisionada ou não supervisionada e pode ser usada em tarefas tais como regressão, classificação, agrupamento e outros. Um neurônio típico é mostrado na Figura 1. As entradas escalares p i são transmitidas por meio de conexões que multiplicam sua força pelo peso escalar w i para formar o produto escalar w i p i . Todas as entradas ponderadas w i p i são somadas (i.e. w i p i ) com mais uma constante chamada tendência (i.e. bias) b.O resultado é o argumento da função de transferência f, que produz a saída a. Este bias é como se fosse um peso, exceto que é uma entrada constante de valor 1. Figura 1: neurônio artificial com n entradas e bias Observe que w i e b i são parâmetros escalares ajustáveis do neurônio. A ideia central das redes neurais é que tais parâmetros podem ser ajustados para que ela exiba ou mostre algum comportamento interessante e desejado. Portanto, você pode treiná-la para fazer um determinado trabalho ajustando os parâmetros peso e bias, ou talvez a rede por si só irá ajustá-los para alcançar algum fim desejado. As funções de transferências mais usadas e comuns são a hard-limit (ou step), a linear e a sigmoide (ou logística), ilustradas na Figura 2. Figura 2: funções de transferências mais usadas: hard-limit (esquerda), linear (centro) e sigmoide (direita)

Unidade 08 – MATLAB Neural Network Toolkit · central das redes neurais é que tais parâmetros podem ser ajustados para que ela exiba ou mostre algum comportamento interessante

Embed Size (px)

Citation preview

Page 1: Unidade 08 – MATLAB Neural Network Toolkit · central das redes neurais é que tais parâmetros podem ser ajustados para que ela exiba ou mostre algum comportamento interessante

Curso: Bacharelado em Sistemas de Informação Disciplina: Inteligência Artificial Professor: Paulo Cesar Fernandes de Oliveira, BSc, PhD

Unidade 08 – MATLAB Neural Network Toolkit

1. Introdução Uma rede neural artificial (NN daqui em diante) é um modelo matemático que consiste de neurônios interconectados que imitam, em uma escala menor, a forma que um neurônio biológico funciona. Uma NN possui a habilidade de aprender a partir dos dados, tanto de uma maneira supervisionada ou não supervisionada e pode ser usada em tarefas tais como regressão, classificação, agrupamento e outros. Um neurônio típico é mostrado na Figura 1. As entradas escalares pi são transmitidas por meio de conexões que multiplicam sua força pelo peso escalar wi para formar o produto escalar wipi. Todas as entradas ponderadas wipi são somadas (i.e. ∑ wipi) commais uma constante chamada tendência (i.e. bias)b. Oresultadoéoargumentodafunçãodetransferênciaf,queproduzasaídaa.Estebiasécomosefosseumpeso,excetoqueéumaentradaconstantedevalor1.

Figura 1: neurônio artificial com n entradas e bias Observe que wi e bi são parâmetros escalares ajustáveis do neurônio. A ideia central das redes neurais é que tais parâmetros podem ser ajustados para que ela exiba ou mostre algum comportamento interessante e desejado. Portanto, você pode treiná-la para fazer um determinado trabalho ajustando os parâmetros peso e bias, ou talvez a rede por si só irá ajustá-los para alcançar algum fim desejado. As funções de transferências mais usadas e comuns são a hard-limit (ou step), a linear e a sigmoide (ou logística), ilustradas na Figura 2.

Figura 2: funções de transferências mais usadas: hard-limit (esquerda), linear

(centro) e sigmoide (direita)

Page 2: Unidade 08 – MATLAB Neural Network Toolkit · central das redes neurais é que tais parâmetros podem ser ajustados para que ela exiba ou mostre algum comportamento interessante

Curso: Bacharelado em Sistemas de Informação Disciplina: Inteligência Artificial Professor: Paulo Cesar Fernandes de Oliveira, BSc, PhD

A arquitetura de NN mais comuns consiste de vários neurônios organizados em camadas (i.e. layers). Cada neurônio em uma camada é conectado a todos os outros neurônios da próxima camada. Pode-se distinguir entre camada de entrada, saída e escondida. Existe somente uma cada de entrada e uma de saída onde mais de uma camada escondida é permitida. Note também que é comum o número de entradas de uma camada seja diferente do número de neurônios. Algumas definições que você deve estar ciente é:

• Regras de aprendizado: procedimentos para modificar os pesos e bias de uma rede, ou seja, métodos de obtenção das próximas alterações que podem ser feitas em uma NN.

• Treinamento: procedimento onde uma rede é, na verdade, ajustada para fazer um determinado trabalho.

Existem duas categorias de regras de aprendizado: supervisionado e não supervisionado. No supervisionado a rede é provida com um conjunto de exemplos (conjunto de treinamento) do próprio comportamento da rede (i.e. pares de entrada e saída correta/conhecida (target)). Como as entradas são aplicadas à rede, as saídas calculadas são comparadas aos targets. A regra de aprendizado é então usada para ajustar os pesos e biases da rede a fim de mover as saídas próximas aos targets. No aprendizado não supervisionado, os pesos e biases são modificados em resposta às entradas somente. Não existe targets de saída disponível. Para objetivos de treinamento, os dados de entrada são divididos em três conjuntos:

• Treinamento: usado para ajustamento dos pesos e biases; • Validação: usado para decidir quando parar o processo de treinamento,

para evitar o sobreajustamento (overfitting), que é uma situação onde a rede memoriza os dados de treinamento, ao invés de aprender a lei que os governa;

• Teste: usado para medir a performance da rede treinada – é importante que estes dados não participem do processo de treinamento.

As formas de mais comuns de NN são os perceptrons multicamadas, os mapas auto-organizados (SOM ou Redes de Kohonen), e as memórias associativas (também conhecidas como Redes de Hopfield). 2. NN e Matlab O Matlab provê uma toolbox chamada Neural Network, que é um conjunto de ferramentas que inclui GUIs, wizards e funções que permitem qualquer nível de

Page 3: Unidade 08 – MATLAB Neural Network Toolkit · central das redes neurais é que tais parâmetros podem ser ajustados para que ela exiba ou mostre algum comportamento interessante

Curso: Bacharelado em Sistemas de Informação Disciplina: Inteligência Artificial Professor: Paulo Cesar Fernandes de Oliveira, BSc, PhD

usuário (do aprendiz ao experiente) usar e experimentar redes neurais com um mínimo de esforço. A maneira mais fácil de usar a toolbox é por meio das GUIs que executam certas tarefas. Neste tutorial, vai-se ver as seguintes tarefas:

• Ajuste de função / regressão; • Reconhecer padrões / classificação; • Agrupar dados.

A segunda maneira mais fácil de usar a toolbox é por meio de operações de linha de comando. Tais operações oferecem mais flexibilidade do que as GUIs, mas com alguma complexidade acrescentada. Nos exercícios seguintes você verá todos os passos concernentes ao uso de NN para resolver problemas de regressão, classificação e agrupamento. Tais passos incluem: coleta de dados, criação da rede, configuração da rede, inicialização dos pesos e biases, treinamento, validação e uso da rede. Note, entretanto, que você não pode usar qualquer tipo de rede para qualquer tipo de problema. Os conjuntos de dados usados foram obtidos da Escola de Ciência da Computação e Informação da Universidade da Califórnia em Irvine (Repositório de Base de Dados de Aprendizado de Máquina) [1]. Eles estão disponíveis em: ftp://ftp.ics.uci.edu/pub/machine-learning-databases/ 3. Exercício #1: Ajustamento / Regressão de uma função Problema: usando dados de um pedido de financiamento imobiliário [1], queremos projetar uma rede que possa prever o valor de uma casa (em milhares de dólares), dadas 13 informações geográficas de imóveis. O conjunto de dados consiste de 506 exemplos de casas (i.e. registros) para as quais temos 13 itens de dados e seus valores de mercado associados. O arquivo encontra-se em: ftp://ftp.ics.uci.edu/pub/machine-learning-databases/housing/ O arquivo housing.data contém os dados enquanto que o arquivo housing.names descreve os dados. Tome seu tempo para familiarizar-se com os arquivos. Quanto melhor você os conhece, melhor será sua compreensão sobre a modelagem da rede.

Page 4: Unidade 08 – MATLAB Neural Network Toolkit · central das redes neurais é que tais parâmetros podem ser ajustados para que ela exiba ou mostre algum comportamento interessante

Curso: Bacharelado em Sistemas de Informação Disciplina: Inteligência Artificial Professor: Paulo Cesar Fernandes de Oliveira, BSc, PhD

Siga os passos abaixo para executar o tutorial. 1) Abra a Neural Network Toolbox Fitting Tool com o comando: nftool 2) Clique no botão Next para prosseguir

3) Clique o primeiro botão para carregar o arquivo houseInputs.txt como parâmetro de entrada e o segundo para carregar o arquivo houseTargest.txt parâmetro alvo (target). Você deve folhear o arquivo no ImportWizard para verificar se os arquivos estão devidamente reconhecidos. (Caso esteja tudo OK, clique o botão Next duas vezes e depois o botão Finish).

Page 5: Unidade 08 – MATLAB Neural Network Toolkit · central das redes neurais é que tais parâmetros podem ser ajustados para que ela exiba ou mostre algum comportamento interessante

Curso: Bacharelado em Sistemas de Informação Disciplina: Inteligência Artificial Professor: Paulo Cesar Fernandes de Oliveira, BSc, PhD

4) Clique no botão Next para mostrar a caixa de diálogo Validation and Test

Data mostrada abaixo. Aqui você pode selecionar a porção do conjunto de dados original que será usada para validação e teste. Deixe os valores padrões de 15% para validação e teste.

5) Clique no botão Next. O número de neurônios escondidos (hidden neurons)

deve ser 20 para este exercício. Você pode alterar este valor em outro ciclo de processamento, caso queira. Deve-se mudá-lo caso a rede não tenha um desempenho como você espera.

Page 6: Unidade 08 – MATLAB Neural Network Toolkit · central das redes neurais é que tais parâmetros podem ser ajustados para que ela exiba ou mostre algum comportamento interessante

Curso: Bacharelado em Sistemas de Informação Disciplina: Inteligência Artificial Professor: Paulo Cesar Fernandes de Oliveira, BSc, PhD

6) Clique no botão Next para ver uma sinopse da situação. Aparecerá a caixa de

diálogo abaixo (Train Network); e então clique no botão . A partir de agora você conhece a situação. Observe que o ajustamento (fit) é quase perfeito para os dados de treinamento, teste e validação.

7) Observe que na caixa de diálogo aparece alguns dados a mais no lado

direito e o botão é alterado para , caso você deseja treiná-la novamente. Veja a figura abaixo.

Page 7: Unidade 08 – MATLAB Neural Network Toolkit · central das redes neurais é que tais parâmetros podem ser ajustados para que ela exiba ou mostre algum comportamento interessante

Curso: Bacharelado em Sistemas de Informação Disciplina: Inteligência Artificial Professor: Paulo Cesar Fernandes de Oliveira, BSc, PhD

8) Clique no botão Next da janela Neural Network Toolbox Fitting Tool. A caixa

de diálogo Evaluate Network irá aparecer a fim de que você avalie a rede (ver figura abaixo). Neste ponto, você pode testá-la novamente com novos dados (usando os controles em cima à direita).

9) Caso não esteja satisfeito com a performance da rede em relação aos dados originais e/ou novos, você pode executar um dos seguintes passos (usando os botões à esquerda):

• treinar a rede novamente;

• aumentar o número de neurônios;

• obter um conjunto de dados maior.

10) Se estiver satisfeito com a performance da rede, clique no botão Next e a

caixa de diálogo Deploy Solution será exibida (ver figura abaixo). Nesta caixa aparecerão opções mais avançadas para se criar funções para serem usadas no modo linha de comando. Se você quiser se aprofundar neste assunto, procure inúmeras fontes de consulta que tratam sobre ele.

Page 8: Unidade 08 – MATLAB Neural Network Toolkit · central das redes neurais é que tais parâmetros podem ser ajustados para que ela exiba ou mostre algum comportamento interessante

Curso: Bacharelado em Sistemas de Informação Disciplina: Inteligência Artificial Professor: Paulo Cesar Fernandes de Oliveira, BSc, PhD

11) Se estiver satisfeito com a performance da rede, clique no botão Next para ir

para a caixa de diálogo Save Results mostrada abaixo. Você pode usar os botões desta tela para salvar seus resultados. Caso queira, clique no botão Simple Script para criar um arquivo (M-File) que pode ser usado para reproduzir todos os passos anteriores a partir da linha de comando. A criação deste arquivo pode ser útil se você quiser aprender a utilizar a funcionalidade de linha de comando para personalizar o processo de treinamento. Quando tiver salvo os seus resultados, clique em Finish.