Leaf Plant Classification: An Exploratory Analysis – Part 1

In this post, I am going to run an exploratory analysis of the plant leaf dataset as made available by UCI Machine Learning repository at this link. The dataset is expected to comprise sixteen samples each of one-hundred plant species. Its analysis was introduced within ref. [1]. That paper describes a method designed to work in conditions of small training set size and possibly incomplete extraction of features.


R or Python? Why not both? Using Anaconda Python within R with {reticulate}

This short blog post illustrates how easy it is to use R and Python in the same R Notebook thanks to the {reticulate} package. For this to work, you might need to upgrade RStudio to the current preview version.


Part 5: Code corrections to optimism corrected bootstrapping series

The truth is out there R readers, but often it is not what we have been led to believe. The previous post examined the strong positive results bias in optimism corrected bootstrapping (a method of assessing a machine learning model’s predictive power) with increasing p (completely random features). This bias is real and is effecting publications. However, there were 2 implementations of the method given in the previous post, 1 has a slight error, 2 seems fine. The trend is still the same with the corrected code, but the problem with my code is I did not set ‘replace=TRUE’ in the call to the ‘sample’ function. This problem is more about estimating error using the same samples for training and testing, than how we are resampling the data. We will go into a little more detail about bootstrapping in this article, and repeat the analyses with the corrected code.


Using pix2pix to create SnapChat lenses

Yes, I know subtitle is from my previous article where I showed how to make SnapChat like live filters using dlib and openCV. But today I wanted to show how we can create the same filters using a Deep Learning network called pix2pix. This approach helps to eliminate manual feature engineering step from the previous approach and can directly output target image with just one inference from the neural network. So, let’s get started.


Explained: A Style-Based Generator Architecture for GANs – Generating and Tuning Realistic Artificial Faces

Generative Adversarial Networks (GAN) are a relatively new concept in Machine Learning, introduced for the first time in 2014. Their goal is to synthesize artificial samples, such as images, that are indistinguishable from authentic images. A common example of a GAN application is to generate artificial face images by learning from a dataset of celebrity faces. While GAN images became more realistic over time, one of their main challenges is controlling their output, i.e. changing specific features such pose, face shape and hair style in an image of a face.


Understanding Compositional Pattern Producing Networks

For the last two years, I have been researching Compositional Pattern Producing Networks (CPPN), a type of augmenting topology neural network proposed in. However, throughout my research, I was always baffled by some of the concepts and theory behind CPPNs, and I struggled to understand how they work. Although a few open source versions of CPPN exist online, I wanted to build my own implementation for customization purposes in my research, which turned out to be significantly more involved than I initially expected. So, I wanted to create a comprehensive explanation of the theory behind CPPNs and how they can be implemented, so that such a resource is available to everyone that struggles with CPPN just as I did. This article will be broken up into two separate parts. Part one, which you are reading right now, will focus on the theory behind CPPNs and how they have been used in scientific research, while part two will focus on actually implementing a CPPN in Python.


Are Self-Learning Game Players Truly Intelligent?

Are self-learning programs, such as Alpha Zero or its open source brethren Leela Zero, intelligent? Is this intelligence distinguishable in any meaningful way from that of traditional chess engines such as the world’s strongest chess player, Stockfish? The field of AI is burdened by a subjective definition of intelligence: if you can explain it, then it’s not intelligent. To avoid this mysticism we attempt to come up with a definition that is more objective. Using the formalism of a Markov Decision Process, ‘an intelligence is an agent that can sense and manipulate its environment to achieve its goals’. This definition is problematic in the definition of ‘it’; but for the purposes of game playing we can treat a player (the agent, the ‘self’) as distinct from the game (the environment).


Projecting Confidence

Inspired by Donald Trump’s shocking victory over Hillary Clinton in the 2016 general election, Sean Westwood, Yphtach Lelkes and I set out to interrogate the question of whether elecion forecasts?-?particularly probablistic forecasts?-?might have helped to create a false sense of confidence in a Clinton victory, and ultimately led many on the left to stay home on election day.


Let’s Find Donors For Charity With Machine Learning Models

Welcome to my second medium post about Data Science. I will write here about a project I’ve done using Machine Learning algorithms. I will explain what I did without relying heavily on technical language, but I will show snippets of my code. Code matters πŸ™‚ The project is a hypothetical case study where I had to identify potential donors to a charity that offers funding to people willing to study machine learning in Silicon Valley. This charity, named CharitML found that every donor was making more than $50,000 annually. My task was to use machine learning algorithms to help this charity identify potential donors in the entire region of California.


Project Diversita: An Intelligent Edge Computing Device

Project Diversita was a Microsoft sponsored ‘Launch Project’ at the University of Washington GIX in 2018 under the AI for Earth initiative. It aimed to empower biodiversity research by utilizing Machine Learning (ML) on Edge technology. The ML model had been trained by Microsoft Research based on the iNaturalist dataset. I received training in Machine Learning and sensors


Automated and Feature-Based Problem Characterization and Algorithm Selection Through Machine Learning

Nowadays, numerous real-world workflows become more and more formalized and structured. One of the advantages of such formal processes is their accessibility for optimization. Even problems without an exact mathematical representation, i.e., so-called black-box problems, can be optimized. Unfortunately, people tend to make rather poor decisions when optimizing problems: most of the decisions are either based on numerous trial-and-error experiments or on ‘gut-decisions’. Instead of these manual approaches, one could make use of computational power and execute an optimization algorithm. However, the plethora of optimizers leaves the user with the task of making a sophisticated guess on which of the available algorithms is best for the application at hand. Within this cumulative dissertation, a set of automatically computable features, which extracts information on the global structure of continuous optimization problems, as well as experimental studies, showing the benefits of automated and feature-based algorithm selection, are presented.


The Three Main Branches of Word Embeddings

The concept of word embeddings?-?or distributed representations?-?is the most spectacular development in Natural Language Processing (NLP) in recent years. As with all fast-paced fields, it is easy to get lost and feel left behind by the newest breakthroughs and developments. The best antidote is to be aware of the more general trends and the main ideas behind the concept of word embeddings. To do this, I provide you with a brief overview in this post and links to additional material at the bottom. This post focuses on three ‘classical’ flavors of word embeddings: Word2Vec, GloVe, and FastText. They exemplify three different ways to look at word embeddings.


Total Least Squares in comparison with OLS and ODR

Total least squares(aka. TLS) is one of the methods of regression analysis to minimize the sum of squared errors between response variable(or, an observation) and estimated variable(we often say a fitted value). The most popular and standard methods of this is Ordinary least squares(aka OLS) for the same purpose, and TLS is one of other methods with the different approach. To get practical understandings, we’ll walk through these two methods and plus, Orthogonal distance regression(aka. ODR), which is similar approach to TLS.


Deep Reinforcement Learning for News Recommendation. Part 1: Architecture.

Most of the existent recommendation systems use static approach for news predictions, i.e. they do not understand that your actions (news choices) are sequential. The second problem is that previous methods are often short-sighted, meaning they will not focus on long-term rewards. This problem may easily be solved using higher gamma value, but usually, it is not the case.