Machine Learning in User Experience Design
User Experience Design is a vast field that encompasses so many different roles for you as a designer. The key premise, however, always remains the same — How do you solve a problem in the most optimized way?
I started out as an engineer right after high school, and what is it that engineers do best?
They solve problems.
That is exactly why I turned towards design during the course of my undergraduate degree in Information Technology.
Thinking creatively and out of the box to resolve problems that we face in our everyday lives and therefore making it easy for all of us to get through with everyday easily is a highly intriguing thought.
Let’s start off with understanding the basics of Machine Learning. In traditional programming, a programmer would hand code an algorithm to, let’s simply say, recognize a Chihuahua. She would have to write lines of codes simply describing how a Chihuahua’s physical properties are defined in the most general forms. That sounds great when you are done writing about these, but there are so many edge case scenarios that can easily be left out that in real-life scenarios, a computer is prone to get it wrong, and the worst part is that the computer will never understand that the result was wrong and it will continue to show the same wrong result every single time. Tougher yet, a computer using traditional programming will have a very hard time differentiating a cute little Chihuahua from a delicious blueberry muffin.
Tougher yet, a computer using traditional programming will have a very hard time differentiating a cute little Chihuahua from a delicious blueberry muffin.
This is where machine learning as a phenomenon shines. A program using machine learning has the ability to train itself on the basis of a trainable data set which helps the program to continuously keep learning on how to improve the results from every previous result.
Machine learning has three broad methods that make it work, viz,
- Supervised Learning: The computer is provided with a trainable data set that guides the desired outputs on the basis of defined inputs and keep improving on that.
- Unsupervised Learning: The computer here is provided with no defined recognizable data patterns and is asked to find a structure in the inputs provided. This is a great method that is commonly used to find hidden patterns in data and reveal them.
- Reinforcement Learning: In this method, the computer is given a task and is asked to find the most optimized direction to complete it. Everytime the computer provides a result that is outside the range of acceptable results, it is punished and every time the computer provides a desired result it is provided with a reward. This incentive system provides a unique opportunity to learn about the most optimized methods of completing a given task in complex programs.
Using machine learning for traditional computing has been highly successful and continues to grow as a potential replacement for the current mainstream methodology of writing computer programs.
For this main reason, it is time for designers who support development need to acclimate themselves with this concept and should start incorporating it in their workflow to assure seamless transitions from design to functionality and vice versa.
While the above provides a reason as to — ‘Why?’, it is also necessary to understand the ‘How?’ which brings up why I started to write this article.