Aiheeseen liittyviä julkaisuja 'algorithms'


Virhe lähestymistapamme: Mitä teet väärin toteuttaessasi Recurrent Neural Network-LSTM:ää!
Aloin syventyä koneoppimisen alaan muutama kuukausi sitten ja muutaman projektin jälkeen ajattelin itsekseni: "Tämä ei ole todella vaikeaa". Se oli siihen asti, kunnes tapasin syväoppimisen. Täysin uusi opintoala, syväoppiminen, vaatii valtavan määrän matemaattista ja analyyttistä tietoa. Neuraaliverkon luominen vastaa periaatteessa ihmisaivojen tekemistä! Kun valmistauduin tutustumaan Neural Netsiin, tajusin, että se on niin ylivoimaista. On niin monia monimutkaisia..

Täydellisyyden etsintä — O(n) (toistuvat elementit poistetaan)
Eräs professori sanoi kerran: Vanhemmiksi insinööriksi sinun tulee opiskella rakenneohjelmointia, toiminnallista ohjelmointia, polymorfismia, paljon arkkitehtuuria, suunnittelumalleja, testausta, TDD:tä, BDD:tä, ketterää ja äärimmäistä ohjelmointia. Sinun on parittava paljon. Siinä on paljon liikkuvia osia! Mutta mennäksesi pidemmälle ja ollaksesi maailmanluokkaa, sinun on vain yksi ja yksi asia dominoitava kämmenelläsi: Algoritmit! Jotkut sanovat, että maailmankaikkeus ja elämä..

Occamin partaveitsi: Koodin pitäminen lyhyenä ja yksinkertaisena
Tausta Group Randomizer -sovelluksessani yksi MVP:n (minimaalinen elinkelpoinen tuote) ominaisuuksista on ryhmäsäästötoiminnon luominen. Kun käyttäjä napsauttaa "Tallenna ryhmä" -painiketta, se tallentaa nykyisen vaihtoehtoluettelon uutena ryhmänä. Tämän ominaisuuden ydintoiminto on kuitenkin se, että jos se löytää olemassa olevan tallennetun ryhmän, jossa on samat vaihtoehdot, järjestyksestä riippumatta, näkyviin tulee hälytys, joka ilmoittaa, että nykyinen vaihtoehtoluettelosi..

JavaScript-algoritmi: Muunna merkkijono kamelin koteloksi
Muunna viivalla ja/tai alaviivalla erotetut sanat kamelin kirjaimeen Aiomme kirjoittaa funktion nimeltä toCamelCase() , joka hyväksyy merkkijonon str argumenttina. Tätä funktiota varten sinulle annetaan merkkijono ja merkkijonon sanat erotetaan joko viivalla — tai alaviivalla _ tai molemmilla. Toiminnon tavoitteena on poistaa kaikki viivat ja/tai alaviivat ja ensimmäinen alaviivaa tai yhdysviivaa seuraava sana tulee kirjoittaa isolla kirjaimella. Palautetun merkkijonon tulee..

Vahvistusoppiminen: lyhyt esittely
Vahvistusoppiminen on eräänlainen koneoppiminen, joka keskittyy harjoitusalgoritmeihin tehdäkseen sarjan päätöksiä. Algoritmit oppivat toimistaan ​​ja niistä aiheutuvista palkkioista tai rangaistuksista tavoitteenaan maksimoida palkkiosignaali ajan mittaan. Vahvistusoppimista voidaan käyttää monissa sovelluksissa, kuten videopeleissä, robotiikassa ja autonomisissa järjestelmissä. Se on menestynyt erityisen hyvin pelien pelaamisen alalla, jossa algoritmeja on koulutettu pelaamaan..

LeetCode —Binaaripuun siksak-tason järjestyksen läpikäynti
Ongelmailmoitus Kun binääripuun root on annettu, palauta sen solmujen arvojen siksak-tason läpikulku (eli vasemmalta oikealle, sitten oikealta vasemmalle seuraavalle tasolle ja vuorotellen). Ongelman selvitys osoitteesta: https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/ Esimerkki 1: Input: root = [3, 9, 20, null, null, 15, 7] Output: [[3], [20, 9], [15, 7]] Esimerkki 2: Input: root = [1] Output: [[1]] Esimerkki 3: Input: root = []..

Opi dynaaminen ohjelmointi: Aloittelijan opas kolikonvaihtoongelmaan
Nosta haastattelutaitojasi ja tule paremmaksi kehittäjäksi oppimalla dynaamisen ohjelmoinnin perusteet Dynaaminen ohjelmointi on lähestymistapa monimutkaisten ongelmien ratkaisemiseen, joka sisältää ongelman jakamisen yksinkertaisempiin ongelmiin ja näiden ongelmien ratkaisemiseen. Jos sinua pyydettäisiin kertomaan 21 * 5, luultavasti kertoisitte (20 * 5) ja lisääisitte (1 * 5). Sen sijaan, että ratkaisisit yhden monimutkaisen ongelman, jaoit sen kolmeen yksinkertaisempaan ongelmaan..