
Livres en anglais
16 livres et 16 critiques, dernière mise à jour le 12 novembre 2019 , note moyenne : 4.5
- Kernelization - Theory of Parameterized Preprocessing
- Algorithms Illuminated: Greedy Algorithms and Dynamic Programming
- Algorithms Illuminated: Graph Algorithms and Data Structures
- Algorithms Illuminated: The Basics
- Natural Language Processing with PyTorch - Build Intelligent Language Applications Using Deep Learning
- Hands-On Unsupervised Learning Using Python - How to Build Applied Machine Learning Solutions from Unlabeled Data
- Data Visualization - Charts, Maps, and Interactive Graphics
- Elements of Causal Inference - Foundations and Learning Algorithms
- Machine Learning for Data Streams - With Practical Examples in MOA
- Ant Colony Optimization
- A Field Guide to Genetic Programming
- Essentials of Metaheuristics
- Evolved to Win
- Natural Language Processing with Python
- Introduction to Evolutionary Computing
- Purely Functional Data Structures


Kernelization
Theory of Parameterized Preprocessing
Résumé de l'éditeur
Édition : Cambridge University Press - 528 pages , 1re édition, 10 janvier 2019
ISBN10 : 1107415152 - ISBN13 : 9781107415157
Upper Bounds
Warm Up
Inductive Priorities
Crown Decomposition
Expansion Lemma
Linear Programming
Hypertrees
Sunflower Lemma
Modules
Matroids
Representative Families
Greedy Packing
Euler's Formula
Meta Theorems
Introduction to Treewidth
Bidimensionality and Protrusions
Surgery on Graphs
Lower Bounds
Framework
Instance Selectors
Polynomial Parameter Transformation
Polynomial Lower Bounds
Extending Distillation
Beyond Kernelization
Turing Kernelization
Lossy Kernelization

Theory of Parameterized Preprocessing
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?




Algorithms Illuminated: Greedy Algorithms and Dynamic Programming
Résumé de l'éditeur
Édition : Soundlikeyourself Publishing - 229 pages , 1re édition, 1er mai 2019
ISBN10 : 0999282948 - ISBN13 : 9780999282946
Huffman Codes
Minimum Spanning Trees
Introduction to Dynamic Programming
Advanced Dynamic Programming
Shortest Paths Revisited
Epilogue: A Field Guide to Algorithm Design
L'auteur continue avec son parti pris d'un texte clair, épuré, accessible au plus grand nombre. Malgré le niveau technique plus avancé que dans les deux premiers tomes, les explications restent claires et faciles à suivre. Cette troisième partie de la série contient presque exclusivement des exemples des deux techniques de conception d'algorithmes, notamment avec les algorithmes les plus connus et utiles (on a déjà cité Bellman-Ford, il ne faut pas oublier les codes de Huffman, les algorithmes de Prim, de Kruskal, de Floyd-Warshall pour les graphes). Elle s'oriente encore plus vers des applications, mais aussi de la recherche (avec quelques références vers des articles parfois très récents — 2018).
Ce livre fait partie d'une série de quatre et il est extrait de cours en ligne donnés par l'auteur. Tim Roughgarden en a réutilisé certaines ressources pour le compléter. On y retrouve donc l'un ou l'autre quiz (avec des solutions très détaillées) et des problèmes (la plupart ayant une solution explicitée dans le livre), mais aussi des tests plus compliqués en ligne ainsi que des vidéos.

[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?




Algorithms Illuminated: Graph Algorithms and Data Structures
Résumé de l'éditeur
Édition : Soundlikeyourself Publishing - 221 pages , 1re édition, 5 août 2018
ISBN10 : 0999282921 - ISBN13 : 9780999282922
Graph Search and Its Application
Dijkstra's Shortest-Path Algorithm
The Heap Data Structure
Search Trees
Hash Tables and Bloom Filters
Quick Review of Asymptotic Notation
Comme dans le premier tome, l'auteur prend le parti d'un texte clair, épuré, accessible au plus grand nombre (on peut apprécier la quantité d'illustrations pour les algorithmes de traversée de graphes, pas toujours les plus intuitifs quand on débute dans le domaine). À nouveau, il se focalise sur les éléments les plus importants du sujet. Notamment, seul l'algorithme de Dijkstra pour les plus courts chemins est détaillé dans le livre (pas de Bellman-Ford ou d'A*). Un autre exemple, peut-être plus litigieux, est celui des structures de données de base, puisque l'auteur considère que le lecteur est parfaitement au courant des propriétés et de la manipulation des tableaux, des listes liées, des files et des piles.
Plus que le premier tome, ce deuxième volume se rapproche des applications pratiques. Les algorithmes présentés semblent moins utiles, mais seulement à première vue. L'auteur met toujours les algorithmes en contexte, justifie leur besoin réel. Ainsi, les algorithmes travaillant sur des graphes sont présentés en même temps que leurs applications dans les réseaux ou la planification. Ce côté appliqué se montre aussi dans la structure des chapitres sur les structures de données : le praticien doit surtout connaître les opérations principales des structures de données, leur complexité, mais pas forcément leur implémentation. L'auteur sépare ainsi la spécification de la structure de données des techniques d'implémentation.
L'organisation des chapitres peut sembler un peu contre-intuitive, avec d'abord les graphes et puis les structures de données. Elle a le grand avantage de justifier le besoin en structures de données par la pratique, par la recherche d'algorithmes efficaces pour des besoins concrets (pas vraiment académiques). On peut regretter que ce tome soit autant lié à la série pour certains aspects : l'algorithme de Dijkstra n'est pas l'algorithme le plus générique pour les plus courts chemins, mais il est le seul présenté ici. Il faudra attendre le troisième tome pour découvrir l'algorithme de Bellman-Ford, dans le cadre de la programmation dynamique (peu après avoir lié celui de Dijkstra aux algorithmes gloutons).
Ce livre fait partie d'une série de quatre et il est extrait de cours en ligne donnés par l'auteur. L'auteur en a réutilisé certaines ressources pour le compléter. On y retrouve donc l'un ou l'autre quiz (avec des solutions très détaillées) et des problèmes (la plupart ayant une solution explicitée dans le livre), mais aussi des tests plus compliqués en ligne ainsi que des vidéos.


[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?




Algorithms Illuminated: The Basics
Résumé de l'éditeur
Édition : Soundlikeyourself Publishing - 218 pages , 1re édition, 27 septembre 2017
ISBN10 : 0999282905 - ISBN13 : 9780999282908
Asymptotic Notation
Divide-and-Conquer Algorithms
The Master Method
QuickSort
Linear-Time Selection
Quick Review of Proofs By Induction
Quick Review of Discrete Probability
Ce livre propose un autre angle de vue sur le sujet : le texte est clair, pas encombré de termes techniques inutiles. Le contenu est abordé de manière progressive et intégrée (les notations asymptotiques ne sont pas détaillées de manière abstraite, mais dans le concret d'un algorithme). L'auteur a fait le choix de présenter relativement peu d'algorithmes (aucun algorithme de tri ne nécessite de structure de données comme le monceau), ce qui lui permet d'entrer dans les détails. Chacun est d'ailleurs placé dans un vrai contexte avec des problèmes réels où cet algorithme peut être utilisé. Chaque chapitre est terminé par un petit encadré résumant les notions les plus importantes abordées dans ce chapitre.
L'un des choix posés lors de la rédaction a été une complète indépendance vis-à-vis du langage de programmation. D'un côté, cela rend le livre plus abstrait et légèrement moins accessible. De l'autre, cela permet d'éviter les complexités liées à la syntaxe d'un langage de programmation (le lecteur est d'ailleurs supposé déjà savoir programmer dans un langage, c'est presque le seul prérequis — avec un petit peu de mathématiques). Les intrications mathématiques sont limitées au maximum, afin d'élargir le public visé. Certains sujets nécessitent plus d'écritures mathématiques, mais ils sont clairement indiqués comme tels et ne sont pas nécessaires à la bonne compréhension globale de l'ouvrage.
Ce livre fait partie d'une série de quatre et il est extrait de cours en ligne donnés par l'auteur. Ce premier tome parle d'algorithmique en général, sans entrer dans les détails de structures de données : il se limite à quelques algorithmes de tri (le tri rapide ayant droit à son propre chapitre bien détaillé). L'auteur a d'ailleurs réutilisé certaines des ressources de ces cours pour compléter le livre. On y retrouve donc l'un ou l'autre quiz (avec des solutions très détaillées) et des problèmes (la plupart ayant une solution explicitée dans le livre), mais aussi des données de test plus compliquées en ligne ainsi que des vidéos.
En résumé, je trouve que ce livre est une très bonne introduction au sujet de l'algorithmique. Il conviendra très bien aux plus débutants et à ceux que le domaine rebute. Par contre, il faudra le compléter par d'autres livres pour approfondir.

[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?




Natural Language Processing with PyTorch
Build Intelligent Language Applications Using Deep Learning
Résumé de l'éditeur
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
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
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.

Build Intelligent Language Applications Using Deep Learning
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]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?




Hands-On Unsupervised Learning Using Python
How to Build Applied Machine Learning Solutions from Unlabeled Data
Résumé de l'éditeur
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
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
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.

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



Data Visualization
Charts, Maps, and Interactive Graphics
Résumé de l'éditeur
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
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
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.

Charts, Maps, and Interactive Graphics
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]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?




Elements of Causal Inference
Foundations and Learning Algorithms
Résumé de l'éditeur
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
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
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.

Foundations and Learning Algorithms
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]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?




Machine Learning for Data Streams
With Practical Examples in MOA
Résumé de l'éditeur
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
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
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.

Je vous invite à lire la critique que Dourouc05 a faite pour vous au sujet du livre :
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

Ant Colony Optimization
Résumé de l'éditeur
Édition : MIT Press - 319 pages , 1re édition, 4 juin 2004
ISBN10 : 0262042193 - ISBN13 : 9780262042192
- 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
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.
A Field Guide to Genetic Programming
Résumé de l'éditeur
Édition : Lulu - 252 pages , 1re édition, 26 mars 2008
ISBN10 : 1409200736 - ISBN13 : 9781409200734
- 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
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).

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


L'avez-vous lu ? Comptez-vous le lire bientôt ?
Quel est votre avis ?
Exprimez-vous !! Votre avis nous intéresse...
Bref, je recommande.

http://algo.developpez.com/livres/#L9781470972837
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.
Essentials of Metaheuristics
Résumé de l'éditeur
Édition : Lulu.com - 230 pages , 1re édition, 5 mars 2011
ISBN10 : 0557148596 - ISBN13 : 9780557148592
- 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
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.

La rédaction DVP a lu pour vous le livre "Essentials of Metaheuristics", de Sean Luke


L'avez-vous lu ? Comptez-vous le lire bientôt ?
Quel est votre avis ?
Exprimez-vous !! Votre avis nous intéresse...
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 ?
Evolved to Win
Résumé de l'éditeur
Édition : Lulu.com - 193 pages , 1re édition, 28 novembre 2011
ISBN10 : 1470972832 - ISBN13 : 9781470972837
- 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
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).

La rédaction DVP a lu pour vous le livre "Evolved to Win", de Moshe Sipper


L'avez-vous lu ? Comptez-vous le lire bientôt ?
Quel est votre avis ?
Exprimez-vous !! Votre avis nous intéresse...
Natural Language Processing with Python
Résumé de l'éditeur
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
- 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
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.
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.

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.


Quel est votre avis?
Exprimez-vous!! Votre avis nous intéresse.
- 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)

Introduction to Evolutionary Computing
Résumé de l'éditeur
Édition : Springer - 316 pages , 2eédition, 15 décembre 2010
ISBN10 : 3642072852 - ISBN13 : 9783642072857
- 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
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.
Purely Functional Data Structures
Résumé de l'éditeur
Édition : Cambridge University Press - 220 pages , 1re édition, 13 juin 1999
ISBN10 : 0521663504 - ISBN13 : 9780521663502
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.