Une question d'apprentissage paritaire

10

Définissons une classe de fonctions sur un ensemble de bits. Fixons deux distributions p , q qui sont "raisonnablement" différentes l'une de l'autre (si vous le souhaitez, leur distance variationnelle est au moins ϵnp,qϵ , ou quelque chose de similaire).

Maintenant, chaque fonction de cette classe est définie par une collection de k indices S , et est évaluée comme suit: Si la parité des bits sélectionnés est 0, retourne un échantillon aléatoire de p , sinon retourne un échantillon aléatoire de qfkSpq .

Problème : Supposons que l'on me donne un accès Oracle à certains de cette classe, et bien que je connaisse ϵ (ou une autre mesure de distance), je ne connais pas p et q .fϵpq

Y a-t-il des limites sur le nombre d'appels que je dois faire pour PAC-learn ? Vraisemblablement, ma réponse sera en termes de n , k et ϵ .fn,kϵ

Remarque : je n'ai pas spécifié le domaine de sortie. Encore une fois, je suis flexible, mais pour l'instant, disons que et q sont définis sur un domaine fini [ 1 .. M ] . En général, je serais également intéressé par le cas où ils sont définis sur R (par exemple, s'ils sont gaussiens)pq[1..M]R

Suresh Venkat
la source
Je ne suis pas sûr de comprendre le modèle. Que spécifiez-vous dans un appel Oracle? Les exemples sont-ils toujours tirés de la distribution spécifiée par la cible?
Lev Reyzin
1
Dans un appel Oracle, vous appelez f () et il renvoie une valeur.
Suresh Venkat
Donc, selon la fonction cible fF , ou q est toujours utilisé pour générer des exemples? (Je suppose que vous êtes en train d'apprendre la classe F. )pqF
Lev Reyzin
Oui c'est correct. le problème est d'apprendre lequel (ou d'apprendre le bit de parité utilisé)
Suresh Venkat
2
Je ne sais pas comment vous adaptez le modèle PAC à ce modèle. Mais il semble que ce soit suffisant pour pouvoir distinguer de q avec la probabilité 1 - 1 / ( 2 k ) et alors vous pouvez obtenir les valeurs f ( x ) pour kpq11/(2k)f(x)k linéairement indépendant et utiliser l'élimination gaussienne pour trouver f (puisque f est linéaire). distinguer deux gaussiens bien séparés sera facile par exemple. xff
Sasho Nikolov

Réponses:

6

La discussion dans les commentaires ci-dessous indique que j'ai mal compris la question. Ma réponse est basée sur le fait que l'Oracle ne prend aucune entrée et retourne (X,F(X)) ou xXp ,fonction f F . Ce n'est apparemment pas ce qui est demandé.XqFF


Étant donné que la distribution cible est fixe pour chaque cible , la limite supérieure de l'échantillon PAC s'applique (cela découle du fait que la distribution cible pour cette limite peut même dépendre complètement de f ). Par conséquent, m ˜ O ( 1FFF exemples ϵ (VC(F)+log(1/δ)))devraient suffire pour trouver une hypothèse d'erreurϵwp1-δ. Remarque - après avoir vu ces exemples, il faut trouver une hypothèse cohérente à partir deF, et cela peut ne pas être traitable.

mO~(1ϵ(VC(F)+Journal(1/δ)))
ϵ1-δF

D'un autre côté, on peut obtenir une borne inférieure presque identique même pour le cas de , la distribution uniforme, où m Ωp=q=UmΩ(VC(F)) exemples sont encore nécessaires (cela peut être légèrement amélioré) .

La distance variationnelle entre etp , ainsi que k peut jouer un rôle dans le petit écart entre ces bornes, mais j'en doute.qk

Lev Reyzin
la source
Le paramètre d'apprentissage PAC typique a un oracle qui tire un échantillon x de la distribution D et renvoie ( x , f ( x ) ) . Ce n'est pas le paramètre décrit dans la question de Suresh ou le billet de blog qui l'a inspiré: bit.ly/YtwdST . Dans les deux cas, l'oracle est la fonction f , et l'apprenant est libre de soumettre n'importe quel élément de l'ensemble d'instances (chaînes de bits de longueur n(F,)x(X,F(X))Fn). Lev, votre réponse suppose-t-elle un oracle du premier type ou du deuxième type? S'il s'agit du deuxième type, parlons-nous encore de PAC-learning?
Keki Burjorjee
1
Je vois. Dans PAC, le "oracle" est généralement considéré comme un bouton rendement x ~ D . L'Oracle que vous décrivez s'appelle une "requête d'appartenance" à f . Ma réponse ne s'applique qu'à l'ancien. Si vous ne faites que des demandes d'adhésion, comment trouvez-vous des informations sur p ou q en utilisant le framework Suresh? Disons p = q pour plus de simplicité. (X,F(X))XFpqp=q
Lev Reyzin
Merci pour cette précision. Ainsi, dans le cas décrit par Suresh, l'oracle "requête d'adhésion" fonctionne comme suit (je suppose que vous avez mis cette entité entre guillemets car l'oracle peut renvoyer une valeur réelle, pas seulement un booléen is-a-member / not-a- réponse du membre): si la parité des attributs effectifs est 1, le résultat renvoyé est tiré de la distribution . Sinon, le résultat est tiré de la distribution q . Il y a une ride supplémentaire. L'oracle se souvient de toutes ses réponses précédentes et les renvoie s'il est interrogé avec la même entrée. En d'autres termes, il est déterministe. pq
Keki Burjorjee
1
Je ne comprends pas. Si l'oracle est simplement une fonction et que vous l'interrogez en lui donnant x , ne renvoie- t- il pas simplement f ( x ) ? Comment p ou q entrent-ils en jeu si l'apprenant génère x lui-même? Je pense que je n'arrive pas à comprendre ce point de base depuis le FXF(X)pqX
début
Pour et q = N ( - 0,25 , 1 ) , le pseudocode de l'oracle pour le problème avec la "ride" est donné au bas de ce commentaire reddit: bit.ly/XvVMC4 ( ). Je ne peux pas insérer le code car SE n'autorise pas les retours à la ligne dans les commentaires. Pour obtenir la version "sans rides" du problème, supprimez simplement la ligne . p=N(+0,25,1)q=N(-0,25,1)def fitness() ...random_number_generator.set_seed(x)
Keki Burjorjee