IzpÄtiet aizraujoÅ”o neirofiksÄcijas aprÄÄ·inÄÅ”anas pasauli ar Python. Uzziniet par Spiking Neironu TÄ«kliem (SNN), to priekÅ”rocÄ«bÄm un to, kÄ Python rÄ«ki revolucionizÄ Å”o jomu.
Python neirofiksÄciju aprÄÄ·inÄÅ”ana: AtklÄjot Spiking Neironu TÄ«klu spÄku
NeirofiksÄcijas aprÄÄ·inÄÅ”ana, ko iedvesmojusi cilvÄka smadzeÅu struktÅ«ra un funkcija, strauji gÅ«st popularitÄti kÄ daudzsoloÅ”s alternatÄ«vs tradicionÄlajÄm aprÄÄ·inÄÅ”anas arhitektÅ«rÄm. AtŔķirÄ«bÄ no parastajiem datoriem, kas informÄciju apstrÄdÄ secÄ«gi, neirofiksÄcijas sistÄmas mÄrÄ·is ir atdarinÄt smadzeÅu paralÄlo un energoefektÄ«vo apstrÄdes veidu. Å Ä« pieeja piedÄvÄ ievÄrojamas priekÅ”rocÄ«bas Ätruma, enerÄ£ijas patÄriÅa un spÄjas apstrÄdÄt sarežģītus un dinamiskus datus. Python ar savu bagÄtÄ«go bibliotÄku un ietvaru ekosistÄmu ir Ŕīs revolÅ«cijas priekÅ”galÄ, nodroÅ”inot spÄcÄ«gus rÄ«kus Spiking Neironu TÄ«klu (SNN), neirofiksÄcijas sistÄmu pamatblok,u izstrÄdei un simulÄÅ”anai.
NeirofiksÄcijas aprÄÄ·inÄÅ”anas izpratne
NeirofiksÄcijas aprÄÄ·inÄÅ”ana ir paradigmas maiÅa mÅ«su pieejÄ aprÄÄ·inÄÅ”anai. TÄ cenÅ”as atveidot smadzeÅu arhitektÅ«ru un darbÄ«bas principus. Tas ietver aparatÅ«ras un programmatÅ«ras izstrÄdi, kas atdarina bioloÄ£isko neironu un sinapÅ”u uzvedÄ«bu. NeirofiksÄcijas sistÄmu galvenÄs Ä«paŔības ietver:
- Notikumu vadÄ«ta apstrÄde: InformÄcija tiek apstrÄdÄta tikai tad, kad notiek notikums (piemÄram, smaile neironÄ), kas nodroÅ”ina energoefektivitÄti.
- ParalÄlisms: AprÄÄ·ini tiek veikti vienlaikus daudzos savstarpÄji savienotos neironos.
- Asinhrona darbÄ«ba: AtŔķirÄ«bÄ no sinhronajÄm digitÄlajÄm shÄmÄm, neirofiksÄcijas sistÄmas darbojas asinhroni, atspoguļojot smadzeÅu nepÄrtraukto un dinamisko aktivitÄti.
- Analogas un jauktÄ signÄla shÄmas: NeirofiksÄcijas aparatÅ«rÄ bieži izmanto analogas vai jauktÄ signÄla shÄmas, lai atdarinÄtu neironu un sinapÅ”u bioloÄ£iskÄs Ä«paŔības.
NeirofiksÄcijas aprÄÄ·inÄÅ”anas potenciÄlÄs lietojumprogrammas ir plaÅ”as un aptver dažÄdas jomas, tostarp:
- MÄkslÄ«gais intelekts (AI): EnergoefektÄ«vÄku un spÄcÄ«gÄku AI modeļu izstrÄde.
- Robotika: Robotu ar uzlabotÄm uztveres un lÄmumu pieÅemÅ”anas iespÄjÄm izveide.
- Sensora apstrÄde: TÄdu lietojumprogrammu kÄ datorredze un runas atpazīŔana veiktspÄjas uzlaboÅ”ana.
- NeirozinÄtnes pÄtÄ«jumi: SmadzeÅu izpratnes veicinÄÅ”ana, izmantojot simulÄciju un modelÄÅ”anu.
Spiking Neironu Tīkli (SNN): pamatbloki
Spiking Neironu TÄ«kli (SNN) ir mÄkslÄ«go neironu tÄ«klu veids, kas vairÄk lÄ«dzinÄs bioloÄ£iskajiem neironiem nekÄ tradicionÄlie mÄkslÄ«gie neironu tÄ«kli (ANN). TÄ vietÄ, lai izmantotu nepÄrtrauktas vÄrtÄ«bas, SNN sazinÄs, izmantojot diskrÄtus notikumus, ko sauc par 'smailes'. Å Ä«s smailes attÄlo elektriskos impulsus, ko neironi izmanto informÄcijas pÄrsÅ«tīŔanai. SNN pamatkomponenti ietver:
- Neironi: Pamata apstrÄdes vienÄ«bas tÄ«klÄ, kas modelÄtas pÄc bioloÄ£iskiem neironiem. Katrs neirons saÅem ievadi no citiem neironiem, integrÄ Å”o ievadi un Ä£enerÄ smaili, kad tÄ membrÄnas potenciÄls sasniedz slieksni.
- Sinapses: Savienojumi starp neironiem, kas var bÅ«t kairinoÅ”i vai nomÄcoÅ”i. Tie nodroÅ”ina smailes pÄrraidi starp neironiem.
- Smaiļu laiks: PrecÄ«zs smaiļu laiks spÄlÄ izŔķiroÅ”u lomu informÄcijas kodÄÅ”anÄ un apstrÄdÄ.
SNN izmantoŔanas priekŔrocības ietver:
- BioloÄ£iskÄ ticamÄ«ba: SNN ir bioloÄ£iski reÄlistiskÄki, padarot tos piemÄrotus smadzeÅu modelÄÅ”anai un izpratnei.
- EnergoefektivitÄte: SNN var bÅ«t energoefektÄ«vÄki nekÄ ANN, Ä«paÅ”i, ja tie tiek ieviesti neirofiksÄcijas aparatÅ«rÄ. Tas ir saistÄ«ts ar to retu, notikumu vadÄ«tu apstrÄdi.
- Laika apstrÄde: SNN var dabiski apstrÄdÄt laika informÄciju, padarot tos ideÄli piemÄrotus tÄdÄm lietojumprogrammÄm kÄ runas atpazīŔana un laika sÄriju analÄ«ze.
- Kļūdu tolerance: SNN izplatÄ«tÄ daba padara tos izturÄ«gÄkus pret troksni un aparatÅ«ras kļūmÄm.
Python bibliotÄkas neirofiksÄcijas aprÄÄ·inÄÅ”anai un SNN
Python nodroÅ”ina bagÄtÄ«gu bibliotÄku un ietvaru ekosistÄmu, kas ļauj pÄtniekiem un izstrÄdÄtÄjiem veidot, simulÄt un izvietot SNN. VairÄkas galvenÄs bibliotÄkas atvieglo dažÄdus neirofiksÄcijas aprÄÄ·inÄÅ”anas aspektus:
1. PyTorch/TensorFlow ar pielÄgotÄm operÄcijÄm
Lai gan nav Ä«paÅ”i paredzÄts neirofiksÄcijas aprÄÄ·inÄÅ”anai, PyTorch un TensorFlow, dominÄjoÅ”ie dziļÄs mÄcīŔanÄs ietvari, var tikt paplaÅ”inÄti, lai atbalstÄ«tu SNN. To var panÄkt, izmantojot pielÄgotas operÄcijas, kas definÄ smailes neironu un sinapÅ”u uzvedÄ«bu. Å Ä«s operÄcijas bieži ievieÅ” diferenciÄlvienÄdojumus, kas nosaka neirona membrÄnas potenciÄlu un smaiļu Ä£enerÄÅ”anu.
PiemÄrs (konceptuÄls): Leaky Integrate-and-Fire (LIF) neirona ievieÅ”ana PyTorch varÄtu ietvert pielÄgota slÄÅa rakstīŔanu, kas:
- SaÅem ievades no citiem neironiem (smailes).
- IntegrÄ ievades laika gaitÄ, uzkrÄjot membrÄnas potenciÄlu.
- SalÄ«dzina membrÄnas potenciÄlu ar slieksni.
- Ä¢enerÄ smaili, ja slieksnis ir pÄrsniegts.
- Atiestata membrÄnas potenciÄlu.
Å Ä« pieeja ļauj pÄtniekiem izmantot PyTorch un TensorFlow elastÄ«bu un optimizÄcijas rÄ«kus, vienlaikus izstrÄdÄjot SNN.
2. Nengo
Nengo ir uz Python balstÄ«ts ietvars, kas Ä«paÅ”i paredzÄts liela mÄroga neironu tÄ«klu veidoÅ”anai un simulÄÅ”anai. Tas ir Ä«paÅ”i piemÄrots smadzenÄm lÄ«dzÄ«gu sistÄmu modelÄÅ”anai. Nengo izmanto augsta lÄ«meÅa pieeju, ļaujot lietotÄjiem koncentrÄties uz kopÄjo tÄ«kla arhitektÅ«ru, nevis uz neironu un sinapÅ”u ievieÅ”anas zema lÄ«meÅa detaļÄm.
Nengo galvenÄs funkcijas:
- Neironu modeļi: Atbalsta dažÄdus neironu modeļus, ieskaitot LIF, Hodžkina-Hakslija un IžikeviÄa.
- SinaptiskÄ dinamika: NodroÅ”ina rÄ«kus sinaptisko savienojumu definÄÅ”anai un simulÄÅ”anai ar reÄlistiskiem aizkavÄjumiem un filtrÄÅ”anu.
- MÄrogojamÄ«ba: IespÄjo liela mÄroga neironu tÄ«klu izveidi, izmantojot efektÄ«vas simulÄcijas metodes.
- OptimizÄcija: PiedÄvÄ rÄ«kus tÄ«kla veiktspÄjas optimizÄÅ”anai un efektÄ«vu ievieÅ”anu atraÅ”anai.
Nengo plaÅ”i izmanto neirozinÄtnes pÄtÄ«jumos un AI modeļu veidoÅ”anÄ, kuru mÄrÄ·is ir atdarinÄt bioloÄ£isko smadzeÅu funkcionalitÄti.
3. Brian
Brian ir uz Python balstÄ«ts simulators spiking neironu tÄ«kliem, kas prioritÄti pieŔķir elastÄ«bai un lietoÅ”anas vienkÄrŔībai. Tas ļauj lietotÄjiem definÄt savus neironu tÄ«kla modeļus, izmantojot kodolÄ«gu, matemÄtisku notÄciju. Tas atvieglo sarežģītu modeļu izteikÅ”anu un eksperimentÄÅ”anu ar dažÄdu neironu un sinapÅ”u dinamiku.
Brian galvenÄs funkcijas:
- VienÄdojumu pamatota modeļa definÄ«cija: LietotÄji var definÄt neironu un sinapÅ”u modeļus, izmantojot diferenciÄlvienÄdojumus un citas matemÄtiskas izteiksmes.
- ElastÄ«gi neironu modeļi: Atbalsta plaÅ”u neironu modeļu klÄstu, sÄkot no vienkÄrÅ”iem integrate-and-fire neironiem lÄ«dz sarežģītÄkiem modeļiem, piemÄram, Hodžkina-Hakslija modelim.
- EfektÄ«va simulÄcija: OptimizÄts veiktspÄjai, ļaujot lietotÄjiem simulÄt lielus un sarežģītus tÄ«klus.
- Kopienas atbalsts: SpÄcÄ«ga lietotÄju kopiena nodroÅ”ina atbalstu un resursus mÄcÄ«bÄm un problÄmu novÄrÅ”anai.
Brian ir populÄra izvÄle gan pÄtniekiem, gan pedagogiem, kuri vÄlas izpÄtÄ«t SNN dinamiku.
4. Neuron
Neuron, sÄkotnÄji izstrÄdÄts JÄlas universitÄtÄ, ir plaÅ”i izmantots simulators detalizÄtai neironu modelÄÅ”anai. Lai gan nav ekskluzÄ«vi koncentrÄts uz spiking neironu tÄ«kliem, tas nodroÅ”ina spÄcÄ«gus rÄ«kus atseviŔķu neironu un to mijiedarbÄ«bas biofizikas simulÄÅ”anai. Tas atbalsta izsmalcinÄtu neironu modeļu integrÄciju, ieskaitot nodalÄ«jumu modeļus, kas ļauj sasniegt augstu bioloÄ£iskÄs reÄlismu pakÄpi. Lai gan tam ir komandrindas interfeiss, to var vadÄ«t, izmantojot Python.
5. Lava
Lava ir uz Python balstÄ«ts programmatÅ«ras ietvars, ko izstrÄdÄjis Intel neirofiksÄcijas lietojumprogrammu, tostarp Spiking Neironu TÄ«klu, izstrÄdei un simulÄÅ”anai. Tas nodroÅ”ina visaptveroÅ”u rÄ«ku un bibliotÄku komplektu:
- ModelÄÅ”ana: Ä»auj projektÄt un simulÄt SNN, izmantojot augsta lÄ«meÅa abstrakcijas, vienkÄrÅ”ojot sarežģītu tÄ«kla arhitektÅ«ru ievieÅ”anu.
- KartÄÅ”ana: IespÄjo SNN kartÄÅ”anu uz neirofiksÄcijas aparatÅ«ras platformÄm, atvieglojot AI lietojumprogrammu izvietoÅ”anu uz energoefektÄ«vas aparatÅ«ras.
- Izpilde: PiedÄvÄ funkcijas SNN izpildei neirofiksÄcijas aparatÅ«rÄ un standarta procesoros ar notikumu vadÄ«tu simulÄciju.
Lava mÄrÄ·is ir nodroÅ”inÄt platformu plaisas pÄrvarÄÅ”anai starp neirofiksÄcijas algoritma izstrÄdi un aparatÅ«ras ievieÅ”anu, atbalstot pÄtniekus un izstrÄdÄtÄjus viÅu ceÄ¼Ä no pÄtniecÄ«bas lÄ«dz produkta izstrÄdei. Tas galu galÄ var nodroÅ”inÄt energoefektÄ«vus AI risinÄjumus plaÅ”am lietojumu klÄstam. PiemÄram, datorredzes jomÄ Å”Äds ietvars ļaus izstrÄdÄt energoefektÄ«vus risinÄjumus.
Praktiski piemÄri un lietoÅ”anas gadÄ«jumi
SNN atrod lietojumus dažÄdÄs jomÄs. Å eit ir daži piemÄri:
1. Datorredze
SNN var izmantot objektu atpazīŔanai, attÄlu klasifikÄcijai un citiem datorredzes uzdevumiem. Tie var efektÄ«vi apstrÄdÄt vizuÄlo informÄciju, kodÄjot attÄlus kÄ smailes vilcienu. PiemÄram, malu noteikÅ”anas sistÄmÄ katrs neirons varÄtu attÄlot pikseli attÄlÄ, un augstÄki Å”auÅ”anas rÄdÄ«tÄji norÄda uz stiprÄkÄm malÄm.
PiemÄrs (malu noteikÅ”ana): Ieejas attÄli tiek pÄrveidoti smaiļu vilcienos, atdarinot tÄ«klenes neironu Å”auÅ”anu. Neironi pirmajÄ slÄnÄ« atklÄj malas, Å”aujot biežÄk, kad ir mala. TurpmÄkie slÄÅi apstrÄdÄ Å”os smailes modeļus, lai identificÄtu objektus vai funkcijas. Tas var bÅ«t ievÄrojami energoefektÄ«vÄks nekÄ tradicionÄlÄ CNN balstÄ«ta attÄlu apstrÄde, Ä«paÅ”i specializÄtÄ neirofiksÄcijas aparatÅ«rÄ.
2. Runas atpazīŔana
SNN var efektÄ«vi apstrÄdÄt audio signÄlus, kodÄjot tos kÄ smailes vilcienu. Smaiļu laika bÅ«tÄ«ba padara tos piemÄrotus dinamiskas informÄcijas uztverÅ”anai runÄ. SNN ir izmantoti tÄdiem uzdevumiem kÄ fonÄmu atpazīŔana un runÄtÄju identifikÄcija.
PiemÄrs (fonÄmu atpazīŔana): Dzirdes ieeja tiek pÄrveidota smaiļu vilcienos, kas attÄlo skaÅas frekvences. TÄ«kla neironi ir apmÄcÄ«ti reaÄ£Ät uz konkrÄtÄm fonÄmÄm. Smaiļu laika un frekvences modeļus pÄc tam izmanto klasifikÄcijai. Tas ļauj sistÄmÄm atpazÄ«t vÄrdus, ko runÄ dažÄdi runÄtÄji.
3. Robotika
SNN var izmantot robotu vadīŔanai, ļaujot tiem pieÅemt lÄmumus un mijiedarboties ar vidi. Tie var apstrÄdÄt sensora ievadi, piemÄram, attÄlus no kamerÄm un datus no pieskÄriena sensoriem, un Ä£enerÄt motora komandas. SNN izmantoÅ”ana Å”iem uzdevumiem var padarÄ«t robotu vadÄ«bu energoefektÄ«vÄku un stabilÄku.
PiemÄrs (robotu navigÄcija): Robots izmanto SNN, lai apstrÄdÄtu sensoru ievadi, piemÄram, kameras attÄlus un attÄluma mÄrÄ«jumus. SNN ir apmÄcÄ«ts, lai identificÄtu ŔķÄrŔļus un pÄrvietotos uz mÄrÄ·a galamÄrÄ·i. Smailes, ko Ä£enerÄ SNN, tieÅ”i kontrolÄ robota motora izpildmehÄnismus. Tas atdarina smadzeÅu spÄju koordinÄt kustÄ«bas ar vides faktoriem.
4. Laika rindu analīze
SNN ir labi piemÄroti laika rindu datu apstrÄdei, jo tie spÄj apstrÄdÄt laika informÄciju. Lietojumprogrammas ietver finanÅ”u modelÄÅ”anu, laika prognozÄÅ”anu un anomÄliju noteikÅ”anu. Å auÅ”anas aktivitÄte pÄc bÅ«tÄ«bas uztver laika atkarÄ«bas un dinamiskos modeļus.
PiemÄrs (finanÅ”u modelÄÅ”ana): SNN ir apmÄcÄ«ts, lai analizÄtu akciju cenas laika gaitÄ. Ievadi ir kodÄti kÄ smaiļu vilcieni. TÄ«kls ir izstrÄdÄts, lai prognozÄtu nÄkotnes cenu izmaiÅas. TÄ«kls izmanto smaiļu laika un frekvences modeļus, lai mÄcÄ«tos un prognozÄtu cenu tendences. Tas var piedÄvÄt priekÅ”rocÄ«bas finanÅ”u stratÄÄ£ijÄs un tirgus analÄ«zÄ.
IzaicinÄjumi un nÄkotnes virzieni
Lai gan neirofiksÄcijas aprÄÄ·inÄÅ”anai un SNN ir milzÄ«gs potenciÄls, joprojÄm pastÄv vairÄki izaicinÄjumi. Å o ŔķÄrŔļu pÄrvarÄÅ”ana pavÄrs ceļu plaÅ”Äkai ievieÅ”anai:
- SNN apmÄcÄ«ba: SNN apmÄcÄ«ba var bÅ«t izaicinÄjums, nekÄ ANN apmÄcÄ«ba. PÄtnieki aktÄ«vi izstrÄdÄ jaunus apmÄcÄ«bas algoritmus, piemÄram, ar smailes laiku atkarÄ«gu plastiskumu (STDP), lai to atrisinÄtu.
- AparatÅ«ras ierobežojumi: SpecializÄtas neirofiksÄcijas aparatÅ«ras izstrÄde joprojÄm ir agrÄ«nÄ stadijÄ. Å o sistÄmu mÄrogoÅ”ana un to veiktspÄjas optimizÄcija ir ļoti svarÄ«ga.
- ProgrammatÅ«ras ekosistÄma: Lai gan Python ekosistÄma neirofiksÄcijas aprÄÄ·inÄÅ”anai aug, ir nepiecieÅ”ama turpmÄka programmatÅ«ras rÄ«ku un bibliotÄku izstrÄde, lai atbalstÄ«tu sarežģītu SNN konstruÄÅ”anu, simulÄÅ”anu un izvietoÅ”anu.
- AtŔķirÄ«bas pÄrvarÄÅ”ana starp bioloÄ£iskajiem modeļiem un inženierzinÄtÅu lietojumprogrammÄm: BioloÄ£isko neironu precÄ«za modelÄÅ”ana, vienlaikus optimizÄjot inženierzinÄtÅu lietojumprogrammas, joprojÄm ir kritiska pÄtniecÄ«bas joma.
- StandartizÄcija: StandartizÄtu interfeisu un protokolu izveide veicinÄtu savstarpÄju darbÄ«bu un paÄtrinÄtu neirofiksÄcijas sistÄmu izstrÄdi.
NeirofiksÄcijas aprÄÄ·inÄÅ”anas nÄkotnes virzieni ietver:
- Jaunas neirofiksÄcijas aparatÅ«ras izstrÄde: Progresam tÄdÄs jomÄs kÄ memristori un smailes mikroshÄmas bÅ«s liela nozÄ«me jomÄ.
- Sasniegumi apmÄcÄ«bas algoritmos: EfektÄ«vÄku un efektÄ«vÄku apmÄcÄ«bu metožu izstrÄde SNN.
- IntegrÄcija ar citÄm AI metodÄm: SNN apvienoÅ”ana ar citÄm AI metodÄm, piemÄram, dziļo mÄcīŔanos un pastiprinÄto mÄcīŔanos, lai izveidotu hibrÄ«dsistÄmas.
- Jaunu lietojumprogrammu izpÄte: Jaunu un inovatÄ«vu neirofiksÄcijas aprÄÄ·inÄÅ”anas lietojumu atklÄÅ”ana, piemÄram, medicÄ«niskÄ diagnostika un zinÄtniskie pÄtÄ«jumi.
SecinÄjums: AprÄÄ·inÄÅ”anas nÄkotne
Python nodroÅ”ina lielisku platformu pÄtniekiem un izstrÄdÄtÄjiem, lai iesaistÄ«tos neirofiksÄcijas aprÄÄ·inÄÅ”anÄ un SNN. Ar savu bagÄtÄ«go bibliotÄku un kopienas atbalstu Python ir Ŕīs jaunÄs jomas priekÅ”galÄ. Lai gan izaicinÄjumi joprojÄm pastÄv, neirofiksÄcijas aprÄÄ·inÄÅ”anas potenciÄlÄs priekÅ”rocÄ«bas ā tostarp energoefektivitÄte, robustums un spÄja apstrÄdÄt sarežģītus laika datus ā ir pÄrÄk ievÄrojamas, lai tÄs ignorÄtu. PÄtÄ«jumiem virzoties uz priekÅ”u un tehnoloÄ£ijai attÄ«stoties, neirofiksÄcijas aprÄÄ·inÄÅ”ana un SNN sola pÄrveidot mÄkslÄ«gÄ intelekta ainavu un Ärpus tÄ.
Å Ä«s tehnoloÄ£ijas globÄlo ietekmi jau var just. No pÄtniecÄ«bas iestÄdÄm visÄ pasaulÄ, piemÄram, Minhenes TehniskÄs universitÄtes (VÄcija) vai Kalifornijas universitÄtes BÄrklija (ASV) un ETH CÄ«rihes (Å veice), lÄ«dz jaunajiem tehnoloÄ£iju centriem ÄzijÄ un ÄfrikÄ, SNN un neirofiksÄcijas aprÄÄ·inÄÅ”anas attÄ«stÄ«ba ir kopÄ«gs darbs.
Ceļojumam no bioloÄ£iskÄs iedvesmas lÄ«dz praktiskÄm lietojumprogrammÄm ir nepiecieÅ”ama globÄla sadarbÄ«ba. AtvÄrtÄ koda rÄ«ki, piemÄram, tie, kas rakstÄ«ti Python, ir galvenie, lai veicinÄtu Å”o sadarbÄ«bu un nodroÅ”inÄtu, ka neirofiksÄcijas aprÄÄ·inÄÅ”anas priekÅ”rocÄ«bas ir pieejamas visÄ pasaulÄ. Izmantojot Python un ievÄrojot neirofiksÄcijas dizaina principus, mÄs varam atraisÄ«t smadzeÅu aprÄÄ·inÄÅ”anas potenciÄlu un veidot nÄkotni ar inteliÄ£entÄm sistÄmÄm, kas ir jaudÄ«gas, efektÄ«vas un atbilst ilgtspÄjÄ«gas attÄ«stÄ«bas principiem. SNN izpÄte nav tikai smadzeÅu atdarinÄÅ”ana, bet jaunu iespÄju iedvesmoÅ”ana aprÄÄ·inos, inovÄciju veicinÄÅ”ana un dažu pasaules aktuÄlÄko problÄmu risinÄÅ”ana.