UFCG/CEEI/DSC, Prof. Herman, Redes Neurais 2011.1, Prova1, 24/3/2011 - Gabarito 1) Assinale com um X as características abaixo que não se aplicam a Redes Neurais Artificiais, justificando em seguida a sua escolha (2.0): a(X) Pouca generalização. Justificativa: Considerado uso de uma amostra representativa da população para treinamento e observado um critério de parada (como o uso de um conjunto de validação) que previna o overfitting, a capacidade de generalização é uma das características mais importantes das redes neurais; b(X) Aprendizagem realizada a partir de observações simbólicas. Justificativa: na verdade as entradas e saídas de uma rede neural típica (e.g. MLP) precisam ser necessariamente numéricas. c(X) Facilidade de expressão do conhecimento adquirido. Justificativa: O conhecimento adquirido é representado sob a forma de pesos de conexões entre os neurônios da rede. Assim não fica evidente a sua expressão numa forma inteligível por seres humanos (como por exemplo, regras de decisão). d( ) Tolerância a falhas. 2) Sobre as redes MLP backpropagation: (a) Como ocorre a aprendizagem de redes MLP-BP? Procure explicar os passos básicos do algoritmo. Em linhas gerais, como se pode chegar (formalmente) a esse algoritmo? (2.0) R:O algoritmo MLP-BP possui 2 passos essenciais que são iterados até que se tenha atingido um critério de parada do treinamento (como o número máximo de iterações, o máximo erro admissível, dentre outros). Após inicializada a rede neural com pesos aleatórios pequenos, o primeiro passo (forward) propaga as entradas de treinamento, camada a camada, efetuando-se os cálculos de ativação dos neurônios (soma ponderada de pesos por entradas e aplicação da função de ativação) até que se atinja a camada de saída. As diferenças entre os valores obtidos nos neurônios da camada e os valores das saídas desejadas, correspondem aos erros da rede neural para aquele padrão de treinamento. No segundo passo (backward) esses erros são propagados da camada de saída em direção à camada de entrada, ao mesmo tempo em que os pesos das conexões entre os neurônios são ajustados para minimizar tais erros. Para neurônios na camada de saída, a regra de atualização considera a derivada da função de ativação, a taxa de aprendizagem e a diferença entre saída real e desejada (erro). Para neurônios nas camadas escondidas, a fórmula é similar, mas o erro é calculado como sendo a soma ponderada dos erros estimados na camada seguinte e os pesos das conexões eferentes daqueles neurônios de camada escondida. A derivação formal de algoritmos de treinamento para redes neurais usualmente parte da minimização de uma função custo calculada a partir do erro global associado às unidades de saída e padrões de treinamento. (b) O que são problemas linearmente separáveis e inseparáveis, e qual a sua relação com redes de Perceptrons? (1.0) R:Problemas linearmente separáveis são problemas de classificação de padrões que podem ser resolvidos a partir de uma superfície de decisão linear. Para os problemas linearmente inseparáveis, não é possível fazer a separação dos padrões através de uma superfície de decisão linear. Perceptrons de simples camada estão limitados a resolver problemas linearmente separáveis enquanto que os de múltiplas camadas podem ser utilizados em problemas linearmente inseparáveis, dado que a propagação dos padrões pelas várias camadas permite a construção superfícies de decisão que combinam múltiplas superfícies lineares. 3) Qual a importância de incorporar invariâncias ao projeto de Redes Neurais? Escolha e explique 2 das 3 estratégias apresentadas a seguir (2.0). (a) Invariância por estrutura; (b) Invariância por treinamento; (c) Espaços de características invariantes. R: A principal importância é simplificar a tarefa de aprendizagem, podendo acelerar a convergência do treinamento, e aumentar a capacidade de generalização das redes treinadas. (a) 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. (b) Um subconjunto das possíveis transformações que um vetor de entrada pode sofrer é apresentado durante o treinamento. Uma estratégia muito útil quando é difícil se derivar um modelo para os dados, porém gera overhead computacional e variações de treinamento precisam ser fornecidas para cada nova classe. (c) Os padrões de entrada são mapeados em um espaço de características que não sofre grandes mudanças na presença de variações nos padrões de entrada de uma mesma classe, servindo para redução da dimensão do espaço de entrada e simplificando a arquitetura da rede neural, porém pode gerar overhead computacional. 4) Escolha e explique 2 das seguintes potenciais áreas de aplicação das redes neurais artificiais (2.0): a) Classificação de padrões; b) Agrupamento/categorização; c) Aproximação de funções; d) Previsão; e) Otimização. R: (a) Objetos do problema (espaço de observação) são descritos através de vetores de características (espaço de características) os quais, através de um processo de aprendizagem, são mapeados em um conjunto pré-definido de classes (espaço de decisão). (b) A tarefa é explorar semelhanças entre padrões e agrupar padrões parecidos numa mesma classe. Também conhecido como aprendizado não supervisionado, uma vez que as classes não são conhecidas de antemão. (c) O objetivo é encontrar uma aproximação f’ de uma função desconhecida f a partir de um processo de aprendizagem que recebe como entrada um conjunto de pares de entrada-saída representativos da função f {(x1y1), (x2y2), ..., (xnyn)}. (d) Dado um conjunto de exemplos {(y(t1), (y(t2),..., (y(tn)}, a tarefa é prever a saída y(.) no instante de tempo tn+1. (e) A tarefa é encontrar a solução para um problema que satisfaça a um conjunto de restrições tal que uma função objetivo seja maximizada ou minimizada. 5) Comente sobre os dados necessários para o treinamento/validação de uma rede neural artificial. Mais especificamente, discuta o que se pode dizer sobre o tamanho dos dados de treinamento e quantidade de características, as principais estratégias de pré-processamento, além da necessidade de divisão dos dados em subconjuntos (1.0). R: Os dados para o treinamento/validação de uma rede neural artificial precisam ser uma amostra representativa da população que descreve o problema a ser resolvido. Quanto maior a complexidade de um problema, maior será a quantidade de dados. Quanto maior o tamanho do vetor de características representando cada objeto desta amostra, maior precisará ser o tamanho do conjunto de treinamento pois o espaço de possíveis combinações de valores cresce exponencialmente com o aumento do número de características de entrada (curse of dimensionality). As principais estratégias de pré-processamento podem ser resumidas em: conversão de valores simbólicos para valores numéricos; estimativa de valores ausentes e normalização de valores numéricos. Normalmente, os conjuntos de dados são divididos em subconjuntos de treinamento/ validação/teste. O primeiro serve para cálculo do erro e ajuste dos pesos entre as unidades. O segundo, auxilia na decisão de quando parar o treinamento - tipicamente testando se o erro de aproximação do conjunto de validação atingiu um patamar desejável. O propósito deste critério de parada é evitar o overfitting ou super especialização da rede neural, que ocorre quando o erro de aproximação do conjunto de treinamento é muito pequeno, mas perde-se o controle em pontos da função que não estão sendo treinados (dado que tipicamente uma rede neural representa uma função matemática com muitos parâmetros livres). Por último, o conjunto de teste serve para avaliar o poder de generalização da rede numa amostra não treinada em função de sua precisão e taxas de erro. As proporções mais usadas para esses 3 conjuntos são 50, 25 e 25%, respectivamente.