• Nenhum resultado encontrado

2 Conceitos Preliminares

2.3.1 Aprendizado supervisionado

Em Aprendizado de Máquina, uma classificação supervisionada é uma função que faz com que seja possível construir um estimador através de um conjunto de dados de exemplo rotulados. Por [Faceli et al. 2011], uma etiqueta pode tornar os valores conhecidos de um determinado domínio. Se este domínio é um conjunto de dados de valor nominal, que é um problema de classificação, neste caso, um estimador é conhecido como classificador. Os classificadores supervisionados necessários para o desenvolvimento desta tese estão descritos a seguir.

2.3.1.1 Árvore de Decisão

A árvore de decisão é um método de aprendizagem baseado nas decisões e leva um objeto ou situação descrita por um conjunto de atributos como entrada e retorna uma decisão de acordo como previsto para a entrada. Uma característica sobre seus atributos consiste em ser discreto ou contínuo.

Este classificador (Árvores de Decisão ) concentra-se, principalmente, na classificação booleana, onde cada exemplo é classificado como verdadeiro (positivo) ou falso (negativo). Segundo [Russell e Norvig 2009], uma árvore de decisão toma a sua decisão através da realização de uma sequência de testes. Cada nó da árvore interna corresponde a um valor de teste de uma das propriedades, e os ramos do nó estão rotulados com os valores possíveis do teste. Cada nó de folha na árvore especifica o valor a ser retornado se aquela folha seja atingida. A representação da árvore de decisão parece ser muito natural para os seres humanos.

Por exemplo, a Figura 16 mostra um predicado Will Wait. Neste problema de aprendizagem, em primeiro lugar, é necessário saber quais atributos estão disponíveis para descrever esse domínio. Esses atributos são: Alternate (Alternativo), Bar, Fri/Sat (sexta/sábado), Hungry (faminto), Patrons (Frequentar), Price (preço), Raining (chovendo), Reservation (reservar), Type (tipo) and WaitEstimate (estimativa de espera). Estes termos encontram-se descritos em [Russell e Norvig 2009]. Outra característica da árvore de decisão é a expressividade. Neste exemplo (Figura 16), WaitEstimate, é construído o predicado que pode ser visto como uma afirmação da forma:

Figura 16: Uma árvore de decisão para decidir se espera por uma mesa.

[Russell e Norvig 2009]

∀sW illW ait(s) ⇔ (Pl(s) ∨ P2(s) ∨ ... ∨ Pn(s)) (2.1)

Onde cada condição Pl(s) é um conjunto de ensaios correspondentes a um caminho a

As árvores de decisão são totalmente expressivas dentro da classe de linguagens proposicionais e, em outras palavras, qualquer função booleana pode ser escrita como uma árvore de decisão e um algoritmo de uma árvore de decisão pode ser encontrada em [Russell e Norvig 2009].

Características

De acordo com [Faceli et al. 2011], existem algumas características positivas sobre árvores de decisão, dentre elas:

• Flexibilidade: A árvore é muito flexível, porque assume qualquer distribuição de conjunto de dados.

• Robustez: Em uma árvore de decisão univariada em cada nó, apenas um recurso é usado e por isso a sensibilidade de distribuição é reduzida;

• Interpretabilidade: as decisões globais e complexos pode ser aproximada por alguma decisão mais simples e local;

• Eficiência: A árvore de decisão é um algoritmo guloso e isso significa que ele usa a estratégia de dividir e conquistar, e que sua complexidade de tempo é linear com vários exemplos.

Mais detalhes sobre as características positivas pode ser visto em [Faceli et al. 2011]. Por outro lado, as características negativas são:

• Replicação: É possível encontrar uma sequência duplicada em diferentes ramos de uma árvore de decisão. Isto pode levar a uma representação não concisa;

• Valores ausentes: Um valor em falta para um atributo faz com que um problema sobre o qual ramos ela deve seguir;

• Atributo contínuo: As árvores de decisão têm grande desempenho com atributos discretizadas. No entanto, o conjunto de dados tem atributos contínuos. Portanto, é necessário executar uma operação de ordenação e isso pode levar uma grande quantidade de tempo;

• Instabilidade: Pequenas variações no conjunto de dados podem produzir variações maiores na árvore de decisão final.

2.3.1.2 K-Nearest-Neighbor (kNN)

Estes tipos de algoritmos são baseados na similaridade entre os elementos do mesmo domínio. Este método, de acordo com [Russell e Norvig 2009], é conhecido como aprendizagem baseada em instâncias. A ideia principal do K-Nearest-Neighbor é que as propriedades de qualquer ponto de entrada x tende a ser semelhante aos de pontos na vizinhança de x. Um exemplo típico pode ser encontrado em [Russell e Norvig 2009], onde uma solução é definir qual bairro é grande o suficiente para incluir uma quantidade k pontos, onde k é grande o suficiente para garantir uma estimativa significativa. A Figura 17 (gráfico 2-D) mostra o exemplo em duas dimensões de um conjunto de valores, onde deseja-se encontrar os 10 vizinhos mais próximos. Neste caso, os vizinhos mais próximos são escolhidos de acordo com menor distancia para um determinado tamanho de conjunto de vizinhos. Além disso, também é possível utilizar a ideia de vizinho mais próximo para a aprendizagem supervisionada direta.

Figura 17: Uma sub amostra de 128 pontos de dados, juntamente com dois pontos de consulta e os seus k vizinhos mais próximos.

[Russell e Norvig 2009]

Características

De acordo com o [Faceli et al. 2011], existem algumas características positivas sobre K-NN, que são:

• Um algoritmo simples para treinar (apenas armazena objetos); • É possível aplicá-lo em um problema complexo;

• Baseia-se a aproximação de locais diferentes de meta funções para cada dados recém inseridos.

Em contraste, algumas as características negativas podem ser:

• Espaços de alta dimensão representam um problema adicional, ou seja, os vizinhos mais próximos em grandes espaços estão geralmente muito longe um do outro. • Existe um problema quando um conjunto de dados tem uma grande quantidade de

exemplos, ou seja, quanto a dimensionalidade do problema. Neste, caso, algoritmos baseados nos vizinhos mais próximos, em frente a um espaço de alta dimensão, ou seja, não é possível, para o algoritmo rejeitar ou não rapidamente um ponto candidato utilizando a diferença de uma coordenada como um limite inferior para uma distância k com base em todas as dimensões do conjunto.

2.3.1.3 Redes Neurais

A principal motivação para utilizar um modelo de cérebro humano para Redes Neurais vem da alta complexidade sobre como o cérebro funciona. As Redes Neurais tentam representar o elemento cérebro humano em elementos computacionais. Por exemplo, um neurônio pode ser representado como um neurônio artificial chamado LTU (Logic Threshold Unit). De acordo, [Faceli et al. 2011], a combinação de grandes neurônios artificiais pode produzir um grande poder computacional. Após este pequeno contexto pode-se definir alguns componentes de redes neurais.

O elemento mais importante em Redes Neurais é a unidade de processamento, que também é conhecido como Neurônio artificial, que calcula as funções matemáticas e é disposta em camadas (ver Figura 18), que estão ligados de uma forma unidirecional. Além disso, o neurônio artificial tem uma grande quantidade de conexões.

Para cada conexão entre os neurônios artificiais (diferentes camadas) há um peso que pode ter valores positivos ou negativos. O peso pode ser ajustado através de um processo de aprendizagem. Conforme [Faceli et al. 2011] uma Rede Neural (RN) pode ser caracterizada pela:

• Arquitetura: A arquitetura de uma RN é definida por cada terminal de entrada que recebe um valor, e estes valores são equilibrados e combinados por fa uma função

Figura 18: Um modelo matemático simples para um neurônio. Ativação de saída da unidade é ai = g(Pnj=0(Wj,iaj)), onde ai, é a ativação da unidade de saída i e Wj é

o peso sobre a ligação da unidade j para esta unidade.

[Russell e Norvig 2009]

é uma resposta para essa entrada. Outras funções diferentes podem também ser usadas. Duas opções para g são mostradas na Figura 19: a função de limiar e a função sigmoide (também conhecido como a função logística). A função sigmoide tem a vantagem de ser diferenciável que, tal como será mostrado mais adiante, é importante para o algoritmo de aprendizagem de peso. A Figura 20 mostra uma arquitetura multicamadas para uma Rede Neural.

Figura 19: (a) A função de ativação limiar, que gera 1 quando a entrada é positivo e 0 caso contrário. (Às vezes, a função de sinal é usado em vez disso, que gera ±i, dependendo do sinal de entrada.) (b) A função sigmoide 1

(1+e−x).

[Russell e Norvig 2009]

Nas redes neurais multicamadas, as ligações entre os neurônios podem apresentar diferentes padrões de conexão. Eles podem ser totalmente, parcialmente e localmente ligados.

• Aprendizagem: De acordo com [Faceli et al. 2011], assumimos alguns parâmetros sobre a aprendizagem da rede neural que possibilita o uso da rede neural. Existem alguns algoritmos encontrados na literatura para ajustar esses parâmetros. Estes algoritmos podem ser divididos em quatro grupos. Primeiro, correção de erros, que é utilizado na classificação supervisionada e encontra ajustamento para o peso

Figura 20: Um exemplo de rede neural multicamadas.

[Russell e Norvig 2009]

de ligação de modo a reduzir os erros de rede. A segunda baseia-se na teoria Hebbiana onde, se dois neurônios são ativados ao mesmo tempo, suas ligações estão ativas e devem ser aumentadas. Outro grupo é o competitivo, onde ele é usado em uma classificação não supervisionada e promove uma competição para saber qual neurónio será ajustado. Finalmente, a Boltzmann, que representa um outro modelo de aprendizagem baseado em ideias da mecânica estatística. Deste modo, uma rede neural base da regra de aprendizado de Boltzmann tem os neurônios constituídos de uma rede recorrente, sempre operando em modo binário (on = 1 e off = 0). A principal característica é que ela executa os exemplos de treinamento através da uma rede de cada vez, ajustando os pesos um pouco após cada exemplo para reduzir o erro. Cada ciclo através dos exemplos é chamado de época. Épocas são repetidas até que algum critério de paragem seja alcançado tipicamente e que as alterações de peso tornem-se muito pequenas.

Características

De acordo com [Russell e Norvig 2009] se uma rede neural é muito grande, ela será capaz de memorizar todos os exemplos, mas não necessariamente, ser generalizada para as entradas que não foram observadas antes. No entanto, as redes neurais são capazes de realizar tarefas complexas de aprendizagem, é claro, embora deva-se dizer que uma certa quantidade de generalidade é necessária para obter a estrutura de rede para convergir para algo próximo ao ideal no espaço de peso.

2.3.1.4 Naive Bayes

O classificador Naive Bayes é um modelo probabilístico de dados dentro de cada classe. Desta forma, é possível utilizar o Naive Bayes para informações imprecisas ou incompletas (valores de atributos). Basicamente, o Naive Bayes usa os métodos probabilísticos que assumem a probabilidade do evento A (Evento A pode ser uma classe) da ocorrência do evento B não depender do relacionamento que projeta A e B, mas esta probabilidade depende de uma observação independente de B. A ocorrência de B pode ser estimada pela observação da frequência na ocorrência de outro evento. Desta forma, é possível estimar a probabilidade de ocorrência B para cada classe A (P (A|B)). A questão “Como determinar a probabilidade de um evento A quando ocorre o evento B?”. O teorema de Bayes pode encontrar (P (A|B)) através desta equação 2.3.1.4:

P (A|B) = P (A ∩ B)

P (B) (2.2)

Segundo [Blanco et al. 2005], Naive Bayes constrói a sua classificação a partir do pressuposto de condicional e se esta suposição é violada em várias ocasiões em domínios reais, este fato não degrada o desempenho do paradigma em muitas situações. A Figura 21 mostra uma representação da estrutura de um Bayes ingênuo. Desta forma, os classificadores Naive Bayes utilizam a independência condicional entre os atributos. Existem vários algoritmos, como por exemplo, o Naive Bayes: Selective Naive Bayes [Friedman, Geiger e Goldszmidt 1997], Semi naive Bayes [Pazzani 1997], o classificador K-dependence Bayesian (kDB) [Sahami 1996] e o Tree Augmented naive Bayes (TAN) [Friedman, Geiger e Goldszmidt 1997] que são pensados especificamente para problemas de classificação supervisionado.

Figura 21: Representação do classificador Naive Bayes

Características

O Naive Bayes de acordo com [Faceli et al. 2011] apud [Kononenko 1991], é um algoritmo robusto frente ao ruído e atributos irrelevantes. Portanto, o desempenho Naive Bayes não diminui com atributos irrelevantes.