• Aucun résultat trouvé

3.2 Apprentissage des seuils de l’architecture TRF

3.2.2 Automatic Multiple-Thresholds Learning algorithm (AMTL)

CMP n’est pas adapté à toutes les fonctions possibles de notre approche, PSO est

difficilement interprétable car il est stochastique. De plus aucun de ces deux algorithmes

ne peut apprendre le rejet de distance sans contre-exemples. Toutes ces raisons nous

ont poussé à développer un algorithme générique, efficace et interprétable.

L’algorithme que nous présentons dans cette section se nomme AMTL pour

ap-prentissage automatique de seuils multiples (Automatic Multiple-Thresholds Learning

Algorithm). Cette approche est un cadre générique pour l’apprentissage des seuils des

différentes natures de rejet. AMTL est un algorithme glouton basé sur des heuristiques

définissables par l’utilisateur. Différentes variantes de cet algorithme donc sont possibles

et nous présentons les deux plus intéressantes AMTL1 et AMTL2.

AMTL utilise un classifieur principal déjà appris et un ensemble de fonctions de

confiance déjà choisies. De plus il a besoin de deux bases d’apprentissage : une base

d’exemples notéeD

E

et une base de contre-exemples notéeD

A

. Le contenu de ces deux

bases dépend de la nature du rejet appris comme expliqué dans les sections précédentes :

pour le rejet de distance,D

E

contient les formes à accepter etD

A

contient les formes à

rejeter disponibles ; pour le rejet d’ambiguïtéD

E

contient les formes bien reconnues et

D

A

contient les formes mal reconnues par le classifieur principal. Le choix des fonctions

de confiance et des heuristiques utilisées dépendant du problème considéré, le seul

paramètre de AMTL estθ le taux de faux rejet maximal permis.

Comme on peut le voir dans l’Algorithme 2, AMTL est composé de cinq étapes :

1. A l’initialisation les valeurs des fonctions de confiance sont calculées pour tous les

exemples et contre-exemples puis les seuils sont fixés de manière à rejeter tous les

contre-exemples et tous les exemples,E etC contiennent la liste des exemples et

contre-exemples rejetés ;

2. Les étapes suivantes sont répétées tant que le critère d’arrêt n’est pas vérifié par

la fonctioncas_d_arrêt;

3. Le seuil qu’il va falloir modifier est choisi suivant la politique de choix des seuils

par la fonction choisir_le_seuil;

4. Le seuil choisi est ensuite diminué suivant la politique de descente des seuils grâce

à la fonction diminuer_le_seuil pour accepter de plus en plus d’exemples (et

de contre-exemples) ;

5. Mise à jour des exemples et contre-exemples encore rejetés, on retire de E et C

ceux qui sont acceptés par un des seuils.

En considérant l’espace<

N

des valeurs possibles des seuils, AMTL est basé sur le fait

qu’il y a deux points remarquables : le point de rejet nulP

0

où tous les seuils sont à zéro,

et le point de rejet totalP

T

où tous les seuils sont suffisamment hauts pour tout rejeter.

Cet algorithme cherche un chemin pour aller de P

T

à P

0

en suivant itérativement une

dimension (un seuil) à chaque étape. Ce chemin ressemble à un escalier enN dimensions.

La dimension parcourue à chaque étape est choisie par la fonction choisir_le_seuil

en essayant de minimiser le FRR et maximiser le TRR plus ou moins localement suivant

cette fonction. Ensuite la fonction diminuer_le_seuil diminue le seuil choisi. Il faut

Apprentissage des seuils de l’architecture TRF 65

Algorithme 2 : Algorithme AMTL d’apprentissage des seuils.

Entrées : Le classifieur

Entrées :Ψensemble des N fonctions de confiance ψ

i

Entrées :D

E

base d’exemples

Entrées :D

A

base de contre-exemples

Entrées :θparamètre du cas d’arrêt

Résultat:T ensemble desN seuils de rejett

i

début

//Initialisation

pour chaque ψ

i

∈Ψfaire

1

E

i

← {ψ

i

(e

k

),∀e

k

∈D

E

, ψ

i

(e

k

)>0}

E ←E∪ {E

i

}

C

i

← {ψ

i

(c

k

),∀c

k

∈D

A

, ψ

i

(c

k

)>0}

C ←C∪ {C

i

}

σ

i

←max(C

i

∪E

i

)

//Apprentissage itératif des seuils

tant que NONcas_d_arrêt(θ,Ψ, T, D

E

, D

A

)faire

2

s← choisir_le_seuil(T, E, C)

3

T ←diminuer_le_seuil(s, T, E, C)

4

//Mise à jour

pour chaque i= 1..N faire

5

E

i

←E

i

− {ψ

i

(e

k

),∃s ψ

s

(e

k

)> t

s

}

C

i

←C

i

− {ψ

i

(c

k

),∃s ψ

s

(c

k

)> t

s

}

fin

du parcours deP

T

àP

0

puisqu’il n’y a pas de remise en cause des choix (pas de retour

arrière).

Ce sont les deux fonctionschoisir_le_seuiletdiminuer_le_seuilcontenant les

heuristiques définies par l’utilisateur qui déterminent l’apprentissage des seuils. La

fonc-tioncas_d_arrêtne change pas le parcours de l’espace des possibilités mais seulement

le moment de l’arrêt du parcours. C’est pourquoi nous avons choisi arbitrairement de

considérer le taux de faux rejet comme critère d’arrêt : l’apprentissage s’arrête lorsque

F RR(D

E

)< θ.

Il est donc possible de définir différentes variantes de AMTL et nous en proposons

deux, chacune avec des objectifs différents. D’un côté AMTL1 a besoin de

contre-exemples pour son apprentissage et est dédié au problème A→A. D’un autre côté

AMTL2 n’utilise pas de contre-exemples et est donc dédié au problème A→B. Nous

présentons ensuite dans la section 3.2.2.3 d’autres possibilités pour chacune des trois

fonctions qui pourraient être utilisées dans d’autres contextes d’utilisation que le nôtre.

3.2.2.1 AMTL1 utilisant les contre-exemples

Le but de AMTL1 est de trouver le meilleur compromis entre le rejet des exemples

et le rejet des contre-exemples. Pour cela il utilise une fonctionchoisir_le_seuilqui

sélectionne le seuil qui minimise le nombre de contre-exemples acceptés pour

l’accep-tation d’un nouvel exemple. Ensuite la fonction diminuer_le_seuil diminue le seuil

choisi pour accepter autant de contre-exemples nécessaires pour accepter un exemple

de plus. Elle fixe donc le seuil sur le contre-exemple suivant le premier exemple. Les

Algorithmes 3 et 4 formalisent ces fonctions d’apprentissage.

Algorithme 3: Fonction choisir_le_seuil de AMTL1.

Entrées : Le classifieur

Entrées :E confiances des exemples e

k

rejetés

Entrées :C confiances des contre-exemples c

k

rejetés

Entrées :T ensemble des N seuils de rejet t

i

Résultat:s seuil choisi

début

pour chaque i= 1..N faire

//Compter le nombre de contre-exemples à accepter

n

i

←card{ψ

i

(c

k

)∈C

i

, ψ

i

(c

k

)≥maxE

i

}

s←argmin

i

(n

i

)

fin

Algorithme 4: Fonction diminuer_le_seuilde AMTL1.

Entrées : Le classifieur

Entrées :E confiances des exemples e

k

rejetés

Entrées :C confiances des contre-exemples c

k

rejetés

Entrées :sseuil choisi

Entrées :T ensemble des N seuils de rejet t

i

Résultat:T

0

nouveaux seuils

début

//Le seuil est fixé sur le premier contre-exemple

//juste après le premier exemple

t

s

←max

k

s

(c

k

)∈C

s

, ψ

s

(c

k

)<maxE

s

}

fin

Ainsi AMTL1 prend en compte la localisation des contre-exemples par rapport aux

exemples et fera plus de rejet là où il y aura une forte proportion de contre-exemples.

Apprentissage des seuils de l’architecture TRF 67

3.2.2.2 AMTL2 sans contre-exemples

L’objectif de AMTL2 est d’obtenir une meilleure description des connaissances du

système par rapport à AMTL1. Pour cela il n’utilise aucune information à propos

des contre-exemples. La fonction choisir_le_seuilchoisit le seuil t

i

qui maximise la

pseudo-densitéd

i

d’exemples activant la fonctionψ

i

. La pseudo-densité d

i

d’exemples

est définie en considérant la variation relative du seuil t

i

pour accepter la moitié des

exemples restant à accepter. SoitM

i

le nombre d’exemples restant à accepter parψ

i

:

M

i

= kE

i

k. Soit V

i

la variation nécessaire de t

i

pour accepter M

i

/2 exemples. On a

alors :

d

i

= M

i

t

i

2V

i

. (3.18)

Utiliser la moitié des exemples restant à accepter permet d’avoir une vision plus globale

de la densité des données sans être perturbé par les effets instables des formes très

éloignées. Ensuite la fonctiondiminuer_le_seuildiminue le seuil choisi pour accepter

un seul exemple de plus. Elle fixe donc le seuil sur l’exemple suivant. Les Algorithmes 5

et 6 formalisent ces fonctions d’apprentissage.

Algorithme 5 : Fonction choisir_le_seuilde AMTL2.

Entrées : Le classifieur

Entrées :E confiances des exemplese

k

rejetés

Entrées :T ensemble des N seuils de rejet t

i

Résultat:sseuil choisi

début

pour chaque i= 1..N faire

//Calcule de la pseudo densité d’exemples à accepter

V

i

←maxE

i

−min{ψ

i

(e

k

)∈E

i

, ψ

i

(e

k

)>median(E

i

)}

d

i

card{Ei}ti

2Vi

s←argmax

i

(d

i

)

fin

Algorithme 6 : Fonction diminuer_le_seuilde AMTL2.

Entrées : Le classifieur

Entrées :E confiances des exemplese

k

rejetés

Entrées :sseuil choisi

Entrées :T ensemble des N seuils de rejet t

i

Résultat:T

0

nouveaux seuils

début

//Le seuil est fixé juste après le premier exemple

t

s

←max

k

s

(e

k

)∈E

s

, ψ

s

(e

k

)<maxE

s

}

fin

d’ap-prendre une option de rejet même lorsque D

A

est vide. C’est la seule option de rejet

présentée dans cette étude qui permet l’apprentissage dans ces conditions. Cette

apti-tude donne à AMTL2 une très bonne capacité de généralisation et un avantage pour le

problème A→B.

3.2.2.3 Exemples d’autres variantes

D’autres variantes des fonctions de AMTL ont été développées mais pas retenues

parce qu’elles présentent moins d’intérêt dans notre contexte. Nous présentons ici

briè-vement quelques exemples qui peuvent être utiles dans d’autres contextes.

Pour la fonctioncas_d_arrêtnous proposons deux variantes en plus de l’utilisation

du F RR(D

E

) :

– utiliser le T RR(D

A

) pour s’assurer de rejeter au moins un minimum de

contre-exemples : utile lorsqu’il y a de fortes contraintes sur le TRR dans l’applicatif ;

– s’arrêter lorsque toutes les classes à reconnaître ont un minimum de taux

d’ac-ceptation : pour être sûr qu’il n’y ait pas de déséquilibre entre les classes, utile

par exemple pour accepter le chiffre ’0’ alors qu’il y a la lettre ’O’ à rejeter.

Pour choisir_le_seuil deux autres possibilités sont proposées en plus de celles

de AMTL1 et AMTL2 :

– choisir le seuil qui nécessite la plus petite variation pour accepter un exemple

de plus. Comme cette variation est la plus petite, peu de contre-exemples seront

acceptés : variante pour AMTL2 mais plus locale ;

– choisir le seuil avec une autre politique déjà présentée mais en imposant que la

variation du seuil choisi augmente l’acceptation de la classe la plus rejetée, ainsi

toutes les classes auront le même taux de rejet : pour être sûr qu’il n’y ait pas de

déséquilibre entre les classes, utile par exemple pour accepter le chiffre ’0’ alors

qu’il y a la lettre ’O’ à rejeter.

3.2.2.4 Remarques sur l’implémentation

AMTL étant un algorithme glouton basé sur les fonctions de confiance quelques

optimisations simples lui permettent d’être assez performant en terme de vitesse

d’ap-prentissage. D’abord l’utilisation des ensembles E et C permet de ne pas avoir à

ré-évaluer les valeurs desψ

i

à chaque boucle. De plus comme il n’y a pas de retour arrière,

les formes acceptées sont retirées des ensembles E et C dans l’étape 5 ce qui permet

d’accélérer le déroulement de l’algorithme. De plus si ces ensembles sont triés, le choix

des seuils et la variations des seuils sont faciles et donc plus rapides à exécuter.

Par contre les heuristiques que nous avons présentées ici ne traitent que les cas

généralement rencontrés pendant le déroulement de l’algorithme. En effet il y a des cas

particuliers qui se présentent nécessitant des heuristiques plus complexes.