Artificial Intelligence Foundations with Machine Learning
What is machine learning?
Machine learning gives computers the ability to learn without being explicitly programmed. Machine learning is done where designing and programming explicit algorithms cannot be done. Examples include spam filtering, detection of network intruders or malicious insiders working towards a data breach, optical character recognition (OCR), search engines and computer vision.
Why is machine learning?
The iterative aspect of machine learning is important because as models are exposed to new data, machines are able to independently adapt. machines learn from previous computations to produce reliable, repeatable decisions and results. It is a science that is not new but one that has gained momentum nowadays.
Types of Machine Learning
- Supervised Learning It is the machine learning task of learning a function that maps an input to an output based on example input-output pairs.
- Unsupervised Learning Unsupervised machine learning is the machine learning task of inferring a function that describes the structure of "unlabeled" data (i.e. data that has not been classified or categorized).
- Reinforcement Learning Reinforcement learning (RL) is an area of machine learning concerned with how software agents ought to take actions in an environment so as to maximize some notion of cumulative reward.
Tools and Technology
If you a .NET Developer and willing to add some AI and ML things in your existing or new application then it's a good news we have ML.NET. Now we can use our C# and F# to add AI and ML with ML.NET. So to know more about ML.NET you can visit a wiki https://en.wikipedia.org/wiki/ML.NET
And yes there is python, Artificial Intelligence Markup Language, Perl and many more those are very popular for AI and ML nowadays.
So before diving into Machine Learning its good to know some common terminology which is used frequently.
- Accuracy, Area under the curve (AUC),
- Binary classification, Classification,
- Coefficient of determination, Feature,
- Feature engineering, F-score,
- Hyperparameter, Label,
- Log loss, Mean absolute error (MAE),
- Model, Multiclass classification,
- N-gram, Numerical feature vector,
- Pipeline, Precision, Recall, Regression,
- Relative absolute error, Relative squared error,
- Root of mean squared error (RMSE), Training and Transform.
If you know the above terms then it's good to move on else please try to know them from a Machine learning glossary
Machine learning Algorithms
Machine learning algorithm Y = f(X)
learning a target function = f,
maps input variables = X and
output variable = Y
The most common type of machine learning is to learn the mapping Y = f(X) to make predictions of Y for new X.
This is called "Predictive modeling or Predictive analytics" and our goal is to make the most accurate predictions possible.
Though no algorithm works best for every problem, and it is especially relevant for supervised learning. But A list of Top 10 Algorithms for Machine Learning is,
- Linear Regression,
- Logistic Regression,
- Linear Discriminant Analysis,
- Classification and Regression Trees,
- Naive Bayes,
- K-Nearest Neighbors,
- Learning Vector Quantization
- Support Vector Machines,
- Bagging and Random Forest,
- Boosting and AdaBoost.
So after reading the above all, there is a question
"Which algorithm should I use?”
The answer varies depending on many factors, like,
The size, quality, nature of data and computational time,
The urgency of the task and
What we want to do with the data.
So as I covered maximum basic things regarding AI and ML now after this I will try to provide some code example with ML.NET to start with.