11
votes

Cadre d'apprentissage de la machine C ++

Je n'arrive pas à trouver un cadre ML / AI basé sur C ++ qui implémente une grande variété d'algorithmes de réseau de neurones. J'ai utilisé encombrer à ces fins lorsque vous travaillez à Java, mais je ne vois rien qui est similaire, Fonctionnalité-sage, en C ++. Le plus proche que j'ai vu est Fann, mais il manque de choses, lma et recuit par exemple.

Edit: La meilleure alternative que j'ai trouvée est Shark , mais comme je dit, il manque toujours et n'a que les caractéristiques les plus couramment utilisées, pas de lma, de recuit ou de PSO ou quoi que ce soit de ce niveau.


8 commentaires

Le Google Fu est faible mais on dirait que l'équipe d'encombrale a une spin-off: code.google. com / p / encomb-cpp


@ AJG85 Dernière Engagez-vous, c'est octobre 2010, a l'air joli mort pour moi ...


@ TC1 Vous dites morts, je dis finale . :)


@ Joãoportela Vous devriez vraiment jeter un coup d'œil à ces 13 commits avant de dire finale ... :)


Encendre ne ressemble pas à un cadre très complet. Je pense que vous demandez une version C ++ d'encrogna, plutôt que d'un cadre ML diversifié. Si oui, alors vous cherchez des filets neurones, être précis. De même, si quelqu'un est venu demander une contrepartie, disons, Shogun, dans une langue différente, il serait évident qu'ils sont centrés sur SVM, plutôt que de s'intéresser à NNS. Les réseaux de neurones, tels que SVMS, ou des arbres de décision, ou quels avez-vous, ne sont qu'une petite partie de l'apprentissage de la machine et de l'AI.


Il semble y avoir une implémentation de C ++ d'encombrer dès maintenant. Je n'ai pas encore essayé, cependant. Github.com/eng/encog-c/downloads


C / C ++ Perceptron: sourceforge.net/projects/ccperceptron


Quelqu'un peut-il ajouter un point de commentaire point sur la dernière solution? Celui-ci semble trop vieux mais Google Point ici ...


5 Réponses :


1
votes

Bien que OPENCV soit principalement utilisé pour la vision informatique son bibliothèque d'apprentissage de la machine (ml) contient des cours qui gèrent des arbres de décision, un classificateur de bayes, un percepteur multicouche, une augmentation de l'ampleur, etc.


1 commentaires

Assez soigné, mieux que tout ce que j'avais trouvé, mais toujours la section MLP ne supporte que RProp ...



8
votes

Le Le référentiel Mloss possède un certain nombre de frameworks d'apprentissage de la machine open source C ++. Personnellement, je trouve dlib assez utile.


1 commentaires

Vous voudrez peut-être aussi regarder le MLPACK C ++ Library , qui a de nombreux algorithmes d'apprentissage de la machine



10
votes

OK, alors après quelques jours de fouilles de marche et de désactivation, je pense que je peux dire assez en toute sécurité que il n'y a pas de telle chose . Aucun des libs existants ne fournit rien de près du niveau de sophistication de l'encombrement et, étant donné que l'une des raisons principales que je voulais en C ++ était le fait que j'ai en quelque sorte besoin d'intégration qt, je suppose que je vais juste finir par l'utilisation d'encrogés et jambi.

Quoi qu'il en soit, à ceux qui trébuchent sur cela un peu plus tard sur / de Google, il y a essentiellement trois cadres / bibliothèques offrant des caractéristiques un peu raisonnables, et ils devraient vraiment être suffisants si vous ne voulez pas la LMA, la PSO, le recuit ou tout de cette chose plus exotique:

  • Shark
  • DLIB , également mentionné par FFH
  • La bibliothèque ML de OpenCV mentionnée par RICS

    C'est à peu près beaucoup. Le reste est immature / mort ou tout simplement trop dépourvu de fonctionnalité sage à mentionner. Si jamais je décidais de rouler mon propre projet (tout à fait possible, comme je l'ai presque besoin pour le travail), je serai sûr de mettre à jour cet endroit avec un lien.


0 commentaires

2
votes

encombrer est en cours d'être porté à C / C ++.

https://github.com/eng/encog-c


0 commentaires

2
votes

C'est le meilleur que j'ai jamais vu pour les réseaux de neurones: eblearn


1 commentaires

Mieux fournir quelques détails. Comme comment et pourquoi tu penses que c'est le meilleur.