5 Experimentos e Resultados
5.1 AMBIENTE E EQUIPAMENTOS UTILIZADOS
5.1 AMBIENTE E EQUIPAMENTOS UTILIZADOS 80
determina em que região virtual estes dados se localizam.
Após a resposta, faz a consulta à Rede Neural correspondente à sua região virtual, e esta re- torna a posição do dispositivo móvel, a posição x, y, que pode ser enviada de volta ao dispositivo móvel ou ao administrador do sistema, representada na Figura 5.1 como LOCALIZAÇÃO. 5.1.1 Descrição do Ambiente do CIn
O principal ambiente, onde foram realizados os testes, foi o Centro de Informática da UFPE. Este local foi escolhido por ser uma área pública e típica na qual o sistema poderia ser implantado, bem como onde a técnica foi desenvolvida.
O Centro de Informática ocupa uma área de 3.522 m2 com um perímetro de 240 me- tros. O Centro possui um corredor central que dá acesso às salas de aula, às sala de professores, aos laboratórios e ao auditório; bem como um corredor secundário. As medições foram reali- zadas com maior frequência nos corredores, e em algumas salas e laboratórios. As paredes são de alvenaria ou concreto e os APs estão instalados quase na sua totalidade no teto a uma altura aproximada de 3 metros. Vários APs possuem mais de uma rede, sendo todos os sinais de um mesmo AP, o qual foi levado em consideração na etapa de medição. Também foram utilizadas as redes de 2,4GHz e de 5GHz.
Na coleta de dados para o mapeamento das regiões virtuais, os sinais RSS foram medidos em 150 pontos diferentes e distribuídos em todos os corredores, nas duas entradas e em 8 salas. A Figura 5.2 mostra a planta baixa do Centro de Informática. Na planta estão assinalados os pontos nas áreas e salas onde foram realizadas as medidas para o mapeamento das regiões virtuais.
5.1.2 Placa de medição da intensidade do sinal — RSS
Os sinais foram medidos com uma placa baseada no processador Edison. O processador Edison da Intel® é um processador embarcado desenvolvido para dispositivos portáteis apro- priado para a "Internet das coisas".
O processador Edison é um SoC (System on Chip) da Intel fabricado na tecnologia de 22 nm que inclui um processador Atom™ dual-core, dual-threaded que opera a 500 MHz e um micro- controlador Intel® Quark™ de 32-bits de 100 MHz. A memória RAM é de 1 GB LPDDR3, e possui 4GB de memória flash. O processador possui uma interface WLAN Broadcom* 43340 802.11 a/b/g/n com Dual-band (2,4 e 5 GHz) e a sua antena é integrada. A interface Blue- tooth também presente é 4.0. Este processador foi lançado durante a International Consumer Electronics Show (CES) em 2014.
A interface do processador está descrita abaixo.
• 20 pinos de entrada ou saída digital, sendo 4 deles com recurso PWM (Pulse Width Modulation)Modulação por largura de pulso.
• 6 entradas digitais.
• 1 UART- Rx/Tx (Universal Asynchronous Receiver/Transmitter) Transmissão e Recep- ção Assíncrona Universal.
5.1 AMBIENTE E EQUIPAMENTOS UTILIZADOS 81
5.1 AMBIENTE E EQUIPAMENTOS UTILIZADOS 82
Figura 5.3 Diagrama de blocos do Processador Edison[Intel, 2015].
• 1 I2C - Inter-Integrated Circuit - Circuito Inter-integrado. • 1 ICSP 6-pin header (SPI - Serial Peripheral Interface). • 1 Conector Micro USB.
• Conector SD Card.
• Conector para fonte de alimentação 7 - 15V.
O sistema operacional utilizado foi o Yocto Linux 1.6. Seu ambiente de desenvolvimento é compatível com várias IDEs incluindo o Arduino* IDE; o framework Eclipse: C, C++, e Python; a IDE Intel XDK: Node.JS e HTML5.
As dimensões do processador são bastante reduzidas dadas por 35,5 × 25,0 × 3,9 mm. A Figura 5.3 mostra o diagrama de blocos do processador Edison, onde se observa estas caracte- rísticas, com destaque à placa WLAN que foi utilizada para a coleta de dados.
Para o acesso às informações dos valores RSS, o processador Edison possui o módulo wpa- supplicant que permite a conexão direta com o driver BCN4334x da Broadcom, sua placa de rede embarcada e que fornece os valores RSS. Devido ao fato de ser um processador destinado a aplicações embarcadas, também são disponibilizados pela Intel os arquivos fontes dos drivers e softwares da placa de rede Broadcom. Conforme a documentação do Edison as localizações dos arquivos estão nos diretórios indicados a seguir [Intel, 2015].
• broadcom_cws/wlan/driver_bcm43x: Arquivos fonte para Broadcom Linux Driver. • wpa_supplicant / wpa_cli: arquivos fontes para wpa_supplicant / wpa_cli 2.1 • linux-kernel/net/wireless: Arquivos fontes para modelo Mac definido em mac80211 Na Figura 5.4 são mostrados os módulos dos componentes da placa de rede Broadcom do Edison. Pelo módulo Wpa-suplicant pode ser feito o acesso a diversos parâmetros e valores da placa de rede. Uma lista destes comandos é disponibilizada na documentação [Die.net, 2016].
5.1 AMBIENTE E EQUIPAMENTOS UTILIZADOS 83
Figura 5.4 Arquitetura de Software da Placa de Rede do Edison[Intel, 2015].
O processador Edison possui suporte para comunicação entre dispositivos ou entre dispo- sitivo e nuvem. Asim, foi projetado para coletar, armazenar e transferir dados para nuvem. O processador Edison foi projetado para ser compacto, econômico e de baixo consumo de energia, portanto, projetado para aplicações de internet das coisas IoT, motivo pelo qual foi escolhido para a realização dos testes. Porém, nada impede que a mesma técnica seja aplicada com outros dispositivos móveis, tais como, celulares, notebooks ou tablets.
A placa onde se localiza o processador Edison possui botões e leds, onde o operador co- manda a operação de leitura dos sinais RSS e recebe o retorno pelos sinalizadores. O arquivo é então transferido para o pc para o framework Studio Machine Learning do Azure, que é o am- biente de nuvem da Microsoft, onde as operações estão sendo realizadas. Para cada conjunto de medição das intensidades dos sinais das redes presentes é acrescentada a posição x, y da localização, que é registrada durante o processo de medição, sendo os valores x, y, as distâncias a um ponto referencial escolhido no ambiente.
Os valores das intensidades dos sinais RSS são enviados para o framework Azure Machine Learning após serem coletados pelo processador Edison.
5.1.3 Azure Machine Learning
O Azure é a plataforma de nuvem da Microsoft, a qual é composta de serviços de nuvem integrados — análise, computação, banco de dados, serviços móveis, rede, armazenamento e Web. Um de seus componentes é o Microsoft Azure Machine Learning, um serviço de nuvem totalmente gerenciado que permite desenvolver, compilar, implantar e compartilhar soluções de análise preditiva com facilidade, e que pode ser utilizado como serviço web [Microsoft, 2016]. O Azure Machine Learning foi lançado oficialmente em outubro de 2014 na Strata Ha- doop Conference. Esta nova ferramenta permite desenvolvimento de aplicações na área de análise preditiva, possui um ambiente de trabalho interativo, com recursos visuais que facili-
5.1 AMBIENTE E EQUIPAMENTOS UTILIZADOS 84
Tabela 5.1 Algoritmos de Aprendizado de Máquina no Azure.
Algoritmos de Classificação São utilizados para classificar os dados em categorias di- ferentes, que podem então ser usados para prever uma ou mais variáveis discretas, com base nos outros atributos no conjunto de dados.
Algoritmos de Regressão São usados para prever uma ou mais variáveis contínuas, tais como lucros ou perdas, com base em outros atributos do conjunto de dados.
Algoritmos de Clustering Permitem a geração de agrupamentos e padrões naturais em conjuntos de dados e são usados para prever classificações de agrupamentos para uma determinada variável.
tam o desenvolvimento, avaliação e testes de métodos de análise preditiva. Além da facilidade de publicação e utilização do modelo, o sistema inclui uma biblioteca com os algoritmos de aprendizado de máquina mostrados na Tabela 5.1
O Studio Azure Machine Learning (Ambiente de Aprendizado de Máquina do Azure) ofe- rece um espaço de trabalho visual e interativo para desenvolver, compilar, testar e executar modelos para aplicações de análise preditiva. O Azure Machine Learning permite, de uma ma- neira rápida, criar um modelo, testar, ajustar e publicar um serviço de aprendizado de máquina. Quando o projeto e treino já estiverem aprimorados, a análise pode ser convertida de uma base de treinamento em uma experiência preditiva e, em seguida, ser publicada como um serviço Web para que o modelo possa ser acessado por outros [Microsoft Corporation, 2016]. A Fi- gura 5.5 mostra o diagrama básico de um modelo desenvolvido no ambiente Azure Machine Learning.
• Importação de Dados: nesta fase os dados são importados, podem ser provenientes de um banco de dados, estando este na nuvem ou não. Os dados podem ainda estar em uma Tabela, um site, diretamente transferidos de uma estação de trabalho, de um sensor com acesso à nuvem, ou mesmo de um sistema embarcado com acesso à internet. O formato dos dados pode ser: ARRF, CSV, SVM-Light, TSV, Excel, Zip.
• Preparação de Dados: os dados que foram importados precisam ser processados pelo algoritmo. A preparação consiste em tratar os dados ausentes, selecionar características, aplicar filtros, realizar normalização dos dados.
• Escolha do Algoritmo de Aprendizado de Máquina: nesta etapa são definidos o al- goritmo que será utilizado bem como os parâmetros necessários. Módulos de detecção de anomalias, classificação, clustering, regressão, funções estatísticas, análise de textos e visão computacional estão disponíveis, podendo ser executados como scripts em Python e Linguagem R.
• Módulo de Treinamento: este módulo, recebe os dados preparados e o algoritmo esco- lhido com dados de entrada gerando o modelo treinado, também chamado de modelo de pontuação ou de avaliação.
5.1 AMBIENTE E EQUIPAMENTOS UTILIZADOS 85
Figura 5.5 Processo do Azure Machine Learning.
• Módulo de Avaliação: este módulo recebe a base que foi treinada ou parametrizada para efetuar a avaliação de um dado baseada no algoritmo e no treinamento que foi realizado. • Resultado: os dados de resultado são então disponibilizados para consulta ou enviados
para outros processos.
O ambiente do Azure Machine Learning foi usado para implementar a técnica proposta de localização utilizando o algoritmo de agrupamento clustering K-means, para geração das Regiões Virtuais, seguida do treinamento de um modelo baseado em Redes Neurais para a localização do objeto.
As Figuras 5.6 e 5.7 mostram a tela de desenvolvimento no Azure para um método que utilize o algoritmo de clustering K-Means e Redes Neurais. Para cada bloco da Figura, foi realizada a configuração de vários parâmetros. As Tabelas 5.2 e 5.4 descrevem os valores finais dos parâmetros que foram utilizados na implementação do sistema de localização.
5.1.4 Escolha do parâmetros
Os parâmetros utilizados para a implementação do sistema de localização serão descritos nesta seção. De acordo com a Figura 5.1, existem três grupos de parâmetros: os parâmetros de medição da intensidade do sinal — RSS na etapa de mapeamento do local; os parâmetros para
5.1 AMBIENTE E EQUIPAMENTOS UTILIZADOS 86
Figura 5.6 Exemplo Método K-Means Azure.
definição das regiões virtuais e, por último, os parâmetros de configuração e treinamento das redes neurais.
5.1.4.1 Medição das intensidades dos Sinais — RSS no ambiente.
O primeiro ponto a ser definido é a área que será coberta pelo sistema. Esta área servirá de dado de entrada para outras etapas do processo. Além da área de interesse, a faixa das regiões virtuais e o número de medições a serem realizadas durante a fase de treinamento devem ser definidos e serão explicados na próxima seção.
Em seguida, é necessário verificar a quantidade de APs presentes no ambiente a fim de garantir que o sistema seja exequível, foi definido verificar se a cada 25 metros existem pelo menos 3 APs com sinais acima de -75dBm, estes valores garantem a possibilidade de localizar um dispositivo com a precisão desejada. Estes são também a distância e o ponto de corte indicados pela Cisco [Cisco Systems, 2008].
Durante o levantamento (fingerprinting) a distância máxima entre pontos de medição foi de 5 metros. Este número está diretamente ligado ao erro suportado pelo sistema e é considerado como um erro aceitável para a aplicação proposta. Uma vez que a técnica proposta é para grandes ambientes, foi procurado buscar a máxima distância possível, de maneira a minimizar o trabalho do mapeamento inicial, mantendo o erro dentro de um limite aceitável. Estes valores
5.1 AMBIENTE E EQUIPAMENTOS UTILIZADOS 87
Figura 5.7 Exemplo Método Rede Neurais Azure.
foram obtidos através de experimentos iniciais. Em um trabalho correlato [Nunes, 2006] foi utilizada distância de 1 metro para uma área de 160 m2. No trabalho descrito em [Lopes, 2014] foi utilizada a distância de 1,5 metros para uma área de 220 m2.
Na coleta de dados realizada no CIN-UFPE os pontos ficaram a uma distância entre 3 a 5 metros em uma área de 3.522 m2.
5.1.4.2 Parametrização para definição das regiões virtuais
Após a coleta de dados são inseridos os pontos de localização relativos a um ponto de referência qualquer no ambiente. No trabalho foi escolhido o extremo norte do prédio como a coordenada x= 0, e o extremo oeste como coordenada y = 0, e todos os pontos são referenciados como a distância em metros a estes pontos de referência.
Os dados coletados, intensidade do sinal e MacAddress em cada ponto x, y, são então organi- zados por MacAddress e os valores de intensidade, de cujos APs que não tiveram em toda a extensão do ambiente, pelo menos um sinal superior a -75dBm, são eliminados. Assim são eliminados os sinais dos APs, que não obtiveram pelo menos em um ponto, um sinal acima de -75dBm.
A estes dados coletados é aplicado o algoritmo de agrupamento K-Means. A aplicação deste algoritmo é realizada com os parâmetros descritos na Tabela 5.2.
Na primeira linha da Tabela é definido que o sistema deve avaliar dentro de uma faixa de valores de números de agrupamentos qual o melhor valor, na segunda linha é definida esta faixa, no caso, de 7-20 agrupamentos. O sistema irá buscar o que tiver melhor resultado, este
5.1 AMBIENTE E EQUIPAMENTOS UTILIZADOS 88
Tabela 5.2 Parâmetros K-Means.
Configurações K-Means
Parâmetros Intervalo de Parâmetros
Intervalo dos Agrupamentos 7-20
Inicialização da Varredura K-Means ++ Número de Sementes Aleatórias 5
Métrica Euclidiana
Iterações 100
Método para Medição do resultado do Cluster Silhueta Simplificada
Tabela 5.3 Métrica por variações do número de sementes com K-Means ++.
Métrica 0,514878 0,514878 0,514878 0,514878 0,514878
Nr. Cluster 12 12 12 12 12
Índice Varredura 24 23 22 21 20
resultado é encontrado através da métrica silhueta apresentada no Capítulo anterior e que está definido na última linha da tabela. Os resultados apresentados foram obtidos após experimentos que resultaram os seguintes valores: A área do CIn é de 3.522 m2, dividindo por 400 m2obtém- se 7,22; e dividindo por 180 m2obtém-se 19,56, ficando entre 7 - 20.
Para a escolha das sementes de inicialização do K-means foi escolhido o método K-Means++, que garante uma forma de convergência mais rápida que uma escolha aleatória dos valores das sementes de inicialização [Arthur and Vassilvitskii, 2007]. E o número de sementes randô- micas escolhido foi de 5, este valor de 5 grupos de sementes iniciais, possibilita uma melhor escolha do melhor agrupamento, pois irá processar de 5 diferentes grupos de sementes iniciais, buscando o melhor valor. A Tabela 5.3 mostra as métricas obtidas para cada uma das sementes utilizadas, onde observa-se que não houve variação da métrica final, tendo obtido o melhor valor.
Um outro parâmetro é a métrica de similaridade. Utilizamos a distância euclidiana, por ser a que mais se aproxima da variação do sinal real em função da distância.
5.1.4.3 Parametrização da etapa de localização
Após terem sido obtidas as identificações das regiões virtuais pela técnica baseada no algoritmo K-Means, o próximo passo é a definição da localização, a partir destas regiões. Para esta etapa, foi desenvolvida uma técnica baseada em redes neurais, conforme citado no Capítulo anterior. A rede neural utilizada foi uma rede direta com os parâmetros mostrados na Tabela 5.4.
A primeira linha indica que para o treinamento deve ser pesquisada qual das taxas descritas apresenta um erro menor durante a fase de treinamento. O segundo parâmetro define uma rede completamente conectada. Isto é, todos os nós de entrada estão ligados a todos os nós da camada intermediária, e estes à saída.
A terceira linha indica que o número de nós da camada intermediária foi igual a 32. A definição deste valor se deu após a realização de testes com 100, 60 e 32 nós, sendo que com 32 nós foram