-
21. Data: 2020-11-16 10:03:51
Temat: Re: Odczyt ciśnienia - analiza obrazu
Od: Maciek Godek <g...@g...com>
niedziela, 15 listopada 2020 o 06:56:10 UTC+1 M.M. napisał(a):
> Ja też się długo (może z 20 lat) zastanawiałem dlaczego dobrze wytresowany
> pies działający w oparciu o biologiczną sieci neuronową, 1000 razy na 1000 przynosi
> treserowi ręcznik, gdy treser o ręcznik go prosi. Podobnie dziecko dobrze
> nauczone tabliczki mnożenia 1000 razy na 1000 dobrze poda wynik.
Podejrzewam, że po prostu mało rzetelnie przeprowadzałeś pomiary.
[Tak naprawdę to podejrzewam, że wcale ich nie przeprowadzałeś]
-
22. Data: 2020-11-16 13:29:37
Temat: Re: Odczyt ciśnienia - analiza obrazu
Od: "M.M." <m...@g...com>
On Monday, November 16, 2020 at 10:03:53 AM UTC+1, Maciek Godek wrote:
> niedziela, 15 listopada 2020 o 06:56:10 UTC+1 M.M. napisał(a):
>
> > Ja też się długo (może z 20 lat) zastanawiałem dlaczego dobrze wytresowany
> > pies działający w oparciu o biologiczną sieci neuronową, 1000 razy na 1000
przynosi
> > treserowi ręcznik, gdy treser o ręcznik go prosi. Podobnie dziecko dobrze
> > nauczone tabliczki mnożenia 1000 razy na 1000 dobrze poda wynik.
> Podejrzewam, że po prostu mało rzetelnie przeprowadzałeś pomiary.
> [Tak naprawdę to podejrzewam, że wcale ich nie przeprowadzałeś]
Pomiary czego? Odpowiedzi z tabliczki mnożenia? Po co mi pomiary, przecież to
przykład bardziej ogólnego zjawiska które jest oczywiste. Czy może pomiary
skuteczności sztucznych sieci neuronowych według mojego pomysłu? Tutaj ta
cecha o której mówiłem też jest oczywista, nawet jakbym nie robił zupełnie
żadnych pomiarów - ale minimalne testy zrobiłem.
Zdrowy, sprawny i wykwalifikowany człowiek niektóre zadania wykonuje wielokrotnie
bezbłędnie i to przez długie lata, i to nie tylko takie łatwe jak tabliczka mnożenia.
Kierowca podejmuje decyzje wiele razy na minutę, a może nawet na sekundę. Niektórzy,
co lepsi kierowcy chwalą się wieloletnią bezwypadkową jazdą. Natomiast sztuczna
sieć neuronowa zbudowana w oparciu o klasyczny perceptron wielowarstwowy może
dawać błędne odpowiedzi na zbiorze testowym i zwykle specjalnie przerywa się
naukę na etapie gdy sieć jeszcze daje błędy na zbiorze uczącym, aby minimalizować
ilość błędnych odpowiedzi na zbiorze testowym.
Pozdrawiam
-
23. Data: 2020-11-16 19:23:59
Temat: Re: Odczyt ciśnienia - analiza obrazu
Od: Maciek Godek <g...@g...com>
poniedziałek, 16 listopada 2020 o 13:29:38 UTC+1 M.M. napisał(a):
> > > Ja też się długo (może z 20 lat) zastanawiałem dlaczego dobrze wytresowany
> > > pies działający w oparciu o biologiczną sieci neuronową, 1000 razy na 1000
przynosi
> > > treserowi ręcznik, gdy treser o ręcznik go prosi. Podobnie dziecko dobrze
> > > nauczone tabliczki mnożenia 1000 razy na 1000 dobrze poda wynik.
> > Podejrzewam, że po prostu mało rzetelnie przeprowadzałeś pomiary.
> > [Tak naprawdę to podejrzewam, że wcale ich nie przeprowadzałeś]
> Pomiary czego? Odpowiedzi z tabliczki mnożenia?
Tak. I przynoszenia ręcznika przez psa.
> Po co mi pomiary, przecież to
> przykład bardziej ogólnego zjawiska które jest oczywiste.
Jakiego bardziej ogólnego zjawiska?
I co jest w nim oczywiste?
> Zdrowy, sprawny i wykwalifikowany człowiek niektóre zadania wykonuje wielokrotnie
> bezbłędnie i to przez długie lata, i to nie tylko takie łatwe jak tabliczka
mnożenia.
> Kierowca podejmuje decyzje wiele razy na minutę, a może nawet na sekundę.
I popełniają błędy.
> Niektórzy, co lepsi kierowcy chwalą się wieloletnią bezwypadkową jazdą.
To, że ludzie się czymś chwalą, raczej wynika z ludzkiej niedoskonałości, niż z
ludzkiej doskonałości.
W każdym razie rynek ubezpieczeń nie ma powodów do narzekań.
-
24. Data: 2020-11-18 21:44:47
Temat: Re: Odczyt ciśnienia - analiza obrazu
Od: "M.M." <m...@g...com>
On Monday, November 16, 2020 at 7:24:01 PM UTC+1, Maciek Godek wrote:
> poniedziałek, 16 listopada 2020 o 13:29:38 UTC+1 M.M. napisał(a):
>
> > > > Ja też się długo (może z 20 lat) zastanawiałem dlaczego dobrze wytresowany
> > > > pies działający w oparciu o biologiczną sieci neuronową, 1000 razy na 1000
przynosi
> > > > treserowi ręcznik, gdy treser o ręcznik go prosi. Podobnie dziecko dobrze
> > > > nauczone tabliczki mnożenia 1000 razy na 1000 dobrze poda wynik.
> > > Podejrzewam, że po prostu mało rzetelnie przeprowadzałeś pomiary.
> > > [Tak naprawdę to podejrzewam, że wcale ich nie przeprowadzałeś]
> > Pomiary czego? Odpowiedzi z tabliczki mnożenia?
> Tak. I przynoszenia ręcznika przez psa.
Z notatnikiem w ręku nie robiłem pomiarów, ale wychodząc z
Twojego założenia o ludzkiej omylności, nie ma sensu robić takich
pomiarów, bo bym się pomylił w notowaniu ;-)
Kilkoro dzieci uczyłem tabliczki mnożenia, alfabetu i jak się dobrze
nauczyły to nie popełniały błędów. Podobnie jak w recytowaniu wiersza z
pamięci - o ile im się chciało i o ile dobrze się nauczyły to powtarzały bez
pomyłek. Kiedyś amatorsko tresowałem kota, łapał i aportował zabawkę
bezbłędnie.
Ale powyższy akapit ma się nijak do tego o czym pisałem i nie
chce mi się sprawdzać, kiedy dziecko myli się raz na 5 recytacji
wiersza, a kiedy raz na 1000 recytacji. Interesuje mnie fakt, że
DZIECKO UCZĄC SIĘ DOKŁADNIE (np. tabliczki mnożenia do 10) NIE
ZATRACA ZDOLNOŚCI GENERALIZACJI W ZAKRESIE DO 20. Nie muszę
dziecka uczyć tylko 70% przykładów, bo w wieku dorosłym będzie
miało z mnożeniem w słupku - to było oczywiste. Tymczasem, sztuczna sieć
neuronowa zbudowana w oparciu o klasyczny perceptron wielowarstwowy, ucząc się
dokładnie na zbiorze uczącym, zazwyczaj udziela gorszych odpowiedzi na zbiorze
testowym. Sztuczne sieci neuronowe zbudowane w oparciu o moją architekturę
mają z tym mniej problemów - tak, chwalę się, jestem dalece niedoskonały ;-)
> > Po co mi pomiary, przecież to
> > przykład bardziej ogólnego zjawiska które jest oczywiste.
> Jakiego bardziej ogólnego zjawiska?
> I co jest w nim oczywiste?
To co napisałem wielkimi literami w powyższym akapicie.
> > Zdrowy, sprawny i wykwalifikowany człowiek niektóre zadania wykonuje wielokrotnie
> > bezbłędnie i to przez długie lata, i to nie tylko takie łatwe jak tabliczka
mnożenia.
> > Kierowca podejmuje decyzje wiele razy na minutę, a może nawet na sekundę.
> I popełniają błędy.
Tak, to wszystko ciekawe kwestie, ale odbiegają od tego co chciałem
napisać.
> > Niektórzy, co lepsi kierowcy chwalą się wieloletnią bezwypadkową jazdą.
> To, że ludzie się czymś chwalą, raczej wynika z ludzkiej niedoskonałości, niż z
ludzkiej doskonałości.
Kolejny temat rzeka.
> W każdym razie rynek ubezpieczeń nie ma powodów do narzekań.
Zgoda. Ale mam nadzieję że już jest jasne co mialem na myśli.
Pozdrawiam
Pozdrawiam
-
25. Data: 2020-11-18 23:10:44
Temat: Re: Odczyt ciśnienia - analiza obrazu
Od: Maciek Godek <g...@g...com>
środa, 18 listopada 2020 o 21:44:48 UTC+1 M.M. napisał(a):
> Z notatnikiem w ręku nie robiłem pomiarów, ale wychodząc z
> Twojego założenia o ludzkiej omylności, nie ma sensu robić takich
> pomiarów, bo bym się pomylił w notowaniu ;-)
To błędny wniosek.
Można dokonywać eksperymentów pomimo tego, że się popełnia błędy.
> Kilkoro dzieci uczyłem tabliczki mnożenia, alfabetu i jak się dobrze
> nauczyły to nie popełniały błędów.
Nie popełniały błędów na zbiorze trenującym, czy na zbiorze testowym?
> Podobnie jak w recytowaniu wiersza z
> pamięci - o ile im się chciało i o ile dobrze się nauczyły to powtarzały bez
> pomyłek.
Sieć neuronowa, o ile "dobrze się nauczy", też będzie powtarzała bez pomyłek.
Owe 95% (czy ile tam) skuteczności nie dotyczy powtarzania.
Wytrenowana sieć dla tych samych danych wejściowych w 100% razy zwróci te same dane
wyjściowe.
(w każdym razie dotyczy to sieci bezinercyjnych, takich jak perceptrony)
> Kiedyś amatorsko tresowałem kota, łapał i aportował zabawkę
> bezbłędnie.
W jaki sposób mierzyłeś błąd? I na ilu próbach?
> Ale powyższy akapit ma się nijak do tego o czym pisałem i nie
> chce mi się sprawdzać, kiedy dziecko myli się raz na 5 recytacji
> wiersza, a kiedy raz na 1000 recytacji. Interesuje mnie fakt, że
> DZIECKO UCZĄC SIĘ DOKŁADNIE (np. tabliczki mnożenia do 10) NIE
> ZATRACA ZDOLNOŚCI GENERALIZACJI W ZAKRESIE DO 20.
OK, to tutaj już jest bardziej konkretna hipoteza (której chyba nadal nie rozumiem).
Czyli twierdzisz, że jeżeli dziecko nauczy się na pamięć, ile to jest 6 * 7, to
będzie również bez problemu w stanie powiedzieć, ile to jest 13*17?
> Nie muszę
> dziecka uczyć tylko 70% przykładów, bo w wieku dorosłym będzie
> miało z mnożeniem w słupku - to było oczywiste. Tymczasem, sztuczna sieć
> neuronowa zbudowana w oparciu o klasyczny perceptron wielowarstwowy, ucząc się
> dokładnie na zbiorze uczącym, zazwyczaj udziela gorszych odpowiedzi na zbiorze
> testowym. Sztuczne sieci neuronowe zbudowane w oparciu o moją architekturę
> mają z tym mniej problemów - tak, chwalę się, jestem dalece niedoskonały ;-)
Ja czasem mam tak, że jak sobie w jesienne wieczory idę przez miasto, to niektóre
worki na śmieci wypełnione liśćmi mój mózg rozpoznaje jako psy.
Serio, jestem na jakimś poziomie całkowicie przekonany, że na ulicy leży pies.
Dopiero jak się wytężę, uświadamiam sobie, że to tylko worek na śmieci.
Czasem jeżeli nawet kilka dni z rzędu idę przez to samo miejsce, i leży ten sam
worek, to niezawodnie rozpoznaję w nim dużego śpiącego bernardyna.
Na dużych zbiorach danych popełnianie błędów jest niemożliwe do uniknięcia.
> > > Po co mi pomiary, przecież to
> > > przykład bardziej ogólnego zjawiska które jest oczywiste.
> > Jakiego bardziej ogólnego zjawiska?
> > I co jest w nim oczywiste?
> To co napisałem wielkimi literami w powyższym akapicie.
> > > Zdrowy, sprawny i wykwalifikowany człowiek niektóre zadania wykonuje
wielokrotnie
> > > bezbłędnie i to przez długie lata, i to nie tylko takie łatwe jak tabliczka
mnożenia.
> > > Kierowca podejmuje decyzje wiele razy na minutę, a może nawet na sekundę.
> > I popełniają błędy.
> Tak, to wszystko ciekawe kwestie, ale odbiegają od tego co chciałem
> napisać.
> > > Niektórzy, co lepsi kierowcy chwalą się wieloletnią bezwypadkową jazdą.
> > To, że ludzie się czymś chwalą, raczej wynika z ludzkiej niedoskonałości, niż z
ludzkiej doskonałości.
> Kolejny temat rzeka.
> > W każdym razie rynek ubezpieczeń nie ma powodów do narzekań.
> Zgoda. Ale mam nadzieję że już jest jasne co mialem na myśli.
No właśnie nie jest :)
-
26. Data: 2020-11-19 13:30:24
Temat: Re: Odczyt ciśnienia - analiza obrazu
Od: "M.M." <m...@g...com>
On Wednesday, November 18, 2020 at 11:10:46 PM UTC+1, Maciek Godek wrote:
> środa, 18 listopada 2020 o 21:44:48 UTC+1 M.M. napisał(a):
>
> > Z notatnikiem w ręku nie robiłem pomiarów, ale wychodząc z
> > Twojego założenia o ludzkiej omylności, nie ma sensu robić takich
> > pomiarów, bo bym się pomylił w notowaniu ;-)
> To błędny wniosek.
Żartowałem :)
> Można dokonywać eksperymentów pomimo tego, że się popełnia błędy.
Oczywiście.
> > Kilkoro dzieci uczyłem tabliczki mnożenia, alfabetu i jak się dobrze
> > nauczyły to nie popełniały błędów.
> Nie popełniały błędów na zbiorze trenującym, czy na zbiorze testowym?
W ogóle nie myślałem o podziale na zbiór uczący i testowy gdy przytaczałem
ten przykład.
> > Podobnie jak w recytowaniu wiersza z
> > pamięci - o ile im się chciało i o ile dobrze się nauczyły to powtarzały bez
> > pomyłek.
> Sieć neuronowa, o ile "dobrze się nauczy", też będzie powtarzała bez pomyłek.
Oczywiście, jeśli sztuczną siec neuronową, opartą o klasyczny perceptron
wielowarstwowy,
wyuczymy z dokładnością 100% na danym zbiorze, to będzie dawała poprawne
odpowiedzi z prawdopodobieństwem 100% na tym zbiorze.
> Owe 95% (czy ile tam) skuteczności nie dotyczy powtarzania.
Nie rozumiem.
> Wytrenowana sieć dla tych samych danych wejściowych w 100% razy zwróci te same dane
wyjściowe.
> (w każdym razie dotyczy to sieci bezinercyjnych, takich jak perceptrony)
Oczywiście.
> > Kiedyś amatorsko tresowałem kota, łapał i aportował zabawkę
> > bezbłędnie.
> W jaki sposób mierzyłeś błąd? I na ilu próbach?
Na potrzeby tego o czym pisałem nie ma potrzeby użycia naukowej,
udokumentowanej metody, tym bardziej że jest to tylko analogia.
Dziecko po opanowaniu całego materiału może udzielać bardzo
dokładnych, precyzyjnych odpowiedzi i ta umiejętność nie musi
dziecku niekorzystnie wpłynąć na zdolności generalizowania, abstrahowania.
Sztuczne sieci neuronowe zwykle uczy się tylko do pewnego momentu, aby
nie doszło do przeuczenia. Zwykle lepiej jest gdy sztuczne sieci
neuronowe nie udzielają precyzyjnych odpowiedzi na zbiorze uczącym.
> > Ale powyższy akapit ma się nijak do tego o czym pisałem i nie
> > chce mi się sprawdzać, kiedy dziecko myli się raz na 5 recytacji
> > wiersza, a kiedy raz na 1000 recytacji. Interesuje mnie fakt, że
> > DZIECKO UCZĄC SIĘ DOKŁADNIE (np. tabliczki mnożenia do 10) NIE
> > ZATRACA ZDOLNOŚCI GENERALIZACJI W ZAKRESIE DO 20.
> OK, to tutaj już jest bardziej konkretna hipoteza
Przepraszam że poprzednio napisałem zbyt skrótowo.
> (której chyba nadal nie rozumiem).
> Czyli twierdzisz, że jeżeli dziecko nauczy się na pamięć, ile to jest 6 * 7, to
będzie
> również bez problemu w stanie powiedzieć, ile to jest 13*17?
Nadal nie to chciałem powiedzieć, ale już jesteśmy bliżej sedna. Dziecko może
uczyć się tabliczki mnożenia na pamięć. Nie jest ważne czy to dobra metoda nauki, czy
zła - to po prostu przykład działania biologicznego mózgu w akcji. Dziecko
otrzymuje jeden przykład uczący do nauki, drugi, kolejny. W zależności od tego jakie
to
dziecko i czego uczyło się wcześniej, może znaleźć regułę mnożenia po pamięciowym
opanowaniu mniejszej ilości przykładów, większej, albo w ogóle. Dziecku po
prostu dajemy przykłady do nauki. W przypadku sztucznych sieci neuronowych jest
inaczej. Przed przystąpieniem do uczenia sztucznej sieci, zbiór danych
dzielimy na zbiór uczący i zbiór testowy. Zbiór testowy jest w pewnym sensie
marnowany, ponieważ nie jest przeprowadzana na nim nauka. Niemniej jednak
zbiór testowy jest konieczny, aby móc kontrolować jakość działania sztucznej
sieci neuronowej na przykładach które nie były podawane w trakcie nauki.
Zwykle w trakcie nauki mamy do czynienia ze zjawiskiem przeuczenia, czyli
im sieć daje więcej poprawnych odpowiedzi na zbiorze uczącym, tym mniej na
zbiorze testowym. Zwykle należy przerwać trening sieci w momencie gdy na zbiorze
testowym jest najwięcej poprawnych odpowiedzi. Widać tutaj oczywistą i
sporą wadę w porównaniu z nauką dzieci. Nawet na zbiorze uczącym sieć nie
daje 100% poprawnych odpowiedzi! Minimalnie wypaczając analogię, to tak jakby
uczyć dziecko tylko do momentu gdy udzieli 80% poprawnych odpowiedzi z
tabliczki mnożenia. W sztucznych sieciach neuronowych na bazie 'mojej
autorskiej' struktury danych ten problem nie jest aż tak drastyczny - choć
niestety nadal może się pojawiać. Moje sieci mogą dawać 100% poprawnych i
bardzo precyzyjnych odpowiedzi na dostępnych danych, bez obawy, że znacznie
spadnie skuteczność na danych, których nie było w trakcie uczenia. Problem
przeuczenia w moich sieciach nie jest aż tak dużym problemem.
> > Nie muszę
> > dziecka uczyć tylko 70% przykładów, bo w wieku dorosłym będzie
> > miało z mnożeniem w słupku - to było oczywiste. Tymczasem, sztuczna sieć
> > neuronowa zbudowana w oparciu o klasyczny perceptron wielowarstwowy, ucząc się
> > dokładnie na zbiorze uczącym, zazwyczaj udziela gorszych odpowiedzi na zbiorze
> > testowym. Sztuczne sieci neuronowe zbudowane w oparciu o moją architekturę
> > mają z tym mniej problemów - tak, chwalę się, jestem dalece niedoskonały ;-)
> Ja czasem mam tak, że jak sobie w jesienne wieczory idę przez miasto, to
> niektóre worki na śmieci wypełnione liśćmi mój mózg rozpoznaje jako psy.
> Serio, jestem na jakimś poziomie całkowicie przekonany, że na ulicy leży pies.
> Dopiero jak się wytężę, uświadamiam sobie, że to tylko worek na śmieci.
> Czasem jeżeli nawet kilka dni z rzędu idę przez to samo miejsce, i leży ten
> sam worek, to niezawodnie rozpoznaję w nim dużego śpiącego bernardyna.
Od czasu gdy mój wzrok uległ znacznemu pogorszeniu, bardzo często mam podobne
problemy, aż dziwne, że z takimi zakłóceniami jestem w stanie cokolwiek
rozpoznać. Ale to też odbiega od tematu rozmowy. Raczej chciałem
tutaj powiedzieć, że sieci zbudowane w oparciu o moją architekturę nie
powtarzają błędów, bo można je wyuczyć na maksa na danych rozszerzonych o
przypadki w których pojawiły się błędne odpowiedzi, a problem przeuczenia
nie występuje tak łatwo jak w przypadku sieci zbudowanych w oparciu o
klasyczny (nie)liniowy perceptron wielowarstwowy.
> Na dużych zbiorach danych popełnianie błędów jest niemożliwe do uniknięcia.
Jeśli jakąś przestrzeń mamy gęsto pokrytą danymi (czyli mamy dużo danych i
równomiernie rozłożonych po tej przestrzeni) to jest możliwe wyuczenie sieci
która da blisko 100% poprawnych odpowiedzi na zbiorze uczącymi i
testowym.
> > > > Po co mi pomiary, przecież to
> > > > przykład bardziej ogólnego zjawiska które jest oczywiste.
> > > Jakiego bardziej ogólnego zjawiska?
> > > I co jest w nim oczywiste?
> > To co napisałem wielkimi literami w powyższym akapicie.
> > > > Zdrowy, sprawny i wykwalifikowany człowiek niektóre zadania wykonuje
wielokrotnie
> > > > bezbłędnie i to przez długie lata, i to nie tylko takie łatwe jak tabliczka
mnożenia.
> > > > Kierowca podejmuje decyzje wiele razy na minutę, a może nawet na sekundę.
> > > I popełniają błędy.
> > Tak, to wszystko ciekawe kwestie, ale odbiegają od tego co chciałem
> > napisać.
> > > > Niektórzy, co lepsi kierowcy chwalą się wieloletnią bezwypadkową jazdą.
> > > To, że ludzie się czymś chwalą, raczej wynika z ludzkiej niedoskonałości, niż z
ludzkiej doskonałości.
> > Kolejny temat rzeka.
> > > W każdym razie rynek ubezpieczeń nie ma powodów do narzekań.
> > Zgoda. Ale mam nadzieję że już jest jasne co mialem na myśli.
> No właśnie nie jest :)
Ok, spróbowałem jeszcze raz to opisać. Podsumowanie jest proste. Moje
sieci można uczyć na maksa, więc nie powtórzą błędu, a dlatego że trudniej
ulegają przeuczeniu, jest mniejsze prawdopodobieństwo że po takim wyuczeniu
na maksa dadzą całkowicie błędną odpowiedź na danych spoza zbioru
uczącego - np. gdy mucha wleci przed obiektyw kamery robota.
Pozdrawiam
-
27. Data: 2020-11-20 17:02:27
Temat: Re: Odczyt ciśnienia - analiza obrazu
Od: Maciek Godek <g...@g...com>
czwartek, 19 listopada 2020 o 13:30:25 UTC+1 M.M. napisał(a):
> On Wednesday, November 18, 2020 at 11:10:46 PM UTC+1, Maciek Godek wrote:
> > środa, 18 listopada 2020 o 21:44:48 UTC+1 M.M. napisał(a):
> >
> > > Z notatnikiem w ręku nie robiłem pomiarów, ale wychodząc z
> > > Twojego założenia o ludzkiej omylności, nie ma sensu robić takich
> > > pomiarów, bo bym się pomylił w notowaniu ;-)
> > To błędny wniosek.
> Żartowałem :)
Ryzykant ;]
> > Można dokonywać eksperymentów pomimo tego, że się popełnia błędy.
> Oczywiście.
> > > Kilkoro dzieci uczyłem tabliczki mnożenia, alfabetu i jak się dobrze
> > > nauczyły to nie popełniały błędów.
> > Nie popełniały błędów na zbiorze trenującym, czy na zbiorze testowym?
> W ogóle nie myślałem o podziale na zbiór uczący i testowy gdy przytaczałem
> ten przykład.
No to nic dziwnego, że masz niewspółmierne wyniki.
> > > Podobnie jak w recytowaniu wiersza z
> > > pamięci - o ile im się chciało i o ile dobrze się nauczyły to powtarzały bez
> > > pomyłek.
> > Sieć neuronowa, o ile "dobrze się nauczy", też będzie powtarzała bez pomyłek.
> Oczywiście, jeśli sztuczną siec neuronową, opartą o klasyczny perceptron
wielowarstwowy,
> wyuczymy z dokładnością 100% na danym zbiorze, to będzie dawała poprawne
> odpowiedzi z prawdopodobieństwem 100% na tym zbiorze.
> > Owe 95% (czy ile tam) skuteczności nie dotyczy powtarzania.
> Nie rozumiem.
Zdanie niżej masz wyjaśnienie, na które odpowiedziałeś "oczywiście"
> > Wytrenowana sieć dla tych samych danych wejściowych w 100% razy zwróci te same
dane wyjściowe.
> > (w każdym razie dotyczy to sieci bezinercyjnych, takich jak perceptrony)
> Oczywiście.
O.
> > > Kiedyś amatorsko tresowałem kota, łapał i aportował zabawkę
> > > bezbłędnie.
> > W jaki sposób mierzyłeś błąd? I na ilu próbach?
> Na potrzeby tego o czym pisałem nie ma potrzeby użycia naukowej,
> udokumentowanej metody, tym bardziej że jest to tylko analogia.
Albo używamy pomiarów, albo stosujemy analogie.
Mówienie o procentach skuteczności sugeruje pomiar.
> Dziecko po opanowaniu całego materiału może udzielać bardzo
> dokładnych, precyzyjnych odpowiedzi i ta umiejętność nie musi
> dziecku niekorzystnie wpłynąć na zdolności generalizowania, abstrahowania.
> Sztuczne sieci neuronowe zwykle uczy się tylko do pewnego momentu, aby
> nie doszło do przeuczenia. Zwykle lepiej jest gdy sztuczne sieci
> neuronowe nie udzielają precyzyjnych odpowiedzi na zbiorze uczącym.
> > > Ale powyższy akapit ma się nijak do tego o czym pisałem i nie
> > > chce mi się sprawdzać, kiedy dziecko myli się raz na 5 recytacji
> > > wiersza, a kiedy raz na 1000 recytacji. Interesuje mnie fakt, że
> > > DZIECKO UCZĄC SIĘ DOKŁADNIE (np. tabliczki mnożenia do 10) NIE
> > > ZATRACA ZDOLNOŚCI GENERALIZACJI W ZAKRESIE DO 20.
> > OK, to tutaj już jest bardziej konkretna hipoteza
> Przepraszam że poprzednio napisałem zbyt skrótowo.
> > (której chyba nadal nie rozumiem).
>
>
> > Czyli twierdzisz, że jeżeli dziecko nauczy się na pamięć, ile to jest 6 * 7, to
będzie
> > również bez problemu w stanie powiedzieć, ile to jest 13*17?
> Nadal nie to chciałem powiedzieć, ale już jesteśmy bliżej sedna. Dziecko może
> uczyć się tabliczki mnożenia na pamięć. Nie jest ważne czy to dobra metoda nauki,
czy
> zła - to po prostu przykład działania biologicznego mózgu w akcji. Dziecko
> otrzymuje jeden przykład uczący do nauki, drugi, kolejny. W zależności od tego
jakie to
> dziecko i czego uczyło się wcześniej, może znaleźć regułę mnożenia po pamięciowym
> opanowaniu mniejszej ilości przykładów, większej, albo w ogóle. Dziecku po
> prostu dajemy przykłady do nauki. W przypadku sztucznych sieci neuronowych jest
> inaczej. Przed przystąpieniem do uczenia sztucznej sieci, zbiór danych
> dzielimy na zbiór uczący i zbiór testowy. Zbiór testowy jest w pewnym sensie
> marnowany, ponieważ nie jest przeprowadzana na nim nauka. Niemniej jednak
> zbiór testowy jest konieczny, aby móc kontrolować jakość działania sztucznej
> sieci neuronowej na przykładach które nie były podawane w trakcie nauki.
W przypadku nauki dzieci też masz zbiory trenujące i zbiory testowe.
Przynajmniej tak jest w przypadku nauki matematyki.
Masz przykłady i masz zadania sprawdzające.
Doświadczenia nauczycieli raczej podpowiedzą, że na zadaniach sprawdzających rzadko
masz 100% skuteczności.
Przykład z tabliczką mnożenia jest o tyle niefortunny, że to jest dokładnie coś,
czego uczysz się na pamięć.
Taki jest zamysł. To jest cache, który ma później usprawniać obliczenia.
Dziecko, które ma "dane w cache'u", może nie mieć algorytmu do mnożenia, i dlatego ze
znajomości tabliczki mnożenia nie można wyciągnąć wniosku o tym, czy dziecko umie
mnożyć liczby powyżej 10.
> Zwykle w trakcie nauki mamy do czynienia ze zjawiskiem przeuczenia, czyli
> im sieć daje więcej poprawnych odpowiedzi na zbiorze uczącym, tym mniej na
> zbiorze testowym. Zwykle należy przerwać trening sieci w momencie gdy na zbiorze
> testowym jest najwięcej poprawnych odpowiedzi. Widać tutaj oczywistą i
> sporą wadę w porównaniu z nauką dzieci. Nawet na zbiorze uczącym sieć nie
> daje 100% poprawnych odpowiedzi! Minimalnie wypaczając analogię, to tak jakby
> uczyć dziecko tylko do momentu gdy udzieli 80% poprawnych odpowiedzi z
> tabliczki mnożenia. W sztucznych sieciach neuronowych na bazie 'mojej
> autorskiej' struktury danych ten problem nie jest aż tak drastyczny - choć
> niestety nadal może się pojawiać. Moje sieci mogą dawać 100% poprawnych i
> bardzo precyzyjnych odpowiedzi na dostępnych danych, bez obawy, że znacznie
> spadnie skuteczność na danych, których nie było w trakcie uczenia. Problem
> przeuczenia w moich sieciach nie jest aż tak dużym problemem.
Nie możesz "nie mieć obaw o skuteczność na danych, których nie było w trakcie
uczenia".
Bo jeżeli nie było, to skąd sieć ma wiedzieć, jakie tam mają być wartości?
Nie może tego wiedzieć.
Przetrenowanie i błędna generalizacja u ludzi może wystąpić w takim samym stopniu,
jak u sieci neuronowych.
Ja pamiętam, jak kiedyś chyba w przedszkolu byłem oburzony, bo mieliśmy odróżnić
obrazek z sałatą od obrazka z kapustą. I to na domiar złego była taka włoska kapusta,
z odstającymi liśćmi. Tak że wyglądała dla mnie nierozróżnialnie od sałaty (tym
bardziej, że w moim spekrtum doświadczeń nie było ani kapusty, ani sałaty)
Jak masz bardzo duży zbiór danych, to zawsze znajdzie się tam kot, który wygląda jak
pies, albo ser, który wygląda jak skrzynka na listy.
Albo cyferka 3, która wygląda jak 5 albo 8. I jeżeli oznaczenie danych mówi, że ta
cyferka to jest 3, ale sieć widzi, że jednak wygląda bardziej jak 8, to nie można
mieć do niej pretensji, że "się myli".
> > > Nie muszę
> > > dziecka uczyć tylko 70% przykładów, bo w wieku dorosłym będzie
> > > miało z mnożeniem w słupku - to było oczywiste. Tymczasem, sztuczna sieć
> > > neuronowa zbudowana w oparciu o klasyczny perceptron wielowarstwowy, ucząc się
> > > dokładnie na zbiorze uczącym, zazwyczaj udziela gorszych odpowiedzi na zbiorze
> > > testowym. Sztuczne sieci neuronowe zbudowane w oparciu o moją architekturę
> > > mają z tym mniej problemów - tak, chwalę się, jestem dalece niedoskonały ;-)
>
> > Ja czasem mam tak, że jak sobie w jesienne wieczory idę przez miasto, to
> > niektóre worki na śmieci wypełnione liśćmi mój mózg rozpoznaje jako psy.
> > Serio, jestem na jakimś poziomie całkowicie przekonany, że na ulicy leży pies.
> > Dopiero jak się wytężę, uświadamiam sobie, że to tylko worek na śmieci.
> > Czasem jeżeli nawet kilka dni z rzędu idę przez to samo miejsce, i leży ten
> > sam worek, to niezawodnie rozpoznaję w nim dużego śpiącego bernardyna.
> Od czasu gdy mój wzrok uległ znacznemu pogorszeniu, bardzo często mam podobne
> problemy, aż dziwne, że z takimi zakłóceniami jestem w stanie cokolwiek
> rozpoznać. Ale to też odbiega od tematu rozmowy.
Właśnie chodzi o to, że nie odbiega.
Że pokazuje zjawiska, które można obserwować w działaniu sieci neuronowych na
spektrum naszych doświadczeń.
> Raczej chciałem
> tutaj powiedzieć, że sieci zbudowane w oparciu o moją architekturę nie
> powtarzają błędów, bo można je wyuczyć na maksa na danych rozszerzonych o
> przypadki w których pojawiły się błędne odpowiedzi, a problem przeuczenia
> nie występuje tak łatwo jak w przypadku sieci zbudowanych w oparciu o
> klasyczny (nie)liniowy perceptron wielowarstwowy.
To może kluczowe pytanie jest takie, z jakich zbiorów danych korzystałeś, żeby dojść
do tych wniosków.
> > Na dużych zbiorach danych popełnianie błędów jest niemożliwe do uniknięcia.
> Jeśli jakąś przestrzeń mamy gęsto pokrytą danymi (czyli mamy dużo danych i
> równomiernie rozłożonych po tej przestrzeni) to jest możliwe wyuczenie sieci
> która da blisko 100% poprawnych odpowiedzi na zbiorze uczącymi i
> testowym.
To zależy od zbioru uczącego i testowego.
Ale tak, zazwyczaj (pewnie) jest możliwe. Nawet owo anegdotyczne 95% to jest całkiem
"blisko 100%".
-
28. Data: 2020-11-20 23:38:24
Temat: Re: Odczyt ciśnienia - analiza obrazu
Od: "M.M." <m...@g...com>
On Friday, November 20, 2020 at 5:02:29 PM UTC+1, Maciek Godek wrote:
> czwartek, 19 listopada 2020 o 13:30:25 UTC+1 M.M. napisał(a):
> > On Wednesday, November 18, 2020 at 11:10:46 PM UTC+1, Maciek Godek wrote:
> > > środa, 18 listopada 2020 o 21:44:48 UTC+1 M.M. napisał(a):
> > >
> > > > Z notatnikiem w ręku nie robiłem pomiarów, ale wychodząc z
> > > > Twojego założenia o ludzkiej omylności, nie ma sensu robić takich
> > > > pomiarów, bo bym się pomylił w notowaniu ;-)
> > > To błędny wniosek.
> > Żartowałem :)
> Ryzykant ;]
> > > Można dokonywać eksperymentów pomimo tego, że się popełnia błędy.
> > Oczywiście.
> > > > Kilkoro dzieci uczyłem tabliczki mnożenia, alfabetu i jak się dobrze
> > > > nauczyły to nie popełniały błędów.
> > > Nie popełniały błędów na zbiorze trenującym, czy na zbiorze testowym?
> > W ogóle nie myślałem o podziale na zbiór uczący i testowy gdy przytaczałem
> > ten przykład.
> No to nic dziwnego, że masz niewspółmierne wyniki.
Obojętnie jakie mam wyniki, tutaj raczej chodzi o zasadniczą różnicę pomiędzy
uczeniem się ludzi (dzieci), a sztucznymi sieciami neuronowymi opartymi o klasyczny
perceptron wielowarstwowy.
Dziecko uczymy np. tabliczki mnożenia, podajemy przykłady i mamy pewne
prawdopodobieństwo, że dziecko odkryje regułę na mnożenie dowolnych liczb.
Im więcej dziecku podamy przykładów, tym większa szansa na to że odkryje
regułę. Podobnie jest z naukowcem, im więcej ma danych tym ma większą szansę, że
odkryje regułę rządzącą badanym przez niego zjawiskiem. Naukowiec nie musi
przed sobą ukrywać połowy danych z badań. Gdy naukowiec proponuje jakąś regułę, to
ona powinna się sprawdzać na wszystkich dostępnych danych i jest duże
prawdopodobieństwo, że
się sprawdzi na danych, którymi naukowiec nie dysponował w trakcie badań.
Oczywiście, sztuczną sieć neuronową też możemy wyuczyć dokładnie na wszystkich
dostępnych danych, bez dzielenia na zbiór uczący i testowy. Wtedy sztuczna sieć,
podobnie jak reguła naukowca, będzie się sprawdzała na wszystkich dostępnych danych.
Problem jednak w tym, że reguła zaproponowana przez sztuczną sieć neuronową będzie
sporadycznie dawała poprawne odpowiedzi na danych których sieć nie dostała w trakcie
uczenia. To się nazywa, jak zapewne wiesz, przeuczenie sztucznej sieci neuronowej.
Dlatego w przypadku sztucznej sieci neuronowej lepiej podzielić dane uczące na zbiór
testowy i uczący, i uczyć do momentu, gdy ilość poprawnych odpowiedzi na zbiorze
testowym jest maksymalna. Z tego wynikają wady sztucznych sieci neuronowych:
- tworzą regułę na mniejszej ilości danych niż ilość dostępnych,
- nawet na zbiorze uczącym z pewnym prawdopodobieństwem udzielają błędnych
odpowiedzi.
Moje sieci, jak już pisałem, po wyuczeniu na maksa mają mniej objawów przeuczenia.
> > > > Podobnie jak w recytowaniu wiersza z
> > > > pamięci - o ile im się chciało i o ile dobrze się nauczyły to powtarzały bez
> > > > pomyłek.
> > > Sieć neuronowa, o ile "dobrze się nauczy", też będzie powtarzała bez pomyłek.
> > Oczywiście, jeśli sztuczną siec neuronową, opartą o klasyczny perceptron
wielowarstwowy,
> > wyuczymy z dokładnością 100% na danym zbiorze, to będzie dawała poprawne
> > odpowiedzi z prawdopodobieństwem 100% na tym zbiorze.
> > > Owe 95% (czy ile tam) skuteczności nie dotyczy powtarzania.
> > Nie rozumiem.
> Zdanie niżej masz wyjaśnienie, na które odpowiedziałeś "oczywiście"
> > > Wytrenowana sieć dla tych samych danych wejściowych w 100% razy zwróci te same
dane wyjściowe.
> > > (w każdym razie dotyczy to sieci bezinercyjnych, takich jak perceptrony)
> > Oczywiście.
> O.
> > > > Kiedyś amatorsko tresowałem kota, łapał i aportował zabawkę
> > > > bezbłędnie.
> > > W jaki sposób mierzyłeś błąd? I na ilu próbach?
> > Na potrzeby tego o czym pisałem nie ma potrzeby użycia naukowej,
> > udokumentowanej metody, tym bardziej że jest to tylko analogia.
> Albo używamy pomiarów, albo stosujemy analogie.
> Mówienie o procentach skuteczności sugeruje pomiar.
Może wysłowiłem się w mylący sposób - przepraszam.
> > Dziecko po opanowaniu całego materiału może udzielać bardzo
> > dokładnych, precyzyjnych odpowiedzi i ta umiejętność nie musi
> > dziecku niekorzystnie wpłynąć na zdolności generalizowania, abstrahowania.
> > Sztuczne sieci neuronowe zwykle uczy się tylko do pewnego momentu, aby
> > nie doszło do przeuczenia. Zwykle lepiej jest gdy sztuczne sieci
> > neuronowe nie udzielają precyzyjnych odpowiedzi na zbiorze uczącym.
> > > > Ale powyższy akapit ma się nijak do tego o czym pisałem i nie
> > > > chce mi się sprawdzać, kiedy dziecko myli się raz na 5 recytacji
> > > > wiersza, a kiedy raz na 1000 recytacji. Interesuje mnie fakt, że
> > > > DZIECKO UCZĄC SIĘ DOKŁADNIE (np. tabliczki mnożenia do 10) NIE
> > > > ZATRACA ZDOLNOŚCI GENERALIZACJI W ZAKRESIE DO 20.
> > > OK, to tutaj już jest bardziej konkretna hipoteza
> > Przepraszam że poprzednio napisałem zbyt skrótowo.
> > > (której chyba nadal nie rozumiem).
> >
> >
> > > Czyli twierdzisz, że jeżeli dziecko nauczy się na pamięć, ile to jest 6 * 7, to
będzie
> > > również bez problemu w stanie powiedzieć, ile to jest 13*17?
> > Nadal nie to chciałem powiedzieć, ale już jesteśmy bliżej sedna. Dziecko może
> > uczyć się tabliczki mnożenia na pamięć. Nie jest ważne czy to dobra metoda nauki,
czy
> > zła - to po prostu przykład działania biologicznego mózgu w akcji. Dziecko
> > otrzymuje jeden przykład uczący do nauki, drugi, kolejny. W zależności od tego
jakie to
> > dziecko i czego uczyło się wcześniej, może znaleźć regułę mnożenia po pamięciowym
> > opanowaniu mniejszej ilości przykładów, większej, albo w ogóle. Dziecku po
> > prostu dajemy przykłady do nauki. W przypadku sztucznych sieci neuronowych jest
> > inaczej. Przed przystąpieniem do uczenia sztucznej sieci, zbiór danych
> > dzielimy na zbiór uczący i zbiór testowy. Zbiór testowy jest w pewnym sensie
> > marnowany, ponieważ nie jest przeprowadzana na nim nauka. Niemniej jednak
> > zbiór testowy jest konieczny, aby móc kontrolować jakość działania sztucznej
> > sieci neuronowej na przykładach które nie były podawane w trakcie nauki.
> W przypadku nauki dzieci też masz zbiory trenujące i zbiory testowe.
Oczywiście że można, a zazwyczaj wręcz trzeba testować zdobytą wiedzę/umiejętności
przez ludzi! Nie chciałem powiedzieć że ludzie tylko uczą się na przykładach, aż
odkrywają regułę i potem nie muszą weryfikować swojej wiedzy.
Raczej chciałem powiedzieć, że jedną z metod nauki jest taka metoda, w której
nauczyciel podaje jeden przykład i sposób rozwiązania tego przykładu, potem drugi,
trzeci, w końcu n-ty i dzieci kolejne przykłady rozwiązują samodzielnie. Raczej
chciałem powiedzieć, że nauczyciel nie ukrywa połowy materiałów edukacyjnych, w
obawie że dzieci się przeuczą.
Upraszczając, w przypadku nauki dzieci są tak jakby dwa zbiory danych: jeden uczący,
potem testowy np. na egzaminie. W przypadku sztucznej sieci neuronowej (nadal
upraszczając) są trzy zbiory: zbiór uczący, zbiór testowy i potem dane napływające
do sieci w trakcie jej działania. Dostępne dane są marnotrawione, bo sieć nie uczy
się na danych testowych, aby się nie przetrenowała. Moje sztuczne sieci, ze
względu na specyficzną architekturę (choć to nadal jest perceptron wielowarstwowy) są
mniej wrażliwe na przetrenowanie, więc można uczyć na maksa, a sieć na starych
danych nie poda błędnej odpowiedzi.
> Przynajmniej tak jest w przypadku nauki matematyki.
> Masz przykłady i masz zadania sprawdzające.
> Doświadczenia nauczycieli raczej podpowiedzą, że na zadaniach sprawdzających rzadko
masz 100% skuteczności.
Oczywiście, nie chciałem powiedzieć że PO ETAPIE nauki nie sprawdza
się na kolejnych danych umiejętności uczniów czy hipotezy naukowca.
Chciałęm powiedzieć ze NA ETAPIE nauki ani naukowiec, ani uczeń nie
ukrywają przed sobą połowy dostępnych wyników badań czy połowy
materiałów edukacyjnych. Tymczasem w przypadku sztucznych sieci
neuronowych już NA ETAPIE nauki ukrywamy jakąś część danych przed
siecią i zwykle nie uczymy aż sieć pod 100% poprawnych odpowiedzi
na danych. Uczeń powinien się uczyć aż opanuje 100% dostępnych
materiałów, a naukowiec powinien pracować nad hipotezą aż pokryje
ona wszystkie materiały z badań. To co będzie po etapie nauki, czy
uczeń zda egzamin, czy hipoteza naukowca przetrwa próbę czasu i
zyska status wiedzy - stanowią kolejną kwestię.
> Przykład z tabliczką mnożenia jest o tyle niefortunny, że to jest dokładnie coś,
czego uczysz się na pamięć.
> Taki jest zamysł. To jest cache, który ma później usprawniać obliczenia.
Owszem, przedstawiłem to myląco. Chyba nigdy nie prowadziłem rozmowy na ten temat i
nie zdawałem sobie sprawy jak można zrozumieć takie przedstawienie problemu. Ale
faktycznie, tabliczka mnożenia to jest cache, a po etapie nauki uczeń jest
testowany np. na egzaminie. Więc pisanie że uczeń nie jest testowany było
mylące. Raczej chodzi o to, że uczeń nie ukrywa przed sobą części materiałów
edukacyjnych w obawie że się przeuczy - no chyba że ze zmęczenia; ale dobrze
zaprojektowany układ elektroniczny, pracujący w dobrych warunkach, odpowiednio
zasilany... praktycznie nie ulega żadnym awariom przez tysiące lat, więc pod tym
względem w ogóle porównanie ludzi i komputerów elektronicznych nie ma sensu.
> Dziecko, które ma "dane w cache'u", może nie mieć algorytmu do mnożenia, i dlatego
> ze znajomości tabliczki mnożenia nie można wyciągnąć wniosku o tym, czy dziecko
umie
> mnożyć liczby powyżej 10.
Owszem, ale nie o to chodziło.
> > Zwykle w trakcie nauki mamy do czynienia ze zjawiskiem przeuczenia, czyli
> > im sieć daje więcej poprawnych odpowiedzi na zbiorze uczącym, tym mniej na
> > zbiorze testowym. Zwykle należy przerwać trening sieci w momencie gdy na zbiorze
> > testowym jest najwięcej poprawnych odpowiedzi. Widać tutaj oczywistą i
> > sporą wadę w porównaniu z nauką dzieci. Nawet na zbiorze uczącym sieć nie
> > daje 100% poprawnych odpowiedzi! Minimalnie wypaczając analogię, to tak jakby
> > uczyć dziecko tylko do momentu gdy udzieli 80% poprawnych odpowiedzi z
> > tabliczki mnożenia. W sztucznych sieciach neuronowych na bazie 'mojej
> > autorskiej' struktury danych ten problem nie jest aż tak drastyczny - choć
> > niestety nadal może się pojawiać. Moje sieci mogą dawać 100% poprawnych i
> > bardzo precyzyjnych odpowiedzi na dostępnych danych, bez obawy, że znacznie
> > spadnie skuteczność na danych, których nie było w trakcie uczenia. Problem
> > przeuczenia w moich sieciach nie jest aż tak dużym problemem.
> Nie możesz "nie mieć obaw o skuteczność na danych, których nie było w trakcie
uczenia".
> Bo jeżeli nie było, to skąd sieć ma wiedzieć, jakie tam mają być wartości?
>
> Nie może tego wiedzieć.
Całkowicie obaw oczywiście nie mogę się pozbyć, ale mam zdecydowanie mniejsze obawy
że
moja wyuczona sieć neuronowa na maksa (czyli przeuczona) zachowa się lepiej niż
klasyczny
perceptron.
> Przetrenowanie i błędna generalizacja u ludzi może wystąpić w takim samym stopniu,
jak u sieci neuronowych.
Czy w takim samym stopniu to inna sprawa, ale na pewno masz rację, że zarówno w
przypadku ludzi jak i
sztucznych sieci neuronowych jest ryzyko błędnej generalizacji. I tutaj sztuczne
sieci na bazie
mojej architektury nie wprowadzają zupełnie żadnego przełomu. Moje tylko po
przeuczeniu nie są
tak bardzo (tak często) przeuczone jak sieci na bazie klasycznego perceptronu
wielowarstwowego.
>
> Ja pamiętam, jak kiedyś chyba w przedszkolu byłem oburzony, bo mieliśmy odróżnić
obrazek z sałatą od
> obrazka z kapustą. I to na domiar złego była taka włoska kapusta, z odstającymi
liśćmi. Tak że
> wyglądała dla mnie nierozróżnialnie od sałaty (tym bardziej, że w moim spekrtum
doświadczeń nie
> było ani kapusty, ani sałaty)
Hmmm, kolejny ciekawy przykład na temat działania biologicznych sieci neuronowych i
kolejne
źródło wartościowych inspiracji. Ale niestety do tego konkretnego i wąskiego tematu
nie klei
mi się w ogóle, może czegoś nie rozumiem?
> Jak masz bardzo duży zbiór danych, to zawsze znajdzie się tam kot, który wygląda
jak pies, albo
> ser, który wygląda jak skrzynka na listy. Albo cyferka 3, która wygląda jak 5 albo
8. I jeżeli
> oznaczenie danych mówi, że ta cyferka to jest 3, ale sieć widzi, że jednak wygląda
bardziej jak 8,
> to nie można mieć do niej pretensji, że "się myli".
Oczywiście, ale temat błędnych danych to kolejna kwestia. Jeśli w danych uczących
cyfra 8
jest z prawdopodobieństwem p oznaczona jako 8 i z prawdopodobieństwem 1-p jako
nie-osiem, to
(precyzyjna) sieć neuronowa, gdy otrzyma na wejście 8 powinna właśnie dać odpowiedź
p, a
nie 1. Jeśli dane pochodzą np. z ręcznie pisanych cyfr, jeśli zbiór danych jest
reprezentatywny, a cyfra 8 jest mylona z inną cyfrą z prawdopodobieństwem 1-p, to
trakcie
działania cyfra 8 jest mylona z inną cyfrą z tym samym prawdopodobieństwem, więc
lepszą
odpowiedzią sieci jest odpowiedź p, niż 1. Jakie dane, taką hipotezę postawi sieć i
naukowiec.
Jeśli cyfra 8 w danych jest klasyfikowana z prawdopodobieństwem 99% jako cyfra 3, to
każda
szanująca się metoda uczenia maszynowego powinna też ją sklasyfikować jako cyfrę 3.
Antidotum na błędne dane jest duży i losowy zbiór uczący, który asymptotycznie będzie
dążył do zbioru reprezentatywnego, a nie cudowna metoda uczenia maszynowego która
poprawi BŁĘDY STATYSTYCZNE w danych.
W pewnym przybliżeniu, sztuczna sieć neuronowa w programie szachowym na wejście też
dostaje tylko informacje o tym, że z danej pozycji było N rozgrywek, białe wygrały X
razy,
czarne Y, a pozostałe partie były remisowe. To, że dane są nieprecyzyjne albo
nawet błędne, nie oznacza, iż oczekujemy od sieci lepszej odpowiedzi niż dane.
Jeśli program szachowy napotyka pozycję z której wygrywał z prawdopodobieństwem 80%,
to
sieć niech podaje odpowiedź dla tej pozycji 80%, a nie 100%, nawet jeśli pozycja jest
wygrana w 100%. Chodzi o to, aby nie podawała 70%, ani 90%, tylko właśnie precyzyjnie
80%, bo tyle wynika z danych.
> > > > Nie muszę
> > > > dziecka uczyć tylko 70% przykładów, bo w wieku dorosłym będzie
> > > > miało z mnożeniem w słupku - to było oczywiste. Tymczasem, sztuczna sieć
> > > > neuronowa zbudowana w oparciu o klasyczny perceptron wielowarstwowy, ucząc
się
> > > > dokładnie na zbiorze uczącym, zazwyczaj udziela gorszych odpowiedzi na
zbiorze
> > > > testowym. Sztuczne sieci neuronowe zbudowane w oparciu o moją architekturę
> > > > mają z tym mniej problemów - tak, chwalę się, jestem dalece niedoskonały ;-)
> >
> > > Ja czasem mam tak, że jak sobie w jesienne wieczory idę przez miasto, to
> > > niektóre worki na śmieci wypełnione liśćmi mój mózg rozpoznaje jako psy.
> > > Serio, jestem na jakimś poziomie całkowicie przekonany, że na ulicy leży pies.
> > > Dopiero jak się wytężę, uświadamiam sobie, że to tylko worek na śmieci.
> > > Czasem jeżeli nawet kilka dni z rzędu idę przez to samo miejsce, i leży ten
> > > sam worek, to niezawodnie rozpoznaję w nim dużego śpiącego bernardyna.
> > Od czasu gdy mój wzrok uległ znacznemu pogorszeniu, bardzo często mam podobne
> > problemy, aż dziwne, że z takimi zakłóceniami jestem w stanie cokolwiek
> > rozpoznać. Ale to też odbiega od tematu rozmowy.
> Właśnie chodzi o to, że nie odbiega.
> Że pokazuje zjawiska, które można obserwować w działaniu sieci neuronowych na
spektrum naszych doświadczeń.
To ja nie rozumiem związku tego przykładu z rozmową na temat błędych odpowiedzi sieci
na
danych ze zbioru uczącego.
> > Raczej chciałem
> > tutaj powiedzieć, że sieci zbudowane w oparciu o moją architekturę nie
> > powtarzają błędów, bo można je wyuczyć na maksa na danych rozszerzonych o
> > przypadki w których pojawiły się błędne odpowiedzi, a problem przeuczenia
> > nie występuje tak łatwo jak w przypadku sieci zbudowanych w oparciu o
> > klasyczny (nie)liniowy perceptron wielowarstwowy.
> To może kluczowe pytanie jest takie, z jakich zbiorów danych korzystałeś, żeby
dojść
> do tych wniosków.
To w głównej mierze teorie i hipotezy. Ale też wykonałem kilka praktycznych testów,
wypadły bardzo zachęcająco. Np. na danych o zarobkach wypadły najlepiej ze wszystkich
metod uczenia jakie były dostępne w benchmarku i w wece. Minęło już kilka lat jak
robiłem testy, ale chyba na danych syntetycznych wygenerowanych z prostych wzorów
matematycznych, w ogóle wypadły bardzo dobrze i pobiły klasyczny perceptron na głowę
w
szybkości, precyzji i skuteczności na zbiorze testowym.
Potem niestety, w obawie o to że kody źródłowe zostaną wykradzione z mojego
komputera,
wszystko skasowałem. Nie zdążyłem przetestować wszystkich algorytmów które
współpracują z
tą strukturą sieci neuronowych, w tym kilku algorytmów opracowanych przeze mnie. W
przypadku
tych sieci można stosować dwa odmienne algorytmy do uczenia jednej i tej samej sieci
na
tych samych danych - nie tak łatwo to wszystko dokładnie przetestować i odpluskwić.
Co do teorii, to udowodniłem że moja architektura może bardzo szybko wyuczyć się
precyzyjnie
dowolnych danych, stanowi więc uniwersalny aproksymator.
Co do lepszej generalizacji formalnego dowodu w ogóle nie można przedstawić.
Mamy najprostszy, jednoelementowy zbiór uczący:
f(0)=0.
Zbiór testowy może być taki:
f(1)=1,
albo taki:
f(1)=0.
Z matematycznego punktu widzenia żaden z tych zbiorów nie jest ani gorszy, ani
lepszy.
Jeśli sieć neuronowa na jednym zbiorze testowym da poprawną odpowiedź, to na drugim
da złą. Więc formalnie, z matematycznego punktu widzenia, nie istnieje żadna metoda
uczenia maszynowego, która będzie cechowała się dobrymi zdolnościami do
generalizacji.
Moje sieci neuronowe nie próbują rozbić powyższego muru głową. Zamiast tego szybko
się uczą, używają minimalistycznego modelu matematycznego, szybko dla danych uczących
dają dobre odpowiedzi, nie marnją danych na zbiór testowy - ale jak pomiędzy próbkami
jest
jakiś nagły pik, to i salomon nie naleje - moje sieci też tego piku cudownie nie
odgadną. Oczywiście,
jeśli dla danego zadania lepszym modelem matematycznym będzie klasyczny perceptron
wielowarstwowy, to
moje sieci neuronowe będą znacznie gorsze - cudów nie ma.
Swoje przekonania co do lepszych zdolności generalizacyjnych na danych praktycznych
(bo
teoretycznie, na dowolnych danych, wykazałem powyżej że jest to w ogóle niemożliwe),
opieram
też na pewnych podobieństwach do innych metod interpolacji/aproksymacji. Np. na tym,
że
jeśli aproksymujemy modelem liniowym, to wystarczą zaledwie dwie dobre próbki uczące,
aby
mieć dobrą aproksymację.
Moje sieci mają też inną zaletę, moje sieci neuronowe uczą się o rzędy wielkości
szybciej. Gdy jakąś głęboką sieć neuronową wyuczy się jeden raz przez ileś tygodni na
klastrze złożonym z wielu GPU, to moją można wyuczyć np. setki razy na jednym
komputerze
bez GPU.
> > > Na dużych zbiorach danych popełnianie błędów jest niemożliwe do uniknięcia.
> > Jeśli jakąś przestrzeń mamy gęsto pokrytą danymi (czyli mamy dużo danych i
> > równomiernie rozłożonych po tej przestrzeni) to jest możliwe wyuczenie sieci
> > która da blisko 100% poprawnych odpowiedzi na zbiorze uczącymi i
> > testowym.
> To zależy od zbioru uczącego i testowego.
> Ale tak, zazwyczaj (pewnie) jest możliwe. Nawet owo anegdotyczne 95% to jest
całkiem "blisko 100%".
Ok.
Pozdrawiam
-
29. Data: 2020-11-30 08:39:23
Temat: Re: Odczyt ciśnienia - analiza obrazu
Od: "M.M." <m...@g...com>
On Friday, November 20, 2020 at 11:38:25 PM UTC+1, M.M. wrote:
> > > która da blisko 100% poprawnych odpowiedzi na zbiorze uczącymi i
> > > testowym.
> > To zależy od zbioru uczącego i testowego.
> > Ale tak, zazwyczaj (pewnie) jest możliwe. Nawet owo anegdotyczne 95% to jest
całkiem "blisko 100%".
> Ok.
>
> Pozdrawiam
Fajnie się rozmawiało, trochę szkoda że wątek się urwał :(
-
30. Data: 2020-12-04 02:04:51
Temat: Re: Odczyt ciśnienia - analiza obrazu
Od: "M.M." <m...@g...com>
On Thursday, December 3, 2020 at 11:51:26 AM UTC+1, slawek wrote:
> 1. Można AI zastosować do szukania rozwiązań, a potem to co
> znajdzie weryfikować algorytmem deterministycznym. Czyli np. AI
> wybiera optymalną trasę jazdy, ale jednocześnie "głupi" algorytm
> sprawdza czy jest ona bezpieczna. Tak aby w najgorszym przypadku
> system zaparkował w bezpieczny sposób - np. poprosił o decyzję
> człowieka.
Oczywiście że można, a wraz z upływem czasu działania, napływa
więcej danych uczących. Teoretycznie na większej ilości danych
można zbudować lepszy system AI. W praktyce zależy jakie to jest
AI, np. mój program szachowy (oparty o jeden liniowy neuron) grał
gorzej gdy ilość danych była duża. Gdy próbowałem stosować
bardziej rozbudowane sieci, to grał gorzej, uczenie trwało długo... i
pojawiały się jeszcze inne problemy.
> 2. Błędy - obojętnie AI czy zwykłe bugi - są "acceptable" - jeżeli
> ich skutki (w sensie ile i jakich szkód rocznie, czyli
> "sumaryczna kwota strat") są mniej dotkliwe niż w rozwiązaniu
> alternatywnym. Czyli nie narzekamy że AI rozwaliła produkcję...
> Tylko sprawdzamy czy per saldo nie wyszliśmy nawet lepiej... Bo z
> AI to było raz na rok, a bez AI to było raz na kwartał.
Albo gdy w ogóle nie ma (dobrego) algorytmu, jak np. zadania związane z
rozpoznawaniem obrazu, choćby prowadzenie pojazdu. Generalnie zawsze
dopuszcza się dane rozwiązanie jeśli straty są mniejsze od zysków z
uwzględnieniem kosztu alternatywnego.
Pozdrawiam.