## 3 Methodology
### Progressive Learning
After that, it computes the kernel matrix of \((K+1)-th\) chunk of data using Equation (30). Then it updates the network sequentially by using Equation (31). \[K_{k+1}=K(x_{i},w_{A}), \tag{30}\]  
where \(w_{A}\) denotes the weights of all the nodes of the network. \[ \begin{array}{l}G_{(k+1)}=G_{k}-G_{k}K_{(k+1)}^{T}\\ (1+K_{(k+1)}G^{k}K_{(k+1)}^{T})^{-1}K_{(k+1)}G^{k}\end{array} . \tag{31}\]  
Then, Equation (32) updates the output neurons. \[\beta^{k+1}=\beta^{(k)}+G_{k+1}K_{k+1}^{T}(T_{k+1}-K_{k+1}\beta^{k}). \tag{32}\]  
Next, the firing frequency of the winning node \(f\) and its neighbors is reduced using the Equations (33) and (34). As frequently fired nodes are trained less, this sheds the problem that progressive network suffers from the weights of well-trained nodes and moves slightly. \[h_{f}(s)=h_{0}-\frac{S(s)}{a_{b}}.(1-exp^{(-a_{bs}/\tau_{b})}) \tag{33}\]  
\[h_{i}(s)=h_{0}-\frac{S(s)}{a_{n}}.(1-exp^{(-a_{bs}/\tau_{b})}). \tag{34}\]  
Here, \(h_{i}(s)\) refers to the size of the firing variable of node \(i\). \(h_{0}\) refers to the initial strength and \(S(s)\) refers to stimulus strength which is usually \(1\). \(a_{n}\), \(a_{b}\), \(\tau_{n}\) and \(\tau_{b}\) are constants controlling the behavior of the curve. The network removes mapping nodes without edges or age higher than a certain threshold from the kernel matrix and network. This is a vital step in progressive learning as it continuously optimizes the network by removing irrelevant neurons from the model. When the new input data arrives, PKELM repeats the process, otherwise stopping criteria have been reached. Testing Phase  
During testing of incoming food representations, Equation (35) computes the kernel matrix \(K_{t}\) between the incoming vector \(x_{t}\) and weight vectors \(w_{A}\) in the network. Thereon, Equation (36) computes the output \(Y\) vector. \[K_{t}=K(x_{t},w_{A}) \tag{35}\]  
\[Y=K_{t}*\beta \tag{36}\]  
The food category corresponding to the index of the highest value in the \(Y\) vector is selected. However, for ingredient detection, the input food representation contains multiple ingredients (Labels). PKELM used a bipolar step function with a trivial threshold \(t\) of \"0\" for detecting ingredients labels, corresponding to column \(Y\). The \(NXL\) values of \(Y\) are passed as an argument to the function as in Equation (37). The set of columns with values greater than zero gives the multi-label belongingness of the corresponding input. \[f(y_{i})=\left\{ \begin{array}{ll}1&ify_{i}>t\\ 0&ify_{i}\leq t,\end{array} \right. \tag{37}\]  
where \(y_{i}\) is the \(i\)th value of output vector \(Y\) and \(t\) refers to the threshold value. It is to be noted that various kernels from the existing research work satisfy mercer's condition. This research work has used the RBF kernel [35] and chi-square kernel [36]. The mathematical form of these kernel functions are as follows:  
(1) RBF Kernel  
\[K(x,y)=exp(-\|x-y\|^{2}/2\sigma^{2})) \tag{38}\]  
(2) Chi-square Kernel  
\[K(x,y)=exp\left(-\sigma\sum_{i}\frac{\|x-y\|^{2}}{\|x+y\|}\right). \tag{39}\]  
The experiment section briefly discusses the results of the comparison of PKELM with its predecessors. Novelty/Noise Detection  
During online learning, the expert should verify food images from users before updating the model to ensure data integrity. When a model is updated during online learning without verification of the food images, then noisy food images from mobile devices during online learning negatively affect the classification performance of the trained model. As the integrity of the data used to train the model is essential in a health care setting. However, manually validating each food image from the user before updating the classifier is a time-consuming process. So, it is necessary to automatically attenuate the noisy images and detect food images with novel concepts or domain variations in online food recognition. To semi-automate this, our proposed PKELM uses the activation function of the trained model.