14 Millikafli: Um reiknifræði og gagnavísindi¶
14.1 Hvað eru reiknifræði og gagnavísindi?¶
Reiknifræði
er orð sem búið var til upp úr 1970, með merkingu „beiting stærðfræði, tölvunarfræði og tölfræði til að leysa vísindaleg verkefni með tölvu“ um það bil. Þegar orðið var búið til var hugtakaflóran ekki alveg jafnmargbrotin og nú og reiknfræði var í grófum dráttum talin ná yfir aðgerðagreiningu (operations rsearch), tölulega greiningu (numerical analysis), tölfræði (statistics) og rafreiknifræðí (computer science). Fljótlega fékk rafreiknifræðin sjálfstæðan tilverurétt og nýtt nafn: tölvunarfræði.
Á timarit.is kemur orðið reiknifræði fyrst fyrir 1962 sem þýðing á aðgerðagreining og aftur 1969 í svipaðri merkingu. Árið 1974 nota Oddur Benediktsson og Þorkell Helgason svo orðið hvor í sinni greininni í Tímariti Verkfræðingafélags Íslands í víðari merkingu. Þorkell segir í sinni grein: „Með reiknifræðum er hér átt við eftirtaldar greinar hagnýtrar stærðfræði: aðgerðagreiningu, rafreiknifræði hvers kyns, tölulega greiningu, tölfræði og líkindafræði“. Eftir þetta kemur orðið um 150 sinnum fyrir á timarit.is
Nefna má að Háskóli Íslands hefur boðið upp á kjörsviðið Stærðfræði–reiknifræði síðan 1972 (og í byrjun var tölvunarfræði innan þess) og svo Tölvunarfræði–reiknifræði síðan um aldamót. Við Raunvísindastofnun Háskólans var starfrækt „Reiknifræðistofa“ frá 1972. Hún er enn til en kallast „Reiknifræðideild“ síðan 2008, og undir hana heyrir m.a. tölfræði.
Það er ekki alveg beint af augum að þýða reiknifræði á ensku, en hugtökin computational science, scientific computing og jafnvel applied mathematics koma til greina sem þýðingar.
Gagnavísindi
er svo hugtak sem varð til eftir síðustu aldamót. Öfugt við reiknifræði má segja að það sé bein þýðing á nafni enskrar fræðigreinar, nefnilega data science. Á Wikipediu segir (í lauslegri þýðingu):
Gagnavísindi eru þverfagleg fræðigrein sem snýst um að ná upplýsingum úr gögnum. Dæmigert er að gögnin séu stórgögn (big data). Ennfremur fela gagnavísindi í sér nýtingu þessara upplýsinga til að leysa verkefni á fjölbreyttum fræðasviðum.
Á timarit.is finnast gagnavísindi aðeins einu sinni, í grein í Tölvumálum 2014 eftir fjóra kennara við Háskólann í Reykjavík um nýja námsleið þar á bæ. Í dag bjóða bæði Háskóli Íslands og Háskólinn í Reykjavík upp á nám í gagnavísindum. Bæði reiknifræði og gagnavísindi koma álíka oft upp ef þeim er flett upp með leitarvélum, u.þ.b. 100 sinnum hvort um sig.
14.2 Undirgreinar reiknifræði og gagnavísinda¶
Undanfarin ár og áratugi hefur fræðasviðum sem tengjast hagnýtingu á stærðfræði fjölgað mjög, þau skarast á ótal vegu, og sum eru kölluð þverfagleg. Hér verður gerð tilraun til að telja upp helstu fræðasvið sem snúast um að leysa verkefni í raunvísindum, verkfræði, læknisfræði og hagfræði með tölvum. Auk undirgreina reiknifræði og gagnavísinda eru taldar þær undirgreinar tölvunarfræði og tölfræði sem beinast tengjast gögnum og útreikningum. Þannig er t.d. fræðilegri tölvunarfræði sleppt (og reyndar mörgum öðrum undirsviðum hennar), og sömuleiðis fræðilegri tölfræði. Ekki er reynt að skilgreina sviðin nema lítillega, heldur verða áhugasamir að leita á netinu, t.d. í Wikipedíu.
Það væri í anda þeirrar hugsunar sem ríkjandi var upp úr 1970 að flokka gagnavísindi og þessar fyrrtaldar undirgreinar tölvunarfræði og tölfræði sem undirgreinar reiknifræði, og til að halda þeim möguleika opnum er orðinu grunngreinar bætt við titill fyrsta listans að neðan.
Grunngreinar reiknifræði
Töluleg greining (numerical analysis, computational science stundum notað sem samheiti)
Töluleg línuleg algebra (numerical linear algebra), ein undirgreina tölulegrar greiningar
Aðgerðagreining (operations research), ýmsir mundu samt ekki telja hana til reiknifræði
Töluleg bestun (numerical optimization), undirgrein tölulegrar greiningar og aðgerðagreiningar, oft er líka talað um bestunarfræði (sem fjallar einnig um fræðilega bestun)
Stærðfræðileg líkansmíð (mathematical modelling), þverfaglegt svið milli flestra fræðasviðanna í þessum lista auk annarra, t.d. verkfræði, eðlisfræði og efnafræði
Gagnavísindi (data science), stundum flokkað sem undirgrein tölvunarfræði
Vélanám (machine learning), stundum talið það sama og reiknigreind (computational intelligence),
Gagnanám (data mining), e.t.v. stundum talið undirgrein vélanáms. Ath. að hér er „nám“ þýðing á „mining“ en ekki „learning“. Kannski mætti tala um gagnagrennslan?
Stórgögn (big data), eða gagnagnótt, líka mætti tala um stórgagnagreiningu (big data analytics)
Djúpnám (deep learning), undir þetta falla djúp tauganet, sem eru grundvöllur í ýmissi nýjustu framþróun, t.d. í myndgreiningu (lesa handskrift, þekkja andlit), talgreiningu (skilja talað mál) og vélrænni þýðingu (google translate)
Tölvunarfræði (computer science)
Gagnagrindur og reiknirit (data structures and algorithms), hér teljast m.a. ýmis leitar-, röðunar- og netafræðireiknirit
Gervigreind (artificial intelligence), tengist náið ýmsum undirsviðum gagnavísinda
Ofurtölvuvinnsla (high performance computing (HPC), parallel computing)
Tölfræði (statistics)
Hagnýtt tölfræði (applied statistics)
Reiknifræðileg tölfræði (computational statistics)
Bayesísk tölfræði (Bayesian statistics)
Fræðasviðsheiti sem tengist reiknifræði og oft er notað er „hagnýtt stærðfræði“ (applied mathematics). Það er samt þrengra að því leyti að það einskorðast gjarna við undirsvið í stærðfræði, og víðara að því leyti að oft eru talin með ýmis fræðileg undirsvið sem ekki nýtast beint til lausnar verkefna með tölvum.
14.3 Python-pakkar fyrir vísindalega reikninga¶
Aðalreiknifræðipakkarnir í Python eru NumPy fyrir vigur- og fylkjareikninga og SciPy fyrir önnur svið reiknifræði, þ.á.m. tölulega greiningu, tölulega línulega algebru (scipy.linalg) og tölulega bestun (scipy.optimize). Meðal verkefna sem leysa má með SciPy eru brúun (interpolation), töluleg heildun, töluleg lausn diffurjafna, útreikningur sérhæfðra falla (special functions), og merkjavinnsla (signal processing).
Fyrir gagnavísindi má nefna Pandas sem er mikið notaður pakki fyrir almenna gagnavinnslu, sklearn (= Scikit-learn) fyrir reiknigreind og gagnanám, og loks pakkana PyTorch, Keras og TensorFlow fyrir vélanám þ.á.m. tauganet og djúpnám. Fyrir klassísk tölvunarfræðileg reiknirit er ekki til einn samstæður pakki, en hægt er að finna sjálfstæða pakka fyrir mörg þeirra. Fyrir ofurtölvuvinnslu er til pakki MPI, en auk þess má nefna að bæði NumPy og SciPy nota OpenMP sjálfkrafa. Föll fyrir alla algengustu tölfræðireikninga eru í scipy.stat, og jafnframt er stundum nóg að nota Pandas, en fyrir flóknari tölfræðireikninga og líkansmíð er pakkinn statsmodels. Margir af þessum pökkum eru hver öðrum háðir. Þannig nota flestir ef ekki allir pakkarnir vigra og fylki sem eru útfærð í NumPy.
Teiknipakkanum Matplotlib er ekki hægt að sleppa í þessari upptalningu. Með honum er hægt að teikna gröf falla, súlurit, scatter-myndir, hæðarlínumyndir, þrívíðar mesh-myndir og upplýstar myndir af (margvíðum) föllum, o.s.frv. Að lokum má nefna SymPy pakkann fyrir symbólska reikninga, t.d. einföldun á stærðfræðiformúlum og sjálfvirka diffrun.
Athugasemd:
Um ýmsar af þeim undirgreinum reiknifræði og gagnavísinda sem hér hafa verið taldar upp, og líka ýmsa af Python-pökkunum, er fjallað í þessum fyrirlestrarnótum, en auk þess má finna ítarlegri umfjöllun um sumt í Edbook-fyrirlestrarnótunum Valin efni í stærðfræði og reiknifræði sem er námsefni fyrir námskeiðið Stærðfræði og reiknifræði við HÍ.