Currently enrolled in an Artificial Intelligence program within the Master's degree in Data Science at รcole Polytechnique under the direction of Dr. Rรฉmi Flamary, with a cross-registration at the MVA (Mathematics, Vision, and Learning) program at ENS Paris-Saclay. I hold a Degree of Engineer from the National Polytechnic Institute - ENSEEIHT, where I specialized in High-Performance Computing (HPC) and Big Data and did an enriching Exchange Program in Computer Sciencee at Tsing Hua University in Taiwan.
Throughout my academic and professional journey, I have developed a strong foundation in research, programming, machine learning, and advanced data analysis, coupled with extensive hands-on experience in Python, R, Julia, and SQL, I am excited to unlock insights from complex datasets. During my experiences, notably at the National University of Singapore, I honed my expertise in developing neural networks from scratch, studying incremental learning, considering Model Compression and Data Poisoning mitigation in AI systems, and deploying an efficient fine-tuning process for Deep Neural Networks architectures.
I am passionate about applying my skills to tackle real-world problems, particularly in the intersection of AI and HPC, and contributing to impactful projects in environment, computer vision, and beyond. My experiences in Toulouse, Paris, China, Taiwan, and Singapore have solidified my global outlook, and I look forward to bringing innovative ideas to any team I work with.
C++
Year : 2022
Individual Project ๐ค
Computing
Objective: Maximize revenue. The goal of this project was to not use any existing C++ libraries and to code all data structures ourselves in order to develop a bike sharing company that can handle hundreds of thousands of user requests to rent a bike from station A to station B.
Information
We had to implement all the necessary data structures such as Graphs, Trees, and others to represent the distribution of stations with corresponding bicycles, as well as handling user requests.
Technologies
HTML5, CSS3, JavaScript
Year : 2023
Individual Project ๐ค
Web development
Objective: Create a portfolio in order to gather my projects, information, and ambitions.
Information
Project based on existing projects, but re-done in my own way and recoded from scratch.
Technologies
Java, Agile Methods
Year : 2022
Group Project ๐ฅ
Programming using Java
Objective: The player takes charge of a stable as a team manager. Their goal: to bring their team to the top.
Information
Our group of 7 students is required to develop an object-oriented application within six weeks. The work will be completed in three iterations of two weeks each.
Technologies
HTML5, CSS3
Year : 2018
Group Project ๐ฅ
Computing
Objective: As part of the TPE (Interdisciplinary Practical Work) in the Scientific Baccalaureate, we were asked to conduct a scientific research and present it in our own way. That's why my team and I decided to create a website.
Information
Thus, we conducted our TPE on the scientific topic of ultrasound on fractures and tumors, linking life and earth science with physics.
Technologies
Python
Year : 2022
Group Project ๐ฅ
Computing
Objective: Recognize and generate airplanes.
Information
During the Machine Learning course, we were asked to carry out a project on aircraft recognition and generation, using the FGVC-2013 database which contains approximately 10,000 aircraft. We used all the skills we learned during the Artificial Intelligence and Machine Learning course, which is part of my curriculum, during my Exchange Program in Taiwan.
Technologies
Python
Year : 2022
Individual Project ๐ค
Computing
Objective: Rebuild the well-known game of all time: 4 on a line.
Information
A game that I had to code during my Exchange Program in Taiwan, at National Tsing Hua University, ranked second in Taiwan, which we had to code in object-oriented Python.
Technologies
Python
Year : 2023
Group Project ๐ฅ
Computing
Objective: Solving the problem by discretizing it by the Lagrange finite element method with finite elements of type P1 (polynomial approximation of the first degree on a triangle)
Information
Obtaining by the finite element method an approximation of the solution of a two-dimensional Laplace problem with mixed boundary conditions (Dirichlet and Neumann).
Technologies
Python
Year : 2023
Individual Project ๐ค
Computing
Objective:
- Learning a perceptron through stochastic gradient descent.
- Multi-layer perceptron.
- Cost function adapted to classification tasks.
Information
Introduction of neural networks through a presentation of the perceptron. It is also an opportunity to familiarize with PyTorch commands.
Technologies
Python
Year : 2023
Individual Project ๐ค
Computing
Objective:
- Other basic building blocks of deep networks: convolutional layers and non-linearities.
- Analysis of a standard Convolutionnal Neural Network (CNN) trained on imagenet.
Information
Focus on convolutional layers, which are the basic building blocks of classical architectures such as VGG and ResNet. To understand their effect, we manipulate them a bit and introduce the maxpooling operations often associated with them. Then, we observe how their parameters have converged after training on the ImageNet database. We also visualize the output signal of the convolutional layers.
Technologies
Python
Year : 2023
Individual Project ๐ค
Computing
Objective:
- Training a CNN on MNIST. Comparison with a multi-layer perceptron.
- Initialization methods, regularization methods.
Information
Train a Convolutional Neural Network (CNN) on a slightly more challenging problem than separation of points in a 2D space: handwritten digit recognition. The dataset is named MNIST. It is located in the shared folder and comprises black and white (1 channel) images of 28x28 pixels.
Technologies
Python
Year : 2023
Individual Project ๐ค
Computing
Objective:
- Learning on a graphics card.
- Improving gradient descent: SGD with momentum and progressive learning rate decay (scheduler).
- Transfer learning: fine-tuning and freezing.
Information
Focus on two other important aspects of deep learning: speeding up learning with GPU cards and the ability to use pretrained networks. To illustrate the first aspect, we will use the GPUs available under Google Colab.
For the second aspect, we will work on a binary classification problem using a small dataset ("hymenoptera_data"). We will see the benefits of using a network that has already been trained on a larger dataset and a more general classification task.
Technologies
Python
Year : 2023
Individual Project ๐ค
Computing
Objective:
- Testing an FCN-ResNet on a semantic segmentation problem with adapted metrics.
- Perfectly supervised learning of a U-Net for image denoising.
Information
Fully Convolutional Network (FCN) does not contain fully connected layers. As a result, the output retains spatial dimensions. This configuration is useful when the learning target itself is an image.
The first exercise features an FCN built from a ResNet50 for a simple segmentation task defined from a set of real images segmented by hand.
The second exercise proposes a pixel-wise regression task, completely supervised, defined on a set of dynamically generated synthetic images.
Technologies
Python
Year : 2023
Individual Project ๐ค
Computing
Objective:
- The noise-to-noise scenario.
- Neural Eggs Separation (simplified case).
Information
We had pairs (noisy version, clean version) to learn from. However, in real-world applications, clean versions are barely available.
Sometimes, there are instances where multiple noisy versions are accessible. Consider, for example, photos taken with a telephoto lens with several seconds between shots: the effects of air turbulence on image quality are independent from one image to another.
In another scenario, two sources of images can be sampled independently. The first provides noisy images containing the object of interest. Images from the second source contain only noise. Additionally, the corruption process, i.e., how the noise is combined with the clean image, is assumed to be known. This is a relatively common scenario. For instance, in the case of meteorological radar images, it is possible to extract images containing only noise during non-precipitation periods.
Technologies
Python
Year : 2023
Individual Project ๐ค
Computing
Objective: Implementation of a simple RNN using PyTorch.
Information
Recurrent Neural Networks (RNNs) are a class of artificial neural networks designed to process sequential data. Unlike traditional feedforward neural networks, which process the entire input independently, RNNs maintain a hidden state that captures information about the input seen so far. This hidden state is updated at each time step, allowing RNNs to retain information about the context of the sequence.
Technologies
Python
Year : 2023
Individual Project ๐ค
Computing
Objective: Implementation of a LSTM for folk music generation.
Information
Three preprocessing steps:
- Cleaning: the text is cleaned and formatted in a standard form.
- Tokenization: the text is segmented in elmentary units (eg: letters, words, pieces of words, etc).
- Numericalization: each token is mapped to a numerical id.
An embedding step: the numerical ids are mapped onto tensors. This mapping is usually parameterized by trainable weights. Hence it is done during the learning phase.
Technologies
Python
Year : 2023
Individual Project ๐ค
Computing
Objective:
- Adapted Cost Function
- Two examples with FCN
- A simultaneous quantile regression
Information
We immerse ourselves again in the context where the training inputs (x) and targets (y) are images of the same spatial dimensions. However, we assume that the dependence of y on x is probabilistic in nature. In other words, there exist conditional laws p(y|x), and these laws need to be characterized.
Technologies
Python
Year : 2023
Individual Project ๐ค
Computing
Objective:
- Basic Principle and First Training
- Limitations
- A Wasserstein GAN
Information
We aim to characterize a distribution in an image domain, rather than at the pixel level.
In high dimensions, especially on real images, the joint distribution is not modelable. It is not feasible to seek its density. However, we can attempt to sample from this distribution by relying on an existing set of images. We will start by doing this without worrying about the conditional aspect: in Exercise 1, the goal is to build a generative model that samples a domain of synthetic images.
Most recent generative models are primarily constructed from deep neural networks. In the field of image generation, one of the main approaches is based on GANs (Generative Adversarial Networks). First, we illustrate this approach in its simplest version, then we will present some variations. Finally, we will revisit the conditional aspect. The GAN approach is modified to sample from an implicit conditional distribution.
Technologies
Python
Year : 2023
Individual Project ๐ค
Computing
Objective: Implementation of a denoising diffusion probabilistic model.
Information
A diffusion probabilistic model, referred to as a "diffusion model" for conciseness, is a parameterized Markov chain trained through variational inference to generate samples that match the data within a finite time frame. The transitions in this chain are designed to reverse a diffusion processโa Markov chain that gradually introduces noise to the data in the opposite direction of sampling until the signal is obliterated.
Technologies
Python
Year : 2023
Individual Project ๐ค
Computing
Objective: All images consist of a mixture of a disc and a variable number of rectangles of different shapes. The goal is to sort the images based on the pixel intensity on the disc. To achieve this, we work in a standard context where we have pairs of ordered images. Using these pairs, we will train a neural network to construct a real-valued "ranking function" (ranker) whose outputs enable the sorting of images.
Information
Several problems fall under the label "learning-to-rank." One example is sorting a given list of labels (e.g. URL of websites) by relevance to an input query. This problem is referred to as label ranking.
In another scenario, input objects (e.g. images) should be sorted wrt a given criterion (e.g. 'foggy' or 'snowy'). Terms like object ranking and learning to order things are often used to describe this situation. In both cases, the learning is based on sorted samples, such as pairs of ordered images.
Technologies
Python
Year : 2023
Individual Project ๐ค
Computing
Objective: The first part of the practical work demonstrated how it is possible to sort in ascending order a set of inputs based on pairs of ordered images. The method involved training Siamese CNNs with a single terminal neuron, penalizing incorrectly ordered pairs of outputs. In this section, we address a problem of a somewhat similar nature: we have access to a set of input pairs containing the same object presented in different ways. The goal is to train the network in such a way that two inputs corresponding to the same object are "close" in the output space.
Information
This could, for example, involve people photographed from different angles. In this case, a common motivation is to re-identify a person in surveillance video images.
The task then resembles a classification. The nuance is that the classes are not predefined. The task also resembles clustering. The difference lies in the availability of images from the same class (supervised vs. unsupervised).
In this practical work, we present the basics of two now-classic approaches, the second of which can be seen as an improvement on the first.
Technologies
Python
Year : 2023
Individual Project ๐ค
Computing
Objective: Image classification using Vision Transformer (ViT) model.
Information
The ViT model consists of multiple Transformer blocks, which use the layers.MultiHeadAttention layer as a self-attention mechanism applied to the sequence of patches. The Transformer blocks produce a [batch_size, num_patches, projection_dim] tensor, all the outputs of the final Transformer block are reshaped with layers.Flatten() then processed via a classifier head with softmax to produce the final class probabilities output
Self-attention is a mechanism that allows to a model to process input data by focusing on different parts of the input at different times. It is often used in natural language processing tasks, but can be applied to other types of data, in our case, images.
Imagine that you are trying to understand a sentence by reading it one word at a time. With self-attention, the model can "pay attention" to different words in the sentence at different times, and use this information to better understand the meaning of the sentence. For example, for processing the word "it" the model might "pay attention" to "The" and "monkey" more than the other parts of the sentence.
Technologies
Python
Year : 2023
Group Project ๐ฅ
Computing
Objective: The task at hand involves classifying land cover types, such as 'Forest,' 'River,' 'Highway,' and more, based on satellite images. The dataset consists of images labeled with their corresponding land cover types. The goal is to train a machine learning model that can accurately predict the land cover type of new, unseen images.
Information
The dataset comprises 64x64 images obtained by the Sentinel-2A satellite, featuring more than 27,000 images distributed across 10 classes. Initially, the data comprises hyperspectral images with 13 spectral bands, but our focus is specifically on working with the RGB channels.
The ResNet50 CNN model, fine-tuned with an 80-20 data split for the RGB channels, demonstrated optimal performance, achieving approximately 96% accuracy.
Technologies
Computer Vision
Core Machine Learning
Conversational AI
Natural Language Processing (NLP)
Speech & Audio
Email: bryan.chen[at]polytechnique.edu