Baixe o app para aproveitar ainda mais
Prévia do material em texto
CONVOLUÇÃO E APLICAÇÕES COMERCIAIS EM APRENDIZAGEM PROFUNDA 4 UNIDADE SER_DATSCI_APRENPROF_UNID4.indd 90 06/12/2019 12:03:10 Objetivos da unidade Tópicos de estudo Apresentar e descrever as Redes Convolucionais Baseadas em Regiões, isto é, Region-based Convolutional Neural Networks (R-CNNs), considerando-se o conteúdo desde o conceito de convolução em si até Faster R-CNNs e RBNs; Apresentar e exemplificar aplicações comerciais na subárea de aprendizagem profunda, com exemplos classificados por setores da economia ou áreas do conhecimento. Redes convolucionais basea- das em regiões Convolução como máscara Processo de convolução Arquitetura de Rede Neural Convolucional (CNN ou ConvNet) Camada de entrada ou input Camada convolucional ou camada de convolução Camada de não-linearidade ou estágio detector via função de ativação Rectified Linear Unit (ReLU) Camada de pooling ou camada de subsampling Camada totalmente conectada Arquitetura de Rede Neural Convolucional baseada em Regi- ões (R-CNN) R-CNNs Fast R-CNNs Faster R-CNNs e RPNs Aplicações comerciais Segurança pública Comércio e varejo Acessibilidade e comunicação Transportes e logística Saúde e medicina APRENDIZAGEM PROFUNDA 91 SER_DATSCI_APRENPROF_UNID4.indd 91 06/12/2019 12:03:10 Redes convolucionais baseadas em regiões As Redes Neurais Convolucionais ou Convolutional Neural Networks (CNNs ou ConvNets), resumidamente, confi guram-se como a utilização de redes neu- rais para fazer a aprendizagem de padrões, principalmente em imagens, por causa da alta performance e da alta acurácia depois do término de seu proces- so de aprendizagem. Para melhor compreender sobre o tema principal de Redes Neurais Convo- lucionais baseadas em Regiões ou Region-based Convolutional Neural Networks (R-CNNs) é importante que você internalize conhecimentos básicos desde Con- volução e ConvNets. Sequencialmente, para ampliar seus conhecimentos sobre R-CNNs, você aprenderá também sobre Fast R-CNNs e Faster R-CNNs. Provavelmente você já deve ter aprendido sobre convolução ou pelo menos já ouviu falar neste termo. O conceito de convolução geralmente está ligado ao processamento de imagens ou ao processamento de sinais, e a técnica de convo- lução é originária da matemática por tratar-se de representações matemáticas, tais como as matrizes. Sendo assim, sabemos que uma das técnicas fundamentais para o pro- cessamento e reconhecimento de imagens é a convolução e, junto à trans- formada de Fourier, que serve para criar ligações básicas entre domínios do espaço e suas frequências, podemos destacar características da imagem, bem como distinguir seus elementos. Em resumo, a convolução é geralmente usada como solução para o problema de detecção de imagens ou fotografi as. Convolução como máscara Uma das aplicações de convolução é como máscaras, ou seja, as máscaras vão determinar as características de imagens, tais como bordas, extremidades, mar- gens, extração de ruídos ou detecção de formas. O conceito de fi ltros geralmente está relacionado com a área de processamento de sinais e de imagens. O processo de convolução unidimensional, por exemplo, entre vetores A e B (A * B) pode ser verifi cado como um conjunto de somas de produtos dos valores A e B, em que B é espelhado e é deslocado para uma posição pertinente à máscara. APRENDIZAGEM PROFUNDA 92 SER_DATSCI_APRENPROF_UNID4.indd 92 06/12/2019 12:03:10 Para exemplificar o processo de convolução como máscara, apresenta- remos um passo a passo elaborado por Oliveira (2017), que pode ser visto a seguir: 1. O vetor B é espelhado e alinhado com o primeiro valor de A. Assim, o pri- meiro valor da convolução será: [0 ∙ (-1)] + (0 ∙ 3) + (1 ∙ 1) = 1 A 0 1 2 3 2 1 0 B -1 3 1 A*B 1 2. B move uma posição. Então, o resultado da convolução de A * B será: [0 ∙ (-1)] + (1 ∙ 3) + (2 ∙ 1) = 5 A 0 1 2 3 2 1 0 B -1 3 1 A*B 1 5 3. B, então, move uma posição para sua direita e o resultado do processo de convolução será: A * B [1 ∙ (-1)] + (2 ∙ 3) + (3 ∙ 1) = 8 A 0 1 2 3 2 1 0 B -1 3 1 A*B 1 5 8 4. B é movido mais uma posição e o valor do resultado da convolução A * B é: [2 ∙ (-1)] + (3 ∙ 3) + (2 ∙ 1) = 9 A 0 1 2 3 2 1 0 B -1 3 1 A*B 1 5 8 9 APRENDIZAGEM PROFUNDA 93 SER_DATSCI_APRENPROF_UNID4.indd 93 06/12/2019 12:03:10 5. B, então, é deslocado para mais uma posição e o resultado do processo de convolução de A * B vai ser: [3 ∙ ( -1)] + (2 ∙ 3) + (1 ∙ 1) = 4 A 0 1 2 3 2 1 0 B -1 3 1 A*B 1 5 8 9 4 6. B move mais uma posição e o resultado de sua convolução é A * B, que será: [2 ∙ (-1)] + (1 ∙ 3) + (0 ∙ 1) = 1 A 0 1 2 3 2 1 0 B -1 3 1 A*B 1 5 8 9 4 1 7. O valor é deslocado mais uma vez e o resultado da convolução A * B será: [1 ∙ (-1)] + (0 ∙ 3) + (0 ∙ 1) = -1 A 0 1 2 3 2 1 0 B -1 3 1 A*B 1 5 8 9 1 -1 Portanto, o resultado fi nal deste exemplo de processo de convolução será a criação do vetor [1, 5, 8, 9, 4, 1, -1]. No caso do bidimensional, utiliza-se o mes- mo raciocínio em que a matriz resultante terá a mesma dimensão. Convolução como máscara O processo de convolução é uma das técnicas mais utilizadas no processa- mento de imagens e processamento de sinais. Conforme mostrado pelos autores Gonzalez e Woods, em Digital image processing, publicado em 2008, a convolução de dois valores contínuos f(x) e g(x), denotado por f(x) * g(x), pode ser determinada pela integral a seguir na Equação 1: APRENDIZAGEM PROFUNDA 94 SER_DATSCI_APRENPROF_UNID4.indd 94 06/12/2019 12:03:11 Equação 1 f(x) * g(t) = f(α) g(x - α) dα ∞ -∞ ∫ Nessa equação, α é a variável de integral, o sinal de menos é o sinal de espe- lhamento em relação a um determinado eixo, e x é deslocado para mover uma função a outra. Portanto, assume-se de −∞ a ∞. Além disso, o grau de significância no processo de análise de domínio re- side no fato de f(x) * g(x) e F(u) G(u) formarem um par de transformadas de Fourier, conforme mostra a Equação 2: Equação 2 f(x) * g(t) = f(α) g(x - α) dα e-j2πμxdx ∞ -∞ ∫ ∞ -∞ ∫ = f(α) g(x - α) e-j2πμxdt dα ∞ -∞ ∫ ∞ -∞ ∫ Os termos dentro dos colchetes significam justamente a transformada de Fourier de g(x - a). Além disso, nota-se que g(x – a) = G(μ)e-j2πμx, em que G(μ) é a transformada de Fourier h(t). Fazendo uso disso na Equação 3, temos: Equação 3 f(x) * g(t) = G(μ)e-j2πμx dα ∞ -∞ ∫ f(α) = G(μ)F(μ) ∞ -∞ ∫= G(μ) f(α) e-j2πμx dα A Equação 3 nos mostra a transformada de Fourier em relação ao processo de convolução. Normalmente, temos o valor de duas transformações. Obtém-se a convolução no domínio espacial por meio do cálculo da inversão da transformada de Fourier, sendo f(x) * g(x) e G(u)F(u) o par da transformada. Então, esse valor obtido de resul- tado é metade do teorema de convolução, conforme mostra a Equação 4: Equação 4 f(x) * g(x) ⇔ G(μ)F(μ) Na Equação 4, é possível notar que a expressão à direita é conseguida por meio da transformada de Fourier da expressão à esquerda, ao mesmo tempo em que a expressão da esquerda é realizada pela transformada de Fourier in- APRENDIZAGEM PROFUNDA 95 SER_DATSCI_APRENPROF_UNID4.indd 95 06/12/2019 12:03:11 versa da expressão à direita, resultando em uma outra metade do teorema de convolução, mostrada na Equação 5: Equação 5 f(x)g(x) ⇔ G(μ) * F(μ) Em resumo, no processo ocorre a convolução no domínio da frequên- cia, processo análogo à multiplicação de domínio espacial, estando os dois elementos associados pelas transformadas contínuas e inversas de Fourier, respectivamente. Arquitetura de Rede Neural Convolucional (CNN ou ConvNet) As Redes Neurais Convolucionais, geralmente conhecidas pela sigla CNNs (do termo original em inglês Convolutional Neural Networks, ou do ape- lido em inglês ConvNets), têm como inspiração o mecanismo do córtex visual do cérebro humano. A neurociência, portanto, é uma das inspirações para o estudo das CNNs, porém, há diferençasna segmentação biológica entre córtex visual superior e inferior, enquanto as CNNs diferenciam-se através de camadas de convolução e camadas totalmente conectadas. O cérebro humano possui grande quantidade de células com a função de de- tectar a luz em pequenas escalas, elas são conhecidas como campos receptivos. Tais células trabalham como fi ltros locais sobre o espaço de entrada, e, quanto mais complexa for a célula, maior será seu campo de recepção. A diferença entre uma rede neural convencional e uma CNN é que enquanto na primeira usa-se como referência um vetor genérico, na segunda usa-se como referência valores de entrada da rede, geralmente no formato de imagens. Ainda, é usado o concei- to de backpropagation para inter-relacionar as camadas da rede. Segundo Goodfellow, Bengio e Courville, autores do livro Deep Learning: adaptive computation and Machine Learning series, publicado em 2016, as CNNs são redes neurais que fazem uso de operações matemáticas convolucionais em pelo menos uma das camadas da rede neural. Ao contrário de outras redes neurais, nas CNNs usa-se a convolução ao invés da multiplicação de matrizes em geral. Mesmo assim, as CNNs não deixam de ser uma arquitetura de rede si- APRENDIZAGEM PROFUNDA 96 SER_DATSCI_APRENPROF_UNID4.indd 96 06/12/2019 12:03:11 milar às redes neurais convencionais. Desde o início, as CNNs mostravam uma ótima performance na realização de tarefas de classifi cação de imagens com letras manuscritas e em detecção de rostos ou faces. Atualmente também é comum o uso para detecção de carros ou automóveis. Classifi cação Rede Neural Convolucional Carro Fotografi a Figura 1. Representação de CNN, com exemplifi cação de uma imagem de entrada com um automóvel para fi ns de classifi cação. Fonte: SHUTTERSTOCK. Acesso em: 27/11/2019. (Adaptado). Camada de entrada ou input Geralmente, a entrada ou input de uma CNN é uma imagem 2D, repre- sentada pelas três dimensões [A x B x C], e na qual C representa os canais de cores da imagem. Um dos maiores pontos negativos é que o modelo de CNN originalmente não trabalha com alta resolução de imagens. Tendo isso em mente, uma das alternativas para uma melhor performance da rede é obrigar que cada neurô- nio tenha um número menor de conexões para a imagem de entrada. Desse modo, podemos obrigar a conectividade local em várias camadas, para fi ns de obtenção de uma rede profunda localmente conectada (OLIVEIRA, 2017). As CNNs trabalham com volumes 3D dos neurônios. Isto é, 3D devido às três dimensões (altura, largura, profundidade) do modelo e considerando-se, que neste caso, a profundidade se refere ao padrão RGB das imagens em 2D (red, green, blue). Neste caso, portanto, profundidade não se refere à imagem de entrada em 3D, pois a imagem de entrada continua sendo em 2D. Cada camada da CNN transforma o volume de entrada em 3D, para um volume de saída de neurônios de ativação em 3D. Isto poderá ser melhor visualizado na Figura 2. APRENDIZAGEM PROFUNDA 97 SER_DATSCI_APRENPROF_UNID4.indd 97 06/12/2019 12:03:14 Profundidade Altura Largura Figura 2. Exemplifi cação de CNN. Fonte: KARPATHY; JOHNSON, 2016. (Adaptado). Camada convolucional ou camada de convolução A camada convolucional ou camada de convolução representa o nú- cleo de uma rede neural artificial (RNA) e seus dados de saída. Os dados de saída, geralmente, são imagens de mesmas dimensões que a imagem de entrada, além de serem compreendidos como neurônios e organizados em uma determinada dimensão. Na maioria dos casos, é na camada convolucional que ocorre a maior necessidade de recursos computacionais, devido ao alto processamento de dados que acontece nesta camada especificamente. Os parâmetros da camada de convolução consistem em um conjunto de filtros de aprendiza- gem, sendo que cada filtro é relativamente pequeno em relação à dimen- são da imagem original e estende-se por toda profundidade, conforme os dados de entrada de uma imagem bidimensional. Semelhante a uma rede neural, cada filtro (máscara) envolve, durante o passo de ida, o processo de convolução de imagem e calcula o produto das matrizes. Dessa forma, é produzido um mapa de ativação de duas dimensões dos filtros. De maneira intuitiva, a rede irá aprender os fi ltros que são ativados quando recebe determinada imagem na camada de entrada, tais como uma borda de objeto, o contorno de alguma orientação, borrões ou manchas de cores, etc. Cada um dos fi ltros, considerando que exista uma quantidade N de fi ltros, produzirá, respectivamente, um mapa de ativação bidimensional. Em seguida, todos estes fi ltros são empilhados com a dimensão profundi- dade e produzem o volume de saída ou output da camada de convolução. APRENDIZAGEM PROFUNDA 98 SER_DATSCI_APRENPROF_UNID4.indd 98 06/12/2019 12:03:14 As CNNs fazem uso de uma combinação de três arquiteturas para assegurar al- gum grau de mudança e de invariância quanto à distorção: campo receptivo local, parâmetros compartilhados ou pesos compartilhados, e subamostras espa- ciais ou temporais, como veremos, detalhadamente, a seguir. • Campo receptivo local: Tem a função de fazer com que os neurônios detectem características visuais específi cas, como bordas, pontos e vértices combinados com camadas da rede que possuem conexões locais no espaço , e que são completamente conectadas ao volume de entrada. Imaginemos que uma imagem de entrada possua a dimensão 32x32x3 e que o último 3 identifi que o fato da imagem ser colorida (RGB). Caso o campo receptivo seja de tamanho 5x5, cada nó na camada de convolução terá o peso com regiões 5x5x3 de entrada de dados. Portanto, o campo receptivo local é o fi ltro que irá trabalhar na imagem de entrada no processo de convolução; • Arranjo espacial ou temporal: O arranjo espacial ou temporal se subdivide em profundidade, passo e preenchimento em zero; EXPLICANDO A profundidade realiza o controle de quantidade de nós da camada de convolução que conecta a mesma região dos dados de entrada; o passo determina como se aloca a profundidade ao redor das dimensões espaciais; e o preenchimento em zero permite controlar o tamanho espacial dos dados de saída e preservar o tamanho de espaço dos dados de entrada. • Parâmetros compartilhados ou pesos compartilhados: Tal compar- tilhamento se refere à utilização de mais de um parâmetro para mais ou- tra subamostra ou mapa de características do modelo. Devemos lembrar que em um único resultado de processo de convolução pode haver muitos mapas de características. Os pesos (weights) compartilhados, portanto, possuem valor compartilhado. Camada de não-linearidade ou estágio detector via função de ativação Rectified Linear Unit (ReLU) Segundo Goodfellow, Bengio e Courville, autores do livro Deep lear- ning: adaptive computation and machine learning series, publicado em 2016, ao abordarem as camadas de CNN, na qual entre a camada de con- APRENDIZAGEM PROFUNDA 99 SER_DATSCI_APRENPROF_UNID4.indd 99 06/12/2019 12:03:14 volução e a camada de pooling, existe o chamado estágio detector ou camada de não-linearidade. É nesta etapa da rede que ocorre o uso de uma função de ativação específica, ReLU, para fins de não-linearidade. ReLU se refere ao termo em inglês Rectified Linear Unit ou, em portu- guês, Unidade Linear Retificada, podendo ser representada pela fórmula g(z) = max {0, z}. Outras funções de ativação podem ser usadas para não-linearidade, mas a ReLU geralmente apresenta bons resultados. A vantagem da ReLU em relação às demais é a maior rapidez de treinamento. A função ReLU computa a função f(x)=max (0,x), também encontrada reescrita como y = max (x, 0), usando-se zero como referência, conforme observado no Diagrama 1. DIAGRAMA 1. ILUSTRAÇÃO DE FUNÇÃO RELU, ESPECIFICAMENTE SOBRE FUNÇÃO DE TRANSFERÊNCIA Função de Transferência 15 20 -10 35 18 -110 25 100 20 -15 25 -10 101 75 18 23 15 20 0 35 18 0 25 10020 0 25 0 101 75 18 23 0,0 Fonte: HIJAZI; KUMAR; ROWEN, 2015 . (Adaptado). Camada de pooling ou camada de subsampling O processo de pooling, isto é, o que o ocorre na camada de pooling nas CNNs ou ConvNets, pode ser resumido como a aplicação de um filtro bidimensional sobre cada um dos canais do mapa de características gera- APRENDIZAGEM PROFUNDA 100 SER_DATSCI_APRENPROF_UNID4.indd 100 06/12/2019 12:03:14 do pela camada de convolução, sumarizando as características que estão na região sob o filtro. O pooling pode se subdividir em pooling máximo, pooling e pooling médio. As camadas de pooling são usadas nas CNNs ou ConvNets para reduzir as dimensões dos mapas de características, logo, reduzindo a necessidade de computar ou calcular, e tornando o modelo mais robusto e rápido em relação às características mapeadas. Alguns autores, tais como Hijazi, Kumar e Rowen (2015), também cha- mam o pooling pelo nome de subsampling. Em casos de pooling médio e máximo, a entrada ou input é dividida em dois espaços bidimensionais sem sobreposição. No caso do pooling máximo, o valor máximo dentre quatro valores é selecionado. Já no caso de pooling médio, o valor médio dentre quatro valores será selecionado. Isto está exemplificado no Diagrama 2. DIAGRAMA 2. ILUSTRAÇÃO DE POOLING, COM POOLING MÉDIO E POOLING MÁXIMO Pooling médio Pooling máximo 21 8 8 12 12 19 9 7 8 10 4 3 18 12 9 10 15 9 12 7 21 12 18 10 Por exemplo, considere a Figura 3, na qual uma entrada de tamanho 224x224x64 é agrupada com filtro de tamanho e passo dois, diminuindo o volume do dado de saída para 112x112x64. Fonte: HIJAZI; KUMAR; ROWEN, 2015. (Adaptado). APRENDIZAGEM PROFUNDA 101 SER_DATSCI_APRENPROF_UNID4.indd 101 06/12/2019 12:03:14 pool downsampling224 224 112 112 224x224x64 112x112x64 Figura 3. Ilustração de pooling com downsampling. Fonte: AKHTAR; RAGAVENDRAN, 2019. Acesso em: 27/11/2019. Camada totalmente conectada Camada Totalmente Conectada (CTC), ou Fully Connected Layer (FC Layer) em inglês, relaciona-se com todo o processo de convolução feito nas camadas anteriores da rede. Em várias estruturas de CNNs, antes da saída, ocorre o uso de pelo menos uma camada totalmente conectada, que é preenchida com as ativações de neurônios anteriores. O principal objetivo desta camada é usar os resultados ante- riores do processo de convolução ou do processo de pooling para classificar as imagens em rótulos (labels), em um exem- plo bem simplificado. Portanto, a saída ou output daquelas camadas anteriores é simplificado em um vetor de valo- res, sendo que cada valor representa probabilidades de que uma característica x pertença a um rótulo y. Após, ocorre um processo de backpropagation dentro da própria camada totalmente conectada, para determinar os pesos (weights) mais apropriados. Assim, a partir da intera- ção entre os neurônios, resulta-se uma classificação. Um detalhe importante é que CTC ou FC Layer e camada convolucio- nal diferenciam-se apenas pelo fato de que na camada convolucional os neurônios estão conectados à uma região local da entrada, e que muitos APRENDIZAGEM PROFUNDA 102 SER_DATSCI_APRENPROF_UNID4.indd 102 06/12/2019 12:03:15 neurônios compartilham parâmetros. Porém, também há semelhanças en- tre as duas, dado que possuem formas funcionais idênticas e então pode haver conversão entre os dois tipos de camadas. DIAGRAMA 3. ILUSTRAÇÃO DE PROCESSAMENTO EM CAMADA TOTALMENTE CONECTADA (L) 29 59 12 1 (L) (L) 0,1 0,0 (L)Y0 88 (L)Y1 13 Multiplicação elemento por elemento e acumulação Multiplicação elemento por elemento e acumulação Multiplicação elemento por elemento e acumulação Multiplicação elemento por elemento e acumulação Acumulação Acumulação W 3 -1 2 4 Y0 2 3 5 4 (L-1) Y1 7 2 1 3 (L-1) W 7 0 -2 4 W 5 1 3 -4 (L) 1,0 W -1 -3 2 4 (L) 1,1 0,0 (L) 0,1 (L) Fonte: OLIVEIRA, 2017. (Adaptado). Em síntese, foi possível aprender que as CNNs ajudam a solucionar os proble- mas de detecção de objetos em imagens através do conceito de convolução, como você poderá visualizar na Figura 4. A partir destes conhecimentos, ficará mais fácil para você aprender sobre Rede Neural Convolucional baseada em Regiões (R-CNN). APRENDIZAGEM PROFUNDA 103 SER_DATSCI_APRENPROF_UNID4.indd 103 06/12/2019 12:03:15 Figura 4. Representação de CNN com exemplo de detecção de objetos das classes carro e pessoa. Fonte: SHUTTERS- TOCK. Acesso em: 28/11/2019. (Adaptado). Por fi m, podemos aprender que a sequência de etapas que foi apresentada, desde a camada de evolução até a camada totalmente conectada (FC layer), é fundamental para as CNNs. Arquitetura de Rede Neural Convolucional baseada em Regiões (R-CNN) Atualmente, a tendência é criar redes neurais artifi ciais com cada vez mais e mais camadas profundas e o maior número de neurônios possíveis, visto que existem mais dados dispo- níveis para treinamento e que temos, em geral, um maior acesso a recur- sos de hardware e novos algoritmos desenvolvidos. Por consequência, as ConvNets tendem a trazer resultados cada vez melhores para o processo de classifi cação de imagens e também para a detecção de objetos. Com base nesse cenário, foram desenvolvidas novas técnicas baseadas no sucesso dos métodos de detecção de objetos em CNN, tais como R-CNN, Fast R-CNN e Faster R-CNN, que serão apresentados a seguir. APRENDIZAGEM PROFUNDA 104 SER_DATSCI_APRENPROF_UNID4.indd 104 06/12/2019 12:03:27 R-CNNs As Redes Neurais Convolucionais baseadas em Regiões (R-CNNs), do inglês Region-based Convolutional Neural Networks (R-CNNs) foram, em primeiro momento, desenvolvidas utilizando ConvNets Profundas (Redes Neurais Convolucionais Profundas) para conseguir encontrar Regiões de Interesse (RoIs) em uma imagem de entrada, e fazer detecção e reconhecimento de ob- jetos. Um dos principais autores sobre R-CNNs chama-se Ross Girshick, tendo sido referência para alguns conceitos demonstrados a seguir. A R-CNN nada mais é do que um algoritmo de detecção de objetos em imagens que realiza a combinação das propostas de região de baixo para cima, usando características previamente calculadas pelo uso de CNN. En- tão, a rede neural faz essa tarefa através de processos de regressão e de classificação. Desta forma, na regressão, são analisadas as coordenadas dos objetos através da chamada caixa delimitadora ou retângulo deli- mitador (bounding box), e na classificação é realizada a predição de a qual classe pertence cada objeto. Os algoritmos de R-CNN são basicamente compostos por três módulos principais: o primeiro gera regiões propostas independentes das catego- rias das imagens por meio de busca seletiva (selective search); o segundo é um algoritmo de CNN que seleciona as características dessa região inde- pendente; e o terceiro tem a função de analisar e classificar as caracterís- ticas que foram extraídas. Podemos afirmar que uma das desvantagens de R-CNNs é que o algoritmo de busca seletiva é fixo, sem que ocor- ra aprendizado ou aprendizagem. Mas há a vantagem de que, através do mesmo algoritmo de busca seletiva, são propostas regiões em uma quantidade específica e suficiente, ao invés de propor regiões em uma quantidade exagerada e com maior custo computacional. O modelo de R-CNN em si poderá ser observado no Diagrama 4. APRENDIZAGEM PROFUNDA 105 SER_DATSCI_APRENPROF_UNID4.indd 105 06/12/2019 12:03:28 DIAGRAMA 4. MODELO DE R-CNN CNN Previsão de Categoria Previsão de Categoria Previsão de caixa delimitadora Previsão de caixa delimitadora CNN BUSCA SELETIVA Fonte: Dive into deep learning, [s.d]. Acesso em: 27/11/2019. (Adaptado). Fast R-CNNs A Fast R-CNN, que por sua vez é uma tentativa de melhora de perfor- mance e de maior rapidez de detecção da R-CNN, é um algoritmo para trei- namento que possui apenas uma fase. Em tal fase, aprende as características para poderclassifi car os objetos das imagens ao melhorar suas localizações espaciais. Se comparada com a R-CNN, a Fast R-CNN corrigiu o gargalo de perfor- mance que havia na R-CNN em extrair independentemente as característi- cas para cada região proposta da imagem; tal gargalo computacional ocorria porque haviam muitas sobreposições das regiões, resultando em tarefas re- petitivas para o computador ou para calcular. Ao contrário da R-CNN, a Fast R-CNN usa uma imagem inteira como forma de entrada para a CNN para fi ns de extração das caracterís- ticas. Outra diferença é que na R-CNN há a inclusão de Pooling RoI (Region of Interest), isto é, Pooling de Região de Interesse na imagem. Na sequên- cia, ocorrem transformações internas e a previsão de ambas as categorias e da caixa delimitadora para cada re- gião que foi proposta. APRENDIZAGEM PROFUNDA 106 SER_DATSCI_APRENPROF_UNID4.indd 106 06/12/2019 12:03:47 DIAGRAMA 5. MODELO DE FAST R-CNN Camada densa Pooling de Região de Interesse (ROI) Busca seletivaCNN Previsão de categoria Previsão da caixa delimitadora Fonte: Dive into deep learning, [s.d.]. Acesso em: 27/11/2019. (Adaptado). Logo, a partir da análise do Diagrama 5, podemos ver que um grande dife- rencial da Fast R-CNN é a presença de RoI Pooling, isto é, através de janelas de pooling (pooling windows) da Região de Interesse. A extração de características, devemos lembrar, ocorre através de um mapa de características convolucional (convolutional feature map). Faster R-CNNs e RPNs Faster R-CNN é um algoritmo de detecção que possui, como o seu diferencial, a adição de uma arquitetura de Rede de Proposta de Regiões, do termo em inglês Region Proposal Network (RPN). Você pode observar o modelo no Diagrama 6. APRENDIZAGEM PROFUNDA 107 SER_DATSCI_APRENPROF_UNID4.indd 107 06/12/2019 12:03:57 DIAGRAMA 6. MODELO DE FASTER R-CNN COM REGION PROPOSAL NETWORK (RPN) Camada densa Pooling de Região de Interesse (ROI) Non-Maximum Suppression (NMS) Anchor Box CNN Camada deconvolução Previsão de categoria Previsão da caixa delimitadora Previsão da caixa delimitadora Previsão da caixa binária Fonte: Dive into deep learning, [s.d.]. Acesso em: 27/11/2019. (Adaptado). O uso de Region Proposal Networks (RPNs) permitiu que a rede com- partilhe as camadas convolucionais ao invés de fazer um procedimento se- parado para a extração de regiões, como era feito antigamente em outros modelos. As RPNs fazem parte da primeira etapa da Faster R-CNN, que irá reconhecer a região do objeto de seu interesse na imagem que foi adicio- nada na camada de entrada. A segunda etapa é basicamente uma Fast R-CNN que classifica em qual categoria tal objeto se encaixa, por exemplo, se é um cachorro ou se é um gato. Logo, a arquitetura de treinamento Faster R-CNN é uma arquitetura End-to-End que treina conjuntamente a RPN e a Fast R-CNN. Então, a Fas- ter R-CNN, no seu primeiro passo, analisa as imagens de entrada por meio de uma CNN para, assim, extrair as características de relevância da ima- gem, obtendo mapas de características que serão, depois, utilizados pela RPN. Após isso, a RPN verifica os mapas de características que foram obti- dos a partir das imagens utilizadas para treinamento e faz dois cálculos de pontuações. O primeiro cálculo é sobre se a janela de pooling possui algum APRENDIZAGEM PROFUNDA 108 SER_DATSCI_APRENPROF_UNID4.indd 108 06/12/2019 12:04:06 objeto de interesse conforme o mapa de características; já o segundo cál- culo é sobre verificar se o objeto é ou não é de interesse. Outros dois itens que se diferenciam na Faster R-CNN, mas que na ver- dade estão inclusos na RPN, são Non-Maximum Suppression (NMS) e caixa âncora (anchor box). As RPNs, de certa forma, são Fully Convolutional Networks (FCNs) e po- dem ser treinadas End-to-End, especifi camente para a tarefa de geração de proposta de detecção. Por design, as RPNs fazem a previsão de propostas de regiões com grande variedade de escalas e de proporções das imagens. Classifi cador Pooling de Região de Interesse (RoI) Rede de Proposta de Região (RPN) Camadas de convolução Imagem Mapa de características Propostas Figura 5. Modelo de Faster R-CNN como uma rede unifi cada para detecção de objetos, incluindo a RPN, a qual serve como a “atenção” desta rede unifi cada. Em resumo e em conclusão ao tema de Faster R-CNNs, sabemos que o com- partilhamento de características convolucionais com a rede de detecção tor- nou a etapa de proposta de regiões praticamente sem custos computacionais. Portanto, o conceito de Faster R-CNNs em aprendizagem profunda possibilitou a existência de um sistema de detecção de objetos quase em tempo real, e o conceito de RPNs ajudou a melhorar a qualidade das propostas de região e melhorou a acurácia da detecção de objetos. APRENDIZAGEM PROFUNDA 109 SER_DATSCI_APRENPROF_UNID4.indd 109 06/12/2019 12:04:06 Aplicações comerciais Após o estudo das teorias de aprendizagem profunda, veremos a prática através de aplicações comerciais, isto é, para negócios. Podemos interpretar que mesmo que, algumas das áreas listadas não prio- rizem a parte comercial, por exemplo as ciências, muitas vezes há o envolvi- mento de algum software pago ou de algum serviço pago. Neste tópico não veremos necessariamente marcas e preços, mas sim uma visão melhor de como a inteligência artifi cial e a aprendizagem pro- funda estão impactando, diariamente, as empresas e, consequentemente, a sociedade. Segurança pública Segurança é uma das áreas mais impactadas pela inteligência artifi cial e a aprendizagem profunda, com vantagens e com desvantagens. A aplicação desta tecnologia nas atividades voltadas à segurança pública inclui vantagens diversas vantagens, como: redução de crimes, melhoria da qualidade de vida, redução do tráfi co de drogas. Em resumo, uma vida melhor em sociedade. Por outro lado, há desvantagens como a diminuição da privaci- dade das pessoas. A principal – ou a mais famosa – tecnologia usada para a segurança é o reconhecimento facial. A tecnologia de reconhecimento facial não é algo novo, pois existe desde a década de 60 e 70 e, provavelmente, você mesmo já aplicou o reconhe- cimento facial. Já usou o Facebook para marcar amigos nas fotos online? Já usou o app Google Fotos? Se a sua resposta for sim, então você defi nitivamente está usando inteligência artifi cial e aprendizagem profunda para o reconhecimento facial. Nos softwares de segurança, o uso do reconhecimento facial depende de ques- tões relacionadas ao Estado. Por exemplo, em alguns países, a aplicação desta fer- ramenta como forma de garantir a segurança é feita para melhorar a sociedade, garantindo os direitos humanos; já em outros países, seu uso pode ocasionar a falta de tais direitos. APRENDIZAGEM PROFUNDA 110 SER_DATSCI_APRENPROF_UNID4.indd 110 06/12/2019 12:04:06 Comércio e varejo Nesta área, inteligência artifi cial e aprendizagem profunda são imprescin- díveis, pois trazem diversas facilidades inovadoras que elevam o percentual de vendas. Um exemplo é a implantação da Internet of Thinking (IoT), ou internet das coisas. Essa tecnologia oferece uma série de vantagens, sendo usada para simplifi car e automatizar atividades corriqueiras da rotina. Por exemplo, com a internet das coisas é possível fazer compras, evitando fi las nos caixas e outros problemas tradicionais que tornam chata a experiência de comprar e de vender. ASSISTA O objetivo da internet das coisas é conectar itens usados no dia a dia (geladeiras, fogões, janelas, TVs, carros etc) à internet. Para entender um pouco melhor como fun- ciona este conceito, confi ra o vídeo Internet das coisas – Tecmundo explica. No Brasil, por exemplo, já há aplicação no setor de supermercados que em- prega tecnologias semelhantes. A rede Zaitt, em parceria com o Carrefour, já es- treou mercados autônomos com o uso da tecnologiade reconhecimento facial. Acessibilidade e comunicação Uma área muito legal em que está sendo aplicada inteligência artificial e aprendizagem profunda, sem dúvidas, é a acessibilidade. A tecnologia de visão computacional e a tecnologia de texto para fala, entre outras, podem ser usadas para a maior inclusão e para melhorar a vida de pessoas com deficiência auditiva ou visual. Eventualmente, pode envolver também a subárea de Aprendizado de Máquina. Para idiomas, inteligência artificial e a apren- dizagem profunda também podem ser aplica- das comercialmente. Na verdade, já existem aplicações comerciais, por exemplo, para tradu- ção entre diferentes idiomas. APRENDIZAGEM PROFUNDA 111 SER_DATSCI_APRENPROF_UNID4.indd 111 06/12/2019 12:04:07 Transportes e logística Você já ouviu falar da empresa Tesla? Não, não é uma empresa criada pelo inventor Nikola Tesla. É a empresa do empreendedor Elon Musk, que usa alta tecnologia para fabricar carros e até caminhões baseados em energia elétrica ao invés de combustíveis. Inteligência artifi cial e aprendizagem profunda estão sendo usadas comer- cialmente na produção de veículos autônomos, isto é, carros, caminhões e ou- tros veículos sendo dirigidos por IA, ao invés de serem dirigidos por um ser hu- mano. A principal tecnologia empregada é a visão computacional, mas existem muitas outras envolvidas. Isto pode impactar o setor de transportes e logística, inclusive, com a criação de “robotáxis”, ou “táxis robô”. Saúde e medicina Muitas das técnicas de inteligência artificial e aprendizagem profunda também podem ser aplicadas na área de saúde. Em alguns países, este setor é conhecido como healthcare, ou seja, cuidados em saúde. Sendo assim, envolve várias áreas da saúde, inclusive a farmácia, ajudando na descoberta de novos medicamentos. CONTEXTUALIZANDO Um exemplo já presente nos dias de hoje são os smartwatches, os reló- gios inteligentes. Muitas pessoas utilizam esse aparelho durante a prática de atividades físicas para monitorar batimentos cardíacos, resistência etc. O resultado é uma analise em tempo real de como o organismo reage durante os exercícios e a detecção de qualquer anormalidade. Tecnologias específi cas aplicadas na saúde são a visão computacional, Natural Language Processing (NLP), aprendizado por reforço, métodos gene- ralizados, entre outros. Em medicina, especifi camente, IA e DL podem ajudar nos exames por imagem e nos diagnósticos médicos, além de usar robôs para apoiar os médicos em cirurgias. APRENDIZAGEM PROFUNDA 112 SER_DATSCI_APRENPROF_UNID4.indd 112 06/12/2019 12:04:07 Sintetizando Ao longo da unidade, disponibilizamos mais conteúdos e mais conheci- mentos sobre aprendizagem profunda. Foi apresentado e descrito, através de subtópicos, as Redes Convolu- cionais baseadas em Regiões, do inglês Region-based Convolutional Neural Networks (R-CNN). Desta forma, você não aprendeu apenas sobre R-CNNs, mas sobre várias etapas e vários conceitos importantes sobre redes neu- rais, tais como Rectified Linear Unit (ReLU), Fast R-CNNs e Faster R-CNNs, e por fim, Region Proposal Network (RPN). Ainda, foram apresentadas e exemplificadas aplicações comerciais com aprendizagem profunda, com exemplos classificados por setores da econo- mia ou áreas do conhecimento, tratando-se de temas desde segurança pú- blica até saúde. APRENDIZAGEM PROFUNDA 113 SER_DATSCI_APRENPROF_UNID4.indd 113 06/12/2019 12:04:07 Referências bibliográficas ADAM, B.; ZAMAN F. H. K.; YASSIN I. M.; ABIDIN H. Z.; RIZMAN Z. I. Performance evaluation of faster R-CNN on GPU for object detection. [s.l.], 2017. Disponível em: <http://jfas.info/psjfas/index.php/jfas/article/view/2849>. Acesso em: 13 nov. 2019. AKHTAR, N.; RAGAVENDRAN, U. Interpretation of intelligence in CNN-pooling processes: a methodological survey. 2019. Disponível em: <https://link.springer. com/article/10.1007/s00521-019-04296-5>. Acesso em: 27 nov. 2019. DARTORA, A. Reconhecimento automático de padrões radiológicos utilizan- do aprendizado profundo. 72f. Dissertação como requisito parcial (Pós-gradua- ção em informática) – Setor de Ciências Exatas, Universidade Federal do Paraná, Curitiba. 2018. DIVE INTO DEEP LEARNING. 13.8. Region-based CNNs (R-CNNs , [s.d.]. Disponível em: <https://d2l.ai/chapter_computer-vision/rcnn.html>. Acesso em: 27 nov. 2019. ELDOR, T. Capsule Neural Networks: the next neural networks? Part 1: CNNs and their problems. Towards Data Science, [s.d.]. Disponível em: <https://towards- datascience.com/capsule-neural-networks-are-here-to-finally-recognize-spa- tial-relationships-693b-7c99b12>. Acesso em: 27 nov 2019. ESTEVA, A.; ROBICQUET, A.; RAMSUNDAR, B. et al. A guide to deep learning in healthcare. Nature, [s.d.]. Disponível em: <https://www.nature.com/articles/ s41591-018-0316-z>. Acesso em: 13 nov.2019. FILHO, O. M.; NETO, H. V. Processamento digital de imagens. Rio de Janeiro: Edi- tora Brasport, 1999. FONSECA, M. Sem caixa nem segurança: mercado autônomo abre as portas em SP. Exame, São Paulo, 4 mai. 2019. Disponível em: <https://exame.abril.com.br/ pme/sem-caixa-nem-seguranca-mercado-autonomo-abre-as-portas-em-sp/>. Acesso em: 11 nov. 2019. GANDHI, R. R-CNN, Fast R-CNN, Faster R-CNN, YOLO - object detection algori- thms. Towards Data Science, [s.d.]. Disponível em: <https://towardsdatas- cience.com/r-cnn-fast-r-cnn-faster-r-cnn-yolo-object-detection-algorithms- -36d53571365e>. Acesso em: 27 nov. 2019. GEEKS FOR GEEKS. CNN | Introduction to Pooling Layer. Disponível em: <https:// www.geeksforgeeks.org/cnn-introduction-to-pooling-layer/>. Acesso em: 27 nov. 2019. APRENDIZAGEM PROFUNDA 114 SER_DATSCI_APRENPROF_UNID4.indd 114 06/12/2019 12:04:07 GIRSHICK, R. Fast R-CNN. ICCV ‘15 Proceedings of the 2015 IEEE International Conference on Computer Vision (ICCV) Pages 1440-1448. 2015. Disponível em: <https://arxiv.org/abs/1504.08083>. Acesso em: 26 nov. 2019. GITHUB. CS231n Convolutional neural networks for visual recognition. Stan- ford University, [s.d.]. Disponível em: <http://cs231n.github.io/neural-networ- ks-1/>. Acesso em 26 nov. 2019. GITHUB. CS231n convolutional neural networks for visual recognition. Stan- ford University, [s.d.]. Disponível em: <http://cs231n.github.io/convolutional-net- works/>. Acesso em 13 Nov 2019. GONZALEZ, R.; WOODS, R. Digital image processing. EUA: Editora Pearson, 2008. GOODFELLOW, I; BENGIO, Y; COURVILLE, A. Deep Learning: adaptive computa- tion and Machine learning series. Cambridge, MA: MIT Press: 2016. HAYKIN, Simon. Redes Neurais: Princípios e Prática. Porto Alegre: Bookman, 2001. HIJAZI, S.; KUMAR, R.; ROWEN, C. Using convolutional neural networks for image recognition. Disponível em: <http://ip.cadence.com/uploads/901/cnn- -wp-pdf>. Acesso em 11 nov. 2019. INTERNET DAS COISAS. Postado por TecMundo. (1min. 53s.). son. color. port. Disponível em: <https://youtu.be/O8-oiSsZl1Y>. Acesso em: 28 nov. 2019. ITFORUM365. Reconhecimento facial funciona mesmo na segurança pú- blica?, [s.d.]. Disponível em: <https://www.itforum365.com.br/reconhecimen- to-facial-funciona-mesmo-na-seguranca-publica/>. Acesso em: 12 nov. 2019. KREYSZIG, E. Advanced Engineering Mathematics. Editora Wiley, 2010. KOLODNY, L. Tesla acquiring deepscale, computer vision start-up, for self-driving. CNBC, [s.d.]. Disponível em: <https://www.cnbc.com/2019/10/01/tesla-acquirin- g-deepscale-computer-vision-start-up-for-self-driving.html>. Acesso em 13 nov. 2019. KUZOVKIN, I. Activations of deep convolutional neural networks are aligned with gamma band activity of human visual cortex, [s.d.]. Disponível em: <ht- tps://www.nature.com/articles/s42003-018-0110-y>. Acesso em: 26 nov. 2019. LE, Q. V. A Tutorial on Deep Learning Part 2: autoencoders, convolutional- neural networks and recurrent neural networks. [s.l.], 2015. Disponível em: <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.703.5244>. Acesso em: 13 nov. 2019. APRENDIZAGEM PROFUNDA115 SER_DATSCI_APRENPROF_UNID4.indd 115 06/12/2019 12:04:07 LECUN, Y.; KAVUKCUOGLU, K.; FARABET, C. Convolutional networks and appli- cations in vision. 2010. Disponível em: <https://koray.kavukcuoglu.org/publis/ lecun-iscas-10.pdf>. Acesso em: 13 nov. 2019. NISHIHARA, N. ”Just Walk Out” with Amazon and the internet of thinking. Accen- ture, [s.d.]. Disponível em: <https://www.accenture.com/us-en/blogs/blogs-nao- mi-nishihara-future-retail-internet-of-thinking>. Acesso em: 11 nov. 2019. OLIVEIRA, H. S. Redes neurais convolucionais para classificação de expres- sões faciais de emoções. 120 f. Projeto de pesquisa (Bacharelado em Ciência da Computação) – Departamento de Ciência da Computação, Universidade Federal de Roraima, Boa Vista, 2017. TEICHMANN, M. MultiNet: real-time joint semantic reasoning for autono- mous driving. Disponível em: <https://arxiv.org/abs/1612.07695>. Acesso em: 13 nov. 2019. APRENDIZAGEM PROFUNDA 116 SER_DATSCI_APRENPROF_UNID4.indd 116 06/12/2019 12:04:07
Compartilhar