O presente é digital. O futuro será analógico.

Muito se fala do mundo digital de hoje, mas, se o presente é digital, o futuro será analógico.

Primeiro. a Computação quântica utiliza as propriedades quânticas dos átomos, como superposição e emaranhamento. Esta tem o potencial de quebrar toda a criptografia do mundo atual.

É como se eu pegasse todas as alternativas de um problema, computasse cada uma delas em paralelo e viesse apenas com a resposta correta.

Analógico x Digital (Fonte: Wikipedia)

Segundo: computação neuromórfica. Hoje em dia, temos um software digital imitando redes neurais humanas. A nova técnica procura ir direto ao ponto, criar um hardware, o memristor, que imita um neurônio biológico.

As vantagens seriam em consumo de energia e tamanho várias ordens de grandeza menores.

Todas essas pesquisas estão engatinhando, porém, o futuro é promissor.


E a terceira e melhor tecnologia analógica de todas: Cérebro humano.

Somos capazes de projetar coisas, criar as mais belas músicas, imaginar histórias, ensinar outras pessoas.

E fazer o futuro tecnológico, porém humano, acontecer.

Trilha sonora:

(98) Pink Floyd – Wish You Were Here – YouTube

AlphaFold, dobramento de proteínas e origami

O DeepMind, a mesma empresa da inteligência artificial que venceu os mestres do jogo Go, surpreende o mundo novamente.

Ela acaba de vencer o CASP – Critical Assessment of Protein Structure Prediction, uma competição para prever a estrutura de proteínas, com o seu algoritmo AlphaFold.

O CASP existe faz anos, e sempre tem um vencedor. Qual a diferença?

A diferença é que o AlphaFold foi muito superior aos demais, atingindo um nível de acurácia nunca antes visto, e rivalizando com técnicas laboratoriais (como o Raio-X) extremamente mais demoradas e caras.

O que é dobramento de proteínas?

Muito se fala do famoso DNA, a molécula em dupla-hélice que é o livro da vida. Entretanto,o DNA sozinho não faz nada. A informação contida neste, através de suas bases (A,G,C,T), tem que ser transcrita e levada ao ribossomos, onde são transformadas em proteínas.

Um conjunto de três bases forma um aminoácido. O conjunto se dobra em estruturas 3D complexas, que aí sim, tem função no organismo – um hormônio, um anticorpo, etc.

Proteínas são os blocos constituintes da vida, existentes em seres humanos, animais, plantas.

É como dobrar um origami de um cisne. O DNA é o papel desdobrado, onde somente as marcas de dobra são visíveis.

O problema é: a partir das marcas das dobras, como montar o origami completo, dadas as interações físicas e químicas entre os aminoácidos. O problema é extremamente complexo, porque a cadeia pode ter milhares de aminoácidos, e todos influenciam em todos.

O DeepMind é famoso por utilizar redes neurais profundas do começo ao fim, porém, dessa vez, a abordagem foi mista.

Utilizaram: 1- redes neurais de atenção para chegar em fragmentos candidatos; e 2 – algoritmos clássicos (Gradient Descent) para otimização global.

Também esperava-se um esforço computacional gigantesco, fosse puramente redes neurais profundas, mas a abordagem descrita utilizou apenas ~200 GPUS, algo relativamente modesto nos dias de hoje.

Obviamente, fizeram uma quantidade gigantesca de pesquisa para chegar nessas soluções, dentre as inúmeras outras arquiteturas possíveis.

Aplicações do dobramento de proteínas: entender doenças e projetar remédios.

Os métodos atuais permitem obter a estrutura de uma proteína ao cabo de um ano e com um custo de 120 mil dólares. O AlphaFold fornece o resultado em meia hora.

Ainda há um longo caminho a percorrer, para tornar o AlphaFold capaz de resolver problemas de verdade. O CASP é basicamente um jogo controlado, e o algoritmo funciona bem apenas no contexto do desafio proposto.

Mas o futuro é promissor. Na palavra de um dos pesquisadores, “o AlphaFold vai mudar tudo”.

Referências.

https://news.efinancialcareers.com/uk-en/325021/google-deepmind-pay

https://deepmind.com/blog/article/alphafold-a-solution-to-a-50-year-old-grand-challenge-in-biology

https://www.businessinsider.com/deepmind-google-protein-folding-ai-alphafold-technology-2020-12

https://www.kdnuggets.com/2019/07/deepmind-protein-folding-upset.html

https://visao.sapo.pt/exameinformatica/noticias-ei/ciencia-ei/2020-12-02-inteligencia-artificial-da-deepmind-faz-descoberta-cientifica-revolucionaria/

IBM Q Challenge – Inverno 2020

Finalizei a participação no IBM Q Challenge Fall 2020, resolvendo 4 questões de 5.

Foram três semanas, onde os exercícios foram sendo liberados aos poucos. O tema deste ano foi o algoritmo de Grover e memória quântica (QRAM). Os desafios foram progressivamente mais difíceis: a primeira semana foi fácil, a segunda foi média, a terceira, extremamente difícil.

O Grover é uma das aplicações práticas da comp. quântica: como encontrar a resposta correta, numa base não estruturada (é como achar um número de telefone específico numa lista telefônica).

É possível formular problemas de otimização de forma a serem resolvidos pelo método citado.

Há um ganho quadrático do Grover em relação à computação clássica. Um ganho quadrático não é muita coisa – o ideal seria um ganho exponencial como o algoritmo de Shor (que potencialmente pode comprometer toda a criptografia atual). Porém, mesmo assim, quem sabe num futuro próximo surja alguma aplicação interessante?

Qual o menor número de linhas horizontais ou verticais para cobrir todas as estrelas? No caso, três linhas verticais resolvem

O quinto desafio foi bastante complicado. Envolvia usar o Grover para resolver um problema de otimização, batizado de “asteroides”. O objetivo era fazer para uma superposição de 16 tabuleiros diferentes, ao mesmo tempo (guardando na QRAM), e encontrar o tabuleiro que necessitava de mais passos.

Agradeço à IBM pela oportunidade de aprender um pouco mais sobre este nascente ramo do conhecimento.

IBM Quantum Challenges – IBM Quantum Experience

P, NP, PSPACE e BQP

Um breve resumo dessa sopa de letrinhas da complexidade computacional.

P –  Problemas que podem ser RESOLVIDOS em tempo polinomial.

NP – Problemas que podem ser VERIFICADOS em tempo polinomial.

NP complete – Os problemas mais difíceis da classe NP.

PSPACE – Problemas que necessitam de uma quantidade polinomial de memória.

BQP – Problemas de podem ser resolvidos eficientemente num computador quântico.

Uma explicação mais elaborada.

P – São os problemas “fáceis” de serem resolvidos.

NP – São os problemas “fáceis” de serem verificados. Ou seja, dada uma resposta, é fácil verificar se ela atende ou não o problema. Porém, não é necessariamente fácil chegar à solução.

Portanto, podem existir problemas que são fáceis de verificar, porém difíceis de resolver.

Exemplo simples. Rearrumar a palavra a seguir:

lrsdhreeaaamb

É bem mais difícil encontrar a solução do que verificar que “desembaralhar” é a resposta.

Os problemas mais difíceis de todos os NP são chamados NP-Completos. Diversos problemas da vida real, como o da Satisfiabilidade, são NP-Completos.

Existe também o NP-Hard, que são problemas pelo menos tão difíceis quanto os NP-completo. Problemas de otimização são assim. NP-Completo é achar uma solução, o NP-Hard, achar a melhor solução. O famoso problema do Caixeiro-Viajante é um exemplo de problema de otimização.

Um grande problema não resolvido do mundo é se P = NP. Até hoje, não foi possível provar que são iguais ou não diferentes. É, inclusive, um dos desafios do milênio do Instituto Clay, valendo 1 milhão de dólares!

O BQP são problemas resolvíveis por um computador quântico. Suspeita-se que seja possível resolver problemas mais difíceis que a classe P, porém sem resolver o NP-completo.

Portanto, a figura que representa os graus de complexidade é apenas uma ideia. Se P for igual a NP, nem precisaríamos de computador quântico! Bastaria usar esse algoritmo, que resolve problemas difíceis de forma fácil.

O problema P vs NP é complicado de provar, não à toa, até hoje não foi resolvido.

Porém, até hoje os problemas difíceis continuam difíceis, o que é um forte indício de que P é diferente de NP, e que problemas difíceis continuarão difíceis – e que computadores quânticos serão muito úteis.

https://pt.wikipedia.org/wiki/BQP

https://en.wikipedia.org/wiki/P_versus_NP_problem

Ideias técnicas com uma pitada de filosofia

https://ideiasesquecidas.com/

Entre no grupo de estudos de Computação Quântica:

https://www.facebook.com/groups/1013309389112487

Sonhe como uma máquina

Continuando a descrição de marcos da Inteligência Artificial, em 2015 o mundo conheceu o DeepDream, publicado pelo Google.

Uma foto antiga minha no algoritmo

São imagens psicodélicas geradas por uma rede neural, como se fossem sonhos. Não à toa, o algoritmo original foi batizado “Inception” (viu o filme?).

De forma mais generalizada, o método utilizado é o de Transfer Style.

Uma rede neural convencional é capaz de classificar imagens, como detectar cachorros em fotos. Modificamos essa rede que com outra métrica, para classificar o quão similar o padrão de uma parte da tela é em relação a outra. É bem complicado definir o que é padrão e o que é imagem, mas imagine que as pinceladas fortes de Van Gogh são um padrão.

Desse modo, a rede “aprende” a desenhar como Van Gogh ou outro artista.

Colocar uma foto normal na entrada, e voilá, temos uma foto estilizada.

Há alguns sites que permitem experimentos.

https://deepdreamgenerator.com/ ou https://dreamscopeapp.com

É difícil chegar a bons resultados.

Trilha sonora: Sweet Dreams – Eurythmics

Arnaldo Gunzi.

Ideias técnicas com uma pitada de filosofia

https://ideiasesquecidas.com/

𝗗𝗲𝗲𝗽𝗠𝗶𝗻𝗱

Quando se fala de Inteligência Artificial, vale a pena ficar de olho na empresa britânica DeepMind.

Ela alcançou notoriedade ao desenvolver o AlphaGo, programa computacional que derrotou o campeão mundial do jogo Go, em 2016. O Go é uma espécie de xadrez chinês, porém, bastante mais complexo.

A DeepMind foi adquirida pelo Google em 2014.

Atualmente, ela atua em identificação de doenças oculares, economia de energia nos servidores do Google, e a difícil área de dobramento de proteínas, entre outros.

Documentário AlphaGo x Lee Sedol

Site da empresa:

https://deepmind.com

Qiskit Summer School 2020

Postagem sobre o summer school do Qiskit.

https://www.linkedin.com/posts/arnaldogunzi_ibm-qiskit-quantumcomputing-activity-6706320160816435201-EOMD

Quantum computing is a emerging field of knowledge. What was only theory years ago now is becoming reality.

I’m very proud and honoured to have attended the Qiskit Summer School 2020.

This course covered hot topics as quantum algorithms, error correction, superconducting devices and quantum chemistry, as well as labs to test our knowledge.

Thanks to Abraham Asfaw, James Wooton, Elisa Bäumer, Zlatko Minev and all the other members of #IBM.

A natureza probabilística, Heisenberg e o Eterno Retorno

Um dos resultados mais interessantes da física quântica é o de a natureza ser probabilística por princípio.

Até meados dos anos 1900, a física clássica reinava absoluta. Parecia explicar todos os fenômenos possíveis que ocorriam ao nosso redor.

A física clássica é determinística por natureza. As Leis de Newton, num espaço e tempo absolutos, governavam os movimentos de todos os corpos.

Isso levou o matemático Pierre de Laplace a pensar num “computador” ou “demônio de Laplace”. Se eu souber a posição e velocidade de todos os átomos do universo e jogar neste computador, poderei utilizar as leis de Newton para calcular a posição futura de tudo: todos os corpos do universo, todas as colisões, explosões e interações entre partículas.

Mais ainda. As Leis de Newton são reversíveis. Não há nenhuma seta do tempo, dizendo o que é passado ou futuro. Se eu filmar uma bola de bilhar batendo em outra, e reproduzir o filme ao contrário, vou ter outra interação possível entre corpos.

Deste modo, o computador de Laplace poderia calcular todo o futuro, e todo o passado, a partir do tempo presente.

O cálculo tradicional de probabilidades apenas reflete a nossa ignorância. Num jogo de cara ou coroa, por exemplo, se soubéssemos exatamente as interações de cada átomo da moeda, do ar, e as forças aplicadas, poderíamos predizer com certeza o resultado cara ou coroa. Só não conseguimos porque não sabemos as variáveis.

Outra ideia é a do Eterno Retorno, do filósofo Friedrich Nietzsche. Se existe uma quantidade de átomos finita, eles podem se recombinar de maneira finita (embora o número de combinações seja estratosférico, mas finito). Num tempo infinito (e o infinito é muito, muito grande), um dia a configuração de todos os átomos do universo será exatamente igual à configuração de hoje. Jogando no computador de Laplace, todo o presente vai se repetir exatamente da mesma maneira, por incontáveis ciclos, pela eternidade…

Um pouco de cultura pop: a série Dark explora o Eterno Retorno, com uma história completamente insana de pessoas viajando para o futuro e para o passado, tendo filhos que serão os seus próprios pais, encontrando os seus “eus” antigos, em ciclos que se repetem infinitamente.

Para furar o ciclo do Eterno Retorno, o Princípio da Incerteza de Heisenberg.

Em meados de 1900, algumas rachaduras na física clássica levaram à física quântica, que é o modelo que melhor descreve o mundo desde então: o problema da radiação do corpo negro, o efeito fotoelétrico, entre outros.

O Princípio da Incerteza é um dos pilares deste novo conhecimento. Este diz que não é possível saber ao mesmo tempo a posição e a velocidade (momento) de uma partícula, com uma precisão menor do que uma constante (a constante de Planck). Se eu sei a posição, perco precisão no momento, e vice-versa.

Para medir uma partícula subatômica, é necessário jogar uma luz, um fóton sobre este. A energia do fóton muda a posição e momento da partícula, de modo que a observação muda o experimento.

Isso de o observador mudar o experimento dá margem à várias interpretações exotéricas exploradas em cursos de autoajuda e afins: a consciência altera a realidade, basta desejar que o universo se molda em conformidade, etc. Menos… Uma coisa é mudar um partícula subatômica, outra, o universo!

Apesar de Werner Heisenberg ser uma pessoa real, talvez ele seja mais conhecido hoje, na  cultura pop, como o codinome de Walter White, da série Breaking Bad.

Pensando em elétrons nas camadas de um átomo, é como se fosse abelhas numa colmeia. Temos uma nuvem de probabilidades de encontrar uma determinada abelha ao redor da colmeia, porém não dá para dizer exatamente onde ela vai estar em dado momento.

Portanto, a natureza é probabilística. No menor nível de decisão possível, não vamos saber exatamente onde está o elétron, ou o fóton, ou qualquer outra partícula elementar. Este pode estar numa infinidade de lugares, vez por outra até atravessando barreiras de energia impossíveis de serem transpostas (que é o princípio do microscópio de tunelamento eletrônico).

Nem o computador de Laplace, com capacidade de computação infinita, conseguiria prever todo o futuro, pois há uma quantidade infinita de possibilidades.

Ao assumir a física quântica como pilar da ciência moderna, o Eterno Retorno fica sendo um conceito mais distante.

E se um dia ou uma noite um demônio se esgueirasse em tua mais solitária solidão e te dissesse: “Esta vida, assim como tu vives agora e como a viveste, terás de vivê-la ainda uma vez e ainda inúmeras vezes: e não haverá nela nada de novo, cada dor e cada prazer e cada pensamento e suspiro e tudo o que há de indivisivelmente pequeno e de grande em tua vida há de te retornar, e tudo na mesma ordem e sequência – e do mesmo modo esta aranha e este luar entre as árvores, e do mesmo modo este instante e eu próprio. A eterna ampulheta da existência será sempre virada outra vez – e tu com ela, poeirinha da poeira!

Nietzsche em Gaia a ciência

Veja também:

https://ideiasesquecidas.com/2019/08/23/mundo-bizarro/

https://ideiasesquecidas.com/2020/02/19/jogando-xadrez-com-deus/

https://ideiasesquecidas.com/2020/06/14/efeito-borboleta-a-roda-da-fortuna-e-as-moiras/

O Quadrado Mágico “esburacado”

Vi o puzzle a seguir, e parecia interessante. Por falta de um nome melhor, chamá-lo-ei de “quadrado mágico esburacado”.

Se o leitor quiser tentar resolver, aviso que há spoilers à frente.

Como eu já tinha feito uma rotina que resolve quadrados mágicos de qualquer tamanho, achei que poderia aproveitar algum padrão já existente.

Vide https://asgunzi.github.io/QuadradoMagicoD3/index.html

Entretanto, não foi possível partir para uma solução que utilizasse quadrados mágicos comuns. E também não consegui chegar numa fórmula matemática fechada, que chegue a uma solução.

O jeito foi apelar para os computadores. Mesmo assim, não é tarefa fácil.

O jeito “força bruta” pura chega a 20! (fatorial) combinações. Isso dá o número astronômico de 2,4*10^18 combinações. Computador algum no mundo consegue resolver.

O que fiz foi usar a estrutura do problema para diminuir drasticamente o número de combinações. Uma “força bruta” refinada…

Imagine fatiar o problema. Resolver somente a primeira linha.

Se olhar só para a primeira linha, há 20 números possíveis, e a combinação de 4 delas tem que somar 42.

O Python tem algumas rotinas de combinações e permutações que vêm bem a calhar. Elas geram todas as combinações possíveis.

   #Passo 0:
   comb = itertools.combinations(setNumbers,4)
   
   for c in comb:
       if sum(c)==42:
          #Faz alguma coisa

Esse código vai descartar uma combinação errada (digamos, [1,2,3,4]) e vai ficar com uma combinação correta (ex. [1, 2, 20,19]).

Dada essa combinação correta, ainda assim há todas as permutações possíveis dela (ex. [1,20, 19, 2], [20,19,2,1] ) a checar.

permut1 = list(itertools.permutations(c)) #Código para gerar permutações

Isso dá comb(20,4)*permut(4) = 116 mil

Para cada combinação possível da primeira linha, agora vamos tentar encaixar a primeira coluna:

São três espaços vazios, para encaixar 16 números (ou seja, 20 iniciais – 4 da primeira linha). A soma da coluna tem que dar 42.

O resto do procedimento é igual. Dá comb(16,3)*permut(3) = 3360.

Uma nota importante. Das 116 mil, somente uma fração preenche o critério da soma ser 42. Portanto, esses 3360 testes não são aplicados aos 116 mil, somente ao que passou. Ainda assim, dá um número enorme, mas dessa forma, vamos restringindo o problema.

A seguir, tento preencher a diagonal. Isso porque ela tem só duas casas vazias. É um espaço menor de busca de combinações, mais fácil. Vamos restringindo o problema aos poucos.

A seguir, a segunda coluna.

E assim, sucessivamente.

Com isso, a rotina chegou à diversas soluções:

6910017
0202137
1850163
1481910
40111215

Ou:

1219020
0181239
11160105
1764150
1307148

Ou:

2417019
020589
10150161
1831470
12061113

Na verdade, a rotina mostrou mais de 30 mil soluções (tinha várias permutações simples das soluções mostradas, e até repetidas).

Mesmo não tendo a elegância de ter solução única, é um desafio computacional interessante.

Download do código (em Python): https://github.com/asgunzi/QuadradoMagicoEsburacado

Veja também:

https://ideiasesquecidas.com/laboratorio-de-matematica/

O inverno e a primavera da Inteligência Artificial

Em 2006, fiz a cadeira de Redes Neurais da UFRJ, como parte do meu mestrado em Processamento Digital de Sinais, motivado pelas tais redes que imitavam o cérebro humano, aprendiam sozinhas e que poderiam nos superar um dia.

Achei decepcionante, na época. As redes pareciam mais uma curiosidade, com pouca aplicação prática, do que algo realmente útil.

Alguns motivos:

– Só conseguíamos criar redes de três, cinco camadas, com poucos neurônios por camada (shalow network)

– Aplicações restritas à interpolação de funções

– O software Estatística tinha algo pronto para redes pequenas. Qualquer aplicação mais complexa, seria necessário pegar toda a matemática e implementar do zero.

Os resultados frios e estéreis eram porque, em 2006, eu estava em pleno “Inverno da Inteligência Artificial”.

Contudo, 10 anos depois, o campo era quente e fértil de inovações: redes de centenas de camadas (daí o termo deep neural network), milhares de neurônios por camada, reconhecimento de imagens, transcrição da linguagem falada, automação de tarefas rotineiras, humanos superados em jogos complexos como o Go…

A curva acima é chamada de “curva S da inovação”.

A maior parte dos conceitos, como o neurônio artificial, a função de ativação, backpropagation, já existia desde a década de 70, e não tinham mudado nada.

Como a IA saiu do inverno para a primavera que vivenciamos nos dias de hoje?

Aponto para três tópicos principais:

– Hardware

– Software

– Dados

1 – Hardware

A evolução da capacidade computacional e o poder do processamento paralelo são dois itens importantes.

1.1 – Lei de Moore

A Lei de Moore diz que o poder computacional dobra a cada 18 meses, para o mesmo custo. A unidade básica de computação é o transístor, basicamente uma chave que pode assumir o valor 0 ou o valor 1.

A Lei de Moore deve-se, basicamente, à miniaturização do transístor. Foi isso que permitiu celulares de bolso mais poderosos do que os supercomputadores mais avançados de décadas atrás.

Do computador que eu tinha em 2006 para 2018, 12 anos, houve um avanço de 256 vezes!

Imagine se o meu rendimento no banco fosse assim…

1.2 – GPU

Outro fator é o processamento paralelo, principalmente devido à GPU (Graphic process unit). Não confundir com a CPU, que é o coração de um computador.

Com a evolução dos computadores, ocorreu uma exigência cada vez maior na parte gráfica, devido aos jogos. A solução foi criar unidades de processamento especializadas em processar gráficos, a GPU (ou seja, os gamers financiaram este avanço na área de IA).

A CPU é como um carro, que se move rápido, porém leva pouca gente. A GPU é como um trem. É mais devagar que a CPU, mas transporta muito mais informação. Se for para transportar milhares de pessoas, é melhor ir de metrô do que alocar vários carros.

A parte mais pesada da rede neural é o algoritmo de treinamento, o backpropagation. Os cientistas da computação criaram meios de ‘enganar’ a GPU: disfarçaram a informação como um gráfico, para ser processada e devolvida à rede.

Hoje em dia, temos até TPU (Tensor process unit). A ideia é a seguinte. A GPU é para computação gráfica, e estava sendo utilizada via gambiarra para processar informação. Que tal uma unidade especialmente projetada para processamento paralelo? É a TPU.

Isso sem contar que, hoje em dia, não precisamos nem comprar o hardware. Dá para utilizar via cloud, alugando o tempo gasto, e o provedor do serviço se encarrega de ter o melhor hardware possível.

2 – Software

Além do hardware, ocorreu um avanço significativo em software.

Em 2019, Yoshua Bengio, Geoffrey Hinton e Yann LeCun ganharam o prêmio Turing, tipo o Nobel da computação, por terem fundado as bases para a IA sair do inverno.

Todo prêmio é injusto, no sentido de que deixa de fora dezenas de pessoas que contribuíram.

Destaco aqui três inovações importantes: erros numéricos, novos truques, pacotes open-source.

2.1 – Erros numéricos

Um backpropagation com dezenas de camadas e milhares de neurônios causa o efeito do “vanishing gradient”. Basicamente, as correções acabam ficando tão pequenas que desaparecem.

Aqui, cabe destacar que houve um avanço nos pacotes de álgebra linear como um todo, possibilitando que a computação seja feita com menor erro numérico e viabilizando a o backpropagation em várias camadas.

2.2 – Novos truques

Com o uso das redes neurais, um arsenal de novas técnicas foi sendo incorporado. Algumas:

Convolutional neural network: é uma camada de rede neural que funciona como uma janela deslizante – esta técnica performou melhor que todos os algoritmos de classificação comuns da época em reconhecimento de escrita

ReLu: é uma função de ativação extremamente simples, (= x se maior que zero, 0 se menor), porém, acrescenta uma não-linearidade interessante, que ajuda no problema do gradiente acima

Dropout: a fim de deixar a rede mais robusta, a cada rodada parte da informação é “jogada fora”. É como ler o mesmo livro várias vezes, porém a cada vez tirando algumas palavras por página – cada treinamento é mais difícil, porém a capacidade de generalização final acaba ficando maior.

Com o saco de truques maior, a própria arquitetura da rede passa a ser extremamente mais complexa. Combinar parte da rede convolucional, camadas com dropout, número de camadas, número de neurônios.

Há tantos hiperparâmetros que o desafio dos dias de hoje é descobrir a arquitetura ideal, não treinar a rede ou programar ela do zero.

2.3 – Poderosos pacotes Open Source

O Google empacotou as inovações citadas acima e lançou o Tensor Flow em 2015. O Facebook fez algo semelhante, com o PyTorch, de 2016, e há outras alternativas existentes. Note o timing, exatamente 10 anos depois do começo da minha pesquisa.

Não há nada melhor para um pacote computacional do que ter uma base grande de usuários engajados na causa: pessoas que vão utilizar, encontrar erros, enviar sugestões etc.

Todos os pacotes acima continuam em desenvolvimento e vão continuar enquanto a primavera da IA continuar.

Para o usuário, é fantástico. Não é necessário programar o neurônio artificial nem os complexos algoritmos de treinamento e arquitetura da rede neuronal, e sim, utilizar o conhecimento best in class do mundo. Grande parte das startups que vemos hoje utilizam pacotes como os citados.

O resultado é o que conhecemos hoje: algoritmos diversos reconhecendo padrões em imagens, sons e vídeos, em carros autônomos, fazendo forecast de falhas, batendo o ser humano em diversas áreas do conhecimento.

3 – Dados

Tão importante quanto software e hardware, são os próprios dados.

Hoje em dia, há uma quantidade praticamente ilimitada de dados digitais: fotos, vídeos, áudio.

Em 2006, as câmeras digitais já existiam, porém não eram onipresentes como é hoje. Eu me lembro de possuir uma câmera analógica na época, pois ainda eram mais baratas e melhores do que as digitais. A internet, idem. A minha era conexão discada. Eu esperava dar meia-noite, para me conectar e pagar apenas um pulso de telefone.

O grande gargalo dos métodos de IA da atualidade são os dados. Eles têm que ter quantidade e qualidade suficientes.

Hoje em dia, bancos de dados como ImageNet tem mais de um milhão de imagens rotuladas. Não consigo nem imaginar a quantidade de dados que o Google ou a Amazon têm à sua disposição.

Menção honrosa ao Mechanical Turk da Amazon. Ela é uma “inteligência artificial artificial”. São seres humanos fazendo trabalhos simples, como reconhecer objetos em imagens e transcrever palavras num áudio (e sendo parcamente remunerados).

O Mechanical Turk permitiu que aos cientistas da computação obterem informações cruciais: dados rotulados. Alguém tem que ensinar o computador que um gato é um gato, e não um copo ou um elefante.

No futuro, teremos mais dados ainda. A Internet das Coisas está chegando. Deve demorar um tempo para se consolidar, mas vai chegar forte um dia.

E qual o futuro da IA?

Houve um avanço extraordinário no campo da inteligência artificial, impulsionada principalmente pelas redes neurais.

Estamos hoje na primavera da IA, com uma miríade de possibilidades surgindo.

A curva S da inovação, olhada a longo prazo, parece mais com a “espiral da inovação”: picos e vales sempre crescentes.

Vale citar a Lei de Amara: “Tendemos a superestimar as inovações a curto prazo, e subestimar a longo prazo.”

Nos primórdios das redes neurais, já se sonhava com dispositivos inteligentes, algoritmos que bateriam a bolsa de valores, robôs que conversariam com o ser humano e dominariam a Terra.

Grande parte dos sonhos dos anos 70 não ocorreram nas décadas seguintes ao previsto. Estão ocorrendo hoje, 50 anos depois!

Vale notar que, embora as conquistas tenham sido extraordinárias, a IA ainda é restrita para casos bastante específicos: automatizar rotinas simples, reconhecer objetos em imagens, transcrever a linguagem falada, criar música nova rearranjando músicas pré-existentes.

Ainda não chegamos na IA geral, aí sim, uma inteligência que realmente competiria com o ser humano em tarefas difíceis: gerenciar, tomar decisões abstratas, programar a si mesmo, criar novos algoritmos, novos jogos.

Provavelmente, a Lei de Amara ocorrerá novamente. O conhecimento atual não será suficiente para chegar na IA geral. Será necessária a evolução de outros campos: hardware, software, dados, computação quântica, computação biológica, chips em 3D, e outros conceitos que não existem ainda.

Passaremos pelo verão, outono, um novo inverno, para alcançar uma nova primavera, daqui a algumas décadas.

Trilha sonora: Vivaldi – Primavera

Vivaldi – Inverno

Outros Links:

https://ideiasesquecidas.com/2017/10/25/a-artificial-inteligencia-artificial/

https://ideiasesquecidas.com/2020/04/17/o-computador-quantico-que-sabe-tudo/

https://www.theverge.com/2019/3/27/18280665/ai-godfathers-turing-award-2018-yoshua-bengio-geoffrey-hinton-yann-lecun

https://en.wikipedia.org/wiki/Vanishing_gradient_problem

https://en.wikipedia.org/wiki/Yann_LeCun

https://www.tensorflow.org/

https://pytorch.org/

A saída da Lei de Moore: hardware e software

Segue um artigo interessante.

Este defende que uma das saídas para a limitação da evolução dos computadores, a Lei de Moore, pode ser em software.

A Lei de Moore afirma que o número de transístores (unidade básica de computação) dobra a cada 18 meses, para um mesmo custo.

A grande miniaturização dos componentes eletrônicos dos últimos anos (e décadas) segue a curva prevista.

No final do dia, foi a evolução do hardware que permitiu o grande avanço computacional visto nos dias de hoje, em que um celular que cabe no bolso tem milhares de vezes de capacidade a mais do que o mais moderno supercomputador do passado.

Há algumas alternativas em hardware sendo exploradas: chips em 3D, computação biológica, computação quântica.

O artigo fornece mais uma alternativa: evolução em software.

Atualmente, há uma grande quantidade de sistemas que utilizam soluções prontas, como blocos de Lego que vão sendo montados sucessivamente uns sobre os outros. Ex. Python é uma linguagem de programação de alto nível, com poucos comandos é possível fazer muita coisa. Isso não é de graça, o preço é o overhead de processamento.

Se tais sistemas forem reescritos, tendo em vista a performance ao invés da velocidade em programar, podemos ter um grande aumento de velocidade para a mesma capacidade de processamento.

Ele chama de “redução” a reutilização de blocos de programação.

It sometimes yields a staggering amount of inefficiency. And inefficiencies can quickly compound. If a single reduction is 80 percent as efficient as a custom solution, and you write a program with twenty layers of reduction, the code will be 100 times less efficient than it could be.

Segue link: https://spectrum.ieee.org/tech-talk/computing/software/software-engineering-can-save-us-from-the-end-of-moores-law

A era dos cursos presenciais acabou!

Em termos de custo, qualidade e praticidade, cursos on-line vencem com facilidade. A única real desvantagem é a falta de networking entre os alunos.

Seguem algumas indicações.

Bolsa da Amazon e a Udacity, de introdução a machine learning. Vai até Julho.
https://sites.google.com/udacity.com/aws-machine-learning/home

Sobre Power BI, a EDX tem o curso a seguir – gratuito para visualização
https://www.edx.org/course/analyzing-and-visualizing-data-with-power-bi-2

A Kaggle é uma plataforma de desafios de data science. Já participei de alguns, e é num nível bem alto, com equipes do mundo todo e prêmios para os melhores colocados. https://www.kaggle.com/

Há opções mais completas (e pagas). Seguem algumas:

Nanodegree em Python, análise e visualização de dados na Udacity
https://www.udacity.com/course/data-analyst-nanodegree–nd002

Python básico, voltado para análise de dados, na EDX
https://www.edx.org/course/analytics-in-python

Para profissionais de Supply Chain, a indicação abaixo é do amigo Marcelo Tescari, um dos maiores especialistas no tema.
https://www.edx.org/micromasters/mitx-supply-chain-management

Há um universo muito maior a ser explorado, em business, finanças e outros ramos do conhecimento. Favor deixar outras indicações nos comentários.