Os mais recentes avanços nos sistemas de inteligência artificial, como os programas de reconhecimento de fala e facial, são o resultado das redes neuronais — malhas densamente interligadas de processadores de informação simples que aprendem a executar tarefas analisando grandes conjuntos de dados.
No entanto, as redes neuronais são grandes e os seus cálculos consomem muita energia, o que as torna impraticáveis para dispositivos portáteis. A maioria das aplicações para smartphones que dependem de redes neuronais enviam simplesmente dados para servidores na internet, que os processam e enviam os resultados de volta para o telefone.
Agora, os investigadores do MIT desenvolveram um chip de propósito específico que aumenta a velocidade dos cálculos das redes neuronais três a sete vezes em comparação com os seus antecessores, ao mesmo tempo que reduz o consumo de energia em 94% a 95%. Isto poderá tornar viável a execução de redes neuronais localmente em smartphones ou até mesmo a sua integração em eletrodomésticos.
“O modelo geral de processador é que existe uma memória algures no chip e um processador noutro lugar no chip, e move-se dados de um lado para o outro quando se realizam estes cálculos”, diz Avishek Biswas, estudante de pós-graduação em engenharia elétrica e da computação no MIT, que liderou o desenvolvimento do novo chip.
“Como estes algoritmos de aprendizagem automática exigem muitos cálculos, esta transferência constante de dados é a principal responsável pelo consumo de energia. Mas os cálculos realizados por estes algoritmos podem ser simplificados para uma operação específica, chamada produto escalar. A nossa abordagem foi: podemos implementar esta funcionalidade de produto escalar dentro da memória, para que não tenha de estar a transferir estes dados constantemente?” Biswas
e o seu orientador de tese, Anantha Chandrakasan, reitor da Escola de Engenharia do MIT e professor catedrático da Cátedra Vannevar Bush de Engenharia Elétrica e de Computação, descrevem o novo chip num artigo apresentado por Biswas na Conferência Internacional de Circuitos de Estado Sólido.
Voltando ao analógico:
as redes neuronais são geralmente organizadas em camadas. Um único nó de processamento numa camada da rede recebe normalmente dados de múltiplos nós da camada seguinte e passa dados para múltiplos nós da camada acima. Cada ligação entre nós tem o seu próprio "peso", que indica qual a dimensão que a saída de um nó terá no cálculo realizado pelo seguinte. Treinar a rede consiste em estabelecer esses pesos.
Um nó que recebe dados de múltiplos nós da camada seguinte multiplica cada entrada pelo peso da ligação correspondente e soma os resultados. Esta operação, a soma das multiplicações, é a definição de um produto escalar. Se o produto escalar exceder um determinado valor limite, o nó irá passá-lo para os nós da camada seguinte, através de ligações com os seus próprios pesos.
Uma rede neural é uma abstracção: os "nós" são apenas pesos armazenados na memória de um computador. Calcular um produto escalar implica normalmente recuperar um peso da memória, recuperar o elemento de dados associado, multiplicar os dois, armazenar o resultado algures e, em seguida, repetir a operação para cada entrada do nó. Como uma rede neural tem milhares ou mesmo milhões de nós, isto representa uma enorme quantidade de dados para processar.
Mas esta sequência de operações é apenas uma aproximação digital do que acontece no cérebro, onde os sinais que viajam ao longo de múltiplos neurónios se encontram numa "sinapse", ou seja, um espaço entre feixes de neurónios. As taxas de disparo dos neurónios e os sinais eletroquímicos que atravessam a sinapse correspondem aos valores dos dados e aos pesos. O novo chip desenvolvido por investigadores do MIT melhora a eficiência ao replicar o cérebro com maior fidelidade.
No chip, os valores de entrada de um nó são convertidos em voltagens elétricas e depois multiplicados pelos pesos correspondentes. Apenas as voltagens combinadas são então convertidas novamente numa representação digital e armazenadas para processamento posterior.
Desta forma, o chip consegue calcular produtos escalares para múltiplos nós, até 16 em simultâneo no protótipo, num único passo, em vez de alternar entre um processador e a memória para cada cálculo.
Tudo ou Nada:
Uma das chaves do sistema é que todos os pesos são 1 ou -1. Isto significa que podem ser implementados na memória como simples interruptores que fecham um circuito ou o deixam aberto. Trabalhos teóricos recentes sugerem que as redes neuronais treinadas com apenas dois pesos devem perder pouca precisão — algo entre 1 e 2%.
A pesquisa de Biswas e Chandrakasan confirma esta previsão. Em experiências, executaram a implementação completa de uma rede neural num computador convencional e o equivalente com pesos binários no seu chip. Os resultados do chip situaram-se, de um modo geral, entre os 2 e os 3% em relação à rede convencional.
###
Escrito por Larry Hardesty, MIT News Office
