You might be wondering if or how you should be adopting deep neural nets. With all the cloud providers out there, should you develop a solution on-premises, leverage existing solutions, or take an entirely different route? Perhaps good 'ol fashioned machine learning is the best answer for your needs...
In this article:
- What is a Deep Neural Network?
- What types of problems is DNN best suited for?
- What's the best approach to begin a DNN project?
What is a Deep Neural Network?
First off, what is a deep neural network (DNN)? To answer this question, we have to go back to the 1960's when the first working algorithm was introduced. Data scientists at the time were looking for solutions to produce forecasts for things like economics, weather, and future population.
A DNN is simply an architecture for ingesting a large quantity of inputs to produce a probabilistic prediction. It's a variation of machine learning that's created to extract knowledge from data with less time-consuming, manual fine-tuning. However, what makes these methods work well is a two-sided coin. On one side, we have results, but on the other is an understanding that we don't know exactly how those results were obtained. This is where transparency in A.I. comes into play.
Back in 2017, A.I. was fooled into thinking a turtle was a gun. Many similar spoofs have been produced and the lesson we need to learn is that we need to have a respect for what we can't predict.
Understanding how A.I. is fooled helps create an understanding for how the algorithms are working. DNN's require two things to function (and a whole lot of both): quality and quantity of training data. But if A.I. has been trained on thousands of horse images for example, and recognizes an image of a horse as a frog because one pixel is changed, that shows how we might need to re-think the training and learning models.
Deep learning systems (a.k.a. deep neural nets) use multiple layers of math and predictions. Initial data is continuously transformed and passed on, until at the end of the chain, an output is given. And this is where the "neural" part comes into play. As science advances to understand how our brains work, we're applying that same knowledge to machines (again, math), to attempt to replicate human learning.
Here's an interesting article on applying modern neuroscience to deep learning.
And here's a video where we discuss neural nets and show one in action (creating never-before-seen UFC fighter names).
Neural nets are often depicted as seemingly endless interconnected nodes. While the nodes in real life are finite, the pictures do a good job representing the complexity of the layers data must pass through.
What types of problems is DNN best suited for?
Because of the instabilities mentioned earlier, the more successful DNN business use-cases have been in the realm of customer profiling, product recommendations, financial and time-related forecasting, health predictions, and failure / fraud detection.
Overall, DNN is the best answer for dealing with data types that are more difficult for traditional machine learning, like massive data sets, images, audio, and video.
If you're looking to fuse massive and complex data points to solve problems, a DNN is the answer, but comes with a warning. Inadequate training data, lack of transparent A.I., scarcity of data science skills, and the increasing demand on compute all create major implementation risks.
What's the best approach to begin a DNN project?
First, and foremost you need to grow your talent pool. This doesn't mean hiring a whole new team of data scientists, but you'll need to plan for consistent access to resources who have proven skills and experience.
Second, every successful DNN project must have expected outcomes. You can't build and train models without the results you're looking for. You must pair a high quantity of good data along with the answers to your questions.
Third, consider that a traditional machine learning model may actually be the best approach. You might not need a DNN after all. The best way to tell? Machine learning is well suited to any project with highly structured data. If you can label your data, machine learning is the answer.
Forth, look at what A.I. cloud providers are already offering. Providers like Amazon, Google, Microsoft, and IBM all have solutions for object / image recognition, language processing, and general purpose machine learning platforms. If you can build existing cloud services into your current tech stack, you'll save time by not re-inventing the wheel.
Ultimately, you must find a balance between your organization's technical capabilities, and the features (or lack of) of existing cloud providers. The available data you need to process will ultimately be the deciding factor. And whether you use a DNN, or traditional machine learning make sure you build in the ability to immediately check results. You must achieve a level of explainability that matches the risk of error.