PERSONAL SUMMARY
Contents:
AI is the science of automating cognition, and just as cognition lies at the intersection between the physical and mental worlds, AI lies at the intersection between the physical and digital worlds. Like cognition, AI is about using data to act to achieve a practical purpose, especially long-range. AI, i.e. automated cognition, if done right, can allow for faster, more accurate and more powerful processing of data, and in today’s data-rich world, AI has more potential than perhaps any other technology to expand our problem-solving capabilities.
The practical value of AI is realised in the intersection between the physical and digital worlds. However, AI is a complex field, with complexity in both the conceptualisation of solutions and their implementation, i.e. in both theory and practice. My central purpose is to explore, expand, and communicate ideas that lie at this intersection, in order to realise the practical value of AI in a variety of use-cases, such as the recognition of cybersecurity threats, medical diagnosis, customer care, etc. These ideas may originate from fields such as statistics, computer science and symbolic and sub-symbolic paradigms, but regardless of their source, the core objective is always to make their value accessible to AI practitioners.
My background in statistics provides a strong theoretical foundation for analysing data, while my expertise in ML connects this theory with practical applications. In addition, my programming experience, gained through both academic and personal projects, equips me with the skills necessary to implement advanced statistical and ML solutions. I am particularly drawn to interdisciplinary research, especially at the intersection of data science and areas such as life sciences, health, natural sciences, and robotics, as this approach aligns with my interest for applying data-driven solutions to complex, real-world problems. My master’s thesis on uncertainty quantification has already given me a glimpse into these complex data challenges, and I am eager to explore them further.
Tying my background of statistics, ML and computer science to my central purpose, my productive purpose is to explore, expand and elucidate concepts, frameworks and solutions in ML and data science. To this end, I aim in the long-run to engage in research for ML solutions in key problem areas of data-driven AI, such as explainability, transparency, accountability and data security. In the short-to-medium-term, my aim is to gain practical experience in related areas (e.g. in data-driven business decision-making, industrial research, etc.) so as to strengthen my grasp of the use and value of ML solutions. Aligning with my aforementioned aims are my academic and personal projects that I have undertaken in the course of my bachelor’s and master’s. My most notable projects are listed below:
Evaluating uncertainty quantification of Bayesian neural networks (Python, 2024): This study aims to evaluate the uncertainty quantification of Bayesian neural network models (BNN models) about their own predictions, focusing on comparing two Bayesian inference (BI) methods — Hamiltonian Monte Carlo (HMC) and variational inference (VI) — that are based on two broad approaches to computational BI, namely exact and approximate BI. This study draws on a number of papers exploring computational BI methods and their application in deep learning, i.e. for neural networks. This study serves to expand my skills in research and technical presentation.
Convolutional and Recurrent Neural Networks for Music (Python, 2024): The objective was to implement a ML system to recognise musical keys and tempo of a given piece of music. CNN was applied for musical key recognition and BRNN for tempo recognition. The training audio data used was pre-processed using a custom pipeline that converted audio signals to Mel spectrograms using Librosa and then converted each Mel spectrogram into equally sized segments. The tasks were combined using an end-to-end post-processing system to generate predictions. This project serves to expand my hands-on experience in recognising appropriate ML architectures for the given tasks, implementing these architectures (using Python), and performing data pre-processing and the post-processing of results.
Ambience-to-Music Neural Style Transfer (Python, 2024): The project aimed to apply deep learning to computational creativity, specifically using neural style transfer (NST) for audio. The objective was to transfer the style of ambient soundtracks to melodic compositions. A convolutional neural network (CNN) was trained for genre classification and adapted its layers for audio-based NST, referencing visual NST methods. A Google Colab interface provides a user-friendly interface for end-to-end usage, from uploading audio files to obtaining style transfer results. Mel spectrograms were used to process audio, with careful attention to preserving sound quality. Though the outputs were noisy, the project highlighted the potential and limitations of NST in audio.
Cellular Automata and Behaviour Trees (C# in Unity, 2024): The project focused on designing cellular automata to generate “Coral Reef” terrains and creating two agents—a diver and a hostile mermaid—guided by distinct behavior trees. Three cellular automata were developed to ensure diverse, natural terrain features like water pathways and coral clusters. Players control the diver to collect five artifacts while avoiding the mermaid’s ranged and melee attacks. Scoring is based on the time taken and remaining health, with death resulting in a score of zero. Coral formations offer hiding spots but slow the diver and increase vulnerability. The integration of terrain features, agent behaviors, and game objectives presented as much of a creative challenge as a practical one. More links: Video Presentation.
Reinforcement Learning Methods for Obstacle-Course Navigation (Python, 2024): This project leverages reinforcement learning (RL) to develop algorithms for navigating the “Frozen Lake” environments, initially in a small setting and later in a larger one. Although the project was a team effort, methods were implemented individually by each member, followed by collaborative code reviews, experiments, and a final report. The focus included the following methods: tabular model-based (policy iteration, value iteration), tabular model-free (SARSA, Q-Learning), non-tabular model-free (linear SARSA, linear Q-Learning), and deep reinforcement learning. This project strengthened my knowledge of RL methods, especially due to the simple yet functional environment. More links: Team Repository, Final Report.
Enhancing Monte Carlo Tree Search (MCTS) (Java, 2023): The project aimed to enhance the MCTS algorithm in the Tabletop Games Framework to improve agent performance in “Sushi Go!”. Collaborating with two teammates, we proposed several methods, including hard pruning, Bayes-UCB sampling, and Thompson sampling, the latter being the winning solution. I proposed IS-MCTS, but my implementation yielded poor results, preventing me from contributing to the final code. However, I ran the final experiments and compiled the experimental data. I also played a key role in the project report, covering MCTS theory, the exploration-exploitation dilemma, and multi-root MCTS. Our Thompson sampling agent outperformed all other enhancements, leading to a final project grade of 94% due to our successful report and victory in the intra-class tournament. This project served to improve my collaboration skills and served as an exercise in interpreting and modifying complex code files. More links: Final Report.
Text Mining and Sentiment Analysis via Chrome Extension (JavaScript + HTML + Python, 2022): This team project aimed to develop a real-life software application. Our specific goal was to design a Chrome extension for text and sentiment analysis of web pages. I created the Chrome extension and connected its frontend to a Python backend using Django, while a teammate handled the text mining and sentiment analysis. I wrote a popup script for displaying results and used Chart.js to generate graphs. To facilitate communication between the frontend and backend, I developed a background service worker in JavaScript. The prototype extension allows user inputs for specifying HTML elements to analyze and displays a word cloud, word frequency chart, and sentiment pie chart, although it relies on a locally hosted backend. This project greatly improved my programming and problem-solving abilities, since every aspect of the end result was based on a number of implicit requirements that were further complicated by the interactivity between JavaScript and Python codes.