User
Write something
Pinned
Ny? Börja här!
Välkommen till hackersson. Vårt syfte? Sammanföra Sveriges skarpaste utvecklare och programmerare för att tillsammans forma teknikens framtid. Som medlem av hackersson är du här för att driva, skapa och förändra. Innan vi dyker in, presentera dig: - Ditt namn. - Dina färdigheter - Ditt nuvarande projekt eller fokus. - Din bas (stad eller land). Låt oss ta tekniken framåt. Kommentera nedan. P.S. Rekommenderar dig starkt att ladda ned Skool som app på mobilen, finns för både IOS och Android. P.P.S Du kommer att bli utslängd för gruppen om du försäker marknadsföra andra tjänster och spamma människor.
Complete action
0
7
New comment Feb 20
Ny? Börja här!
Välkommen nya medlemmar!
Introducera gärna er själva!
0
0
@Alexander - struktur?
Vet att du programmerar front end men också ML, har du någon struktur för när du gör vad? Kan bli lite spretigt för mig ibland för jag vill så gå extremt djupt in i ML. Men sedan också front end 🤣
0
3
New comment Feb 26
ML i C
De som har testat att bygga någonting med ML känner nog till bibliotek såsom PyTorch eller Tensorflow. Dessa har blivit extremt populära eftersom de abstraherar bort mycket av de jobbiga sakerna såsom att se till så att beräkningarna görs hypereffektivt. Biblioteken är även gjorda för att användas i Python, ett väldigt användarvänligt programmeringsspråk. Det låter en helt enkelt att jobba på de viktiga sakerna, att bygga riktigt grymma modeller. För att få en bättre förståelse för hur algoritmerna fungerar matematiskt men även vad som händer "inuti datorn" försökte jag bygga mitt egna ML bibliotek från scratch i C. Detta var inte lätt men jag fick en mycket större uppskattning för PyTorch och lärde mig en hel del. Jag kommer visa hur jag implementerade ett "fully connected"/linear/dense layer. I ett neural network har man lager vilket enkelt förklarat är olika typer av operationer som görs på datan. Det enklaste lagret "dense layer" (så jag kallar det i mitt bibliotek även fast jag mestadels använder PyTorch lol) tar en samling nummer som representerar någonting, multiplicerar det med en "vikt" och adderas med en "bias". Vikter och bias kallas för parametrar och påverkar outputen av nätverket, det är dessa man vill ändra på för att uppnå ett så bra resultat som möjligt. För att göra multiplikationen generell för hur stora datamängder som helst använder man matrismultiplikation. Note: Matriser och linjär algebra är utanför scopet av denna post men rekommenderar starkt att lära sig det om man vill bli bra på ML och förstå algoritmerna. Att gå igenom ett dense layer kan kompakt skrivas som: Y = WX + b, där W är en matris med alla vikter, Y är outputen, X är inputdatan och b är bias. För att implementera detta i mitt program var jag först tvungen att implementera en matris struktur. (Se första bild). En matris kan ses som en tabell där man har rader och kolumner. Detta kan ses som motsvarigheten till en klass i Python. För att skapa matriser implementerade jag, createMatrix på detta vis (Se andra bild). Lägg märke till funktionen malloc. I andra mer high level språk är det väldigt enkelt att definiera arrays, man definierar en ny variabel och sen kanske man använder [] eller liknande tecken. I C fungerar det inte riktigt likadant, man måste istället definiera exakt hur stor del av ram minnet som ska användas. Eftersom arrayen kommer ha längd cols * rows och vara av typ floats innebär det att storleken kommer vara antal element gånger storleken på datatypen. Jag har även implementerat andra funktioner relaterade till matriser som jag inte kommer gå igenom en som finns på min github att kika på.
1
4
New comment Feb 26
ML i C
Reinforcement Learning (RL) är AWESOMEBALLS
Yo team! Har plöjt igenom en hel del RL (Reinforcement Learning) senaste tiden och måste säga att jag är helt såld på detta. Det är inte bara grundpelaren bakom självkörande bilar och avancerade robotar, utan det står också bakom genombrottet Alfa Go (du måste se, jag länkar). Något med RL har helt enkelt fångat mig – tror det är det magin i att inte behöva berätta för en modell exakt hur den ska göra saker, utan bara vad målet är. Tänk er scenariot: vi ska landa en raket på månen. Vi sparkar igång med att definiera en "reward" funktion. Det är inte bara en enkel +10 för rätt drag och -10 för fel, utan det kan bli riktigt knivigt och sofistikerat, beroende på vad vi vill att vår robot ska optimera mot. Detta är kärnan i RL – att styra lärandet genom belöningar mot det beteende vi vill se. Här står vår raket, eller robot, i ett visst "state" (s), redo att göra sin grej. Den väljer en "action" (a), och boom – den landar i en ny situation, eller ett nytt state (s'). Målet är att i varje given situation (s), välja en handling som maximerar returen från vår belöningsfunktion. Och här kommer Bellmans ekvation in i bilden, som vår räknemästare. Den ser till att utvärdera alla möjliga framtida scenarier (s') som vår robot kan hamna i, för att sedan välja den handling (a) som maximerar vår reward. Det är som en oupphörlig optimeringsdans, där ekvationen (V(s) = maxa(R(s,a) + γV(s'))) guidar varje steg. Och med hyperparametern gamma (γ) får vi makt att influera om vår robot ska tänka mer på korta eller långa drag – precis som en schackmästare som planerar flera drag framåt. Med denna hyperparameter kan vi ställa in om roboten ska ta det där steget åt höger för 15 poäng nu, eller navigera en lite klurigare väg som kanske tar 6 steg men leder till 25 poäng i slutändan. Det handlar alltså om att balansera mellan att utforska nya vägar och att utnyttja de vägar som redan är kända för att ge bra utdelning. Jag rekommenderar dig STARKT att kolla på dokumentären jag bifogar för att se kraften av RL.
2
2
New comment Feb 26
Reinforcement Learning (RL) är AWESOMEBALLS
1-8 of 8
<hackersson>
skool.com/hackersson-7455
Här samlas Sveriges bästa programmerare och hackers för att bygga framtiden. Häng på.
Leaderboard (30-day)
powered by