Table of Contents[Hide][Show]
Cerebrum neural ligula comparandum est. Haec est analogia quae solet adhiberi ut aliquem novum subiectum ad cognoscendum ideas post apparatus discendi et retiacula artificialia.
Quia plures stratae mathematicae et statisticae computationes sequuntur post scenas, haec retia definiens ut munus mathematicum est methodo provectioris.
Hoc est hominibus qui in re machina discendi student et videre cupiunt quomodo Python codicem retis neural scripserit.
In hoc articulo demonstrabimus quomodo reticulum neurale altum (DNN) ex integro connexum construere debebimus Python 3.
Overview of the file structure for our Python Neural Network Code
Tres fasciculi hic creati erunt. Prima est fasciculus simplex nn.py, de quo dicetur in "Munera Adiutoris constituendi" et "Aedificatio Network Neuralis de Scratch".
Etiam tabulam habebimus nomine mnist loader.py ut notitias probationis oneratis, de quibus in "MNIST Data Loading".
Denique tabellam test.py nominatam habebimus, quae in termino ad probandum retiacula nostra neural mittenda erit.
Hic fasciculus singillatim describit in "Cursor Test."
Installation
NumPy Python bibliotheca in ordinem recepta est ut hanc doceo sequendam. Hoc facere potes utendo praecepto sequenti in termino:
Modulos importans et munus erigens Adiutoris
Duae tantum bibliothecae quas requirimus sunt temere et NumPy, quas statim importemus. Ad reticuli nostri neural initiales pondera, eas temere bibliothecam adhibebimus.
Ut accelerare computationes nostras, NumPy vel np (per placitum, saepe importatur sicut np). Duo munera adiutoria nostra post importationes nostras fient. Duo munera sigmoidea: una et prima sigmoidea.
Regressio logistica indicabit notitias functionis sigmoideae utens, dum backpropagationem delta vel gradiente computabit utens munus primum sigmoidea.
Partum Network Classis
Aedificare reticulum neurale plene connexum est solum focus huius sectionis. Classis retiacula omnia functionum sequentium circumdabit. Munus Object() { [native code]} initio in genere retis creabitur.
Unum argumentum, magnitudinum, munus Object() { [native code] } requiritur. Magnitudinum variabilis est collectio valorum numerorum qui numerus nodis input entium repraesentat in singulis stratis reticuli nostri neuralis.
Quattuor proprietates initialize sumus in methodo __init__ nostra. Input variabilium magnitudinum adhibentur indicem magnitudinum accumsan ac numerum stratarum, num stratarum respective.
Primus gradus est passim assignare bipes nostrae retis initiales unicuique strato qui input iacum sequitur.
Denique quaelibet nexus inter input et output stratorum sua pondera passim generata habet. Np.Random.Randn() dat specimen temere extractum ex distributione normali pro contextu.
Pasce deinceps Function
In network neural, informationes ab functione pascendi praemittuntur. Una ratio, a, ostendens vectorem activum currentem, hoc munere requiretur.
Hoc munus aestimat activationes in unoquoque tabulato iterando super omnia biaes et pondera in ornatum retis. Responsum est praedictum, quod est actuositates ultimi tabulae.
Mini-batch Gradiente Descensu
Classis nostra Network equina Gradiente descensus est. In hac versione utimur descensus mini- batch (stochastic) gradientis, mutatio descensus gradientis modificatus.
Hoc indicat parvam massam punctorum notitiarum ad exemplar nostrum renovandum adhiberi. Quatuor requiruntur et una ratio ad libitum traduntur in hunc modum. Quattuor variabiles requisiti sunt formarum formatio, numerus epochae, magnitudo mini-batchiarum, et rate discentium (eta).
Test data praesto sunt postulante. Experimentum suppeditabit nobis cum tandem hanc ornatum aestimamus. Numerus exemplorum in hoc munere primo ponitur ad longitudinem elenchus semel in indice formarum notitia formata.
Eundem etiam processum adhibemus ad probationes notitias quae in re publica datae sunt. Haec causa est, quia pro indice nobis redditi sunt, revera sunt zips tabularum. Cum MNIST data exemplaria postea oneremus, plura de hoc discemus.
Si efficere possumus ut utriusque generis notitias ut tabulae praeberemus, hoc genus missum necessario essentiale non est.
Cum notitias habemus, exercitationem epochae in ansa transimus. Exercitatio periodus tantum est una rotunditas retis neuralis disciplinae. Primum notitias in unaquaque epocha tergiversamur ut fortuiti curemus priusquam indicem batches mini-ficandi.
Renovatio mini batch munus, de quo infra agetur, pro singulis mini- batch vocabitur. Accuratio test reddetur etiam si notitia probata suppetat.
Munus auxiliator sumptus-derivative
Evolvamus adiutorium munus quod primum derivativum sumptus dicitur antequam revera codicem backpropagationis creamus. Si in tabulato nostro erramus, sumptus munus derivativum ostendet.
Duas inputationes requirit: output activationum ordinata et y-coordinatas valorum anticipatorum output.
Backpropagationis functionis
Praesens actio nostra vector, activatio, ac alia quaevis vectoria, activa, et z-vectora, zs, omnibus prae oculis habere debent. Aliquam accumsan dictum ante in posuere accumsan efficitur.
Ansa per singulas pondus dabimus ac pondus his erectis. Quaelibet ansa involvit computationem z vectoris sicut punctum productum ponderum et activationis, addens in indicem zs, recalculare activationem et renovationem activationem ad indicem activationum addens.
Denique math. Delta, quae aequalis est errori e strato antecedente ducto per primum sigmoidalem elementi ultimi vectoris zs, computatur antequam trans- grediamur initium nostrum.
Ultimus iacus nabla b ad delta positus est, et ultimus iacuit nabla w positus est ut punctus producti deltae et secundae-ad postremam iacuit activationum (transpositae ut actu mathematicam facere possumus) .
Progredimur ut ante, a secundo tabulato incipientes et cum ultimis concludentes, processum repetimus expletis his ultimis stratis. Tum nablas quasi tuple redditae sunt.
Adaequationis Mini- batch gradiente descensus
Nostra SGD (descensus stochasticus gradientis) methodus a conspectu mini-batch adaequationis incorporat. Cum usus sit in SGD sed etiam requirit backprop, disputavi ubi hoc munus ponere.
Denique electionem feci ut eam hic ponerem. Oritur a vectoribus biasuum et ponderum nablas generando, sicut munus nostrum backprope fecit.
Requirit mini-batchram et etc. In mini-batch, tunc utimur pro- posito munere ad obtinendum della cuiusque nabla ordinata pro singulis input, x et output, y. In nabla tabulae tunc cum his deitas renovantur.
Utimur denique rate discendo et nablas ad renovandas pondera retiacula et bipennes. Quaelibet utilitas ad recentissimum valorem renovatur, minus ad ratem discendi, magnitudine minibatch multiplicata, et tunc ad valorem nabla additur.
Munus aestimare
Munus aestimandi extremum est unum scribere necesse est. Data probatio sola initus est ad hoc munus. In hoc munere tantum outputationes retis cum expectato eventu comparemus, y. Pascendo input, x, deinceps, outputs retis determinantur.
Complete Code
Cum omnia codicem coniungimus, hoc modo apparet.
Testis Neural Network
Loading MNIST data
quod MNIST data forma in .pkl.gz est, quam GZIP aperiemus et cum muria onerabimus. Modum celerem scribamus ad hanc datam ut tuplam amplitudinis onerandum tres, in institutionem, radicem et datam probationem divisa.
Ut notitias nostras faciliorem reddamus ad administrandum, aliud munus scribemus ut y in 10-item aciem inscribamus. Ordo erit omnes 0s excepto 1 qui proprium digiti imaginis aequet.
Data onere fundamentali utemur et una methodo encode calida ut notitias nostras oneratis in forma lectibilia. Aliud munus scribetur quod x valores nostros convertet in magnitudinem 784, congruens imagini 784 elementa, et valores nostri y in unum vectoris calidum encoded formam.
Tunc valores x et y coniungemus ita ut unus index alteri par. Hoc pertinet ad institutionem, sanationem et probationem datam. Mutata ergo notitia nobis redde.
Running Tests
Novam tabellam dabimus "mnist oneratus" quae utraque retis neuralis quae antea instituimus importabit et MNIST notitia oneris apposita antequam tentationem incipimus.
In hoc fasciculo, omnes nobis opus est notitias importare, retis aedificare cum input layer of size 784 et output layer of 10 size of, run the network's SGD function in the training data, then test it using the test data.
Meminerint pro nostro indice input stratorum, nihil interest quid inter 784 et 10. inter numeros aliquos inter se mutare possimus quovis modo similes; just the input and output sizes are fixed.
Tria strata non sunt necessaria; uti quatuor, quinque, vel etiam duobus tantum. Expertos habere gaudendum est.
Conclusio
Hic, Pythone adhibito 3 , reticulum neutrum de integro facimus. Cum summus gradus math, etiam de specialibus exsecutionis.
Munera adiuvantis fovere coepimus. Neuronibus ad operandum, primae sigmoideae et sigmoideae functiones cruciales sunt. Tunc munus pascendi perficimus, quod est processus fundamentalis ad notitias alendas in network neural.
Deinde munus descensum gradientis in Pythone creavimus, machinam quae reticulum nostrum neural agit. Ut "loci minimi" ponant et pondera sua et bias optimizant, retis neuralis nostra descensus gradientis utitur. Nos creavit backpropagation munus usura descensus.
Renuntiando updates cum outputs cum pittaciis propriis non aequant, hoc munus reticulum neurale efficit ut "discere".
Denique notam nostram Python? network neural in test usus est MNIST notitia paro. Omnia munere blando.
Coding felix!
Leave a Reply