Machine Learning: how to train a machine

Machine Learning: how to train a machine

Machine learning has been talked about not the first decade, but this discipline of Data Science began to develop only recently. Just look at the tremendous progress made by Amazon or IBM Bluemix. Softarex uses its tools for researches and development almost in each field.


Computer systems are mastering more and more abstract skills and developing in new ways as we teach them. They learn to see, hear, speak, translate languages, drive cars, foresee the needs and desires, and much more.

Machine Learning is an artificial intelligence subsection that uses computational methods to “learn” information directly from data relying both on its own model and on a predetermined equation as a model. The more samples are available for learning — the better the performance of algorithms. It can be of four techniques: Supervised, Unsupervised, Semi-Supervised, and Reinforcement learning.


Supervised learning

It finds patterns and develops predictive models by using both input and output data. This type forms either Regression and Classification.

Regression aims to reproduce the output value based on a sample of objects with different characteristics. It’s a good call when it comes to prediction of the level of gene expression, prices from its description, sales, air temperature and etc.

Classification replicates class assignments based on a set of its attributes. It’s used to predict the state of chromatin, the solubility of a chemical, sex, spam or non-spam, the possibility of an employee or a client leaving, and more.

Unsupervised learning

This technique finds patterns based only on input data and useful when you’re not quite sure what to look for. Unsupervised learning may be used as a prior step before applying a Supervised one. It consists of Cluster Analysis and Dimensionality Reduction.

Clustering distributes data into clusters and finds anomalies based on characteristic values. It’s very useful for gender prediction, classification of cells from images, identification of an object in a photo, creating clusters of similar tweets based on their content, and so on.

Dimensionality reduction is used to represent the data in a simple way. Final classifications are often done on the basis of too many features. The higher the number of features, the harder it gets to visualize the training set and then work on it. This is where dimensionality reduction algorithms come into play.

Semi-Supervised learning

Semi-supervised is a training dataset with both labeled and unlabeled data. This method is useful when extracting relevant features from the data is difficult, and labeling examples take too much time.

Medical images like CT scans or MRIs are common situations for this learning technique. A trained radiologist can label a small subset of scans for tumors or diseases. It would take up a lot of time to manually label all the scans — but the deep learning network can still benefit from the small proportion of labeled data and improve its accuracy in comparison to an unsupervised technique.

Reinforcement learning

In this kind of machine learning, AI agents are aiming to find the best way to achieve a certain goal or boost performance on a specific task. The agent receives a reward every time it acts towards the goal. The general aim: predict the best next steps to earn the biggest final reward.

An agent relies both on previous experience and analysis of new tactics that may provide a larger gain. This works in a long-term strategy — the more cycles of feedback, the better the agent’s game plan becomes. This technique is especially fruitful for training robots, which make a series of decisions in tasks like handling an autonomous vehicle or managing inventory in a storehouse.

Algorithms and technologies


Softarex uses existing algorithms in researches and also creates its own when it comes to solving some unique challenges. Also, our data scientists work with Amazon Machine Learning — a service with machine learning techniques simplification for developers of all levels. And IBM Watson — a cognitive system with the ability to interact in natural language, process vast amounts of disparate forms of big data, and learn from each interaction.

Approaches we are using:

  • Learning Decision Trees and Learning Association Rules;
  • Artificial Neural Networks and Deep Learning;
  • Support Vector Machine and Ensembles;
  • Clustering, Bayesian Networks, and more.

Algorithms in our use:

  • Decision Tree, Naive Bayes Classifier, Linear Regression;
  • Logistic Regression, Support Vector Machine, Random Forests;
  • Gradient Boosted Trees, K-means, C-means;
  • DBSCAN, EM-algorithm, Kohonen Neural Network;
  • Value Decomposition, Independent Component Analysis, and others.

Technologies, frameworks, and libraries that are used by our engineers and data scientists:

  • Java — Hadoop, Datumbox, ELKI;
  • Python — TensorFlow, BioPy, Auto_ml, Keras, Scikit-learn, Pandas;
  • C++ — Dlib, OpenCV, Darknet, YOLO;
  • JavaScript — Clustering.js, Clusterfck, Machine Learning;
  • IBM Bluemix, AWS;
  • And others.

Instead of the conclusion


This article is only the icing on the cake and to learn more about our experience you really should check out our portfolio. Also, stay tuned to be aware of all upcoming articles! We are always eager to share our best practices and wide open to learn something new, so if you have any questions or ideas — feel free to write to us. Let’s develop the world together!