Skip to content

Commit

Permalink
Merge pull request #46 from arokem/patch-1
Browse files Browse the repository at this point in the history
Associate the caption with the figure.
  • Loading branch information
sanskriti-s committed Jun 24, 2019
2 parents 4b068be + c50271e commit 4f4b3aa
Showing 1 changed file with 1 addition and 3 deletions.
4 changes: 1 addition & 3 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,7 @@ A rich body of literature exists regarding the optimization of artificial neural

ECabc is an open source Python package based on an Artificial Bee Colony, used for tuning functions such as hyperparameters of artificial neural networks. The method is modelled after the honey foraging techniques of bees, where the search space for solutions is in as many dimensions as the number of parameters being tuned. The algorithm is outlined in Figure 1.

![state_diagram](images/state.png)

Figure 1: Stages of the algorithm
![Stages of the algorithm](images/state.png)

The algorithm begins with initializing a pre-decided number of bees and running the fitness function for each bee, thus evaluating them. The fitness function is a user defined function that is used to generate the solutions and the error associated with each employer bee's values at a given position. After evaluation, the bees enter the ‘Employer Bee Phase’ during which each bee is moved in one random ‘dimension’ and then reevaluated. If the new position provides a better fitness score, the old position is abandoned and the bee memorizes the new one. This is repeated for every employer bee. Next, ECabc enters the ‘Calculate Probabilities’ state where the fitness scores of all the employer bees are totaled and the best position is memorized. Then a probability is calculated for each bee, which is the bee’s fitness score divided by the total score. The next phase of the algorithm is the ‘Onlooker Bee Phase’, in which employer bees are chosen based on their probabilities, i.e. those with a higher probability will have a higher likelihood of being chosen. The chosen bee is then moved in one dimension and then reevaluated. Again, if the new score is better, the old score is forgotten in favor of it. Every time a bee is moved in one dimension but doesn’t choose the new position, the bee’s counter goes up. Then in the ‘Scout Bee Phase’, if the counter has hit a certain pre-decided number, the bee is given a new, randomly assigned position. Ultimately, the best fitness value of the entire population is compared to a pre-decided value. If it doesn’t meet that standard, the ECabc returns to the Employer Bee Phase. Alternatively, a number of iterations can be and for each iteration, the algorithm will return to the Employer Bee Phase.

Expand Down

0 comments on commit 4f4b3aa

Please sign in to comment.