{"@attributes":{"version":"2.0"},"channel":{"title":"Oriol Al\u00e0s Cerc\u00f3s","link":"https:\/\/oriolac.github.io\/","description":"Recent content on Oriol Al\u00e0s Cerc\u00f3s","generator":"Hugo -- 0.150.0","language":"en-us","copyright":"Oriol Al\u00e0s Cerc\u00f3s","lastBuildDate":"Wed, 24 Jun 2026 17:10:23 +0100","item":[{"title":"Under the Hood of Graph Neural Networks: Message Passing, Over-Smoothing and Attention","link":"https:\/\/oriolac.github.io\/posts\/20260624-gnns\/","pubDate":"Wed, 24 Jun 2026 17:10:23 +0100","guid":"https:\/\/oriolac.github.io\/posts\/20260624-gnns\/","description":"<p>In this post we will present an introduction of how <strong>Spatial Graph Neural Networks (GNNs)<\/strong> or <strong>Graph Convolutional\nNeural\nNetworks (GCNs)<\/strong> work. First, we are going to define graph data structures. Then, we are going to explain the mechanism\non GNNs. And finally, we will explain how to incorporate an attention mechanism in the network.<\/p>\n<div class=\"callout callout-info\" role=\"note\">\n<div class=\"callout-body\">\n<p class=\"callout-title\">\n<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M12 16v-4\"\/><path d=\"M12 8h.01\"\/><\/svg>\nNotation of GNNs<\/p>\n<div class=\"callout-content\"><blockquote>\n<p>During the whole text, we will use the notation of GNN as Spatial Graph Neural Network, although GCN or Graph\nConvolutional Neural Network is another notation to say it. There are other types of GNNs like Spectral Graph Neural\nNetworks, but in this post we will focus on the first mentioned ones.<\/p>"},{"title":"Reviewing YOLO: You Only Look Once","link":"https:\/\/oriolac.github.io\/posts\/20260501-yolo\/","pubDate":"Sat, 25 Apr 2026 20:10:23 +0100","guid":"https:\/\/oriolac.github.io\/posts\/20260501-yolo\/","description":"<p>Object detection is one of the most popular tasks in computer vision, since it can be applied to a wide range of\napplications: robotics, autonomous driving or fault detection. In this post, we will try to give a brief overview of\nthe YOLO algorithm and the components that make it work.<\/p>\n<p>To do that, I have classified the main components of the algorithm into three categories:<\/p>\n<ul>\n<li>Characteristics based on the <strong>model architecture<\/strong>, how YOLO-based models improved the performance by using a new\narchitecture and which are the improvements made.<\/li>\n<li>Strategies based on the <strong>model training<\/strong>, such as the function loss or data augmentation.<\/li>\n<li>Methods for <strong>post-processing the output<\/strong> of the model, such as the non-maximum suppression (NMS) and the\nconfidence threshold.<\/li>\n<\/ul>\n<h2 id=\"two-stage-vs-one-stage-detectors\">Two-stage vs One-stage Detectors<\/h2>\n<p>Before YOLO, SoTA detectors were based on a <strong>two-stage detector<\/strong>: the first stage is used to detect the bounding\nboxes,\nand the second stage is used to classify the bounding boxes. This kind of model is called region-based detectors,\nbecause they need the region to then run the classification.<\/p>"},{"title":"Loss functions and their final-layer activations","link":"https:\/\/oriolac.github.io\/posts\/20260410-loss-functions-activations\/","pubDate":"Fri, 20 Mar 2026 20:10:23 +0100","guid":"https:\/\/oriolac.github.io\/posts\/20260410-loss-functions-activations\/","description":"<p>When making the first steps with deep learning, we grasp the idea of using a neural network to learn a function that\nmaps data to other data. We are often told that neural networks are a powerful tool in machine learning because of their\nnon-linearity and their ability to learn complex functions from data, which results in minizing some loss function. In\nthis post, we will explSore how the final-layer activations are dependent on the loss function of our problem.<\/p>"},{"title":"InnWater \u2013 Water Tariff Dashboard","link":"https:\/\/oriolac.github.io\/projects\/innwater-tariff\/","pubDate":"Mon, 02 Feb 2026 00:00:00 +0000","guid":"https:\/\/oriolac.github.io\/projects\/innwater-tariff\/","description":"AI-augmented economic simulation platform for sustainable and equitable water tariff design within the WEFE nexus."},{"title":"Variational AutoEncoders (VAE) for Tabular Data","link":"https:\/\/oriolac.github.io\/posts\/20251210-vae-tabular\/","pubDate":"Sun, 21 Dec 2025 11:10:23 +0100","guid":"https:\/\/oriolac.github.io\/posts\/20251210-vae-tabular\/","description":"<p>The post of today is going to be a bit different. We have already talked about <strong>Variational Autoencoders (VAE)<\/strong>\n<a href=\"http:\/\/oriolac.github.io\/posts\/20250710-starting-diffusion\/\" target=\"_blank\" rel=\"noopener\">in the past<\/a>, but today we are going to see how to\nimplement it from scratch, train it on a dataset and see how it behaves with <strong>tabular data<\/strong>. Yes, VAEs can be used for\ntabular data as well. To do so, we will use the <strong>CRISP-DM framework<\/strong> to guide us through the process.<\/p>"},{"title":"From Words to Vectors: A Dive into Embedding Model Taxonomy","link":"https:\/\/oriolac.github.io\/posts\/20251025-embedding-models\/","pubDate":"Sat, 25 Oct 2025 12:31:23 +0100","guid":"https:\/\/oriolac.github.io\/posts\/20251025-embedding-models\/","description":"<p>Embedding models are foundational in modern NLP, turning raw text into numerical vectors that preserve semantic\nsignificance. These representations power everything from semantic search to Retrieval-Augmented Generation or Prompt\nEngineering for LLM Agents. With growing demand for domain-specific applications, understanding which is the best fit\nfor your system is more important than ever.<\/p>\n<h1 id=\"introduction\">Introduction<\/h1>\n<p>In modern NLP, a <em>text embedding<\/em> is a vector that represents a piece of text in a mathematical space. The magic of\nembeddings is that they encode semantic meaning: texts with similar meaning end up with vectors that are close together.\nFor example, an embedding model might place &ldquo;How to change a tier&rdquo; near &ldquo;Steps to fix a flat tire&rdquo; in its vector space,\neven though the wording is different. This property makes embedding models incredibly useful for tasks like search,\nclustering or recommendation, where we care about <em>semantic similarity<\/em> rather than exact keyword matches. By converting\ntext into vectors, embedding models allow computers to measure meaning and relevance via distances in vector space.<\/p>"},{"title":"InnWater \u2013 AI-Augmented Water Governance Platform","link":"https:\/\/oriolac.github.io\/projects\/innwater-wg\/","pubDate":"Wed, 01 Oct 2025 00:00:00 +0000","guid":"https:\/\/oriolac.github.io\/projects\/innwater-wg\/","description":"AI-powered decision-support system for water governance assessment and policy optimization within the WEFE nexus."},{"title":"The Generative Trilemma: A quick overview","link":"https:\/\/oriolac.github.io\/posts\/20250710-starting-diffusion\/","pubDate":"Thu, 10 Jul 2025 12:13:48 +0100","guid":"https:\/\/oriolac.github.io\/posts\/20250710-starting-diffusion\/","description":"<p>Generative models are a class of machine learning that learn a representation of the data trained on and they model the\ndata itself.<\/p>\n<p>Ideally, generative models should satisfy the following key requirements in a real environment:<\/p>\n<ul>\n<li><strong>High quality samples<\/strong> refers to those samples that captures the underlying patterns and\nstructures present in the data making them indistinguishable from human observers.<\/li>\n<li><strong>Fast Sampling<\/strong> is about the efficiency of image generation and the computational overhead\nthat can cause generative models.<\/li>\n<li><strong>Mode Coverage\/Diversity<\/strong> points out how the model is able to generate a full range of\nmods and diverse patterns present in the training data<\/li>\n<\/ul>\n<p>\n<figure>\n<img loading=\"lazy\" src=\"https:\/\/oriolac.github.io\/posts\/2025\/gen_tril\/gen_tril.png#center\" alt=\"alt text\" title=\"Fig. 1. The Generative Learning Trilemma\" \/>\n<figcaption\nstyle=\"\nfont-size: 15px;\ncolor: #7a7a7a;\nmargin-top: 0.5em;\ntext-align: center;\nfont-weight: 100;\n\"\n>\nFig. 1. The Generative Learning Trilemma\n<\/figcaption>\n<\/figure>\n<\/p>"},{"title":"Reconeixement de Vehicles i Reconstrucci\u00f3 de Tr\u00e0nsit amb NebulOus","link":"https:\/\/oriolac.github.io\/talks\/techmeeting-nebulous\/","pubDate":"Thu, 01 May 2025 00:00:00 +0000","guid":"https:\/\/oriolac.github.io\/talks\/techmeeting-nebulous\/","description":"<h2 id=\"overview\">Overview<\/h2>\n<p>Presentation on vehicle recognition and traffic reconstruction using the NebulOus cloud platform. The talk covers the application of computer vision techniques for traffic analysis and the deployment of ML models in cloud infrastructure.<\/p>\n<h2 id=\"key-topics\">Key Topics<\/h2>\n<ul>\n<li>Vehicle detection and tracking<\/li>\n<li>Traffic pattern reconstruction<\/li>\n<li>NebulOus cloud platform architecture<\/li>\n<li>Real-time processing challenges<\/li>\n<\/ul>\n<h2 id=\"event\">Event<\/h2>\n<p>TechMeeting is a technical meetup in Lleida focused on emerging technologies and their practical applications.<\/p>"},{"title":"Introduction to Attention Mechanism and Transformers","link":"https:\/\/oriolac.github.io\/posts\/20241029-attention\/","pubDate":"Mon, 17 Feb 2025 12:31:23 +0100","guid":"https:\/\/oriolac.github.io\/posts\/20241029-attention\/","description":"<p>Transformers have demonstrated excellent capabilities and they overcome challenges such <em>NLP<\/em>, <em>Text-To-Image Generation<\/em> or <em>Image Completion<\/em>\nwith large datasets, great model size and enough compute.\nTalking about transformers nowadays is as casual as talking about <em>CNNs<\/em>, <em>MLPs<\/em> or <em>Linear Regressions<\/em>. Why not take a glance through this state-of-the-art architecture?<\/p>\n<p>In this post, we\u2019ll introduce the Sequence-to-Sequence (Seq2Seq) paradigm, explore the attention mechanism, and provide a detailed,\nstep-by-step explanation of the components that make up transformer architectures.<\/p>"},{"title":"QR Nativity Challenge","link":"https:\/\/oriolac.github.io\/projects\/repte-pessebre\/","pubDate":"Sun, 01 Dec 2024 00:00:00 +0000","guid":"https:\/\/oriolac.github.io\/projects\/repte-pessebre\/","description":"Gamified QR-based Christmas challenge for local commerce."},{"title":"Thresholding, filtering and morphological operations","link":"https:\/\/oriolac.github.io\/posts\/cv-techniques\/20240615-cv-techniques\/","pubDate":"Fri, 25 Oct 2024 17:51:55 +0200","guid":"https:\/\/oriolac.github.io\/posts\/cv-techniques\/20240615-cv-techniques\/","description":"Traditional computer vision techniques involve methods and algorithms that do not rely on deep learning or neural networks. Instead, these approaches are not data-driven and they use classical approaches to process and analyze images. So, in this post, we will explore three thresholding techniques"},{"title":"IA Generativa: LLMs vs SLMs","link":"https:\/\/oriolac.github.io\/talks\/ai-big-data-congress\/","pubDate":"Tue, 01 Oct 2024 00:00:00 +0000","guid":"https:\/\/oriolac.github.io\/talks\/ai-big-data-congress\/","description":"<h2 id=\"overview\">Overview<\/h2>\n<p>Comparative analysis of Large Language Models (LLMs) and Small Language Models (SLMs) in the context of generative AI.\nExplanation of different capabilities to customize and fine-tune models and limitations of deployment.<\/p>\n<h2 id=\"key-topics\">Key Topics<\/h2>\n<ul>\n<li>Architecture differences between LLMs and SLMs<\/li>\n<li>Capabilities for customization and fine-tuning<\/li>\n<li>Deployment considerations and resource requirements<\/li>\n<li>Real-world applications and use case selection<\/li>\n<\/ul>\n<h2 id=\"event\">Event<\/h2>\n<p>The AI &amp; Big Data Congress is one of Spain&rsquo;s conferences on artificial intelligence and data science, bringing\ntogether researchers, practitioners, and industry leaders.<\/p>"},{"title":"Generative AI: Retrieval Augmented Generation (RAG) systems","link":"https:\/\/oriolac.github.io\/talks\/cidai-masterclass-rag\/","pubDate":"Thu, 01 Feb 2024 00:00:00 +0000","guid":"https:\/\/oriolac.github.io\/talks\/cidai-masterclass-rag\/","description":"<h2 id=\"overview\">Overview<\/h2>\n<p>Comprehensive masterclass on Retrieval Augmented Generation (RAG) systems, covering the fundamentals of combining retrieval mechanisms with large language models to improve accuracy and reduce hallucinations.<\/p>\n<h2 id=\"key-topics\">Key Topics<\/h2>\n<ul>\n<li>RAG architecture and design patterns<\/li>\n<li>Embedding models and vector databases<\/li>\n<li>Chunking strategies and retrieval optimization<\/li>\n<li>Evaluation metrics and best practices<\/li>\n<li>Hands-on implementation examples<\/li>\n<\/ul>\n<h2 id=\"event\">Event<\/h2>\n<p>CIDAI (Centre d&rsquo;Innovaci\u00f3 Digital i Artificial Intelligence) masterclass series focused on advanced AI techniques for professionals and researchers.<\/p>"},{"title":"Introduction to ML & DL","link":"https:\/\/oriolac.github.io\/talks\/hackeps-ml-dl\/","pubDate":"Tue, 01 Nov 2022 00:00:00 +0000","guid":"https:\/\/oriolac.github.io\/talks\/hackeps-ml-dl\/","description":"<h2 id=\"overview\">Overview<\/h2>\n<p>Introductory workshop on Machine Learning and Deep Learning fundamentals designed for hackathon participants. The session covers core concepts, practical algorithms, and hands-on implementation using popular frameworks.<\/p>\n<h2 id=\"key-topics\">Key Topics<\/h2>\n<ul>\n<li>Supervised vs unsupervised learning<\/li>\n<li>Neural network fundamentals<\/li>\n<li>Common ML\/DL architectures<\/li>\n<li>Practical tools and frameworks (scikit-learn, PyTorch, TensorFlow)<\/li>\n<li>Tips for rapid prototyping in hackathons<\/li>\n<\/ul>\n<h2 id=\"event\">Event<\/h2>\n<p>HackEPS is the largest hackathon in Catalonia, organized by students at the University of Lleida, bringing together hundreds of participants to build innovative projects in 24 hours.<\/p>"},{"title":"Sales Forecasting with ARIMA + RNN","link":"https:\/\/oriolac.github.io\/projects\/sales-prediction-mckinsey\/","pubDate":"Fri, 21 Oct 2022 16:00:00 +0100","guid":"https:\/\/oriolac.github.io\/projects\/sales-prediction-mckinsey\/","description":"Time-series sales forecasting project combining statistical baselines (ARIMA) with an RNN\/LSTM model to predict sales by product category"},{"title":"Homomorphic Encryption","link":"https:\/\/oriolac.github.io\/talks\/techmeeting-homomorphic\/","pubDate":"Tue, 01 Jun 2021 00:00:00 +0000","guid":"https:\/\/oriolac.github.io\/talks\/techmeeting-homomorphic\/","description":"<h2 id=\"overview\">Overview<\/h2>\n<p>Introduction to homomorphic encryption and its applications in privacy-preserving computation. The talk explores the mathematical foundations, practical implementations, and real-world use cases for computing on encrypted data.<\/p>\n<h2 id=\"key-topics\">Key Topics<\/h2>\n<ul>\n<li>Fundamentals of homomorphic encryption<\/li>\n<li>Different schemes (partial, somewhat, fully homomorphic)<\/li>\n<li>Performance considerations and limitations<\/li>\n<li>Use cases in finance, healthcare, and cloud computing<\/li>\n<\/ul>\n<h2 id=\"event\">Event<\/h2>\n<p>TechMeeting is a technical meetup in Lleida focused on emerging technologies and their practical applications.<\/p>"},{"title":"Contact","link":"https:\/\/oriolac.github.io\/contact\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/oriolac.github.io\/contact\/","description":"Get in touch with Oriol Al\u00e0s Cerc\u00f3s."},{"title":"Privacy & Cookie Policy","link":"https:\/\/oriolac.github.io\/privacy-policy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/oriolac.github.io\/privacy-policy\/","description":"How this site collects and uses data, and your cookie choices."}]}}