Are you fascinated with Cognitive Computing? Want to learn more? If you are a developer with a passion for Artificial Intelligence, Deep Learning, and you dream of making a significant contribution to the field, embark in a new cognitive computing learning adventure.
3, 2, 1, get ready for your leap to the future!
Why should You Care about Cognitive Computing?
Cognitive Computing is a tool and it is imperative to learn how best to use it in order to transform how we live, work and think.
With Cognitive Computing, we can implement models to replace human intervention for some activities from the development process. Similarly, a Cognitive Computing engine can identify patterns in human behavior such as analyzing technical debt for optimization purposes, analyzing applications to propose security improvements and analyzing production environments to increase performance, etc.
Many new companies invest heavily in Machine Learning and Artificial Intelligence to develop better products. If you want to be part of this tech innovation, be prepared! Here’s a crash course to help you gain the necessary tools to perform in this field.
Deep Learning Terminology:
I’ll be using the following terms, so I better explain them first.
- Artificial Intelligence is the simulation of human intelligence processes by machines, especially computer systems. It consists of Deep Learning & Machine Learning.
- Machine Learning is an application of Artificial intelligence (AI) that provides systems the ability to automatically learn and improve from experience without being explicitly programmed.
- Deep Learning is a subset of Machine Learning in Artificial Intelligence that has networks capable of unsupervised learning from unstructured or unlabeled data. (Also known as Deep Neural Learning or Deep Neural Network.)
- Neural Network is a framework of Machine Learning.
- Deep Neural Network (DNN), Convolutional Neural Network (CNN) & Recurrent Neural Network (RNN) are all architectures of Deep Learning and Neural Network frameworks.
Cognitive Computing overlaps with AI and involves many of the same underlying technologies to power cognitive applications, including expert systems, neural networks, robotics and virtual reality.
Cognitive Computing systems can synthesize data from various information sources while weighing context and conflicting evidence to suggest the best possible answers. To achieve this, cognitive systems include self-learning technologies that use data mining, pattern recognition and Natural Language Processing (NLP) to mimic the way the human brain works. This is how it can recognize an image or compose a song, for example.
Where to Begin with Cognitive Computing?
Beginner software engineers need to have the following knowledge to understand, build, and maintain Deep Learning & Machine Learning solutions:
- Programming languages like Python, R, C++, Java.
- Libraries: SkyLearn, Keras (a user-friendly neural network library written in Python).
- MatLab – Makes the hard parts of Machine Learning easy through experiments.
- Jupyter interface – Data scientists use tools like Jupyter Notebooks to analyze, transform, enrich, filter and process data. The preprocessed data is then used to train analytic models with Machine Learning /Deep Learning frameworks like TensorFlow.
- TensorFlow – Is a highly scalable machine learning system that can be used to express a wide variety of algorithms, including training and inference algorithms for deep neural network models.
- Azure ML – Is the best tool for beginner data science and computer engineers because it’s visual and you can experiment with different kinds of algorithms without any line of code. See also Amazon SageMaker (it provides every developer and data scientist the ability to build, train and deploy Machine Learning models quickly).
- IBM Watson (Bluemix) – Is an ecosystem of cognitive system that shifts through massive libraries of data to discover insights that can help its users answer simple to complex questions.
Additional Useful Skills in Machine Learning Development
Enhance or seek some training in:
- Mathematics (Probability, Statistics, Analytics)
- Data Science (Data Modeling & Evaluation)
- Big Data (Distributed Computing)
- Distributed Computing
- Signal Processing
Read more about the required skills for Machine Learning jobs and how to become a Machine Learning Engineer if you’re interested in becoming a Data Analyst, Operations Research Analyst, Data Scientist, Machine Learning Engineer, or Data Viz.
Experienced computer engineers should know (beside all listed above) the architectures and solutions used to solve all kinds of problems to implement a Machine Learning model: DNN, RNN, CNN, SVM.
Here’s a list of resources that I personally picked for you:
Artificial Intelligence by Leonardo Araujo dos Santos – This is a compilation of all the things the author learned about AI and Deep Learning.
Deep Learning with Python by François Chollet – Written by Keras creator and Google AI researcher, this book builds your understanding through intuitive explanations and practical examples.
Mastering Machine Learning Algorithms by Giuseppe Bonaccorso – This book invites you to discover high-performing machine learning algorithms and understand how they work in depth.
The 9 Deep Learning Papers You Need To Know About (Understanding CNNs Part 3) by Adit Deshpande – A summary of new and important developments in the field of computer vision and convolutional neural networks.
A Beginner’s Guide To Understanding Convolutional Neural Networks by Adit Deshpande
Image Classification with Convolutional Neural Networks by Ksenia Sorokina
Supervised learning by Leonardo Araujo dos Santos
Unsupervised learning by Leonardo Araujo dos Santos
Machine learning by Chris Thornton
Metrics To Evaluate Machine Learning Algorithms in Python by Jason Brownlee
Methodology for using HTML by Leonardo Araujo dos Santos
Business Fields where Machine Learning solutions are being used:
– Speech and Natural Language Processing
– Face Recognition
– Car Driving
– Visual Art Processing
– Natural Language Processing
– Drug Discovery and Toxicology
– Customer Relationship Management
– Recommendation Systems
– Mobile Advertising
– Control Strategies
– Financial Fraud Detection
Problems we can solve with Machine Learning & Deep Learning
- Classification – (i.e. images from sounds)
- Localization – Set of Data, localization of data that respects some criteria
- Detection – Identification of rare items, events or observations which raise suspicions by differing significantly from the majority of the data
- Segmentation – predict boundary of homogenous data or predict boundary of an object in an image
- Clustering – grouping of data points
- Regression – predicting a quantity
Machine Learning Recipe
You need to work around an algorithm. However, before having the algorithm you have to think about the data. A data scientist will prepare the data, and then you’ll need all your computer engineering skills to prepare the algorithm. The models you can store in the database or in file systems. If your error rate is ok, you can build the model. In prediction/testing, you take your model, you have some test data and try to predict. If the error rate of prediction is ok, then your ML model is ready!
Error rate refers to how well your ML Model is doing its job with the current set of parameters. It is a sort of difference between ideal result and predicted result by ML Model for a list of test cases.
If you’re still reading this, it is a good sign! Leave a comment, a question, or a suggestion and I’ll be happy to get back to you!
Read more about Cognitive Computing!