Jak obliczyć liczbę funkcji na podstawie rozdzielczości obrazu?

18

Wystarczy pokryte Andrew Ng za Non-liniowy Zakładany Neural Netowrks, i mieliśmy wiele pytanie wybór dla określenia liczby funkcji dla obrazu rozdzielczości 100x100 z grescale intensywności.

Odpowiedź brzmiała 50 milionów, 5 x107

Jednak wcześniej dla obrazu w skali szarości 50 x 50 pikseli. liczba funkcji wynosi 50 x 50 (2500)

Dlaczego miałoby to być x zamiast ?510710,000

Mówi jednak, że zawiera wszystkie wyrażenia kwadratowe ( ) jako cechyxixj

Załóżmy, że uczysz się rozpoznawać samochody na podstawie obrazów 100 × 100 pikseli (skala szarości, a nie RGB). Niech funkcje będą wartościami intensywności pikseli. Jeśli trenujesz regresję logistyczną obejmującą wszystkie wyrażenia kwadratowe ( ) jako funkcje, ile funkcji będziesz mieć?xixj

i we wcześniejszym slajdzie dotyczącym 100 x 100 , że cechy kwadratowe ( x ) = 3 miliony funkcji, ale nadal nie mogę dotknąć połączenia.xixj

Iancovici
źródło

Odpowiedzi:

16

Być może prostszy przypadek wyjaśni sprawę. Powiedzmy, że wybieramy próbkę pikseli 1x2 zamiast 100x100.

Przykładowe piksele z obrazu

+----+----+
| x1 | x2 |
+----+----+

Wyobraź sobie, że podczas planowania naszego zestawu treningowego zauważyliśmy, że nie można go łatwo oddzielić za pomocą modelu liniowego, dlatego zdecydowaliśmy się dodać terminy wielomianowe, aby lepiej dopasować dane.

Powiedzmy, że decydujemy się na budowę naszych wielomianów przez uwzględnienie wszystkich intensywności pikseli i wszystkich możliwych wielokrotności, które można z nich utworzyć.

Ponieważ nasza matryca jest niewielka, wyliczmy je:

x1, x2, x12, x22, x1×x2, x2×x1

Interpretując powyższą sekwencję funkcji można zobaczyć, że istnieje wzorzec. Pierwsze dwa terminy, grupa 1, to cechy składające się tylko z ich intensywności pikseli. Następne dwa terminy, potem grupa 2, to cechy składające się z kwadratu ich intensywności. Ostatnie dwa terminy, grupa 3, są iloczynem wszystkich kombinacji intensywności par (dwóch) pikseli.

grupa 1: x1, x2

grupa 2: x12, x22

grupa 3: x1×x2, x2×x1

Ale czekaj, jest problem. Jeśli spojrzysz na terminy grupy 3 w sekwencji ( i x 2 × x 1 ), zauważysz, że są one równe. Zapamiętaj nasz przykład mieszkania. Wyobraź sobie, że masz dwie funkcje x1 = materiał kwadratowy i x2 = materiał kwadratowy dla tego samego domu ... To nie ma sensu! Ok, więc musimy pozbyć się duplikatu funkcji, powiedzmy arbitralnie x 2 × x 1 . Teraz możemy przepisać listę funkcji trzech grup jako:x1×x2x2×x1x2×x1

grupa 3: x1×x2

Liczymy funkcje we wszystkich trzech grupach i otrzymujemy 5.

Ale to jest przykład zabawki. Pozwala uzyskać ogólną formułę do obliczania liczby funkcji. Wykorzystajmy nasze oryginalne grupy funkcji jako punkt wyjścia.

sizegroup1+sizegroup2+sizegroup3=m×n+m×n+m×n=3×m×n

Ach! Musieliśmy jednak pozbyć się duplikatu produktu z grupy 3.

Tak więc, aby poprawnie policzyć funkcje dla grupy 3, potrzebujemy sposobu na policzenie wszystkich unikalnych produktów parowanych w macierzy. Można to zrobić za pomocą współczynnika dwumianowego, który jest metodą zliczania wszystkich możliwych unikalnych podgrup o wielkości k z równej lub większej grupy o wielkości n. Aby właściwie policzyć cechy w grupie 3, oblicz .C(m×n,2)

Więc nasza ogólna formuła byłaby:

m×n+m×n+C(m×n,2)=2m×n+C(m×n,2)

Użyjmy go do obliczenia liczby funkcji w naszym przykładzie zabawki:

2×1×2+C(1×2,2)=4+1=5

Otóż ​​to!

Anwar A. Ruff
źródło
2
Żałuję, że tego wykładu nie podano w wykładzie!
Ian Walker-Sperber
Zastanawiam się, skąd mamy to wiedzieć na kursie bez wyjaśnienia
Mohammed Noureldin
6

Jeśli używasz wszystkich funkcji liniowych i kwadratowych, całkowita liczba powinna wynosić:

100*100 + 100*100 + C(100*100,2) = 50015000
10000   + 10000   + 49995000     = 50015000
xi         xi^2       xixj
lennon310
źródło
1
Czy możesz to wyjaśnić nieco dalej? mówisz xi + xi ^ 2 + xixi? Czy xi = 100, a xj = 100? dlaczego oba xi i xi ^ 2 mają wartość 100 * 100? Co to jest C (100 * 100,2)?
Iancovici
4
(1) jest w sumie 100 * 100 pikseli, jeśli używasz intensywności jako funkcji, będzie w sumie 100 * 100 funkcji, to jest xi; oraz (ii) możesz również użyć gęstości mocy jako cechy, to znaczy (xi, xi) lub xi. ^ 2, wciąż łącznie 100 * 100; wreszcie (iii) jeśli użyjesz korelacji między dwoma pikselami, będzie w sumie C par pikseli, to jest (xi, xj), C jest kombinacją w matematyce ( mathworld.wolfram.com/Combination.html )
lennon310
Dzięki, ostatnie pytanie brzmi: dlaczego xi = xi ^ 2 w tym kontekście?
Iancovici,
Użyłem xi do przedstawienia pojedynczego piksela, a xi ^ 2 oznacza użycie par tego samego piksela (xi, xi). Liczba pojedynczych pikseli jest taka sama jak par tego samego piksela. Nie ma to nic wspólnego z intensywnością pikseli. Przepraszam za zamieszanie.
lennon310
To samo pytanie, kilka lat później. Czy nie powinniśmy brać pod uwagę również możliwych wartości intensywności (od 0 do 255)?
albus_c,
0

x2)

Opetunde Adepoju
źródło
2
25002/2350
0

@ whuber 50 milionów przychodzi, gdy masz obraz 100 * 100 pikseli. gdzie kwadrat (100 * 100) = 100000000 (10 milionów) i kwadrat (100 * 100) / 2 = 5 milionów. Mam nadzieję, że te odpowiedzi.

Tahir Ahmad
źródło
To jest odpowiedź na komentarz, a nie odpowiedź na to pytanie.
Michael R. Chernick