terça-feira, 20 de fevereiro de 2024
Otto e Holdovers
sábado, 3 de fevereiro de 2024
Air - Anos 80 e muita ousadia
Convencer os pais de Jordan que a Nike era a melhor opção, apesar de todo o dinheiro que as grandes lhes dariam, elas não dariam a Jordan o principal lugar. Sempre havia astros veteranos que atraiam fãs e consumidores. Os grandes nomes da época eram Magic Johnson e Larry Bird para ficar nos dois maiores. Na Nike, Jordan seria única estrela. Vaccaro foi muito perspicaz para ter acesso aos pais de modo mais pessoal possível e ser transparente com eles inclusive antecipando como eles seriam tratados pelas demais grandes do mercado e não deu outra. A família Jordan teve segurança, estabilidade e vantagens contratuais nunca vistas ao assinar com a Nike.
quinta-feira, 11 de janeiro de 2024
Tops 2023
2. Oppenheimer (2023). A história de vida do físico teórico J. Robert Oppenheimer que liderou o projeto Manhattan para produzir as primeiras bombas nucleares. Claro que como diretor do projeto ele não fez tudo. O filme destaca o papel demais físicos envolvidos num esforço conjunto. Apesar de os EUA terem lançado as bombas sobre a população civil japonesa, toldando o trabalho excepcional de Oppenheimer e associados, não tira o trabalho sem igual deste homem genial.
3. A Man Called Otto (2022). Apesar da atuação do laureado Tom Hanks, no papel de Otto um velho amargo e rabugento que com certeza morreria só e esquecido, o grande destaque é a Marisol (Mariana Treviño), uma mãe mexicana que não conhece fronteiras invade a vida de Otto tirando-o da condenação de uma vida longe das pessoas. Ótimo filme para se aprender a viver. Eu fiz um post referente ao filme. Clique aqui para ver.
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.
Referências
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
segunda-feira, 11 de dezembro de 2023
Meu time caiu para a segundona
quarta-feira, 9 de agosto de 2023
Redes e as frases sinceras
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.
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.
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.