Livres en anglais

12 livres et 13 critiques, dernière mise à jour le 14 août 2019 , note moyenne : 4.5

  1. Natural Language Processing with PyTorch - Build Intelligent Language Applications Using Deep Learning
  2. Hands-On Unsupervised Learning Using Python - How to Build Applied Machine Learning Solutions from Unlabeled Data
  3. Data Visualization - Charts, Maps, and Interactive Graphics
  4. Elements of Causal Inference - Foundations and Learning Algorithms
  5. Machine Learning for Data Streams - With Practical Examples in MOA
  6. Ant Colony Optimization
  7. A Field Guide to Genetic Programming
  8. Essentials of Metaheuristics
  9. Evolved to Win
  10. Natural Language Processing with Python
  11. Introduction to Evolutionary Computing
  12. Purely Functional Data Structures
couverture du livre Natural Language Processing with PyTorch

Note 4 drapeau
Détails du livre
Sommaire
Critiques (1)
0 commentaire
 
 

Natural Language Processing with PyTorch

Build Intelligent Language Applications Using Deep Learning

de
Public visé : Débutant

Résumé de l'éditeur

Natural Language Processing (NLP) provides boundless opportunities for solving problems in artificial intelligence, making products such as Amazon Alexa and Google Translate possible. If you’re a developer or data scientist new to NLP and deep learning, this practical guide shows you how to apply these methods using PyTorch, a Python-based deep learning library.

Authors Delip Rao and Brian McMahon provide you with a solid grounding in NLP and deep learning algorithms and demonstrate how to use PyTorch to build applications involving rich representations of text specific to the problems you face. Each chapter includes several code examples and illustrations.

  • Explore computational graphs and the supervised learning paradigm
  • Master the basics of the PyTorch optimized tensor manipulation library
  • Get an overview of traditional NLP concepts and methods
  • Learn the basic ideas involved in building neural networks
  • Use embeddings to represent words, sentences, documents, and other features
  • Explore sequence prediction and generate sequence-to-sequence models
  • Learn design patterns for building production NLP systems

Édition : O'Reilly - 256 pages , 1re édition, 5 février 2019

ISBN10 : 1491978236 - ISBN13 : 9781491978238

Commandez sur www.amazon.fr :

52.25 € TTC (prix éditeur 52.25 € TTC)
Chapter 1. Introduction
Chapter 2. A Quick Tour of Traditional NLP
Chapter 3. Foundational Components of Neural Networks
Chapter 4. Feed-Forward Networks for Natural Language Processing
Chapter 5. Embedding Words and Types
Chapter 6. Sequence Modeling for Natural Language Processing
Chapter 7. Intermediate Sequence Modeling for Natural Language Processing
Chapter 8. Advanced Sequence Modeling for Natural Language Processing
Chapter 9. Classics, Frontiers, and Next Steps
Critique du livre par la rédaction Vincent PETIT le 14 août 2019
Cet ouvrage montre comment mettre en œuvre PyTorch, bibliothèque Python d’apprentissage machine, au travers du traitement du langage naturel humain. Il s’adresse à un public assez large et à la recherche d’une initiation, mais une solide connaissance du langage Python est requise.

Le livre se compose de 9 chapitres organisés de sorte à rendre la lecture progressive.

Une bonne moitié du livre concerne un tour d’horizon de la structure du langage naturel puis de l’apprentissage par réseau de neurones, perceptron, perceptron multicouches, réseau de neurones à convolution, sachant que la théorie mathématique sous-jacente n’est pas abordée, il s’agit ici de montrer comment l’on se sert de Pytorch.

Puis viennent les chapitres traitant de la vectorisation des mots dans une phrase, des méthodes d’optimisation pour l’apprentissage supervisé ou non, du séquençage des données, de leur prédiction et de leur étiquetage et enfin, des perspectives et limites du thème.

Le sujet est bien expliqué et les exemples de code suffisamment nombreux pour permettre de bien assimiler les principes. On se sent vraiment guidé jusqu’à la fin. J’ai trouvé intéressant le parallèle fait avec le langage naturel et en résumé, je dirai que le livre est un bon complément aux tutoriels qu’on retrouve sur internet et qu’il apporte un plus, notamment parce qu’il permet de s’inspirer de la méthode employée par les auteurs.

Tous les extraits de code publiés dans le livre sont disponibles sur un github.




 Poster une réponse Signaler un problème

Avatar de dourouc05 dourouc05 - Responsable Qt & Livres https://www.developpez.com
le 12/08/2019 à 1:38
Natural Language Processing with PyTorch
Build Intelligent Language Applications Using Deep Learning
Natural Language Processing (NLP) provides boundless opportunities for solving problems in artificial intelligence, making products such as Amazon Alexa and Google Translate possible. If you’re a developer or data scientist new to NLP and deep learning, this practical guide shows you how to apply these methods using PyTorch, a Python-based deep learning library.

Authors Delip Rao and Brian McMahon provide you with a solid grounding in NLP and deep learning algorithms and demonstrate how to use PyTorch to build applications involving rich representations of text specific to the problems you face. Each chapter includes several code examples and illustrations.

  • Explore computational graphs and the supervised learning paradigm
  • Master the basics of the PyTorch optimized tensor manipulation library
  • Get an overview of traditional NLP concepts and methods
  • Learn the basic ideas involved in building neural networks
  • Use embeddings to represent words, sentences, documents, and other features
  • Explore sequence prediction and generate sequence-to-sequence models
  • Learn design patterns for building production NLP systems


[Lire la suite]




 
couverture du livre Hands-On Unsupervised Learning Using Python

Note 2.5 drapeau
Détails du livre
Sommaire
Critiques (1)
0 commentaire
 
 

Hands-On Unsupervised Learning Using Python

How to Build Applied Machine Learning Solutions from Unlabeled Data

de
Public visé : Débutant

Résumé de l'éditeur

Many industry experts consider unsupervised learning the next frontier in artificial intelligence, one that may hold the key to general artificial intelligence. Since the majority of the world's data is unlabeled, conventional supervised learning cannot be applied. Unsupervised learning, on the other hand, can be applied to unlabeled datasets to discover meaningful patterns buried deep in the data, patterns that may be near impossible for humans to uncover.

Author Ankur Patel shows you how to apply unsupervised learning using two simple, production-ready Python frameworks: Scikit-learn and TensorFlow using Keras. With code and hands-on examples, data scientists will identify difficult-to-find patterns in data and gain deeper business insight, detect anomalies, perform automatic feature engineering and selection, and generate synthetic datasets. All you need is programming and some machine learning experience to get started.

  • Compare the strengths and weaknesses of the different machine learning approaches: supervised, unsupervised, and reinforcement learning
  • Set up and manage machine learning projects end-to-end
  • Build an anomaly detection system to catch credit card fraud
  • Clusters users into distinct and homogeneous groups
  • Perform semisupervised learning
  • Develop movie recommender systems using restricted Boltzmann machines
  • Generate synthetic images using generative adversarial networks

Édition : O'Reilly - 400 pages , 1re édition, 18 mars 2019

ISBN10 : 1492035645 - ISBN13 : 9781492035640

Commandez sur www.amazon.fr :

43.01 € TTC (prix éditeur 43.01 € TTC)
Fundamentals of Unsupervised Learning

Unsupervised Learning in the Machine Learning Ecosystem
End-to-End Machine Learning Project

Unsupervised Learning Using Scikit-Learn

Dimensionality Reduction
Anomaly Detection
Clustering
Group Segmentation

Unsupervised Learning Using TensorFlow and Keras

Autoencoders
Hands-On Autoencoder
Semisupervised Learning

Deep Unsupervised Learning Using TensorFlow and Keras

Recommender Systems Using Restricted Boltzmann Machines
Feature Detection Using Deep Belief Networks
Generative Adversarial Networks
Time Series Clustering
Critique du livre par la rédaction Thibaut Cuvelier le 2 juillet 2019
Le titre de cet ouvrage promet une belle partie appliquée, c'est effectivement ce que l'on ressent à sa lecture : on ne compte plus les lignes de code pour bien montrer ce que l'auteur fait, notamment dans ses graphiques (le code les générant étant présent dans le livre in extenso). Tout le code est d'ailleurs écrit avec Python 3, en utilisant les dernières versions des bibliothèques, afin de rester utilisable aussi longtemps que possible. Ce côté appliqué est présent tout au long du livre, l'auteur cherche toujours à présenter une utilité aux algorithmes qu'il aborde, il ne se contente pas d'un inventaire à la Prévert, le lien avec les applications réalistes est toujours présent.

L'ouvrage est construit progressivement, avec des techniques de plus en plus avancées, en présentant d'abord brièvement les concepts théoriques (sans mathématiques, car tel n'est pas le but du livre), les algorithmes, puis en plongeant dans la pratique. Les approches sont bien souvent comparées sur un même exemple, afin d'en voir les avantages et inconvénients. Cependant, l'apprentissage non supervisé n'est vu que sous un seul angle : l'exploitation de données sans étiquettes dans l'objectif d'effectuer des prédictions, c'est-à-dire comme une approche entièrement supervisée. Ce faisant, tous les aspects d'analyse de données sont négligés : il aurait été agréable, par exemple, de voir une application de partitionnement de données pour comprendre ce qu'elles contiennent (comme déterminer, sans a priori, les différentes manières de participer à un jeu). Au contraire, dans les exemples de partitionnement, on sait d'avance le nombre de classes que l'on cherche.

Au niveau de la présentation, une grande quantité de code et parfois d'images est redondante. Dans les premiers exemples, qui montrent plusieurs algorithmes d'apprentissage supervisé, la validation croisée est présentée à chaque fois, au lieu de se focaliser sur les différences entre les algorithmes. Chaque chapitre commence par une bonne page d'importation de modules Python (y compris des modules qui ne sont pas utilisés dans ce chapitre !). Certaines parties présentent une grande quantité d'images disposées de telle sorte qu'elles prennent un maximum de place (six images de taille raisonnable présentées sur trois pages, alors qu'en les réduisant un peu on aurait pu tout faire tenir sur une seule face…). Par ailleurs, toutes les images sont en noir et blanc, mais ont été conçues en couleurs : il est souvent difficile de s'y retrouver, car l'information de couleur est très exploitée (notamment pour présenter plusieurs courbes : elles ont sûrement des couleurs très différentes, mais les niveaux de gris se ressemblent trop pour que l'on arrive à faire la distinction entre les courbes).

Le côté technique m'a vraiment déçu. Les algorithmes sont présentés très rapidement, leurs paramètres sont quelque peu vus comme des boîtes noires ou simplement ignorés : comment peut-on en comprendre l'impact sur la solution ? Le chapitre sur la détection d'anomalies n'est vu que comme une application de la réduction de dimensionnalité, on ne trouve aucune discussion des algorithmes spécifiquement prévus pour cette tâche (forêts d'isolation, SVM à une classe, etc.), ce qui est assez réducteur. On ne trouve aucune mention des plongements (comme word2vec pour la représentation de mots) dans la section sur les autoencodeurs, alors que c'en est une application très importante.

Le public ciblé semble n'avoir qu'une assez faible expérience en apprentissage automatique. Le livre sera surtout utile à ceux qui veulent une introduction rapide et pas trop poussée au domaine de l'apprentissage non supervisé, un survol du domaine en abordant toutes ses facettes principales. Ceux qui se demandent à quoi l'apprentissage non supervisé peut bien être utile seront servis, mais n'en verront pas toutes les possibilités.




 Poster une réponse Signaler un problème

Avatar de dourouc05 dourouc05 - Responsable Qt & Livres https://www.developpez.com
le 12/07/2019 à 19:00
Hands-On Unsupervised Learning Using Python



Many industry experts consider unsupervised learning the next frontier in artificial intelligence, one that may hold the key to general artificial intelligence. Since the majority of the world's data is unlabeled, conventional supervised learning cannot be applied. Unsupervised learning, on the other hand, can be applied to unlabeled datasets to discover meaningful patterns buried deep in the data, patterns that may be near impossible for humans to uncover.

Author Ankur Patel shows you how to apply unsupervised learning using two simple, production-ready Python frameworks: Scikit-learn and TensorFlow using Keras. With code and hands-on examples, data scientists will identify difficult-to-find patterns in data and gain deeper business insight, detect anomalies, perform automatic feature engineering and selection, and generate synthetic datasets. All you need is programming and some machine learning experience to get started.

  • Compare the strengths and weaknesses of the different machine learning approaches: supervised, unsupervised, and reinforcement learning
  • Set up and manage machine learning projects end-to-end
  • Build an anomaly detection system to catch credit card fraud
  • Clusters users into distinct and homogeneous groups
  • Perform semisupervised learning
  • Develop movie recommender systems using restricted Boltzmann machines
  • Generate synthetic images using generative adversarial networks

Voir les critiques.

 
couverture du livre Data Visualization

Note 5 drapeau
Détails du livre
Sommaire
Critiques (1)
0 commentaire
 
 

Data Visualization

Charts, Maps, and Interactive Graphics

de
Public visé : Intermédiaire

Résumé de l'éditeur

This is the age of data. There are more innovations and more opportunities for interesting work with data than ever before, but there is also an overwhelming amount of quantitative information being published every day. Data visualisation has become big business, because communication is the difference between success and failure, no matter how clever the analysis may have been. The ability to visualize data is now a skill in demand across business, government, NGOs and academia.

Data Visualization: Charts, Maps, and Interactive Graphics gives an overview of a wide range of techniques and challenges, while staying accessible to anyone interested in working with and understanding data.

Features:

  • Focusses on concepts and ways of thinking about data rather than algebra or computer code.
  • Features 17 short chapters that can be read in one sitting.
  • Includes chapters on big data, statistical and machine learning models, visual perception, high-dimensional data, and maps and geographic data.
  • Contains more than 125 visualizations, most created by the author.
  • Supported by a website with all code for creating the visualizations, further reading, datasets and practical advice on crafting the images.


Whether you are a student considering a career in data science, an analyst who wants to learn more about visualization, or the manager of a team working with data, this book will introduce you to a broad range of data visualization methods.

Édition : CRC Press - 218 pages , 1re édition, 4 décembre 2018

ISBN10 : 113855359X - ISBN13 : 9781138553590

Commandez sur www.amazon.fr :

26.07 € TTC (prix éditeur 24.67 € TTC)
Why visualise?
Translating numbers to images
Continuous and discrete numbers
Percentages and risks
Showing data or statistics
Differences, ratios, correlations
Visual perception and the brain
Showing uncertainty
Time trends
Statistical predictive models
Machine learning techniques
Many variables
Maps and networks
Interactivity
Big data
Visualisation as part of a bigger package
Some overarching ideas
Critique du livre par la rédaction Thibaut Cuvelier le 18 juin 2019
La visualisation de données est un besoin de plus en plus pressant, notamment dans un contexte de mégadonnées : c'est bien de disposer de données, c'est mieux d'arriver à les exploiter correctement. La visualisation est un outil très utile pour cela, mais seulement quand elle est appliquée à bon escient. C'est ce que ce livre propose : des techniques de visualisation, un lien avec les statistiques, des principes de conception d'une bonne visualisation, mais aussi toute une série d'exemples. L'auteur a comme but d'enseigner la manière de réaliser des graphiques qui ont un impact.

L'auteur est un statisticien et cela se ressent dans la manière d'aborder les sujets : pas question d'afficher des barres d'erreur sans expliciter ce qu'elles représentent (écart type, erreur standard, intervalle de confiance ?), par exemple. Ce n'est pas une raison pour abrutir le lecteur de mathématiques, puisque l'ouvrage ne comporte aucune formule, vraiment aucune. Quelques outils statistiques sont présentés, mais assez brièvement, uniquement en expliquant les principes généraux (des références sont là pour compléter). Ce choix est parfois limitant : pour le bootstrap, notamment, l'auteur répète maintes fois l'utilité de la technique, mais ne l'explique pas vraiment.

Les mises en situation constituent l'épine dorsale du livre, en ce sens que chaque chapitre dispose d'une ou plusieurs visualisations réalistes, parfois comparées : quels sont les avantages de telle manière de représenter les données, quelles sont les interprétations plus faciles à réaliser sur tel graphique, quelle visualisation ne peut pas fonctionner (sans oublier le pourquoi, qu'il soit plutôt statistique ou visuel). Cette manière de procéder rend l'ouvrage très lisible et attirant.

Pour la mise en pratique, l'auteur met à disposition sur son site le code source de chaque graphique qu'il a réalisé pour le livre (surtout en R) — même si le livre en lui-même ne présente pas une seule ligne de code, ce n'est pas un tutoriel R ou Stata.




 Poster une réponse Signaler un problème

Avatar de dourouc05 dourouc05 - Responsable Qt & Livres https://www.developpez.com
le 19/06/2019 à 1:54
Data Visualization
Charts, Maps, and Interactive Graphics
This is the age of data. There are more innovations and more opportunities for interesting work with data than ever before, but there is also an overwhelming amount of quantitative information being published every day. Data visualisation has become big business, because communication is the difference between success and failure, no matter how clever the analysis may have been. The ability to visualize data is now a skill in demand across business, government, NGOs and academia.

Data Visualization: Charts, Maps, and Interactive Graphics gives an overview of a wide range of techniques and challenges, while staying accessible to anyone interested in working with and understanding data.

Features:

  • Focusses on concepts and ways of thinking about data rather than algebra or computer code.
  • Features 17 short chapters that can be read in one sitting.
  • Includes chapters on big data, statistical and machine learning models, visual perception, high-dimensional data, and maps and geographic data.
  • Contains more than 125 visualizations, most created by the author.
  • Supported by a website with all code for creating the visualizations, further reading, datasets and practical advice on crafting the images.


Whether you are a student considering a career in data science, an analyst who wants to learn more about visualization, or the manager of a team working with data, this book will introduce you to a broad range of data visualization methods.

[Lire la suite]




 
couverture du livre Elements of Causal Inference

Note 3 drapeau
Détails du livre
Sommaire
Critiques (1)
0 commentaire
 
 

Elements of Causal Inference

Foundations and Learning Algorithms

de
Public visé : Expert

Résumé de l'éditeur

A concise and self-contained introduction to causal inference, increasingly important in data science and machine learning.

The mathematization of causality is a relatively recent development, and has become increasingly important in data science and machine learning. This book offers a self-contained and concise introduction to causal models and how to learn them from data. After explaining the need for causal models and discussing some of the principles underlying causal inference, the book teaches readers how to use causal models: how to compute intervention distributions, how to infer causal models from observational and interventional data, and how causal ideas could be exploited for classical machine learning problems. All of these topics are discussed first in terms of two variables and then in the more general multivariate case. The bivariate case turns out to be a particularly hard problem for causal learning because there are no conditional independences as used by classical methods for solving multivariate cases. The authors consider analyzing statistical asymmetries between cause and effect to be highly instructive, and they report on their decade of intensive research into this problem.

The book is accessible to readers with a background in machine learning or statistics, and can be used in graduate courses or as a reference for researchers. The text includes code snippets that can be copied and pasted, exercises, and an appendix with a summary of the most important technical concepts.

Édition : MIT Press - 288 pages , 1re édition, 22 décembre 2017

ISBN10 : 0262037319 - ISBN13 : 9780262037310

Commandez sur www.amazon.fr :

42.03 € TTC (prix éditeur 42.03 € TTC)
Statistical and Causal Models
Assumptions for Causal Inference
Cause-Effect Models
Learning Cause-Effect Models
Connections with Machine Learning, I
Multivariate Causal Models
Learning Multivariate Causal Models
Connections with Machine Learning, II
Hidden Variables
Time Series
Critique du livre par la rédaction Thibaut Cuvelier le 21 avril 2019
L'apprentissage automatique est un champ extrêmement développé, mais uniquement pour la découverte de corrélations entre variables. Il est parfois facile de déduire un lien entre des symptômes et une pathologie, mais les algorithmes d'apprentissage ne peuvent pas déterminer qui implique qui : est-ce à cause des symptômes que la maladie est présente ou est-ce l'inverse ? L'apprentissage causal cherche à répondre à ce genre de question, le livre ne porte que sur ce sujet.

Les trois auteurs présentent l'essentiel de ce domaine trop peu connu de la science des données, d'une manière progressive : les premières explications se font « avec les mains », la formalisation suit (à deux variables aléatoires pour commencer, puis dans le cas général). Notamment, les analyses contrefactuelles sont abordées en détail. Les auteurs n'hésitent pas à parsemer leur texte de bouts de code pour faciliter la compréhension des concepts et la mise en pratique des algorithmes. À ce sujet, ils considèrent que le lecteur connaît les bases de R et de quelques bibliothèques pour comprendre ces morceaux de code, aucune explication syntaxique n'étant donnée. Autant que possible, les liens entre les concepts présentés et l'apprentissage automatique sont explicités.

Le style est austère et académique. Des renvois vers des articles scientifiques – y compris ceux des auteurs eux-mêmes dont la modestie ne semble pas souffrir – sont faits à de nombreuses reprises pour approfondir les sujets : la présentation d'un algorithme se limite bien souvent aux idées principales sous-jacentes, le reste étant disponible dans la littérature. Globalement, l'ouvrage n'est pas toujours aussi facile à suivre que l'on espérerait : il est plutôt destiné à des gens qui connaissent déjà les bases de l'inférence de causalité, mais cherchent à approfondir le sujet ou à découvrir d'autres axes de recherche dans le domaine.

À noter : le livre est aussi disponible gratuitement au format PDF.




 Poster une réponse Signaler un problème

Avatar de dourouc05 dourouc05 - Responsable Qt & Livres https://www.developpez.com
le 22/04/2019 à 0:59
Elements of Causal Inference
Foundations and Learning Algorithms
A concise and self-contained introduction to causal inference, increasingly important in data science and machine learning.

The mathematization of causality is a relatively recent development, and has become increasingly important in data science and machine learning. This book offers a self-contained and concise introduction to causal models and how to learn them from data. After explaining the need for causal models and discussing some of the principles underlying causal inference, the book teaches readers how to use causal models: how to compute intervention distributions, how to infer causal models from observational and interventional data, and how causal ideas could be exploited for classical machine learning problems. All of these topics are discussed first in terms of two variables and then in the more general multivariate case. The bivariate case turns out to be a particularly hard problem for causal learning because there are no conditional independences as used by classical methods for solving multivariate cases. The authors consider analyzing statistical asymmetries between cause and effect to be highly instructive, and they report on their decade of intensive research into this problem.

The book is accessible to readers with a background in machine learning or statistics, and can be used in graduate courses or as a reference for researchers. The text includes code snippets that can be copied and pasted, exercises, and an appendix with a summary of the most important technical concepts.

[Lire la suite]




 
couverture du livre Machine Learning for Data Streams

Note 4.5 drapeau
Détails du livre
Sommaire
Critiques (1)
1 commentaire
 
 

Machine Learning for Data Streams

With Practical Examples in MOA

de
Public visé : Expert

Résumé de l'éditeur

A hands-on approach to tasks and techniques in data stream mining and real-time analytics, with examples in MOA, a popular freely available open-source software framework.

Today many information sources—including sensor networks, financial markets, social networks, and healthcare monitoring—are so-called data streams, arriving sequentially and at high speed. Analysis must take place in real time, with partial data and without the capacity to store the entire data set. This book presents algorithms and techniques used in data stream mining and real-time analytics. Taking a hands-on approach, the book demonstrates the techniques using MOA (Massive Online Analysis), a popular, freely available open-source software framework, allowing readers to try out the techniques after reading the explanations.

The book first offers a brief introduction to the topic, covering big data mining, basic methodologies for mining data streams, and a simple example of MOA. More detailed discussions follow, with chapters on sketching techniques, change, classification, ensemble methods, regression, clustering, and frequent pattern mining. Most of these chapters include exercises, an MOA-based lab session, or both. Finally, the book discusses the MOA software, covering the MOA graphical user interface, the command line, use of its API, and the development of new methods within MOA. The book will be an essential reference for readers who want to use data stream mining as a tool, researchers in innovation or data stream mining, and programmers who want to create new algorithms for MOA.

Édition : MIT Press - 288 pages , 1re édition, 2 mars 2018

ISBN10 : 0262037793 - ISBN13 : 9780262037792

Commandez sur www.amazon.fr :

46.84 € TTC (prix éditeur 46.84 € TTC)
Introduction

Introduction
Big Data Stream Mining
Hands-on Introduction to MOA

Stream Mining

Streams and Sketches
Dealing with Change
Classification
Ensemble Methods
Regression
Clustering
Frequent Pattern Mining

The MOA Software

Introduction to MOA and Its Ecosystem
The Graphical User Interface
Using the Command Line
Using the API
Developing New Methods in MOA
Critique du livre par la rédaction Thibaut Cuvelier le 13 avril 2019
L'apprentissage automatique est un domaine aux multiples facettes. Ce livre dépoussière l'une d'entre elles qui n'est que trop peu explorée dans la littérature : l'étude des flux de données, où les algorithmes doivent effectuer des prédictions, mais surtout s'adapter en temps réel à des données disponibles au compte-gouttes (même si ce dernier peut avoir un très bon débit !). Les auteurs font la part belle aux spécificités de ce paradigme : les calculs doivent être effectués très rapidement, on n'a presque pas de temps disponible par échantillon, ni de mémoire d'ailleurs.

Structurellement, on retrouve trois parties bien distinctes :

  • une introduction très générale au domaine, qui montre néanmoins l'essentiel de MOA, un logiciel dédié aux tâches d'apprentissage dans les flux ;
  • une présentation plus détaillée des algorithmes applicables à des flux, que ce soit pour les résumer, pour en dériver des modèles de prédiction ou pour explorer les données. Cette partie devrait plaire aux étudiants, professionnels et chercheurs qui souhaitent se lancer dans le domaine, notamment avec ses nombreuses références (pour les détails de certains algorithmes moins intéressants ou trop avancés : on sent un vrai lien entre le livre et la recherche actuelle dans le domaine). Les algorithmes sont détaillés avec un certain niveau de formalisme mathématique, pour bien comprendre ce qu'ils font (et pourquoi ils garantissent une certaine approximation de la réalité) ;
  • finalement, un guide d'utilisation assez succinct de MOA, avec un bon nombre de captures d'écran du logiciel (imprimées en couleurs !), qui détaille les différents onglets de l'interface graphique (à l'aide de listes très descriptives, mais liées aux autres chapitres de l'ouvrage) et passe rapidement sur les interfaces en ligne de commande et de programmation (ces deux derniers chapitres sont brefs et doivent être complémentés par celui sur l'interface graphique, qui contient les éléments essentiels).


On peut néanmoins reprocher quelques références vers la suite du livre (la section 4.6.2 considère parfois le contenu de la 4.9.2 intégré, par exemple), mais aussi l'omniprésence de MOA : on a l'impression que les auteurs se sont focalisés sur les algorithmes disponibles dans cette boîte à outils, plutôt que de présenter les algorithmes les plus intéressants en général. Cette remarque est toutefois assez mineure, au vu de l'exhaustivité de MOA.

À noter : le livre est aussi disponible gratuitement au format HTML, les auteurs répondant aux commentaires qui leur sont laissés.




 Poster une réponse Signaler un problème

Avatar de Malick Malick - Community Manager https://www.developpez.com
le 22/04/2019 à 0:24
Bonjour chers membres du Club,

Je vous invite à lire la critique que Dourouc05 a faite pour vous au sujet du livre :

L'apprentissage automatique est un domaine aux multiples facettes. Ce livre dépoussière l'une d'entre elles qui n'est que trop peu explorée dans la littérature : l'étude des flux de données, où les algorithmes doivent effectuer des prédictions, mais surtout s'adapter en temps réel à des données disponibles au compte-gouttes (même si ce dernier peut avoir un très bon débit !).
Les auteurs font la part belle aux spécificités de ce paradigme : les calculs doivent être effectués très rapidement, on n'a presque pas de temps disponible par échantillon, ni de mémoire d'ailleurs..Lire la suite de la critique...

Bonne lecture

 
couverture du livre Ant Colony Optimization

Note 5 drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Ant Colony Optimization

de
Public visé : Intermédiaire

Résumé de l'éditeur

The complex social behaviors of ants have been much studied by science, and computer scientists are now finding that these behavior patterns can provide models for solving difficult combinatorial optimization problems. The attempt to develop algorithms inspired by one aspect of ant behavior, the ability to find what computer scientists would call shortest paths, has become the field of ant colony optimization (ACO), the most successful and widely recognized algorithmic technique based on ant behavior. This book presents an overview of this rapidly growing field, from its theoretical inception to practical applications, including descriptions of many available ACO algorithms and their uses. The book first describes the translation of observed ant behavior into working optimization algorithms. The ant colony metaheuristic is then introduced and viewed in the general context of combinatorial optimization. This is followed by a detailed description and guide to all major ACO algorithms and a report on current theoretical findings. The book surveys ACO applications now in use, including routing, assignment, scheduling, subset, machine learning, and bioinformatics problems. AntNet, an ACO algorithm designed for the network routing problem, is described in detail. The authors conclude by summarizing the progress in the field and outlining future research directions. Each chapter ends with bibliographic material, bullet points setting out important ideas covered in the chapter, and exercises. Ant Colony Optimization will be of interest to academic and industry researchers, graduate students, and practitioners who wish to learn how to implement ACO algorithms.

Édition : MIT Press - 319 pages , 1re édition, 4 juin 2004

ISBN10 : 0262042193 - ISBN13 : 9780262042192

Commandez sur www.amazon.fr :

35.85 € TTC (prix éditeur 40.01 € TTC)
  • Chapter 1. From Real to Artificial Ants
  • Chapter 2. The Ant Colony Optimization Metaheuristic
  • Chapter 3. Ant Colony Optimization Algorithms for the Traveling Salesman Problem
  • Chapter 4. Ant Colony Optimization Theory
  • Chapter 5. Ant Colony Optimization for NP-Hard Problems
  • Chapter 6. AntNet: An ACO Algorithm for Data Network Routing
  • Chapter 7. Conclusions and Prospects for the Future
Critique du livre par la rédaction Franck Dernoncourt le 1er juin 2012
Écrit par Marco Dorigo, fondateur des algorithmes de colonie de fourmis, et Thomas Stützle, expert en optimisation, ce livre est une des références dans le domaine des algorithmes de colonie de fourmis dont il donne un aperçu très complet tout en restant accessible pour les néophytes. De bonnes notions en mathématiques discrètes seront néanmoins nécessaires pour bien comprendre certains passages, l'attachement à la formalisation mathématique étant une des caractéristiques de l'ouvrage.

Le premier chapitre met en exergue les liens entre fourmis réelles et artificielles en s'appuyant sur les interactions entre entomologie, mathématiques et informatique. Le deuxième chapitre situe les algorithmes de colonie de fourmis par rapport aux autres métaheuristiques ainsi qu'aux différentes catégories de problèmes auxquels ils s'appliquent, en l'occurrence des problèmes classiques d'optimisation combinatoire, fournissant ainsi aux lecteurs une superbe vue d'ensemble. Le troisième chapitre présente un exemple simple et détaillé d'application des algorithmes de colonie de fourmis au problème du voyageur de commerce ; diverses variantes de l'algorithme sont exposées et des ajouts majeurs, nommément la parallélisation et la recherche locale, sont introduits.

Ces trois premiers chapitres se lisent facilement et avec le chapitre de conclusion donnent les idées principales. Les autres chapitres sont essentiellement des chapitres d'approfondissement. Le quatrième chapitre explore la théorie sous-jacente aux algorithmes de colonie de fourmis, en détaillant entre autres choses les preuves de convergence et en introduisant le concept de recherche par modèle, par opposition à la recherche par solutions. Il n'existe cependant aucune preuve mathématique sur les vitesses de convergence, absence malheureusement assez répandue dans le monde des métaheuristiques en dépit des tentatives. Le cinquième chapitre est un catalogue de problèmes NP-difficiles auxquels ont été appliqués les algorithmes de colonie de fourmis : la mise en place de l'algorithme, autrement dit la définition de la correspondance entre le problème traité et la métaheuristique, puis les résultats sont présentés pour chaque problème. Le sixième chapitre se concentre sur un problème précis, le routage de données, et se penche sur les similarités avec l'apprentissage par renforcement et la méthode de Monte-Carlo, comparaison très pertinente. Les auteurs terminent sur un chapitre de conclusions et perspectives très diverses allant de la parallélisation algorithmique à la division du travail au sein des agents computationnels inspirée par la nature.

En conclusion, ce livre mérite tout à fait son titre de référence du domaine. Ses explications détaillées, aussi bien expérimentales que théoriques, ainsi que ses nombreuses ouvertures rendent sa lecture palpitante. Chaque chapitre s'achève par une très courte bibliographie et des exercices orientés informatique ou mathématiques. À noter que l'ouvrage date toutefois de 2004, ce qui est ancien étant donné la vitesse d'évolution de la recherche dans le domaine des métaheuristiques : il faut donc l'utiliser pour acquérir des bases solides et non comme un état de l'art exhaustif de la recherche actuelle.


couverture du livre A Field Guide to Genetic Programming

Note 5 drapeau
Détails du livre
Sommaire
Critiques (1)
3 commentaires
 
 

A Field Guide to Genetic Programming

de
Public visé : Intermédiaire

Résumé de l'éditeur

Genetic programming (GP) is a systematic, domain-independent method for getting computers to solve problems automatically starting from a high-level statement of what needs to be done. Using ideas from natural evolution, GP starts from an ooze of random computer programs, and progressively refines them through processes of mutation and sexual recombination, until high-fitness solutions emerge. All this without the user having to know or specify the form or structure of solutions in advance. GP has generated a plethora of human-competitive results and applications, including novel scientific discoveries and patentable inventions. This unique overview of this exciting technique is written by three of the most active scientists in GP.

Édition : Lulu - 252 pages , 1re édition, 26 mars 2008

ISBN10 : 1409200736 - ISBN13 : 9781409200734

Commandez sur www.amazon.fr :

11.54 € TTC (prix éditeur 13.82 € TTC)
  • Chapter 1. Introduction
  • Part I: Basics
    • Chapter 2. Representation, Initialisation and Operators in Tree-based GP
    • Chapter 3. Getting Ready to Run Genetic Programming
    • Chapter 4. Example Genetic Programming Run
  • Part II: Advanced Genetic Programming
    • Chapter 5. Alternative Initialisations and Operators in Tree-based GP
    • Chapter 6. Modular, Grammatical and Developmental Tree-based GP
    • Chapter 7. Linear and Graph Genetic Programming
    • Chapter 8. Probabilistic Genetic Programming
    • Chapter 9. Multi-objective Genetic Programming
    • Chapter 10. Fast and Distributed Genetic Programming
    • Chapter 11. GP Theory and its Applications
  • Part III: Practical Genetic Programming
    • Chapter 12. Applications
    • Chapter 13. Troubleshooting GP
    • Chapter 14. Conclusions
  • Part IV: Tricks of the Trade
    (list]
  • Appendix A. Resources
  • Appendix B. TinyGP
[/list]
Critique du livre par la rédaction Franck Dernoncourt le 1er juin 2012
Ce livre est une excellente introduction à la programmation génétique. En seulement 150 pages sans compter la bibliographie fournie, il offre une vue complète du domaine et se lit très facilement.

Après avoir présenté les bases de la programmation génétique, les auteurs exposent dans un chapitre entier un exemple simple pour illustrer concrètement le déroulement d'un tel algorithme. Les concepts avancés sont ensuite présentés de façon assez développée pour pouvoir bien les comprendre, mais pas trop pour ne pas noyer le lecteur dans les détails, le livre étant avant tout une introduction.

Chose intéressante, le livre propose également un chapitre théorique, ce qui est appréciable car la programmation génétique est souvent abordée sous un angle empirique, à défaut d'un modèle mathématique sous-jacent très développé, nonobstant les tentatives. Cette approche théorique permet en particulier de donner une piste d'explication mathématique des méthodes pour contrôler le phénomène de bloat, phénomène correspondant à l'augmentation de la taille du code des solutions sans amélioration de leur fitness, ce qui constitue un des problèmes majeurs de la programmation génétique à l'heure actuelle. Les auteurs poursuivent en donnant un aperçu synoptique des applications de la programmation génétique, ce qui permet de voir concrètement dans quels domaines elle a été mise en œuvre.
Le pénultième chapitre est consacré aux conseils pratiques pour mettre en place et mener à bien des expérimentations. C'est un concentré de l'expérience des auteurs, qu'il sera très utile d'avoir sous la main surtout lors des premières expérimentations. Enfin, les auteurs concluent l'ouvrage par une liste de ressources ainsi qu'un exemple de code source implémentant une expérimentation de programmation génétique.
Je conseille donc ce livre à toute personne souhaitant une introduction rapide ou un
e révision sur la programmation génétique. À noter que, contrairement à d'autres ouvrages tels Essentials of Metaheuristics et Introduction to Evolutionary Computing, ce livre ne permet pas de situer la programmation génétique par rapport aux autres algorithmes d'optimisation, mais se concentre exclusivement sur la programmation génétique. Également, aucun exercice n'est proposé.

Le livre est téléchargeable gratuitement à l'adresse http://www.gp-field-guide.org.uk (licence CC-BY-NC-ND).




 Poster une réponse Signaler un problème

Avatar de Djug Djug - Expert éminent sénior https://www.developpez.com
le 12/06/2012 à 10:40
Bonjour,

La rédaction DVP a lu pour vous le livre "A Field Guide to Genetic Programming" de Riccardo Poli, William B. Langdon et Nicholas Freitag McPhee



Citation Envoyé par Résumé de l'éditeur
Genetic programming (GP) is a systematic, domain-independent method for getting computers to solve problems automatically starting from a high-level statement of what needs to be done. Using ideas from natural evolution, GP starts from an ooze of random computer programs, and progressively refines them through processes of mutation and sexual recombination, until high-fitness solutions emerge. All this without the user having to know or specify the form or structure of solutions in advance. GP has generated a plethora of human-competitive results and applications, including novel scientific discoveries and patentable inventions. This unique overview of this exciting technique is written by three of the most active scientists in GP.

L'avez-vous lu ? Comptez-vous le lire bientôt ?

Quel est votre avis ?

Exprimez-vous !! Votre avis nous intéresse...
Avatar de rmaker rmaker - Membre expérimenté https://www.developpez.com
le 31/08/2012 à 14:30
Citation Envoyé par Djug Voir le message
L'avez-vous lu ? Comptez-vous le lire bientôt ?

Quel est votre avis ?

Exprimez-vous !! Votre avis nous intéresse...
Lu et beaucoup aimé. Il pose de très bonnes questions (en peu de pages), notamment le code généré inutile (çà a un nom, mais je ne m'en rappelle plus). Il commence par reprendre rapidement ce que sont les algorithmes génétiques dans le cadre général. Par rapport au livre "Linear Genetic Programming", il est vraiment beaucoup plus facile d'accès et lisible.

Bref, je recommande.
Avatar de Franck Dernoncourt Franck Dernoncourt - Membre émérite https://www.developpez.com
le 03/09/2012 à 18:42
2012 - Free Book - Moshe Sipper - Evolved to Win
http://algo.developpez.com/livres/#L9781470972837

3.2.6 Explicitly defined introns

In natural living systems not all DNA has a phenotypic effect. This non-coding DNA,
sometimes referred to as junk DNA, is prevalent in virtually all eukaryotic genomes.
In GP, so-called introns are areas of code that do not affect survival and reproduction
(usually this can be replaced with “do not affect fitness”). In the context of tree-based
GP the term “areas of code” applies to subtrees.

Introns occur naturally in GP, provided that the function and terminal sets allow
for it. As bloat progresses, the number of nodes that are part of introns tends to
increase. Luke [117] distinguished two types of subtrees that are sometimes referred
to as introns in the literature:
• Unoptimized code: Areas of code that can be trivially simplified without modifying
the individual’s functionality, but not replaced with just anything.
• Inviable code: Subtrees that cannot be replaced by anything that can possibly
change the individual’s functionality.

Luke focused on inviable introns and we will do the same because unoptimized
code seems to cast too wide a net and wander too far from the original meaning of
the term “intron” in biology. We also make another distinction between two types of
inviable-code introns:
• Live-code introns: Subtrees that cannot be replaced by anything that can possibly
change the individual’s functionality, but may still generate code that will run
at some point.
• Dead-code introns: Subtrees whose code is never run.

 
couverture du livre Essentials of Metaheuristics

Note 5 drapeau
Détails du livre
Sommaire
Critiques (1)
3 commentaires
 
 

Essentials of Metaheuristics

de
Public visé : Intermédiaire

Résumé de l'éditeur

Interested in the Genetic Algorithm? Simulated Annealing? Ant Colony Optimization? Essentials of Metaheuristics covers these and other metaheuristics algorithms, and is intended for undergraduate students, programmers, and non-experts. The book covers a wide range of algorithms, representations, selection and modification operators, and related topics, and includes 70 figures and 133 algorithms great and small. Algorithms include: Gradient Ascent techniques, Hill-Climbing variants, Simulated Annealing, Tabu Search variants, Iterated Local Search, Evolution Strategies, the Genetic Algorithm, the Steady-State Genetic Algorithm, Differential Evolution, Particle Swarm Optimization, Genetic Programming variants, One- and Two-Population Competitive Coevolution, N-Population Cooperative Coevolution, Implicit Fitness Sharing, Deterministic Crowding, NSGA-II, SPEA2, GRASP, Ant Colony Optimization variants, Guided Local Search, LEM, PBIL, UMDA, cGA, BOA, SAMUEL, ZCS, and XCS.

Édition : Lulu.com - 230 pages , 1re édition, 5 mars 2011

ISBN10 : 0557148596 - ISBN13 : 9780557148592

Commandez sur www.amazon.fr :

14.72 € TTC (prix éditeur 18.66 € TTC)
  • Chapter 0. Introduction
  • Chapter 1. Gradient-based Optimization
  • Chapter 2. Single-State Methods
  • Chapter 3. Population Methods
  • Chapter 4. Representation
  • Chapter 5. Parallel Methods
  • Chapter 6. Coevolution
  • Chapter 7. Multiobjective Optimization
  • Chapter 8. Combinatorial Optimization
  • Chapter 9. Optimization by Model Fitting
  • Chapter 10. Policy Optimization
  • Chapter 11. Miscellany
Critique du livre par la rédaction Franck Dernoncourt le 1er mai 2012
Ce livre était à l'origine une compilation de notes de cours pour des étudiants au niveau licence. Son auteur, Sean Luke, chercheur et professeur à l'Université George Mason, a décidé de le publier sous licence CC-BY-ND, donc disponible gratuitement ici afin de le rendre accessible au plus grand nombre. Sean Luke est également un des auteurs de ECJ, une bibliothèque open source parmi les plus utilisées pour les algorithmes évolutionnistes en Java : le livre peut donc être considéré comme son pendant théorique.

Comme le titre l'indique, le livre traite des métaheuristiques, en se focalisant sur les algorithmes évolutionnistes. Une des caractéristiques appréciables du livre réside dans le fait que l'auteur explique très clairement l'enchaînement et les liens entre les différentes métaheuristiques, en soulignant notamment leurs limites ayant conduit à l'élaboration de nouvelles métaheuristiques, ce qui permet au lecteur de sentir l'évolution de la recherche dans ce domaine. Il montre ainsi l'enchaînement entre l'algorithme du gradient, le recuit simulé, la recherche tabou, les algorithmes évolutionnistes, l'optimisation par essaims particulaires, GRASP et l'algorithme de colonies de fourmis. L'avant-dernier chapitre introduit à l'optimisation de stratégies (policy optimization), en présentant entre autres l'apprentissage par renforcement et les learning classifier systems. Le dernier chapitre intitulé "Miscellany" est une mine d'or contenant des conseils très importants et probablement pas assez respectés sur la méthodologie à suivre pour conduire des expériences ainsi qu'un ensemble de tests usuels pour évaluer une métaheuristique, puis se conclut sur une liste de ressources très utiles (sites Web, livres, librairies, conférences, mailing lists, etc.) pour trouver davantage d'informations.

Chaque algorithme est accompagné d'un pseudocode commenté, soulignant par exemple la particularité de l'algorithme au regard des algorithmes précédents. Les 222 pages du livre contiennent 135 pseudocodes, ce qui montre bien l'accent mis sur l'explication concrète des algorithmes en plus des considérations intuitives ou théoriques. Le livre propose également plus de 70 figures qui permettent de mieux comprendre les algorithmes. Le ton général du livre est direct et les phrases sont formulées de façon très accessible. Pour chaque chapitre, les dépendances avec les chapitres précédents sont indiquées. Tous ces éléments rendent le livre facile et agréable à lire. À noter que le livre ne contient pas d'exercice et ne présente que peu d'applications hormis les exemples abstraits : il faudra donc utiliser ECJ ou une autre bibliothèque pour mettre en œuvre les algorithmes expliqués dans le livre. Le guide d'utilisateur de ECJ est complet et traite sous l'angle technique de la quasi-totalité des concepts du livre touchant aux algorithmes évolutionnistes.
Je conseille donc ce livre à toute personne souhaitant une introduction rapide ou une révision sur les métaheuristiques.




 Poster une réponse Signaler un problème

Avatar de Djug Djug - Expert éminent sénior https://www.developpez.com
le 05/06/2012 à 11:50
Bonjour
La rédaction DVP a lu pour vous le livre "Essentials of Metaheuristics", de Sean Luke



Citation Envoyé par Résumé de l'éditeur
Interested in the Genetic Algorithm? Simulated Annealing? Ant Colony Optimization? Essentials of Metaheuristics covers these and other metaheuristics algorithms, and is intended for undergraduate students, programmers, and non-experts. The book covers a wide range of algorithms, representations, selection and modification operators, and related topics, and includes 70 figures and 133 algorithms great and small. Algorithms include: Gradient Ascent techniques, Hill-Climbing variants, Simulated Annealing, Tabu Search variants, Iterated Local Search, Evolution Strategies, the Genetic Algorithm, the Steady-State Genetic Algorithm, Differential Evolution, Particle Swarm Optimization, Genetic Programming variants, One- and Two-Population Competitive Coevolution, N-Population Cooperative Coevolution, Implicit Fitness Sharing, Deterministic Crowding, NSGA-II, SPEA2, GRASP, Ant Colony Optimization variants, Guided Local Search, LEM, PBIL, UMDA, cGA, BOA, SAMUEL, ZCS, and XCS.

L'avez-vous lu ? Comptez-vous le lire bientôt ?

Quel est votre avis ?

Exprimez-vous !! Votre avis nous intéresse...
Avatar de Franck Dernoncourt Franck Dernoncourt - Membre émérite https://www.developpez.com
le 06/06/2012 à 13:54
Dernière modification par 250rgv ; Aujourd'hui à 10h17. Motif: Je n'avais pas vu le lien du dl dans la critique, <connaissant> déjà le livre
Oui je suis d'accord qu'il serait très souhaitable que le lien vers le PDF soit davantage visible.
Avatar de 250rgv 250rgv - Membre averti https://www.developpez.com
le 06/06/2012 à 10:09
Pour info, le livre est aussi disponible en pdf sur la page de l'auteur, c'est à dire ici.

Sinon, on peut aussi l'acheter directement chez lulu.com mais il faudra compter des frais de port, donc au final un peu plus cher que chez Amazon (2€ a ce jour)

Sinon, je ne l'ai pas encore lu mais il est sur la pile

HS : je préfère commander directement chez eux, je pense que dans ce cas, comme il n'y a pas la comm. d'Amazon, Lulu touche un peu plus sur la vente proprement dite, si quelqu'un pouvait confirmer ?

 
couverture du livre Evolved to Win

Note 5 drapeau
Détails du livre
Sommaire
Critiques (1)
1 commentaire
 
 

Evolved to Win

de

Résumé de l'éditeur

Recent years have seen a sharp increase in the application of evolutionary computation techniques within the domain of games. Situated at the forefront of this research tidal wave, Moshe Sipper and his group have produced a plethora of award-winning results, in numerous games of diverse natures, evidencing the success and efficiency of evolutionary algorithms in general-and genetic programming in particular-at producing top-notch, human-competitive game strategies. From classic chess and checkers, through simulated car racing and virtual warfare, to mind-bending puzzles, this book serves both as a tour de force of the research landscape and as a guide to the application of evolutionary computation within the domain of games.

Édition : Lulu.com - 193 pages , 1re édition, 28 novembre 2011

ISBN10 : 1470972832 - ISBN13 : 9781470972837

Commandez sur www.amazon.fr :

14.34 € TTC (prix éditeur 13.25 € TTC)
  • Part I: Rules of the Game
    • Chapter 1. Setting the Pieces
    • Chapter 2. Evolutionary Computation in a Nutshell
  • Part II: Board Games
    • Chapter 3. Lose Checkers
    • Chapter 4. Chess: Endgames
    • Chapter 5. Chess: Emergence and Complexity
    • Chapter 6. Chess: Evolving Search
    • Chapter 7. Chess: Evolving Search
  • Part III: Simulation Games
    • Chapter 8. Robocode
    • Chapter 9. Robot Auto Racing Simulator
  • Part IV: Puzzles
    • Chapter 10. Rush Hour
    • Chapter 11. FreeCell
  • Part V: Parting Words of...
    • Chapter 12. (Putative) Wisdom
    • Appendix: A Potpourri of Games
Critique du livre par la rédaction Franck Dernoncourt le 1er mai 2012
Dans ce livre, l'auteur et chercheur en intelligence artificielle Moshe Sipper présente un état de l'art de la programmation génétique appliquée aux jeux, domaine dans lequel l'auteur et son groupe de recherche ont gagné de nombreuses récompenses. Loin de réduire l'ouvrage à une simple énumération de résultats, il se concentre sur certains jeux qu'il a personnellement étudiés. À travers ces études de cas, il a réussi à structurer le livre de manière à montrer une progression dans l'utilisation de la programmation génétique : après avoir commencé à l'utiliser en tant que générateur et optimisateur d'heuristique, il l'applique directement aux algorithmes de recherche, tout en introduisant les notions de coévolution ainsi que d'évolution en îles asynchrones.
Les jeux étudiés au cours de ce livre se classent en trois catégories :
  • les jeux de société : une variante du jeu de dames (lose checkers), les échecs et le backgammon ;
  • les jeux de simulation : Robocode et le jeu de course RARS ;
  • les casse-têtes : Rush Hour et FreeCell.


Les résultats présentés sont palpitants car hautement compétitifs avec les humains ainsi que les bots existants. Les solutions sont analysées en profondeur, notamment pour essayer d'entrevoir si l'évolution a fait apparaître des phénomènes d'émergence parmi les individus évolués. Une particularité du livre est son attachement à souligner les liens entre les algorithmes évolutionnistes et les principes de biologie moléculaire afin d'acquérir une compréhension plus intime de l'évolution. Tout au long de l'ouvrage, une myriade de conseils précieux sont donnés sur l'utilisation de la programmation génétique.
Bien que l'auteur aurait pu aisément faire publier le livre chez un éditeur classique tel Springer, il a fait le choix de la générosité et a décidé de rendre le livre téléchargeable gratuitement à l'adresse http://www.moshesipper.com/etw (licence CC-BY-ND).




 Poster une réponse Signaler un problème

Avatar de Djug Djug - Expert éminent sénior https://www.developpez.com
le 18/05/2012 à 12:47
Bonjour
La rédaction DVP a lu pour vous le livre "Evolved to Win", de Moshe Sipper



Citation Envoyé par Résumé de l'éditeur
Recent years have seen a sharp increase in the application of evolutionary computation techniques within the domain of games. Situated at the forefront of this research tidal wave, Moshe Sipper and his group have produced a plethora of award-winning results, in numerous games of diverse natures, evidencing the success and efficiency of evolutionary algorithms in general-and genetic programming in particular-at producing top-notch, human-competitive game strategies. From classic chess and checkers, through simulated car racing and virtual warfare, to mind-bending puzzles, this book serves both as a tour de force of the research landscape and as a guide to the application of evolutionary computation within the domain of games.

L'avez-vous lu ? Comptez-vous le lire bientôt ?

Quel est votre avis ?

Exprimez-vous !! Votre avis nous intéresse...
Avatar de egann538 egann538 - Membre habitué https://www.developpez.com
le 22/05/2012 à 16:27
Merci de l'info, je ne savais pas que ce livre pouvait être téléchargé gratuitement.

 
couverture du livre Natural Language Processing with Python

Note 5 drapeau
Détails du livre
Sommaire
Critiques (2)
7 commentaires
 
 

Natural Language Processing with Python

de
Public visé : Intermédiaire

Résumé de l'éditeur

This book offers a highly accessible introduction to natural language processing, the field that supports a variety of language technologies, from predictive text and email filtering to automatic summarization and translation. With it, you'll learn how to write Python programs that work with large collections of unstructured text. You'll access richly annotated datasets using a comprehensive range of linguistic data structures, and you'll understand the main algorithms for analyzing the content and structure of written communication.

Packed with examples and exercises, Natural Language Processing with Python will help you:
  • Extract information from unstructured text, either to guess the topic or identify "named entities"
  • Analyze linguistic structure in text, including parsing and semantic analysis
  • Access popular linguistic databases, including WordNet and treebanks
  • Integrate techniques drawn from fields as diverse as linguistics and artificial intelligence


This book will help you gain practical skills in natural language processing using the Python programming language and the Natural Language Toolkit (NLTK) open source library. If you're interested in developing web applications, analyzing multilingual news sources, or documenting endangered languages -- or if you're simply curious to have a programmer's perspective on how human language works -- you'll find Natural Language Processing with Python both fascinating and immensely useful.

Édition : O'Reilly - 512 pages , 1re édition, 7 juillet 2009

ISBN10 : 0596516495 - ISBN13 : 9780596516499

Commandez sur www.amazon.fr :

34.47 € TTC (prix éditeur 36.06 € TTC)
  • Chapter 1. Language Processing and Python
  • Chapter 2. Accessing Text Corpora and Lexical Resources
  • Chapter 3. Processing Raw Text
  • Chapter 4. Writing Structured Programs
  • Chapter 5. Categorizing and Tagging Words
  • Chapter 6. Learning to Classify Text
  • Chapter 7. Extracting Information from Text
  • Chapter 8. Analyzing Sentence Structure
  • Chapter 9. Building Feature-Based Grammars
  • Chapter 10. Analyzing the Meaning of Sentences
  • Chapter 11. Managing Linguistic Data
Critique du livre par la rédaction Franck Dernoncourt le 1er février 2012
Utilisé par plus d'une centaine de cours dans le monde et disponible gratuitement en ligne à l'adresse http://www.nltk.org/book (licence CC BY-NC-ND), ce livre offre une excellente introduction au traitement automatique des langues naturelles en expliquant les théories par des exemples concrets d'implémentation. Il se veut donc une introduction pratique au domaine, par opposition à une introduction purement théorique. Chaque chapitre du livre se termine par une série d'exercices classés par ordre de difficulté, mais malheureusement non corrigés.

La particularité principale du livre est qu'il présente de nombreux exemples de code, en se basant sur la bibliothèque open-source et gratuite NLTK (http://www.nltk.org) écrite en Python par notamment les auteurs de ce livre. Très bien documentée, la bibliothèque NLTK offre de nombreuses fonctionnalités de traitement des langues (analyse lexicale, étiquetage grammatical, analyse syntaxique, etc.) tout en interfaçant aussi bien des bases de données tel WordNet que des bibliothèques et logiciels tiers tels l'étiqueteur grammatical Stanford Tagger et le prouveur automatisé Prover9. Un grand nombre de corpus est également disponible via NLTK, ce qui est très appréciable pour mettre en œuvre des processus d'entraînement ainsi que pour réaliser des tests, notamment des tests de performance. Comme le livre présente les nombreuses facettes du traitement automatique des langues naturelles, il parcourt au travers de ses exemples une grande partie des fonctionnalités de NLTK.

La limite principale de la bibliothèque NLTK est les performances de Python en termes de vitesse de calcul. L'utilisation de Python permet toutefois au lecteur de ne pas être trop gêné par la barrière du langage, Python étant à ce jour sans conteste un des langages les plus simples d'accès. Pour ceux n'ayant aucune ou peu d'expérience en Python, certaines sections du livre sont dédiées uniquement à l'explication du langage Python, ce qui permet de rendre l'ouvrage accessible à tout public.

Néanmoins, bien que donnant un aperçu excellent et concret de l'ensemble du traitement automatique des langues naturelles, le focus du livre sur les exemples en Python fait que mécaniquement le livre consacre moins de place aux considérations théoriques. En ce sens, il est un complément idéal au livre de référence Speech and Language Processing (écrit par Daniel Jurafsky et James H. Martin) dont l'approche est beaucoup plus théorique.
Critique du livre par la rédaction Julien Plu le 1er mai 2012
Ce livre sur NLTK est réellement bien écrit, il n'est pas nécessaire d'avoir une expérience en traitement automatique du langage pour pouvoir aborder cet ouvrage, il vous apprendra tout ce dont vous avez besoin pour comprendre chaque chapitre. La seule obligation est d'avoir une connaissance du langage Python.
Les exemples sont non seulement simples, mais aussi très utiles, car ce sont des choses dont on pourrait avoir besoin dans une application. J'ai principalement aimé les chapitres sur les extractions d'entités nommées, l'apprentissage pour la création d'un classifieur et l'analyse du sens d'une phrase qui sont particulièrement bien faits et expliqués.
La seule remarque que je ferais est le manque de détails sur toutes les possibilités de création et d'utilisation d'une grammaire via les expressions régulières NLTK ou non.




 Poster une réponse Signaler un problème

Avatar de Djug Djug - Expert éminent sénior https://www.developpez.com
le 06/02/2012 à 8:11
Bonjour,

La rédaction de DVP a lu pour vous l'ouvrage suivant: Natural Language Processing with Python, de Steven Bird, Ewan Klein, et Edward Loper.



Citation Envoyé par Résumé de l'éditeur
This book offers a highly accessible introduction to natural language processing, the field that supports a variety of language technologies, from predictive text and email filtering to automatic summarization and translation. With it, you'll learn how to write Python programs that work with large collections of unstructured text. You'll access richly annotated datasets using a comprehensive range of linguistic data structures, and you'll understand the main algorithms for analyzing the content and structure of written communication.

Packed with examples and exercises, Natural Language Processing with Python will help you:
  • Extract information from unstructured text, either to guess the topic or identify "named entities"
  • Analyze linguistic structure in text, including parsing and semantic analysis
  • Access popular linguistic databases, including WordNet and treebanks
  • Integrate techniques drawn from fields as diverse as linguistics and artificial intelligence


This book will help you gain practical skills in natural language processing using the Python programming language and the Natural Language Toolkit (NLTK) open source library. If you're interested in developing web applications, analyzing multilingual news sources, or documenting endangered languages -- or if you're simply curious to have a programmer's perspective on how human language works -- you'll find Natural Language Processing with Python both fascinating and immensely useful.
L'avez-vous lu? Comptez-vous le lire bientôt?

Quel est votre avis?

Exprimez-vous!! Votre avis nous intéresse.
Avatar de Franck Dernoncourt Franck Dernoncourt - Membre émérite https://www.developpez.com
le 06/02/2012 à 9:00
Voici une liste de définitions que j'ai trouvé intéressantes dans ce livre (les pages indiquées sont sous format n° de page du livre / n° de page de mon PDF) :

  • hypernym/hyponym relation, i.e., the relation between superordinate and subordinate concepts (p69 / 90)
  • Another rimportant way to navigate the WordNet network is from items to their components (meronyms) or to the things they are contained in (holonyms) (p710 / 91)
  • the same dictionary word (or lemma) (p104 / 125)
  • strip off any affixes, a task known as stemming. (p107 / 128)
  • Tokenization is the task of cutting a string into identifiable linguistic units that constitute a piece of language data (p109 / 130)
  • Tokenization is an instance of a more general problem of segmentation. (p112 § 133)
  • The %s and %d symbols are called conversion specifiers (p118 / 139)
  • The process of classifying words into their parts-of-speech and labeling them accord-ingly is known as part-of-speech tagging, POS tagging, or simply tagging. Parts-of-speech are also known as word classes or lexical categories. The collection of tagsused for a particular task is known as a tagset. Our emphasis in this chapter is onexploiting tags, and tagging text automatically. (p179 / 200)
  • As n gets larger, the specificity of the contexts increases, as does the chance that the data we wish to tag contains contexts that were not present in the training data. This is known as the sparse data problem, and is quite pervasive in NLP. As a consequence, there is a trade-off between the accuracy and the coverage of our results (and this is related to the precision/recall trade-off in information retrieval) (p205 / 226)
  • A convenient way to look at tagging errors is the confusion matrix. It charts expected tags (the gold standard) against actual tags gen-erated by a tagger (p207 / 228)
  • All languages acquire new lexical items. A list of words recently added to the Oxford Dictionary of English includes cyberslacker, fatoush, blamestorm, SARS, cantopop,bupkis, noughties, muggle, and robata. Notice that all these new words are nouns, and this is reflected in calling nouns an open class. By contrast, prepositions are regarded as a closed class. That is, there is a limited set of words belonging to the class. (p211 / 232)
  • Common tagsets often capture some morphosyntactic information, that is, informa-tion about the kind of morphological markings that words receive by virtue of theirsyntactic role. (p212 / 233)
  • Classification is the task of choosing the correct class label for a given input. (p221 / 242)
  • The first step in creating a classifier is deciding what features of the input are relevant,and how to encode those features. For this example, we’ll start by just looking at thefinal letter of a given name. The following feature extractor function builds a dictionary containing relevant information about a given name. (p223 / 244)
  • Recognizing the dialogue acts underlying the utterances in a dialogue can be an important first step in understanding the conversation. The NPS Chat Corpus, which was demonstrated in Section 2.1, consists of over 10,000 posts from instant messaging sessions. These posts have all been labeled with one of 15 dialogue act types, such as “Statement,” “Emotion,” “y/n Question,” and “Continuer.” (p235 / 256)
  • Recognizing textual entailment (RTE) is the task of determining whether a given piece of text T entails another text called the “hypothesis”. (p235 / 256)
  • A confusion matrix is a table where each cell [i,j] indicates how often label j was pre-dicted when the correct label was i. (p240 / 261)
  • Numeric features can be converted to binary features by binning, which replaces them with features such as “4<x<6.” (p249 / 270)
  • Named entities are definite noun phrases that refer to specific types of individuals, such as organizations, persons, dates, and so on. The goal of a named entity recognition (NER) system is to identify all textual men-tions of the named entities. This can be broken down into two subtasks: identifyingthe boundaries of the NE, and identifying its type. (p281 / 302)
  • Since our grammar licenses two trees for this sentence, the sentence is said to be structurally ambiguous. The ambiguity in question is called a prepositional phrase attachment ambiguity. (p299 / 320)
  • A grammar is said to be recursive if a category occurring on the left hand side of a production also appears on the righthand side of a production. (p301 / 322)
  • A parser processes input sentences according to the productions of a grammar, and builds one or more constituent structures that conform to the grammar. A grammar is a declarative specification of well-formedness—it is actually just a string, not a program. A parser is a procedural interpretation of the grammar. It searches through the space of trees licensed by a grammar to find one that has the required sentence alongits fringe. (p302 / 323)
  • Phrase structure grammar is concerned with how words and sequences of words combine to form constituents. A distinct and complementary approach, dependency grammar, focuses instead on how words relate to other words. (p310 / 331)
  • A dependency graph is projective if, when all the words are written in linear order, the edges can be drawn above the words without crossing. (p311 / 332)
  • In the tradition of dependency grammar, the verbs in Table 8-3 (whose dependents have Adj, NP, S and PP, which are often called complements of the respective verbs, are different) are said to have different valencies. (p313 / 335)
  • This ambiguity is unavoidable, and leads to horrendous inefficiency in parsing seemingly innocuous sentences. The solution to these problems is provided by probabilistic parsing, which allows us to rank the parses of an ambiguous sentence on the basis of evidence from corpora. (p318 / 339)
  • A probabilistic context-free grammar (or PCFG) is a context-free grammar that as-sociates a probability with each of its productions. It generates the same set of parses for a text that the corresponding context-free grammar does, and assigns a probability to each parse. The probability of a parse generated by a PCFG is simply the product ofthe probabilities of the productions used to generate it. (p320 / 341)
  • We can see that morphological properties of the verb co-vary with syntactic properties of the subject noun phrase. This co-variance is called agreement. (p329 / 350)
  • A feature path is a sequence of arcs that can be followed from the root node (p339 / 360)
  • A more general feature structure subsumes a less general one. (p341 / 362)
  • Merging information from two feature structures is called unification. (p342 / 363)
  • The two sentences in (5) can be both true, whereas those in (6) and (7) cannot be. In other words, the sentences in (5) are consistent, whereas those in (6) and (7) are inconsistent. (p365 / 386)
  • A model for a set W of sentences is a formal representation of a situation in which allthe sentences in W are true. (p367 / 388)
  • An argument is valid if there is no possible situation in which its premises are all true and its conclusion is not true. (p369 / 390)
  • In the sentences "Cyril is tall. He likes maths.", we say that he is coreferential with the noun phrase Cyril. (p373 / 394)
  • In the sentence "Angus had a dog but he disappeared.", "he" is bound by the indefinite NP "a dog", and this is a different relationship than coreference. If we replace the pronoun he by a dog, the result "Angus had a dog but a dog disappeared" is not semantically equivalent to the original sentence "Angus had a dog but he disappeared." (p374 / 395)
  • In general, an occurrence of a variable x in a formula F is free in F if that occurrence doesn’t fall within the scope of all x or some x in F. Conversely, if x is free in formula F, then it is bound in all x.F and exists x.F. If all variable occurrences in a formulaare bound, the formula is said to be closed. (p375 / 396)
  • The general process of determining truth or falsity of a formula in a model is called model checking. (p379 / 400)
  • Principle of Compositionality: the meaning of a whole is a function of the meaningsof the parts and of the way they are syntactically combined. (p385 / 406)
  • ? is a binding operator, just as the first-order logic quantifiers are. (p387 / 408)
  • A discourse representation structure (DRS) presents the meaning of discourse in terms of a list of discourse referents and a list of conditions.The discourse referents are the things under discussion in the discourse, and they correspond to the individual variables of first-order logic. The DRS conditions apply to those discourse referents, and correspond to atomic open formulas of first-orderlogic. (p397 / 418)
  • Inline annotation modifies the original document by inserting special symbols or control sequences that carry the annotated information. For example, when part-of-speech tagging a document, the string "fly" might be replacedwith the string "fly/NN", to indicate that the word fly is a noun in this context. Incontrast, standoff annotation does not modify the original document, but instead creates a new file that adds annotation information using pointers that reference the original document. For example, this new document might contain the string "<token id=8pos='NN'/>", to indicate that token 8 is a noun. (p421 / 442)
Un autre dictionnaire de NLP disponible online : http://www.cse.unsw.edu.au/~billw/nlpdict.html
Avatar de Franck Dernoncourt Franck Dernoncourt - Membre émérite https://www.developpez.com
le 06/02/2012 à 20:23
Également, pour ceux intéressés par le sujet, Stanford lance un cours d'introduction au traitement automatique des langues naturelles : http://www.nlp-class.org/


 
couverture du livre Introduction to Evolutionary Computing

Note 4.5 drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Introduction to Evolutionary Computing

de
Public visé : Intermédiaire

Résumé de l'éditeur

Evolutionary Computing is the collective name for a range of problem-solving techniques based on principles of biological evolution, such as natural selection and genetic inheritance. These techniques are being increasingly widely applied to a variety of problems, ranging from practical applications in industry and commerce to leading-edge scientific research. This book presents the first complete overview of this exciting field aimed directly at lecturers and graduate and undergraduate students. It is also meant for those who wish to apply evolutionary computing to a particular problem or within a given application area. To this group the book is valuable because it presents EC as something to be used rather than just studied. Last, but not least, this book contains quick-reference information on the current state-of-the-art in a wide range of related topics, so it is of interest not just to evolutionary computing specialists but to researchers working in other fields.

Édition : Springer - 316 pages , 2eédition, 15 décembre 2010

ISBN10 : 3642072852 - ISBN13 : 9783642072857

Commandez sur www.amazon.fr :

36.27 € TTC (prix éditeur 39.95 € TTC)
  • Introduction
  • What is an Evolutionary Algorithm?
  • Genetic Algorithms
  • Evolution Strategies
  • Evolutionary Programming
  • Genetic Programming
  • Learning Classifier Systems
  • Parameter Control in Evolutionary Algorithms
  • Multi-Modal Problems and Spatial Distribution
  • Hybridisation with Other Techniques: Memetic Algorithms
  • Theory
  • Constraint Handling
  • Special Forms of Evolution
  • Working with Evolutionary Algorithms
  • Summary
  • Appendices
  • Index
  • References
Critique du livre par la rédaction Franck Dernoncourt le 1er juin 2011
Ce livre est une des références pour s'initier aux algorithmes évolutionnistes : assez court (à peine 300 pages facilement lisibles) et bien conçu pour une première approche du domaine sans avoir à y investir une quantité de temps considérable, tout en étant plutôt complet et sans se perdre dans des détails inutiles, ce qui donne au lecteur un nombre important de pistes de réflexion essentielles pour une bonne compréhension des différentes problématiques rencontrées le plus souvent dans le domaine.
Il est aussi un des premiers ouvrages présentant une vue d'ensemble sur l'évolution artificielle (EA) et il contient notamment les dernières nouveautés du domaine. Les chapitres alternent introductions théoriques, exemples, algorithmes et exercices, et même si les fondements théoriques ne sont pas négligés, l'accent est davantage mis sur la mise en oeuvre concrète des algorithmes et techniques d'évolution artificielle.
Bref, que ce soit pour découvrir le domaine ou se remettre les idées-clefs en mémoire, je conseille vivement la lecture de ce livre ! Pour les enseignants, des supports de présentation sont disponibles sur le site officiel.
Seul bémol notable, les exercices ne sont pas corrigés et certaines parties potentiellement intéressantes du site officiel sont toujours en construction ou ne sont pas terminées.

Tout d'abord, après avoir présenté dans les grandes lignes le fonctionnement ainsi que les caractéristiques d'un algorithme évolutionniste (chapitres 1 et 2), le livre se penche sur ses quatre variantes usuelles : algorithmes génétiques, stratégies d'évolution, programmation évolutionniste et programmation génétique (chapitres 3 à 6).
En deuxième partie, le livre présente diverses améliorations aux quatre classes d'algorithmes classiques vues précédemment :
  • les LCS (Learning Classifier System - chapitre 7), qui sont un système d'apprentissage automatique basé sur le concept d'ensemble de règles conditions-actions et qui permettent d'introduire la notion de coopération parmi les individus d'une même population, contrairement aux algorithmes évolutionnistes classiques dans lesquels les individus sont simplement en compétition. ZCS et XCS sont des variantes ;
  • le "parameter control" (chapitre 8), dont l'objectif est d'adapter certains paramètres structurants des algorithmes évolutionnistes, telles la taille de la population ou la probabilité des mutations/croisements, au cours de l'exécution de l'algorithme, contrairement au "parameter tuning" utilisé habituellement, consistant à fixer ces paramètres au début de l'exécution de l'algorithme sans pouvoir les modifier après, ce qui rend l'algorithme beaucoup moins performant ;
  • le maintien d'une certaine diversité au sein de la population (chapitre 9), afin de faire face à la convergence vers un optimum local (genetic drift) souvent constaté, à l'instar de la sélection naturelle qui a vu se former des sous-groupes grâce aux contraintes géographiques. On peut de cette manière trouver autant d'optima locaux que de sous-groupes, permettant ainsi d'obtenir de meilleurs résultats sur les problèmes multimodaux en se rapprochant ainsi de l'optimum global ;
  • le multiobjectif (chapitre 9), qui repose sur le concept de dominance au sens de Pareto : beaucoup de problèmes ont en effet plusieurs objectifs, les scalariser en un seul objectif comporte des inconvénients, et les résultats montrent que les MOEA (MultiObjective Evoluationary Algorithms) sont en général les meilleurs algorithmes pour résoudre des MOP (MultiObjective Problems) ;
  • les algorithmes mémétiques (chapitre 10), qui permettent d'effectuer des améliorations (local search) non génétiques propres à un seul individu, améliorations se basant sur des connaissances expertes spécifiques au problème, en faisant attention à maintenir une certaine diversité au sein de la population. Les résultats ainsi obtenus par rapport à l'EA classique sont généralement meilleurs sur le problème étudié, mais moins bons pour la plupart des autres problèmes.

En troisième partie, les auteurs exposent quelques bases de la théorie sous-jacente à l'EA (chapitre 11), puis expliquent comment y inclure des contraintes, comme par exemple en définissant des pénalités dans la fitness fonction (chapitre 12). Ils présentent également des formes d'évolution (chapitre 13) basées sur la coévolution interactive ou compétitive, formes plus proches de la sélection naturelle où les espèces évoluent ensemble et les critères de sélection sont relatifs (telle l'opposition proies vs prédateurs).
Les auteurs concluent sur les bonnes pratiques de mesure de performance d'une EA (chapitre 14), soulignent que le plus important lors de l'utilisation d'une EA est de trouver une bonne représentation ainsi qu'un choix d'opérateurs de variation et de sélection judicieux, et donnent des pistes de réflexion non étudiées dans le livre, tels les colonies de fourmis ou les systèmes immunitaires artificiels.


couverture du livre Purely Functional Data Structures

Note 4.5 drapeau
Détails du livre
Critiques (1)
 
 

Purely Functional Data Structures

de

Résumé de l'éditeur

Most books on data structures assume an imperative language such as C or C++. However, data structures for these languages do not always translate well to functional languages such as Standard ML, Haskell, or Scheme. This book describes data structures from the point of view of functional languages, with examples, and presents design techniques that allow programmers to develop their own functional data structures. The author includes both classical data structures, such as red-black trees and binomial queues, and a host of new data structures developed exclusively for functional languages. All source code is given in Standard ML and Haskell, and most of the programs are easily adaptable to other functional languages. This handy reference for professional programmers working with functional languages can also be used as a tutorial or for self-study.

Édition : Cambridge University Press - 220 pages , 1re édition, 13 juin 1999

ISBN10 : 0521663504 - ISBN13 : 9780521663502

Commandez sur www.amazon.fr :

33.20 € TTC (prix éditeur 37.40 € TTC)
Critique du livre par la rédaction Damien Guichard le 13 juin 2011
Cet ouvrage reprend l'intégralité de la thèse de Chris Okasaki avec tous ses points forts, à commencer par les nouvelles techniques algorithmiques avancées (eliminated amortization, lazy rebuilding, data-structural bootstrapping, implicit recursive slowdown). Les systèmes de numération y sont utilisés comme des moules pour fabriquer des TADs sur le modèle des opérations élémentaires d'incrémentation et d'addition. Le système de typage est poussé aussi loin que possible avec les nested data types (polymorphic recursion), les modules paramétrés et les modules paramétrés récursifs.
En plus du contenu de la thèse qui fait déjà autorité, la valeur ajoutée de ce livre réside dans :
- une introduction à la persistence et au path-copying
- un rappel sur l'implantation des structures de données élémentaires (listes,piles,queues,arbres binaire de recherche, arbres rouge-noir)
- des exercices qui explorent des alternatives connues (arbres de Arne Andersson,...) ou des variantes du mécanisme de mise à jour (batched-rebuilding)
- un répertoire d'implantations des structures de tas, assez consistant (leftist heaps, pairing heaps, binomial heap, skew binomial heap, structural-bootstrapped skew binomial heap) sans être exhaustif (il manque le Braun heap et le maxiphobic heap)
En bref il s'agit d'une référence à posséder absolument.
Un seul regret: l'ouvrage n'a pas la prétention d'être une bible. Il ne fait pas le tour complet du sujet puisque par exemple, ne sont pas abordés les thèmes suivants:

- le Finger-tree
- l'implantation efficace des graphes inductifs
- l'implantation efficace de l'Union-Find persistent
Cependant, pour les personnes intéressées, de la documentation sur ces sujets est facilement trouvable en ligne.


Contacter le responsable de la rubrique Débuter - Algorithmique

Partenaire : Hébergement Web