 # Algorithms of machine learning

Using a variety of methods, machine learning transforms a data set into a model. The optimal algorithm depends on the nature of the data, the type of problem being solved, and the computing resources available. Regardless of the technique or algorithms you employ, you must first cleanse and condition the data.

## let's talk about the most prevalent algorithms for each type of problem.

### classification methods

A classification problem is a supervised learning problem requiring a decision between two or more classes, with probabilities typically provided for each class. Naive Bayes, Decision Tree, Logistic Regression, K-Nearest Neighbors, and Support Vector Machine are the most prevalent machine learning algorithms (SVM). Additionally, ensemble approaches (combinations of models) such as Random Forest, various Bagging methods, and boosting methods such as AdaBoost and XGBoost are available.

### regression methods

Regression is a supervised learning problem in which the model is asked to predict a number. The easiest and quickest approach is linear (least squares) regression, however you shouldn't stop there because it frequently yields unsatisfactory results. Naive Bayes, Decision Tree, K-Nearest Neighbors, LVQ (Learning Vector Quantization), LARS Lasso, Elastic Net, Random Forest, AdaBoost, and XGBoost are further common machine learning regression techniques (apart from neural networks). You will see that machine learning techniques for regression and classification share certain similarities.

### algorithms for clustering

A clustering problem is an unsupervised learning problem in which the model is tasked with locating groups of data points with similar characteristics. Mean-Shift Clustering, DBSCAN (Density-Based Spatial Clustering of Applications with Noise), GMM (Gaussian Mixture Models), and HAC are alternative algorithms (Hierarchical Agglomerative Clustering).

### dimensionality reduction methodologies

Dimensionality reduction is an unsupervised learning problem that requires the model to eliminate or combine variables with little or no effect on the outcome. This is frequently employed alongside classification or regression. Dimensionality reduction algorithms include removing variables with many missing values, removing variables with low variance, Decision Tree, Random Forest, removing or combining variables with high correlation, Backward Feature Elimination, Forward Feature Selection, Factor Analysis, and Principal Component Analysis (Principal Component Analysis).

#### methods of optimization

Training and assessment transform supervised learning algorithms into models by maximizing their parameter weights to identify the collection of values that most closely fits your data's ground truth. For their optimizers, algorithms frequently rely on versions of steepest descent, such as stochastic gradient descent (SGD), which is basically steepest descent executed several times from random starting points.

Common SGD enhancements add components that correct the gradient's direction based on momentum, or alter the learning rate based on the data's progression from one pass (called an epoch or batch) to the next.

#### neural networks and advanced learning techniques

The architecture of the visual brain of living organisms inspired the development of neural networks. Deep learning is a set of approaches for learning in neural networks that recognize features using a large number of "hidden" layers. There are concealed layers between the input and output layers. Artificial neurons with sigmoid or ReLU (Rectified Linear Unit) activation functions populate every layer.

In a feed-forward network, the neurons are organized into discrete layers: one input layer, any number of hidden processing levels, and one output layer, with the outputs of each layer going exclusively to the following layer.

Some connections may bypass one or more intermediate tiers in a feed-forward network with shortcut connections. Neurons in recurrent neural networks can influence themselves either directly or indirectly by way of the layer above.

The supervised learning of a neural network is performed in the same manner as all other machine learning techniques. You present the network with groups of training data, compare the network output with the desired output, build an error vector, then make network corrections based on the error vector, typically using a backpropagation method. Epochs refer to batches of training data that are processed concurrently prior to applying adjustments.

As with all machine learning, it is necessary to validate the neural network's predictions against a distinct test data set. Without doing so, you run the risk of generating neural networks that memorize their inputs rather than learning to become generic predictors.

The breakthrough in the field of neural networks for vision occurred in 1998 with Yann LeCun's LeNet-5, a seven-level convolutional neural network (CNN) for the recognition of handwritten digits in 32x32-pixel images. To evaluate photos with a better resolution, the network would require additional neurons and layers.

To replicate a visual cortex, convolutional neural networks commonly employ convolutional, pooling, ReLU, fully connected, and loss layers. The convolutional layer computes the integrals of a large number of tiny, overlapping sections. The pooling layer performs a nonlinear kind of downsampling. The non-saturating activation function f(x) = max is applied to ReLU layers, which I explained previously (0,x).

In a completely linked layer, neurons are connected to all activations in the layer underneath them. Using a Softmax or cross-entropy loss for classification or a Euclidean loss for regression, a loss layer computes how the network training penalizes the deviation between the predicted and true labels.

NLP is another important application field for deep learning. Google Translate addresses the machine translation problem, but major NLP tasks include automatic summarization, co-reference resolution, discourse analysis, morphological segmentation, named entity recognition, natural language generation, natural language understanding, part-of-speech tagging, sentiment analysis, and speech recognition.

In addition to CNNs, recurrent neural networks (RNNs) like the Long-Short Term Memory (LSTM) model are frequently employed to address NLP tasks.

The more layers a deep neural network has, the more compute is required to train the model on a central processing unit. GPUs, TPUs, and FPGAs are examples of neural network hardware accelerators.