Buscar

AB1 - PROVA DE APRENDIZAGEM DE MÁQUINA 2021 1

Prévia do material em texto

PROVA DE APRENDIZAGEM DE MÁQUINA
Prof. Dr. Aydano Machado
Instruções para a prova:
Antes lembro que o Código de Honra vale para todas as atividades da
disciplina:
Código de Honra
"Como membro da comunidade deste curso, não vou participar
nem tolerar a desonestidade acadêmica".
A prova será individual, sem consulta e durante o horário da disciplina.
As respostas podem ser diretas, porém completas. Deixe em um nível de detalhe que eu
entenda que você conhece cada passo necessário para implementar sua resposta.
Demonstre o que você entendeu o assunto abordado na questão sem a necessidade de ser
prolixo. Pode citar e explicar com um algoritmo ou técnica que você aprendeu.
Questões
1. Defina o que é Aprendizagem de Máquina, quando existe a real necessidade de aplicá-la.
Também cite e explique os 3 tipos de Aprendizagem de Máquina falados em sala.
Resposta: A Aprendizagem de Máquina consiste numa subárea da Inteligência Artificial que
visa simular o processo de aprendizagem de humanos em alguma máquina ou software, de
forma que utilize os dados existentes (ou implemente uma coleta de dados) para realizar o
processo de novas descobertas a partir da identificação de padrões e correlações. É uma
abordagem bastante útil em cenários nos quais é complicado utilizar métodos mais
tradicionais, como a criação de um algoritmo, para resolver problemas. Além disso, também
pode ser usada em ambientes dinâmicos, isto é, que mudam constantemente, pois alterar
manualmente seria bastante custoso e demorado.
Existem três tipos de Aprendizagem de Máquina:
● Aprendizagem Supervisionada: Neste modelo, já existe para cada entrada uma
saída esperada para que haja a comparação, devendo ser observado pelo
computador um padrão a fim de identificar os próximos casos ainda não visualizados
pela máquina a partir da percepção obtida das respostas anteriores. Pode ser usada
para problemas de classificação, como identificar se um paciente tem ou não uma
determinada doença;
● Aprendizagem Não-Supervisionada: Neste modelo, não existe um par de
entrada-saída previamente conhecido para ser realizada a comparação, devendo o
computador observar tal padrão partindo da distribuição dos elementos da base, ao
invés de respostas prévias. Pode ser usada para problemas de Clustering, como os
de sistemas de recomendação de serviços de streamings;
● Aprendizagem por Reforço: Neste modelo, ao invés de buscar padrões provenientes
de uma base de dados, o computador deve interagir diretamente com o ambiente e
receber um reforço para cada ação realizada: se a ação for considerada boa, será
feito um reforço positivo (recompensa), mas se a ação for considerada ruim, será
feito um reforço negativo (penalidade). Pode ser utilizada em problemas envolvendo
jogos, como a criação de uma IA para jogar Xadrez, Dama, Go, Super Mario, entre
outros.
2. Como se dá o processo de descoberta de conhecimento em banco de dados?
Resposta: Para realizar o processo de descoberta de conhecimento em banco de dados,
cinco etapas são realizadas:
● Seleção: Definição da base de dados a ser trabalhada. Pode ser utilizada uma base
já pronta ou montar sua própria base;
● Pré-processamento: Tratamento dos dados presentes na base. Aqui, é necessário
eliminar tuplas repetidas, decidir se alguma coluna será removida, decidir o que
fazer com dados faltantes (remover ou adicionar, mediante métricas estatísticas),
remover os dados ruidosos;
● Transformação: Alteração na forma de representação dos dados. Se os dados estão
dispostos em escalas diferentes (alguns em metros e outros em quilômetros, por
exemplo) é necessário passar todos para a mesma escala, bem como realizar a
normalização desses dados, para evitar pesos muito discrepantes entre os dados;
● Mineração: Uso de um algoritmo para a descoberta de padrões e correlações para
gerar conhecimento. Como exemplo disso, há a regressão logística, Naive Bayes,
K-NN, ID3, K-Means, entre outros;
● Classificação e Avaliação: Análise, mediante métricas (como acurácia, precisão e
cobertura), dos resultados obtidos, para verificar se o processo foi satisfatório. Aqui
também é possível pensar no processo de visualização de resultados, a fim de
tornar mais fácil a explicação do que foi obtido, como, por exemplo, plotagem de
gráficos.
3. Explique de forma detalhada que metodologia você usaria para construir e avaliar
classificadores.
Resposta: É necessário avaliar o tamanho da base e observar os custos computacionais:
● Se a base for pequena em que cada teste possa ser feito rapidamente, seria feita
uma separação aleatória da base de treino e de teste, respeitando a proporção de ⅔
para treino e ⅓ para teste, buscando manter a proporção entre as classes da base.
Feito isso, é rodado n vezes (tanto treino, quanto teste), a fim de garantir que haja
aprendizado e não “memorização” de respostas (overfitting).
● Se a base for grande e custe tempo significativo, seria feito a separação em k
partições da base, em que seria executado k vezes (tanto treino, quanto teste),
sendo cada vez com k-1 partições para treino e 1 para teste, mudando a partição a
cada execução.
Ao final dos dois cenários, sendo averiguado que não houve “memorização” de
resultado, seria possível treinar (com os mesmos parâmetros) com toda a base e
realizar a entrega para o cliente. O critério utilizado dependerá do que é buscado: a
acurácia seria um bom indicador para problemas gerais, mas para problemas
médicos, por exemplo, em que preferível classificar uma pessoa normal como
doente do que classificar um doente como normal, a cobertura seria mais útil, já para
apostas, como bolsa de valores, a precisão seria mais útil.
4. Por que existe a necessidade da redução de dimensionalidade? Como você trataria esse
problema?
Resposta: Em bases com muitas colunas, o processo de aprendizado é muito custo, desta
forma é preciso fazer uma avaliação de quais colunas é possível remover sem prejuízo para
o modelo. Esse processo é feito em colunas que não possuem correlação com o resultado
esperado ou que já há outra coluna que satisfaça a condição. Além disso, há cenários em
que pode ocorrer uma falsa correlação entre as colunas, sendo necessário remover as que
geram tal erro.
Para resolver esse problema, primeiro é necessário avaliar o tema e a base
utilizada, podendo, inicialmente, remover as que não possuem nenhuma relação com o
problema (por exemplo, ao utilizar a base de dados dos pacientes em um hospital, a coluna
“telefone” não seria útil para diagnóstico). Após isso, é possível utilizar abordagens mais
formais para tal análise, como usar regressão para verificar a correlação entre colunas
(podendo imprimir, inclusive, uma matriz de confusão para auxiliar na visualização). Por fim,
caso ainda seja necessário, é possível utilizar uma abordagem recursiva com uma amostra
da base, como a seleção para frente e a eliminação para trás.

Continue navegando