Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL FLUMINENSE – UFF Estudo Orientado: Inteligência Artificial Aplicada à Seguranca de Redes de Computadores Por: Larissa Moraes Miranda Introdução: Machine Learning Machine learning é uma das técnicas de análises preditivas a qual permite a análise de fatos atuais e históricos visando fazer previsões sobre eventos futuros e ou desconhecidos. Além de ser um subcampo da ciência de dados, mais especificamente, da inteligência artificial (IA), este permite fornecer aos computadores a habilidade de aprender sem que sejam explicitamente programados para isso. Ademais, esta técnica possibilita a extração de informação de um conjuto de dados buscando representá-los através de algum tipo de modelo matemático. De acordo com os tipos de problemas e suas respectivas soluções há uma divisão de subáreas dentro do método de machine learning, que são estas: Aprendizado supervisionado e aprendizado não-supervisionado. No geral, a maior diferença entre o aprendizado supervisionado e o não supervisionado é que o aprendizado supervisionado lida com dados rotulados enquanto o Aprendizado Não Supervisionado lida com dados não rotulados, e quando se trata de aprendizado supervisionado existem dois tipos de técnicas, classificação e regressão. Assim como no aprendizado supervisonado, existem técnicas utilizadas no modelo de aprendizado não-supervisionado. Redução de dimensão, estimativa de densidade e clustering são algumas das técnicas de machine learning não-supervisionadas mais amplamente usadas. Aprendizado Supervisionado: Classificação Quando se trata de aprendizado supervisionado, há um grande foco nas tarefas de classificação. A classificação é o processo que prever uma categoria, ou seja, fornece classes de saída. Para isso, ele toma vários exemplos no qual caracteriza cada um pelo rótulo correto com o intuito de usá-los para treinar um modelo de IA à fazer o reconhecimento desses rótulos automaticamente (claro, de forma correta), por isso a importância do fornecimento prévio dos dados de entrada. Existe uma gama de algoritmos de classificação quando se trata de machine learning. Na sequencia será explicado algoritmos como: K-Nearest Neighbour (KNN); Decision Trees; Logistic Regression; Support Vector Machines (SVM). K-Nearest Neighbors (KNN) K-Nearest Neighbour é um método classificador no qual o aprendizado é baseado no quão similar um dado é do outro. Os dados próximos ao caso a ser classificado são considerados “vizinhos”. Além disso, o treinamento pode ser formado por vetores de n dimensões. Assim, a distância entre dois casos é uma medida da sua dissimilaridade. UNIVERSIDADE FEDERAL FLUMINENSE – UFF Estudo Orientado: Inteligência Artificial Aplicada à Seguranca de Redes de Computadores Existem n métodos para calcular a semelhança ou a distância de dois pontos de dados, contudo o mais usual para tal tarefa é através da distância Euclidiana. A Distância Euclidiana é definida como a soma da raiz quadrada da diferença entre x e y em suas respectivas dimensões. 𝐷𝑖𝑠 (𝑥1, 𝑥2) = √∑ (𝑥1𝑖 − 𝑥2𝑖)2 𝑛 𝑖=0 Além de estar por dentro do cálculo da semelhança/distância em um espaço multidimensional, é de suma importancia saber selecionar o valor do K, onde K é o número de vizinhos mais próximos a serem examinados. Desta forma o ideal é separar uma parte dos dados para testar a precisão do seu modelo. Asssim pode-se calcular a precisão para k amostragens do conjunto de teste e concluir o valor do K ideal. Quanto menor a distância entre os dados maior a precisão entre eles. Com o entendimentos maduro dos conceitos e fundamentos do método de K- Nearest Neighbour, a seguir está o passo a passo de como funciona o algoritmo deste método. Etapas da Lógica do Algoritmo KNN I. Recebe um dado não classificado; II. Mede a distância (Euclediana), de novo para com todos os dados já estão classificados; III. Obtém o valor de K, ou seja, as n menores distâncias; IV. Verifica a classe de cada da um dos dados que tiveram a menor distância e conta a quantidade de cada classe que aparece; V. Toma como resultado a classe que mais apareceu dentre os dados que tiveram as menores distâncias; VI. Classifica o novo dado com a classe tomada como resultado da classificação. Decision Trees UNIVERSIDADE FEDERAL FLUMINENSE – UFF Estudo Orientado: Inteligência Artificial Aplicada à Seguranca de Redes de Computadores Decision Trees é uma ferramenta que auxilia, visualmente, na tomada de decisão através de um modelo semelhante a estrutura de uma árvore. Geralmente utilizada na mineraçao de dados, derivando uma estratégia com o intuito de atingir um objetivo específico, ela também é amplamente usada quando se trata de machine learning supervisionada. Representada por uma estrutura de fluxograma na qual cada nó interno representa um teste em um atributo, o resultado do teste é representado por cada ramo, e cada folha e ou terminla é presentado por uma classe, logo, faz-se necessário critérios de classificação, os quais são representados pelas raízes. Desta forma, fica evidente que este método é uma maneira de exibir um algoritmo que destaca apenas instruções de controle condicionais. Para a construção do modelo de decision trees é importante estar por dentro do conceito de particionamento recursivo utilizado no calculo da significancia do atributo na divisão dos dados. Desta forma, saber quais são os critérios para concluir que um atributo é o ideal (ou mais preditivo), é essencial. De fato, o método utiliza particionamento recursivo para dividir os registros minimizando a impureza de cada etapa. E por impureza, entende-se que um nó é considerado puro, se em sua maioria, os nós caírem em uma categoria específica, que é calculado pela entropia dos dados de cada nó. Já a entropia é a quantidade de aleatoriedade da informação nos dados. Por isso, quanto menor a entropia mais preditivo ser torna o atributo, levando à uma homogeneidade das amostras desse nó. Se as amostras são completamente homogêneas, a entropia é zero e se as amostras são igualmente divididas, ela tem uma entropia igual a um. O cálculo da entropia é dada pela equação abaixo: 𝑒𝑛𝑡𝑟𝑜𝑝𝑖𝑎(𝑆) = ∑ −𝑃𝑖 𝑙𝑜𝑔2𝑃𝑖 𝑛 𝑖=1 Onde: 𝑆 é um conjunto de exemplos 𝑛 é o número de classes 𝑃𝑖 é é a proporção de 𝑆 que pertence à classe 𝑖, tendo que: 𝑃𝑖 = |𝑆𝑖| |𝑆| Onde: |𝑆𝑖| é o número de exemplos classificados na 𝑖 − é𝑠𝑖𝑚𝑎 partição |𝑆| é o número total de exemplos do conjunto 𝑆. Após determinar a entropia, deve-se escolher o primeiro atributo para iniciar as ramificações. Para isso, deve-se escolher a árvore com maior ganho de informação. Ganho de informação é basicamente o oposto da entropia, ou seja, quanto menor a entropia maior é o ganho de informação, ou quantidade de certeza. Segue aabaixo o cálculo para determinar qual árvore obtem o maior ganho de informação: UNIVERSIDADE FEDERAL FLUMINENSE – UFF Estudo Orientado: Inteligência Artificial Aplicada à Seguranca de Redes de Computadores 𝐺𝑎𝑛ℎ𝑜(𝑆, 𝐴) = −𝑒𝑛𝑡𝑟𝑜𝑝𝑖𝑎(𝑆) − ∑ |𝑆𝑖| |𝑆| 𝑛 𝑖=1 𝑒𝑛𝑡𝑟𝑜𝑝𝑖𝑎(𝑆) Onde: 𝐺𝑎𝑛ℎ𝑜(𝑆, 𝐴) é o ganho atribuído 𝐴 sobre o conjunto 𝑆 |𝑆𝑖| é o subconjunto de 𝑆 no qualo atrinuto 𝐴 tem valor 𝑖. Com o entendimentos maduro dos conceitos e fundamentos do método Decision Trees, a seguir está o passo a passo de como funciona o algoritmo do mesmo. Etapas da Lógica do Algoritmo Decision Trees I. Escolhe um atributo do nosso conjunto de dados; II. Calcula a significância do atributo na divisão dos dados; III. Divide os dados com base no valor do melhor atributo; IV. Vai para cada ramificação e para que possa repitir os processos para o restante dos atributos; V. Constrói a árvore. Logistic Regression Logistic regression é uma técnica estatística somadacom conceitos probabilísticos a qual é muito utilizada para problemas de duas classes, ou seja, ela trabalha com variáveis de saída, chamadas de dependentes, que seriam as variáveis categóricas binárias, e as variáveis preditivas, independentes, que podem ser categóricas ou não. Importante: Quando a variável dependente é binária (como sim/não), não podemos usar a regressão linear. O principal objetivo deste método é construir um modelo para prever a classe de cada amostra e a probabiliadade dela pertencer a essa classe. Logo, se eu tenho um conjunto de dados, representado por 𝑥, no espaço de dimensões 𝑚𝑥𝑛, aclasse que queremos prever 𝑦, pode ser classificado como 0 ou 1. Segue abaixo o modelo de regressão logística ideal o qual está sendo representad por î: î = 𝑃( 𝑦 = 1 𝑥 ) ou 𝑃 ( 𝑦 = 0 𝑥 ) = 1 − 𝑃( 𝑦 = 1 𝑥 ) Para esta expressão, pode-se prever que a classe de uma amosatra é 1, dados os recursos 𝑥. Ademias, na regressão logística a probabilidade de um evento pode ser estimada diretamente. A função Sigmoid (também chamada de função logística), é usada pela seguinte expressão na regressão logística: 𝜎(𝜃𝑇𝑥) = 1 1 + 𝑒𝜃 𝑇𝑥 UNIVERSIDADE FEDERAL FLUMINENSE – UFF Estudo Orientado: Inteligência Artificial Aplicada à Seguranca de Redes de Computadores Logo, concluimos que na Função Signoid, se 𝜃𝑇𝑥 fica muito grande o 𝑒𝜃 𝑇𝑥, no denominador da fração, tende a zero o resultado da função se aproxima de 1. Por outro lado, se 𝜃𝑇𝑥 é muito pequeno o resultado da função se aproxima de 0. Etapas da Lógica do Algoritmo de Logistic Regression I. Inicializar o vetor 𝜃 com valores aleatórios; II. Calcular a saída do modelo, î = 𝜎(𝜃𝑇𝑥); III. Comparar a saída dos modelos; IV. Registrar a diferença como erro 𝐸𝑟𝑟𝑜𝑟 = 1 − î V. Calcular todos os erros, o erro total é o custo do seu modelo e é calculado pela função de custo do modelo; VI. Mudar o valor de 𝜃 visando reduzir o custo; VII. Após alterar os valores de θ, volta para etapa 2. Support Vector Machine (SVM) O modelo de SVM tem como objetivo encontrar uma linha e ou um hiperplano, que melhor possibilita a classificação dos dados. Geralmente, um conjunto de dados não é linearmente separável, desta forma, deve-se tranferir esse dados para um espaço dimensional mais elevado, por exemplo o espaço tridimensional. Essa transformação é feita através da função Kernel, ou seja, ela converte problemas não separável em problemas separável. Matematicamente, essa função pode ser de diferentes tipos, como: Linear, Polinomial, Função de base radial e Sigmoid. A escolha de um hiperplano está baseado na melhor separação (ou margem) de dados, assim quanto maior a margem melhor a opção de hiperplano. A confiança da classificação dos dados da-se pela maximização da distância da margem a qual utiliza vetores de suporte os quais influenciam a posição e orientação do hiperplano. Aprendizado Não-Supervisionado: Clustering Na aprendizagem não-supervisionadas, as respostas corretas não são fornecidas, ou seja, os dados não possuem histórico. Logo, o objetivo é explorar e aprender algum tipo de estrutura subjacente aos dados. Para isso, utiliza-se a estratégia Clustering. O clustering pode agrupar dados apenas não-supervisionados, baseado na semelhança entre eles. Existe uma gama de algoritmos de clustering quando se trata de machine learning. Na sequencia será explicado algoritmos como: K-Means Clustering; Hierarchical Clustering; Density Based Clustering. K-Means Clustering UNIVERSIDADE FEDERAL FLUMINENSE – UFF Estudo Orientado: Inteligência Artificial Aplicada à Seguranca de Redes de Computadores K-Means clustering é um método que separa os dados em K subconjuntos sem sobreposição e sem nenhuma estrutura de rótulos. Para isso, ele utiliza da semelhança entre os dados para fazer tal lparticionamento. Como K-Means foca em formar clusters de forma que amostras semelhantes fiquem dentro do mesmo cluster e amostras diferentes fiquem em clusters diferentes, é viável utilizar uma métrica de dissimilaridade, sendo possível minimizar as diistâncias dentro de um cluster e maximizar as distâncias entre os clusters. Etapas da Lógica do Algoritmo K-Means Clustering I. Colocar aleatoriamente K centróides (um para cada cluster); II. Calcular a distância de cada ponto de daods até os centróides; III. Atribuir cada ponto de dados ao centróide mais próximo, crinado um cluster; IV. Recalcular a posiçõa do K centróide; V. Repetir os passos 2-4, até que os centróides não se movam mais. Existem duas maneiras de escolher os centróides, escolhendo aleatoriamente observações do conjunto de dados e usá-los como meio inicial; ou criando pontos aleatórios como centróides dos aglomerados. Para atribuir um “dado” ao centróide mais próximo é preciso calcular a distância de cada ponto de dados, apartir dos centróides. Para isso, utilizamos o cálculo da distânica Euclidiana. Para encontrar o melhor valor para K basta executar o clustering nos diferentes valores de K e observar uma métrica de precisão. Hierarchical Clustering Os algoritmos de Hierarchical Clustering constroem uma hierarquia de clusters em que cada nó é um cluster que consiste nos clusters de seus nós filhos. Essa técnica de agrupamento é dividida em dois grupos: Divididos e Aglomerativo. A técnica de divisão é formada de cima para baixo, na qual tem um grande cluster de início o qual vai sendo dividido em partes menores. Já a técnica de alglomeração, é a mais usual quando se trata de hierarchical clustering e é formado de baixo para cima, na qual os pequenos clusters vão se mesclando ao londo do processo. Etapas da Lógica do Algoritmo de Aglomeração I. Criar n clusters, um para cada ponto de dados; II. Calcular a matriz de proximidade; III. Mesclar dois clusters próximos; IV. Atualizar a matriz de proximidade; V. Repetir os passos 3 e 4 até que permaneça apenas um único cluster. UNIVERSIDADE FEDERAL FLUMINENSE – UFF Estudo Orientado: Inteligência Artificial Aplicada à Seguranca de Redes de Computadores Para calcular a matriz de proximidade pode-se utilizar diferentes medidas, uma delas é com através da dist^ncia Euclidiana. Logo, para n pacientes pode ser contruida uma matriz de 𝑛𝑥𝑛 de diferentes distâncias. Ademais, existem outras formas de calcular a ddistância entre os clusters quando há a concentração de muitas amostras em um cluster, são estas: Cluster de ligação única (distâncias mínima entre os cluusters); Cluster de ligação completa (distância máxima entre os clusters); Clustering médio de ligação (distância média entre os clusters); Clustering de ligação do centróide (distância entre os centróides dos clusters). Density Based Clustering O método de density based clustering ou DCSCAN clustering é apropriado ao examinar dados espaciais. Além disso, o algoritmo localiza regiões de alta densidade que são separadas entre si por regiões de baixa densidade, considerados ruídos. Vale ressaltar que densidade, neste contexto, é a quantidade de pontos de dados dentro de uma região específica. O DBSCAN funciona com base em dois parâmetros, que são estes: raio e pontos mínimos. Assim como já explicito no nome, o raio (R) irá fornecer o raio de uma região específica (área densa), e o ponto mínimo (M) determinará a quantidade mínima de pontos de dados para um cluster. Cada ponto do conjuto de dados tem de ser “classificado” como central, de borda ou externo. Para isso, o algoritmo vai passar por cada ponto de dados afim de determiná-lo como um dos pontos apresentados. Um ponto de dados é um ponto central se, dentro da vizinhança R do ponto, houver pelo menos M pontos. Um ponto de dados é um ponto de borda se, sua vizinhança tem pelo menos M pontos de dados ou é acessível apartir de algum ponto central. Por fim, um ponto externo, é aquele que nem seclassifica como ponto central nem como ponto de borda. Após feita todas as identificações de pontos, o próximo passo é conectar os pontos principais vizinhos e colocá-los no mesmo cluster. Sistemas de Recomendação Um sistema de recomendações funciona baseado no consumo do usuário. Desta forma, o sistema tenta absorver algum padrão de forma que consiga prever o que mais pode ser de interesse do usuário. Ademais, técnicas como esta são de grande valia para ambas as partes, o usuário como o provedor de serviço. Existem dois tipos principais de sistemas de recomendação: filtragem colaborativa e baseada em conteúdo. A diferença entre elas está diretamente relacionada à declaração do consumidor. Em termos de implementação de sistemas de recomendação, existem 2 tipos: Baseado em memória e Baseado em modelo. Na abordagem em memória, todoo conjunto de dados do usuário é usado para gerar recomendação. Já na abordagem em modelo, um novo modelo é desenvolvido na tentativa de aprender as referencias. UNIVERSIDADE FEDERAL FLUMINENSE – UFF Estudo Orientado: Inteligência Artificial Aplicada à Seguranca de Redes de Computadores Sistemas de Recomendação Baseados em Conteúdo Sistema de recomendações baseado em conteúdo está diretamente ligado nas ações dos perfis. Neles contém informações como preferências e gostos dos usuários. Assim, número de cliques e avaliações, são critérios importantíssimos para modelar o sistemas, ou seja, a similaridade e ou semelhança entre esses itens é essencial para esse modelo. Etapas da Lógica de Sistema de Recomendações Baseados em Conteúdo I. Criar o perfil do usuário, que seria um vetor para mostrar as classificações do usuário pelo conteúdo já consumido; II. Codificar os itens através do One Hot Encoding (com um recurso X); III. Usar um recurso Y para criar outra matriz; IV. Multiplicar as duas matrizes para obter o conjunto de recursos ponderados; V. Dada a matriz de recurso ponderado, moldar o perfil do usuário ativo; VI. Multiplicar a matriz de perfil de usuário pela matriz de filmes candidatos, o que resulta na matriz do conteúdo ponderado. Ele mostra o peso de cada recurso X, em relação ao perfil do usuário. Porém para alguns casos este sistema não funciona. Se um recurso X nunca foi consumido pelo usuário, este recurso não estra no perfil do mesmo, logo este tipo de recurso nunca será recomendado pelo sistema. Sistemas de recomendação baseados em Filtragem Colaborativa Sistema de recomendações baseado em filtragem colaborativa está diretamente associado no fato de existir interesse entre as pessoas. Desta forma, o sistema se apropria desses relacionamentos com o intuito de fazzer uma recomendação mais acertiva. A filtragem colaborativa tem basicamente duas abordagens: baseada no usuário a qual se basea na semelhança da vizinhança do usuário, e baseada em itens a qual se basea na semelhança entre os itens. Na filtragem colaborativa baseada no usuário, temos um usuário ativo para quem a recomendação é direcionada. Este mecanismo procura primeiro usuários semelhantes, ou seja, usuários que compartilham os padrões de classificação do usuário ativo. Na filtragem colaborativa baseada no item, comportamento dos usuários vizinhos criam itens semelhantes. Portanto, as recomendações aqui são baseadas nos itens da vizinhança que um usuário pode preferir. Etapas da Lógica de Sistema de Recomendações Baseados em Filtragem Colaborativa I. Descobrir a semelhança entre o usuário ativo e os outros usuários, pode ser feito pelo caálculo da distância Euclediana; II. Averiguar o pesos de similaridade ou proximidade do usuário ativo com outros usuários no conjunto de dados; UNIVERSIDADE FEDERAL FLUMINENSE – UFF Estudo Orientado: Inteligência Artificial Aplicada à Seguranca de Redes de Computadores III. Criar uma matriz de classificação ponderada; IV. Assim como foi calculada a semelhança de usuários com o usuário ativo, pode- se usar este para calcular a possível opinião do usuário ativo sobre os conteúdos- alvo, basta multiplicar os pesos de semelhança com as classificações do usuário resultando em uma matriz de classificação ponerada; V. Gerar a matriz de recomendação agregando todas as taxas ponderadas; VI. Dividir os valores da classificação ponderada pela soma do índice de similaridade para os usuários. O resultado é a classificação potencial que o usuário ativo dará a esses filmes, com base em sua semelhança com outros usuários.
Compartilhar