Se achas importante o que fazemos, contribui aqui.
Novas imagens divulgadas pela Google dão-nos uma resposta possível: paisagens hipnóticas de edifícios, fontes e pontes a convergirem num só. As fotografias, que tanto podem ser bonitas como aterrorizadoras, foram criadas pelo reconhecimento de uma rede neuronal feita pela Google, que foi “ensinada” a reconhecer características como edifícios, animais e objectos em fotografias.
Normalmente, a rede consiste em 10-30 camadas amontoadas de neurónios artificiais. Cada imagem é posta na camada inicial, ou input, que depois comunica com a próxima camada, até que eventualmente a última cada, ou output, é alcançada. A “resposta” da rede vem desta última imagem.
Assim, fotografias foram postas na rede para que esta reconhecesse uma característica presente na fotografia e a modificasse de forma a enfatizar essa característica. Essa fotografia modificada é depois posta de novo no sistema, que depois volta a identificar outras características, e assim sucessivamente. Eventualmente, o feedback muda fotografia de tal forma que chega a já não parecer a mesma.
Num nível básico, a rede neuronal pode ser incumbida de simplesmente detectar as pontas de uma fotografia. Nesse caso, a imagem parece pintada, semelhante a um filtro do Photoshop:
Antes e depois da detecção de pontas
Mas se a rede neuronal é usada para encontrar características mais complexas – como animais – numa imagem, acaba por criar uma imagem alucinógena:
Um cavaleiro, antes e depois da detecção de animais
Em último caso, o sistema consegue percorrer uma imagem que não é mais que ruído e gerar características que surgem apenas da sua imaginação:
Antes: ruído; depois: banana
Eis o que acontece se pedires a uma rede focada em encontrar características de edifícios que os encontre e os realce numa imagem sem essas características:
Uma paisagem criada através de uma imagem de ruído
As fotografias são bonitas mas são mais do que isso. As redes neuronais são uma característica comum da aprendizagem automática: mais do que explicitamente programar um computador para que este saiba reconhecer uma imagem, a Google alimenta-o de imagens e deixa-o organizar as características chave sozinho.
Tal pode resultar num software opaco. É difícil saber que características o sistema procura e examina e quais e que já reconheceu. Por exemplo, pedir à rede que descubra halteres numa imagem de ruído revela que este pensa que um haltere tem que ter um braço musculado a agarrá-lo.
Halteres (e um braço)
A solução pode ser alimentá-lo de mais imagens de halteres pousados no chão até que o sistema perceba que o braço não faz parte de um haltere.
“Um dos desafios de redes neuronais é perceber o que é que se passa exactamente em cada camada. Sabemos que depois do treino cada camada vai progressivamente extraindo mais e mais complexas características da imagem, até que a camada final toma a decisão de o que a imagem mostra.
Por exemplo, a primeira camada pode procurar por pontas. As camadas intermédias interpretam as características básicas para procurar formas ou componentes gerais, como uma porta ou uma folha. As últimas camadas reúnem-nas em interpretações completas – esses neurónios activam-se em resposta a coisas muito complexas como edifícios inteiros ou árvores”, explicam os engenheiros da Google no blog de investigação da empresa.
“Uma forma de visualizar o que se passa é virar a rede ao contrário e pedir-lhe que realce uma imagem input de tal forma que torne elícito uma interpretação particular”, acrescentam. Por exemplo, se o objectivo for saber que imagem resultaria em ‘banana’, começa-se por uma imagem cheia de ruído e depois, gradualmente, melhorando a imagem de forma a que a rede neuronal considere uma banana.
O software de reconhecimento de imagem já está presente em diferentes produtos. O novo serviço de fotografias da Google, Google Photos, inclui a opção de procurar imagens com texto: escrevendo ‘cão’, por exemplo, vai reunir todas as imagens que a Google encontre com um cão (e, ocasionalmente, outras que confunda por serem mamíferos quadrúpedes).