UNIVERSIDADE FEDERAL DO ESPÍRITO SANTOCENTRO DE CIÊNCIAS EXATAS, NATURAIS E DA SAÚDE DEPARTAMENTO DE COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO MAYCOWN DOUGLAS DE OLIVEIRA MIRANDA CLUSTERIZAÇÃO DE GRUPOS DE IMAGENS COM DEEP LEARNING E REDES NEURAIS ARTIFICIAIS ALEGRE - ES NOVEMBRO 2016 CLUSTERIZAÇÃO DE GRUPOS DE IMAGENS COM DEEP LEARNING E REDES NEURAIS ARTIFICIAIS Trabalho de conclusão de curso apresen- tado ao Departamento de Computação do Centro de Ciências Exatas, Naturais e da Saúde da Universidade Federal do Espí- rito Santo, como requisito parcial para ob- tenção do grau de Bacharel em Ciência da Computação. por MAYCOWN DOUGLAS DE OLIVEIRA MIRANDA Orientador Jacson Rodrigues Correia da Silva Universidade Federal do Espírito Santo ALEGRE - ES NOVEMBRO 2016 Termo de Aprovação MAYCOWN DOUGLAS DE OLIVEIRA MIRANDA CLUSTERIZAÇÃO DE GRUPOS DE IMAGENS COM DEEP LEARNING E REDES NEURAIS ARTIFICIAIS Trabalho de conclusão de curso apresentado ao Departamento de Computação do Centro de Ciências Exatas, Naturais e da Saúde da Universidade Federal do Espí- rito Santo, como requisito parcial para obtenção do grau de Bacharel em Ciência da Computação. Prof. M.Sc. Jacson Rodrigues Correia da Silva UFES ALEGRE - ES, 30 DE NOVEMBRO DE 2016 SUMÁRIO 1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Objetivos específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3 Revisão de Literatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.1 Reconhecimento de Padrões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.1.1 Reconhecimento de Padrões em Imagens Digitais . . . . . . . . . . . . . . . . . . . . . 10 3.2 Extração de Características . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3 Aprendizado Supervisionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.4 Aprendizado Não-Supervisionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.4.1 Agrupamento de Dados (Clustering) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5 Redes Neurais Artificiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5.1 Máquina Restrita de Boltzmann (Restricted Boltzmann Machine) . . . . . . . . 17 3.6 Aprendizado Profundo (Deep Learning) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.7 Redes de Crença Profunda (Deep Belief Networks) . . . . . . . . . . . . . . . . . . . . . . 21 3.8 Redes Neurais Convolucionais (Convolutional Neural Networks) . . . . . . . . . . 22 4 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5 Resultados Esperados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6 Cronograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 RESUMO Diversas tarefas do nosso dia-a-dia requerem a intervenção de um ser-humano para sua execução, como reconhecer um rosto e identificar a quem o mesmo pertence, transcrever um áudio, converter em texto caracteres presentes em uma imagem, di- vidir áreas de uma imagem em sub-regiões que tenham algum propósito, identificar padrões, e muitas outras, que apresentavam e limitavam a elaboração de uma solu- ção computacional eficiente. Com o advento de redes neurais artificias, e mais es- pecificamente com surgimento do deep learning, problemas deste tipo começaram e receber mais atenção, pois foi possível propor soluções que apresentam resultados que podem ser comparados ao de um ser-humano, e em alguns casos houve até a superação dos resultados de homem pela máquina. Diante disto, este trabalho busca soluções para melhorar os métodos atuais. Palavras-chave: Aprendizado não-supervisionado; Clustering; Deep Learning; Redes Neurais Artificiais. 5 1 INTRODUÇÃO O estudo de redes neurais artificiais teve início na década de 40, com o trabalho proposto por McCulloch e Pitts (1943), onde o foco era principalmente em torno da representação computacional de um neurônio. Vários outros trabalho contribuíram para o crescimento e melhoramento da técnica, chegando ao seu atual estado, onde computadores conseguem realizar o processamento de linguagem natural, extrair in- formações semânticas de imagens, classificar dados, reconhecer caracteres escritos à mão em um imagem, traduzir com maior precisão textos de um idioma para outro, identificar padrões e regularidades em conjuntos de informações, entre outras tarefas que envolvem um aprendizado semelhante ao do ser-humano (BRAGA; CARVALHO; LUDERNIR, 2007; HAYKIN, 1998; LUGER, 2014). Estes problemas não possuíam soluções que fornecessem resultados satisfatórios com métodos tradicionais. Mas, com o advento das RNAs, foi possível solucioná-los junto com diversos outros que envolviam a necessidade de intervenção do ser-humano em sua capacidade de aprendizado e adaptação. Estas são algumas das caracterís- ticas presentes em redes neurais, que fazem com que o poder computacional das RNAs seja tão grande (GUYON et al., 2006). Métodos mais robustos de aprendizado obtiveram sucesso em Hinton, Osindero e Teh (2006), como o aprendizado profundo (do inglês deep learning), que aumentaram ainda mais a capacidade computacional de uma rede neural, tornando-a capaz de resolver problemas ainda mais complexos. Baseando-se na revisão bibliográfica apresentada no capítulo 3, existem poucos es- tudos sobre aprendizado não-supervisionado utilizando deep learning em certos tipos de redes, como em redes convolucionais (RADFORD; METZ; CHINTALA, 2015). De- vido a isto, busca-se neste trabalho estudar e aperfeiçoar métodos aplicados em redes neurais convolucionais com deep learning, utilizando aprendizado não-supervisionado propostos na literatura, que serão refinados baseando-se em seus resultados apresen- tados. 6 2 OBJETIVOS 2.1 Objetivo Geral O objetivo geral é aumentar a taxa de acerto da classificação de imagens com deep learning, utilizando métodos propostos da literatura sobre redes convolucionais. 2.2 Objetivos específicos Para se alcançar o objetivo geral, são listados os seguintes passos: 1. Utilizar uma base de dados para efetuar o treinamento da rede e agrupamento dos padrões. 2. Aplicar os métodos de deep learning para aprendizado não-supervisionado. 3. Identificar os métodos que alcançaram resultados satisfatórios. 4. Definir quais métodos utilizar para aumentar a acurácia do aprendizado não- supervisionado. 5. Implementar redes neurais artificiais utilizando os métodos propostos. 6. Verificar o desempenho de cada rede neural implementada, comparando seus resultados com os da literatura. 7 3 REVISÃO DE LITERATURA Para Alpaydin (2010) o aprendizado de máquina é um subcampo da inteligência ar- tificial, que lida com questões relacionadas à aquisição de informações através de experiências, e como estas podem ser usadas para resolver problemas que necessi- tem da observação de fatos. Witten, Frank e Hall (2011) abordam que um sistema que requer inteligência precisa de algum meio para aprender a partir de mudanças que ocorram em seu ambiente, de maneira que possa adaptar-se. Desta forma, pode-se projetar um sistema que, a priori, não requer todas as soluções conhecidas, mas sim que aprenda de acordo com as suas necessidades. Guyon et al. (2006) apresentam uma definição sobre aprendizado, que considera um modelo de aprendizado como uma função: f : X → Y. Esta função transforma um objeto do domínio X em um do domínio Y , que consiste no conjunto de possíveis valores esperados para o domínio de entrada X. O processo de aprendizado neste contexto, observando que este comportamento é baseado em ta- refas que apresentam características semelhantes, e encontrando-se arquétipos que apresentam aspectos similares, constitui-se uma forma de solucionar problemas co- nhecida como o reconhecimento de padrões, e que será abordado na seção 3.1. Para que se resolva determinada tarefa utilizando esta abordagem, a aquisição de conheci- mento pode ser supervisionada ou não-supervisionada, a última será mais detalhada na seção 3.4. A principal diferença entre os dois tipos é que, o primeiro há a necessi- dade do conhecimento das saídas desejadas para um conjunto de dados de entrada. Enquanto o aprendizado não-supervisionado, este não possui conhecimento das saí- das esperadas. Existem diversas aplicações que englobam o aprendizado de máquina, como o reco- 8 nhecimento de expressões faciais que Bartlett et al. (2005) realizou, classificação de dados para análise genética (LIU et al., 2015), agrupamento de dados (YANG; CHEN, 2010), aplicações na agricultura, como o realizado por Dimitriadis e Goumopoulos (2008), entre outros. “Um programa de computador é dito para aprender com a experiência E com a relação a alguma classe de tarefas T e medida de desempenho P, se o seu desempenho em tarefas em T, medida pelo P, melhora com a experiência E.” (MITCHELL, 1997). Assim, podemos notar que o aprendizado é uma forma de refinar soluções, e encontrar uma maneira cada vez melhor de se desempenhar uma determinada tarefa, como um treinamento em que adquire-se mais e mais experiência e especialidade na execução da atividade em questão. E uma das técnicas que se baseia nesse paradigma são as redes neurais artificiais, vistas na seção 3.5. 3.1 Reconhecimento de Padrões "A palavra reconhecer significa conhecer de novo, e isto implica num processo onde existe algum conhecimento prévio e algum tipo de armazenamento do conhecimento sobre o objeto a ser reconhecido."(SOUZA, 2011). Sendo assim, é preciso extrair as características contidas em uma entrada de dados, e então efetuar a classificação dos mesmos, de acordo com sua estrutura e o conhe- cimento armazenado. O campo do reconhecimento de padrões preocupa-se em encontrar, de forma automa- tizada, certas semelhanças ou regularidades nos dados, por intermeio de algoritmos computacionais, e realizar uma classificação ou agrupamento a partir do que foi obtido na extração da entrada (BISHOP, 2006). O ser-humano tende a reconhecer aquilo que ele vivenciou em experiências passa- das, como reconhecer uma pessoa já vista anteriormente e associar seu nome ao rosto. Com o advento da computação, a busca por um meio de reproduzir o sistema humano de reconhecimento em um computador vem sendo cada vez mais buscada (LIAO, 2008). Várias aplicações que envolvem o reconhecimento de padrões foram desenvolvidos, como o reconhecimento de voz (BOURLARD, 2002), prospecção de óleo e gás (BOIS, 1983). Mesmo com propósitos diferentes no emprego do reconhecimento de padrões em 9 sistemas, a ideia principal do método é a mesma, e pode ser vista na Figura 1, que, no lado esquerdo, ilustra o processo natural de reconhecimento de padrões, em que há a observação do ambiente físico e sua compreensão, ou seja a entrada de dados, o pré- processamento dos mesmos, a extração das características desses, parte que pode ser vista como a observação de padrões, e por fim a análise feita para a classificação da entrada para se tomar uma decisão quanto ao que foi observado. Enquanto no lado direito temos o processo de um sistema, em que se tem inicialmente um conjunto de dados de treinamento, a preparação ou pre-processamento destes, a extração das características e a geração do modelo de aprendizado que fornecerá a classificação. Figura 1: Diagrama do processo de um sistema de reconhecimento de padrões. Fonte: (LIAO, 2008) Há bastante foco na aplicação em imagens digitais também, como explorado em Ha- rinarayan et al. (2011). E este é um dos propósitos deste projeto, levando em consi- deração o crescente número de trabalhos que vêm obtendo êxito neste campo (KHO- DASKAR; LADHAKE, 2014). E será abordado com mais atenção na próxima seção. 10 3.1.1 Reconhecimento de Padrões em Imagens Digitais Em uma imagem digital, o principal parâmetro de entrada são os agrupamentos de pixel que formam o objeto. Considerando uma imagem com dimensão W × H, os atri- butos que serão analisados podem ser os valores de cada ponto da matriz formada de pixeis, com tamanho W ∗ H. E tais valores podem estar em um espaço N-dimensional, no qual possui N características. Os objetos que são o foco da análise serão vetores contidos nesse espaço formado. E o mesmo recebe o nome de vetor de características (CHACON et al., 2011). Para Khodaskar e Ladhake (2014) os três componentes principais em um processo de reconhecimento de padrões em imagens digitais são: pré-processamento, extração de características e classificação, sendo que a primeira etapa nem sempre é necessária. Na primeira são extraídas as características do conjunto de dados, e em seguida ar- mazenadas em seus vetores de características. Para então serem classificados, o que implica em separar os dados em diferentes classes, ou agrupá-los, levando em conta o domínio da aplicação. A figura 2 ilustra um exemplo de reconhecimento de padrões, onde são analisados caracteres (letras c e g), tendo suas características representadas em cada eixo. E o objetivo é encontrar uma função matemática que sirva como fronteira de decisão, levando à correta classificação de cada padrão. 11 Figura 2: Classificação de caracteres. Fonte: (CHACON et al., 2011) A extração de características é uma etapa vital do processo (KHODASKAR; LADHAKE, 2014), e será discutida na próxima seção. 3.2 Extração de Características Ao se lidar com uma entrada de dados que tenha uma dimensão muito alta, como mui- tos pixeis em uma imagem, pode haver a ocorrência de problemas quanto a se pro- cessar uma enorme quantidade de dados, e que estes apresentem muita redundância, além de contribuir muito pouco para que haja a necessidade de serem utilizados. Guyon et al. (2006) descrevem o problema em dois passos: construção e seleção de características. Sendo que no primeiro é realizado transformações no conjunto de da- dos, que podem ou não alterar sua dimensão. Tais modificações podem ser, padroni- zação e normalização (LARSEN; MARX, 2012), aprimoramento de sinal (GONZALEZ; WOODS, 2006), extração de características locais (LEE et al., 2009), sendo que esta última é amplamente utilizada em redes neurais artificiais. A seleção é feita com o objetivo de identificar as características mais relevantes, e que contribuam com mais informação. E também é um meio de se lidar com a redundância 12 de dados. Além destas motivações, outras como: • redução geral dos dados, o que reduz a quantidade de armazenamento de dados necessária, e também aumenta a velocidade do algoritmo; • entendimento dos dados, para se obter maior conhecimento sobre os dados, como por exemplo, podendo visualizá-los de uma maneira compreensível (GUYON et al., 2006). 3.3 Aprendizado Supervisionado O aprendizado supervisionado é uma forma de treinamento onde é fornecido ao sis- tema um conhecimento prévio de entradas e suas respectivas saídas. Tais dados po- dem ser obtidos através de medições ou observações, como um experimento em que se registra amostras de temperatura e volume de um determinado material utilizando aparelhos para a medição de tais grandeza. Assim, busca-se efetuar o treinamento da forma que a saída observada é comparada com a saída real a fim de se obter a menor diferença possível entre elas (GUYON et al., 2006; BENGIO, 2009). Desta maneira, o aprendizado supervisionado apresenta a existência de um "profes- sor", que avalia a resposta do sistema à entrada dada, indicando o quão boa foi esta resposta, e obtendo-se um erro. Desta forma uma desvantagem deste aprendizado é que necessita-se de um conhecimento prévio sobre as entradas e saídas, ou seja de valores conhecidos para saídas e entradas, e que o sistema só poderá aprender novas estratégias quando é alimentado com tais valores (GUYON et al., 2006). 3.4 Aprendizado Não-Supervisionado Segundo Guyon et al. (2006) o aprendizado não-supervisionado consiste em um apren- dizado sem um "professor", ou seja, quando a base de dados fornecida não possui rótulos iniciais sobre os atributos de entrada. Sabendo que f é um modelo de apren- dizado, X é o conjunto de entrada e Y o de saída. O processo de aprender pode ser visto como: dada uma sequência de dados do espaço X com n valores, espera-se obter algum padrão ou similaridade como uma saída . Tal processo pode ser repre- sentado pela definição matemática mostrada na Equação 1. 13 D = {x1 , x2 , ..., xm } = X (1) Onde D é uma sequência de dados, xi elementos do domínio de entrada, ou seja, X é uma coleção de elementos de entrada. Este aprendizado pode ser utilizado em algoritmos de clustering, auto-organização e auto-associação. 3.4.1 Agrupamento de Dados (Clustering) A técnica de clusterização é um meio de agrupar objetos baseado somente nas carac- terísticas que o descrevem e suas relações. O objetivo é que objetos do mesmo grupo apresentem similaridades uns com os outros, e diferenças quanto aos demais grupos. Assim, quanto maior a semelhança dentro de um grupo e quanto maior a diferença entre os grupos, maior e mais distinto será o agrupamento. Pimentel, Franca e Omar (2003) utilizaram o clustering para formar grupos homogê- neos de alunos em ensino presencial, a fim de melhorar o ensino com uma pedagogia diferenciada para cada grupo. A análise foi feita por meio da aplicação de um questi- onário, onde as respostas foram as entradas para o algoritmo. E obtiveram êxito visto as técnicas são úteis para identificação de grupos homogêneos, e que esta é uma ferramenta importante para que o professor consiga aplicar uma didática com maior sucesso. Gefeng, Xu e Zhisheng (2011) em seu trabalho com segmentação de imagens médi- cas, obtiveram bons resultados com a clusterização. O processo de segmentar é uma tarefa de dividir uma imagem em sub-regiões, e tal atividade, se realizada manual- mente, revela-se subjetiva, demorada e sujeita a erros. Como pode ser observado há várias aplicações para o agrupamento de dados, como por exemplo identificar padrões em entradas, filtros de dados, e também no auxílio para o aprendizado supervisionado de redes neurais artificiais (DUNDAR; JIN; CU- LURCIELLO, 2015). 3.5 Redes Neurais Artificiais Redes neurais artificiais (RNA) são modelos matemáticos propostos para simular o comportamento do cérebro humano, para tanto possuem elementos de referência 14 como neurônios (ou nodos) e pesos sinápticos (ou arestas). Os neurônios artificiais são a unidade central onde o processamento de informação é efetuado, os mesmos foram projetados para simular a função dos neurônios cerebrais. Já os pesos sináp- ticos representam a força de conexão entre os neurônios, que podem ser reforçadas ou relaxadas, criando assim uma rede adaptativa que pode aprender e se modificar de acordo com as experiências ou padrões de entrada (HAYKIN, 1998). A estrutura básica de um neurônio artificial pode ser descrita contendo seus pesos, um somatório das entradas e uma função de ativação. O somatório das entradas é uma soma ponderado dos valores de entrada utilizando os pesos. A função de ati- vação é uma função matemática que tem o papel de limitar a amplitude da saída de cada neurônio. A junção de vários neurônios conectados formam redes de neurônios, e geralmente são organizados em camadas: entrada, oculta e saída. Onde a primeira é responsável por receber os padrões de entrada, a próxima onde é realizado o pro- cessamento e extração de características, e a última onde é apresentado o resultado final da rede. De acordo com Braga, Carvalho e Ludernir (2007) a forma de armazenamento do conhecimento de uma RNA é através de seus pesos, que são representados, mate- maticamente, por uma matriz de valores reais. Estes pesos podem ser ajustados ao se realizar o "treinamento"da rede, uma forma de aprendizado, que implica em forne- cer entradas para a rede para que esta possa aprender com a experiência, e então conseguir resolver o problema com uma taxa de acerto maior ao adquirir a experiên- cia. Uma representação simples de uma rede pode vista na Figura 3. Onde a primeira camada e os neurônios contidos nela são responsáveis pela entrada de dados, cada um destes neurônios representa um atributo do conjunto de dados. Estes valores se- rão passados à próxima camada, onde será feito o processamento das características de entrada através da multiplicação de seus valores pelos pesos sinápticos. Cada neurônio da camada oculta h efetuará o somatório dos valores recebidos, e então uma função de ativação será aplicada a este valor. Este processo é repetido para a próxima camada, e então obtém-se a saída da rede. 15 Figura 3: Exemplo de uma rede neural artificial. As redes neurais artificiais podem ser de diversos tipos e algumas delas podem ser observadas na Figura 4, como perceptron com uma camada, perceptron de múltiplas camadas (Multilayer Perceptron - MLP), adalinde, madaline, mapas auto-organizáveis (Self-organizing Map - SOM), redes de Hopfield, máquina restrita de Boltzmann , entre outras, e elas podem se diferir quanto à arquitetura, números e organização de cama- das e conectividade de neurônios e de camadas. E também podem ser separadas quanto a utilizar o aprendizado supervisionado e o não-supervisionado. As redes do tipo MLP são usadas para o aprendizado supervisionado, enquanto a máquina restrita de Boltzman para o não-supervisionado (GUYON et al., 2006). 16 Figura 4: Alguns tipos de redes neurais. Fonte: Asimov Institute1 As RNAs são utilizadas para diversos propósitos, e vários problemas que antes não possuíam solução computacional, puderam obter soluções parciais ou até totais com sua utilização (BENGIO; COURVILLE, 2016). 1 Disponível em: <http://www.asimovinstitute.org/wp-content/uploads/2016/09/networkZooPoster.png> acesso em out. 2016. 17 Existem diversos frameworks e bibliotecas na literatura que auxiliam na implementa- ção de uma rede neural artificial, entre eles, está em destaque o Caffe: Convolutional Architecture for Fast Feature Embedding, um framework aberto que possui rotinas pré-implementadas para a criação da arquitetura da rede neural, bem como o seu trei- namento, que alcança o estado da arte atualmente, a biblioteca cuDNN da NVIDIA, que é gratuita e apresenta rotinas primitivas para redes neurais profundas, e apresenta excelentes resultados quanto a performance (JIA et al., 2014; CHETLUR et al., 2014). Keras é uma biblioteca de redes neurais de alto-nível, escrita em Python e é capaz de ser integrada com os frameworks TensorFlow e Theano, é focada na praticidade e facilidade de uso, bem como uma rápida experimentação, com o propósito de sair da ideia para o resultado, através de diversas funções e modelos já implementados para uma prototipação de uma rede neural, e permitindo a configuração da mesma, e suporta de redes neurais convolucionais(CHOLLET, 2015). 3.5.1 Máquina Restrita de Boltzmann (Restricted Boltzmann Ma- chine) Uma máquina restrita de Boltzmann (RBM) é uma rede neural composta de duas camadas: visível e oculta, onde cada neurônio da primeira está conectado com o da segunda, mas não há conexões entre nodos da mesma camada. E os valores se propagam de forma bidirecional entre uma camada e outra. 18 Figura 5: Exemplo de RBM. Fonte: (BASEGMEZ, 2014) A Figura 5 mostra a estrutura da rede, em que este método pode detectar padrões automaticamente nos dados, por meio de reconstrução das entradas. Seu funciona- mento ocorre da seguinte forma: na primeira etapa os dados da camada visível (visible units) são transformados, ou seja, multiplicados pelos pesos das arestas e somados e inseridos em cada nó da próxima camada, a camada oculta (hidden units). Na se- gunda etapa ocorre a tradução dos dados na forma de entradas reconstruídas. Por meio de várias iterações entre estas etapas a rede é treinada para reconstruir as en- tradas de dados, e quando bem treinada pode alcançar resultados de reconstrução com níveis altos de acurácia, a quantidade de imagens classificadas corretamente em relação ao total de imagens. Seu treinamento segue basicamente três etapas: 1. cada atributo de entrada é multiplicado por um peso individual e o resultado é passado à camada oculta, que pode ou não ter seus nodos ativados; 2. nesta etapa, cada nodo ativado é multiplicado com um peso individual e o resul- 19 tado é passado à camada visível para a reconstrução; 3. é feita então uma comparação com a entrada original, e verifica-se a qualidade do resultado. Após a execução destas, é realizada a correção de pesos, e então uma nova iteração se inicia até que se tenha uma reconstrução que apresente uma taxa de erro menor que um parâmetro determinado, ou que se alcance um número de iterações (SA- LAKHUTDINOV; MNIH; HINTON, 2007; GUYON et al., 2006; HINTON; OSINDERO; TEH, 2006; DAHL, 2015). Segundo Osogami e Otsuka (2014), uma RBM é parte de uma família de redes neu- rais extratoras de características, pois uma importantes característica destas redes é que ocorre a decisão sobre quais entradas são importantes e como devem ser combi- nadas para se formar padrões. As RMBs possuem características importantes, como detectar conexões entre os dados de entrada e também em identificar quais atribu- tos destes dados são os mais importantes para se detectar algum padrão, bem como formar agrupamentos. O treinamento de uma rede é realizado usando-se uma base de dados, esta pode conter os rótulos, indicando qual a saída desejada para determinada entrada, ou não, constituindo-se apenas de dados não rotulados utilizados no aprendizado não- supervisionado. Na literatura, as bases mais frequentemente utilizadas são: Ima- geNet, um conjunto de dados com mais de 15 milhões de imagens rotuladas se- paradas em mais de 22.000 categorias, ou classes (RUSSAKOVSKY et al., 2014). STL-10, uma base de mais de 100.000 imagens sem rotulação, distribuídos em ani- mais(coelhos, ursos, etc.) e veículos (trens, ônibus, etc.), de dimensão 96x96 pixels, coloridas (COATES; LEE; NG, 2011). Caltech-101, um conjunto de dados com 101 classes compostas de 40 a 800 imagens (FEI-FEI; FERGUS; PERONA, 2004). Le- Cun e Cortes (2010) apresenta a base de dados MNIST em seu trabalho, que fornece um conjunto de caracteres manuscritos com 70.000 padrões de entrada. Alguns traba- lhos relacionados ao escopo deste trabalho que utilizaram tais bases foram: Dundar, Jin e Culurciello (2015) utilizaram as bases MNIST e STL-10 em redes neurais con- volucionais para melhorar técnicas que utilizavam k-means para o agrupamento de dados, Lee et al. (2009) utilizou a base Caltech-101 em deep belief networks com representações hierárquicas para aumentar a acurácia de trabalhos da área que não utilizavam esta topologia. Erhan et al. (2010) utilizaram a base de dados MNIST para demonstrar que a utilização de aprendizado não-supervisionado no pré-treinamento 20 de redes neurais convolucionais melhora a generalização para o conjunto de treina- mento. E Le et al. (2012) que buscaram classificar todos os padrões da base dados ImageNet, demonstrando que o aprendizado não-supervisionado aumenta a acurácia de redes convolucionais aplicadas em imagens digitais. 3.6 Aprendizado Profundo (Deep Learning) O conceito de aprendizado profundo consiste em um modelo robusto de uma rede neural, apresentando muitas (aproximadamente 20) camadas ocultas. A ideia central é que utilizando um grande número de camadas, elas possam assimilar conteúdos mais complexos, algo que uma rede com apenas uma ou duas camadas ocultas não conseguiria. E Bengio (2009) aponta que arquiteturas profundas são necessárias para o aprendizado de funções complexas, que podem representar abstrações de alto ní- vel, como processamento de linguagem natural, visão computacional, e outras tarefas envolvendo a inteligência humana. O deep learning busca se aproximar mais do comportamento humano para se reali- zar tarefas, levando em conta que geralmente o ser-humano divide um problema em diversos sub-problemas, e em níveis diferentes de abstração, como uma tentativa de transformar, gradualmente o conjunto de entrada em uma informação mais concreta. Um exemplo em uma classificação de imagem, em que se parte dos pixeis iniciais, a seguir, detecta-se as fronteiras dos objeto, checa-se a a sua forma, e então, a textura, até que se chegue em um nível definido, e obtenha uma boa classificação. Isto é co- nhecido como a extração de características, e em uma rede neural profunda pode ser representado nas diversas camadas que a compõe. Cada camada é responsável por um nível de abstração, e extrai características em cada nível (BENGIO; COURVILLE, 2016). Os métodos de aprendizado profundo preocupam-se com: • aprendizado de características de forma hierárquica, com níveis altos da hierar- quia compostos por níveis inferiores. • Quantidade maciça de dados para o treinamento • Hardware específicos, como GPUs, para o processamento em paralelo dos al- goritmos. 21 • arquitetura com muitas camadas. E tais fatores levaram a muitos resultados que superaram os até então encontrados, e fizeram com que fosse alcançado um novo estágio quanto aos problemas relacionados a inteligência artificial (LECUN; BENGIO; HINTON, 2015; DENG et al., 2009; BENGIO, 2009). O aprendizado profundo emergiu com os trabalhos de Hinton, Osindero e Teh (2006), e desde então são empregados em várias aplicações com resultados promissores, como os encontrados por Dahl (2015) na utilização de deep learning para o reconhecimento de voz. Outras alcançaram o estado-da-arte em diversas áreas envolvendo o aprendizado supervisionado (BENGIO, 2009). 3.7 Redes de Crença Profunda (Deep Belief Networks) Uma deep belief network (DBN) é definida como um empilhamento de várias RBMs em camadas. Onde uma camada oculta está liga uma camada visível da próxima, como ilustrado na Figura 6. Figura 6: Exemplo de DBN. Fonte: (HAMEL; ECK, 2010) Sua estrutura é similar a de um perceptron de múltiplas camadas, e da mesma maneira possui um poder computacional maior, concedido pelas várias camadas. A forma de treinamento é ligeiramente diferente: 1. a primeira RBM é treinada para reconstruir os padrões o mais precisamente possível; 22 2. a camada oculta da primeira RBM é tratada como a camada visível da segunda, e a segunda RBM é treinada usando as saída da primeira; 3. este processo é repetido até que cada camada da rede seja treinada. Após esta etapa, a rede é capaz de detectar padrões próprios nos dados, com mais detalhamento que uma RBM, indo mais a fundo. Como se pensar em uma caracterís- tica de um grupo que antes não era visível, pois não era possível se detectar com uma RBM (HAMEL; ECK, 2010). Estas redes operam sobre toda a entrada, ao contrário de uma rede neural convoluci- onal. 3.8 Redes Neurais Convolucionais (Convolutional Neu- ral Networks) Em uma rede neural convolucional (CNN), as camadas iniciais detectam padrões mais simples em uma entrada, e estes são passados adiante sendo recombinados. Como em um reconhecimento facial (BARTLETT et al., 2005), onde as primeiras camadas encontram bordas e traços que serão usados em outras camadas para se formar ca- racterísticas faciais. Ou no reconhecimento de placas de limite máximo de velocidade (PEEMEN et al., 2015), como apresentado na Figura 7, onde tem-se a entrada (input) como uma imagem de 32x32 pixels, em seguida a próxima camada, C1, é responsá- vel pelas primeiras características onde alguns padrões serão detectados, e então é passado adiante, e este processo se repete até que se chega na camada de saída (output) e é obtido um valor correspondente a entrada fornecida. 23 Figura 7: Exemplo de uma rede neural convolucional. Fonte: (PEEMEN et al., 2015) Fukui et al. (2015) utilizaram tal método na detecção de pedestres em sistemas de au- xílio à direção, devido à sua alta acurácia, o que indica que sua aplicação é adequada quanto à classificação de imagens. Já Chen et al. (2015) utilizaram este tipo de rede para a detecção de glaucoma também obtendo resultados promissores em base de dados conhecidas na literatura, como ORIGA (ZHANG et al., 2010). Zheng, Yu e Zou (2015) obtiveram 40% de acurácia na análise de sinais de voz para reconhecimento de emoções, realizado com dados de áudio rotulados. 24 4 METODOLOGIA Como uma base de dados extensa é essencial para o deep learning (DENG et al., 2009), será utilizada a base de dados STL-10, permitindo que os resultados obtidos possam ser comparados com demais trabalhos que utilizaram esta base, como (DUN- DAR; JIN; CULURCIELLO, 2015) e (COATES; LEE; NG, 2011). Deng et al. (2009) concluíram que uma base de dados extensa é essencial para o deep learning, sendo assim, este trabalho utilizará as bases de dados Caltech-101 e STL- 10, a fim de se obter resultados que possam ser comparados com os de (DUNDAR; JIN; CULURCIELLO, 2015). O aprendizado de máquina não-supervisionado é utilizado em vários problemas que envolvam a classificação de dados, e uma das técnicas mais utilizadas são as Deep belief networks, empregada principalmente em modelos de aprendizado que apresen- tem complexidade elevada e um alto grau de não-linearidade, bem como a necessi- dade de milhões de parâmetros para lidar com muitos dados não rotulados. Estas re- des em geral, utilizam o algoritmo k-means para realizar o agrupamento de dados. En- tretanto, estas redes não apresentam uma boa acurácia para serem utilizadas em uma quantidade de dados maior, como a base de dados STL-10, pois não apresentam a propriedade de escalabilidade. Uma solução proposta por (RAINA; MADHAVAN; NG, 2009) é o uso de processadores gráficos e métodos executados em paralelo, apresen- tando um tempo de aprendizado até 70 vezes mais rápido. Outra solução abordada em (LEE et al., 2009) é o uso de representações hierárquicas para o aprendizado não-supervisionado escalável em redes neurais convolucionais, onde agrupamentos hierárquicos provém a clusterização dos dados em vários níveis, o que usado em conjunto com a convolução apresentou resultados promissores (RAINA; MADHAVAN; NG, 2009; KHANUM; MAHBOOB, 2015). Erhan et al. (2010) demonstrou que o uso de métodos de aprendizado não-supervisionado para o treinamento de arquitetura de rede profundas (deep architectures)foi essencial 25 para se alcançar os melhores resultados encontrados na literatura. A revisão de lite- ratura também mostra que existem trabalhos que alcançaram resultados promissores, como o Dundar, Jin e Culurciello (2015), que emprega o agrupamento convolucional como um método de deep learning para o aprendizado não-supervisionado. Portanto, este projeto irá se basear no estudo do método proposto por Dundar, Jin e Culurciello (2015), uma vez que a sua taxa de acerto quanto à classificação apre- sentou resultados melhores que outros existentes na literatura para a base de dados STL-10. Este método utiliza o algoritmo de cluster k-means. Tendo então como pro- posta o refino dos resultados encontrados, utilizando as técnicas vistas em Lee et al. (2009), através da implementação de uma deep belief network, que utilize elementos de convolução de uma convolutional neural network com representações hierárquicas, busca-se melhorar os resultados através do emprego do método que o autor propôs. A implementação da rede neural proposta será realizada com o uso do framework Theano com o auxílio da biblioteca Keras, e utilizando funções e rotinas da biblioteca cuDNN, visto que os resultados observados na litratura deste conjunto de ferramentas indicam que os mesmos se sobressaem em relação a outros, tanto com relação a tempo de processamento, quanto ao suporte à bibliotecas e arquiteturas deep learning (BAHRAMPOUR et al., 2015). Os passos para se obter um modelo treinado e os resultados de acurácia são os seguintes: 1. Carregar dados; 2. Definir modelo de rede neural; 3. Compilar o modelo; 4. Realizar o treinamento e ajuste de pesos; 5. Avaliar o resultado do modelo treinado. Na primeira etapa os dados serão carregados e preparados para serem utilizados pelo framework, em seguida o modelo proposto será implementado, seguindo as metodolo- gias abordadas por Dundar, Jin e Culurciello (2015) e Lee et al. (2009). Posteriormente será feita a análise dos resultados encontrados, e este serão comparados com os ob- tidos por Dundar, Jin e Culurciello (2015), observando a taxa de acerto encontrada neste projeto e no trabalho realizado pelo autor. 26 5 RESULTADOS ESPERADOS Espera-se obter um modelo com métodos refinados, que possibilite a obtenção de resultados com uma melhor acurácia do que os apresentados em Dundar, Jin e Culur- ciello (2015), visto que as técnicas abordadas apresentaram melhoras nos trabalhos encontrados na literatura. 27 6 CRONOGRAMA As atividades necessárias para o desenvolvimento do projeto são as seguintes: 1. Pesquisar métodos de deep learning. 2. Obter conjunto de dados. 3. Implementar a rede neural. 4. Avaliar resultado e comparar com a literatura. 5. Desenvolvimento da monografia final do tcc. Atividade Março Abril Maio Junho Julho 1 X 2 X 3 X X 4 X X 5 X X X X X 28 REFERÊNCIAS ALPAYDIN, E. Introduction to Machine Learning. 2. ed. Cambridge, Massachusetts: The MIT Press, 2010. (Adaptative Computation and Machine Learning). Citado na página 7. BAHRAMPOUR, S. et al. Comparative study of caffe, neon, theano, and torch for deep learning. CoRR, abs/1511.06435, 2015. Disponível em: <http: //arxiv.org/abs/1511.06435>. Citado na página 25. BARTLETT, M. et al. Recognizing facial expression: Machine learning and application to spontaneous behavior. Institute of Electrical & Electronics Engineers (IEEE), 2005. Disponível em: <http://dx.doi.org/10.1109/CVPR.2005.297>. Citado 2 vezes nas páginas 8 e 22. BASEGMEZ, E. The next generation neural networks: deep learning and spiking neural networks. 2014. NEUROSCIENTIFIC SYSTEM THEORY. Dis- ponível em: <https://www.nst.ei.tum.de/fileadmin/w00bqs/www/publications/as/ 2014SS-HS-DeepLearningAndSNN.pdf>. Citado na página 18. BENGIO, I. G. Y.; COURVILLE, A. Deep learning. Book in preparation for MIT Press. 2016. Disponível em: <http://www.deeplearningbook.org>. Citado 2 vezes nas páginas 16 e 20. BENGIO, Y. Learning deep architectures for AI. FNT in Machine Learning, Now Publishers, v. 2, n. 1, p. 1–127, 2009. Disponível em: <http://dx.doi.org/10.1561/ 2200000006>. Citado 3 vezes nas páginas 12, 20 e 21. BISHOP, C. M. Pattern Recognition and Machine Learning. Cambridge: Springer, 2006. (Information Science and Statistics). Citado na página 8. BOIS, P. Some applications of pattern recognition to oil and gas exploration. IEEE Trans. Geosci. Remote Sensing, Institute of Electrical & Electronics Engineers (IEEE), GE-21, n. 4, p. 416–426, oct 1983. Disponível em: <http: //dx.doi.org/10.1109/TGRS.1983.350502>. Citado na página 8. BOURLARD, H. Some recent advances in speech recognition with potential applications in other statistical pattern recognition areas. Institute of Electrical & Electronics Engineers (IEEE), 2002. Disponível em: <http://dx.doi.org/10.1109/ICPR. 2002.1048078>. Citado na página 8. BRAGA, A. d. P.; CARVALHO, A. C. P. d. L. F.; LUDERNIR, T. B. Redes neurais artificiais: teoria e aplicações. LTC Editora, 2007. ISBN 9788521615644. Disponível em: <https://books.google.com.br/books?id=R-p1GwAACAAJ>. Citado 2 vezes nas páginas 5 e 14. 29 CHACON, G. et al. Aplicação Tecnica de Momentos Invariantes no Reconhecimento de Padroes em Imagens Digitais. Rio de Janeiro, RJ, 2011. Disponível em: <http://cbpfindex.cbpf.br/publication_pdfs/nt00611.2011_11_01_09_51_20.pdf>. Citado 2 vezes nas páginas 10 e 11. CHEN, X. et al. Glaucoma detection based on deep convolutional neural network. In: 2015 37th Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC). Institute of Electrical & Electronics Engineers (IEEE), 2015. Disponível em: <http://dx.doi.org/10.1109/EMBC.2015.7318462>. Citado na página 23. CHETLUR, S. et al. cudnn: Efficient primitives for deep learning. CoRR, abs/1410.0759, 2014. Disponível em: <http://arxiv.org/abs/1410.0759>. Citado na página 17. CHOLLET, F. Keras. [S.l.]: GitHub, 2015. <https://github.com/fchollet/keras>. Citado na página 17. COATES, A.; LEE, H.; NG, A. An analysis of single-layer networks in unsupervised feature learning. In: GORDON, G.; DUNSON, D.; DUDíK, M. (Ed.). Proceedings of the Fourteenth International Conference on Artificial Intelligence and Statistics. JMLR W&CP, 2011. (JMLR Workshop and Conference Proceedings, v. 15), p. 215–223. Disponível em: <http://jmlr.csail.mit.edu/proceedings/papers/v15/coates11a.html>. Citado 2 vezes nas páginas 19 e 24. DAHL, G. E. Deep learning approaches to problems in speech recognition, computational chemistry, and natural language text processing. Tese (Doutorado) — University of Toronto, 2015. Citado 2 vezes nas páginas 19 e 21. DENG, J. et al. Imagenet: A large-scale hierarchical image database. In: IEEE. Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on. [S.l.], 2009. p. 248–255. Citado 2 vezes nas páginas 21 e 24. DIMITRIADIS, S.; GOUMOPOULOS, C. Applying machine learning to extract new knowledge in precision agriculture applications. In: 2008 Panhellenic Conference on Informatics. Institute of Electrical & Electronics Engineers (IEEE), 2008. Disponível em: <http://dx.doi.org/10.1109/PCI.2008.30>. Citado na página 8. DUNDAR, A.; JIN, J.; CULURCIELLO, E. Convolutional clustering for unsupervised learning. CoRR, abs/1511.06241, 2015. Disponível em: <http://arxiv.org/abs/1511. 06241>. Citado 5 vezes nas páginas 13, 19, 24, 25 e 26. ERHAN, D. et al. Why does unsupervised pre-training help deep learning? J. Mach. Learn. Res., JMLR.org, v. 11, p. 625–660, mar. 2010. ISSN 1532-4435. Disponível em: <http://dl.acm.org/citation.cfm?id=1756006.1756025>. Citado 2 vezes nas páginas 19 e 24. FEI-FEI, L.; FERGUS, R.; PERONA, P. Learning generative visual models from few training examples: An incremental bayesian approach tested on 101 object categories. In: . [S.l.: s.n.], 2004. Citado na página 19. 30 FUKUI, H. et al. Pedestrian detection based on deep convolutional neural network with ensemble inference network. In: 2015 IEEE Intelligent Vehicles Symposium (IV). Institute of Electrical & Electronics Engineers (IEEE), 2015. Disponível em: <http://dx.doi.org/10.1109/IVS.2015.7225690>. Citado na página 23. GEFENG, Y.; XU, O.; ZHISHENG, L. Fuzzy clustering application in medical image segmentation. Institute of Electrical & Electronics Engineers (IEEE), aug 2011. Disponível em: <http://dx.doi.org/10.1109/ICCSE.2011.6028765>. Citado na página 13. GONZALEZ, R. C.; WOODS, R. E. Digital Image Processing (3rd Edition). Upper Saddle River, NJ, USA: Prentice-Hall, Inc., 2006. ISBN 013168728X. Citado na página 11. GUYON, I. et al. Feature Extraction: Foundations and Applications. 1. ed. Springer-Verlag Berlin Heidelberg, 2006. (Studies in Fuzziness and Soft Computing 207). ISBN 978-3-540-35487-1,978-3-540-35488-8. Disponível em: <http: //gen.lib.rus.ec/book/index.php?md5=19A5555BE3B93620C985560253221519>. Citado 6 vezes nas páginas 5, 7, 11, 12, 15 e 19. HAMEL, P.; ECK, D. Learning features from music audio with deep belief networks. In: Proceedings of the 11th International Society for Music Information Retrieval Conference (ISMIR). [S.l.: s.n.], 2010. p. 339–344. Citado 2 vezes nas páginas 21 e 22. HARINARAYAN, R. et al. Feature extraction of digital aerial images by FPGA based implementation of edge detection algorithms. Institute of Electrical & Electronics Engineers (IEEE), mar 2011. Disponível em: <http://dx.doi.org/10.1109/ICETECT. 2011.5760194>. Citado na página 9. HAYKIN, S. Neural Networks: A Comprehensive Foundation. 2nd. ed. Upper Saddle River, NJ, USA: Prentice Hall PTR, 1998. ISBN 0132733501. Disponível em: <http://dl.acm.org/citation.cfm?id=521706>. Citado 2 vezes nas páginas 5 e 14. HINTON, G. E.; OSINDERO, S.; TEH, Y.-W. A fast learning algorithm for deep belief nets. Neural Comput., MIT Press, Cambridge, MA, USA, v. 18, n. 7, p. 1527–1554, jul. 2006. ISSN 0899-7667. Disponível em: <http://dx.doi.org/10.1162/neco.2006.18. 7.1527>. Citado 3 vezes nas páginas 5, 19 e 21. JIA, Y. et al. Caffe: Convolutional architecture for fast feature embedding. In: Proceedings of the 22Nd ACM International Conference on Multimedia. New York, NY, USA: ACM, 2014. (MM ’14), p. 675–678. ISBN 978-1-4503-3063-3. Disponível em: <http://doi.acm.org/10.1145/2647868.2654889>. Citado na página 17. KHANUM, M.; MAHBOOB, T. A survey on unsupervised machine learning aalgorithm for automation classification and maintenance. Inter, 2015. Disponível em: <http://research.ijcaonline.org/volume119/number13/pxc3904058.pdf>. Citado na página 24. KHODASKAR, A.; LADHAKE, S. A. Pattern recognition: Advanced development, techniques and application for image retrieval. Institute of Electrical & Electronics 31 Engineers (IEEE), dec 2014. Disponível em: <http://dx.doi.org/10.1109/CNT.2014. 7062728>. Citado 3 vezes nas páginas 9, 10 e 11. LARSEN, R. J.; MARX, M. L. An introduction to mathematical statistics and its applications; 5th ed. Boston, MA: Prentice Hall, 2012. The book can be consulted by contacting: IT-ES-DNG: Abler, Daniel. Disponível em: <https: //cds.cern.ch/record/1456977>. Citado na página 11. LE, Q. V. et al. Building high-level features using large scale unsupervised learning. In: In International Conference on Machine Learning, 2012. 103. [S.l.: s.n.], 2012. Citado na página 20. LECUN, Y.; BENGIO, Y.; HINTON, G. Deep learning. Nature, Nature Publishing Group, a division of Macmillan Publishers Limited. All Rights Reserved., v. 521, n. 7553, p. 436–444, maio 2015. ISSN 0028-0836. Disponível em: <http://dx.doi.org/10.1038/nature14539>. Citado na página 21. LECUN, Y.; CORTES, C. MNIST handwritten digit database. 2010. Disponível em: <http://yann.lecun.com/exdb/mnist/>. Citado na página 19. LEE, H. et al. Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations. ACM, New York, NY, USA, p. 609–616, 2009. Disponível em: <http://doi.acm.org/10.1145/1553374.1553453>. Citado 4 vezes nas páginas 11, 19, 24 e 25. LIAO, K.-j. Image-based Pattern Recognition Principles. 2008. Disponível em: <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.536.1879>. Citado 2 vezes nas páginas 8 e 9. LIU, H.-H. et al. A sparse feature representation for genetic data analysis. Institute of Electrical & Electronics Engineers (IEEE), jul 2015. Disponível em: <http://dx.doi.org/10.1109/ICMLC.2015.7340926>. Citado na página 8. LUGER, G. F. Inteligência Artificial. 6. ed. São Paulo: Pearson, 2014. Citado na página 5. MCCULLOCH, W. S.; PITTS, W. A logical calculus of the ideas immanent in nervous activity. Bulletin of Mathematical Biophysics, v. 5, p. 115–133, 1943. Disponível em: <http://www.minicomplexity.org/pubs/1943-mcculloch-pitts-bmb.pdf>. Citado na página 5. MITCHELL, T. M. Machine Learning. [S.l.]: McGraw-Hill Science/Engineering/Math, 1997. Citado na página 8. OSOGAMI, T.; OTSUKA, M. Restricted boltzmann machines modeling human choice. In: GHAHRAMANI, Z. et al. (Ed.). Advances in Neural Information Processing Systems 27. Curran Associates, Inc., 2014. p. 73–81. Disponível em: <http://papers. nips.cc/paper/5280-restricted-boltzmann-machines-modeling-human-choice.pdf>. Citado na página 19. 32 PEEMEN, M. et al. VLIW code generation for a convolutional network accelerator. In: Proceedings of the 18th International Workshop on Software and Compilers for Embedded Systems. Association for Computing Machinery (ACM), 2015. Disponível em: <http://dx.doi.org/10.1145/2764967.2771928>. Citado 2 vezes nas páginas 22 e 23. PIMENTEL, E. P.; FRANCA, V. F.; OMAR, N. A identificacao de grupos de aprendizes no ensino presencial utilizando tecnicas de clusterizacao. SBIE, p. 494–504, 2003. Disponível em: <http://www.br-ie.org/pub/index.php/sbie/article/view/280/266>. Citado na página 13. RADFORD, A.; METZ, L.; CHINTALA, S. Unsupervised representation learning with deep convolutional generative adversarial networks. CoRR, abs/1511.06434, 2015. Disponível em: <http://arxiv.org/abs/1511.06434>. Citado na página 5. RAINA, R.; MADHAVAN, A.; NG, A. Y. Large-scale deep unsupervised learning using graphics processors. In: Proceedings of the 26th Annual International Conference on Machine Learning. New York, NY, USA: ACM, 2009. (ICML ’09), p. 873–880. ISBN 978-1-60558-516-1. Disponível em: <http://doi.acm.org/10.1145/1553374.1553486>. Citado na página 24. RUSSAKOVSKY, O. et al. Imagenet large scale visual recognition challenge. CoRR, abs/1409.0575, 2014. Disponível em: <http://arxiv.org/abs/1409.0575>. Citado na página 19. SALAKHUTDINOV, R.; MNIH, A.; HINTON, G. Restricted boltzmann machines for collaborative filtering. In: Proceedings of the 24th International Conference on Machine Learning. New York, NY, USA: ACM, 2007. (ICML ’07), p. 791–798. ISBN 978-1-59593-793-3. Disponível em: <http://doi.acm.org/10.1145/1273496.1273596>. Citado na página 19. SOUZA, L. R. Algoritmo para Reconhecimento e Acompanhamento de Trajetórias de Padrões em Vídeos. Dissertação (Monografia) — Universidade Federal do Vale do São Francisco, Juazeiro-BA, 2011. Citado na página 8. WITTEN, I. H.; FRANK, E.; HALL, M. A. Data Mining: Practical Machine Learning Tools and Techniques. 3. ed. Burlington: Morgan Kaufmann, 2011. Citado na página 7. YANG, Y.; CHEN, K. Unsupervised learning via iteratively constructed clustering ensemble. Institute of Electrical & Electronics Engineers (IEEE), jul 2010. Disponível em: <http://dx.doi.org/10.1109/IJCNN.2010.5596577>. Citado na página 8. ZHANG, Z. et al. Origa: An online retinal fundus image database for glaucoma analysis and research. In: 2010 Annual International Conference of the IEEE Engineering in Medicine and Biology. Institute of Electrical & Electronics Engineers (IEEE), 2010. Disponível em: <http://dx.doi.org/10.1109/IEMBS.2010.5626137>. Citado na página 23. ZHENG, W. Q.; YU, J. S.; ZOU, Y. X. An experimental study of speech emotion recognition based on deep convolutional neural networks. In: 2015 33 International Conference on Affective Computing and Intelligent Interaction (ACII). Institute of Electrical & Electronics Engineers (IEEE), 2015. Disponível em: <http://dx.doi.org/10.1109/ACII.2015.7344669>. Citado na página 23.
Report "CLUSTERIZAÇÃO DE GRUPOS DE IMAGENS COM DEEP LEARNING E REDES NEURAIS ARTIFICIAIS"