🚀

kolla jag har gjort en drone

:(

tryck ☝ sĂ„ fĂ„r du se den, men rör inte min slider

inte sÄ lÀtt va? dra ner slidern lite sÄ kanske din sÄsiga hjÀrna kan hÀnga med

đŸ€–

dags att PIDa

:( :(

|Kp:

|Ki:

|Kd:

HÀr Àr nÄgra olika PIDs med olika parametrar, kan vÀl vara kul att se... den högra kan man stÀlla in sjÀlv

Testa och se om du kan hitta bÀttre PID-vÀrden Àn jag och maila dom till mig pÄ: hatiwiy466@temp-mail.org

PIDsen presterar bara bra för att dom inte behöver bry sig om balans, den gasar alltid symetriskt sÄ rotationen alltid Àr 0 (testa "G" i 1)

För fĂ„ mer kontroll mĂ„ste man anvĂ€nda mer avancerad reglerteknik...😮 eller? đŸ˜Č

🧠

Artificiella neuroner

Artificiella neurala nÀtverk Àr universella funktionsapproximatorer, sÄ med tillrÀckligt mÄnga lager borde det gÄ att flyga min drone

Minns du hur NN fungerar? inte...? HÀr Àr en recap:

Vi tar ett neuron med 2 inputs och 1 output, neuronen har 2 vikter (W) och en bias (B)

VĂ„r output y = ReLU(W∙X+B)

ReLU Àr vÄr aktiveringsfunktion som ger nÀtverk möjligheten att approximera olinjÀritet [ReLU(x) = max(0, x)]

Leaky ReLU Àr ett alternativ till den vanliga som gör att aktiveringsfunktionen fÄr nollskild derivata för inputs mindre Àn 0 (vilket inte kommer spela roll hÀr)

Vi har 2 numeriska vÀrden in, 1 numeriskt vÀrde ut i vÄr neuron: y = f(x1, x2)

Nu kan vi se vad en ensam neuron kan lÀra sig, addition?

x1 x2 y
0 0
0 1
1 0
1 1

=>

W1 W2 B
X1 X2 Y

=>

Loss

StÀll in trÀningsvÀrdena till vÀnster och tryck "kör"

Kolla outputen Y frÄn den trÀnade neuronen genom X1, X2

Testa att trÀna in en OR-gate, AND-gate och XOR-gate. Fuzzy Logic

Den lÀr sig genom att minimera en kostnadsfunktion Cost(r, y) = 1/2 * (r - y)^2

Men hur?

🧬

hÀnger du me?

đŸ§«

Lager av neuroner

Vi seriekopplar flera neuroner för att approximera mer komplexa funktioner

X1' = ReLU(w11∙x1 + w12∙x2 + b1)
X2' = ReLU(w21∙x1 + w22∙x2 + b2)
y = ReLU(w1∙x1' + w2∙x2' + b) = ReLU(w1∙ReLU(w11∙x1 + w12∙x2 + b1) + w2∙ReLU(w21∙x1 + w22∙x2 + b2) + b)

same same but different

x1 x2 y

=>

Layer1
W B

=>

Layer2
W B Loss

=>

X1 X2 Y

testa att trÀna in lite olinjÀra funktioner som OR, AND, XOR osv.

đŸ§‘â€âœˆïžđŸ§ 

Pilotnerver

:(

|n_drones:

|t_generation:

|dt scale:

|pwo:

Tryck "KÖR" för att se om skiten ens fungerar eller om jag bara har slösat tid hĂ€r

NÀr du har tröttnat pÄ att se misslyckande kan du kryssa i pwo och starta om för att börja med ett fÀrdigare nÀtverk

Det fÀrdigtrÀnade nÀtverket verkar vara lite blygt och presterar oftast inte första generationen, ge den lite tid eller testa att starta om


Idén med AI och neurala nÀtverk Àr att utifrÄn input och output hitta en funktion som beskriver sambandet

Det lÄter som en perfekt lösning för differentialekvationer, som en blackbox som kan anvÀndas överallt

Men att trÀna ett nÀtverk och hitta rÀtt design och parametrar Àr som att trÀna en dvÀrghamster att göra backflips

HÀr Àr mina tips:

1.

Aktiveringsfunktionen spelar roll för trÀningen bÀst att testa nÄgra olika och se

2.

Trots att NN kan lÀra sig avancerade mönster Àr det bra att dumma ner allt sÄ lÄngt det gÄr

För en mÀnniska Àr det uppenbart att rotationen sparad som vinkel i radianer representerar en vektor i planet

Men för slumpen att komma fram till eulers formel pÄ kort tid och med fÄ parametrar Àr önsketÀnk

Först försökte jag ge positionen av dronen och lÄta nÀtverket genom kostnadsfunktionen lista ut vart den skull hÄlla sig

men det fungerade bÀttre att dumma ner (behandla) informationen genom att ge riktningen till mÄlet istÀllet

3.

Det finns lokala minimums sÄ det rÀcker och blir över, bÀst att starta om nÀr den inte vill lÀra sig

Hoppas du lÀrde dig nÄgot, jag gjorde inte det.