Machine Learning

Artificial neural networks

Regression and predictive analytics based on historical database information

Convolutional neural networks

Detection and classification of object on images and video streams

Decision trees and Random Forest

For highly complicated and non-linear problems.



Shallow neural networks are used to classify the patterns found in data. Their structure is less complex and most often they need less computing power in the learning process. Another common application is the so-called regression – that is, predicting or determining the value of the parameter we are interested in – e.g. the price of a given product depending on market conditions or engine power depending on the distance from an obstacle in a self-propelled robot.



We use Convolutional neural networks are for problems related to the classification of data – most often images or video frames. The advantage of convolutional networks is that they are not  sensitive to the arrangement of the searched pattern among the input data – i.e. the searched object in the image as other methods.


We implement Decision Trees (DT) when we are to classify data sets that are highly sensitive to changes in parameter values. DTs are particularly useful when among the input data there are variables with a categorical value (e.g. fuel type, plant species) . The process of creating decision trees is significantly different from learning a neural network. Its labor intensity depends on the size of the target tree. Decision trees can also be used for regression, however, the results returned by the decision tree may be highly discontinuous – there may be sudden changes in the result depending on a change in input parameters.


Artificial intelligence / Machine Learning algorithms are available in a wide range of programming libraries available for various platforms. It is worth distinguishing three large libraries that we use for the Python language:

  • tensorflow – a library that allows you to implement, among others shallow and deep neural networks and decision trees. It allows you to conduct the training process on the GPU.
  • keras – a library that uses tensorflow. It facilitates the use of neural networks and allows you to create your own analytical models. Thanks to tensorflow, it allows you to conduct the training process on the GPU.
  • scikit-learn – a library containing a rich set of SI algorithms. It does not support the GPU, but in return provides greater portability between hardware platforms. Thanks to a rich set of algorithms, it allows you to create more sophisticated AI solutions.