Une collection des algorithmes d'optimisation les plus couramment utilisés pour la science des données et l'apprentissage automatique
Ce référentiel est créé et appartient à: https://github.com/muradmustafayev-03
Guide de contribution: https://github.com/muradmustafayev-03/optimisation-algorithms/blob/main/contributing.md
Pour signaler tout problème: https://github.com/muradmustafayev-03/optimisation-algorithms/issues
Pour installer le package en tant que bibliothèque à utiliser:
PIP Installation d'algorithmes d'optimisation
Puis pour importer:
Importer Optimisation_algorithms
Dans ce projet, j'essaie de collecter autant d'algorithmes d'optimisation utiles que possible et d'écrire de manière simple et réutilisable. L'idée est d'écrire tous ces algorithmes dans Python, d'une manière fondamentale, mais facile à utiliser, Numpy étant la seule bibliothèque externe utilisée. Le projet en est actuellement aux premiers stades du développement, mais on peut déjà essayer de le mettre en œuvre dans ses propres projets. Et à coup sûr, vous êtes toujours les bienvenus à contribuer ou à faire des suggestions. Tout commentaire est apprécié.
Pour plus d'informations: https://en.wikipedia.org/wiki/mathematical_optimisation
L'algorithme d'optimisation est un algorithme, qui est utilisé pour trouver des valeurs d'entrée des minima globaux , ou moins souvent, des maxima globaux d'une fonction.
Dans ce projet, tous les algorithmes recherchent les minima globaux de la fonction donnée. Cependant, si vous souhaitez trouver les maxima globaux d'une fonction, vous pouvez passer la négation de votre fonction: -f (x) , au lieu de f (x) , ayant que son mimema sera le maxima de votre fonction.
Les algorithmes d'optimisation sont largement utilisés dans l'apprentissage automatique , les mathématiques et une gamme d'autres sciences appliquées.
Il existe plusieurs types d' algorithmes d'optimisation , alors voici une brève description de celles, utilisées dans le projet:
Les algorithmes TESE commencent à partir d'un point aléatoire ou spécifié, et étape par étape déplace les minima les plus proches. Ils nécessitent souvent le dérivé partiel ou le gradient de la fonction, ce qui nécessite que la fonction soit différenciable. Ces algorithmes sont simples et fonctionnent bien pour les fonctions de type bol , si s'il y a plus d'un minimum de fonction, il peut stocker à un minima local , sans trouver le monde .
Ces algorithmes commencent par un ensemble de solutions aléatoires, puis ont choisi de manière compétitive les meilleures solutions de l'ensemble et en fonction de celles-ci, génèrent un nouvel ensemble de meilleures solutions, évoluant ainsi chaque itération. Ces algorithmes ne sont pas en stock au minimum local , mais trouvent directement celui mondial , afin qu'ils puissent être utilisés pour les fonctions de plusieurs minimums locales .
Les fonctions de référence sont utilisées pour tester les algorithmes d'optimisation , mais ils peuvent être utilisés par eux-mêmes. Il existe plusieurs fonctions de référence utilisées dans ce projet, et elles sont divisées en plusieurs types en fonction de leur forme.
Pour plus d'informations et la définition mathématique des fonctions, voir: https://www.sfu.ca/~ssurjano/optimisation.html