Jaka jest rola błędu w sieciach neuronowych?

805

Jestem świadomy spadku gradientu i algorytmu propagacji wstecznej. Nie rozumiem: kiedy ważne jest stosowanie uprzedzeń i jak z niego korzystać?

Na przykład, kiedy mapuję ANDfunkcję, kiedy używam 2 wejść i 1 wyjścia, nie podaje ona prawidłowych wag, jednak gdy używam 3 wejść (z których 1 jest odchylenie), daje prawidłowe wagi.

Karan
źródło
17
Sprawdź to pytanie: stackoverflow.com/questions/1697243/help-with-perceptron, aby zobaczyć przykład rzeczywistego problemu, w którym OP nie używał terminu „stronniczość”
Amro
6
A tutaj jest ładny przykład w Pythonie, dlaczego stronniczość jest ważna :) stackoverflow.com/questions/38248657/…
minerały
3
oto świetny artykuł pełen matematyki backprop, obejmujący również aktualizacje odchyleń
Andy

Odpowiedzi:

1358

Myślę, że uprzedzenia są prawie zawsze pomocne. W efekcie wartość odchylenia pozwala przesunąć funkcję aktywacji w lewo lub w prawo , co może mieć kluczowe znaczenie dla pomyślnego uczenia się.

Może pomóc spojrzeć na prosty przykład. Rozważ tę 1-wejściową, 1-wyjściową sieć, która nie ma stronniczości:

prosta sieć

Wydajność sieci jest obliczana przez pomnożenie wejścia (x) przez wagę (w 0 ) i przekazanie wyniku przez jakąś funkcję aktywacyjną (np. Funkcję sigmoidalną).

Oto funkcja obliczana przez tę sieć dla różnych wartości w 0 :

wyjście sieciowe, przy różnych wagach w0

Zmiana ciężaru w 0 zasadniczo zmienia „stromość” sigmoidu. Jest to przydatne, ale co zrobić, jeśli chcesz, aby sieć wyświetlała 0, gdy x wynosi 2? Po prostu zmiana nachylenia sigmoidu tak naprawdę nie zadziała - chcesz przesunąć całą krzywą w prawo .

Właśnie na to pozwala ci stronniczość. Jeśli dodamy uprzedzenie do tej sieci, tak:

prosta sieć z nastawieniem

... wtedy wyjście sieci staje się sig (w 0 * x + w 1 * 1.0). Oto, jak wygląda wyjście sieci dla różnych wartości w 1 :

wyjście sieciowe, przy różnych wagach w1

Posiadanie wagi -5 dla w 1 przesuwa krzywą w prawo, co pozwala nam mieć sieć, która wyprowadza 0, gdy x wynosi 2.

Nate Kohl
źródło
6
@ user1621769: Najprostszym podejściem jest sieć z pojedynczym węzłem polaryzacji, który łączy się ze wszystkimi nie-wejściowymi węzłami w sieci.
Nate Kohl
65
@ user1621769: Główną funkcją odchylenia jest dostarczenie każdemu węzłu stałej wartości możliwej do trenowania (oprócz normalnych danych wejściowych, które otrzymuje węzeł). Możesz to osiągnąć za pomocą pojedynczego węzła polaryzacji z połączeniami z N węzłami lub N węzłów polaryzacji, każdy z jednym połączeniem; wynik powinien być taki sam.
Nate Kohl
4
@ user1621769: Być może nie bierzesz pod uwagę wag? Każde połączenie ma możliwą do wyuczenia wagę, a węzeł polaryzacji ma stałą wartość.
Dimpl,
4
@ user132458, jeśli algorytm szkoleniowy stwierdzi, że nie potrzebujesz przesunięcia obciążenia, wagi obciążenia prawdopodobnie zbliżą się do 0. W ten sposób wyeliminujesz sygnał błędu.
jorgenkg,
8
@Gabriel: Powinno być jedno nastawienie na ukryty neuron.
341

Żeby dodać moje dwa centy.

Prostszy sposób na zrozumienie, na czym polega odchylenie: jest on w pewien sposób podobny do stałej b funkcji liniowej

y = ax + b

Pozwala przesuwać linię w górę i w dół, aby lepiej dopasować prognozę do danych. Bez b linia zawsze przechodzi przez początek (0, 0) i możesz uzyskać gorsze dopasowanie.

zfy
źródło
5
niezła anologia, ale jeśli ustawimy odchylenie na 1, to dlaczego to teraz wpływa na dopasowanie teraz, gdy każda linia przejdzie teraz przez (0,1) zamiast (0,0)? Ponieważ wszystkie linie są teraz stronnicze do y = 1 zamiast y = 0 dlaczego to jest pomocne?
błękitne niebo
36
@ blue-sky Ponieważ mnożąc obciążenie przez wagę, możesz przesunąć go o dowolną kwotę.
Carcigenicate
3
Czy prawidłowe jest nazywanie b „współczynnikiem”? Czy „współczynnik” nie jest liczbą używaną do pomnożenia zmiennej?
Ben
7
b nie jest „współczynnikiem”, jest raczej przechwytywaniem.
Espanta
22
b jest współczynnikiem $ x ^ 0 $. a to współczynnik $ x ^ 1 $
64

Ten wątek naprawdę pomógł mi opracować własny projekt. Oto kilka dalszych ilustracji pokazujących wynik prostej 2-warstwowej sieci neuronowej z przewijaniem do przodu i bez jednostek odchylenia na problem regresji dwóch zmiennych. Wagi są inicjowane losowo i używana jest standardowa aktywacja ReLU. Jak doszły do ​​mnie odpowiedzi, bez uprzedzeń sieć ReLU nie jest w stanie odejść od zera przy (0,0).

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

JP K.
źródło
1
Czy możesz dodać funkcję drukowaną za pomocą etykiet osi?
Komal-SkyNET
46

Dwa różne rodzaje parametrów można regulować podczas treningu ANN, wagi i wartości funkcji aktywacyjnych. Jest to niepraktyczne i byłoby łatwiej, gdyby dopasować tylko jeden z parametrów. Aby poradzić sobie z tym problemem, wynaleziono neuron uprzedzający. Neuron polaryzacji leży w jednej warstwie, jest połączony ze wszystkimi neuronami w następnej warstwie, ale żaden z poprzedniej warstwy i zawsze emituje 1. Ponieważ neuron polaryzacji emituje 1, masy połączone z neuronem polaryzacji są dodawane bezpośrednio do połączona suma pozostałych wag (równanie 2.1), podobnie jak wartość t w funkcjach aktywacyjnych. 1

Powodem, dla którego jest to niepraktyczne, jest to, że jednocześnie dostosowujesz wagę i wartość, więc każda zmiana wagi może zneutralizować zmianę wartości, która była użyteczna dla poprzedniej instancji danych ... dodanie neuronu polaryzacji bez zmiany wartości pozwala aby kontrolować zachowanie warstwy.

Ponadto odchylenie pozwala na użycie jednej sieci neuronowej do reprezentowania podobnych przypadków. Rozważ funkcję logiczną AND reprezentowaną przez następującą sieć neuronową:

ANN
(źródło: aihorizon.com )

  • w0 odpowiada b .
  • w1 odpowiada x1 .
  • w2 odpowiada x2 .

Pojedynczy perceptron może służyć do reprezentowania wielu funkcji boolowskich.

Na przykład, jeśli przyjmiemy wartości logiczne 1 (prawda) i -1 (fałsz), to jednym ze sposobów użycia dwu wejściowego perceptronu do implementacji funkcji AND jest ustawienie wag w0 = -3, a w1 = w2 = .5. Ten perceptron może być zamiast tego reprezentowany w funkcji OR przez zmianę progu na w0 = -3. W rzeczywistości AND i OR mogą być postrzegane jako specjalne przypadki funkcji m-n: to znaczy funkcji, w których co najmniej m z n danych wejściowych do perceptronu musi być prawdziwe. Funkcja OR odpowiada m = 1, a funkcja AND m = n. Każda funkcja m-of-n jest łatwo reprezentowana za pomocą perceptronu poprzez ustawienie wszystkich wag wejściowych na tę samą wartość (np. 0,5), a następnie odpowiednie ustawienie progu w0.

Perceptrony mogą reprezentować wszystkie pierwotne funkcje boolowskie AND, OR, NAND (1 AND) i NOR (1 OR). Uczenie maszynowe - Tom Mitchell)

Próg to odchylenie, a w0 to ciężar związany z neuronem odchylenia / progu.

Kiril
źródło
8
Potraktuj to jako ogólną zasadę: dodaj stronniczość! Sieci neuronowe są do pewnego stopnia „nieprzewidywalne”, więc jeśli dodasz neuron stronniczości, prawdopodobieństwo znalezienia rozwiązań będzie szybsze niż wtedy, gdy nie użyjesz stronniczości. Oczywiście nie jest to matematycznie udowodnione, ale zaobserwowałem to w literaturze i w powszechnym użyciu.
Kiril
25

Odchylenie nie jest NNterminem, to ogólny termin algebry do rozważenia.

Y = M*X + C (równanie linii prostej)

Teraz, jeśli C(Bias) = 0tak, linia zawsze przechodzi przez początek, tj. (0,0)I zależy tylko od jednego parametru, tj. Od Mnachylenia, więc mamy mniej rzeczy do zabawy.

C, który jest stronniczy, przyjmuje dowolną liczbę i ma działanie, aby przesunąć wykres, a zatem może reprezentować bardziej złożone sytuacje.

W regresji logistycznej oczekiwana wartość celu jest przekształcana przez funkcję link, aby ograniczyć jego wartość do przedziału jednostkowego. W ten sposób prognozy modelu mogą być postrzegane jako podstawowe prawdopodobieństwa wyniku, jak pokazano: Funkcja sigmoidalna na Wikipedii

Jest to ostatnia warstwa aktywacyjna na mapie NN, która włącza i wyłącza neuron. W tym przypadku ważną rolę odgrywa również stronniczość i elastycznie przesuwa krzywą, aby pomóc nam zmapować model.

Pradi KL
źródło
1
więc jakie problemy w szkoleniu / uczeniu się sieci neuronowej występują, gdy linia zawsze przechodzi przez punkt początkowy, gdy uprzedzenie nie jest używane?
Daniyal Javaid
@DaniyalJavaid To może być możliwość, a nie problem
Pradi KL
23

Warstwa w sieci neuronowej bez uprzedzeń to nic innego jak zwielokrotnienie wektora wejściowego z macierzą. (Wektor wyjściowy może zostać przepuszczony przez funkcję sigmoidalną w celu normalizacji i późniejszego zastosowania w wielowarstwowym ANN, ale to nie jest ważne).

Oznacza to, że używasz funkcji liniowej, a zatem wejście wszystkich zer zawsze będzie mapowane na wyjście wszystkich zer. Może to być rozsądne rozwiązanie dla niektórych systemów, ale ogólnie jest zbyt restrykcyjne.

Używając odchylenia, skutecznie dodajesz inny wymiar do przestrzeni wejściowej, która zawsze przyjmuje wartość jeden, więc unikasz wektora wejściowego wszystkich zer. Dzięki temu nie tracisz ogólności, ponieważ twoja wyuczona macierz masy nie musi być zaskakująca, więc nadal można odwzorować na wszystkie wcześniej możliwe wartości.

2d ANN:

W przypadku ANN odwzorowującej dwa wymiary na jeden wymiar, np. Przy odtwarzaniu funkcji AND lub OR (lub XOR), możesz myśleć o sieci neuronowej, wykonując następujące czynności:

Na płaszczyźnie 2d zaznacz wszystkie pozycje wektorów wejściowych. Tak więc, dla wartości boolowskich, chciałbyś zaznaczyć (-1, -1), (1,1), (-1,1), (1, -1). Teraz twoja ANN rysuje linię prostą na płaszczyźnie 2d, oddzielając dodatni wynik od ujemnych wartości wyjściowych.

Bez uprzedzeń ta prosta linia musi przejść przez zero, podczas gdy dzięki uprzedzeniom możesz ją umieścić w dowolnym miejscu. Tak więc zobaczysz, że bez uprzedzeń masz problem z funkcją AND, ponieważ nie możesz umieścić zarówno (1, -1), jak i (-1,1) na stronie negatywnej. (Nie mogą znajdować się w linii.) Problem jest taki sam dla funkcji OR. Jednak z nastawieniem łatwo jest wyznaczyć granicę.

Zauważ, że funkcja XOR w tej sytuacji nie może zostać rozwiązana nawet przy odchyleniu.

Debilski
źródło
4
Jeśli używasz funkcji przenoszenia sigmoidalnego, wprowadzasz nieliniowość. Stwierdzenie, że jest to funkcja liniowa, jest błędne, a także w pewien sposób niebezpieczne, ponieważ nieliniowość sigmoidu jest kluczem do rozwiązania kilku problemów. Również sigmoid (0) = 0,5, i nie ma x, dla którego sigmoid (x) = 0.
bayer
2
Tak, ale wynosi 0,5 dla dowolnego wejścia 0 bez odchylenia, niezależnie od tego, jak wcześniej wygląda funkcja liniowa. I o to chodzi. Zwykle nie trenujesz swojej funkcji sigmoidalnej, po prostu z nią żyjesz. Problem liniowości występuje na długo przed funkcją sigmoidalną.
Debilski
Rozumiem twój punkt widzenia: warstwa nie jest w stanie nauczyć się innego wyjścia dla 0 niż ta, z którą zaczął. To prawda i ważne. Jednak moim zdaniem „argument funkcji liniowej” po prostu nie ma zastosowania. Nawet przy odchyleniu funkcja jest nadal liniowa. Właściwość liniowości wprowadza tutaj w błąd. (Tak, może mnie to podśmiewa).
bayer
Powiedziałbym, że z uprzedzeniem jest to afiniczne . ( en.wikipedia.org/wiki/Affine_transformation#Representation )
Debilski
Tak, masz rację. Dzięki za zwrócenie mi uwagi na tę różnicę. (Dlaczego więc nazywamy to regresją liniową, tak przy okazji, chociaż jest afiniczna?)
Bayer
20

Korzystając z ANN, rzadko znasz wewnętrzne elementy systemów, których chcesz się nauczyć. Niektórych rzeczy nie można się nauczyć bez uprzedzeń. Np. Spójrz na następujące dane: (0, 1), (1, 1), (2, 1), w zasadzie funkcja odwzorowująca dowolny x na 1.

Jeśli masz sieć jednowarstwową (lub mapowanie liniowe), nie możesz znaleźć rozwiązania. Jeśli jednak masz uprzedzenia, jest to banalne!

W idealnym ustawieniu odchylenie może również odwzorować wszystkie punkty na średnią punktów docelowych i pozwolić ukrytym neuronom modelować różnice od tego punktu.

Bayer
źródło
18

Modyfikacja samych WAG neuronów służy jedynie do manipulowania kształtem / krzywizną funkcji przenoszenia, a nie jej równowagą / punktem przecięcia zera .

Wprowadzenie neuronów polaryzacji umożliwia przesunięcie krzywej funkcji przenoszenia w poziomie (w lewo / w prawo) wzdłuż osi wejściowej, pozostawiając niezmieniony kształt / krzywiznę. Umożliwi to sieci generowanie dowolnych wyników innych niż domyślne, a zatem można dostosować / przesunąć mapowanie danych wejściowych do wyjściowych w celu dostosowania do konkretnych potrzeb.

Zobacz tutaj objaśnienia graficzne: http://www.heatonresearch.com/wiki/Bias

Oke Uwechue
źródło
16

Żeby dodać do tego wszystkiego coś, czego bardzo brakuje, a czego reszta najprawdopodobniej nie wiedziała.

Jeśli pracujesz z obrazami, możesz w ogóle nie chcieć używać uprzedzeń. Teoretycznie w ten sposób twoja sieć będzie bardziej niezależna od wielkości danych, jak w przypadku, czy obraz jest ciemny, czy jasny i żywy. A sieć nauczy się wykonywać swoją pracę poprzez badanie względności wewnątrz danych. Wykorzystuje to wiele nowoczesnych sieci neuronowych.

W przypadku innych danych tendencyjne mogą być krytyczne. To zależy od rodzaju danych, z którymi masz do czynienia. Jeśli twoja informacja jest niezmienna względem wielkości --- jeśli wpisanie [1,0,0.1] powinno prowadzić do takiego samego wyniku, jak w przypadku wpisania [100,0,10], lepiej byłoby bez uprzedzeń.

Íhor Mé
źródło
prawdopodobnie lepiej jest z normalizacją. Jaki jest przykład nowoczesnej sieci, która wykorzystuje „brak stronniczości” do generowania niezmienności wielkości?
AwokeKnowing,
@AwokeKnowing, jak sądzę, wykorzystuje to zwykły ResNet, ponieważ jest to część jego „inicjalizacji”, ale nie jestem do końca pewien, czy zrobili to wyłącznie w tym celu, a może ze względu na rozmiar / wydajność modelu, a ja Nie jestem pewien, czy ta koncepcja została opublikowana w dowolnym miejscu. Ale myślę, że jest to całkowicie zrozumiałe na poziomie teorii. Jeśli nie masz błędu, który nie skaluje się, podczas skalowania wartości wszystkie wyniki są odpowiednio skalowane. Świadomi tego pojęcia, czy nie, duża część współczesnych architektur nie ma uprzedzeń, przynajmniej w dużej części ich struktur.
Íhor Mé
16

W kilku eksperymentach w mojej pracy magisterskiej (np. Str. 59) stwierdziłem, że stronniczość może być ważna dla pierwszej (ych) warstwy (warstw), ale szczególnie na w pełni połączonych warstwach na końcu wydaje się, że nie odgrywa ona dużej roli.

Może to być bardzo zależne od architektury sieci / zestawu danych.

Martin Thoma
źródło
Brzmi to całkowicie analogicznie do procesu modelowania systemów „ręcznie” z regresją liniową. Najprostszym modelem byłby Y_bar = średnia (Y). Następnie dodajesz złożoność, włączając różne terminy X, zatrzymując się, gdy nie ma znaczącego przyrostu informacji.
IRTFM
15

Odchylenie decyduje o ile kąta chcesz obrócić swoją wagę.

W dwuwymiarowym wykresie waga i odchylenie pomagają nam znaleźć granicę decyzyjną wyników. Powiedzmy, że musimy zbudować funkcję AND, para wejściowa (p) -wyjście (t) powinna być

{p = [0,0], t = 0}, {p = [1,0], t = 0}, {p = [0,1], t = 0}, {p = [1,1] , t = 1}

wprowadź opis zdjęcia tutaj

Teraz musimy znaleźć granicę decyzji, granicą idei powinna być:

wprowadź opis zdjęcia tutaj

Widzieć? W jest prostopadła do naszej granicy. Mówimy więc, że W zdecydował o kierunku granicy.

Jednak za pierwszym razem trudno jest znaleźć prawidłowe W. Najczęściej wybieramy oryginalną wartość W losowo. Zatem pierwsza granica może być następująca: wprowadź opis zdjęcia tutaj

Teraz granica jest prostsza do osi y.

Chcemy obrócić granicę, jak?

Zmieniając W.

Tak więc używamy funkcji reguły uczenia się: W '= W + P: wprowadź opis zdjęcia tutaj

W '= W + P jest równoważne W' = W + bP, podczas gdy b = 1.

Dlatego zmieniając wartość b (odchylenie), możesz zdecydować o kącie między W 'a W. To jest „reguła uczenia się ANN”.

Możesz także przeczytać Neural Network Design autorstwa Martina T. Hagana / Howarda B. Demutha / Marka H. Beale'a, rozdział 4 „Reguła uczenia się perceptronu”


źródło
1
Pomocne wyjaśnienie / ilustracja
javadba,
10

W szczególności, Nate'a odpowiedź , zfy za odpowiedź , a pradi za odpowiedź są świetne.

Mówiąc prościej, odchylenia pozwalają na naukę / przechowywanie coraz większej liczby odmian wag ... ( uwaga dodatkowa : czasami z pewnym progiem). W każdym razie, więcej odmian oznacza, że ​​uprzedzenia dodają bogatszej reprezentacji przestrzeni wejściowej do wyuczonych / zapisanych wag modelu. (Gdzie większe ciężary mogą zwiększyć siłę zgadywania sieci neuronowej)

Na przykład w modelach uczenia się hipoteza / przypuszczenie jest korzystnie ograniczona przez y = 0 lub y = 1, biorąc pod uwagę pewien wkład, w być może w pewnym zadaniu klasyfikacji ... tj. Jakieś y = 0 dla niektórych x = (1,1) i niektórych y = 1 dla niektórych x = (0,1). (Warunkiem hipotezy / wyniku jest próg, o którym mówiłem powyżej. Zauważ, że moje przykłady konfigurują X jako x = podwójny lub 2-wartościowy wektor zamiast wejściowych x wartości Nate'a z pewnej kolekcji X).

Jeśli zignorujemy błąd , wiele danych wejściowych może być reprezentowanych przez wiele takich samych wag (tzn. Wyuczone wagi występują najczęściej w pobliżu początku (0,0). Model byłby wówczas ograniczony do mniejszych ilości dobrych wag, zamiast wielu, wielu innych dobrych ciężarów, mógłby lepiej uczyć się z tendencyjnością (tam gdzie źle wyuczone ciężary prowadzą do gorszych domysłów lub zmniejszenia siły zgadywania sieci neuronowej)

Optymalne jest zatem, aby model uczył się zarówno blisko początku, ale także w jak największej liczbie miejsc w granicach progu / decyzji. Dzięki odchyleniu możemy umożliwić stopnie swobody blisko źródła, ale nie ograniczając się do jego najbliższego regionu.

Jordan Bennett
źródło
9

Rozwijanie wyjaśnienia @zfy ... Równanie dla jednego wejścia, jednego neuronu, jednego wyjścia powinno wyglądać:

y = a * x + b * 1    and out = f(y)

gdzie x jest wartością z węzła wejściowego, a 1 jest wartością węzła polaryzacji; y może być bezpośrednio twoim wyjściem lub zostać przekazane do funkcji, często funkcji sigmoidalnej. Zauważ też, że odchylenie może być dowolne, ale aby uprościć wszystko, zawsze wybieramy 1 (i prawdopodobnie jest to tak częste, że @zfy zrobił to bez pokazywania i wyjaśniania).

Twoja sieć próbuje poznać współczynniki aib, aby dostosować się do twoich danych. Możesz więc zobaczyć, dlaczego dodanie elementu b * 1pozwala lepiej dopasować go do większej ilości danych: teraz możesz zmienić zarówno nachylenie, jak i przechwytywanie.

Jeśli masz więcej niż jedno wejście, twoje równanie będzie wyglądać następująco:

y = a0 * x0 + a1 * x1 + ... + aN * 1

Zauważ, że równanie wciąż opisuje jeden neuron, jedną sieć wyjściową; jeśli masz więcej neuronów, po prostu dodajesz jeden wymiar do macierzy współczynników, aby multipleksować dane wejściowe do wszystkich węzłów i sumować wkład każdego węzła.

Że możesz pisać w formacie wektorowym jako

A = [a0, a1, .., aN] , X = [x0, x1, ..., 1]
Y = A . XT

tzn. umieszczając współczynniki w jednej tablicy i (dane wejściowe + odchylenie) w innym masz pożądane rozwiązanie jako iloczyn kropkowy dwóch wektorów (musisz transponować X, aby kształt był poprawny, napisałem XT a X transponowane)

Tak więc na koniec możesz również zobaczyć swoje uprzedzenie, ponieważ jest to tylko jedno wejście, które reprezentuje część wyniku, która jest faktycznie niezależna od twojego wkładu.

RobMcZag
źródło
Wydaje mi się, że pamiętam z zajęć Andrew Nga, że ​​uprzedzenie zostało pominięte w części procesu treningowego. czy mógłbyś zaktualizować swoją odpowiedź, aby wyjaśnić, że biorąc pod uwagę twój wniosek, że jest to „tylko kolejny wkład”?
AwokeKnowing
@AwokeKnowing Nie pamiętam tego z klasy Andrew Nga, ale to było kilka lat temu. Również odchylenie może być włączone lub wyłączone w zależności od tego, czego próbujesz się nauczyć. Czytam, że w przetwarzaniu obrazu nie używają go do skalowania. Dla mnie, jeśli go używasz, używasz go również na treningu. Efektem jest ustabilizowanie współczynników, gdy całość lub część danych wejściowych jest zerowa lub prawie zerowa. Dlaczego nie używałbyś uprzedzeń podczas treningu, a następnie używałeś go, gdy używasz NN do przewidywania wyników dla nowych danych wejściowych? Jak to może być przydatne?
RobMcZag
Nie, bardziej przypominało to użycie go w przekazie do przodu, ale nie używaj go do obliczania gradientu dla backprop lub coś w tym rodzaju.
AwokeKnowing
@AwokeKnowing Przypuszczam, że jest to sposób na zaoszczędzenie pamięci i czasu. Możesz zdecydować, że nie chcesz uczyć się współczynników dla jednostek odchylenia. Może to być w porządku, jeśli masz co najmniej jedną ukrytą warstwę, ponieważ odchylenie zapewni pewne wejście do tej warstwy, a wynik może być wyuczony przez współczynniki od pierwszej do drugiej warstwy. Nie jestem pewien, czy zmieni się szybkość konwergencji. W moim przykładzie z jedną warstwą jesteś zmuszony nauczyć się również współczynnika odchylenia, który jest stosowany do wyniku.
RobMcZag
W wielu prostych problemach dane docelowe zostały poniżone i skalowane, więc nie jest wymagane uprzedzenie. A ryzyko nadmiernego wpływu wartości odstających w zmiennych o dużych zakresach jest zmniejszone.
IRTFM
9

Inne niż wspomniane odpowiedzi. Chciałbym dodać kilka innych punktów.

Odchylenie jest naszą kotwicą. Jest to dla nas sposób na ustanowienie pewnego rodzaju linii bazowej, w której nie schodzimy poniżej tego. Jeśli chodzi o wykres, pomyśl o tym, że y = mx + b to jak przecięcie y tej funkcji.

wyjście = wartość wejściowa pomnożona przez wartość masy i dodana wartość odchylenia, a następnie zastosowanie funkcji aktywacji.

Naren Babu R.
źródło
8

Aby myśleć w prosty sposób, jeśli masz y = w1 * x, gdzie y jest twoją wydajnością, a w1 jest wagą, wyobraź sobie warunek, w którym x = 0, wtedy y = w1 * x wynosi 0 , jeśli chcesz zaktualizować swoją wagę, masz aby obliczyć, ile zmian przez delw = cel-y, gdzie cel jest wynikiem docelowym, w tym przypadku „delw” nie zmieni się, ponieważ y jest obliczane jako 0. Tak, załóżmy, że jeśli możesz dodać jakąś dodatkową wartość, pomoże y = w1 * x + w0 * 1 , gdzie odchylenie = 1 i wagę można dostosować, aby uzyskać prawidłowe odchylenie. Rozważ poniższy przykład.

Pod względem linii przecięcie nachylenia jest specyficzną formą równań liniowych.

y = mx + b

sprawdź obraz

wizerunek

tutaj b wynosi (0,2)

jeśli chcesz go zwiększyć do (0,3), jak to zrobisz, zmieniając wartość b, która będzie twoim nastawieniem

Yumlembam Rahul
źródło
7

Dla wszystkich książek ML, które badałem, W jest zawsze definiowane jako wskaźnik łączności między dwoma neuronami, co oznacza, że ​​im wyższa łączność między dwoma neuronami, tym silniejsze sygnały będą przekazywane z neuronu strzelającego do neuronu docelowego lub Y = w * X w celu utrzymania biologicznego charakteru neuronów, musimy zachować 1> = W> = -1, ale w prawdziwej regresji, W skończy się na | W | > = 1, co jest sprzeczne z działaniem neuronów, w rezultacie proponuję W = cos (theta), a 1> = | cos (theta) | , a Y = a * X = W * X + b, podczas gdy a = b + W = b + cos (theta), b jest liczbą całkowitą

Edward
źródło
7

W sieciach neuronowych:

  1. Każdy neuron ma błąd
  2. Możesz zobaczyć odchylenie jako próg (ogólnie przeciwne wartości progu)
  3. Ważona suma z warstw wejściowych + odchylenie decyduje o aktywacji neuronu
  4. Odchylenie zwiększa elastyczność modelu.

W przypadku braku stronniczości neuron nie może zostać aktywowany, biorąc pod uwagę tylko ważoną sumę z warstwy wejściowej. Jeśli neuron nie zostanie aktywowany, informacja z tego neuronu nie zostanie przekazana przez resztę sieci neuronowej.

Wartość uprzedzeń jest możliwa do nauczenia.

wprowadź opis zdjęcia tutaj

Skutecznie odchylenie = - próg. Możesz myśleć o odchyleniu jako o tym, jak łatwo jest uzyskać neuron, aby wyprowadził 1 - z naprawdę dużym odchyleniem, neuron jest bardzo łatwy do wyprowadzenia 1, ale jeśli odchylenie jest bardzo ujemne, to jest trudne.

Podsumowując: stronniczość pomaga kontrolować wartość, przy której zadziała funkcja aktywacji.

Śledź ten film, aby uzyskać więcej informacji

Kilka bardziej przydatnych linków:

geeksforgeeks

w kierunku danych

Ravindra babu
źródło
1
Niezła interpretacja. Ale nie jestem pewien, w jaki sposób stronniczość jest możliwa do nauczenia się (czy do wyszkolenia?). W prostym przypadku, gdy strata = ReLU (omega * x + a), omega wagowa może być trenowana poprzez regułę łańcuchową, ale w jaki sposób można atrenować odchylenie, gdy gradient do ajest zawsze stały?
Libin Wen
4

Termin bias jest używany do dostosowania ostatecznej macierzy wyjściowej, tak jak robi to punkt przecięcia y. Na przykład, w klasycznym równaniu, y = mx + c, jeśli c = 0, to linia zawsze przechodzi przez 0. Dodanie terminu polaryzacji zapewnia większą elastyczność i lepsze uogólnienie w naszym modelu sieci neuronowej.

Aman pradhan
źródło
0

Ogólnie rzecz biorąc, w uczeniu maszynowym mamy tę podstawową formułę Kompromis odchylenie-odchylenie Ponieważ w NN mamy problem z przeregulowaniem (problem generalizacji modelu, w którym niewielkie zmiany w danych prowadzą do dużych zmian wyniku modelu) i z tego powodu mamy dużą wariancję, wprowadzając małe uprzedzenie może bardzo pomóc. Biorąc pod uwagę powyższą formułę Kompromis odchylenie-odchylenie , w którym odchylenie jest podniesione do kwadratu, zatem wprowadzenie małego odchylenia może znacznie zmniejszyć wariancję. Tak więc, wprowadzaj uprzedzenia, gdy masz dużą wariancję i przerastasz niebezpieczeństwo.

Euler
źródło
3
Jednostki bias i kompromis bias-wariancja są odrębne pojęcia. Pytanie dotyczy tego pierwszego.
SigmaX
0

Odchylenie pomaga uzyskać lepsze równanie

Wyobraź sobie wejście i wyjście jak funkcję y = ax + bi musisz umieścić właściwą linię między wejściem (x) a wyjściem (y), aby zminimalizować błąd globalny między każdym punktem a linią, jeśli zachowasz takie równanie y = ax, będziesz miał tylko jeden parametr do adaptacji, nawet jeśli znajdziesz najlepszy aminimalizujący błąd globalny, będzie to w pewnym sensie dalekie od pożądanej wartości

Można powiedzieć, że odchylenie sprawia, że ​​równanie jest bardziej elastyczne, aby dostosować się do najlepszych wartości

Karam Mohamed
źródło