View Single Post
Jeg har fått satt opp et enkelt nevralt nettverk og fått surret litt med trening og testing; helt utrolig fascinerende hvor "enkelt" det egentlig lot seg gjøre. Så på maskinlæring og NN'er som uforståelige "beist" forbeholdt supernørder med superhjerner, men på mange måter er det jo veldig forståelig og 100% logisk.

Har forøvrig brukt et utgangspunkt som bruker lister over in- og output til de forskjellige lagene heller enn konstruktører av uavhengige nevroner satt sammen; uten at jeg helt forstår hvordan forskjellige oppsett sammenlignes mht funksjonalitet eller presisjon?

Ei heller vet jeg hvordan det måler seg med konstruksjon av nevrale nettverk på andre språk? Føler meg litt småforelsket i haskell nå; men siden jeg ikke har sett noe NN i aksjon før er det vel litt som å forelske seg i dama du mister jomfruen til. Noen som har gjort det i andre språk?

Sitat av alexanderb Vis innlegg
Jeg har brukt Haskell i skole- og industrisammenheng de siste årene. Etter min mening er Haskell det beste språkvalget til "general purpose"-programmering i dag, da det er et meget godt språk, som samtidig er populært nok til å ha mange biblioteker og verktøy, og mange folk som kan hjelpe deg. De språka hvis totalpakke er på nivå med Haskell (primært Idris), er ikke like etablerte.

Det ble sagt tidligere i tråden at en ulempe med funksjonell programmering er at det blir uoversiktelig i store kodebaser med mange deltakere. Dette kjenner jeg meg overhodet ikke igjen i, da jeg vil påstå at maintainability er hovedfordelen et Haskellprosjekt har over et prosjekt i et ikke-funksjonelt paradigme. Haskell skalerer nydelig, og å gjøre store endringer på store prosjekter er en fryd.

Det ble også sagt at statisk typesjekking ofte ikke er verdt det. Dette utsagnet er jeg også skeptisk ovenfor. Statiske typer i ALGOL 60 og lignende (C, C++, Java, osv.) er ganske lite nyttige, og ofte i veien. Statiske typer i Haskell er helt fantastiske. I/O som en type gjør matematisk renhet nydelig å jobbe med. Algebraiske datatyper lar deg representere dype tanker, og renhet lar deg transformere dem bekymringsfritt. Typer i Haskell er rett og slett en drøm å bruke.

Hva angår monader, så ville forklart dem ulikt til ulike mennesker. En kategoriteoretiker kan man fortelle at de er monoider i kategorien endofunktorer (hvor typer er endofunktorer i Haskell). Til en C++-programmerer ville jeg forklart det som et semikolon man kan overlaste. Kort fortalt har man i matematikken at to uttrykk ved siden av hverandre ikke egentlig betyr noe. Monader lar det uttrykke hva de skal bety. Og de kan bety forskjellige ting i forskjellige situasjoner. Om det høres beundringsverdig abstrakt ut, så er det fordi det er det. Monader i Haskeller er i all hovedsak en funksjon med typen M a -> (a -> b) -> M b. Her er a og b typer, og M en typekonstruktør. Vi har med andre ord polymorfiske typer og en polymorfisk kontekst. Jeg anbefaler den lettfattelige artikkelen You Could Have Invented Monads: <http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html>. Det gir dog liten mening å sette seg inn i monader før man setter seg inn i det grunnleggende.
Vis hele sitatet...
Jøss, stilig når folk virkelig kan sakene sine.

Føler meg rimelig tjukk i hodet når jeg leser dette nå, tror jeg kommer tilbake til dette i morgen.