eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPodpis cyfrowy większej ilości podmiotówRe: Podpis cyfrowy większej ilości podmiotów
  • 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

  • 23.04.13 20:54 Edek
  • 27.04.13 22:08 M.M.

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: