Aprendizagem Automática
Transcript of Aprendizagem Automática
Aprendizagem Automática
Aprendizagem SupervisionadaAprendizagem Não Supervisionada
Aula anterior
Redes NeuronaisMétodos de aceleração de Redes
Neuronais
Aprendizagem Supervisionada
Dado um conjunto de exemplos, será que é possível descobrir o padrão que os gera? Exemplo simples:
Exemplo Céu Temp. Humid Vento Mar Prev Sair?
1 Limpo Calor Normal Forte Quente Estável Sim
2 Limpo Calor Alta Forte Quente Estável Sim
3 Nublado Frio Alta Forte Quente Instável Não
4 Limpo Calor Alta Forte Frio Instável Sim
5 Chuva Frio Alta Forte Quente Instável ?
Valores
Valores possíveis, por atributo
Céu Temp Húmid. Vento Mar Prev
Limpo Calor Normal Forte Quente Estável
Nublado Frio Alta Fraco Frio Instável
Chuva
Pre-processamento
Discretizar, quantificar, normalizar …
Exemplo Céu Temp. Humid Vento Mar Prev Sair?
1 Limpo / 1 Calor / 1
Normal / 0 ? 0.5
Forte / 1 Quente / 1
Estável / 1
Sim / 1
2 Limpo / 1 Calor / 1
Alta / 1 Forte / 1 Quente / 1
Estável / 1
Sim / 1
3 Nublado / 0.5 ? 2
Frio / 0 Alta / 1 Forte / 1 Quente / 1
Instável / 0
Não / 0
4 Limpo / 1 Calor / 1
Alta / 1 Forte / 1 Frio / 0 Instável / 0
Sim / 1
5 Chuva / 0 Frio / 0 Alta / 1 Forte / 1 Quente / 1
Instável / 0
?
Quantização Vectorial (Learning Vector Quantization)
Descobrir o padrão/exemplo mais parecido com o que queremos classificar
Atribuir ao novo exemplo a mesma classe Problemas:
definir “parecido” não é muito fiável quando há “ruído”
... Usar representantes/protótipos (1 por classe)(semelhante à Aprendizagem Competitiva, ... mas o representante é aproximado se a classificação é correcta e afastado caso contrário)
(L)VQ: (Learning) Vector Quantization Usado com sucesso na compressão de dados e
classificação de documentação.
K-Nearest Neighbours (K-NN)
Descobrir os K padrões mais semelhantes ao que queremos classificar
Seleccionar uma classe de entre os padrões conhecidos (como? média? votação?)
Problemas: novamente: definir a distância, definir o modo de selecção, algumas dificuldades com problemas
não lineares
Case-Based Reasoning (matéria de IA)
Semelhante ao K-NN, mas … Não guarda todos os exemplos, antes cria “casos-
padrão”: Quando um padrão de entrada “está incluído” num “caso”
guardado, é ignorado; Quando um padrão de entrada “é semelhante” a um “caso”
guardado, o caso é estendido para incluir o novo padrão; Quando um padrão de entrada “não é semelhante” a nenhum
“caso” guardado, é criado um novo caso; Tipicamente tem valores de entrada/saída
complexos (e.g. grafos); Permite “combinar” valores de saída de vários
exemplos de um modo complexo; Implementação sempre intimamente ligada a um
domínio.
Aprendizagem Supervisionada
Exemplo Céu Temp. Humid Vento Mar Prev Sair?
1 Limpo Calor Normal Forte Quente Estável Sim
2 Limpo Calor Normal Forte Quente Estável Sim
3 Nublado Frio Alta Forte Quente Instável Sim
4 Limpo Calor Alta Forte Frio Instável Não
5 Chuva Frio Alta Forte Quente Instável Não
6 Chuva Frio Alta Fraco Quente Instável Sim
Sair = (Previsão == Limpo E Humidade == Normal) OU (Previsão == Nublado) OU (Previsão == Chuva E Vento == Fraco)
Árvores de Decisão(Decision Trees)
Céu
HumidadeVento
Limpo Nublado Chuva
Normal AltaForte Fraco
Sim
SimNãoSim Não
Sair = (Previsão == Limpo E Humidade == Normal) OU (Previsão == Nublado) OU (Previsão == Chuva E Vento == Fraco)
A cada nó está associado, durante o treino, o conjunto de exemplos que é classificado por este nó
Decision Trees: Construção
Qual o atributo que melhor separa as instâncias numa decisão booleana?
Entropia(S) = - p+ log2 (p+) - p- log2 (p-)
S : Conjunto de exemplos de um conceito
p+ : Percentagem de exemplos positivos
p- : Percentagem de exemplos negativos
Decision Trees: Construção
Quanto mais equilibrado o conjunto (p+ = p-), maior a entropia, i.e. menor a probabilidade de prever de que classe é um exemplo tirado ao acaso.
Entropia
0
0,2
0,4
0,6
0,8
1
1,2
0,001 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,999
Percentagem +
Decision Trees: Construção
Entropia relativa à classificação em c partes, com base num atributo com c valores diferentes (pretende-se minimizar a entropia):
X : Conjunto de exemplos de um conceito (e.g. “Sair?”)
c: nº de valores possíveis para o conceito api : Percentagem de exemplos em que: a =
vi
c
iii ppXEntropia
1
)log()(
Ganho de informação
Ganho de informação de um atributo a em relação a um conjunto X:
v: valores possíveis para aXv: Subconjunto de X em que o valor
de a é igual a v|X|: nº de elementos de X
v
vv
X
XEntropiaXXEntropiaaXG
)()(),(
ID3
ID3(Exemplos, Atributo-Alvo, Atributos) Criar a raíz
▪ Se p+ = 1: raíz = +▪ Se p- = 1: raíz = -▪ Se Atributos = Ø, raíz = valor mais comum do alvo em exemplos
A <- Atributo que melhor classifica os exemplos de acordo com o ganho de informação
Raíz = A Para cada valor (v) possível de A:
▪ Adicionar novo ramo A = v▪ Exemplosv = Conjunto de exemplos em que A=v
▪ Se Exemplosv = Ø: adicionar ramo com valor mais comum do alvo em Exemplosv▪ senão ramo = ID3(Exemplosv, Atributo-Alvo, Atributos – {A})
C4.5/C5.0
Semelhante ao ID3, mas … Atributos contínuos: cria uma série de classes
para um atributo contínuo dividindo o seu domínio em partes [Quinlan, 96]
Permite a utilização quando há valores em falta: não são usados no cálculo da entropia.
Permite que os atributos tenham custos diferentes.
Remoção (a posteriori) de nós que não são úteis.
[Quinlan, 96] J. R. Quinlan. Improved use of continuous attributes in c4.5. Journal of Artificial Intelligence Research, 4:77-90, 1996.
Aprendizagem Competitiva *Competitive Learning [Rumelhart and Zipser 85]
Criar N representantes ao acaso Para cada exemplo: Calcular o representante mais próximo “Aproximar” o representante do exemplo
(só um pouco) Enquanto os representantes “mudarem
muito de posição” do início para o fim da “época”, voltar ao ponto 2 (ou número fixo de épocas).
*Termo usado para designar um sub-grupo dos algoritmos de aprendizagem não-supervisionada, este em particular é uma versão iterativa do algoritmo de Lloyd (também conhecido como K-Means, um dos mais comuns nesta área).
Aprendizagem Competitiva
Seja X = {x1, x2, x3, … xn} o conjunto de exemplos
E c1, c2, … cm (n >> m) os representantes (inicializados aleatoriamente)
Para cada exemplo (xi): Calcular distância (1) Seleccionar o centro mais próximo: ck
(2) Aproximar ck de xi (3)
Enquanto mudar (4)
Aprendizagem Competitiva
(1)* distância
(2) mais próximo
(3) aproximar
(4) paragem
ikk xcc )1(
2)(),( j
ejijei cxcxd
c
),(minarg eie
cxdk
i
ki cxn
c )(1
)( kikk cxcc
* Podem ser usadas outras medidas de distância (por exemplo nº de atributos diferentes)
Mapas Topológicos, Self-Organizing Maps [Kohonen 90]
Semelhante à aprendizagem competitiva, mas:
Cada classe tem um conjunto de vizinhos,
Os vizinhos são alterados progressivamente menos de acordo com a distância
Mapas Topológicos
))(( ,,, nvinvnv cxncc
)1()(,0, nncc kv kc
1,vc
1,vc
1,vc
1,vc
ix
2,vc
2,vc
2,vc
2,vc
2,vc
2,vc
2,vc
2,vc
Classificação não-supervisionada
Imagens: Dendrogram. (2008, August 19). In Wikipedia, The Free Encyclopedia. Retrieved 12:30, September 16, 2008, from http://en.wikipedia.org/w/index.php?title=Dendrogram&oldid=232979561
Dendrograma (dendro = árvore)
3 classes
4 classes
2 classes
6 classes
DadosDistância proporcional ao número de atributos diferentes
Classificação por agrupamento
Single link: distância entre conjuntos é a menor das distâncias entre os elementos
Complete link: distância entre conjuntos é a maior das distâncias entre os seus elementos
CobWeb [Fisher 87] – Utilidade de categoria
Utilização
Aprendizagem Não Supervisionada: procura de padrões em dados sem etiquetas;
No Pré-processamento de dados: É (quase) sempre necessário/útil
Aprendizagem Competitiva: Raramente usada, mas é base de outros algoritmos;
Mapas Topológicos: Quando há relações entre as classes;
K-Means: Quando sabemos distribuições que geraram dos dados;
PCA: Redução da dimensão dos dados, perdendo o mínimo de informação possível;
Conceptual Clustering (CobWeb e outros): Quando o conceito a gerar e as relações entre aglomerados são fundamentais na análise e a semelhança entre padrões obedece a regras complexas.
(Mitchell 97) Tom Mitchell, "Machine Learning", McGraw Hill, 1997, capítulos 2, 3 e 8
R. Duda and P. Hart. Pattern Classification and Scene Analysis. Wiley & Sons, Inc, 1973.
"Self-Organizing Maps and Learning Vector Quantization for Feature Sequences", P. Somervuo and T. Kohonen, Neural Processing Letters, 10(2), 1999, pp. 151-159.
J.R. Quinlan, Induction of Decision Trees, Machine Learning, vol. 1, no. 1, pp. 81-106, 1986.
Giorgio Ingargiola, Building Classification Models: ID3 and C4.5, Computer and Information Science Department, Temple University, Philadelphia.
Referências-base
35AA/ML, Luís Nunes, DCTI/ISCTE
Referências
Some Competitive Learning Methods, Bernd Fritzke, Systems Biophysics Institute for Neural Computation, Ruhr-Universität Bochum, April 5, 1997
Hinton, G. E. and Salakhutdinov, R. R Reducing the dimensionality of data with neural networks. Science, Vol. 313. no. 5786, pp. 504 - 507, 28 July 2006.
S. Lloyd, Last square quantization in PCM’s. Bell Telephone Laboratories Paper (1957). Published in journal much later: S. P. Lloyd. Least squares quantization in PCM. Special issue on quantization, IEEE Trans. Inform. Theory, 28:129–137, 1982.
WEBSOM Publications Bilmes, J. A Gentle Tutorial on the EM Algorithm and its Application to Para
meter Estimation for Gaussian Mixture and Hidden Markov Models. Technical Report, University of Berkeley, ICSI-TR-97-021, 1997. http://citeseer.ist.psu.edu/bilmes98gentle.ht
[Rumelhart and Zipser 86] Feature discovery by competitive learning, in Mit Press Computational Models Of Cognition And Perception Series, Parallel distributed processing: explorations in the microstructure of cognition, vol. 1: foundations, pp.151 – 193, (1986), ISBN:0-262-68053-X Authors D. E. Rumelhart D. Zipser, Pub. MIT Press Cambridge, MA, USA
Jonathon Shlens, A Tutorial on Principal Component Analysis, Systems Neurobiology Laboratory, Salk Insitute for Biological Studies, 2005
Próximas aulas
Semana 6 (19 a 23-Out) Pesquisa bibliográfica Proposta(s) de tema(s) para o TF
(por mail para Luí[email protected]) Semana 7 (26 a 30-Out)
26-Out: Discussão de propostas com cada grupo (durante a aula)
Decisão final sobre o tema e preparação da apresentação Semana 8 e 9 (aulas de 2 e 9-Nov)
Apresentações de propostas (máximo de 10 minutos / 10 slides), que deve incluir:1. Definição do enquadramento e objectivo do trabalho (introdução)2. Explicação sucinta do que já leu sobre o tema (enquadramento)3. Explicação da abordagem ao tema (plano)4. Enumeração, tão precisa quanto possível dos resultados esperados
(objectivo)5. Breve discussão / apreciação da proposta
Artigos sobre o tema que escolheu para o seu Trabalho Final (ver bibliografia de AA)
A ler para a próxima aula
38AA/ML, Luís Nunes, DCTI/ISCTE
Aprendizagem Supervisionada LVQ K-NN ID3: Entropia e ganho de informação
Aprendizagem Não Supervisionada Aprendizagem Competitiva Mapas Topológicos Cobweb
Sumário
39AA/ML, Luís Nunes, DCTI/ISCTE
Termo de momento (momentum) Duas vezes na mesma direcção, acelera, Em direcções contrárias, trava (ou não é
usado). Valor típico: 0.8
Aceleração de ANN
)( ,1,,,1 ijtijtijtijt wwww
x
ijijt xw ,
A mesma taxa de aprendizagem para todos os pesos faz com que se mova com a mesma “velocidade” em todas as direcções
Solução: taxas de aprendizagem diferentes para cada peso
Aceleração de ANN
ALR (Adaptive Learning Rates):
Aceleração de ANN
x
ijijt xw , ijtijtijt www ,,,1
x
ijijt xw , ijtijtijtijt www ,,,,1
Ec
wwd
wwu
ijt
ijtijtijt
ijtijtijt
ijt
,
0,
0,
,
,,,
,,,
,
5.01
8.01
2.11
c
d
u
Técnica dos passos-adaptativosAdaptive Learning Rates
F. M. Silva and L. B. Almeida, "Acceleration Techniques for the Backpropagation Algorithm", in L. B. Almeida and C. J. Wellekens (eds.), Neural Networks, Springer-Verlag, 1990.
Aceleração de ANN
Avaliação e erro
ixi
ijijj wxbs )tanh( jj so
ijw jkwknw
j
jkjkk wobs )tanh( kk so
k
knknn wobs)tanh( nn so
2)()(
nnn dooE
Derivadas parciais
ix
ijw jkwknw
k
nkknn wobs )tanh( nn so
2)()(
nnn dooE
knnnnkn wodowE )(2
knnnnnkn wssdowE ))tanh(1()(2 2
knnnkn osdowE ))tanh(1)((2 2
))tanh(1)((2 2nnnnnnnn sdosooEsE
knkn ow
Derivadas parciais
ix
ijw jkwknw
jknn
nn
jknnnnjk wswssdowE ))tanh(1()(2 2
jkkkn
knnjkkn
knnjk wsswwowwE ))tanh(1( 2
knkn owE
n
jknnnjk wodowE )(2
jkjkn
knnjk ooswwE ))tanh(1( 2
jkjk ow n
kknnkkkkk swsooEsE ))tanh(1( 2
Derivadas parciais
ix
ijw jkwknwijn
nnij wswE
ijkn k
knnij wowwE
n
jknnnij wodowE )(2
n
kknnk sw ))tanh(1( 2
ijkn k
kknnij wsswwE ))tanh(1( 2
ijkk n
kknnij wsswwE ))tanh(1( 2
Derivadas parciais
ijij xw
ijijjkk
kij xxswwE ))tanh(1( 2
k
jjkkjjjjj swsooEsE ))tanh(1( 2
ijjjjkk
kij wsswwE ))tanh(1( 2
Actualização (batch)
x
ijij xw
x
jjb
ijijij www
jjj bbb
… ou, para evitar que seja um valor muito grande (overflow):
x
ijij xw ijijij www
ijw
Actualização (online)
ijij xw
jjb
ijijij www
jjj bbb