Article View: pl.comp.programming
Article #205119Re: Podpis cyfrowy większej ilości podmiotów
From: Edek
Date: Sun, 21 Apr 2013 15:58
Date: Sun, 21 Apr 2013 15:58
111 lines
7987 bytes
7987 bytes
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.
>> 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 zobaczą co wyjdzie, a na koniec zanalizują i się
czegoś dowiedzą. 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 ;)
To trochę naginana teoria z tym modelowaniem przyrody, ale ma jeszcze
jakiś sens.
> 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.
Ja właśnie tak przy okazji uczenia się CUDY coś takiego przetestowałem.
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ł, 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.
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.
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".
>> 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?
>> Praktycznie ja najpierw zrobiłem typowe NN, gdzie zrównoleglanie było
>> banalne, a potem zrobiłem coś takiego:
> Typowe, warstwowe, jednoprzebiegowe sieci powinny się zrównoleglać
> prawie liniowo. W przypadku bardziej skomplikowanych sieci, można
> zrównoleglać obliczanie błędu i/albo gradientu.
Tak, dokładnie, z tym że tak jak napisałem nie liczyłem wcale gradientu.
A przynajmniej nie jego propagacji.
>> I to już zaczęlo mnie uczyć kombinowania w programowaniu gpu. Naprawdę
>> trzeba się namęczyć.
> Gdy się rozważa siedząc w wygodnym fotelu, to nie wydaje się trudne, ale
> w praktyce... wierzę że jest co tuningować przez długie tygodnie.
Ano. Fajnie jest mieć pomysł, ale potem trzeba na parę dni zakasać
rękawy. Oby na kilku dniach się skończyło...
--
Edek
Technical Details
Message-ID:
<kl12b3$ag0$2@news.task.gda.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.task.gda.pl!not-for-mailReferences:
<kkdqot$5rl$1@node2.news.atman.pl> <b177dfc7-88f3-4cd7-9075-2acdd76f9662@googlegroups.com> <kkhr56$a62$1@news.task.gda.pl> <30021d10-a471-4cae-8f17-61eb36cb775e@googlegroups.com> <kkkjpe$b54$1@news.task.gda.pl> <8b53662c-8c31-4fc3-b82b-8173d9cf4f6f@googlegroups.com> <47d7734e-680b-4e13-995e-c0a2407217c3@googlegroups.com> <cdced490-b579-41ee-a123-afb12010cc12@googlegroups.com> <kkmvfc$hu3$2@news.task.gda.pl> <d936ef81-4b63-4dcb-8771-cc2a1faab4e1@googlegroups.com> <d4359f15-51e4-438a-9057-b46d93bfc70c@googlegroups.com> <9f8703e3-4731-4da6-9e7a-0bf564f5896e@googlegroups.com> <18cc0918-5abe-49a6-bb42-afdaa0700533@googlegroups.com> <5929d4d4-0b3a-44ad-a01c-1a83056fd347@googlegroups.com> <kkoio2$o70$2@news.task.gda.pl> <kkomea$o70$5@news.task.gda.pl> <9142f2b9-5330-4f31-a634-f4550a9b02d7@googlegroups.com> <kkoqsf$g5v$1@news.task.gda.pl> <7200499e-3d73-4d65-ba00-f3f605597d73@googlegroups.com> <kkp3rj$avb$2@news.task.gda.pl> <b4e7fa06-74be-4775-878e-3ee633078b88@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.task.gda.pl!not-for-mail From: Edek <edek.pienkowski@gmail.com> Newsgroups: pl.comp.programming Subject: Re: Podpis cyfrowy większej ilości podmiotów Date: Sun, 21 Apr 2013 15:58:27 +0000 (UTC) Organization: CI TASK http://www.task.gda.pl/ Lines: 111 Message-ID: <kl12b3$ag0$2@news.task.gda.pl> References: <kkdqot$5rl$1@node2.news.atman.pl> <b177dfc7-88f3-4cd7-9075-2acdd76f9662@googlegroups.com> <kkhr56$a62$1@news.task.gda.pl> <30021d10-a471-4cae-8f17-61eb36cb775e@googlegroups.com> <kkkjpe$b54$1@news.task.gda.pl> <8b53662c-8c31-4fc3-b82b-8173d9cf4f6f@googlegroups.com> <47d7734e-680b-4e13-995e-c0a2407217c3@googlegroups.com> <cdced490-b579-41ee-a123-afb12010cc12@googlegroups.com> <kkmvfc$hu3$2@news.task.gda.pl> <d936ef81-4b63-4dcb-8771-cc2a1faab4e1@googlegroups.com> <d4359f15-51e4-438a-9057-b46d93bfc70c@googlegroups.com> <9f8703e3-4731-4da6-9e7a-0bf564f5896e@googlegroups.com> <18cc0918-5abe-49a6-bb42-afdaa0700533@googlegroups.com> <5929d4d4-0b3a-44ad-a01c-1a83056fd347@googlegroups.com> <kkoio2$o70$2@news.task.gda.pl> <kkomea$o70$5@news.task.gda.pl> <9142f2b9-5330-4f31-a634-f4550a9b02d7@googlegroups.com> <kkoqsf$g5v$1@news.task.gda.pl> <7200499e-3d73-4d65-ba00-f3f605597d73@googlegroups.com> <kkp3rj$avb$2@news.task.gda.pl> <b4e7fa06-74be-4775-878e-3ee633078b88@googlegroups.com> NNTP-Posting-Host: 37-128-43-51.adsl.inetia.pl Mime-Version: 1.0 X-Trace: news.task.gda.pl 1366559907 10752 37.128.43.51 (21 Apr 2013 15:58:27 GMT) X-Complaints-To: abuse@news.task.gda.pl NNTP-Posting-Date: Sun, 21 Apr 2013 15:58:27 +0000 (UTC) User-Agent: Pan/0.139 (Sexual Chocolate; GIT bf56508 git://git.gnome.org/pan2) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit