| Input: mappingNum, enhanceNum, mapFunction, enhanceFunction, thresholdRMSE, thresholdPrunNum, N, K |
| mappingNum ← number of neurons in mapping layer |
| enhanceNum ← number of neurons in mapping layer |
| mapFunction ← mapping layer activation function |
| enhanceFunction ← enhanced layer activation function |
| thresholdRMSE ← threshold of RMSE in incremental learning |
| thresholdPrunNum ← threshold of the number of pruning |
| N ← number of neurons in reservoir pool in ESN |
| K ← logarithms of neurons pruning the reservoir pool |
| | Output: network prediction output after each pruning optimization |
| | Algorithm: |
| (1) | for i in mappingNum: |
| (2) | for j in enhanceNum: |
| (3) | enter data into the mapping layer and initialize it and get the matrix ; |
| (4) | initialize the ESN of the reinforced layer, collect the calculation result matrix H; |
| (5) | each ESN is pruned and optimized, and the RMSE after optimization is calculated and record the number of pruning C; |
| (6) | if RMSE < thresholdRMSE or C < thresholdPrunNum: |
| (7) | Add unpruned ESN units into the reinforced layer for further pruning; |
| (8) | else: |
| (9) | Calculation of the same mapping layer different enhancement layer ESN pruning optimized performance index; |
| (10) | end |
| (11) | end |
| (12) | the optimized parameters and predicted output are calculated. |