Inteligência Artificial
3.5 Treinamento e generalização
Os sistemas de computação neural são dinâmicos e autoadaptativos. Eles são autoadaptáveis porque os elementos de processamento têm capacidade de autoajuste. São também capazes de utilizar uma “experiência” para modifica as respostas das redes em determinadas situações. São dinâmicos porque podem estar mudando constantemente para adaptar-se a novas condições, de forma a responder satisfatoriamente a novas entradas ou estímulos. Três processos compreendem a adaptabilidade dos sistemas neurais: o aprendizado o treinamento e a generalização.
3.5.1 Aprendizado
Aprendizado é a autoadaptação ao nível de elemento de processamento. No processo de aprendizado as conexões ponderadas são ajustadas para encontra resultados específicos. Através de um processo que chamamos de treinamento ou aprendizado de máquina, e que discutiremos a seguir, o sistema se adapta ajustando as conexões ponderadas entre os elementos de processamento.
Regras de aprendizagem são esquemas de atualização dos valores dos pesos
das sinapses de uma rede neural, de forma a obter da rede um padrão de processamento desejado. O processo de aprendizado pode ser feito basicamente de duas maneiras: aprendizado supervisionado ou não supervisionado. No aprendizado supervisionado, os exemplos das entradas e suas respectivas saídas (conjunto de padrões) são usados no treinamento da rede neural. Geralmente, este método se baseia na minimização do erro entre o valor desejado de saída das unidades da camada de saída e o valor computado pela rede. Baseado nessa diferença, os pesos da rede são ajustados a cada apresentação de um padrão de treinamento, de forma a minimizar o erro na saída para o conjunto total das informações fornecidas. O processo é repetido diversas vezes até que o procedimento tenha incorporado o conhecimento relativo às informações fornecidas.
No aprendizado não supervisionado, apenas os exemplos de entradas são
fornecidos no procedimento de treinamento da rede neural em questão. As unidades respondem a características de “interesse” das entradas apresentadas no processo de treinamento. Este tipo de treinamento está intimamente ligado a topologias de redes com conexão competitiva.
3.5.2 Treinamento
Treinamento é o modo pelo qual o sistema computacional neural aprende a respeito da informação que ele necessitará, a fim de resolver certos problemas O treinamento envolve a exposição do sistema a um conjunto específico de
informações para encontrar um estado de auto-organização particular. Hebb
(1949) introduziu a conceituação básica neste contexto. Sua ideia consistia no fato de que, se um neurônio biológico recebe uma entrada de outro neurônio e ambos se encontram altamente ativados, então, a ligação entre eles é reforçada. Aplicando-se esta observação ao esquema de Redes Neurais Artificiais poderíamos dizer que se uma unidade i recebe uma entrada de outra unidade k altamente ativada, então, a importância desta conexão deve ser aumentada, isto é, o valor do peso entre as unidades deve ser acrescido. A maneira mais simples de se representar matematicamente esta relação é por
intermédio da equação (3.1), onde O é a saída da unidade i, O é a saída da i k unidade k e Δw é a alteração a ser feita no peso Wik que liga a unidade k à ik
unidade i.
(3.1)
Entretanto, se as duas unidades tiverem saídas negativas, isto também
causará o aumento do peso entre elas e esta reação não combina com a
proposição realizada por Hebb. A equação (3.1) foi estendida e modificada na
forma de (3.2), conhecida como regra de Hebb generalizada.
(3.2)
A equação (3.1) pode ser vista como um caso particular da equação (3.2)
onde as funções g e h simplesmente dependem do primeiro argumento, sendo o parâmetro η igual a 1 (o parâmetro η é denominado taxa de aprendizagem) Outras variações desta regra geral foram propostas.
Uma regra de aprendizado importante, que pode ser vista como uma
variante da equação (3.2), é chamada processo de correção do erro. Nesse procedimento supervisionado, o algoritmo de aprendizado consiste em alterar o valor do peso entre unidades numa forma proporcional à diferença entre a saída desejada e a computada pela rede. Esta ideia, só pode ser aplicada diretamente a uma rede de camada simples, já que no caso de existirem camadas escondidas, o valor desejado não é conhecido. Em sua forma mais
simples, esta relação é matematicamente descrita pela equação (3.3).
(3.3)
Esta regra pode ser vista como uma variação particular da regra
generalizada de Hebb (equação (3.2)). Neste caso, a função g é expressa como a diferença entre o valor desejado e o valor computado pela rede, enquanto a função h é definida como sendo igual ao valor de entrada (independente do
valor do peso). A equação (3.3) pode ser generalizada, a fim de poder ser aplicada a redes de multicamadas. Esta generalização chama-se regra de retropropagacão (back-propagation).
Outras regras de treinamento foram desenvolvidas, como, por exemplo, a
Estocástica e a Competitiva.
3.5.3 Generalização
Um dos principais problemas do treinamento é a capacidade de generalização isto é, a capacidade da rede de responder adequadamente a padrões que não fizeram parte do conjunto de treinamento. Além da habilidade de aprendizado os sistemas computacionais neurais são também capazes de generaliza informações específicas de entrada para produzir uma solução de saída. Ao se fornecida uma entrada que não foi apresentada anteriormente, o sistema deve ser capaz de generalizar esta entrada para fornecer uma resposta correspondente. Este conceito é muito importante, porque permite que o sistema ofereça soluções, mesmo quando as informações de entrada são incompletas ou imprecisas. A topologia, o tamanho da rede e a forma de executar o treinamento da rede são bastante determinantes na sua capacidade de generalização. A rede é dita bem generalizada quando a relação entrada saída aprendida no treinamento é representativa do problema. Por sua vez uma rede dita supertreinada pode não apresentar uma boa capacidade de generalização. A regularidade do mapeamento está associada a uma boa generalização. Ao adicionarmos complexidade ao modelo, por exemplo utilizando um modelo mais complexo ao invés de um modelo mais simples estamos aumentando a possibilidade de obter uma generalização pobre. Por ser demasiadamente complexo, o modelo capta excessivos detalhes dos dados de treinamento em detrimento de propriedades mais gerais.
Nas redes neurais os parâmetros principais a serem estimados são os pesos
e, assim, quanto mais camadas e número de neurônios nas camadas ocultas houver, mais complexo será o modelo resultante. Quanto menor a quantidade de dados, mais simples deve ser o modelo. Em geral, haverá generalização na
condição dada por (3.4).
(3.4)
Onde:
Por exemplo, se o erro admitido é de 10%, o número de exemplos deve se
maior que 10 × W. Para evitar que o treinamento se especialize em relação aos dados para os quais uma rede está sendo treinada, utiliza-se um conjunto de dados de validação, que não contribui para o treinamento. Esse conjunto é usado para medir a capacidade de generalização. Os dados desse conjunto, que tipicamente possui 20% ou 30% do tamanho do conjunto de dados de treinamento, são usados para validar a rede obtida até aquela iteração. Isso é feito comparando-se os erros em uma determinada iteração (época de treinamento) do conjunto de treinamento e do conjunto de validação. Os pesos das ligações são modificados durante o treinamento de forma a minimizar o erro para os padrões apresentados. Se a quantidade de padrões apresentados é suficientemente representativa da função, a tendência durante o treinamento é que o erro, tanto do conjunto de padrões de treinamento quanto do conjunto de padrões de validação, vá diminuindo à medida que a rede vá generalizando o
aprendizado, como ilustrado no gráfico da Figura 3.10.
FIGURA 3.10 Treinamento de uma RNA.
Entretanto, após certo tempo, o erro do conjunto de validação atinge um
mínimo e começa a crescer, enquanto o erro do conjunto de treinamento continua a cair, indicando uma tendência da rede de incorporar informações que são específicas do conjunto de treinamento, tal como, por exemplo, os erros de medidas daquele conjunto. Uma solução é parar o treinamento quando a tendência de erro do conjunto de validação começa a divergir da tendência do conjunto de treinamento. Dessa forma, o conjunto de treinamento é usado para modificar os pesos enquanto o conjunto de validação é usado para estimar a capacidade de generalização.
Outra abordagem para evitar o excesso de treinamento é limitar a
capacidade da rede de absorver as correlações espúrias entre os dados de entrada. Isto acontece basicamente quando a rede possui mais graus de liberdade (que são proporcionais ao número de ligações) do que o número de padrões de treinamento. Assim, o problema da generalização está diretamente ligado ao problema do dimensionamento da rede. Ou seja, basicamente a ideia é conseguir a menor rede que acomode as informações contidas no conjunto de dados de treinamento. O problema é justamente estimar qual é esse tamanho mínimo que permite que a rede ainda aprenda sem incorporar os dados espúrios do conjunto de treinamento. A abordagemé simples, embora bastante ineficiente, consiste em executar várias redes de diversos tamanhos e verificar qual é a rede mínima que consegue aprender os padrões de entrada Mesmo que seja possível determinar a menor rede por este processo, ainda se fica muito susceptível aos parâmetros de treinamento, de forma que pode ser muito difícil determinar se a rede é muito pequena para aprender os padrões se ela apenas aprende lentamente ou se devido a valores de iniciação ou parâmetros de treinamento mal-escolhidos o procedimento caiu em algum mínimo local. A abordagem escolhida por vários autores, e que trataremos mais à frente neste capítulo, parte do princípio comum de iniciar o treinamento com uma rede maior do que o necessário e ir podando (removendo) partes da rede que não sejam necessárias. Como inicialmente a rede é grande, possui graus de liberdade suficientes para acomodar rapidamente as características gerais dos dados de entrada de uma forma pouco sensível às condições iniciais e a questões de mínimos locais. Após a acomodação inicial, então a rede pode ser podada de forma a elimina características específicas do conjunto de treinamento, favorecendo os critérios desejáveis de generalidade.