-
Data: 2013-04-23 12:13:42
Temat: Re: Podpis cyfrowy większej ilości podmiotów
Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Dnia Fri, 19 Apr 2013 11:54:57 -0700 po g��bokim namyďż˝le M.M. rzekďż˝:
>> On Thursday, April 18, 2013 5:35:15 PM UTC+2, Edek wrote:
>>
>>> No bo nie mam zbyt wysokiego mniemania o NN w sensie og�lnym.
>> Ach to o to chodzi�o :) Mnie strasznie wkurza propaganda SSN. Czasami
>> mo�na odnie�� wra�enie, �e naprawd� programista jedzie na wakacje, a w
>> tym czasie sie� neuronowa pisze za niego program. W praktyce nale�y
>> spodziewa� si� �e b�dzie odwrotnie i rozwi�zanie na bazie SSN b�d�
>> wymaga�y wi�kszego nak�adu pracy, nie wspomniawszy o klastrach
>> obliczeniowych do treningu i eksperyment�w. Niemniej jestem entuzjast�
>> rozwi�za� w kt�rych sztuczna sie� neuronowa pe�ni jak�� pomocnicz�
rolďż˝.
> To jest główna idea tych sieci. Po co robić analizę statystyczną czy
> budować wiedzę bayesem jak można zapuścić sieć. I nawet działa w
> przypadku "płynnych dziedzin" typu wsparcie wycofywania kilkuosiowej
> ciężarówki. Ale już przy kwantyfikowanych danych i relacjach minimalizacja
> to nie to co misie lubią najbardziej.
Generalnie miałem problemy z uzyskaniem dobrych wyników przy pomocy SSN jeśli
sieć na wejście otrzymywała dane bez zaawansowanego przetworzenia. Jeśli
dane były np. tylko przeskalowane i znormalizowane to w trudniejszych zadaniach
sieć nie działała. Do tego dochodził drugi problem z doborem zbioru uczącego.
Gdy po prostu podawałem dane jakie były to też było kiepsko. W szachach
po pierwsze układ na szachownicy zamieniam na długi wektor rożnych statystyk.
Dopiero te statystyki są podawane na wejście sieci. Po drugie używam specjalnego
algorytmu do budowy danych uczących. Jeśli dane sobie wylosuję, albo wezmę z
jakiś gier dobrych graczy, to jest kicha.
Przyjąłem więc założenie, że sieć popełni błędy w jakiś sposób "adekwatne"
do usterek w jej wyuczeniu. Ta adekwatność intuicyjnie wydaje się uzasadniona,
ale ściśle nie potrafię tego uzasadnić. Więc źle wyuczona sieć popełnia błędy
adekwatne do swojego złego wyuczenia i do danych uczących dostają się akurat
takie dane, które powodują, że zbiór uczący jest... chciałoby się rzec
bardziej reprezentatywny. Jednak też nie chodzi o reprezentatywność. Po prostu
do danych uczących dostają się dane bardziej odpowiednie do dobrego wyuczenia
sieci. Cały proces jest zapętlony, czyli zapętlone są trzy etapy: granie,
uzupełnianie zbioru uczącego i uczenie. Po kilku, maksymalnie kilkunastu
pętlach sieć osiąga swój szczyt umiejętności, potem wraz z ilością pętli
umiejętności spadają. Nie znalazłem odpowiedzi na pytanie dlaczego spadają.
Niemniej to dodatkowo potwierdza to tezę, że nie można użyć dowolnego
zbioru uczącego - zbiór musi być odpowiedni.
Jeśli sieć osiąga swoje maksimum po takich kilku - kilkunastu iteracjach, to
nie pozostaje nic innego, jak najlepsze wyniki zapamiętać, wagi sieci
zresetować i zacząć następne kilkanaście iteracji. Ostatecznie można wziąć
najlepszą z najlepszych. Myślę że przykład szachów pokazuje trzy typowe
problemy jakie napotyka się w praktyce przy sieciach:
1) przetworzenie danych wejściowych
2) dobór zbioru uczącego
3) dobór czasu uczenia
Do tego dochodzi problem czwarty, czyli dobór architektury sieci - w swoich
eksperymentach niby dotarłem do tego etapu, ale jak na razie go nie przebrnąłem.
Na ogół wyniki bardziej rozbudowanych architektur były gorsze, czas uczenia
tysiące razy dłuższy, nigdy nie było wiadomo czy uczenie nie utknęło w
płytkim minimum lokalnym, itd. Dobór architektury to bardzo trudna sprawa.
Uważam że generalnie tak jest w stosowaniu SSN, czyli kupa trudnych
problemów do rozwiązania.
>>> Jak to m�wi� ludzie z front-office, fajnie dzia�aj�, ale nie da si�
>>> tego sprzeda�, bo to black-box - na pytanie "jak to dzia�a w konkretnym
>>> przypadku" mo�na rybk� szczeli�.
>> Racja, a to zaledwie wierzcho�ek g�ry lodowej problem�w SSN. Trudno
>> (bardzo trudno) na bazie wyuczonej sieci wywnioskowaďż˝ jaki ona w istocie
>> realizuje algorytm, kiedy ten algorytm zadzia�a, a kiedy zawiedzie.
>> Nawet gdy sie� ma niezbyt du�o po��cze�/wag to trudno jest si� uczy�
od
>> wyuczonej sieci. Od wielu innych metod uczenia maszynowego mo�na si�
>> czegoďż˝ dowiedzieďż˝ niczym od nauczyciela.
> Mało wiem o siciach, ale niektórzy właśnie się odgrażali, że najpierw
> zrobić sieć, potem zobaczyć co wyjdzie, a na koniec zanalizują i się
> czegoś dowiedzą.
Dużo zależy od tego jaką analizę chcą przeprowadzić. Jakiś czas temu
miałem dużo bardzo niepewnych danych. Chciałem się dowiedzieć czegoś o
rozkładach. Napisałem na kolanie aproksymator, a jako funkcji aproksymującej
użyłem krzywej łamanej. Krzywa łamana ma dużą swobodę w aproksymacji,
równie dobrze może wyjść totalna sieczka, co jakiś elegancki kształt
potwierdzający przypuszczenia intuicyjne. Nic nie stoi na przeszkodzie,
aby sieci neuronowej użyć jako takiego aproksymatora, a potem chociażby
odrysować przy jej pomocy jakiś wykres i się czegoś nauczyć. Być może
jest jeszcze kilka innych sprytnych sposobów uczenia się od wytrenowanej
sieci, ale na podstawie analizy wartości wag i połączeń w dużej sieci to
bym nie chciał się uczyć od sieci :)
> Mi to podejście wydaje się atrakcyjne, skoro uczymy
> się od natury, że zwrotne delfiny mają "poszarpane" płetwy i tak
> można zbudować lepszą łódź podwodną, to czemu nie symulować natury,
> żeby nauczyć się rozwiązywać problemy nie występujące w naturze -
> chyba że istnieją misie wycofujące "Long Vehicles" o czym nie wiem ;)
Czasami prawidłowy tok rozumowania wygląda właśnie tak przedstawiłeś. Jeśli
coś w jednym przypadku poskutowało, to i w drugim poskutuje, zwłaszcza gdy w
drugim dokonamy jakiś modyfikacji. W naturze poskutokowały siły
napędzające ewolujcę w dziedzinie optymalizacji organizmów żywych. Więc jak
poskutkowały w optymalizacji ogranizmów żywych, to atrkacyjne wydaje się
zaprzęgnięcie ich do optymalizacji czegoś innego. Jednak rodzi się szereg
pytań:
1) Jakie siły napędzają ewolujcę? Na pewno nie napędza jej przypadek. Atom
węgla nie zmienia się przypadkowo w atom nieznanego pierwiastka, a
grawitacja nie zienia się losowo w antygrawitację, ani nawet nie
zmienia się jej siła co losowy czas o losową wartość - to samo
ma się z pozostalymi prawami fizycznymi i z właściwościami związków
chemicznych.
2) Czy optymalizacja algorytmu wycofywania ciężarówki jest w ogóle
możliwa przy pomocy sił podobnych do tych które napędzaly ewolucję?
Łódź podwodna porusza się świetnie pod wodą, ale po drodze szybkiego
ruchu nie pojedzie, nawet po istotnych modyfikacjach. Nie wiemy jaka
jest natura sił optymalizujących ogranizmy żywe, więc nie wiemy
jakie mają pole zastosowań i po jakich modyfikacjach.
3) Czy ogranizmy żywe w ogóle były optymalizowane? Może materia ma
taką cechę, że jak się potrzasa odpowiednimy substancjami chmicznymi
w odpowiednich warunkach, to powstaje życie.
Ja stawiam 50 dolców na wersję trzecią.
> To trochę naginana teoria z tym modelowaniem przyrody, ale ma jeszcze
> jakiś sens.
Ma sens i generalnie podoba mi się, ale do póki siły ewolucyjne do
komputera wkładamy "na chama" to uzyskamy podobnej skuteczności jak w
optymalizacji oka ćmy. Przypadek oznacza brut-force, a to nawet na
zadaniu u małym rozmiarze zarżnie komputer molekularny zwany kosmosem.
Naturalne algorytmy ewolucyjne są bardzo wyrafinowane, a z powodu
samego chaotycznego mieszania się substancji chemicznych, nie mamy
prawa stawiać przypadku u ich podstaw.
>> A czy fajnie dzia�aj�? Nie wiem czy tak fajnie... W moich szachach
>> dzia�aj� rewelacyjnie, ale opracowanie i implementacja cho�by algorytmy
>> przygotowuj�cego dane zaj�o mi wiele wiele miesi�cy, je�li nie lat. Jak
>> dam tak po prostu dane z gier, czy dane graczy do uczenia, to mam
>> powiedzmy 90% szans na ca�kowicie bezsensowny efekt i jakie� 10% na
>> efekt kiepski :) Tak wi�c rola sieci neuronowej w tej ca�ej zabawie jest
>> marginalna, rewelacyjne dzia�anie wynika z tzw "dodatk�w" kt�re okazuj�
>> si� najwa�niejsze.
> Mało mam praktyki, ale sporo znam teorii. Chociażby wg. modeli
> matematycznych gęstość informacji jest inna w neuronach z funkcją
> ciągłą i nieciągłą. Czyli jak masz back-propagation mnożesz
> minimalizować, ale za pomocą nieciągłych da się przy tej samej liczbie
> połączeń (aksjonów, tak?) uzyskać więcej kwantyfikowanych relacji. I to
> o rzędy wielkości.
Czy ja wiem... funkcję skokową można dowolnie dobrze aproksymować
funkcją ciągłą - ale to teoria. Ja w praktyce napotykam na zupełnie
inne problemy niż opisywane w literaturze. Np. teraz stanąłem przed
zadaniem wyuczenia sieci (własciwie to dowolnego aprosymatora, niekoniecznie
sieci) na danych nie zawierających wyjścia :) Mam dane wejściowe, a nie mam
danych wyjściowych, nikt nawet nie umie oszacować jakie są wyjścia dla
danych wejściowych. I co począć? Jak mam wyuczyć sieć poprawnego wyjścia? :)
> Ja właśnie tak przy okazji uczenia się CUDY coś takiego przetestowałem.
Nom bo to fajne zadanie na cudę.
> Powiedzmy: 3 layery 100x100 mają 3e4 linków. Layery 1000x1000 już
> 3e6. Wygląda mi to na straszną marnację mocy obliczeniowej i
> przy okazji wcale nie odpowiada naturze. Więc jeżeli takie layery
> mają 2 wymiary, to zrobiłem neurony mające kształt, powiedzmy dla
> layerów 100x100 nauron miałby {x -3:7,y -10:10} - jak kolejny neuron
> jest "w kształcie" połączenie jest. Od razu zrobiło się luźniej.
Nie kumam.
> Potem: nieliniowość. W zasadzie funkcja była taka: y = x > .5 ? 1 : 0.
> Zrobiłem też więcej layerów - skoro linków mniej, to można je łączyć
> dwa-trzy layery w dół i nie działa prawo klasycznych sieci, że to
> samo da się osiągnąć 3 layerami in-pośredni-out dzięki nieliniowości
> - i uczyłem output layer gradientem, a pozostałe tak: jeżeli wynik jest
> ok to nic się nie zmienia, jeżeli jest błąd to
> link_delta = C * abs(e) * sign(source_firing - 0.5) * sign(target_firing
> - 0.5), gdzie firing jest 0. lub 1. a C < 0. Czyli odwrotność
> pozytywnego wzmocnienia a la Pawłow. A, i bez biasu, więc zawsze musi
> być jakiś input bo inaczej ZIZO - zero in zero out.
Rozumiem ledwo ledwo, coś jakby sieć tokenowa.
> Zrobiłem to tak dla picu, uczyłem się cudy i mało mnie interesowało,
> czy te sieci będą się do czegokolwiek nadawaďż˝, ale jak się okazało
> działa: sieć się bardzo fajnie uczyła, z tym że _nigdy_ nie uczyła
> się do końca, zawsze błąd oscylował na niewielkim poziomie, powiedzmy,
> że kilka % przypadków było źle. Testowałem operacje logiczne, a nie
> "płynne" dzidziny. Dlatego o tym wspominam - szachy są skwantyfikowane,
> nawet jeżeli wynik jest "to całkiem całkiem" a inny wynik "to trochę˝
> lepiej".
Gdzieś mam (zabawowy) projekt sieci neuronowej do rozpoznawania liczb
pierwszych :) Ciekawe ile trzeba nieuronów/wag do prawidłowego rozpoznawania
wszystkich liczb pierszych nie większych niż N :D
>>> Dodatkowo NN to artefakt ideologii AI, gdzie mapowanie m�zgu przes�ania
>>> mapowanie umys�u, a tu ju� si� k�ania lingwistyka.
>> Hmmm nie wiem :) Ja stawiam (wiem �e kontrowersyjn�) hipotez�, �e m�zg
>> to antena, analogiczna jak oczy, czy uszy.
>Yyyy... a powiesz co przez to rozumiesz?
Czasami lubię wymyślać dziwne tezy, abym potem był zmuszony do ich bronienia :D
Gdy badacz obserwuje drzewo rosnące przed nim, to aby je zbadać, zajmuje
się drzewem, a w żadnym razie nie wydłubuje sobie oczu i nie zagląda do ich
środka :) Gdy badacz słyszy dźwięk upadającego kamienia i chce się o nim
czegoś dowiedzieć, to zajmuje się kamieniem, a nie swoimi uszami. Podobnie
jest z bodźcami węchowymi, dotykowymi, smakowymi. A gdy badać ma zajmować
się wspomnieniami, wyobrażeniami, skojarzeniami, snami, przemyśleniami, to
nagle ma się włamywać do wnętrza neuronów, a nie szukać źródła gdzieś na
zewnątrz. Podejrzany brak konsekwencji :D
Po drugie jak to możliwe żeby w 1-2kg materii dało się zbudować tak
niezwykły komputer? Mało tego, jak da się zakodować w tak małej
ilości informacji genetycznej wzór na powstawanie mózgu? Jeśli jest
to niemożliwe, to inteligencja jest gdzieś poza neuronami.
Pozdrawiam
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-24 Aby WKOOOORWIĆ ekofaszystów ;-)
- 2024-11-22 OC - podwyżka
- 2024-11-22 wyszedł z domu bez buta
- 2024-11-22 Bieda hud.
- 2024-11-24 DS1813-10 się psuje
- 2024-11-23 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-11-23 Szczecin => QA Engineer <=
- 2024-11-23 Warszawa => SEO Specialist (15-20h tygodniowo) <=
- 2024-11-22 Warszawa => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-22 Warszawa => Senior Account Manager <=
- 2024-11-22 Warszawa => Key Account Manager <=
- 2024-11-22 Warszawa => DevOps Specialist <=
- 2024-11-22 Kraków => IT Expert (Network Systems area) <=
- 2024-11-22 Warszawa => Infrastructure Automation Engineer <=
- 2024-11-22 Warszawa => Presales / Inżynier Wsparcia Technicznego IT <=