## 3 Artificial Neural Network Models  
An artificial neural network model is a powerful method to deal with nonlinear functions or to model systems with unknown input-output relations [26; 27; 28]. In fact, the purpose of the algorithm in this research is to find two models that relate the tool-insert features and working conditions to the cutting parameters. Some important issues in the implementation of a neural network model come from the nature of a neural network model. Since a neural network model considers nonlinear combinations and often uses a gradient descent algorithm to update its parameters, the main issues revolve around the need to reach a global solution instead of a local one. Furthermore, given the fact that a neural network model is built on an available dataset, any irrelevant, non-numerical and poor representations of input features can adversely affect the final model [29]. As a machine learning algorithm, neural network models mainly focus on the validation stage. For this reason, the error validation represents proof that the embedded information in the database is well represented by the resulting model. There are some concepts regarding neural network models, which need to be understood. These include overfitting, homogeneous representation and accuracy [30]. For a neural network model, the dataset plays a crucial role. In fact, an effective preparation of the data can lead to an increase in accuracy, reduction in computing time and prevention of overfitting in the model [31]. For the research's dataset, two scaling methods were considered to prepare the data for the training stage. The independent variables, which define the model inputs, have a scaling method called the z-score. The dependent variables, which describe the output for the neural network model, have a scaling method based on its minimum and maximum values, which has a range from 0 to 1 [31]. Equations (1) and (2) show the z-score and range scaling for inputs and outputs, respectively. It is also important to note that the output for a neural network model is highly dependent on the activation function, which is defined in the last layer (output layer). Generally, the activation function for the last layer is a hyperbolic tangent, softmax or a sigmoid function, which has an output range of 0 to 1. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Feature Name** & **Data Type** & **Description** \\ \hline ICmm & Numeric & Inscribed circle \\ AN & Logical & Clarence angle \\ LEmm & Numeric & Cutting length \\ REmm & Numeric & Nose radius \\ Smm & Numeric & Thickness \\ SC & Numeric & Insert shape angle \\ Finishing & Logical & CTPT finishing operation \\ Medium & Logical & CTPT medium operation \\ Roughing & Logical & CTPT roughing operation \\ WEP & Logical & Wiper property \\ MC\_L & Numeric & Low machine condition \\ MC\_H & Numeric & High machine condition \\ MC\_Suitability & Numeric & Suitability machine condition \\ ap\_rec & Numeric & Recommended depth of cut \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Feed rate dataset–feature descriptions; CTPT: finishing, medium and roughing operations. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Feature Name** & **Data Type** & **Description** \\ \hline MC\_L & Numeric & Low machine condition \\ MC\_H & Numeric & High machine condition \\ MC\_Suitability & Numeric & Suitability machine condition \\ HB & Numeric & Hardness material \\ fn\_rec & Numeric & Recommended feed rate \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Cutting velocity dataset–feature descriptions. Other activation functions are widely used for neural network models although this research uses a linear function because it can be easily implemented with less computational burden. \[x_{i-scaled}=\frac{x_{i}-mean(x)}{\sigma(x)} \tag{1}\]  
\[y_{i-scaled}=\frac{y_{i}-\min(y)}{\max(y)-\min(y)} \tag{2}\]  
The architecture and error validation of a neural network model are closely linked with each other.