Skip to content
View pranigopu's full-sized avatar

Block or report pranigopu

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
pranigopu/README.md

Welcome!

Hi, I'm Prani Gopu a.k.a. Pranav Gopalkrishna 👋

📫 Email [email protected]
🧑‍🤝‍🧑 Social Instagram: @pranigopu ¦ LinkedIn: Pranav Gopalkrishna
🌐 Websites Personal Writing Showcase ¦ Personal Website

🔍 Introduction

Artificial intelligence is the subject of my choice for which I have a lot of time studying the theory and applying my knowledge in a variety of projects. My key motivations in studying AI were to (1) expand on the creative applications of AI systems and (2) integrate theory and practice to create well-founded and accessible solutions. I have a strong background in computer science, especially due to my extensive programming projects (mostly in Python, Java and C) in a variety of domains (both personal and academic; click here). I also have a strong background in statistics and mathematics. I enjoy both mathematics and computer science, and putting them together has been a long-standing interest of mine. Additionally, I enjoy writing (in both technical and creative areas) and occasionally composing music.

🔨 Highlighted Projects

Comparative Evaluation of Bayesian Neural Networks (2024) (Master's Thesis)

Evaluates and compares two Bayesian inference (BI) methods — Hamiltonian Monte Carlo (HMC) and variational inference (VI) — as applied to uncertainty quantification in Bayesian neural networks (BNNs) for regression problems. Drawing on existing research in computational BI and deep learning, this study presents the theoretical and practical progression from BI to BNNs, and demonstrates the effectiveness of uncertainty quantification of the two BNN implementations for regression problems. The HMC and VI BNN models were implemented using Tensorflow and PyTorch respectively.

Goal 1Present a clear link between BI and BNNs in practice
Goal 2Evaluate the performance of different BNN methods
ToolsPython using Jupyter Notebook
Keywordsbayesian inference, bayesian neural network
Grade73.2%
See GitHub repository >> | See dissertation >>
Cellular Automata and Behaviour Trees (2024)

This project focused on (1) designing cellular automata to procedurally generate "coral reef" terrains and (2) implementing behavior trees for two agents: a diver (player) and a mermaid (AI). A key challenge was designing three distinct cellular automata that generated diverse yet coherent terrain, maintaining the natural aesthetics of coral reefs while offering gameplay variety. The game evolved into a simple but engaging challenge where the player must collect five artifacts while evading the mermaid's ranged and melee attacks. Coral reefs provided hiding spots but slowed the diver if spotted, balancing stealth and vulnerability. The player’s score depends on time taken and remaining health, adding tension and strategy to the gameplay.

Goal 1Design cellular automata for coral reef terrains
Goal 2Implement behaviour trees for NPC and player agents
ToolsC# using Unity Game Engine
Keywordsunity, procedural content generation, behaviour tree
Grade89%
See GitHub repository >> | See video presentation >>
Convolutional and Recurrent Neural Networks for Musical Analysis (2024)

Developed a machine learning system to recognise musical keys and tempo using convolutional neural networks (CNNs) and bidirectional recurrent neural networks (BRNNs) respectively, both implemented with Keras. Audio data was pre-processed into Mel spectrograms and segmented with Librosa, then combined through an end-to-end system for predictions. This project sharpened skills in ML architecture selection, data pre-processing, and result integration.

GoalTrain models for music key and tempo recognition
ToolsPython using Jupyter Notebook
Keywordsconvolutional neural network, bidirectional recurrent neural network
Grade60%
See GitHub repository >>
Neural Style Transfer (NST) to Transfer Ambience to Music (2024)

Implemented neural style transfer (NST) to blend ambient soundtracks with melodic compositions. Developed a CNN for genre classification (implemented with Keras) and integrated it into a custom NST algorithm for audio (handling tensor operations using Tensorflow). Created an end-to-end interface on Google Colab for seamless audio processing and style transfer. Despite noisy outputs, the project provided insights into the potential and limitations of applying NST to audio.

GoalApply NST to transfer ambient sound characteristics to music
ToolsPython using Google Colab
Keywordsneural style transfer, convolutional neural network
Grade57%
See GitHub repository >>
Presentation on a Paper on Piano Skills Assessment via Deep Learning (2024)

As a part of the deep learning for audio and music course, we students had to present a paper of our choice (either live or in video, with a live Q and A in either case). My chosen paper is "Piano Skills Assessment" by Paritosh Parmar, Jaiden Reddy and Brendan Morris. I chose this paper due to (1) my experience in piano assessment (as a student), (2) the relevance of such an application (e.g. personal performance evaluation to help self-improvement), and (3) the interesting complexity of the problem of automating musical evaluation.

GoalPresent "Piano Skills Assessment" by Paritosh Parmar, Jaiden Reddy and Brendan Morris
Keywordsautomated skills assessment, multimodal skills assessment
Grade72.1%
See in GitHub >>
Reinforcement Learning (RL) Methods (2024)

Implemented and tested RL methods for navigating a grid-based obstacle course (the "frozen lake" environment defined for the assignment) using model-based approaches (i.e. policy iteration and value iteration), model-free approaches (i.e. SARSA, Q-Learning, linear SARSA and linear Q-learning) and a deep learning approach (i.e. Deep-Q learning). This was a team project, but while the team worked together for the report and experiments, the RL methods were implemented by each member independently. Hence, this project solidified my grasp of RL methods, their effectiveness and their limitations/drawbacks. This project also challenged my problem-solving skills and strengthened my ability to collaborate.

GoalTest RL methods on a grid-based obstacle course
ToolsPython
Keywordsreinforcement learning, model-based, model-free
Grade96%
See GitHub team repository >> | See GitHub personal repository >> | See report >>
Enhancing Monte Carlo Tree Search (MCTS) (2023)

This project aimed to enhance the basic MCTS algorithm within the Tabletop Games Framework to improve performance against other agents in "Sushi Go!" I collaborated with two teammates, proposing methods such as hard pruning, Bayes-UCB sampling, and Thompson sampling (our winning solution). Although I introduced IS-MCTS, my implementation underperformed, resulting in no contribution to the final code. Instead, I ran the final experiments and data collection and made significant contributions to the project report, covering MCTS theory, the exploration-exploitation dilemma, and multi-root MCTS. Our final agent, using Thompson sampling, outperformed all other enhancements in our class, earning a final grade of 94% for our project.

GoalImprove AI performance in playing "Sushi Go!" using MCTS
ToolsJava
Keywordsmonte carlo tree search, bandit methods
Grade94%
See GitHub team repository >> | See report >>
Text Mining and Sentiment Analysis via Chrome Extension (2022)

Developed a Chrome extension for text mining and sentiment analysis on web pages. Created the extension and integrated its popup-based frontend with the backend using Django (hosted locally). The backend runs Python code for text mining and sentiment analysis (based on code written by a teammate). The prototype generates a word cloud, word frequency chart, and sentiment pie chart.

GoalScrape website text and analyse sentiment via Chrome extension
ToolsJavaScript, HTML, Python
Keywordschrome extension, django, text mining
Grade81%
See GitHub repository >>

✒️ Highlighted Writings

Report on Transparency, Explainability, and Accountability (TEA) in AI (2024)

This report aims to address some relevant ethical ideas in AI, primarily transparency, explainability and accountability. Further, it aims to integrate these ideas with technical/business requirements, explore AI ethics using a case study involving an ethical and legal/regulatory breach in AI use and finally, explore the application of AI ethics in a hypothetical case involving the development of an ethical framework for a particular technical/business context.

GoalReflect on TEA in AI systems, propose an ethics framework
Keywordsai in industry, ethical framework
Grade71%
See in GitHub >>
Industry Case Study on Procedural Generation (2024)

Unexplored is a video game — specifically a roguelite action-RPG dungeon-crawler — that applies procedural content generation (PCG) to create dungeon levels (20 overall), including puzzles and encounters. As the case study explores, cyclic generation is the keystone innovation that makes Unexplored stand apart in terms of both game-design and gameplay. This report focuses on the idea of cyclic dungeon generation, its implementation in Unexplored and how abstract level-design is concretised into playable levels.

GoalDiscuss cyclic procedural generation using "Unexplored" as a case study
Keywordscyclic dungeon generation, procedural content generation
See in GitHub >>
Technical Writings on Key Statistical Concepts (2023-2024)

I have often found statistics a dense subject, both in practice (e.g. sampling, statistical formulae and calculations, etc.) and theory (e.g. inference methods, mathematical expectation, theoretical distributions, etc.). Clearly, it is a subject having an immense depth of abstraction while also having extensive practical uses, which makes it relevant and valuable to solidify the basis of key statistical concepts, ideas and formulae. This is what I aim to do with these writings.

GoalPresent a rigorous overview of key statistical concepts
Keywordsprobability theory, statistical estimation, hypothesis testing
See in personal website >>
Applications of Number Theory (2022)
GoalPresent various real-world applications of number theory
Keywordsnumber theory, pseudorandom number generation, cryptography, coding-decoding
See in personal website >>

😼 Personal Projects

Learning Computer Vision
Goal 1Learn image and video processing
Goal 2Implement deep learning models to analyse images and videos
ToolsPython
Keywordsimage processing, video processing, computer vision, deep learning
See GitHub repository >>
ClingClick - A Mineable Obstacle-Maze Boss Fight
GoalImplement a boss fight against a pathfinding NPC in a mineable maze environment
ToolsC
Keywordsa-star pathfinding, mineable environment, inventory management
See GitHub repository >>
MineSweeper Implementation in C
GoalImplement the classic MineSweeper game in C, using a terminal-based interface
ToolsC
Keywordsminesweeper, terminal-based interface
See GitHub repository >>
Notes Manager
GoalCreate a simple program to manage your notes (particularly study notes)
ToolsJava
Keywordsfile and directory management with java
See GitHub repository >>
Exploring Algorithmic Trading

NOTE: So far, I have only learnt key concepts behind algorithmic trading and dealing with API requests and responses for data.

GoalExplore algorithmic trading
ToolsPython
Keywordsapi calls, point and batch requests
See GitHub repository >>
Tic Tac Toe Implementation

NOTE: The "AI opponent" is a relatively basic algorithm to try to stump the player using a few simple strategies.

GoalImplement tic tac toe (single-player and multiplayer)
ToolsC
Keywordstic tac toe, ai opponent
See GitHub repository >>

Popular repositories Loading

  1. appliedStatistics appliedStatistics Public

    A record of the work done (learning, lab work and examinations) during and after the applied statistics course of my master's in AI degree. Check the "expansion" directory for an expansion (concept…

    Jupyter Notebook 3

  2. ethics--regulation--law-for-intelligentSystems ethics--regulation--law-for-intelligentSystems Public

    A record of my work in the course "Ethics, Regulation and Law in Advanced Digital Information Processing and Decision Making" in my MSc. AI.

    3

  3. exploringChromeExtensions exploringChromeExtensions Public

    Learning about browser extensions, particularly for Google Chrome.

    JavaScript 2

  4. exploringSentimentAnalysis exploringSentimentAnalysis Public

    Exploring sentiment analysis and related concepts.

    Jupyter Notebook 2 1

  5. mastersProject mastersProject Public

    All resources, works and documentation regarding my Master's in AI final semester project and dissertation.

    Jupyter Notebook 2

  6. deepLearning-for-audio--music deepLearning-for-audio--music Public

    A record of my work in the deep learning for audio and music course of my master's. Technically, deep learning is a part of ML, but ML basics were covered in a separate previous course.

    2