Si të trajnoni QGAN-in tuaj

Mësimi i makinerisë kuantike me PennyLane

Nga Nathan Killoran, Josh Izaac dhe Christian Gogolin

Mësimi i makinerisë shpesh paraqitet si një nga "aplikacionet vrasëse" të kompjuterëve kuantikë. Ndryshe nga kompjuterët dixhitalë konvencionalë, të cilët përdorin bite klasike, kompjuterët kuantikë manipulojnë sistemet fizike në nivelin e tyre më themelor, duke hapur një strukturë shumë më të pasur për llogaritje. Kompjuterët kuantikë përpunojnë në mënyrë natyrale informacion kuantik, i cili korrespondon me vektorët në hapësira vektoriale shumë dimensionale.

Në mënyrë intuitive, kjo i bën kompjuterët kuantikë shumë të përshtatshëm për detyrat e mësimit të makinerive. Në të vërtetë, kompjuterët kuantikë mjaft të mëdhenj me tolerancë ndaj gabimeve do të japin përfundimisht përshpejtime llogaritëse për llogaritjet bazë të algjebrës lineare të përhapura në shumë algoritme të mësimit të makinerive.

Gjenerata e parë e pajisjeve kuantike është tani këtu. Është gjithashtu i aksesueshëm - shpesh falas - përmes resë kompjuterike. Ky pajisje kuantike në zhvillim ka frymëzuar ekspertët e informatikës kuantike që të rimendojnë mendësitë e tyre të mëparshme. Në vend që të dizajnojmë algoritme për pajisje të përsosura në shkallë të gjerë, ne kemi filluar të eksplorojmë gjërat e mrekullueshme që mund të bëhen tashmë me pajisjet që kemi.

Kjo ka çuar në një mori algoritmesh të reja: algoritme të optimizimit të përafërt kuantik (QAOA), zgjidhës të vetave kuantikë variacionalë (VQE), klasifikues kuantikë, rrjete kuantike gjeneruese rrjete kundërshtare (QGANs), rrjete nervore kuantike (QNN), dhe - në përgjithësi - nocioni i modeleve hibride kuantike-klasike. Këto ide të fundit janë emocionuese, por potenciali i tyre është ende i paeksploruar. Mësimi i makinerive kuantike dhe optimizimi kuantik janë bërë fusha shumë të nxehta kërkimore kohët e fundit, me një vorbull pune të re të zhvilluar në vitet e fundit.

Në Xanadu, ne kemi një nga ekipet më të mira kërkimore të të mësuarit të makinerive kuantike në botë, duke kontribuar rregullisht në avantazhin e fushës. Megjithatë, ne e kuptuam herët nevojën për ta hapur këtë zonë të nxehtë për një audiencë më të gjerë, duke e çuar atë përtej rrethit aktual të të brendshëmve dhe ekspertëve. Ne e bëjmë këtë për të përshpejtuar eksplorimin e algoritmeve të reja, për të zgjeruar kërkimin për algoritme të reja të mësimit të makinerive kuantike afatshkurtër dhe për të vendosur praktikat më të mira për ndërtimin e modeleve kuantike dhe hibride.

Imagjinoni idetë që do të shfaqen kur dikush mund të trajnojë kompjuterët kuantikë aq lehtë sa do të trajnonte një rrjet nervor. Me këtë në mendje, ne krijuam një bibliotekë të dedikuar softuerësh për mësimin e makinerive kuantike - PennyLane.

Hyni në PennyLane

Në projektimin e PennyLane, ne morëm idetë që na pëlqenin më shumë nga mësimi klasik i makinerive dhe i transferuam ato për të punuar në mënyrë origjinale në kompjuterët kuantikë.

Për shembull, ka pasur një rritje të madhe gjatë gjysmë dekadës së fundit në fushën e të mësuarit të thellë, nënfusha e mësimit të makinerive e cila merret me rrjetet nervore me shumë shtresa. Një nga shtytësit kryesorë të këtij zgjerimi janë bibliotekat e dedikuara softuerësh si Theano, TensorFlow, Pytorch dhe më shumë. Aftësia për të zbatuar dhe trajnuar me shpejtësi modele me këto biblioteka të nivelit të lartë i ka dhënë fushës një shtysë të madhe, pasi metodat heuristike që funksionojnë mirë në praktikë shpesh zbulohen përmes provave dhe gabimeve.

Këto biblioteka kanë dy karakteristika kryesore të përbashkëta:

(i) aftësia për të llogaritur në pajisje për qëllime të veçanta (GPU, TPU); dhe

(ii) diferencimi automatik, i zbatuar zakonisht duke përdorur algoritmin e famshëm shpërndarje prapa.

Për PennyLane, pajisja me qëllime të veçanta është - padyshim - pajisje kompjuterike kuantike. Megjithatë, nuk kishte asnjë softuer automatik të diferencimit për llogaritjet kuantike përpara PennyLane.

Përhapja prapa përmes PennyLane

Pa u bërë shumë teknik, diferencimi automatik është aftësia e softuerit për të llogaritur automatikisht derivatet (ose gradientët) të kodit kompjuterik në lidhje me parametrat e lirë.

Kur dëgjoni për "të mësuarit" ose "trajnimin" në të mësuarit e thellë, përbërësi kryesor është diferencimi automatik. Derivati ​​i një funksioni na tregon se si ndryshon ai funksion nëse rregullojmë pak parametrin e tij. Me akses në këtë informacion derivativ, ne mund të modifikojmë dhe optimizojmë në mënyrë progresive një model të mësimit të makinës për t'iu përshtatur nevojave tona. Zakonisht, diferencimi automatik zbatohet duke përdorur algoritmin e përhapjes së pasme, i cili ndërton gradientin duke përdorur rregullin e zinxhirit nga llogaritja, duke parë pjesë-pjesë në të gjitha nënprogramet e llogaritjes së përgjithshme.

Ekzistojnë dy rrugë për aplikimin e teknikave të diferencimit automatik në llogaritjet kuantike. E para është të simuloni një llogaritje kuantike duke përdorur një bibliotekë klasike të mësimit të makinerive. Në fillim të këtij viti, ne lëshuam "Strawberry Fields", i cili e bën pikërisht këtë përmes "backend-it të simulatorit TensorFlow". Megjithatë, kjo strategji nuk mund të japë kurrë një avantazh kuantik, pasi në thelb është i kufizuar nga joefikasiteti i simulimit të fizikës kuantike me kompjuterët klasikë.

Strategjia e dytë është ndërtimi i një versioni të diferencimit automatik që është natyrshëm i pajtueshëm me harduerin kuantik dhe që do të vazhdojë të funksionojë dhe të bëhet gjithnjë e më i dobishëm ndërsa kompjuterët kuantikë avancohen në mënyrë progresive. Por si mund të llogarisim gradientët e qarqeve llogaritëse kuantike kur edhe simulimi i prodhimit të tyre është klasik i vështirë? Detyra kryesore është të përdoret i njëjti harduer kuantik si për vlerësimin e qarkut kuantik ashtu edhe për llogaritjen e gradientëve të tij.

Çdo portë në një qark kuantik kryen disa transformime. Rezulton se në shumicën e rasteve me interes, ne mund të ripërdorim të njëjtën portë, vetëm me modifikime të vogla, për të vlerësuar derivatin në lidhje me parametrin e këtij transformimi. Ky informacion i derivatit për portë mund të futet më pas në algoritmin e përhapjes së pasme. Algoritmi i përhapjes së pasme ende zbatohet në një kompjuter klasik dhe ai nuk mund të shohë funksionimin e brendshëm të një qarku kuantik (d.m.th., gjendjet kuantike të ndërmjetme të qarkut).

Megjithatë, meqenëse pajisjet kuantike mund të vlerësojnë gradientët e tyre në mënyrë efikase, përhapja e pasme nuk duhet kurrë të depërtojë në qarkun kuantik. PennyLane përdor bibliotekën "autograd" të Python për të kryer diferencimin automatik, duke siguruar shtesat kryesore që lejojnë llogaritjet kuantike të diferencohen. Kjo do të thotë se PennyLane ka mbështetje të plotë automatike të diferencimit për llogaritjet klasike, kuantike dhe hibride.

Duke bërë një shëtitje në PennyLane

Me ndërfaqen e lehtë për t'u përdorur të PennyLane (frymëzuar nga NumPy dhe TensorFlow), ju mund të kodoni qarqet kuantike llogaritëse dhe t'i lidhni ato së bashku me hapat klasikë të përpunimit për të ndërtuar një llogaritje hibride të plotë.

PennyLane përfshin gjithashtu një grup optimizuesish të bazuar në gradient, që do të thotë se qarqet kuantike variacionale mund të optimizohen në të njëjtën mënyrë si rrjetet e thella nervore.

Po nëse dëshironi të zhvendosni kodin që keni testuar në një simulator në një pajisje kuantike reale, apo edhe të krahasoni ofertat e ndryshme të harduerit? Kjo është gjithashtu e lehtë; PennyLane është plotësisht agnostik ndaj harduerit. Me një ndryshim në një linjë, ju mund të "këmbeni nxehtë" pajisjen që ekzekuton pjesën kuantike të modelit tuaj llogaritës, ose madje të ndërtoni një model që përdor pajisje të ndryshme kuantike së bashku.

Qëllimi ynë është të mbështesim të gjithë ekosistemin në rritje të pajisjeve kuantike afatshkurtër. Për këtë, PennyLane ofron një API shtesë, me të cilën pajisjet e reja kuantike mund të bëhen lehtësisht të gatshme për QML. Tashmë, PennyLane ka shtojca për API-në tonë të fotonikës kuantike të Strawberry Fields të rritur në shtëpi, kornizën ProjectQ me burim të hapur për llogaritjen kuantike dhe mbështetje harduerike për IBMQ. Së shpejti: mbështetje për më shumë pajisje kuantike, duke përfshirë shtojcat PennyLane për PyQuil të Rigetti dhe Qiskit të IBM.

Për më shumë detaje mbi PennyLane, shikoni "dokumentacionin" tonë dhe eksploroni mësimet e ndryshme të disponueshme. Ju gjithashtu mund të shikoni kodin burimor në "magazinë tonë të GitHub" dhe të bashkoheni në diskutimin në "forumet PennyLane". Ne mirëpresim kontributet e kodit - të gjithë përdoruesve që kontribuojnë në mënyrë të konsiderueshme në kod do t'u ofrohet mundësia për t'u renditur si autor në "Bardhën e PennyLane".

Ne jemi jashtëzakonisht të ngazëllyer për të ndarë PennyLane me ju. Bashkohuni me ne në zhvillimin e algoritmeve më të fundit të mësimit të makinerive kuantike!