Within just a few weeks Prisma, a new app that allows users to create cool art from their photos, has already been downloaded more than 1.6 million times. Quickly becoming a new social media phenomenon, Prisma attracted a lot of attention to a very complex technology that has been around for a while, but that we don’t often notice – I’m talking about neural networks.
What are neural networks and how do they work in Prisma’s case?
In the world of technology the term ‘neural networks’ (also known as ‘artificial’ neural networks) refers to a variety of deep learning technologies. Deep learning technologies are built on hardware or software systems patterned after the way neurons work in the human brain.
According to Prisma’s co-founder Moiseenkov, Prisma is powered by three distinct neural networks, each performing a different task. Neural networks enable the app to extract patterns of colors and shapes from a particular work of art and apply these patterns to a photo. Neural networks are also responsible for speeding up this process.
Prisma needs neural networks because what looks like artistic filters in their app aren’t actually filters at all. Every image Prisma generates is created from scratch. Neural networks work just like a real artist.
Neural networks are different from other hardware or software systems because they can be self-taught to perform complex operations. Currently the most common approach to teaching neural networks involves back-propagation where the network is fed an enormous amount of data (for example, millions of images) and then pretty much left to figure things out on its own. However, there is also another approach that involves training a network layer by layer or even node by node.
[Prisma app. Image source: Keddr.com]
Clearly, something as complex as a system imitating the human brain can be used for purposes other than to power a mobile app that creates pretty images.
What are the current and potential uses of neural networks?
There are multiple industries that will likely be completely reshaped after neural networks replace simpler types of computer systems — or even human resources. Neural networks are commonly used today in a wide variety of industries including finance, retail, healthcare and medicine, security, and entertainment.
Let’s look at what neural networks can do and how they can be helpful for us.
What can neural networks do?
Neural networks are expecially valuable because of how they can perform with classification operations. In the most general sense, classification operations can be divided into two big groups of actions: classification (the process) and clusterization.
Classification allows you to combine objects depending on their type, whereas clusterization attributes discrete objects to a group. For example, classification tells you that among one hundred pictures, one image is of a Mercedes, while clustering allows a computer to distinguish between all vehicles that have wheels and cars as a particular subset of those vehicles (excluding, for example, trucks and SUVs).
This functionality allows neural networks to power software for facial recognition, speech recognition, authentication, and even simultaneous interpretation and/or speech-to-text systems.
Where do we use neural networks?
1. Pattern recognition
Neural networks are at work every time Facebook asks you if you want to tag your friends in your photos. Already a few years back, Google successfully trained a neural network to recognise human faces, and Microsoft is using them to build a solution for real time translation.
Another big practical application of pattern recognition algorithms is in healthcare, particularly in diagnostics. Computer-aided diagnosis can be described as a collaboration between AI and doctors, where neural networks help to interpret a doctor’s findings. For example, neural networks often help doctors interpret ultrasound results by eliminating image noise.
Neural networks have been helping with early cervical and breast cancer detection for quite a while now. They are considered to significantly lower the risk of human error.
Neural networks are also used for security purposes and police work, for example for automatic license plate identification or fingerprint analysis and face detection.
2. Statistical modelling
Neural networks are used for regression analysis (in other words, in statistics neural networks help estimate the relationships among variables) and time series prediction (when a model is used to predict future values based on previously observed values).
These functions make neural networks valuable in developing decision making software solutions and strategy solutions for the gaming industry, including for such classic games as chess and poker.
Modern-day weather forecast systems are also powered by neural networks, which help analyze complex factors of nonlinear statistical data to develop models that can predict sun activity and maximum temperature, and give early warnings about natural disasters such as forest fires and floods.
Neural networks can even be successfully used to predict currency exchange rate fluctuation and stock market behavior.
3. Data processing and data mining
It’s been clear for a while that neural networks can be extremely useful for data mining, but there used to be a catch: deep learning algorithms are often regarded as black boxes. Their predictions cannot be explained and verified by human experts.
At the same time, neural networks have been used for data processing in multiple applications, including finance and marketing.
Artificial neural networks were recently tested to see how they fare in the world of finance when compared to human brokers and financial consultants. The results were mixed: for some stocks neural networks did quite well, predicting future stock prices with an error rate of 5 percent or lower for a couple of years in a row. However, neural networks generally performed poorly at the beginning of the global financial crisis and failed to predict its onset.
Neural networks can easily handle enormous amounts of data and process it at great speed, but it’s safe to assume that in the world of financial markets a lot depends on human factors. Emotions impact stock prices but are beyond the realm of what current artificial intelligence can deal with.
Robotics and artificial intelligence go hand in hand. It makes perfect sense that neural networks can power a robot and let them generalize and perform various operations on their own.
Neural networks are used to calculate the optimal trajectory of robotic movements. They are also used to teach robots to move safely in environments where there are several moving obstacles of varying shapes and sizes.
Probably the most impressive example of how neural networks can be used for calculating trajectory of movement is Tesla’s autopilot system. A variety of deep learning allows the latest Model S and Model X to change lanes and follow vehicles and curves of the road, besides a more standard set of accident prevention technology.
[How Tesla autopilot system works. Image source: howitworksdaily]
How much would it cost to build a neural network?
Creating and training neural networks is extremely expensive and laborious, but how much exactly would it cost? In 2012 Google built a computerized brain that worked as a cat detector. This network used a roughly 1-billion-connection network trained on 1,000 computers to teach itself how to spot cat videos on YouTube, and its total cost was about $1 million.
Fortunately, you don’t have to build your own neural network to use one. There are a number of libraries and solutions developed by Google, Facebook and other third-party companies that you can use to power your app with a neural network that is already trained to perform certain tasks.
For example, take TensorFlow. TensorFlow is an open source software library for numerical computation using data flow graphs. TensorFlow was originally developed by researchers and engineers working on the Google Brain Team within Google's Machine Intelligence research organization for the purposes of conducting machine learning and deep neural networks research, but the system can be applied to other domains as well.
Another example would be Neuroph Studio that provides environment for creating and training neural networks, which can be saved as ready-to-use java components.
Facebook in their turn introduced DeepText. DeepText is a deep learning-based text understanding engine that can understand with near-human accuracy the context of multiple posts (up to several thousands posts per second).
As neural networks develop, we plan to write more about this technology. We're excited to see the potential of neural networks in mobile apps.