# Deep Machine Learning of MobileNet, Efficient, and Inception Models
## 3 Method--MobileNet, Efficient, and Inception  
The method for creating a new artificial intelligence model architecture is based, among other things, on a properly prepared learning database. The database in this example is a collection of three different groups of images, that is:  
* First, in the form of coloured squares made in a graphics programme by the authors. The training images were simple and uniform. From these images, the relationship between the number of epochs and the effectiveness of artificial intelligence models is investigated. Additionally, the rationale for selecting the correct number of epochs is determined. * The second relates to images of a cuboid, called container in the paper, in one of two colours, red or blue. * Third, a collection of images of various elements, including electrical parts, where the model is supposed to learn correct and incorrect elements in order to possibly select the correct element in a further work. Several functions [33; 34] were used to build the artificial intelligence model, allowing the AI model parameters to be refined:
* ReLU: Rectified Linear Unit activation function in neural networks. Mathematical notation: \[\text{f(x)}=\text{max}\left(0,\text{x}\right)\] (1) meaning that if f(x) is positive (the graphical function is a straight line with a 45-degree slope), the function returns x, whereas if it is negative or equal to 0, the function returns 0 (graphical function is a horizontal line). * Convolution2D refers to a two-dimensional convolution operation, which is a fundamental element in convolutional networks (CNNs) that process images. Convolution is the mathematical operation of combining two functions to produce a third function as a result. In the context of image processing, convolution involves moving a 'filter' or 'kernel' through an image and calculating the sum of the products of the filter elements and the corresponding image elements. Mathematical notation: \[(I*K)(x,y)=\sum_{i=-\infty}^{+\infty}\sum_{j=-\infty}^{+\infty}I(i,j)K(x-i,y-j)\] (2) where \(I\)--image; \(K\)--convolution kernel. The convolution process allows the network to detect local features in the image: texture, shape, and edges. In practice, image and kernel are finite-dimensional matrices, so the sum is conducted only by finite dimensions. In the example presented here, the convolution kernel has a matrix of (\(3\times 3\)). * Maxpooling2D: a technique that allows for the selection of a maximum value from a specific region in the input matrix otherwise known as a feature map. Mathematical notation: \[output(i,j)=max_{m=0}^{k-1}max_{n=0}^{k-1}input(i*stride+m,j*stride+n)\] (3) where input (i,j) is the value of a pixel at position (i,j) of the input feature map, output (i,j) is the value of a pixel at position (i,j) of the output feature map; k--kernel size; and pooling \"stride\" is the step by which the window is moved during the \"pooling\" operation. Stride can be equal to the size of the kernel (window), leading to non-overlapping windows and reduced dimensionality in each dimension. The example shown here has a set value of (2,2). * Dropout is a regularisation technique which helps to prevent overfitting of the model to training data. During training for each iteration, Dropout selects a certain random percentage of neurons in the stratum set to zero. The percentage of neurons is a parameter and has the name 'dropout rate'. Mathematical notation: \[y_{i}=x_{i}*d\;*(1/\text{p})\] (4) where x\({}_{i}\) is an input neuron, y\({}_{i}\) is the output from the neuron after the application of Dropout, di is a random Bernoulli variable that takes the value of 1 with probability p (the probability of the neuron's behaviour); and p is the 'dropout rate', the probability of each neuron's behaviour. * GlobalAveragePooling2D is a layer often used before the last densely connected layer (Dense) in CNN models; it reduces dimensionality and prevents overfitting.