Nesta apresentação vermos o que é Visão Computacional, seus objetivos, aplicações e por que este é um problema inverso e mal posto. Vamos verificar de maneira prática como Visão Computacional pode ser complexa, e o quão sua utilização pode ser benéfica.
23. FPGAs
EVALUATION
CPUs and FPGAs,
ASICs under investigation
EFFICIENCY
TRAINING
CPUs and GPUs, limited FPGAs,
ASICs under investigation
Control
Unit
(CU)
Registers
Arithmetic
Logic Unit
(ALU)
+
+
+
+
+
+
+
FLEXIBILITY
CPUs GPUs
ASICs
Visão é um problema inverso e mal posto
Ambiguidade
>Ambiguidades
>Distorções
>Paradoxos
>Ficções
Distorção
Anamalous motion
Menor custo de armazenamento
Em 1950 o IBM350 tinha uma capacidade de 5MB a um custo de U$10.000 por MB
Em 1987 o Floppy Disk de 1.44MB tinha um custo de U$15 por MB
Em 2015 um Flash Disk de 512GB tem um custo de U$0.00008 por MB
Se compararmos o custo por poder de processamento de 1980 com a mesma capacidade em 2010, essa capacidade é 160 milhões de vezes mais barata.
$/Transistor/Hz 1980 = 0.0000000006701 x 2010 = 4.092E-18
Como podemos ver, esse é um problema simples, porém trabalhoso...
Os arquivos de dados train.csv e test.csv contém imagens em escala de cinza, de dígitos desenhados à mão, de zero a nove. Cada imagem é de 28 pixels de altura e 28 pixels de largura, para um total de 784 pixels no total, gerando um total de 6.272 bits em uma camada, ou 18.816 bits se forem true-color, para serem processados.
Cada pixel tem um pixel de valor único associado a ele, indicando a claridade ou escuridão daquele pixel, com números mais elevados significam mais escura. Este valor de pixel é um número inteiro entre 0 e 255, inclusive. O conjunto de dados de treinamento, (train.csv), tem 785 colunas. A primeira coluna, chamado marcador, é o dígito que foi desenhado pelo usuário. O restante das colunas contêm os valores de pixel da imagem associada.
Monocromático = 1 banda
True Color = 3 bandas
Multispectral = 4 ou 5 bandas
Hiperspectral = N bandas
256 = 2^8
Em algum momento, os primeiros criadores do computador binário surgiram com o byte como a próxima unidade padrão acima do bit. Um byte é definido como 8 bits e pode representar valores de 0 a 255 ou 2 à potência de 8 valores diferentes. Um byte representa 256 valores diferentes.
Byte == 256
Então é isso. Um byte é uma unidade de armazenamento em um computador que contém 8 bits e pode armazenar 256 valores diferentes: 0 a 255. Geralmente, as letras são armazenadas em um byte, por exemplo. Você tem um computador com giga-bytes (1 bilhão de bytes) de espaço em disco e megabytes (1 milhão de bytes) de memória - bem, talvez seja o futuro e você tenha giga-bytes de memória e tera-bytes (1 trilhão bytes) de espaço em disco. Em qualquer caso, 256 é especial, pois representa a unidade base mais comum em um computador.
calcular o byte: N * 8 = Byte
CPUs = Central Processing Unit
GPUs = Graphics Processing Unit
FPGAs = Field Programmable Gate Array
ASICs = Application Specific Integrated Circuit (é um microchip projetado para uma aplicação especial)
TensorFlow e CNTK são bibliotecas de deep learning, projetada para ter o melhor desempenho em GPUs. A GPU é instalada no barramento PCIe, e a comunicação para este barramento é muito mais lenta que as comunicações entre a CPU e a memória do sistema.
E assim, temos vantagens em usar a GPU somente quando há muitos cálculos a serem feitos nos dados que o tempo de transferência do sistema-GPU se torna insignificante em relação ao tempo de cálculo real.
Como podemos ver no gráfico, embora o tempo de CPU aumente de maneira exponencial, os tempos de computação da GPU permanecem uniformes sem muita variação, mesmo quando os tamanhos das matrizes crescem quase três vezes. Na realidade, os tempos da GPU estão aumentando, mas de forma tão imperceptível que parece quase impossível. Ao mesmo tempo, o tempo de CPU já está um pouco dobrado em 30. E isso é o uso de meu CPU e GPU de laptop que estão longe de plataformas de jogos high-end ou até mesmo de seus chipsets de desktop comuns.
A GPU implementa um modelo computacional chamado SIMD, Single Instruction Multiple Data, ou instrução única de dados múltiplos. No modelo SIMD, temos vários processadores, mas somente uma unidade de processamento. Logo podemos dizer que uma arquitetura SIMD faz muitas coisas em paralelo, mas sempre as mesmas coisas. Qual o benefício disso? Paralelismo!!!
SIMD – Single Instruction Multiple Data
Quando eu tenho mais de uma GPU na máquina, quero poder utilizar ambas para o meu processamento
Também quero paralelisar esse processamento...
Mas o que é a computação cognitiva? Esse é o termo cunhado pela IBM, que ao se apoiar no conceito de inteligência artificial e aprendizagem de máquinas, descreve uma nova era computacional em que os sistemas interagem de forma mais integrada com os seres humanos por meio da compreensão de linguagem natural, capacidade de aprendizagem e de identificação de padrões ou insights, que se assemelha ao raciocínio humano. Essas características diferenciam a computação cognitiva do termo analytics, que de forma geral se refere a aplicações que usam técnicas descritivas e modelos preditivos, para extrair conhecimento de grandes massas de dados.
Atualmente, a computação cognitiva já está sendo aplicada para solucionar diferentes desafios e reúne casos de sucesso, principalmente, nas áreas de engajamento com clientes, suporte a decisão e apoio à descoberta científica. A USAA (empresa norte-americana de serviços financeiros), por exemplo, revolucionou o relacionamento com seus clientes, na medida em que treinou seu sistema cognitivo – sim, esse é o termo utilizado na implementação desta tecnologia – para responder perguntas sobre a transição da vida militar para a vida civil, contidas em mais de 3 mil documentos.