1 of 12

TMEC163 - Programação em Python e Aplicações em Aprendizagem de Máquina

Aulas 11 e 12

Prof. Eduardo L. O. Batista

eduardo.batista@ufsc.br ebatista@ieee.org

www.linse.ufsc.br/ebatista

2 of 12

Aprendizagem de Máquina:

Redes Neurais Artificiais

3 of 12

Aprendizagem Supervisionada

  • Neurônio artificial moderno
    • Também chamado de “perceptron”, apesar de suas diferenças (pequenas) em relação ao perceptron original.
      • Entradas: x1 a xM
      • Pesos: w0 a wM, sendo que w0 é o termo de bias
      • Função de ativação: f (.), tipicamente sigmóide logística ou ReLu (mas existem várias outras)

w0

w1

w2

wM

x1

x2

xM

+

f (.)

y

4 of 12

Aprendizagem Supervisionada

  • Redes Neurais Artificiais (Artificial Neural Networks - ANNs)
    • Obtidas agrupando vários neurônios em camadas (multi-layer perceptron - MLP)
    • Camadas classificadas como entrada, saída ou escondidas (hidden).
    • Exemplo:
    • Cada círculo corresponde a um perceptron:

w0

w1

w2

wM

x1

x2

xM

+

f (.)

y

5 of 12

Aprendizagem Supervisionada

  • Redes Neurais Artificiais (Artificial Neural Networks - ANNs)
    • Obtidas agrupando vários neurônios em camadas (multi-layer perceptron - MLP)
    • Camadas classificadas como de entrada, saída ou escondidas (hidden).
    • Estruturas não-lineares com grande capacidade de generalização.
    • Podem ser usadas tanto para regressão quanto para classificação.
    • Nas entradas geralmente são colocados os atributos.
    • Podem ter múltiplas saídas: em classificação por exemplo, é comum termos uma saída para cada uma das classes consideradas.

6 of 12

Aprendizagem Supervisionada

  • Redes Neurais Artificiais (Artificial Neural Networks - ANNs)
    • Obtidas agrupando vários neurônios em camadas (multi-layer perceptron - MLP)
    • Camadas classificadas como de entrada, saída ou escondidas (hidden).
    • Estruturas não-lineares com grande capacidade de generalização.
    • Deep learning: envolve redes profundas que possuem várias camadas escondidas.
    • Classicamente, camadas são completamente conectadas (fully-connected layers), mas existem variações, como as convolutional layers (que dão nome às convolutional neural networks).

7 of 12

Aprendizagem Supervisionada

  • Redes Neurais Artificiais (Artificial Neural Networks - ANNs)
    • Treinamento comumente realizado usando algoritmo backpropagation ou variantes.
    • A ideia do backpropagation é “propagar” o gradiente da função custo da saída para a entrada da rede (usando a regra da cadeia da derivada) e assim permitir o treinamento, via gradient descent, dos pesos das diferentes camadas.
    • Trata-se então de gradient descent learning e, assim, temos que tomar cuidado com escolha de passo de aprendizagem, padronização dos dados de entrada, overfitting, etc…

8 of 12

Aprendizagem Supervisionada

  • Exercício 1: Usando MLP como classificador para o Iris Dataset
    1. Utilize um sklearn.neural_network.MLPClassifier para fazer a classificação entre os tipos disponíveis no Iris Dataset. Inicialmente, não faça a separação do dataset em teste/treinamento e escolha apenas dois atributos. Utilize diferentes configurações de camadas escondidas e funções de ativação até obter um score alto. A ideia aqui é ver a separação não-linear de classes usando plot_decision_regions.
    2. Trabalhe agora com os 4 atributos e ajuste o classificador até obter score=1.0 (ou seja, 100% de acerto), o que vem ao custo também de um forte overfitting. A ideia é demonstrar a capacidade de modelagem do classificador.
    3. Separe agora o seu dataset em treinamento (70% dos dados) e teste (30%) usando sklearn.model_selection.train_test_split. Faça a modelagem com o dataset de treinamento e avalie com o conjunto de teste. Trabalhe com o parâmetro alpha (intensidade da regularização por norma L2) de forma a obter um modelo com boa capacidade de generalização (ou seja, com bons resultados também para o conjunto de teste).

9 of 12

Aprendizagem Supervisionada

  • Exercício 2: Usando MLPClassifier para identificação de posicionamento indoor a partir de sinais de WiFi. O arquivo wifi_localization.csv contém um dataset para tal finalidade. As amostras em tal dataset contém as intensidades de sinal de 7 redes WiFi (P1 a P7) além da indicação da sala (1 a 4) onde estava o aparelho que fez a medição de tais intensidades.
    • Use o MLPClassifier para criar o identificador de sala (localizador indoor). Para tal, faça a divisão do dataset em treinamento e teste visando verificar a efetividade do modelo. Verifique também se a padronização dos dados de entrada tem ou não efeito sobre os scores obtidos.
    • Faça a análise de desempenho do classificador obtido a partir da matriz de confusão, a qual pode ser calculada usando sklearn.metrics.confusion_matrix e visualizada usando mlxtend.plotting.plot_confusion_matrix.

10 of 12

Aprendizagem Supervisionada

  • Exercício 3: Usando MLP como classificador para o Faulty Steel Plates Dataset (faults.csv). Mais informações sobre tal dataset em:�https://www.kaggle.com/uciml/faulty-steel-plates�Consulte as informações lá disponíveis e faça a classificação correspondente, a qual envolve identificação de defeitos em placas de aço a partir de atributos (em sua maioria geométricos) obtidos a partir de imagens das placas defeituosas.

11 of 12

Aprendizagem Supervisionada

  • Exercício 4: Usando MLP como regressor para o Energy Efficiency Dataset, disponível em:�https://archive.ics.uci.edu/ml/datasets/Energy+efficiency�Consulte as informações lá disponíveis, baixe o dataset, e crie um modelos de regressão para as variáveis y1 (heating load) e y2 (cooling load).

12 of 12

Aprendizagem Supervisionada

  • Exercício 5: Trabalhando com CIFAR-10 (dataset de imagens) e MLPs.
    • Acesse https://www.cs.toronto.edu/~kriz/cifar.html e estude as características do dataset CIFAR-10.
    • Baixe tal dataset e coloque em seu GDrive.
    • Usando MLPClassifier, crie um classificador que faça distinção entre duas classes diferentes de imagens disponíveis na CIFAR-10.
    • Teste o seu classificador usando o conjunto de testes já disponível na CIFAR-10.
    • Trabalhe então com mais classes da CIFAR-10, visando fazer classificadores capazes de classificar diferentes tipos de imagens.