Pracuję nad pytaniem z książki online:
http://neuralnetworksanddeeplearning.com/chap1.html
Rozumiem, że jeśli dodatkowa warstwa wyjściowa składa się z 5 neuronów wyjściowych, prawdopodobnie mogłabym ustawić odchylenie na 0,5 i wagę 0,5 dla każdej poprzedniej warstwy. Ale pytanie wymaga teraz nowej warstwy czterech neuronów wyjściowych - co jest więcej niż wystarczające do przedstawienia 10 możliwych wyników przy .
Czy ktoś może przeprowadzić mnie przez kroki związane ze zrozumieniem i rozwiązaniem tego problemu?
Pytanie ćwiczeniowe:
Istnieje sposób ustalenia bitowej reprezentacji cyfry poprzez dodanie dodatkowej warstwy do trójwarstwowej sieci powyżej. Dodatkowa warstwa przekształca dane wyjściowe z poprzedniej warstwy w reprezentację binarną, jak pokazano na poniższym rysunku. Znajdź zestaw wag i odchyleń dla nowej warstwy wyjściowej. Załóżmy, że pierwsze 3 warstwy neuronów są takie, że prawidłowe wyjście w trzeciej warstwie (tj. Starej warstwie wyjściowej) ma aktywację co najmniej 0,99, a nieprawidłowe wyjścia mają aktywację mniejszą niż 0,01.
źródło
sigmoid((0 * 10) * 1)
0,5. Wybierając odpowiednio duże liczby, zapewniasz bardzo wysoką lub niską moc wyjściową przed sigmoidem, która następnie wyniesie bardzo blisko 0 lub 1. Jest to bardziej niezawodny IMO niż liniowy wynik przyjęty w odpowiedzi FullStacka, ale ignorując to, zasadniczo nasze dwie odpowiedzi są takie same.Poniższy kod z SaturnAPI odpowiada na to pytanie. Zobacz i uruchom kod na https://saturnapi.com/artitw/neural-network-decimal-digits-to-binary-bitwise-conversion
źródło
eye(10,10)
?Pythoniczny dowód na powyższe ćwiczenie:
źródło
Mała modyfikacja FullStack dotyczącej komentarzy Neila Slatera za pomocą Octave:
źródło