Mostrando postagens com marcador inteligência artificial. Mostrar todas as postagens
Mostrando postagens com marcador inteligência artificial. Mostrar todas as postagens

sexta-feira, 27 de dezembro de 2024

Nuvem de palavras 2024

Fiz uma nuvem de palavras dos nomes dos autores lidos em 2020. Passados quatro anos percebi que é hora de fazer uma nova nuvem de palavras já que a quantidade de autores aumentou consideravelmente. Eis aqui o link para a primeira nuvem de palavras de 2020. A média dos últimos 5 anos é quase o dobro do que a média de 2002 a 2019. 

Entretanto as regras da nuvem permaneceram. Eis as regras: 
1. Minhas leituras não seguem um padrão consciente, ela é resultado principalmente da literatura que me é mais acessível.
2. Comecei a consumir audiolivros a partir do fim de 2011, 2012 para todos os fins. Isto aumentou razoavelmente a quantidade de autores consumidos ao longo dos anos.
3. A lista de autores teve que ser uniformizada para que o nome de um autor seja escrito sempre da mesma forma.
4. Obras com mais de um autor, tiveram seu segundo autor limado, ficando somente o autor principal.
5. Lista engloba livros técnicos, ficção, não-ficção, etc.
6. Antologias e coletâneas não tiveram seus autores contabilizados nem obras de referência, manuais, guias e similares. Também estão fora obras que são assinadas por organizações.
7. Autores de obras lidas mais de uma vez (sim houve algumas) são contados na quantidade de vezes que as obras foram lidas.
9. Para que a nuvem de palavras resultante tivesse os nomes grafados como uma palavra contínua retirei os espaços dos seus nomes, pontos, etc. Então "Machado de Assis" está grafado como "MachadodeAssis".

Apesar de haver o registro de leituras de HQ, mangás e graphic novels, os autores destas obras não entram na proposta pois há muitas mãos nestas obras (autor, ilustrador, etc), de modo que optei por deixar de fora.

Usei o mesmo software da primeira nuvem - o Wordle - para criar uma nuvem de palavras. Há versão online e uma versão para download. O uso é muito simples, é suficiente incluir o texto de autores e gerar a imagem. A aplicação cria várias imagens, alternando estilos, cores, fundos de modo que é possível resumir suas leituras em uma imagem.

Agora os autores mais lidos são por ordem: 
1. C. S. Lewis;
2. Tim LaHaye;
3. Agatha Christie;
4. Stephen King; e
5. George R. R. Martin

O total de autores diferentes remontam em 361 (excluídas coletâneas e antologias) e as obras em 519 (incluindo coletâneas e antologias). Eis as nuvens resultantes.





Para adicionar alguns dados a mais eu utilizei uma IA nova - Napkin - para gerar imagens a partir dos dados. Esta IA é muito eficiente para gerar gráficos a partir das dados disponibilizados sem demérito para as demais. Eis os gráficos gerados pelo Napkin.
 



======
Referências:




sexta-feira, 20 de dezembro de 2024

Latim nosso de cada dia

 Li o livro "A vida intelectual" do A. D. Sertillanges e descobri um pouco do monstro que foi o Tomás de Aquino, que é um daqueles vultos que marcam a história, sobre o qual ou a partir do qual se escreve livros e livros mas que por não ter um ponto de contato (profissional ou educacional) terminamos por  passar pela vida sem se dar conta do mesmo.

Pois bem, no fim do livro são publicadas duas listas com os 16 conselhos de Aquino para aqueles que buscavam o conhecimento. Uma lista em latim e outra em português. Como o português é originado no latim, eu como falante de português fico realmente tentado a ler o latim e entendê-lo, mas o fracasso é certo pois o português se distanciou por demais do latim. Segundo o que pesquisei o sardo, língua  falada na Sardenha é a língua mais próxima do latim na atualidade. 

Texto em Latim Texto em Português
Já que fracassei miseravelmente em traduzir, apesar de encontrar similaridades e sentidos das palavras em latim no português mas nunca ao ponto se aproximar de fato do que foi traduzido. Aproveitei para testar os trabalhos de tradução das IAs nesses textos e ver o quão as traduações das IAs se aproximam do texto publicado.

Usei então as seguintes serviços:
1. Tradução adaptada do Gemini
2. Tradução literal do Gemini
3. Tradução do Translate
4. Tradução do ChatGPT

========================

Tradução adaptada - Gemini Tradução em Português
1. Comece pelo básico: Assim como um rio flui para o mar, comece seus estudos pelos assuntos mais simples e gradualmente avance para os mais complexos.
2. Seja paciente e ponderado: Não se apresse em falar e pense bem antes de se pronunciar.
3.  Cultive a pureza de coração: Mantenha sua consciência limpa e livre de culpa.
4. Dedique tempo à oração: Reserve um tempo para meditar e se conectar com o divino.
5. Frequente seu local de estudo: Assim como o vinho amadurece em uma adega, seu conhecimento amadurecerá em seu local de estudo.
6.  Seja amável com todos: Cultive relacionamentos positivos e seja gentil com as pessoas ao seu redor.
7. Evite fofocas: Não se envolva em conversas sobre a vida pessoal dos outros.
8. Não se apegue demais: Relacionamentos muito próximos podem te distrair dos estudos.
9. Evite discussões mundanas: Não se deixe envolver em debates sobre assuntos triviais.
10. Imite os bons exemplos: Busque seguir os passos de pessoas virtuosas e sábias.
11. Preste atenção ao que é bom: Não se preocupe com quem está falando, mas sim com a qualidade do que é dito.
12. Entenda o que você aprende: Não se contente em memorizar, busque compreender o significado do que você estuda.
13. Tire suas dúvidas: Se tiver alguma dúvida, procure esclarecê-la.
14. Armazene o conhecimento em sua mente: Guarde o conhecimento adquirido como um tesouro precioso.
15. Não se preocupe com coisas muito complexas: Comece com o que está ao seu alcance.
16. Seja perseverante: Seguindo esses conselhos, você colherá os frutos da sabedoria ao longo de sua vida.
1. Escolhas entrar no mar pelos regatos, não diretamente, pois é pelo que é fácil que convém chegar ao mais difícil. Este é, portanto, o meu conselho, e uma instrução para ti.

2.  Quero que sejas lento para falar e lento para dirigir-te ao parlatório.

3.  Guarda a pureza de consciência.

4. Nunca deixes de dedicar-te à oração.

5. Frequenta com amor tua cela, se queres ser introduzido na adega de vinhos.

6. Mostra-te amável com todos. Não te preocupes com as ações dos outros.
7. Não sejas familiar demais com ninguém, pois o excesso de familiaridade engendra o desprezo e dá ocasião para afastar-se do estudo.

8. Não te envolvas de maneira alguma com as palavras e ações dos leigos.

9. Evita sobretudo os passeios inúteis.

10. Não deixes de imitar a conduta dos santos e dos homens de bem.
11. Não consideres de quem ouves as coisas, mas tudo o que se disser de bom, confia-o à tua memória.

12. Tudo que leres ou ouvires, põe em prática, para o compreenderes.
13. Esclarece tuas dúvidas.
14. Esforça-te para armazenar tudo que puderes na biblioteca do teu espírito, como quem enche um vaso.
15. Não busques o que está acima de ti.
16. Se seguires este caminho, enquanto tiveres vida produzirás e multiplicarás folhas e frutos úteis na vinha do Senhor dos Exércitos. Se praticares estes conselhos, poderás alcançar o que desejas. Adeus.
Minha avaliação da tradução Apesar de tentar guardar o sentido original, a busca por uma tradução mais ampla perde a assertividade e simplicidade da tradução. Na maioria dos conselhos sentido original não se perde mas não se compromete com os pontos de fé como no conselho 16. 

========================

Tradução literal - Gemini Tradução em Português
1. Assim como um riacho, não imediatamente, mas ao mar você deve escolher entrar: porque pelo mais fácil ao não difícil é preciso chegar. Este é, portanto, o meu conselho, e a tua instrução.
2. Eu te ordeno ser lento para falar e lento para ir ao local de conversa.
3. Abraça a pureza de consciência.
4. Não deixes de te dedicar à oração.
5. Ama frequentemente o teu quarto, se queres ser introduzido no quarto do vinho.
6. Mostre-se amável a todos. Não investigue profundamente os atos dos outros.
7. Não te mostres muito familiar a ninguém: porque a familiaridade excessiva gera desprezo e fornece material para a distração dos estudos.
8. De forma alguma te envolva em palavras e ações seculares.
9. Fuja de discussões sobre tudo.
10. Não omitas imitar os passos dos santos e dos bons.
11. Não olhes de quem ouves, mas o que quer que de bom seja dito, recomenda à memória.
12. Faça com que entendas o que lês e o que ouves.
13. Certifique-se das dúvidas.
14. E o que quer que puderes, esforça-te para guardar no armário da mente, como se desejasse encher um vaso. 
15. Não busques coisas mais elevadas.
16. Seguindo estes passos, os frutos e folhas na vinha do Senhor dos Exércitos, enquanto tiveres vida, produzirás e oferecerás. Se tiveres seguido estes, poderás alcançar aquilo que desejas. Adeus.
1. Escolhas entrar no mar pelos regatos, não diretamente, pois é pelo que é fácil que convém chegar ao mais difícil. Este é, portanto, o meu conselho, e uma instrução para ti.
2.  Quero que sejas lento para falar e lento para dirigir-te ao parlatório.
3.  Guarda a pureza de consciência.
4. Nunca deixes de dedicar-te à oração.
5. Frequenta com amor tua cela, se queres ser introduzido na adega de vinhos.
6. Mostra-te amável com todos. Não te preocupes com as ações dos outros.
7. Não sejas familiar demais com ninguém, pois o excesso de familiaridade engendra o desprezo e dá ocasião para afastar-se do estudo.
8. Não te envolvas de maneira alguma com as palavras e ações dos leigos.
9. Evita sobretudo os passeios inúteis.
10. Não deixes de imitar a conduta dos santos e dos homens de bem.
11. Não consideres de quem ouves as coisas, mas tudo o que se disser de bom, confia-o à tua memória.
12. Tudo que leres ou ouvires, põe em prática, para o compreenderes.
13. Esclarece tuas dúvidas.
14. Esforça-te para armazenar tudo que puderes na biblioteca do teu espírito, como quem enche um vaso.
15. Não busques o que está acima de ti.
16. Se seguires este caminho, enquanto tiveres vida produzirás e multiplicarás folhas e frutos úteis na vinha do Senhor dos Exércitos. Se praticares estes conselhos, poderás alcançar o que desejas. Adeus.
Minha avaliação da tradução Tradução bastante assertiva, por vezes, quase igual a tradução em português com pequenas mudanças em posição de pronomes. Porém em alguns conselhos não ficaram tão corretos, como o 9 e o 13 . No meu parecer está é a melhor dentre as opções de tradução.

============

Tradução do Translate Tradução em Português
1. Que você escolha entrar no mar pelos riachos, e não de uma vez: pois é preciso passar do mais fácil ao mais difícil. Este, então, é meu aviso e sua instrução.
2. Eu ordeno que você fale devagar e seja lento para se aproximar do orador.
3. Abrace a pureza da consciência.
4. Não pare de passar tempo em oração.
5. Ame a Adega com frequência, se quiser ser apresentado à Adega.
6. Mostre-se adorável para todos. Não investigue profundamente as ações dos outros.
7. Não demonstre que você conhece muito alguém: porque muita familiaridade gera desprezo e fornece material para abandono do estudo.
8. Não interfira de forma alguma nas palavras e ações das pessoas seculares.
9. Evite falar sobre tudo.
10. Não deixeis de imitar os passos dos santos e dos bons.
11. Não considere de quem você ouve, mas tudo o que for dito de bom, guarde na memória.
12. Certifique-se de entender o que lê e ouve.
13. Tenha certeza de suas dúvidas.
14. E tudo o que puder, tente guardar no armário da sua mente, assim como deseja encher o recipiente.
15. Não se pergunte mais alto.
16. Seguindo esses passos, você produzirá folhas e frutos úteis na vinha do Senhor de Sabaoth, enquanto tiver vida. Se você seguir essas coisas, poderá alcançar o que deseja. Adeus
1. Escolhas entrar no mar pelos regatos, não diretamente, pois é pelo que é fácil que convém chegar ao mais difícil. Este é, portanto, o meu conselho, e uma instrução para ti.
2.  Quero que sejas lento para falar e lento para dirigir-te ao parlatório.
3.  Guarda a pureza de consciência.
4. Nunca deixes de dedicar-te à oração.
5. Frequenta com amor tua cela, se queres ser introduzido na adega de vinhos.
6. Mostra-te amável com todos. Não te preocupes com as ações dos outros.
7. Não sejas familiar demais com ninguém, pois o excesso de familiaridade engendra o desprezo e dá ocasião para afastar-se do estudo.
8. Não te envolvas de maneira alguma com as palavras e ações dos leigos.
9. Evita sobretudo os passeios inúteis.
10. Não deixes de imitar a conduta dos santos e dos homens de bem.
11. Não consideres de quem ouves as coisas, mas tudo o que se disser de bom, confia-o à tua memória.
12. Tudo que leres ou ouvires, põe em prática, para o compreenderes.
13. Esclarece tuas dúvidas.
14. Esforça-te para armazenar tudo que puderes na biblioteca do teu espírito, como quem enche um vaso.
15. Não busques o que está acima de ti.
16. Se seguires este caminho, enquanto tiveres vida produzirás e multiplicarás folhas e frutos úteis na vinha do Senhor dos Exércitos. Se praticares estes conselhos, poderás alcançar o que desejas. Adeus.
Minha avaliação da tradução Esta foi a pior dentre as traduções. Alguns conselhos perderam totalmente o sentido como o 5 e o 13.

=====================

Tradução do Chatgpt 

A tradução do ChatGPT (vulgo Gepeto) ficou totalmente contaminada e não dá para usar como parâmetro pois eu carreguei as imagens e pedi para extrair o texto. Coisa que o Gepeto fez quase sem erros - só uma palavra com pequena diferença - e então ao pedir para ele traduzir o texto em latim ele apresentou o mesmo texto extraído em português, ou seja, ele não traduziu, ele concluiu que o texto em português extraído era a tradução do texto em latim. Esperto o Gepeto !


sábado, 6 de julho de 2024

Usando IAs para gerar gráficos


As saídas do problema que "resolvi" utilizando um código Python não me agradaram totalmente. Então resolvi experimentar algumas ferramentas de IA para obter alternativas. Testei o Gemini, ChatGPT e Gamma. Os resultados eu disponho abaixo, em ordem crescente de resultado. Eu iria testar o Claude AI também, mas devido a confusão que é iniciar o uso eu desisti e fiquei somente nos três citados acima.

Inicialmente informo que basicamente solicitei aos serviços dessas ferramentas para otimizar a saída do problema que resolvi da contagem de faces de calendários de cubos. Dentre as várias coisas que ferramentas de IA fazem é gerar imagens para facilitar o entendimento. A título de exemplo deixo o link de alguns infográficos gerados a partir de informações de filmes do site IMDB (clique aqui) em conjunto com o Tableau da Salesforce. Estes infográficos apresentam as informações de modo mas interessante e atrativo para provar meu ponto - "Bons gráficos transmitem melhor a informação". Abaixo reproduzo a imagem gerada a partir dos filmes dirigidos por Steven Spielberg. Ficou supimpa !


Apresentando meus resultados

1. Gemini
Infelizmente o Gemini não conseguiu interpretar minha entrada de informações, apresentei a imagem do resultado e ele começou a descrever os gráficos e seus diversos tipos sem em nenhum momento gerar gráfico quanto mais populá-los com os meus resultados. Pode ser porque usei a versão de entrada. A versão Advanced faz melhores promessas porém não tive como testar.

2. Gamma
O Gamma recebeu minha entrada e gerou várias saídas. Gerou um site que aparentemente está hospedado neste endereço e o mesmo resultado pode ser exportado para PDF ou PPS com possibilidades de edição. A entrada foi o meu post anterior no qual descrevo o meu esforço em resolver o problema. O Gamma criou uma apresentação a partir do meu texto. Analisando a saída posso dizer que ele fez um bom trabalho estético, mas errou terrivelmente quanto ao conteúdo. Ainda assim a saída foi melhor do que o Gemini. 

3. ChatGPT vulgo Gepeto
O "Gepeto" foi tão melhor que os outros que me surpreendi positivamente. O Gepeto interpretou a minha entrada e gerou uma nova: 







E gerou os seguintes gráficos novos para os dados de entrada:





Este ficou melhor que a minha primeira saída



Resultado foi muito superior, mas claro que devemos ressaltar que os créditos que a OpenAI dá para se se desfrutar o Gepeto foi pelos ares...

Sem sombra de dúvidas o Gepeto foi o melhor que os demais. O Gamma apresentou algum valor e o Gemini não atingiu o objetivo.

Este post foi uma tentativa de explorar o que há e uma antevisão do que virá. Maiores aprofundamentos ficam a cargo dos mais curiosos.

==========

Fontes:

ChatGPT - https://openai.com/chatgpt/

IMDB - https://www.imdb.com

Gamma - https://gamma.app

Gemini - https://gemini.google.com/app

Tableau - https://www.tableau.com


domingo, 31 de dezembro de 2023

Visão Computacional 2023.1


Cursei Visão Computacional em 2023. A disciplina é muito importante e abrangente para ingressar apropriadamente nas áreas de aquisição, tratamento, interpretação de imagens e vídeos e tudo que está associado tais como redes neurais. Impossível abranger toda a área e aqui é somente uma visão super sumarizada. Para uma das várias opções mais aprofundadas tem a playlist com as aulas do Prof. Aldo von Wangenheim nas referência ao final do post.

Pois bem, para mim e num aspecto mais prático para um iniciante no campo de estudo, Visão Computacional independente de seus fundamentos, história, inovações pode ser dividida em três grandes abordagens: Classificação, Detecção e Segmentação de imagens. Vamos a cada uma delas.

Classificação de Imagens

A classificação de imagens é atribuição de categorias (ou designação ou rótulos) a objetos, dados ou fenômenos com base em suas características e atributos estão presentes na imagem. A Visão Computacional se propõe a extrair as melhores características das imagens com o intuito de classificar, detectar (localizar) ou segmentar (identificar) objetos. A aplicação de tal recurso é bastante ampla se propondo a resolver problemas nos múltiplos domínios tais como: Medicina, exploração de recursos (petróleo, minerais, etc), sensoriamento remoto, controle de qualidade, etc.

O processo de extração que se repetirá nas outras abordagens (detecção e segmentação) pode ser descrito como:

1. Obtenção do conjunto de dados e sua preparação (divisão em conjuntos de treinamento, validação e teste, augmentation, pré-processamento, etc);

2. Aplicação das técnicas de extração de características. Há muitas operações e formas de extrair características, aqui listo algumas poucas técnicas:

Análise de histograma (distribuição das cores e intensidade); Co-ocorrência de escala de cinza (características de textura); Padrão Binário Local (LBP - Características de textura); Histograma de Gradiente Orientado (HOG); filtros convolucionais, pooling, flattening em redes neurais profundas ou em combinação com redes rasas.

3. Validação dos resultados. Aqui busca-se garantir que os resultados sejam os mais legítimos possível não sofrendo de tendências decorrente do conjunto de dados enviesado. Assim diferentes técnicas e métricas são utilizadas tais como (algumas):

Técnicas de divisão dos dados são formas de garantir que os resultados automáticos obtidos foram legítimos e que o treinamentos entrega resultados melhores do que os resultados feitos por especialistas (custosos) : hold-out, cross-validation de vários tipos: K-folds, Stratified K-fold, Leave-p-out, Leave-one-out e Monte Carlo (shuffle-split) ou ainda uma combinação de hold-out e cross-validation

Métricas são valores numéricos pelos quais se interpretam quão bons são os resultados obtidos: acurácia, precisão, recall, f1-score (dice), intersection over union - IoU (índice Jaccard), sensibilidade, especificidade e a matriz de confusão.

Cada uma dessas técnicas ou recursos possui detalhamentos específicos que fogem ao escopo do post. Eles também não são obrigatórios ou exaustivos e podem ser recombinados de diferentes formas para ao final dentro do conjunto de dados se obtenha a classificação automática das imagens.

Pode ser encontrado no Kaggle (abordado neste post), diferentes desafios e datasets prontos para serem testados e assim se desenvolver o aprendização em Classificação de Imagens.

Detecção de Imagens

Enquanto a classificação de imagens se propõe a dizer o que tem na imagem, a detecção marca a localização do objeto, em geral destacando-o com um retângulo ou no jargão técnico uma bounding box. Esta bounding box deve conter todo objeto procurado independente da forma do mesmo. Daí técnicas de reconhecimento são aplicadas em imagens estáticas ou em vídeos de modo a localizar os objetos. Há bastante aplicações desta técnica em diversas áreas. 



Segmentação de Imagens

A segmentação vai além da classificação na medida em que não apenas identifica o objeto, mas também delimita sua forma e posição dentro da imagem. Essa abordagem tem aplicações cruciais em diversos campos. A segmentação desempenha um papel fundamental na capacidade de máquinas "interpretarem" o mundo visual como os humanos o fazem, o que a torna um tópico relevante em nosso cenário atual. Exemplificando:

Tipos de segmentação
A segmentação pode ser de 4 tipos:
Segmentação de bordas: A segmentação de bordas se concentra na detecção e delimitação das bordas dos objetos na imagem. Ela não atribui rótulos semânticos aos objetos.

Segmentação Semântica: Na segmentação semântica ocorre a atribuição de sentidos/significados a cada  pixel rotulado na imagem. 

Segmentação de instância: A segmentação de instância é um passo além da segmentação semântica, neste tipo se faz a separação de instâncias da mesma classe presente na imagem.

Segmentação panóptica: A segmentação panóptica é a união entre os objetos identificados nas segmentações anteriores.


==========

Referências

Playlist das videoaulas das disciplinas INE410121 - Visão Computacional, INE 5443 - Reconhecimento de Padrões e EEL110021 - Visão Computacional e Inteligência Artificial para Veículos Autônomos da UFSC  (português)

Dive into Deep Learning 

Computer Vision: Algorithms and Applications by Richard Szeliski

Deep Learning, by Goodfellow, Bengio, and Courville

Classification in Data Science

Feature Engineering for Computer Vision

O que são redes convolucionais: uma breve explicação (português)

Deep Learning Book (português)

Hold-out vs. Cross-validation in Machine Learning

An overview of semantic image segmentation

Semantic Segmentation — Popular Architectures

A 2021 guide to Semantic Segmentation

quarta-feira, 9 de agosto de 2023

Redes e as frases sinceras


Cursei uma disciplina como ouvinte no primeiro semestre de 2023. A disciplina é básica no currículo e foi importante na revisão de conceitos. Vou ser vago pois a ideia é só destacar as frases que ouvi no curso. Ressalto que as frases não são minhas. As frases eu as considero como pérolas pois são fruto de anos de trabalho e experiência sincera do professor, que não vou identificar pois a ideia é destacar as frases. As frases tem o tom jocoso mas de nenhum modo preconceituoso pois vem da visão de um profissional que de fato trabalhou aqueles temas. Mas posso dizer que para mim como ouvinte foram momentos de leveza, um escape humorístico e que, claro, ajuda na pedagogia. O post pode ficar curto pois não são muitas frases. Em algumas delas vou dar contexto, claro que não é uma tentativa de explicar a piada. Mas para não dizer que foi pouco trabalho vou produzir imagens com cada uma das frases.

Frase 1
Há profissionais que não engolem o Java, mas se dão muito bem o Javascript, que de fato não faz parte da plataforma Java. O JavaScript surgiu em 1995 e é posterior ao Java que surgiu em 1991. As linguagens são de empresas diferentes. Javascript recebeu este nome como jogada de marketing, uma tentativa de popularização. Javascript teve vários nomes antes de ter este definitivo. Foi primeiro chamado de  Mocha e depois LiveScript. Então sim, é possível mostrar todo o seu desgosto com o Java e amar o Javascript.

Frase 2
As tecnologias de frontend (ou front-end) são todos os recursos que realiza uma interação direta com o usuário que consiste principalmente na interface gráfica. Essas tecnologias tem seu valor, claro ! Porém em relação às tecnologias de backend que englobam o que podemos considerar o que é mais fundamental em redes de computadores e que está muito relacionado aos serviços, protocolos, sistemas e a fundamentação matemática, estatística, física e até filosófica. 

Frase 3
Sem comentários

Frase 4
Sim, não só os protocolos mas toda a fundamentação de conexões de rede, tem um quê de espetacular na medida em que apesar dos avanços principalmente em termos de velocidade, a base, o fundamental se manteve. Daí o seu valor. Para corroborar esse ponto de vista menciono a Association for Computing Machinery - ACM. A ACM é uma sociedade científica dedicada à Computação. ACM analisa, reconhece e laureia de diferentes formas os avanços computacionais com impactos positivos na sociedade. Assim sendo o principal prêmio da ACM é o A. M. Turing Award (Prêmio Turing) - considerado o prêmio Nobel da Computação. Em 2004 o Prêmio Turing foi concedido a Vinton Cerf e Robert Kahn pelo trabalho pioneiro em internetworking, incluindo o projeto e implementação do TCP/IP. Em 2016 foi laureado Tim Berners-Lee pela invenção da World Wide Web, o primeiro navegador web, e os protocolos e algoritmos fundamentais que permitiram a escalabilidade da web. Em 2022, Robert Metcalfe foi laureado pela invenção, padronização e comercialização da tecnologia Ethernet. Então SIM, há grande valor nesses avanços.

Frase 5
Pelas mesmas razões da frase anterior, o TCP/IP tem uma performance tão excelente que é sugerida sua utilização aos modelos de predição.

Frase 6
Pela experiência pessoal do profissional, parte dos trabalhos em Engenharia de Software tem muito de "blá", lero-lero e pouca entrega, ao contrário dos conceitos de Redes que tem que ser eficientes, performáticos caso contrário não são usados, virar padrão então fica impossível. 

Frase 7
O conceito original de heurística (procedimento mental simples que ajuda a encontrar respostas adequadas para perguntas difíceis) pode dar margem sim para seja "um chute" aleatório. Então, entre amigos numa brincadeira, cabe sim rebaixar a heurística a este patamar.

Frase 8
O Cálculo Numérico corresponde a um conjunto de ferramentas ou métodos usados para se obter à solução de problemas matemáticos de forma aproximada. Esses métodos se aplicam principalmente a problemas que não apresentam uma solução exata. Já o machine learning se propõe a fazer predições automáticas baseado em um conjunto de dados que "aproxima" as predições da realidade usando recursos, métodos, conceitos da área de Inteligência Artificial. A semelhança dos conceitos EXISTE ! E é um grande insight. Defensores de qualquer uma das áreas podem ficar chateados com este tipo de afirmação mas ela não é de modo algum totalmente desconectada da realidade.   

Frase 9
Para mim esta é uma das melhores, ela não é tão polêmica, mas é o reconhecimento da supremacia do SO Android que é versátil o suficiente para rodar nas mais diferentes arquiteturas e plataformas. Daí ele ser um candidato a equipar nossa versão cibernética.



sábado, 5 de agosto de 2023

Ferramentas de IA


No passado recente os avanços na área de Inteligência Artificial em seus múltiplos desdobramentos tem sido tão vertiginoso que apontar tais desdobramentos é estar fadado à rápida desatualização. Com relação às ferramentas, idem. Ainda assim é possível verificar quais ferramentas e recursos estão disponíveis e alguns tornam-se referência podendo ser utilizados por mais tempo. Lembrando que a lista não é recomendação. A maioria das ferramentas indicadas são para desenvolvedores e são em geral baseadas nas IAs mais famosas.

1. Soluções voltadas a código. Soluções que escrevem, depuram ou explicam códigos. Não vou citar as três principais pois já são muito famosas - ChatGPT, GitHub Copilot, OpenAI Codex


DeepCode - A principal proposta da DeepCode é a geração de um código seguro ou da análise de segurança de outros códigos. A desenvolvedora do DeepCode destaca as qualidades do produto e se propõe a demonstrar em como o DeepCode pode de fato melhorar códigos existentes e propor novas soluções.

Figstack - Com o Figstack o programador poderá obter a explicação linha a linha do que o código faz. Este recurso permite ao Figstack ser uma boa solução para documentação de código. A ferramenta também traduz código entre uma linguagem de programação para outra. Outro recurso disponível nesta ferramenta é avaliar a eficiência do código submetido (em inglês Big O) e claro faz sugestões de melhorias. 




2. Soluções voltadas a vida prosaica do empreendedor como criação de imagens, áudios, vídeos e outros automatizações. 


Fliki - Fliki é uma ferramenta AI para transformar texto em vídeos com vozes e assim você deixa de pagar uma fortuna para produtoras pois vídeos simples o Fliki dá conta. Não tentei ao ponto de me aprofundar, mas o vídeo inicial dá uma ideia boa das possibilidades. O próprio YouTube poderia ter mais recursos tais como esse, quem sabe no futuro, por enquanto Fliki e similares ajudam os criadores de conteúdo.

Runway - Outra ferramenta com tecnologia de IA como a primeira, porém Runway gera vídeos muito mais sofisticados. O Runway foi projetado para criadores de todos os tipos, seja você um escritor experiente ou um iniciante em busca de ajuda. Boa alternativa para geração de material de divulgação de projetos e negócios.

Resemble - O Resemble é uma ferramenta de IA exclusiva que permite criar narrações de alta qualidade e semelhantes a humanos em segundos de maneira natural e o menos sintetizado possível e em vários idiomas. O que o torna útil para dublagens. Você pode usá-lo para adicionar narração de nível profissional aos seus vídeos ou podcasts. É perfeito para criar narrações para materiais de marketing, tutoriais e demonstrações de produtos. 

HyperWrite - HyperWrite é uma poderosa ferramenta de escrita; Conta com 93 módulos diferentes todos voltados para a escrita de texto. De e-mails, artigos, teses, documentação de sistemas, etc, o HyperWrite se dispõe a gerar texto claro, conciso e preciso. O HyperWrite também possui funcionalidade integrada para melhorar a legibilidade e gramática. Além disso, permite fácil compartilhamento e colaboração em documentos, o que é especialmente útil para equipes remotas e desenvolvedores que trabalham em projetos de código aberto.


Menção honrosa ao 1Tools. 1Tools oferece uma vasta miscelânea de recursos, a princípio gratuitamente. Apesar de ter testado, a variedade é tanta que é difícil não haver pelo menos uma que não resolva bem as dores de desenvolvedores e empreendedores. 


3. Soluções para comunidades de desenvolvedores, infraestrutura em nuvem e IA. Apesar da tentativa de classificação das ferramentas nessa categoria, cada uma das indicações aqui é uma mistura de plataforma, rede social, comunidade e ferramentas de desenvolvimento em IA.

Keras - Definição da Wikipédia sobre o Keras - "O Keras é uma biblioteca de rede neural de código aberto escrita em Python.". Keras funciona normalmente com outras ferramentas tais como: TensorFlow, Microsoft Cognitive Toolkit, R, Theano, ou PlaidML. Projetado para permitir experimentação rápida com redes neurais profundas, ele se concentra em ser fácil de usar, modular e extensível. Foi desenvolvido como parte do esforço de pesquisa do projeto ONEIROS (Open-ended Neuro-Electronic Intelligent Robot Operating System). François Chollet, autor do Keras, explicou que o Keras foi concebido para ser uma interface, e não uma estrutura de aprendizado de máquina independente. Ele oferece um conjunto de abstrações mais intuitivo que facilita o desenvolvimento de modelos de aprendizado profundo, independentemente do back-end computacional usado. O Keras é a principal biblioteca de desenvolvimento de redes neurais. A pesar do propósito inicial Keras se tornou muito mais que foi proposto.

Kaggle - Kaggle é uma comunidade online para competições em ciência de dados. Kaggle foi fundado em 2010 por  Anthony Goldbloom and Ben Hamner e foi vendido em 2017 para o Google. Kaggle disponibiliza, datasets (conjunto de dados), cursos, ambientes de desenvolvimento para a comunidade competir na busca de soluções para os mais diversos problemas. Ótimo ambiente para evoluir no aprendizado e na busca de soluções no estilo de gamefication através do qual os participantes recebem distintivos conforme seu avanço e participação na comunidade.

Hugging Face - Hugging Face tem uma proposta similar a do Kaggle, porém seu foco é a construção de aplicações utilizando Machine Learning. Sua plataforma permite que usuários compartilhem seus datasets e modelos de aprendizado de máquina. A companhia foi fundada em 2016 por Clément Delangue, Julien Chaumond e Thomas Wolf. Hugging Face possível uma infraestrutura similiar ao do GitHub para manutenção de repositórios, modelos, datasets, aplicações web e suporte a discussões.

Google Colab - O Colaboratory ou “Colab” é um produto do Google Research, área de pesquisas científicas do Google. O Colab foi criado a partir de um fork do projeto Jupyter que oferecia serviços para computação interativa entre múltiplas linguagens de programação. O Google porém integrou os recursos do Jupyter em sua infraestrutura e disponibiliza "células" de programação (chamados de notebooks) como se fosse arquivos do Google Drive além de oferecer capacidade de processamento em nuvem. O Colab permite que qualquer pessoa escreva e execute código Python arbitrário pelo navegador e é especialmente adequado para aprendizado de máquina, análise de dados e educação. Pelo Colab também é possível aplicações de maior porte pois o Google vende capacidade computacional para maiores demandas. As demandas pequenas entretanto podem ser atendidas gratuitamente. Menção honrosa nesta parte de infraestrutura escalável em nuvem vai para a Amazon Web Services - AWS

PapersWithCode - Este site se propõe a disponibilizar de maneira livre e aberta artigos, códigos, datasets, métodos e resultados de avaliação relativas a NLP (Neural Language Processing) e Machine Learning. Todo o conteúdo do site é licenciado sob a licença CC-BY-SA (mesma da Wikipedia) que permite a contribuição de todos. Paperwithcode também disponibiliza materiais sobre Astronomia, Física, Ciência da Computação, Matemática e Estatística.

O site é um ponto de partida para saber sobre as novidades mais "quentes" e o state-of-the-art de diferentes áreas de pesquisa, porém com foco nas áreas citadas acima.


domingo, 29 de janeiro de 2023

Redes Neurais 2022.1

 Eu me propus a resumir algumas disciplinas que cursei recentemente. Tanto como forma de avaliar a assimilação quanto para fins de registro pessoal. Afinal é preciso ajudar a memória.

No primeiro semestre de 2022 cursei a disciplina de Redes Neurais de 60h como parte do programa de pós-graduação DCCMAPI, como aluno especial. A disciplina foi ministrada pelo Prof. Dr. Areolino de Almeida Neto.

Os tópicos da disciplina foram:

- Redes Neurais Artificiais (RNA). Neste tópico foram apresentadas as RNAs (inicialmente redes rasas), estrutura, arquitetura, tipos e usos de RNA. 

Figura 1 - Modelo básico de uma RNA

 
Figura 2 - Tipos de topologia

Figura 3 - Casos de topologia

Além da definição, tipos e regra de aprendizado computacional. As definições apresentadas foram:

“Aprendizagem é um processo no qual os parâmetros livres de uma rede neural são adaptados através de um processo de estimulação do meio-ambiente no qual a rede está inserida. O tipo de aprendizagem é determinado pela maneira que ocorrem as mudanças nos parâmetros" (S. Haykin)

“Aprendizagem é vista como processo de otimização. Isto é, aprendizagem consiste em um processo de busca de solução em um espaço multidimensional de parâmetros, em geral os pesos das conexões, que
otimize uma dada função objetivo.” (M. Hassoun)

Tipos de aprendizado

Os tipos de aprendizado de aprendizado de máquina pode ser resumido pela imagem abaixo. Há três tipos principais e cada um é mais indicado para lidar com tipos específicos de problemas.


 Tipos de redes neurais

Os tipos de redes neurais abordados de fato foram as Redes MLP, RBF e a CollabNet. Porém há muitos tipos de redes e as foram mencionadas as redes Kohonen, Elman, CMAC, Hopfield, Stacked Autoencoder, Convolucional, Time-delay NN, etc.

Entretanto o gráfico abaixo dá uma ideia mais próxima da variedade das redes neurais.


Atividades da disciplina

As atividades da disciplina foram as listadas abaixo com o respectivo link no GitHub. Clique nos links para ser redirecionado.

Atividade 01 - Lista de exercícios de MathLab - Objetivando conhecer os recursos básicos da ferramenta.

Atividade 02 - Reconhecimento de padrões via RNA tipo MLP (MultiLayer Perceptron) com o objetivo de avaliar carros.

Atividade 03 - Reconhecimento de padrões via RNA tipo RBF (Radial Base Function) com o objetivo de avaliar carros.

Atividade 04 -  Reconhecimento de fonemas via RNA tipo MLP

Atividade 05 - Reconhecimento de fonemas com múltiplas RNA tipo MLP.

 

segunda-feira, 6 de junho de 2022

Peça sua imagem

Você já precisou de alguma imagem da internet ? Veja bem talvez você nunca tenha precisado pois não é sua área de trabalho. Mas quem trabalha com internet, principalmente assessorias de imprensa, profissionais de marketing, produtores de conteúdo jornalístico, ficção e outras invariavelmente precisam de imagens que representem ou tenham relação com o assunto abordado.

Não é à toa que existem muitos bancos de imagens disponíveis para consulta e utilização de imagens, claro que os melhores e maiores bancos são pagos e com planos diversos. Ao final do texto, disponibilizei alguns poucos links com lista de bancos de imagens gratuitos e pagos que para quem precisa oferecerá imagens que vão atender toda e qualquer demanda.

 Pois bem, tempos atrás descobri algumas ferramentas utilizando Inteligência Artificial que vale a pena destacar devido às suas entregas. Pelo menos o que elas prometem entregar, já que nem todas estão sendo utilizadas como ferramenta comercial (ainda). São os geradores de texto-imagem. Você escreve o que você quer e gerador devolve opções de imagens a partir do seu texto. 

StyleGan2

A primeira das ferramentas que quero destacar, na verdade, não é um gerador de texto-imagem, mas entrega imagens novas geradas a partir de imagens reais. Esta ferramenta disponibiliza seus resultados no site thispersondoesnotexist.com. O site na verdade é só para mostrar os resultados obtidas pela StyleGan2 que é uma GAN - generative adversarial network (ou em português rede adversarial generativa). Uma GAN é uma rede neural para aprendizagem não supervisionada compostos por um sistema de dois modelos de rede neural que competem entre si e são capazes de analisar, capturar e copiar as variações dentro de um conjunto de dados. Apesar de os rostos de pessoas chamarem mais atenção a mesma rede neural faz o trabalho similar com trabalhos de arte, gatos, cavalos, dentre outros infinitos itens. Em todos é impressionante a fidelidade. Qualquer um diria que é uma foto de uma pessoa ou item real. 

Este vídeo aborda o StyleGan2 e seus recursos. Mais sobre o StyleGan2 veja os links desta lista

Dall-E 2 

O Dall-E 2 é um gerador de texto-imagem. O Dall-E 2 foi desenvolvido pela OpenAI.  É suficiente digitar um texto (em inglês) e a ferramenta cria várias imagens a partir do texto de entrada. O site mostra e compara os resultados do Dall-E 2 em comparação com os resultados do Dall-E 1. Aqui uma sequência das fotos geradas pelo Dall-E 2 ao se pedir um astronauta cavalgando um cavalo em estilo fotográfico.




Para se aprofundar o OpenAI disponibiliza documentação, API, exemplos, etc. O Dall-E 2 já está disponível comercialmente.

Imagen

Desenvolvido pelo o Google, o Imagen demonstra superioridade ao Dall-E 2 e várias outras GANs na geração de imagem a partir de texto. Na intenção de comprovar seus melhores resultados o site do Imagen mostra suas métricas comparativas a outros trabalhos. O Imagen apresenta variedade de estilos, texturas, compreensão maiores do que seus concorrentes. Aqui vão alguns exemplos:

 

Apesar dos resultados superiores, por enquanto o Imagen não parece estar disponível comercialmente. 

Pelo visto em um tempo não muito distante os banco de imagens vão ter que se atualizar e passar a agregar este tipo de solução  de inteligência artificial para atender seus clientes, já os fotógrafos... bem estes terão que se reinventar e os bons e persistentes encontrarão seu caminho no mundo.


========

Lista de bancos de imagens:

ProsaNova

ResultadosDigitais

DunaDesign

RockContent

=============

Lista StyleGan2

Vídeo explicativo 1 - StyleGANv2 Explained! 

Vídeo explicativo 2 - Editing Faces using Artificial Intelligence

Artigo - Analyzing and Improving the Image Quality of StyleGAN

Código da StyleGan2 no Github