Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
schema pcb ELECTRA CIM150 PAS

Probleme stomac

Sfat achizitie bicicleta oras

Canalele Sky Showtime 1 și S...
 Recomandare anvelope lexus rx

Extindere rețea wireless int...

Configuratie PC

Mufa TV
 PPC Energy

Camera conferinta Tenveo tevo-vl12u

Recomandare rulouri exterioare us...

Gaoyue 858
 Telefon performant pe parte audio...

Aspecte legale https://registratu...

Filtru de apa curata apa de miner...

Unde gasesc borcane mari 5 - litr...
 

Fizica Computationala

* * * * - 4 votes
  • Please log in to reply
187 replies to this topic

#145
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
Un alt algoritm cuantic adaugat, Bernstein-Vazirani: https://github.com/a...steinVazirani.h
Din criptografia cuantica, protocolul BB84: https://github.com/a...umCryptograpy.h

#146
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
Cred ca iau o pauza de la proiectul asta o vreme... as mai fi vrut sa adaug cateva chestii dar imi cam lipseste motivatia.
Chestiile care functioneaza, mentionate si in README:

Quote

Grover's algorithm
Deutsch-Jozsa algorithm
Shor's algorithm
Bernstein–Vazirani algorithm
Quantum adder (half-adder & full-adder for 1-qubits and full adder for two N-qubit numbers)
Quantum teleportation
Superdense coding
Quantum cryptography: BB84 protocol
CHSH inequality violation

Simulation of quantum simulation:
Evolution in time with a Hamiltonian given as a sum of Pauli products with real coefficients
Evolution of a 1D Gaussian packet in time, solving the 1D time-dependent Schrodinger equation using a Trotter decomposition and quantum Fourier transform
Pentru verificarea ultimului am adaugat cateva metode 'clasice' de calcul, din pacate n-am reusit sa potrivesc suficient de bine valorile (erorile numerice nu permit calculul pentru orice valori) astfel incat am facut in final verificarea doar pentru 'quantum fourier transform' folosit in simulare, in rest algoritum e practic identic (QFT e testat contra FFT).

#147
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
Acum chiar ca am decis sa ma opresc o vreme din adaugarea de noi algoritmi :)
Sunt sigur ca o sa revin si o sa mai adaug, dar deocamdata am in plan sa incep ceva pe machine learning, ca tot e la moda AIul zilele astea.

Cam astea-s chestiile implementate pana acum:

Quote

Grover's algorithm
Deutsch-Jozsa algorithm
Simon's algorithm
Quantum Fourier Transform
Shor's algorithm
Bernstein–Vazirani algorithm
Quantum teleportation
Superdense coding
Quantum cryptography: BB84 protocol
CHSH inequality violation

Quantum error correction:

3-qubit error correcting a qubit-flip
3-qubit error correcting a sign-flip
Shor Code

Quantum adders:

Quantum half-adder for 1-qubit
Quantum full-adder for 1-qubit
Full adder for two N-qubit numbers
Draper adder
Draper adder with carry

Simulation of quantum simulation:

Evolution in time with a Hamiltonian given as a sum of Pauli products with real coefficients
Evolution of a 1D Gaussian packet in time, solving the 1D time-dependent Schrodinger equation using a Trotter decomposition and quantum Fourier transform

Paradoxes (although some of the above might be considered paradoxes as well):

Quantum eraser
General Elitzur-Vaidman Bomb tester/interaction free measurement/counterfactual computation
Hardy's paradox


#148
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
Deja am adus proiectul de machine learning intr-o forma oarecum functionala, exista regresie liniara generalizata (cu exemple pe regresia liniara simpla, regresia liniara multivariata si multivariabila, regresie polinomiala, regresia logistica - inclusiv cu separatie neliniara, aka un cerc) si o retea neuronala simpla (multilayer perceptron). Exista teste pentru o retea simpla care invata xor (o problema 'clasica' pe tema asta) si o retea care invata sa separe clasele din cunoscutul Iris dataset. Cam asta afiseaza la iesire pe datasetul respectiv:

Quote

Neural Network test for the Iris dataset, Setosa is lineary separable from the other two, but the others two cannot be linearly separated

Loss: 2.09869
Loss: 0.0511973
Loss: 0.0368485
Loss: 0.000125418
Loss: 0.00024591
Loss: 1.71955e-05
Loss: 1.42229e-05
Loss: 8.20373e-06
Loss: 7.25362e-06
Loss: 6.12088e-07
Loss: 6.93672e-07

Training set:

Setosa true positives: 41, true negatives: 79, false positives: 0, false negatives: 0
Versicolor true positives: 38, true negatives: 82, false positives: 0, false negatives: 0
Virginica true positives: 41, true negatives: 79, false positives: 0, false negatives: 0

Setosa accuracy: 1
Versicolor accuracy: 1
Virginica accuracy: 1

Setosa specificity: 1
Versicolor specificity: 1
Virginica specificity: 1

Setosa precision: 1
Versicolor precision: 1
Virginica precision: 1

Setosa recall: 1
Versicolor recall: 1
Virginica recall: 1

Test set:

Setosa true positives: 9, true negatives: 21, false positives: 0, false negatives: 0
Versicolor true positives: 11, true negatives: 18, false positives: 0, false negatives: 1
Virginica true positives: 8, true negatives: 20, false positives: 1, false negatives: 1

Setosa accuracy: 1
Versicolor accuracy: 0.966667
Virginica accuracy: 0.933333

Setosa specificity: 1
Versicolor specificity: 1
Virginica specificity: 0.952381

Setosa precision: 1
Versicolor precision: 1
Virginica precision: 0.888889

Setosa recall: 1
Versicolor recall: 0.916667
Virginica recall: 0.888889
Din cand in cand mai obtine si rezultate perfecte, e functie si de ce ajunge in setul de antrenament si in setul de test, sunt selectate aleatoriu.

Repository aici: https://github.com/a...MachineLearning

Attached Files



#149
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
Din ce in ce mai bune sanse pentru cod sa fie corect... am adaugat EMNIST dataset (o gramada de imagini cu litere si cifre scrise de mana, din care folosesc seturile cu cifre pentru teste) si cu softmax (simplu, nu retea neuronala) obtin acuratete > 94%, iar cu retea neuronala pot trece binisor de 98%.

Un singur nivel ascuns cu 32 de neuroni trece de 97%, doua nivele ascunse cu 1000 si respectiv 100 de neuroni deja dau rezultate mai bune decat ma asteptam (~98.75%).

Asta fara sa insist pe tot felul de teste cu diversi parametri, initializari etc.

Poate o sa adaug si dropout si nivele de normalizare... si poate chiar convolutii... dar asta e in plan pe termen mai lung.

Edited by parabellum, 28 March 2023 - 17:46.


#150
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
Info aditionala despre reteaua neuronala antrenata pe EMNIST: In acest caz nivelele ascunse au activare 'leaky relu', nivelul de iesire e softmax, functia de cost e 'cross entropy' iar optimizarea se face cu 'minibatch stochastic gradient descent', mai precis, adam. Chestiile astea se pot ajusta, exista multe variante disponibile in proiect.

Edited by parabellum, 28 March 2023 - 17:55.


#151
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
Din pacate din lipsa de motivatie nu se intampla mare lucru cu proiectul, desi e aproape de finalizare (adica aproape de nivelul la care doream sa-l aduc cand l-am inceput, se poate si - mult - mai mult, dar astea https://github.com/a...Learning/issues sunt lasate pe mai incolo ca 'enhancements').

Am adaugat 'dropout' si alte cateva 'goodies'.

Dropout (paper here: https://www.cs.toron...JMLRdropout.pdf) am adaugat pentru ca am reusit sa obtin un overfitting fantastic pe date, chiar cu o retea relativ simpla (ceva in genul 99.95% pe setul de training cu mai putin de 99% pe cel de test) in ciuda faptului ca setul de antrenament e maricel.

Am incercat initial regularizare mai simpla, cu adaugare de zgomot in imagine (un fel de extindere/augmentare a setului de antrenament stil 'poor man'), dar de ce sa nu faci ceva similar nu doar pentru intrare, ci pe mai multe nivele?

Apropo de dropout, articolul e din 2014, la fel si una dintre metodele 'stochastic gradient descent', adam.

Am vazut opinii cum ca 'nu exista nimic nou in AI' in afara cresterii puterii de calcul si a disponibilitatii datelor. E adevarat ca astea doua sunt foarte importante in evolutia domeniului, dar exista progrese incrementale si in teorie.

#152
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
Interesant e ca daca ar fi sa ma iau dupa ce-i aici: https://paperswithco...n-emnist-digits am ajuns destul de usor la un nivel intre 2018 - 2020 cu o retea neuronala relativ simpla. Doua nivele ascunse deja bat rezultatul cu Support Vector Machine din 2018. Rezultatul din 2020 insa n-am cum sa-l ajung decat daca implementez si retele convolutive (e in plan, dar mai indepartat).

#153
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
Gata deocamdata. Mai ramane de scris ceva in README despre proiect (dar acum mi-e lene) si o vreme ramane cam asa.

Am adaugat si ceva augmentare simpla a datelor, doar un shift up/down/left/right (https://github.com/a...rning/issues/16) cu un pixel al imaginilor din setul de training EMNIST, o retea neuronala se poate salva intr-un fisier si se poate initializa dintr-un fisier specificat (se poate continua trainingul asa)... concluzia dupa cateva incercari e ca e foarte dificil sa depasesti 99% acuratete pe setul de test (am obtinunt ceva in genul 98.89% sau pe-acolo) folosind o retea neuronala 'multilayer perceptron' de o dimensiune rezonabila.

Probabil se poate cu p-hacking, dar ar fi prostie.

Normal ar fi sa adaug asta https://github.com/a...rning/issues/13, asa foarte probabil se poate depasi 99% dar o las pe alta data.

#154
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
Am adaugat descriere in README, inclusiv charturi si ceva output din program, cu linkuri la wikipedia si la cod: https://github.com/a...MachineLearning

#155
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
La reteaua neuronala cand am adaugat 'dropout' am uitat sa pun pe zero gradientul pentru neuronii care au fost 'dropped out' (ca sa nu fie modificati parametrii corespunzatori neuronilor respectivi in backpropagation). A fost in stare sa 'invete' si asa, doar ca nu atat de bine. Am modificat si acum se pare ca pot depasi 99% acuratete pe setul de test EMNIST. Deocamdata ~99.01% pe ce-am salvat in 'pretrained.net', dar poate ca se poate chiar mai bine.

Edited by parabellum, 30 May 2023 - 21:56.


#156
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
99.3225% acuratete pe setul de test cu 'batch normalization' si se pare ca se poate mai bine, din evolutia 'loss' de-a lungul antrenamentului (train vs validation).

De curiozitate o sa fac si un ansamblu de asemenea modele (4 sau 5) sa vad cu cat se imbunatatesc rezultatele. Deja am implementat o clasa pentru asta, dar inca n-am testat.

#157
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
Cu ansamblu de 5 retele am ajuns la ~99.45%.
La coada clasamentelor articolelor din 2020, dar am depasit-o pe cea mai proasta :)

#158
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
Proiectul de quantum computing simulation s-a ales cu doua sectiuni noi, 'quantum games' si 'distributed quantum computing', deocamdata cu doar doua exemple simple: 'coin flipping' si 'distributed CNOT'.

#159
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
L-am vazut pe unul pe linkedin 'laudandu-se' cu realizarile 'lui' (de fapt ale echipei), cum ca au ajuns sa bata biblioteci consacrate (gen qiskit) folosind o optimizare banala.
Au scris si un articol pe treaba asta (desi au realizat si ei ca nu-s primii, exista deja cel putin o alta biblioteca ce foloseste metoda, e cam evident - in special daca ajungi sa foloseste sparse matrices)... si ce mi-am zis eu: ce face o echipa intreaga - si platita pentru asta - in mod sigur pot eu singur intr-o ora Posted Image

Asa ca:  https://github.com/a...Register.h#L314

De la O(N^2) la O(N). Cresterea de viteza e destul de spectaculoasa.

Edited by parabellum, 26 June 2023 - 21:31.


#160
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
Imbunatatirea de mai sus mi-a permis sa adaug implementari peste tot la functii/oracole - in loc de matrici mari obtinute prin produs tensorial si inmultirea cu acele matrice - cu porti cuantice simple (care de obicei au nevoie si de qubiti auxiliari, un alt motiv sa fie de evitat daca se folosesc matricile alea mari).

Am adaugat si algoritmi noi, 'quantum counting' si 'q-means clustering' (si QAOA pe modelul Ising, dar pe asta mai am ceva treaba, in final o sa adaug exemple si pentru max/min cut problem).

Am ajuns si la simulari cu 22 qubits, se pare ca se poate chiar cu mai multi, o treaba la care nu ma asteptam cand m-am apucat de proiectul asta, ideea era sa fac doar un 'toy project'.

Saptamana urmatoare o sa fac si niste teste comparative cu qiskit aer (simulator open source de la IBM) sa vad daca exista diferente intre rezultate.

Apropo de asta, se pare ca am ajuns contributor la qiskit aer. Oare e cazul sa-mi trec trei rachete la profil (asta e o gluma pentru cunoscatori) si sa pun asta in descriere, sa se vada bine?

#161
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
Am facut testele comparative... prin generarea aleatoare de circuite din porti cuantice (pur si simplu porti cuantice de 1, 2 & 3 qubiti cuplate la intamplare in circuit, cu parametri aleatori - acolo unde este cazul - circuite cu intre 1 si foarte multe porti) si spre marea mea surpriza, doar o singura poarta a cauzat probleme... iar problema de fapt nu era in simulatorul meu ci avea originea in qiskit aer.

Asa ca daca tot am ajuns contributor pe-acolo: https://github.com/Q...t-aer/pull/1926

#162
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,450
  • Înscris: 06.01.2010
Am facut un timing rapid la ceva circuite mai mult sau mai putin random pe 12 qubits si spre marea mea surpriza, simulatorul meu e mai rapid intre 6x si 8x decat cel de la IBM.
Am facut eu niste optimizari pe-acolo cu open mp, dar nu intra in actiune la 12 qubits, la mai multi insa open mp se simte drastic (ochiometric cel putin de 4x mai rapid decat inainte).

Cum naiba am reusit sa 'bat' simulatorul de la IBM e un mister.

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate