Clár na nÁbhar[Folaigh][Taispeáin]
Tá an inchinn inchomparáide le líonraí neural. Is é seo an analaí a úsáidtear go hiondúil chun cabhrú le duine nua san ábhar a thuiscint na smaointe taobh thiar foghlaim meaisín agus líonraí néaracha saorga.
Toisc go bhfuil sraitheanna éagsúla de ríomhanna matamaitice agus staidrimh ag dul ar aghaidh sa chúlra, is modh níos forbartha é na líonraí seo a shainiú mar fheidhm mhatamaiticiúil.
Tá sé seo do na daoine a bhfuil suim acu i ndáiríre i meaisínfhoghlama agus ba mhaith leo a fheiceáil conas a scríobhtar cód líonra néar Python.
San Airteagal seo, léireoimid conas líonra néarach domhain lán-nasctha (DNN) a thógáil ón tús Python 3.
Forbhreathnú ar an Struchtúr Comhad dár gCód Líonra Néarach Python
Cruthófar trí chomhad anseo. Is é an chéad cheann an comhad nn.py simplí, a phléifear in “Feidhmeanna Cúntóra a Shocrú” agus “Ag Tógáil an Líonra Néarúil ó Scratch.”
Beidh comhad againn freisin darb ainm mnist loader.py chun na sonraí tástála a luchtú, mar a thuairiscítear in “Sonraí MNIST a Luchtú.”
Ar deireadh, beidh comhad againn darb ainm test.py a sheolfar sa chríochfort chun ár líonra néarúil a thástáil.
Tá cur síos mion ar an gcomhad seo in “Rith na dTrialacha.”
suiteáil
Ní mór leabharlann NumPy Python a íoslódáil chun an teagasc seo a leanúint. Is féidir leat é seo a dhéanamh tríd an ordú seo a leanas a úsáid ar an teirminéal:
Modúil a Iompórtáil agus an fheidhm Helper a shocrú
Is iad an t-aon dá leabharlann a theastaíonn uainn ná randamach agus NumPy, a iompórtálfaimid láithreach bonn. Le haghaidh meáchain tosaigh ár líonra néaraigh, déanfaimid iad a shuffle trí úsáid a bhaint as an leabharlann randamach.
Chun ár ríomhanna a bhrostú, úsáidfimid NumPy nó np (de réir an ghnáis, is minic a allmhairítear é mar np). Déanfar ár dhá fheidhm cúntóir tar éis ár n-allmhairí. Dhá fheidhm sigmoid: ceann amháin agus príomhfheidhm sigmoid.
Déanfaidh aischéimniú lóistíochta sonraí a rangú ag baint úsáide as an bhfeidhm sigmoid, agus ríomhfaidh cúl-iomaíocht an deilt nó an grádán ag baint úsáide as an bpríomhfheidhm sigmoid.
Aicme Líonra a Chruthú
Is é an t-aon fhócas atá sa rannán seo ná gréasán néarach lánnasctha a thógáil. Cuimseoidh an rang líonra na feidhmeanna go léir a thagann ina dhiaidh. Cruthófar an fheidhm Object() { [cód dúchais] } ar dtús inár rang líonra.
Teastaíonn argóint amháin, méideanna, leis an bhfeidhm Object() { [cód dúchais] }. Is éard atá san athróg méideanna ná bailiúchán de luachanna uimhriúla a léiríonn líon na nóid ionchuir atá i ngach ciseal dár líonra néarúil.
Déanaimid ceithre airí a thúsú inár modh __init__. Úsáidtear na hathróga ionchuir, méideanna, chun liosta na méideanna ciseal agus líon na sraitheanna, uimhreacha sraitheanna, faoi seach a shocrú.
Is é an chéad chéim ná laofachtaí tosaigh ár líonra a shannadh go randamach do gach ciseal a leanann an ciseal ionchuir.
Ar deireadh, tá a meáchain ginte go randamach ag gach nasc idir na sraitheanna ionchuir agus aschuir. Tugann Np.Random.Randn() sampla randamach as an dáileadh normalach don chomhthéacs.
Feidhm Feed Forward
I líonra néarúil, seoltar faisnéis ar aghaidh ag an bhfeidhm aiseolais. Beidh argóint amháin, a, ag léiriú an veicteoir gníomhachtaithe reatha, ag teastáil don fheidhm seo.
Déanann an fheidhm seo meastachán ar na gníomhachtaí ag gach sraith trí atriall a dhéanamh ar na laofachtaí agus na meáchain uile sa líonra. Is é an freagra a thugtar ná an tuar, is é sin gníomhachtú na sraithe deiridh.
Ghinealach Grádáin mionbhaisc
Tá capall oibre ár rang Líonra de shliocht Grádán. Sa leagan seo, úsáidimid shliocht grádáin mionbhaisc (stochastic), athrú modhnaithe de shliocht grádáin.
Léiríonn sé seo go n-úsáidfear baisc bheag pointí sonraí chun ár samhail a nuashonrú. Cuirtear ceithre argóint agus argóint roghnach amháin ar aghaidh chuig an modh seo. Is iad na ceithre athróg riachtanach ná an tacar sonraí oiliúna, líon na n-aosanna, méid na mion-batches, agus an ráta foghlama (eta).
Tá sonraí tástála ar fáil ach iad a iarraidh. Soláthróimid sonraí tástála nuair a dhéanfaimid measúnú ar an líonra seo ar deireadh. Socraítear líon na samplaí san fheidhm seo ar dtús le fad an liosta a luaithe a dhéantar na sonraí oiliúna a chlaochlú go cineál liosta.
Cuirimid an próiseas céanna i bhfeidhm freisin chun sonraí a thástáil a thugtar isteach. Is é an fáth atá leis seo ná in ionad iad a chur ar ais chugainn mar liostaí, gur zips liostaí iad i ndáiríre. Nuair a lódálaimid na samplaí sonraí MNIST níos déanaí, foghlaimfimid níos mó faoi seo.
Más féidir linn a chinntiú go gcuirfimid an dá chineál sonraí ar fáil mar liostaí, ní gá go mbeadh an cineál réitigh seo riachtanach.
Nuair a bheidh na sonraí againn, téann muid thar na tréimhsí oiliúna i lúb. Níl i dtréimhse oiliúna ach babhta amháin oiliúna líonra néareolaíoch. Déanaimid na sonraí a shuaitheadh ar dtús i ngach tréimhse chun randamacht a chinntiú sula ndéanaimid liosta mion-bhaisceanna.
Glaofar an fheidhm baisc mion nuashonraithe, a phléitear thíos, le haghaidh gach mionbhaisc. Cuirfear cruinneas na tástála ar ais freisin má tá na sonraí tástála ar fáil.
Feidhm cúntóir costas-díorthaigh
Déanaimis feidhm chúntóra ar a dtugtar díorthach costais a fhorbairt ar dtús sula gcruthóimid an cód cúltaca i ndáiríre. Má dhéanaimid botún inár gciseal aschuir, taispeánfaidh an fheidhm díorthach costais é.
Teastaíonn dhá ionchur uaidh: an t-eagar gníomhachtaithe aschuir agus na comhordanáidí y de na luachanna aschuir a bhfuiltear ag súil leo.
Feidhm backpropagation
Ní mór ár veicteoir gníomhachtaithe reatha, gníomhachtú, chomh maith le haon veicteoirí gníomhachtaithe eile, gníomhachtaithe, agus z-veicteora, zs, a choinneáil i gcuimhne. Cuirtear ciseal ar a dtugtar an ciseal ionchuir i ngníomh ar dtús.
Déanfaimid lúb trí gach claonadh agus meáchan tar éis iad a chur suas. Is éard atá i gceist le gach lúb an veicteoir z a ríomh mar tháirge ponc na meáchain agus an gníomhachtaithe, é a chur leis an liosta zs, an gníomhachtú a athríomh, agus an gníomhachtú nuashonraithe a chur leis an liosta gníomhachtaithe.
Ar deireadh, an mata. Ríomhtar an deilt, atá comhionann leis an earráid ón gciseal roimhe seo arna iolrú faoi phríomhshuim sigmoid na heiliminte deiridh de na veicteoirí zs, sula dtosaímid ar ár gcúlbhealach.
Socraítear gurb é an deilt an ciseal deireanach de nabla b, agus socraítear gurb é an ciseal deiridh de nabla w táirge ponc an deilt agus an dara sraith go dtí an ceann deireanach de ghníomhartha (trasuí ionas gur féidir linn an mata a dhéanamh i ndáiríre) .
Leanaimid ar aghaidh mar a bhí roimhe seo, ag tosú leis an dara sraith agus ag críochnú leis an gceann deireanach, agus déanaimid an próiseas arís tar éis na sraitheanna deireanacha seo a chríochnú. Tugtar nablas ar ais ansin mar thuple.
Ghinealach grádán Mini-bhaisc á nuashonrú
Ionchorpraíonn ár modh SGD (sliocht grádán stochastic) ó roimhe seo nuashonrú mionbhaisc. Ós rud é go n-úsáidtear é in SGD ach go dteastaíonn cúlchiste uaidh freisin, rinne mé díospóireacht ar cén áit ar cheart an fheidhm seo a chur.
Ar deireadh, rinne mé an rogha é a phostáil anseo. Tosaíonn sé trí 0 veicteoir a ghiniúint de nablas laofachta agus meáchain, díreach mar a rinne ár bhfeidhm chúltaca.
Éilíonn sé an mionbhaisc agus an ráta foghlama eta mar a dhá ionchur. Sa mhionbhaisc, úsáidimid an fheidhm chúltaca ansin chun deilt gach eagar nabla a fháil do gach ionchur, x, agus aschur, y. Déantar na liostaí nabla a nuashonrú ansin leis na deiltí seo.
Ar deireadh, úsáidimid an ráta foghlama agus nablas chun meáchain agus laofachtaí an líonra a nuashonrú. Déantar gach luach a nuashonrú go dtí an luach is déanaí, lúide an ráta foghlama, arna iolrú faoin méid mionbhaisc, agus ansin cuirtear leis an luach nabla.
Déan an fheidhm a mheas
Is í an fheidhm mheastóireachta an fheidhm dheireanach a chaithfimid a scríobh. Is iad na sonraí tástála an t-aon ionchur don fheidhm seo. Sa fheidhm seo, ní dhéanaimid ach aschuir an líonra a chur i gcomparáid leis an toradh a bhfuiltear ag súil leis, y. Trí bheathú an ionchuir, x, ar aghaidh, déantar aschuir an líonra a chinneadh.
Cód iomlán
Nuair a chuirimid an cód ar fad le chéile, seo mar a fheictear é.
Líonra Neural a Thástáil
Sonraí MNIST á lódáil
An Sonraí MNIST i bhformáid .pkl.gz, a osclóidh muid ag úsáid GZIP agus a luchtú le picil. Scríobhaimis modh tapa chun na sonraí seo a luchtú mar thuple de mhéid trí, roinnte i sonraí oiliúna, bailíochtaithe agus tástála.
Chun ár sonraí a dhéanamh níos éasca le bainistiú, scríobhfaimid feidhm eile chun an y a ionchódú isteach i sraith 10 n-ítim. 0s ar fad a bheidh san eagar ach amháin 1 a mheaitseálann le digit cheart na híomhá.
Úsáidfimid na sonraí ualaigh bunúsacha agus modh ionchódaithe te amháin chun ár sonraí a luchtú i bhformáid inléite. Scríobhfar feidhm eile a dhéanfaidh ár luachanna x a thiontú ina liosta de mhéid 784, ag teacht le 784 picteilín na híomhá, agus ár luachanna y ina bhfoirm aonair veicteora ionchódaithe te.
Ansin cuirfimid na luachanna x agus y le chéile ionas go mbeidh innéacs amháin ag teacht leis an gceann eile. Baineann sé seo le hoiliúint, bailíochtú, agus tacair sonraí tástála. Cuirimid na sonraí athraithe ar ais ansin.
Trialacha Rith
Déanfaimid comhad nua darb ainm “lódóir mnist” a iompórtálfaidh an líonra néarúil a bhunaigh muid cheana (nn simplí) agus an lódóir tacair sonraí MNIST sula dtosaímid ag tástáil.
Sa chomhad seo, níl le déanamh againn ach na sonraí a allmhairiú, líonra a thógáil le méid ciseal ionchuir de 784 agus méid ciseal aschuir de 10, feidhm SGD an líonra a reáchtáil ar na sonraí oiliúna, ansin é a thástáil ag baint úsáide as na sonraí tástála.
Coinnigh i gcuimhne gur le haghaidh ár liosta de na sraitheanna ionchuir, a dhéanann sé aon difríocht cad iad aon cheann de na huimhreacha idir 784 agus 10. Is féidir linn a athrú ar na sraitheanna eile ar aon nós is mian linn; níl ach na méideanna ionchuir agus aschuir socraithe.
Ní gá trí shraith; d'fhéadfaimis ceithre, cúig, nó fiú dhá cheann a úsáid. Bíodh spraoi agat ag triail leis.
Conclúid
Anseo, ag baint úsáide as Python 3, cruthaímid líonra néarúil ón tús. Chomh maith le matamaitic ardleibhéil, phléamar freisin na saintréithe a bhaineann le cur i bhfeidhm.
Thosaigh muid trí fheidhmeanna cúntóra a chur i bhfeidhm. Chun go n-oibreoidh na néaróin, tá na príomhfheidhmeanna sigmoid agus sigmoid ríthábhachtach. Ansin chuireamar an fheidhm aiseolais i bhfeidhm, arb é an bunphróiseas é chun sonraí a thabhairt isteach sa líonra néarúil.
Ansin, chruthaíomar an fheidhm shliocht grádán i Python, an t-inneall a thiomáineann ár líonra néarúil. Chun “minima áitiúil” a aimsiú agus a gcuid meáchain agus a gclaofacht a bharrfheabhsú, úsáideann ár ngréasán néarúil shliocht grádáin. Chruthaigh muid an fheidhm backpropagation ag baint úsáide as shliocht grádán.
Trí nuashonruithe a sheachadadh nuair nach bhfuil na haschuir ag teacht leis na lipéid chuí, cuireann an fheidhm seo ar chumas an líonra néaraigh “foghlaim.”
Ar deireadh, chuireamar ár Python úrnua líonra neodrach go dtí an tástáil ag baint úsáide as an tacar sonraí MNIST. D'fheidhmigh gach rud go réidh.
Códú Sona!
Leave a Reply