Morever, these algorithms are robust, so don't require problem-specific hand-tuning. One powerful example is sampling from an arbitrary probability distribution, which we need to do often (and efficiently!) when doing inference. The brute force approach, rejection sampling, is problematic because acceptance rates are low: as only a tiny fraction of attempts generate successful samples, the algorithms are slow and inefficient. See this post by Jeremey Kun for further details. Until recently, the main alternative to this naive approach was Markov Chain Monte Carlo sampling (of which Metropolis Hastings and Gibbs sampling are well-known examples). If you used Bayesian inference in the 90s or early 2000s, you may remember BUGS (and WinBUGS) or JAGS, which used these methods. These remain popular teaching tools (see e.g.
Summary: I describe how the TrueSkill algorithm works using concepts you're already familiar with. TrueSkill is used on Xbox Live to rank and match players and it serves as a great way to understand how statistical machine learning is actually applied today. I've also created an open source project where I implemented TrueSkill three different times in increasing complexity and capability. In addition, I've created a detailed supplemental math paper that works out equations that I gloss over here. Feel free to jump to sections that look interesting and ignore ones that seem boring. Don't worry if this post seems a bit long, there are lots of pictures. It seemed easy enough: I wanted to create a database to track the skill levels of my coworkers in chess and foosball. I already knew that I wasn't very good at foosball and would bring down better players. I was curious if an algorithm could do a better job at creating well-balanced matches. I also wanted to see if I was improving at chess. I knew I needed to have an easy way to collect results from everyone and then use an algorithm that would keep getting better with more data. I was looking for a way to compress all that data and distill it down to some simple knowledge of how skilled people are. Based on some previous things that I had heard about, this seemed like a good fit for "machine learning." Machine learning is a hot area in Computer Science-- but it's intimidating. Like most subjects, there's a lot to learn to be an expert in the field. I didn't need to go very deep; I just needed to understand enough to solve my problem. I found a link to the paper describing the TrueSkill algorithm and I read it several times, but it didn't make sense. It was only 8 pages long, but it seemed beyond my capability to understand.
Microsoft is hoping to make Skype conversations a bit smarter by injecting then with artificial intelligence. At its Build 2016 conference, Microsoft demonstrated how Cortana, along with other third-party "bots," can provide more information and potential actions as part of Skype messaging. As a basic example, Cortana will highlight key parts of a conversation, which users can tap on to pull up more information. During any conversation, users will also be able to pull up a private AI chat window, where they can talk to Cortana and other bots. Say for instance that you're talking to someone about an upcoming event.
Artificial Intelligence (AI) is often used as a plot device for doom-and-gloom science-fiction stories set in the future. The reality, however, is that AI has been around for quite some time--and it's incredibly useful for businesses. In fact, this technology has been assisting us daily in ways we barely even consider. Whenever you say, "Hey Siri," shop on Amazon, play songs on Pandora, or search for a photo on Facebook, AI is quietly working behind the scenes to deliver what you need. Over the past decade, this technology has slowly integrated into our everyday lives, but progress is rapidly picking up speed.