Wstęp do przetwarzania języka naturalnego Wykład 12

Transkrypt

Wstęp do przetwarzania języka naturalnego Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Wstęp do przetwarzania języka naturalnego
Wykład 12
Zaawansowane funkcje jądra i parametryzowanie
SVM
Wojciech Czarnecki
17 stycznia 2014
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Section 1
Przypomnienie
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
SVM - problem optymalizacyjny
min
w ,b
m
X
1
kw k2 + C
ξi
2
i=1
s.t. y (i) w T x (i) + b ­ 1 − ξi , i ∈ {1, 2, ..., m}
ξi ­ 0, i ∈ {1, 2, ..., m}
max
C ­αi ­0
m
X
i=1
αi −
m
1 X
y (i) y (j) αi αj K (x (i) , x (j) )
2 i,j=1
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Section 2
Parametryzowanie SVM
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
C
m
X
1
2
min kw k + C
ξi
w ,b 2
i=1
Parametr C :
Nazywane: Cost, Complexity.
Steruje proporcjami pomiędzy dobrą klasyfikacją (małe ξi ) a
dużym marginesem (małe kw k).
W problemie dualnym jest ograniczeniem na wielkość
mnożników Lagrange’a (wag przydzielonych przykładom).
Wpływa również (nie bezpośrednio) na liczbę wektorów
nośnych.
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
C
Co jeśli jednym przykładom (dokumentom) ufamy bardziej niż
innym?
Co jeśli obiektów jednej klasy jest o wiele więcej niż drugiej
(jak np. w przypadku tagowania)?
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
C
Co jeśli jednym przykładom (dokumentom) ufamy bardziej niż
innym?
Co jeśli obiektów jednej klasy jest o wiele więcej niż drugiej
(jak np. w przypadku tagowania)?
Możemy wyrazić to przy pomocy modyfikacji parametru C
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
C
Załóżmy, że przykładowy i’emu ufamy na ci ∈ (0, 1]
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
C
Załóżmy, że przykładowy i’emu ufamy na ci ∈ (0, 1]
min
w ,b
m
X
1
kw k2 + C
ξi
2
i=1
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
C
Załóżmy, że przykładowy i’emu ufamy na ci ∈ (0, 1]
min
w ,b
= min
w ,b
m
X
1
kw k2 + C
ξi
2
i=1
m
X
1
kw k2 + C
1 · ξi
2
i=1
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
C
Załóżmy, że przykładowy i’emu ufamy na ci ∈ (0, 1]
min
w ,b
= min
w ,b
Połóżmy więc:
min
w ,b
m
X
1
kw k2 + C
ξi
2
i=1
m
X
1
kw k2 + C
1 · ξi
2
i=1
m
X
1
kw k2 + C
ci · ξi
2
i=1
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
C
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
SVM - problem optymalizacyjny
min
w ,b
m
X
1
kw k2 + C
ci · ξi
2
i=1
s.t. y (i) w T x (i) + b ­ 1 − ξi , i ∈ {1, 2, ..., m}
ξi ­ 0, i ∈ {1, 2, ..., m}
max
C ·ci ­αi ­0
m
X
i=1
αi −
m
1 X
y (i) y (j) αi αj K (x (i) , x (j) )
2 i,j=1
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Uwaga praktyczna
W scikit-learn, wiele klasyfikatorów, w tym SVM (SVC) ma w
metodzie .fit opcjonalny parametr sample weight.
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Uwaga praktyczna
W scikit-learn, wiele klasyfikatorów, w tym SVM (SVC) ma w
metodzie .fit opcjonalny parametr sample weight.
X = [ [0],[1],[2],[3],[4],[5] ]
y = [ 0,0,0,1,0,1 ]
svm = SVC( kernel=’linear’, C=100 )
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Uwaga praktyczna
W scikit-learn, wiele klasyfikatorów, w tym SVM (SVC) ma w
metodzie .fit opcjonalny parametr sample weight.
X = [ [0],[1],[2],[3],[4],[5] ]
y = [ 0,0,0,1,0,1 ]
svm = SVC( kernel=’linear’, C=100 )
svm.fit(X,y)
print svm.predict(X)
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Uwaga praktyczna
W scikit-learn, wiele klasyfikatorów, w tym SVM (SVC) ma w
metodzie .fit opcjonalny parametr sample weight.
X = [ [0],[1],[2],[3],[4],[5] ]
y = [ 0,0,0,1,0,1 ]
svm = SVC( kernel=’linear’, C=100 )
svm.fit(X,y)
print svm.predict(X)
array([0, 0, 0, 0, 1, 1]) #(67% accuracy)
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Uwaga praktyczna
W scikit-learn, wiele klasyfikatorów, w tym SVM (SVC) ma w
metodzie .fit opcjonalny parametr sample weight.
X = [ [0],[1],[2],[3],[4],[5] ]
y = [ 0,0,0,1,0,1 ]
svm = SVC( kernel=’linear’, C=100 )
svm.fit(X,y)
print svm.predict(X)
array([0, 0, 0, 0, 1, 1]) #(67% accuracy)
svm1.fit(X,y,sample weight=[1,1,1,0.1,1,1])
print svm.predict(X)
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Uwaga praktyczna
W scikit-learn, wiele klasyfikatorów, w tym SVM (SVC) ma w
metodzie .fit opcjonalny parametr sample weight.
X = [ [0],[1],[2],[3],[4],[5] ]
y = [ 0,0,0,1,0,1 ]
svm = SVC( kernel=’linear’, C=100 )
svm.fit(X,y)
print svm.predict(X)
array([0, 0, 0, 0, 1, 1]) #(67% accuracy)
svm1.fit(X,y,sample weight=[1,1,1,0.1,1,1])
print svm.predict(X)
array([0, 0, 0, 0, 0, 1]) #(83% accuracy)
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Niezrównoważone klasy
W NLP bardzo często jedna klasa ma o wiele więcej
przykładów niż inna, zwłaszcza w problemach tagowania
SVM w swojej podstawowej formule ma ”prawo” zignorować
mniejszą klasę, funkcja, którą optymalizuje jest bowiem tak
samo karana za złą klasyfikację elementów dużej i małej klasy
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Niezrównoważone klasy
W NLP bardzo często jedna klasa ma o wiele więcej
przykładów niż inna, zwłaszcza w problemach tagowania
SVM w swojej podstawowej formule ma ”prawo” zignorować
mniejszą klasę, funkcja, którą optymalizuje jest bowiem tak
samo karana za złą klasyfikację elementów dużej i małej klasy
Ale umiemy ważyć przykłady!
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Niezrównoważone klasy
Najprostsza heurystyka
ci =
mina #{j : yj = a}
#{j : yj = yi }
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Niezrównoważone klasy
Najprostsza heurystyka
ci =
mina #{j : yj = a}
#{j : yj = yi }
Innymi słowy:
Waga przykładu jest odwrotnie proporcjonalna do liczności klasy z
której on pochodzi
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Niezrównoważone klasy
Najprostsza heurystyka
ci =
mina #{j : yj = a}
#{j : yj = yi }
Innymi słowy:
Waga przykładu jest odwrotnie proporcjonalna do liczności klasy z
której on pochodzi
Przykłady z małej klasy będą ”ważne”
Przykłady z dużej klasy będą ”mało istotne”
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Niezrównoważone klasy
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
Section 3
Kernele
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
Przypomnienie
Definition
K (x, y ) jest kernelem (jądrem) wtw. istnieje przestrzeń wektorowa
w której K jest iloczynem skalarnym
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
Ale po co?
Po co stosujemy kernele
Żeby SVM mógł znaleźć nieliniową granicę decyzji
Żeby móc przeprowadzić klasyfikację w złożonej przestrzeni
bez jawnego przenoszenia się do niej
Żeby móc klasyfikować obiekty nie będące wektorami
liczbowymi w sposób bezpośredni
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
Ale po co?
Stosujemy kernele żeby móc klasyfikować obiekty nie będące
wektorami liczbowymi w sposób bezpośredni
Jeśli mamy jakiś zbiór uczący (xi , yi ), taki, że yi ∈ {−1, +1},
natomiast x − I ∈ X , gdzie X może być np. zbiorem słów,
dokumentów, grafów, zdjęć, papug, ...
Możemy zastosować SVM (jak i dowolną inną metodę
jądrową (kernel method)) jeśli tylko potrafimy wskazać
funkcję K : X × X → R, taką, że jest ona kernelem wg.
podanej definicji.
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
SVM z kernelem
W szczególności SVM wymaga jedynie znajomości wartości funkcji
jądra zarówno do uczenia, jak i do klasyfikacji, nie musi w ogóle
wiedzieć na czym pracuje, czym są obiekty klasyfikowane.
Do uczenia wystarczy podać mu tzw. macierz jądra (macierz
Grama):
∀i,j Kij = K (xi , xj )
A do klasyfikowania punktu x potrzebny jest wektor pokazujący
wartość funkcji jądra pomiędzy x i każdym z wektorów nośnych
(w praktyce podaje się dla każdego elementu zbioru uczącego a
biblioteka ignoruje wartości nie będące wektorami nośnymi):
∀i K (x)i = K (xi , x)
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
Subsection 1
Podstawowe jądra w NLP
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
Definition (Word Kernel)
Niech V - ustalony słownik, wtedy
KWK (di , dj ) = #{w ∈ V : w ∈ di ∧ w ∈ dj }
Dlaczego to jest funkcja jądra?
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
Definition (Word Kernel)
Niech V - ustalony słownik, wtedy
KWK (di , dj ) = #{w ∈ V : w ∈ di ∧ w ∈ dj }
Dlaczego to jest funkcja jądra? Ponieważ jeśli weźmiemy funkcję
φ(d) która zwraca reprezentację typu Set of Words danego
dokumentu d wg. słownika V , to KWK (di , dj ) = hφ(di ), φ(dj )i.
Czyli istnieje przestrzeń wektorowa, dla której jest to iloczyn
skalarny.
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
Definition (n-gram Kernel)
Niech Vn - ustalony słownik n-gramów, wtedy
Kn−gram (di , dj ) = #{w ∈ Vn : w ∈ di ∧ w ∈ dj }
Dlaczego to jest funkcja jądra?
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
Definition (Latent Semantic Kernel)
Niech d 0 będzie reprezentacją w postaci Bag of Words (np. tf-idf)
dokumentu d oraz niech P - macierz przejścia z przestrzeni
dokumentów (w postaci bag of words) do przestrzeni konceptów
LSA, wtedy
KLSA (di , dj ) = cos(P T d10 , P T d20 )
Dlaczego to jest funkcja jądra?
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
Definition (Latent Semantic Kernel)
Niech d 0 będzie reprezentacją w postaci Bag of Words (np. tf-idf)
dokumentu d oraz niech P - macierz przejścia z przestrzeni
dokumentów (w postaci bag of words) do przestrzeni konceptów
LSA, wtedy
KLSA (di , dj ) = cos(P T d10 , P T d20 )
Dlaczego to jest funkcja jądra?
Bo kosinus zadaje iloczyn skalarny:
hP T di0 ,P T dj0 i
,
|P T di0 ||P T dj0 |
cos(P T d10 , P T d20 )
cos(P T d10 , P T d20 ) =
czyli biorąc φ(d) =
KLSA (di , dj ) =
= hφ(d1 ), φ(d2 )i.
Wojciech Czarnecki
WPJN - Wykład 12
PT d0
,
|P T d 0 |
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
Subsection 2
Zaawansowane jądra w NLP
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
String Subsequence Kernel
Problem: chcemy mieć funkcję jądra określającą jak słowo wi jest
podobne do słowa wj , np. jak podobne jest abcd do abdde
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
String Subsequence Kernel
Problem: chcemy mieć funkcję jądra określającą jak słowo wi jest
podobne do słowa wj , np. jak podobne jest abcd do abdde
Przydatne przy małych obiektów w NLP (słów, zdań)
Przydatne w bioinformatyce - do analizy sekwencji
genetycznych (szerzej o problemie, choć w innym ujęciu:
Modele dyskretne w bioinformatyce, dr Roman oraz
Bioinformatyka, dr Śmietański)
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
String Subsequence Kernel
Problem: chcemy mieć funkcję jądra określającą jak słowo wi jest
podobne do słowa wj , np. jak podobne jest abcd do abdde
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
String Subsequence Kernel
Problem: chcemy mieć funkcję jądra określającą jak słowo wi jest
podobne do słowa wj , np. jak podobne jest abcd do abdde
Idea:
Nie chcemy jawnie liczyć jakiejś reprezentacji wektorowej
Podobieństwo określimy jako liczbę takich samych podsłów w
obu słowach
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
String Subsequence Kernel
Problem: chcemy mieć funkcję jądra określającą jak słowo wi jest
podobne do słowa wj , np. jak podobne jest abcd do abdde
Idea:
Nie chcemy jawnie liczyć jakiejś reprezentacji wektorowej
Podobieństwo określimy jako liczbę takich samych podsłów w
obu słowach
Cechy:
Przestrzeń cech (generowana przez φ) stanowią wszystkie
podsłowa o określonej maksymalnej długości
Podsłowa nie muszą być spójne, bierzemy pod uwagę ”luki”
Ważymy nieciągłe podsłowa używając współczynnika
”rozkładu” (decay factor) λ
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
String Subsequence Kernel
Weźmy słowa
sectionlization
segmentation
I podsłowo set
sectionlization
segmentation
Długość najkrótszego spójnego podsłowa ”sectionlization”
zawierającego ”set” wynosi 4, a dla ”segmentation” 7. Chcemy
”nagrodzić” słowa za to podobieństwo. Zwykłe wymnożenie 4 i 6
to za mało, bo im dłuższe jest to podsłowo, tym mniej powinniśmy
nagradzać (a nie więcej).
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
String Subsequence Kernel
Prosty przykład:
fog
fob
Niech λ ∈ (0, 1) φ(fog )
φ(fob)
fo
λ2
λ2
fg
λ3
0
og
λ2
0
fb
0
λ3
ob
0
λ2
KSS (fog , fob) = hφ(fog ), φ(fob)i = λ4 + 0 + 0 + 0 + 0 = λ4
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
String Subsequence Kernel
Ale jak to liczyć? Zdefiniujmy sobie funkcję φu (w ), taką, która
zwraca sumaryczną długość (a w zasadzie sumę lambd do
odpowiedniej potęgi) najkrótszych podsłów w zawierających u, np.
set = segmentation[1, 2, 7]
set = segmentation[1, 2, 9]
set = segmentation[1, 5, 7]
set = segmentation[1, 5, 9]
i1 = [1, 2, 7], i2 = [1, 2, 9]
i3 = [1, 5, 7], i4 = [1, 5, 9]
φset (segmentation) =
X
λl(ia ) = λ7 + λ9 + λ7 + λ9
a
φu (w ) =
X
λl(i)
i:u=s[i]
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
String Subsequence Kernel
Ustalmy, że interesują nas podsłowa długości n wg. alfebetu Σ:
K̄SS,n (s, t) =
X
hφu (s), φu (t)i =
u∈Σn
=
X
X
λl(i)
u∈Σn i:u=s[i]
X
X
X
λl(i)+l(j)
u∈Σn i:u=s[i] j:u=t[j]
=
X
X
u∈Σn
λin +jn −i1 −j1 +2
X
i:u=s[i] j:u=t[j]
gdzie
φu (w ) =
X
λl(i)
i:u=s[i]
Wojciech Czarnecki
WPJN - Wykład 12
X
j:u=t[j]
λl(j)
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
String Subsequence Kernel
Ustalmy, że interesują nas podsłowa długości n wg. alfebetu Σ:
K̄SS,n (s, t) =
X
X
X
λin +jn −i1 −j1 +2
u∈Σn i:u=s[i] j:u=t[j]
Naiwne policzenie tego jądra ma złożoność O(|Σ|n ) (zarówno
czasową jak i pamięciową).
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
String Subsequence Kernel
Naiwne policzenie tego jądra ma złożoność O(|Σ|n ) (zarówno
czasową jak i pamięciową).
Idea: policzmy to rekurencyjnie, używając funkcji pomocniczej
0
K̄SS,i
(s, t) =
X
X
X
λ|s|+|t|−i1 −j1 +2
u∈Σn i:u=s[i] j:u=t[j]
0
dla i < n i policzmy K̄SS,n
oraz K̄SS,n
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
String Subsequence Kernel
0
K̄SS,0
(s, t) = 1
0
K̄SS,i
(s, t) = K̄SS,i (s, t) = 0, if min(|s|, |t|) < i
0
0
K̄SS,i
(sx, t) = λK̄SS,i
(s, t) +
X
0
K̄SS,i−1
(s, t[1 : j − 1])λ|t|−j+2
j:tj =x
K̄SS,n (sx, t) = K̄SS,n (s, t) +
X
0
K̄SS,n−1
(s, t[1 : j − 1])λ2
j:tj =x
i ostatecznie (znormalizowana wartość)
KSS,n (s, t) =
K̄SS,n (s, t)
K̄SS,n (s, s)K̄SS,n (t, t)
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
String Subsequence Kernel
KSS,n (s, t)
Liczy podobieństwo pomiędzy słowami zliczając wspólne
podsłowa długości n (uwzględniając ”dziury”)
Naiwna złożoność O(|Σ|n )
Złożoność przy programowaniu dynamicznym O(n|s||t|)
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
Porównanie
Oznaczenia:
Word Kernel - WK
N-Gram Kernel - NGK
String Subsequence Kernel - SSK
Problem: klasyfikacja dokumentów ze zbioru Reuters, wykrywanie
jednej z kategorii (earn)
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
Porównanie
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
Porównanie
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
A co z Wordnetem?
Istnieją conajmniej dwa podstawowe wykorzystania WordNetu do
konstrukcji funkcji jądra:
Można użyć go do skonstruowania przestrzeni semantycznej
dla LSA (macierz P).
Można zbudować na jego podstawie jądro Fishera.
Wojciech Czarnecki
WPJN - Wykład 12
Przypomnienie
Parametryzowanie SVM
Kernele
Podstawowe jądra w NLP
Zaawansowane jądra w NLP
Zagadka (+1 pkt)
Czy poniższa funkcja analizująca dokumenty jest funkcją jądra?
Odpowiedź uzasadnij.
K? (di , dj ) = #{w : w ∈ di ∧ w ∈
/ dj } + #{w : w ∈ dj ∧ w ∈
/ di }
Przypomnienie: iloczyn skalarny to odwzorowanie
h·, ·i : X × X → R, takie że:
1
hau + bv , w i = ahu, w i + bhv , w i
2
hu, v i = hv , ui
3
∀u∈X (hu, ui ­ 0) ∧ (hu, ui = 0 ⇐⇒ u = 0)
Wojciech Czarnecki
WPJN - Wykład 12