Machine Learning Projects
I have a keen interest in Machine Learning and its applications. The interest started with research projects during undergrad. One of the main reasons I pursued graduate studies is to learn more about ML – the theory, hands-on implementation and applications in myriad fields. This page records the most important projects completed. For each of the projects, I have read at least half dozen papers and understood the maths behind the implementation. Armed with this understanding, the code has been written mostly using python, Tensorflow, Keras and other python ML packages. Each project has a brief description, technologies used and contains relevant links of GitHub, papers in PDF format, slides and YouTube demo.
“Sepsis is a life-threatening illness caused by your body’s response to an infection.” Sepsis can occur in three stages – sepsis, severe sepsis and sepsis shock. It generally takes time to develop, even when the patient in under treatment. Throughout the treatment period, the doctors have to choose between multiple course of action. It maybe difficult to predict the exact effect that a particular choice will have on the patient in future. In this situation, past history of patients may help provide some insight. Given sufficient data about detailed medical history of sepsis patients admitted in hospitals, we can help doctors plan the course of treatment at every state of the treatment. Given a choice between multiple actions, our model can predict which action will have higher chance of success in the future.
- Modelled more than 700,000 patient record as a MDP
- Applied policy iteration on MDP for planning course of treatment
- Devised web-based visualisation technique to interpret the experimental results
- Coded from scratch in Python
Language is “…a systematic means of communicating ideas or feelings by the use of conventionalized signs, sounds, gestures, or marks having understood meanings”. In natural language processing, we try to come up with algorithms that can parse information, facts and sentiments quickly, efficiently and accurately from written text or speech. The fundamental problem in solving any of these tasks involve understanding the language itself, specifically its semantics and grammar. Language modelling addresses this key issue – it is a statistical measure of whether a sequence of words semantically makes sense in a particular language. In this report we will take a look at how we can model the English language using a deep learning architecture called Recurrence Neural Network (RNN) with Long-Short Term Memory (LSTM) units. Two modelling approaches are explored – one at a word level and another at a character level. The report compares and contrasts the two approaches through exhaustive experiments and identify the tradeoff and limitations of both the approaches.
Keras and Tensorflow
Pong is one of the most popular games ever developed in the world. We have all played it at least once in our lifetime, in some platform – maybe on an arcade machine, a hand-held device or on the web. It is a simple game with little to no learning curve. However, as trivial as the task may seem to humans, it was difficult for a computer to learn to play it just by looking at the game – that is, learning by only analyzing the image of the frames, without any explicit knowledge or additional information about the game environment. In 2013, DeepMind Technologies published a seminal paper “Playing Atari with Deep Reinforcement Learning” (Mnih et al. 2013)[page – 1] that did just that. In this paper, Mnih et al. employed deep neural networks, model-free reinforcement learning and various implementation techniques to successfully teach a computer to play seven different Atari games, including Pong, with a single algorithm and only game screen images as input. This project aims to understand their work and try to replicate the results on Pong.
Python, Tensorflow, Numpy & Python Imaging Library
Human beings generally communicate information, facts and sentiments through the spoken or written word. We do this very efficiently and from an early age. Humans are also very good at processing these communications – that is, by reading a document or hearing a speech , we can parse information, facts and sentiments of the author very quickly, efficiently and accurately. However, this is not an easy task for a machine to do. Researchers have been trying to solve some of these problems for a long time and they have achieved some remarkable success over the years. This particular branch of research is referred to as Natural Language Processing. In this project, I focused on one particular task of natural language processing – sentiment analysis of written text. The project explores three approaches to represent written word as fixed length feature vectors and use classification algorithms to predict sentiments expressed by them. Using a standard dataset of movie reviews, the three approaches are compared through experiments and their limitations are noted to help identify future work.
Python, Tensorflow, Gensim & Numpy