Activity
Mon
Wed
Fri
Sun
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
What is this?
Less
More

Owned by Amir

<hackersson>

18 members ‱ Free

HÀr samlas Sveriges bÀsta programmerare och hackers för att bygga framtiden. HÀng pÄ.

Memberships

DS
Dropshipping Sverige

3 members ‱ Free

DS
Dropshipping Sverige

203 members ‱ $5/m

Adonis Gang

185.9k members ‱ Free

Techover Community

1k members ‱ Free

Building in public by Daniel

15.7k members ‱ Free

8 contributions to <hackersson>
VĂ€lkommen nya medlemmar!
Introducera gÀrna er sjÀlva!
0
0
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Ä.
ML i C
0 likes ‱ Feb '24
@Alexander Vivas Jernström Nice! Yes, pluggat en del linjÀr algebra just av den anledningen ocksÄ. Det har varit vÀldigt givande! Makes sense, gÀllande matrix, tack!
0 likes ‱ Feb '24
@Alexander Vivas Jernström btw, om du har bekanta / vÀnner du tror hade gillat gruppen, bjud in dem!
@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 likes ‱ Feb '24
@Alexander Vivas Jernström Precis, det kan bli kognitivt utmanande nÀr det Àr flera teknologier man jobbar med och försöker bli bÀttre pÄ. Jag har ocksÄ strukturerat det likt dig, första timmarna pÄ dagen dedikerar jag Ät en teknologi, andra delen / efter "jobbet" Ät tex ML. Roligt nog tycker jag ML Àr lÀttare Àn front end... Just nu gÄr jag en kurs i full-stack med fokus att shippa mjukvara i production. Jag kÀnde att det var den sista pusselbiten jag saknade, att kunna pussla ihop next.js, blitz, typescript etc och kunna monotisera en idé som jag har. SÄ fort jag Àr klar med den kursen sÄ gÄr jag all in pÄ ML och ska försöka trÀna sÄ mycket modeller som möjligt, och tillsammans med full-stacken försöka sÀtta det jag bygger i en UI och en produkt. Vill gÄ igenom den itererings-cykeln sÄ mÄnga gÄnger som möjligt. Idé, bygga/trÀna modell, bygga front & back, ship. repeat.
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.
0 likes ‱ Feb '24
@Alexander Vivas Jernström Utan tvekan att hoppa till sista veckan av 3e kursen i Andrew NG's kurs pÄ Coursera. Det Àr nÄgra dagars arbete och du fÄr bra förstÄelse för grunden och uppÄt. Sedan kan du ju jobba vidare dÀrifrÄn! Let me know om du kör, disskuterar gÀrna vad du lÀr dig medan du lÀr dig!
Hur fungerar AI / computer vision (förklaring för 5 Äring)
LĂ„t mig bryta ned det. 1. Datorn fĂ„r en bild skickad till sig. 2. Datorn anvĂ€nder en process som heter convolution: Vi kan se det som att vi "anstĂ€ller" en liten gubbe med ett förstoringsglas som analyserar varje pixel av bilden, dĂ€r gubben letar efter mönster och detaljer. Oftast sĂ„ anstĂ€ller man 16, 32 eller 64 smĂ„ gubbar samtidigt. NĂ€r dessa smĂ„ gubbar gjort klart sin analys ger de oss en tabell med numeriska vĂ€rden dĂ€r de högsta vĂ€rdena pĂ„ den tabellen reflekterar de delar av bilden dĂ€r de hittat mönster och detaljer. 3. Förenkla gubbarnas resultat: VĂ„ra smĂ„ gubbar med förstoringsglas har nu försett oss med 16, 32 eller 64 olika individuella tabeller med data. Dessa tabeller har VÄLDIGT mycket data och Ă€r tredimensionella. DĂ€rför sĂ„ applicerar vi en funktion som heter pooling, dĂ€r vi extraherar endast de högsta numeriska vĂ€rdena, eftersom det Ă€r de högsta vĂ€rdena som betyder att vĂ„ra gubbar hittat ett mönster i bilden. Detta minskar Ă€ven storleken pĂ„ dessa tabeller och gör att vĂ„ra datorer kan enklare "computa" dessa tabeller. 4. Vi repeterar steg 2 och 3: Vi anstĂ€ller 16, 32 eller 64 smĂ„ gubbar med förstoringsglass som ska convolva bilderna IGEN och leta efter FLER komplexa mönster. Dessa gubbar fortsĂ€tter arbetet frĂ„n de tidigare gubbarna - alltsĂ„ sĂ„ analyserar de vad de andra redan tidigare har analyserat. Vi applicerar pooling igen, för att endast fĂ„ med oss den datan som Ă€r relevant (dĂ€r vĂ„ra arbetare funnit mönster). Man kan repetera detta steg med att fortsĂ€tta anstĂ€lla smĂ„ gubbar och poola deras resultat mĂ„nga gĂ„nger. Desto fler gĂ„nger man gör det, desto mer detaljer av bilden man fĂ„ngar, men det kan medföra problematik i form av att modellen blir för smart för sitt egna bĂ€sta och börjar lĂ€ra sig fel saker (overfitting/high variance). Om du kollar pĂ„ den bifogade bilden sĂ„ ser du att varje bild har en gul ruta pĂ„ sig och att den blir mindre och mindre – den gula rutan representerar gubben med förstoringsglas som analyserar, och att bilden blir mindre Ă€r för att vi applicerar pooling för att fĂ„ bort all irrelevanta delar av bilden vi lĂ€ngre inte vill ha
Hur fungerar AI / computer vision (förklaring för 5 Äring)
0 likes ‱ Feb '24
@Yacine Laghmari Tack sjÀlv man! Vad jobbar du pÄ just nu?
1-8 of 8
Amir Salim
1
1point to level up
@amir-salim-4153
Chief techno king

Active 277d ago
Joined Aug 30, 2023
Powered by