{"id":198268,"date":"2013-10-20T19:30:03","date_gmt":"2013-10-20T15:30:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=198268"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=198268","title":{"rendered":"<span class=\"post_title\">\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0439\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438 (Backpropagation)<\/span>"},"content":{"rendered":"<div class=\"content html_format\"> \t\t\t\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0445\u0430\u0431\u0440\u043e\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438! <br \/>  \u0422\u0435\u043c\u0430 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439 \u0431\u044b\u043b\u0430 \u0443\u0436\u0435 \u043d\u0438 \u0440\u0430\u0437 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0430 \u043d\u0430 \u0445\u0430\u0431\u0440\u0435, \u043e\u0434\u043d\u0430\u043a\u043e \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0431\u044b \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0439\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u0421\u0440\u0430\u0437\u0443 \u0445\u043e\u0447\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0441\u044c \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u043e\u043c \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0436\u0434\u0443 \u043e\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u043a\u0440\u0438\u0442\u0438\u043a\u0438, \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0439 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439.<\/p>\n<h4>\u0422\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/h4>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u043e\u0441\u043d\u043e\u0432\u0430\u043c\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439, \u043e\u0434\u043d\u0430\u043a\u043e \u044f \u0441\u0447\u0438\u0442\u0430\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u0432\u0432\u0435\u0441\u0442\u0438 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f \u0432 \u043a\u0443\u0440\u0441 \u0442\u0435\u043c\u044b \u0431\u0435\u0437 \u0438\u0437\u043b\u0438\u0448\u043d\u0438\u0445 \u043c\u044b\u0442\u0430\u0440\u0441\u0442\u0432 \u043f\u043e \u0442\u0435\u043e\u0440\u0438\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439. \u0418\u0442\u0430\u043a, \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0441\u043b\u044b\u0448\u0438\u0442 \u0441\u043b\u043e\u0432\u043e\u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 \u00ab\u043d\u0435\u0439\u0440\u043e\u043d\u043d\u0430\u044f \u0441\u0435\u0442\u044c\u00bb, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u0443\u044e \u0441\u0435\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0437\u0432\u0435\u0448\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0433\u0440\u0430\u0444\u0430, \u0443\u0437\u043b\u044b ( \u043d\u0435\u0439\u0440\u043e\u043d\u044b ) \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0441\u043b\u043e\u044f\u043c\u0438. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0443\u0437\u0435\u043b \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u044f\u0437\u0438 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u043b\u043e\u044f. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0443 \u0442\u0430\u043a\u043e\u0433\u043e \u0433\u0440\u0430\u0444\u0430 \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u0442\u044c\u0441\u044f \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u043b\u043e\u0438, \u0443\u0437\u043b\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0440\u043e\u043b\u044c \u0432\u0445\u043e\u0434\u043e\u0432 \u0438<br \/>  \u0432\u044b\u0445\u043e\u0434\u043e\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b ( \u043d\u0435\u0439\u0440\u043e\u043d ) \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439, \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0437\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0443\u0437\u043b\u0430 ( \u043d\u0435\u0439\u0440\u043e\u043d\u0430 ). \u0422\u0430\u043a\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u0431\u0430\u0439\u0435\u0441\u0430, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0438\u0437 \u0441\u0435\u0431\u044f \u0443\u0437\u0435\u043b, \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0438\u0439 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u00ab\u0443\u0447\u0438\u0442\u0435\u043b\u044f\u00bb, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0443\u0442\u0435\u043c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c\u0438 \u043e\u0442\u043a\u043b\u0438\u043a\u0430\u043c\u0438. <\/p>\n<p>  \u041a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e\u043c \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439, \u043d\u0430\u0448\u0430 \u0446\u0435\u043b\u044c \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438 \u0441\u0435\u0442\u0438 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0435\u0442\u0438 \u0434\u0430\u0432\u0430\u0442\u044c \u0432\u0435\u0440\u043d\u044b\u0439 \u043e\u0442\u043a\u043b\u0438\u043a \u043d\u0430 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f ( \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f ), \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0441\u0445\u043e\u0436\u0438\u0435, \u043d\u043e \u043d\u0435\u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0435 \u0442\u0435\u043c, \u0447\u0442\u043e \u0431\u044b\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u043f\u0440\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438 ( \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u044f). \u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0442\u0440\u0438 \u044d\u0442\u0430\u043f\u0430: \u043f\u043e\u0434\u0430\u0447\u0443 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0445, \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0432\u044b\u0445\u043e\u0434\u043e\u0432, \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u0432\u0435\u0441\u043e\u0432. \u041f\u043e\u0441\u043b\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043f\u043e\u0434\u0430\u0447\u0430 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0441\u0435\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438\u0445 \u0432 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0432\u044b\u0445\u043e\u0434\u043e\u0432. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u0435\u0441\u043b\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0438 \u043c\u043e\u0436\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c, \u0442\u043e \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u044c\u044e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u0441 \u0446\u0435\u043b\u044c\u044e \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0442\u0435\u043a\u0430\u043d\u0438\u044f<br \/>  \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f.<br \/>  \u0422\u0430\u043a\u0436\u0435 \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043e\u0434\u043d\u043e\u0441\u043b\u043e\u0439\u043d\u0430\u044f \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0430 \u0432 \u0442\u043e\u043c, \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044e \u043a\u0430\u043a\u0438\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u043d\u0430 \u043f\u043e\u0434\u043b\u0435\u0436\u0438\u0442, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u043a\u0430\u043a \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0439\u043d\u0430\u044f \u0441\u0435\u0442\u044c ( \u0441 \u043e\u0434\u043d\u0438\u043c \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u043a\u0440\u044b\u0442\u044b\u043c \u0441\u043b\u043e\u0435\u043c ) \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0430. \u0414\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0441 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u043c \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0438.<\/p>\n<h5> \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 <\/h5>\n<p>  \u041d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 1 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0439\u043d\u0430\u044f \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u0441 \u043e\u0434\u043d\u0438\u043c \u0441\u043b\u043e\u0435\u043c \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 ( \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b Z ). <\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/38d\/6f5\/938\/38d6f59385f91a5a67f8d9252ea4c1f3.png\" alt=\"image\"\/><br \/>  \u041d\u0435\u0439\u0440\u043e\u043d\u044b, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0441\u043e\u0431\u043e\u0439 \u0432\u044b\u0445\u043e\u0434\u044b \u0441\u0435\u0442\u0438 ( \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u044b <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/da8\/c9d\/14f\/da8c9d14fab94ee3e15e002ef28ce592.png\"\/> ), \u0438 \u0441\u043a\u0440\u044b\u0442\u044b\u0435 \u043d\u0435\u0439\u0440\u043e\u043d\u044b \u043c\u043e\u0433\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u0431\u0430\u0439\u0435\u0441 ( \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 ). \u0411\u0430\u0439\u0435\u0441, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0432\u044b\u0445\u043e\u0434\u0443 <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/8a0\/789\/360\/8a07893605ee487e57d8b656082aaf11.png\"\/> \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d<img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/735\/552\/fcb\/735552fcbfcf153c158f2b7d8341cd1b.png\"\/>, \u0441\u043a\u0440\u044b\u0442\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/447\/c49\/ffa\/447c49ffa52067e5e83c2b1178a8fb6f.png\"\/> \u2014 <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/08f\/729\/683\/08f729683f33c7817a44164db06891e4.png\"\/>. \u042d\u0442\u0438 \u0431\u0430\u0439\u0435\u0441\u044b \u0441\u043b\u0443\u0436\u0430\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0435\u0441\u043e\u0432 \u043d\u0430 \u0441\u0432\u044f\u0437\u044f\u0445, \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043e\u0442 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432, \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f 1 ( \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 1 \u043e\u043d\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b, \u043d\u043e \u043e\u0431\u044b\u0447\u043d\u043e \u044f\u0432\u043d\u043e \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f, \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u044f\u0441\u044c). \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 1 \u0441\u0442\u0440\u0435\u043b\u043a\u0430\u043c\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0445\u043e\u0434\u0435 \u0444\u0430\u0437\u044b \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 \u0432\u0445\u043e\u0434\u043e\u0432 \u043a \u0432\u044b\u0445\u043e\u0434\u0430\u043c. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438.<\/p>\n<h5>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430<\/h5>\n<p>  \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0434\u0430\u043b\u0435\u0435, \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043a \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0441 \u043e\u0434\u043d\u0438\u043c \u0441\u043a\u0440\u044b\u0442\u044b\u043c \u0441\u043b\u043e\u0435\u043c, \u0447\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0439 \u0438 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0435\u0439 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041a\u0430\u043a \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0440\u0430\u043d\u0435\u0435, \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0442\u0440\u0438 \u0441\u0442\u0430\u0434\u0438\u0438: \u043f\u043e\u0434\u0430\u0447\u0430 \u043d\u0430 \u0432\u0445\u043e\u0434\u044b \u0441\u0435\u0442\u0438 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0432\u0435\u0441\u043e\u0432. \u0412 \u0445\u043e\u0434\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/166\/087\/875\/1660878752df56b0440afa43a678ed4f.png\"\/> \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b \u0438 \u0448\u0438\u0440\u043e\u043a\u043e\u0432\u0435\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u0435\u0442 \u0435\u0433\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u0437 \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/1a9\/237\/a03\/1a9237a0311cb65fb96838e1797f57cb.png\"\/>. \u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u043d\u0435\u0439\u0440\u043e\u043d \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0435\u0433\u043e \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 ( \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 ) \u0438 \u0440\u0430\u0441\u0441\u044b\u043b\u0430\u0435\u0442 \u0441\u0432\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/b9b\/e08\/293\/b9be08293a5a60d1e4014538abfb3f9d.png\"\/> \u0432\u0441\u0435\u043c \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u043c \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c. \u041a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/8a0\/789\/360\/8a07893605ee487e57d8b656082aaf11.png\"\/>, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u0432\u043e\u0435\u0439 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/fb6\/638\/f7b\/fb6638f7b148adf6d533aab3533d4ba8.png\"\/>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043d\u0438\u0447\u0442\u043e \u0438\u043d\u043e\u0435, \u043a\u0430\u043a \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0435\u0439\u0440\u043e\u043d\u0430 \u0434\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u0435\u0439\u0440\u043e\u043d \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0441\u0435\u0442\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/fb6\/638\/f7b\/fb6638f7b148adf6d533aab3533d4ba8.png\"\/> \u0441 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0443\u0447\u0438\u0442\u0435\u043b\u0435\u043c <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/168\/307\/b1b\/168307b1b7b360eaba24382211e71963.png\"\/> ( \u0446\u0435\u043b\u0435\u0432\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c ), \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430. \u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u044d\u0442\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/051\/c89\/194\/051c891941d8d4a9536c62b3b2b842f0.png\"\/>. <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/817\/a88\/a3b\/817a88a3b6d4b55d50308d138e63ffbb.png\"\/> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u043e\u0442 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/77c\/d9d\/be1\/77cd9dbe1d57205f915820a6260f9591.png\"\/> \u0434\u043e \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0435\u0442\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u043b\u043e\u044f ( \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/77c\/d9d\/be1\/77cd9dbe1d57205f915820a6260f9591.png\"\/> ), \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0437\u0436\u0435 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0432\u0435\u0441\u043e\u0432 \u0441\u0432\u044f\u0437\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c\u0438 \u0438 \u0441\u043a\u0440\u044b\u0442\u044b\u043c\u0438. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/a48\/a3e\/582\/a48a3e5827317171e34d9e5caea2a2d6.png\"\/> \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u043d\u0435\u0439\u0440\u043e\u043d\u0430 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/78c\/bbb\/26d\/78cbbb26d780246b7f7b2c8f49d9988f.png\"\/>. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 \u0434\u043e \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0435\u0442, <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/f26\/5b2\/298\/f265b2298d05bda0a9ce50e50fbd90f4.png\"\/> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u0435\u0441\u043e\u0432 \u0441\u0432\u044f\u0437\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c\u0438 \u0441\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u0438 \u0432\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c\u0438. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0432\u0441\u0435 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/336\/a8e\/01e\/336a8e01e1c0cd79d10264aa729406a3.png\"\/> \u0431\u044b\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0432\u0435\u0441\u043e\u0432 \u0432\u0441\u0435\u0445 \u0441\u0432\u044f\u0437\u0435\u0439.<\/p>\n<h6>\u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/h6>\n<p>  \u0412 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: <\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/8bb\/019\/24c\/8bb01924cbfde3af77dc6390f2c353f3.png\"\/> \u0412\u0445\u043e\u0434\u043d\u043e\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/07a\/09c\/e80\/07a09ce80817a74d0c3767d52f9f56c4.png\"\/><br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/9e1\/119\/ead\/9e1119ead5e348e3adeadb2eb9d256d6.png\"\/> \u0412\u0435\u043a\u0442\u043e\u0440 \u0446\u0435\u043b\u0435\u0432\u044b\u0445 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u0443\u0447\u0438\u0442\u0435\u043b\u0435\u043c<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/989\/dfd\/174\/989dfd17463618e027baabdc21b18211.png\"\/><br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/817\/a88\/a3b\/817a88a3b6d4b55d50308d138e63ffbb.png\"\/> \u0421\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0432\u0435\u0441\u043e\u0432 \u0441\u0432\u044f\u0437\u0435\u0439 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/40b\/4e7\/630\/40b4e7630a4014e51b588f845cee66f0.png\"\/>, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0435 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043d\u0435\u0439\u0440\u043e\u043d\u0430 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/77c\/d9d\/be1\/77cd9dbe1d57205f915820a6260f9591.png\"\/>; \u0442\u0430\u043a\u0436\u0435, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u043d\u0435\u0439\u0440\u043e\u043d\u0430 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/77c\/d9d\/be1\/77cd9dbe1d57205f915820a6260f9591.png\"\/>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043c \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c \u0441\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u0441\u043b\u043e\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/77c\/d9d\/be1\/77cd9dbe1d57205f915820a6260f9591.png\"\/>.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/f26\/5b2\/298\/f265b2298d05bda0a9ce50e50fbd90f4.png\"\/> \u0421\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0432\u0435\u0441\u043e\u0432 \u0441\u0432\u044f\u0437\u0435\u0439<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/c9c\/fc2\/f67\/c9cfc2f67a4949d676962bcd7b3b5615.png\"\/>, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u043c\u043e\u0439 \u043e\u0442 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u043a \u0441\u043a\u0440\u044b\u0442\u043e\u043c\u0443 \u043d\u0435\u0439\u0440\u043e\u043d\u0443 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/78c\/bbb\/26d\/78cbbb26d780246b7f7b2c8f49d9988f.png\"\/> \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/248\/322\/046\/248322046e30e4592a0bd358f02d649a.png\"\/> \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/c96\/bf3\/257\/c96bf3257947687c3b67d92a17cbc03b.png\"\/> \u041d\u0435\u0439\u0440\u043e\u043d \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c i. \u0414\u043b\u044f \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b \u2014 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/49b\/14b\/a16\/49b14ba16da629aef2419d02d0933a81.png\"\/>.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/eda\/67c\/921\/eda67c9210d2baf691107f4080d8834c.png\"\/> \u0411\u0430\u0439\u0435\u0441 \u0441\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u043d\u0435\u0439\u0440\u043e\u043d\u0430 j.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/78c\/bbb\/26d\/78cbbb26d780246b7f7b2c8f49d9988f.png\"\/> \u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u043d\u0435\u0439\u0440\u043e\u043d j; \u0421\u0443\u043c\u043c\u0430\u0440\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0435 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0441\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/78c\/bbb\/26d\/78cbbb26d780246b7f7b2c8f49d9988f.png\"\/> \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/58c\/e6c\/e25\/58ce6ce25ef52430ab3e798bdda079e7.png\"\/>: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/4d0\/f96\/674\/4d0f96674d85564a1a1cb59c4989dc8d.png\"\/><br \/>  \u0421\u0438\u0433\u043d\u0430\u043b \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/78c\/bbb\/26d\/78cbbb26d780246b7f7b2c8f49d9988f.png\"\/> ( \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/58c\/e6c\/e25\/58ce6ce25ef52430ab3e798bdda079e7.png\"\/> \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 ) \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/a50\/cef\/e42\/a50cefe429f546b4a74b865f310f867b.png\"\/>: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/5c2\/550\/880\/5c25508803c7dc9739e0b34d17d8116f.png\"\/><br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/d2c\/415\/cf4\/d2c415cf4bd23a06206491ff79ea1d17.png\"\/> \u0411\u0430\u0439\u0435\u0441 \u043d\u0435\u0439\u0440\u043e\u043d\u0430 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/77c\/d9d\/be1\/77cd9dbe1d57205f915820a6260f9591.png\"\/> \u041d\u0435\u0439\u0440\u043e\u043d \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u0434 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c k; \u0421\u0443\u043c\u043c\u0430\u0440\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0435 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/77c\/d9d\/be1\/77cd9dbe1d57205f915820a6260f9591.png\"\/> \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/314\/424\/85e\/31442485efe257b09ee5ca7f0be9ad6e.png\"\/>: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/a42\/fd6\/d21\/a42fd6d2178d72f9eb4f676f6d12cd6b.png\"\/>. \u0421\u0438\u0433\u043d\u0430\u043b \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/77c\/d9d\/be1\/77cd9dbe1d57205f915820a6260f9591.png\"\/> ( \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/314\/424\/85e\/31442485efe257b09ee5ca7f0be9ad6e.png\"\/> \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 ) \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/313\/4f9\/565\/3134f9565cb9812d98b0d3e13bd6a7b0.png\"\/>:<\/p>\n<h5>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438<\/h5>\n<p>  \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0432\u0430\u0436\u043d\u044b\u043c\u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u043c\u0438: \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0441\u0442\u044c\u044e, \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c\u044e \u0438 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043c\u043e\u043d\u043e\u0442\u043e\u043d\u043d\u043e \u043d\u0435\u0443\u0431\u044b\u0432\u0430\u044e\u0449\u0435\u0439. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0440\u0430\u0434\u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0435\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0430\u044f \u043b\u0435\u0433\u043a\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u043b\u0430\u0441\u044c. \u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e, \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0442\u0430\u043a\u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u0441 \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u0438\u0435\u043c. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u0430\u044f \u0441\u0438\u0433\u043c\u043e\u0438\u0434\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0441 \u043e\u0431\u043b\u0430\u0441\u0442\u044c\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 ( 0, 1 ) \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u043a\u0430\u043a:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/95c\/33f\/5d5\/95c33f5d5c94fbd03177cb330cbefa60.png\"\/><br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/ef9\/54d\/533\/ef954d53338d41446789870efcd3d051.png\"\/><br \/>  \u0414\u0440\u0443\u0433\u043e\u0439 \u0448\u0438\u0440\u043e\u043a\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u043e\u0439 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0438\u043f\u043e\u043b\u044f\u0440\u043d\u044b\u0439 \u0441\u0438\u0433\u043c\u043e\u0438\u0434 \u0441 \u043e\u0431\u043b\u0430\u0441\u0442\u044c\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 ( -1, 1 ) \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u0430\u043a:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/48f\/242\/2b5\/48f2422b5a5e6ecf0db4aed0779b26da.png\"\/><br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/f16\/302\/fa4\/f16302fa40d87ccce1d49db649e5d3e1.png\"\/>  <\/p>\n<h5>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/h5>\n<p>  \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<h6>\u0428\u0430\u0433 0.<\/h6>\n<p>  \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0435\u0441\u043e\u0432 ( \u0432\u0435\u0441\u0430 \u0432\u0441\u0435\u0445 \u0441\u0432\u044f\u0437\u0435\u0439 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 ).<\/p>\n<h6>\u0428\u0430\u0433 1. <\/h6>\n<p>  \u0414\u043e \u0442\u0435\u0445 \u043f\u043e\u0440 \u043f\u043e\u043a\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043d\u0435\u0432\u0435\u0440\u043d\u043e, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0448\u0430\u0433\u0438 2 \u2014 9.<\/p>\n<h6>\u0428\u0430\u0433 2.<\/h6>\n<p>  \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0430\u0440\u044b { \u0434\u0430\u043d\u043d\u044b\u0435, \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 } \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0448\u0430\u0433\u0438 3 \u2014 8.<\/p>\n<h6>\u0420\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 \u0432\u0445\u043e\u0434\u043e\u0432 \u043a \u0432\u044b\u0445\u043e\u0434\u0430\u043c:<\/h6>\n<p>  <\/p>\n<h6>\u0428\u0430\u0433 3.<\/h6>\n<p>  \u041a\u0430\u0436\u0434\u044b\u0439 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/068\/45d\/ac9\/06845dac9dd77d1ef8620005d32afef6.png\"\/> \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/49b\/14b\/a16\/49b14ba16da629aef2419d02d0933a81.png\"\/> \u0432\u0441\u0435\u043c \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0441\u043b\u043e\u0435 ( \u0441\u043a\u0440\u044b\u0442\u043e\u043c ).<\/p>\n<h6>\u0428\u0430\u0433 4.<\/h6>\n<p>  \u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u043d\u0435\u0439\u0440\u043e\u043d <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/f69\/a33\/947\/f69a339471bcb7b036d50b6c45d393a7.png\"\/> \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u0435\u0442 \u0432\u0437\u0432\u0435\u0448\u0435\u043d\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/4d0\/f96\/674\/4d0f96674d85564a1a1cb59c4989dc8d.png\"\/> \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/5c2\/550\/880\/5c25508803c7dc9739e0b34d17d8116f.png\"\/> \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u0441\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u043b\u043e\u044f ( \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e ).<\/p>\n<h6>\u0428\u0430\u0433 5.<\/h6>\n<p>   \u041a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/cbb\/3b0\/1f1\/cbb3b01f1318906c26f98926214550cb.png\"\/> \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u0435\u0442 \u0432\u0437\u0432\u0435\u0448\u0435\u043d\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/a42\/fd6\/d21\/a42fd6d2178d72f9eb4f676f6d12cd6b.png\"\/> \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044f \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/047\/21c\/2e7\/04721c2e7aa9c2d4bbd473e9c9010c47.png\"\/><\/p>\n<h6>\u041e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438:<\/h6>\n<p>  <\/p>\n<h6>\u0428\u0430\u0433 6.<\/h6>\n<p>  \u041a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/cbb\/3b0\/1f1\/cbb3b01f1318906c26f98926214550cb.png\"\/> \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2014 \u0442\u043e \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/ef8\/58c\/a62\/ef858ca62b9537e2e7c78f14dc34a3d9.png\"\/>, \u0442\u0430\u043a \u0436\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u0432\u0435\u0441 \u0441\u0432\u044f\u0437\u0438 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/40b\/4e7\/630\/40b4e7630a4014e51b588f845cee66f0.png\"\/>: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/739\/ce2\/190\/739ce21904a58ade9bd0459cbe518a74.png\"\/>. \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0431\u0430\u0439\u0435\u0441\u0430: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/569\/aa2\/50e\/569aa250ecd425dc0d44fc43c33290df.png\"\/> \u0438 \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/817\/a88\/a3b\/817a88a3b6d4b55d50308d138e63ffbb.png\"\/> \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0441\u043b\u043e\u0435.<\/p>\n<h6>\u0428\u0430\u0433 7.<\/h6>\n<p>  \u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u043d\u0435\u0439\u0440\u043e\u043d <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/f69\/a33\/947\/f69a339471bcb7b036d50b6c45d393a7.png\"\/> \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u0435\u0442 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 ( \u043e\u0442 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0441\u043b\u043e\u0435 ) <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/d7e\/0e9\/0c8\/d7e0e90c8a5286460d1c2accf3a68adb.png\"\/> \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 \u043e\u0448\u0438\u0431\u043a\u0438, \u0443\u043c\u043d\u043e\u0436\u0430\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0443\u044e \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/6cd\/4c5\/2f7\/6cd4c52f7bf07f5e282f2a2f9632cdc0.png\"\/>, \u0442\u0430\u043a \u0436\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u0432\u0435\u0441 \u0441\u0432\u044f\u0437\u0438 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/c9c\/fc2\/f67\/c9cfc2f67a4949d676962bcd7b3b5615.png\"\/>: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/4d1\/88d\/5dd\/4d188d5ddade4c68eac717538c2b97a4.png\"\/>. \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0431\u0430\u0439\u0435\u0441\u0430: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/67c\/4f7\/b50\/67c4f7b50e08bb494decc7f72b4007e0.png\"\/><\/p>\n<h6>\u0428\u0430\u0433 8. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432\u0435\u0441\u043e\u0432.<\/h6>\n<p>  \u041a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/cbb\/3b0\/1f1\/cbb3b01f1318906c26f98926214550cb.png\"\/> \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u0432\u0435\u0441\u0430 \u0441\u0432\u043e\u0438\u0445 \u0441\u0432\u044f\u0437\u0435\u0439 \u0441 \u0431\u0430\u0439\u0435\u0441\u043e\u043c \u0438 \u0441\u043a\u0440\u044b\u0442\u044b\u043c\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c\u0438: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/5ef\/710\/cd2\/5ef710cd224851d9aafeeb6474e71de7.png\"\/><br \/>  \u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u043d\u0435\u0439\u0440\u043e\u043d <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/f69\/a33\/947\/f69a339471bcb7b036d50b6c45d393a7.png\"\/> \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u0432\u0435\u0441\u0430 \u0441\u0432\u043e\u0438\u0445 \u0441\u0432\u044f\u0437\u0435\u0439 \u0441 \u0431\u0430\u0439\u0435\u0441\u043e\u043c \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c\u0438: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/267\/3ca\/03a\/2673ca03a8ac7dacb918ff750060cca1.png\"\/><\/p>\n<h6>\u0428\u0430\u0433 9.<\/h6>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430.<\/p>\n<p>  \u0423\u0441\u043b\u043e\u0432\u0438\u0435\u043c \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043a \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435 \u0441\u0443\u043c\u043c\u0430\u0440\u043d\u043e\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0441\u0435\u0442\u0438 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0430 \u0432 \u0445\u043e\u0434\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0442\u0430\u043a \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430. \u0412 \u043e\u0441\u043d\u043e\u0432\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043b\u0435\u0436\u0438\u0442 \u043c\u0435\u0442\u043e\u0434 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u044b\u0439 \u0441\u043f\u0443\u0441\u043a. \u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u043a\u0430, \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 ( \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u2014 \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430, \u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u2014 \u044d\u0442\u043e \u0432\u0435\u0441\u0430 \u0441\u0432\u044f\u0437\u0435\u0439 \u0432 \u0441\u0435\u0442\u0438 ) \u0434\u0430\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u044e\u0442 (\u0438\u043b\u0438 \u0443\u0431\u044b\u0432\u0430\u044e\u0442) \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<h5>\u0412\u044b\u0431\u043e\u0440 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u0435\u0441\u043e\u0432 \u0438 \u0431\u0430\u0439\u0435\u0441\u043e\u0432 <\/h5>\n<p>  \u0421\u043b\u0443\u0447\u0430\u0439\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f. \u0412\u044b\u0431\u043e\u0440 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u0435\u0441\u043e\u0432 \u043e\u043a\u0430\u0436\u0435\u0442 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0441\u0443\u043c\u0435\u0435\u0442 \u043b\u0438 \u0441\u0435\u0442\u044c \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e ( \u0438\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e) \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0430 \u043e\u0448\u0438\u0431\u043a\u0438, \u0438 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432\u0435\u0441\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u043e\u0439 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u0430 \u0438\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u043b\u043e\u044f \u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u0430 \u0441\u043b\u043e\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e. \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u044d\u0442\u0438\u043c, \u0432\u0430\u0436\u043d\u043e \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u0432\u044b\u0431\u043e\u0440\u0430 \u0442\u0430\u043a\u0438\u0445 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u0435\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u043d\u0443\u043b\u044f\u0442 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u043b\u0438 \u0435\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0443\u044e. \u0422\u0430\u043a\u0436\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u0435\u0441\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 ( \u0438\u043b\u0438 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u0438\u043b\u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043d\u0435\u0439\u0440\u043e\u043d\u0430 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u043f\u0430\u0434\u0443\u0442 \u0432 \u0440\u0435\u0433\u0438\u043e\u043d \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0438\u0433\u043c\u043e\u0438\u0434\u0430 ( \u0440\u0435\u0433\u0438\u043e\u043d \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u0438\u044f ) ). \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0435\u0441\u043b\u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u0435\u0441\u0430 \u0431\u0443\u0434\u0443\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u043c\u0438, \u0442\u043e \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043d\u0430 \u0441\u043a\u0440\u044b\u0442\u044b\u0435 \u0438\u043b\u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u043d\u0435\u0439\u0440\u043e\u043d\u044b \u0431\u0443\u0434\u0435\u0442 \u0431\u043b\u0438\u0437\u043e\u043a \u043a \u043d\u0443\u043b\u044e, \u0447\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u043e\u0447\u0435\u043d\u044c \u043d\u0438\u0437\u043a\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0435\u0441\u043e\u0432 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u0438 \u0438\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 ( -0,5; 0,5). \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043a \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438, \u0442\u0430\u043a \u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u0432\u0435\u0441\u0430, \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0438, \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0431\u043e\u0438\u0445 \u0437\u043d\u0430\u043a\u043e\u0432. \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Nguyen \u2013 Widrow. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0434\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u043c\u0443 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044e: \u0412\u0435\u0441\u0430 \u0441\u0432\u044f\u0437\u0435\u0439 \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u0430\u0439\u0435\u0441 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435, \u043a\u0430\u043a \u0438 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435 \u2014 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 ( -0,5; 0,5).<\/p>\n<p>  \u0412\u0432\u0435\u0434\u0435\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/37b\/325\/7c9\/37b3257c9bed3b65c47c5f4d840c99c5.png\"\/> \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/af2\/d1b\/5f0\/af2d1b5f05399fd0610e4cef464a23ab.png\"\/> \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/3ef\/8e3\/5ef\/3ef8e35ef393a7d390063360797b7c4e.png\"\/> \u0444\u0430\u043a\u0442\u043e\u0440 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f:<br \/>   <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/890\/e16\/de9\/890e16de996973ec0ecbb868ead0fb49.png\"\/><br \/>  \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0448\u0430\u0433\u043e\u0432:<br \/>  \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u043d\u0435\u0439\u0440\u043e\u043d\u0430 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/f69\/a33\/947\/f69a339471bcb7b036d50b6c45d393a7.png\"\/>:<br \/>  \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u0432\u0435\u0441\u043e\u0432 ( \u0441\u0432\u044f\u0437\u0435\u0439 \u0441 \u0432\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c\u0438 ): <\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/bde\/dd1\/df0\/bdedd1df02cd6b981f10525345680194.png\"\/> <\/p>\n<p>  \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/f1e\/b31\/b59\/f1eb31b59996ce1c443de3d73074cdc1.png\"\/><br \/>  \u043f\u0435\u0440\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0441\u0430: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/406\/c5e\/865\/406c5e865cabff898572a76a47c4b8a8.png\"\/><br \/>  \u0437\u0430\u0434\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0430\u0439\u0435\u0441\u0430: <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/ccf\/0c7\/0cf\/ccf0c70cf3cd0bbda6bab9e57765ce83.png\"\/>  <\/p>\n<h4>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/h4>\n<p>  \u041d\u0430\u0447\u043d\u0443 \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u0430. \u0411\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u0439\u0440\u043e\u043d\u044b \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u0431\u0430\u0437\u043e\u0432\u044b\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u043c, \u0430 \u0441\u043a\u0440\u044b\u0442\u044b\u0435 \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u0430\u043a \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u044b \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0435\u0439\u0440\u043e\u043d \u0445\u0440\u0430\u043d\u0438\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441\u0432\u044f\u0437\u044f\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u0435\u0439\u0440\u043e\u043d \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u0432 \u0441\u0432\u043e\u0435\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043d\u0435\u0439\u0440\u043e\u043d\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">\/**  *\tNeuron base class.  *\tRepresents a basic element of neural network, node in the net's graph.  *\tThere are several possibilities for creation an object of type Neuron, different constructors suites for  *\tdifferent situations. *\/  template &lt;typename T&gt; class Neuron { public:  \t \/** \t * \t\tA default Neuron constructor. \t * \t\t- Description:\t\tCreates a Neuron; general purposes. \t * \t\t- Purpose:\t\t\tCreates a Neuron, linked to nothing, with a Linear network function. \t * \t\t- Prerequisites:\tNone. \t *\/  \t\t\t\t\t\tNeuron( ) : mNetFunc( new Linear ), mSumOfCharges( 0.0 ) { };  \t \/** \t * \t\tA Neuron constructor based on NetworkFunction. \t * \t\t- Description:\t\tCreates a Neuron; mostly designed to create an output kind of neurons. \t * \t\t\t@param inNetFunc - a network function which is producing neuron's output signal; \t * \t\t- Purpose:\t\t\tCreates a Neuron, linked to nothing, with a specific network function. \t * \t\t- Prerequisites:\tThe existence of NetworkFunction object. \t *\/  \t\t\t\t\t\tNeuron( NetworkFunction * inNetFunc ) : mNetFunc( inNetFunc ), mSumOfCharges( 0.0 ){ };  \t\t\t\t\t\tNeuron( std::vector&lt;NeuralLink&lt;T &gt; *&gt;& inLinksToNeurons, NetworkFunction * inNetFunc ) : \t\t\t\t\t\t\tmNetFunc( inNetFunc ), \t\t\t\t\t\t\tmLinksToNeurons(inLinksToNeurons), \t\t\t\t\t\t\tmSumOfCharges(0.0){ };  \t \/** \t * \t\tA Neuron constructor based on layer of Neurons. \t * \t\t- Description:\t\tCreates a Neuron; mostly designed to create an input and hidden kinds of neurons. \t * \t\t\t@param inNeuronsLinkTo - a vector of pointers to Neurons which is representing a layer; \t * \t\t\t@param inNetFunc - a network function which is producing neuron's output signal; \t * \t\t- Purpose:\t\t\tCreates a Neuron, linked to every Neuron in provided layer. \t * \t\t- Prerequisites:\tThe existence of std::vector&lt;Neuron *&gt; and NetworkFunction. \t *\/  \t\t\t\t\t\t\t\t\tNeuron( std::vector&lt;Neuron *&gt;& inNeuronsLinkTo, NetworkFunction * inNetFunc );  \tvirtual\t\t\t\t\t                ~Neuron( );  \tvirtual std::vector&lt;NeuralLink&lt;T &gt; *&gt;& GetLinksToNeurons( ){ return mLinksToNeurons; }; \tvirtual NeuralLink&lt;T&gt; * at( const int& inIndexOfNeuralLink ) { return mLinksToNeurons[ inIndexOfNeuralLink ]; };  \tvirtual void SetLinkToNeuron( NeuralLink&lt;T&gt; * inNeuralLink ){ mLinksToNeurons.push_back( inNeuralLink ); };  \tvirtual void Input( double inInputData ){ mSumOfCharges += inInputData; }; \tvirtual double Fire( ); \tvirtual int GetNumOfLinks( ) { return mLinksToNeurons.size( ); }; \tvirtual double GetSumOfCharges( ); \tvirtual void ResetSumOfCharges( ){ mSumOfCharges = 0.0; }; \tvirtual double Process( ) { return mNetFunc-&gt;Process( mSumOfCharges ); }; \tvirtual double Process( double inArg ){ return mNetFunc-&gt;Process( inArg ); }; \tvirtual double Derivative( ){ return mNetFunc-&gt;Derivative( mSumOfCharges ); };  \tvirtual void SetInputLink( NeuralLink&lt;T&gt; * inLink ){ mInputLinks.push_back( inLink ); }; \tvirtual std::vector&lt;NeuralLink&lt;T &gt; *&gt;& GetInputLink( ){ return mInputLinks; };    \tvirtual double PerformTrainingProcess( double inTarget ); \tvirtual void PerformWeightsUpdating( );  \tvirtual void ShowNeuronState( ); protected: \tNetworkFunction * mNetFunc; \tstd::vector&lt;NeuralLink&lt;T &gt; *&gt; mInputLinks; \tstd::vector&lt;NeuralLink&lt;T &gt; *&gt; mLinksToNeurons;  \tdouble mSumOfCharges; };  template &lt;typename T&gt; class OutputLayerNeuronDecorator : public Neuron&lt;T&gt; { public: \t\t\t\t\t\t          OutputLayerNeuronDecorator( Neuron&lt;T&gt; * inNeuron ){ mOutputCharge = 0; mNeuron = inNeuron; }; \tvirtual\t\t\t\t\t~OutputLayerNeuronDecorator( );  \tvirtual std::vector&lt;NeuralLink&lt;T &gt; *&gt;& GetLinksToNeurons( ){ return mNeuron-&gt;GetLinksToNeurons( ) ;}; \tvirtual NeuralLink&lt;T&gt; * at( const int& inIndexOfNeuralLink ){ return ( mNeuron-&gt;at( inIndexOfNeuralLink ) ) ;}; \tvirtual void SetLinkToNeuron( NeuralLink&lt;T&gt; * inNeuralLink ){ mNeuron-&gt;SetLinkToNeuron( inNeuralLink ); }; \tvirtual double GetSumOfCharges( ) { return mNeuron-&gt;GetSumOfCharges( ); };  \tvirtual void ResetSumOfCharges( ){ mNeuron-&gt;ResetSumOfCharges( ); }; \tvirtual void Input( double inInputData ){ mNeuron-&gt;Input( inInputData ); }; \tvirtual double Fire( ); \tvirtual int GetNumOfLinks( ) { return mNeuron-&gt;GetNumOfLinks( ); };   \tvirtual double Process( ) { return mNeuron-&gt;Process( ); }; \tvirtual double Process( double inArg ){ return mNeuron-&gt;Process( inArg ); };  \tvirtual double Derivative( ) { return mNeuron-&gt;Derivative( ); };  \tvirtual void SetInputLink( NeuralLink&lt;T&gt; * inLink ){ mNeuron-&gt;SetInputLink( inLink ); }; \tvirtual std::vector&lt;NeuralLink&lt;T &gt; *&gt;&\tGetInputLink( ) { return mNeuron-&gt;GetInputLink( ); };  \tvirtual double PerformTrainingProcess( double inTarget ); \tvirtual void PerformWeightsUpdating( ); \tvirtual void ShowNeuronState( ) { mNeuron-&gt;ShowNeuronState( ); }; protected: \tdouble mOutputCharge; \tNeuron&lt;T&gt; *\t mNeuron;  };  template &lt;typename T&gt; class HiddenLayerNeuronDecorator : public Neuron&lt;T&gt; { public: \t\t\t\t\t\t          HiddenLayerNeuronDecorator( Neuron&lt;T&gt; * inNeuron ) { mNeuron = inNeuron; }; \tvirtual\t\t\t\t\t~HiddenLayerNeuronDecorator( );  \tvirtual std::vector&lt;NeuralLink&lt;T &gt; *&gt;&\tGetLinksToNeurons( ){ return mNeuron-&gt;GetLinksToNeurons( ); }; \tvirtual void SetLinkToNeuron( NeuralLink&lt;T&gt; * inNeuralLink ){ mNeuron-&gt;SetLinkToNeuron( inNeuralLink ); }; \tvirtual double GetSumOfCharges( ){ return mNeuron-&gt;GetSumOfCharges( ) ;};  \tvirtual void ResetSumOfCharges( ){mNeuron-&gt;ResetSumOfCharges( ); }; \tvirtual void Input( double inInputData ){ mNeuron-&gt;Input( inInputData ); }; \tvirtual double Fire( ); \tvirtual int GetNumOfLinks( ){ return mNeuron-&gt;GetNumOfLinks( ); }; \tvirtual NeuralLink&lt;T&gt; * ( const int& inIndexOfNeuralLink ){ return ( mNeuron-&gt;at( inIndexOfNeuralLink) ); };  \tvirtual double Process( ){ return mNeuron-&gt;Process( ); }; \tvirtual double Process( double inArg ){ return mNeuron-&gt;Process( inArg ); };  \tvirtual double Derivative( ){ return mNeuron-&gt;Derivative( ); };  \tvirtual void SetInputLink( NeuralLink&lt;T&gt; * inLink ){ mNeuron-&gt;SetInputLink( inLink ); }; \tvirtual std::vector&lt;NeuralLink&lt;T &gt; *&gt;& GetInputLink( ){ return mNeuron-&gt;GetInputLink( ); };  \tvirtual double PerformTrainingProcess( double inTarget ); \tvirtual void PerformWeightsUpdating( );  \tvirtual void ShowNeuronState( ){ mNeuron-&gt;ShowNeuronState( ); }; protected:   \tNeuron&lt;T&gt; *\t mNeuron;  };  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0432\u044f\u0437\u0435\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0438\u0436\u0435, \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0432\u044f\u0437\u044c \u0445\u0440\u0430\u043d\u0438\u0442 \u0432\u0435\u0441 \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043d\u0435\u0439\u0440\u043e\u043d:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">template &lt;typename T&gt; class Neuron;    template &lt;typename T&gt; class NeuralLink { public:                                        NeuralLink( ) : mWeightToNeuron( 0.0 ),                                                                   mNeuronLinkedTo( 0 ),                                                                    mWeightCorrectionTerm( 0 ),                                                                    mErrorInformationTerm( 0 ),                                                                     mLastTranslatedSignal( 0 ){ };                                         NeuralLink( Neuron&lt;T&gt; * inNeuronLinkedTo, double inWeightToNeuron = 0.0 ) :                                                                   mWeightToNeuron( inWeightToNeuron ),                                                                   mNeuronLinkedTo( inNeuronLinkedTo ),                                                                   mWeightCorrectionTerm( 0 ),                                                                  mErrorInformationTerm( 0 ),                                                                   mLastTranslatedSignal( 0 ){ };      void SetWeight( const double& inWeight ){ mWeightToNeuron = inWeight; };   const double& GetWeight( ){ return mWeightToNeuron; };      void SetNeuronLinkedTo( Neuron&lt;T&gt; * inNeuronLinkedTo ){ mNeuronLinkedTo = inNeuronLinkedTo; };   Neuron&lt;T&gt; * GetNeuronLinkedTo( ){ return mNeuronLinkedTo; };      void SetWeightCorrectionTerm( double inWeightCorrectionTerm ){ mWeightCorrectionTerm = inWeightCorrectionTerm; };   double GetWeightCorrectionTerm( ){ return mWeightCorrectionTerm; };      void UpdateWeight( ){ mWeightToNeuron = mWeightToNeuron + mWeightCorrectionTerm; };      double GetErrorInFormationTerm( ){ return mErrorInformationTerm; };   void SetErrorInFormationTerm( double inEITerm ){ mErrorInformationTerm = inEITerm; };      void SetLastTranslatedSignal( double inLastTranslatedSignal ){ mLastTranslatedSignal = inLastTranslatedSignal; };   double GetLastTranslatedSignal( ){ return mLastTranslatedSignal; }; protected:   double mWeightToNeuron;   Neuron&lt;T&gt; * mNeuronLinkedTo;   double mWeightCorrectionTerm;   double mErrorInformationTerm;   double mLastTranslatedSignal; }; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041a\u0430\u0436\u0434\u0430\u044f \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0442 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044f \u0441\u0430\u043c\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0443\u044e:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\"> class NetworkFunction { public:   NetworkFunction(){};   virtual ~NetworkFunction(){};   virtual double \tProcess( double inParam ) = 0;   virtual double \tDerivative( double inParam ) = 0; };  class Linear : public NetworkFunction { public:   Linear(){};   virtual ~Linear(){};   virtual double \tProcess( double inParam ){ return inParam; };   virtual double \tDerivative( double inParam ){ return 0; }; };   class Sigmoid : public NetworkFunction { public:   Sigmoid(){};   virtual ~Sigmoid(){};   virtual double \tProcess( double inParam ){ return ( 1 \/ ( 1 + exp( -inParam ) ) ); };   virtual double \tDerivative( double inParam ){ return ( this-&gt;Process(inParam)*(1 - this-&gt;Process(inParam)) );}; };  class BipolarSigmoid : public NetworkFunction { public:   BipolarSigmoid(){};   virtual ~BipolarSigmoid(){};   virtual double \tProcess( double inParam ){ return ( 2 \/ ( 1 + exp( -inParam ) ) - 1 ) ;};   virtual double \tDerivative( double inParam ){ return ( 0.5 * ( 1 + this-&gt;Process( inParam ) ) * ( 1 - this-&gt;Process( inParam ) ) ); }; };  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0417\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u0430 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u0430\u044f \u0444\u0430\u0431\u0440\u0438\u043a\u0430:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0444\u0430\u0431\u0440\u0438\u043a\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\"> template &lt;typename T&gt; class NeuronFactory { public: \t\t    NeuronFactory(){}; \tvirtual ~NeuronFactory(){}; \tvirtual Neuron&lt;T&gt; * CreateInputNeuron( std::vector&lt;Neuron&lt;T &gt; *&gt;& inNeuronsLinkTo, NetworkFunction * inNetFunc ) = 0; \tvirtual Neuron&lt;T&gt; * CreateOutputNeuron( NetworkFunction * inNetFunc ) = 0; \tvirtual Neuron&lt;T&gt; * CreateHiddenNeuron( std::vector&lt;Neuron&lt;T &gt; *&gt;& inNeuronsLinkTo, NetworkFunction * inNetFunc ) = 0;  };  template &lt;typename T&gt; class PerceptronNeuronFactory : public NeuronFactory&lt;T&gt; { public: \t\t    PerceptronNeuronFactory(){}; \tvirtual ~PerceptronNeuronFactory(){}; \tvirtual Neuron&lt;T&gt; * CreateInputNeuron( std::vector&lt;Neuron&lt;T &gt; *&gt;& inNeuronsLinkTo, NetworkFunction * inNetFunc ){ return new Neuron&lt;T&gt;( inNeuronsLinkTo, inNetFunc ); }; \tvirtual Neuron&lt;T&gt; * CreateOutputNeuron( NetworkFunction * inNetFunc ){ return new OutputLayerNeuronDecorator&lt;T&gt;( new Neuron&lt;T&gt;( inNetFunc ) ); }; \tvirtual Neuron&lt;T&gt; *  CreateHiddenNeuron( std::vector&lt;Neuron&lt;T &gt; *&gt;& inNeuronsLinkTo, NetworkFunction * inNetFunc ){ return new HiddenLayerNeuronDecorator&lt;T&gt;( new Neuron&lt;T&gt;( inNeuronsLinkTo, inNetFunc ) ); }; }; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0421\u0430\u043c\u0430 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043d\u0430 \u043d\u0435\u0439\u0440\u043e\u043d\u044b, \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435<br \/>  \u0441\u043b\u043e\u044f\u043c\u0438 ( \u0432\u043e\u043e\u0431\u0449\u0435, \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043d\u0430 \u043d\u0435\u0439\u0440\u043e\u043d\u044b \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435<br \/>  \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u044b-\u0441\u043b\u043e\u0438 ), \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u0443\u044e<br \/>  \u0444\u0430\u0431\u0440\u0438\u043a\u0443 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0438.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">template &lt;typename T&gt; class TrainAlgorithm;  \/**  *\tNeural network class.  *\tAn object of that type represents a neural network of several types:  *\t- Single layer perceptron;  *\t- Multiple layers perceptron.  *  * \tThere are several training algorithms available as well:  * \t- Perceptron;  * \t- Backpropagation.  *  * \tHow to use this class:  * \tTo be able to use neural network , you have to create an instance of that class, specifying  * \ta number of input neurons, output neurons, number of hidden layers and amount of neurons in hidden layers.  * \tYou can also specify a type of neural network, by passing a string with a name of neural network, otherwise  * \tMultiLayerPerceptron will be used. ( A training algorithm can be changed via public calls);  *  * \tOnce the neural network was created, all u have to do is to set the biggest MSE required to achieve during  * \tthe training phase ( or u can skip this step, then mMinMSE will be set to 0.01 ),  * \ttrain the network by providing a training data with target results.  * \tAfterwards u can obtain the net response by feeding the net with data;  * *\/  template &lt;typename T&gt; class NeuralNetwork {  public:  \t \/** \t * \t\tA Neural Network constructor. \t * \t\t- Description:\t\tA template constructor. T is a data type, all the nodes will operate with. Create a neural network by providing it with: \t * \t\t\t\t\t\t\t@param inInputs - an integer argument - number of input neurons of newly created neural network; \t * \t\t\t\t\t\t\t@param inOutputs- an integer argument - number of output neurons of newly created neural network; \t * \t\t\t\t\t\t\t@param inNumOfHiddenLayers - an integer argument - number of hidden layers of newly created neural network, default is 0; \t * \t\t\t\t\t\t\t@param inNumOfNeuronsInHiddenLayers - an integer argument - number of neurons in hidden layers of newly created neural network ( note that every hidden layer has the same amount of neurons), default is 0; \t * \t\t\t\t\t\t\t@param inTypeOfNeuralNetwork - a const char * argument - a type of neural network, we are going to create. The values may be: \t * \t\t\t\t\t\t\t&lt;UL&gt; \t * \t\t\t\t\t\t\t\t&lt;LI&gt;MultiLayerPerceptron;&lt;\/LI&gt; \t * \t\t\t\t\t\t\t\t&lt;LI&gt;Default is MultiLayerPerceptron.&lt;\/LI&gt; \t *\t\t\t\t\t\t\t&lt;\/UL&gt; \t * \t\t- Purpose:\t\t\tCreates a neural network for solving some interesting problems. \t * \t\t- Prerequisites:\tThe template parameter has to be picked based on your input data. \t * \t *\/ \t\t\t\t\tNeuralNetwork( const int& inInputs, \t\t\t\t\t\tconst int& inOutputs, \t\t\t\t\t\tconst int& inNumOfHiddenLayers = 0, \t\t\t\t\t\tconst int& inNumOfNeuronsInHiddenLayers = 0, \t\t\t\t\t\tconst char * inTypeOfNeuralNetwork = &quot;MultiLayerPerceptron&quot; \t\t\t\t\t);  \t\t\t\t\t~NeuralNetwork( );  \t \/** \t * \t\tPublic method Train. \t *\t\t- Description:\t\tMethod for training the network. \t *\t\t- Purpose:\t\t\tTrains a network, so the weights on the links adjusted in the way to be able to solve problem. \t *\t\t- Prerequisites: \t *\t\t\t@param inData \t- a vector of vectors with data to train with; \t *\t\t\t@param inTarget - a vector of vectors with target data; \t *\t\t\t\t\t  \t\t- the number of data samples and target samples has to be equal; \t *\t\t\t\t\t  \t\t- the data and targets has to be in the appropriate order u want the network to learn. \t *\/  \tbool Train( const std::vector&lt;std::vector&lt;T &gt; &gt;& inData, \t\t const std::vector&lt;std::vector&lt;T &gt; &gt;& inTarget );  \t \/** \t * \t\tPublic method GetNetResponse. \t *\t\t- Description:\t\tMethod for actually get response from net by feeding it with data. \t *\t\t- Purpose:\t\t\tBy calling this method u make the network evaluate the response for u. \t *\t\t- Prerequisites: \t *\t\t\t@param inData \t- a vector data to feed with. \t *\/  \tstd::vector&lt;int&gt; GetNetResponse( const std::vector&lt;T&gt;& inData );  \t \/** \t * \t\tPublic method SetAlgorithm. \t *\t\t- Description:\t\tSetter for algorithm of training the net. \t *\t\t- Purpose:\t\t\tCan be used for dynamic change of training algorithm. \t *\t\t- Prerequisites: \t *\t\t\t@param inTrainingAlgorithm \t- an existence of already created object  of type TrainAlgorithm. \t *\/  \tvoid\t SetAlgorithm( TrainAlgorithm&lt;T&gt; * inTrainingAlgorithm )\t\t{ mTrainingAlgoritm = inTrainingAlgorithm; };  \t \/** \t * \t\tPublic method SetNeuronFactory. \t *\t\t- Description:\t\tSetter for the factory, which is making neurons for the net. \t *\t\t- Purpose:\t\t\tCan be used for dynamic change of neuron factory. \t *\t\t- Prerequisites: \t *\t\t\t@param inNeuronFactory \t- an existence of already created object  of type NeuronFactory. \t *\/  \tvoid\t SetNeuronFactory( NeuronFactory&lt;T&gt; * inNeuronFactory )\t\t{ mNeuronFactory = inNeuronFactory; };  \t \/** \t * \t\tPublic method ShowNetworkState. \t *\t\t- Description:\t\tPrints current state to the standard output: weight of every link. \t *\t\t- Purpose:\t\t\tCan be used for monitoring the weights change during training of the net. \t *\t\t- Prerequisites:\tNone. \t *\/  \tvoid\t ShowNetworkState( );  \t \/** \t * \t\tPublic method GetMinMSE. \t *\t\t- Description:\t\tReturns the biggest MSE required to achieve during the training phase. \t *\t\t- Purpose:\t\t\tCan be used for getting the biggest MSE required to achieve during the training phase. \t *\t\t- Prerequisites:\tNone. \t *\/  \tconst double& GetMinMSE( ){ return mMinMSE; };  \t \/** \t * \t\tPublic method SetMinMSE. \t *\t\t- Description:\t\tSetter for the biggest MSE required to achieve during the training phase. \t *\t\t- Purpose:\t\t\tCan be used for setting the biggest MSE required to achieve during the training phase. \t *\t\t- Prerequisites: \t *\t\t\t@param inMinMse \t- double value, the biggest MSE required to achieve during the training phase. \t *\/  \tvoid\t SetMinMSE( const double& inMinMse ){ mMinMSE = inMinMse; };  \t\/** \t* \t\tFriend class. \t*\/  \tfriend class Hebb&lt;T&gt;;  \t\/** \t* \t\tFriend class. \t*\/  \tfriend class Backpropagation&lt;T&gt;;  protected:  \t \/** \t * \t\tProtected method GetLayer. \t *\t\t- Description:\t\tGetter for the layer by index of that layer. \t *\t\t- Purpose:\t\t\tCan be used by inner implementation for getting access to neural network's layers. \t *\t\t- Prerequisites: \t *\t\t\t@param inInd \t-  an integer index of layer. \t *\/  \tstd::vector&lt;Neuron&lt;T &gt; *&gt;& GetLayer( const int& inInd ){ return mLayers[inInd]; };  \t\/** \t * \t\tProtected method size. \t *\t\t- Description:\t\tReturns the number of layers in the network. \t *\t\t- Purpose:\t\t\tCan be used by inner implementation for getting number of layers in the network. \t *\t\t- Prerequisites:\tNone. \t *\/  \tunsigned int size( ){ return mLayers.size( ); };  \t\/** \t * \t\tProtected method GetNumOfOutputs. \t *\t\t- Description:\t\tReturns the number of units in the output layer. \t *\t\t- Purpose:\t\t\tCan be used by inner implementation for getting number of units in the output layer. \t *\t\t- Prerequisites:\tNone. \t *\/  \tstd::vector&lt;Neuron&lt;T &gt; *&gt;& GetOutputLayer( ){ return mLayers[mLayers.size( )-1]; };  \t\/** \t * \t\tProtected method GetInputLayer. \t *\t\t- Description:\t\tReturns the input layer. \t *\t\t- Purpose:\t\t\tCan be used by inner implementation for getting the input layer. \t *\t\t- Prerequisites:\tNone. \t *\/  \tstd::vector&lt;Neuron&lt;T &gt; *&gt;& GetInputLayer( ){ return mLayers[0]; };  \t\/** \t * \t\tProtected method GetBiasLayer. \t *\t\t- Description:\t\tReturns the vector of Biases. \t *\t\t- Purpose:\t\t\tCan be used by inner implementation for getting vector of Biases. \t *\t\t- Prerequisites:\tNone. \t *\/  \tstd::vector&lt;Neuron&lt;T &gt; *&gt;& GetBiasLayer( )\t{ return mBiasLayer; };  \t\/** \t * \t\tProtected method UpdateWeights. \t *\t\t- Description:\t\tUpdates the weights of every link between the neurons. \t *\t\t- Purpose:\t\t\tCan be used by inner implementation for updating the weights of links between the neurons. \t *\t\t- Prerequisites:\tNone, but only makes sense, when its called during the training phase. \t *\/  \tvoid\t UpdateWeights( );  \t\/** \t * \t\tProtected method ResetCharges. \t *\t\t- Description:\t\tResets the neuron's data received during iteration of net training. \t *\t\t- Purpose:\t\t\tCan be used by inner implementation for reset the neuron's data between iterations. \t *\t\t- Prerequisites:\tNone, but only makes sense, when its called during the training phase. \t *\/  \tvoid\t ResetCharges( );  \t\/** \t * \t\tProtected method AddMSE. \t *\t\t- Description:\t\tChanges MSE during the training phase. \t *\t\t- Purpose:\t\t\tCan be used by inner implementation for changing MSE during the training phase. \t *\t\t- Prerequisites: \t *\t\t\t@param inInd \t-  a double amount of MSE to be add. \t *\/  \tvoid\t AddMSE( double inPortion ){ mMeanSquaredError += inPortion; };  \t\/** \t * \t\tProtected method GetMSE. \t *\t\t- Description:\t\tGetter for MSE value. \t *\t\t- Purpose:\t\t\tCan be used by inner implementation for getting access to the MSE value. \t *\t\t- Prerequisites:\tNone. \t *\/  \tdouble GetMSE( ){ return mMeanSquaredError; };  \t\/** \t * \t\tProtected method ResetMSE. \t *\t\t- Description:\t\tResets MSE value. \t *\t\t- Purpose:\t\t\tCan be used by inner implementation for resetting MSE value. \t *\t\t- Prerequisites:\tNone. \t *\/  \tvoid ResetMSE( )\t{ mMeanSquaredError = 0; };   \tNeuronFactory&lt;T&gt; * mNeuronFactory; \/*!&lt; Member, which is responsible for creating neurons @see SetNeuronFactory *\/ \tTrainAlgorithm&lt;T&gt; * mTrainingAlgoritm;  \/*!&lt; Member, which is responsible for the way the network will trained @see SetAlgorithm *\/ \tstd::vector&lt;std::vector&lt;Neuron&lt;T &gt; *&gt; &gt;  mLayers; \/*!&lt; Inner representation of neural networks *\/ \tstd::vector&lt;Neuron&lt;T &gt; *&gt;  mBiasLayer; \/*!&lt; Container for biases *\/ \tunsigned int mInputs, mOutputs, mHidden; \/*!&lt; Number of inputs, outputs and hidden units *\/ \tdouble mMeanSquaredError; \/*!&lt; Mean Squared Error which is changing every iteration of the training*\/ \tdouble mMinMSE; \/*!&lt; The biggest Mean Squared Error required for training to stop*\/ };   <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0418, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0441\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u043b\u0430\u0441\u0441\u0430, \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0438:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\"> template &lt;typename T&gt; class NeuralNetwork;  template &lt;typename T&gt; class TrainAlgorithm { public: \tvirtual ~TrainAlgorithm(){}; \tvirtual double Train(const std::vector&lt;T&gt;& inData, const std::vector&lt;T&gt;& inTarget) = 0; \tvirtual void WeightsInitialization() = 0; protected: };  template &lt;typename T&gt; class Hebb : public TrainAlgorithm&lt;T&gt; { public: \t\t   Hebb(NeuralNetwork&lt;T&gt; * inNeuralNetwork) : mNeuralNetwork(inNeuralNetwork){}; \tvirtual ~Hebb(){}; \tvirtual double Train(const std::vector&lt;T&gt;& inData, const std::vector&lt;T&gt;& inTarget); \tvirtual void WeightsInitialization(); protected: \tNeuralNetwork&lt;T&gt; * mNeuralNetwork; };  template &lt;typename T&gt; class Backpropagation : public TrainAlgorithm&lt;T&gt; { public: \t\t    Backpropagation(NeuralNetwork&lt;T&gt; * inNeuralNetwork); \tvirtual ~Backpropagation(){}; \tvirtual double Train(const std::vector&lt;T&gt;& inData, const std::vector&lt;T&gt;& inTarget); \tvirtual void WeightsInitialization(); protected: \tvoid\t NguyenWidrowWeightsInitialization(); \tvoid\t CommonInitialization(); \tNeuralNetwork&lt;T&gt; * mNeuralNetwork; };  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412\u0435\u0441\u044c \u043a\u043e\u0434 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u0430 github: Sovietmade\/NeuralNetworks<\/p>\n<p>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0442\u0435\u043c\u0430 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e, \u0432\u043d\u043e\u0432\u044c \u0438 \u0432\u043d\u043e\u0432\u044c \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0445\u0430\u0431\u0440\u0430 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u043e \u043d\u043e\u0432\u044b\u0445 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f\u0445 \u0443\u0447\u0435\u043d\u044b\u0445 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439, \u043d\u043e\u0432\u044b\u0445 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u0445. \u0421 \u043c\u043e\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b,<br \/>  \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0432\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0439\u0448\u0435\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0438 \u044f \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u0434\u043b\u044f \u043a\u043e\u0433\u043e \u2014 \u0442\u043e \u043e\u043d\u0430 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0435\u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439.<\/p>\n<h5>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u0430:<\/h5>\n<p>  \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0431\u044b\u043b \u0432\u0437\u044f\u0442 \u0438\u0437 \u0438\u0437\u0443\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043a\u043d\u0438\u0433\u0438:<br \/>  Laurene V. Fausett \u201cFundamentals of Neural Networks: Architectures, Algorithms And Applications\u201d. \t\t\t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/198268\/\"> http:\/\/habrahabr.ru\/post\/198268\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\"> \t\t\t\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0445\u0430\u0431\u0440\u043e\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438! <br \/>  \u0422\u0435\u043c\u0430 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439 \u0431\u044b\u043b\u0430 \u0443\u0436\u0435 \u043d\u0438 \u0440\u0430\u0437 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0430 \u043d\u0430 \u0445\u0430\u0431\u0440\u0435, \u043e\u0434\u043d\u0430\u043a\u043e \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0431\u044b \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0439\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-198268","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/198268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=198268"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/198268\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=198268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=198268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=198268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}