{"id":3022,"date":"2020-02-25T19:49:38","date_gmt":"2020-02-25T11:49:38","guid":{"rendered":"http:\/\/www.sniper97.cn\/?p=3022"},"modified":"2020-02-25T19:49:38","modified_gmt":"2020-02-25T11:49:38","slug":"%e3%80%90%e5%90%b4%e6%81%a9%e8%be%be%e6%b7%b1%e5%ba%a6%e5%ad%a6%e4%b9%a0%e3%80%91%e4%bc%98%e5%8c%96%e7%ae%97%e6%b3%95","status":"publish","type":"post","link":"http:\/\/www.sniper97.cn\/index.php\/note\/deep-learning\/3022\/","title":{"rendered":"\u3010\u5434\u6069\u8fbe\u6df1\u5ea6\u5b66\u4e60\u3011\u4f18\u5316\u7b97\u6cd5"},"content":{"rendered":"\n<p> \u5434\u6069\u8fbe\u6df1\u5ea6\u5b66\u4e60\u7b2c\u4e8c\u8bfe\u7b2c\u4e8c\u5468 \u4f18\u5316\u65b9\u6cd5 <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"251\" height=\"322\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-101.png\" alt=\"\" class=\"wp-image-3054\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-101.png 251w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-101-234x300.png 234w\" sizes=\"(max-width: 251px) 100vw, 251px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">1.mini-batch\u68af\u5ea6\u4e0b\u964d<\/h2>\n\n\n<p> \u5047\u5982\u6211\u4eec\u6709\u4e00\u4e2a\u957f\u5ea6\u4e3a500w\u7684\u6570\u636e\u96c6\uff0c\u8fd9\u65f6\u5019\u6211\u4eec\u5982\u679c\u8981\u505a\u68af\u5ea6\u4e0b\u964d\uff0c\u6bcf\u4e0b\u964d\u4e00\u6b21\u9700\u8981\u5bf9500w\u957f\u5ea6\u7684\u5411\u91cf\u8fdb\u884c\u8ba1\u7b97\u3002 <\/p>\n\n\n<p> \u8fd9\u65f6\u5019\u6211\u4eec\u5f15\u5165mini-batch\u7b97\u6cd5\uff0c\u5047\u8bbe\u6211\u4eec\u5c06\u6bcf\u6279\u8bbe\u4e3a1000\u4e2a\u957f\u5ea6\uff0c\u8fd9\u65f6\u5019\u6211\u4eec\u53ef\u4ee5\u5c06\u6574\u4e2a\u6570\u636e\u5206\u62105000\u4efd\uff08\u7ed3\u679c\u96c6\u540c\u7406\uff09\uff0c\u547d\u540d\u89c4\u5219\u5982\u4e0b<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"573\" height=\"168\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-74.png\" alt=\"\" class=\"wp-image-3023\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-74.png 573w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-74-300x88.png 300w\" sizes=\"(max-width: 573px) 100vw, 573px\" \/><\/figure><\/div>\n\n\n<p>  \u7136\u540e\u4f7f\u7528for\u5faa\u73af\uff0c\u5bf9\u6bcf1000\u4e2a\u6570\u636e\u8fdb\u884c\u4e00\u6b21\u68af\u5ea6\u4e0b\u964d\uff0c\u8fd9\u6837\u6211\u4eec500w\u6761\u6570\u636e\u53ef\u4ee5\u8fdb\u884c5000\u6b21\u4e0b\u964d\uff0c\u63d0\u9ad8\u4e86\u6536\u655b\u901f\u5ea6\u3002 <\/p>\n\n\n<h2 class=\"wp-block-heading\">2.\u7406\u89e3mini-batch\u68af\u5ea6\u4e0b\u964d\u7b97\u6cd5<\/h2>\n\n\n<p> \u5982\u679c\u6211\u4eec\u5728batch\u68af\u5ea6\u4e0b\u964d\u6cd5\u4e2d\u9047\u5230\u4e86\u4ee3\u4ef7\u4e0a\u5347\u7684\u95ee\u9898\uff0c\u8bf4\u660e\u6211\u4eec\u7684\u5b66\u4e60\u7387\u8fc7\u5927\u3002<\/p>\n\n\n<p>\u800c\u5982\u679c\u6211\u4eec\u4f7f\u7528mini-batch\u7b97\u6cd5\uff0c\u8fd9\u5374\u662f\u6b63\u5e38\u7684\u3002<\/p>\n\n\n<p>\u5728mini-batch\u4e2d\uff0c\u4e0d\u662f\u6bcf\u6b21\u8fed\u4ee3\u4ee3\u4ef7\u90fd\u4f1a\u4e0b\u964d\uff0c\u56e0\u4e3a\u6bcf\u6b21\u8fed\u4ee3\u4e2d\u5904\u7406\u7684\u90fd\u662f\u4e0d\u540c\u7684\u6837\u672c\uff0c\u56e0\u6b64\u5341\u5206\u53ef\u80fd\u6211\u4eec\u6700\u7ec8\u5f97\u5230\u7684\u4ee3\u4ef7\u66f2\u7ebf\u662f\u4e00\u4e2a\u5982\u4e0b\u56fe\u7684\u6837\u5b50 <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"242\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-75.png\" alt=\"\" class=\"wp-image-3024\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-75.png 624w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-75-300x116.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/figure><\/div>\n\n\n<p> \u4f46\u662f\u6211\u4eec\u9700\u8981\u6ce8\u610f\uff0c\u867d\u7136\u6709\u8d77\u4f0f\u662f\u65e0\u6240\u8c13\u7684\uff0c\u4f46\u662f\u6574\u4f53\u7684\u8d70\u52bf\u5e94\u8be5\u662f\u5411\u4e0b\u7684\u3002<\/p>\n\n\n<p>\u566a\u58f0\u7684\u4ea7\u751f\u662f\u56e0\u4e3a\u53ef\u80fd\u5f53\u524d\u7684parameters\u5bf9\u67d0\u4e00\u6279\u7684\u62df\u5408\u7a0b\u5ea6\u6bd4\u8f83\u597d\u6216\u8005\u5f53\u524d\u6279\u7684\u6570\u636e\u6709\u4e00\u4e9b\u6b8b\u7f3a\u503c\u7b49\uff0c\u56e0\u6b64\u4ee3\u4ef7\u4f1a\u8d77\u4f0f\u53d8\u5316\u3002 <\/p>\n\n\n<p> \u4f60\u9700\u8981\u51b3\u5b9a\u7684\u53d8\u91cf\u4e4b\u4e00\u662fmini-batch\u5927\u5c0f\uff0cm\u5c31\u662f\u8bad\u7ec3\u96c6\u7684\u5927\u5c0f\uff0c\u5728\u6781\u7aef\u7684\u60c5\u51b5\u4e0b\uff0cmini-batch\u5927\u5c0f\u7b49\u4e8em\uff0c\u90a3\u4e48\u5c31\u9000\u5316\u6210\u4e86batch\u68af\u5ea6\u4e0b\u964d\u6cd5\uff1b<\/p>\n\n\n<p>\u53e6\u4e00\u79cd\u6781\u7aef\u662fmini-batch\u7684\u5927\u5c0f\u4e3a1\uff0c\u8fd9\u65f6\u5019\u5c31\u6210\u4e86\u53e6\u4e00\u79cd\u7b97\u6cd5\u2014\u2014\u968f\u673a\u68af\u5ea6\u4e0b\u964d\u6cd5\uff0c\u65e2\u6bcf\u4e00\u4e2a\u6837\u672c\u90fd\u662fmini-batch\u3002 <\/p>\n\n\n<p> \u5bf9\u4e8ebatch\u68af\u5ea6\u4e0b\u964d\u6cd5\u548c\u968f\u673a\u68af\u5ea6\u4e0b\u964d\u6cd5\uff0c\u6709\u5982\u4e0b\u56fe<\/p>\n\n\n<p> <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"281\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-76.png\" alt=\"\" class=\"wp-image-3025\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-76.png 320w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-76-300x263.png 300w\" sizes=\"(max-width: 320px) 100vw, 320px\" \/><\/figure><\/div>\n\n\n<p> \u6211\u4eec\u770b\u5230\uff0c\u968f\u673a\u68af\u5ea6\u4e0b\u964d\u6cd5\u5e76\u4e0d\u4f1a\u4e00\u76f4\u5411\u7740\u6700\u597d\u7684\u65b9\u5411\u524d\u8fdb\uff0c\u4f46\u662f\u603b\u4f53\u8d8b\u52bf\u662f\u4e0b\u964d\u7684\uff0c\u5e76\u4e14\u6700\u540e\u4e0d\u4f1a\u6536\u655b\u5230\u67d0\u4e00\u4e2a\u5177\u4f53\u503c\uff0c\u800c\u662f\u5728\u67d0\u4e00\u503c\u9644\u8fd1\u6d6e\u52a8\uff0c\u800cmini-batch\u867d\u7136\u540e\u6d6e\u52a8\u4f46\u662f\u6ce2\u52a8\u4e0d\u5927\uff0c\u603b\u4f53\u4e0a\u8f83\u5feb\u7684\u903c\u8fd1\u6536\u655b\u503c\u3002 <\/p>\n\n\n<p> \u5982\u679c\u8bad\u7ec3\u96c6\u8f83\u5c0f\u5219\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528batch\u68af\u5ea6\u4e0b\u964d\u6cd5\uff08\u4e00\u822c\u63072000\u4ee5\u5185\uff09\u3002<\/p>\n\n\n<p>\u5927\u5c0f\u4e00\u822c\u4e3a2\u7684n\u6b21\u65b9\u500d\u3002\u4e00\u65b9\u9762\uff0c\u5145\u5206\u5229\u7528\u7684GPU\u7684\u5e76\u884c\u6027\uff0c\u53e6\u4e00\u65b9\u9762\uff0c\u4e0d\u4f1a\u8ba9\u8ba1\u7b97\u65f6\u95f4\u7279\u522b\u957f<\/p>\n\n\n<h2 class=\"wp-block-heading\">3.\u6307\u6570\u52a0\u6743\u5e73\u5747\u6570 <\/h2>\n\n\n<p>\u6211\u4eec\u5047\u5b9a\u5168\u5e74\u7684\u6e29\u5ea6\u6570\u636e\u5982\u4e0b<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"494\" height=\"296\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-77.png\" alt=\"\" class=\"wp-image-3026\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-77.png 494w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-77-300x180.png 300w\" sizes=\"(max-width: 494px) 100vw, 494px\" \/><\/figure><\/div>\n\n\n<p> \u6211\u4eec\u4f7f\u7528\u524d\u4e00\u5929\u7684\u6e29\u5ea6*0.9+\u4eca\u5929\u7684\u6e29\u5ea6*0.1\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u753b\u51fa\u4e0b\u9762\u7684\u66f2\u7ebf <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"297\" height=\"217\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-78.png\" alt=\"\" class=\"wp-image-3027\"\/><\/figure><\/div>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"519\" height=\"242\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-79.png\" alt=\"\" class=\"wp-image-3028\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-79.png 519w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-79-300x140.png 300w\" sizes=\"(max-width: 519px) 100vw, 519px\" \/><\/figure><\/div>\n\n\n<p> \u6211\u4eec\u5c06\u4e0a\u9762\u7684\u5f0f\u5b50\u63a8\u5e7f\u5230\u4e00\u822c\u60c5\u51b5 <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"209\" height=\"43\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-80.png\" alt=\"\" class=\"wp-image-3029\"\/><\/figure><\/div>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"446\" height=\"154\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-81.png\" alt=\"\" class=\"wp-image-3030\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-81.png 446w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-81-300x104.png 300w\" sizes=\"(max-width: 446px) 100vw, 446px\" \/><\/figure><\/div>\n\n\n<p> \u6211\u4eec\u53d1\u73b0\u4e0a\u9762\u6211\u4eec\u53d60.9\u7684\u65f6\u5019\uff0c\u5b9e\u9645\u4e0a\u662f\u4eca\u5929\u7684\u5929\u6c14\u6743\u91cd\u53ea\u67090.1\uff0c\u4e4b\u524d\u7684\u5929\u6c14\u6743\u91cd\u4e3a0.9\uff0c\u8fd9\u6837\u76f8\u5f53\u4e8e\u8ba1\u7b97\u4e8610\u5929\u7684\u5e73\u5747\u6c14\u6e29\u3002\u800c\u6211\u4eec\u53d60.98\u7684\u65f6\u5019\uff0c\u8fd9\u65f6\u5019\u8ba1\u7b97\u7684\u5c31\u662f50\u5929\u7684\u5e73\u5747\u6c14\u6e29\u4e86\uff0c\u66f2\u7ebf\u5982\u4e0b <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"158\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-82.png\" alt=\"\" class=\"wp-image-3031\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-82.png 320w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-82-300x148.png 300w\" sizes=\"(max-width: 320px) 100vw, 320px\" \/><\/figure><\/div>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"332\" height=\"168\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-83.png\" alt=\"\" class=\"wp-image-3032\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-83.png 332w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-83-300x152.png 300w\" sizes=\"(max-width: 332px) 100vw, 332px\" \/><\/figure><\/div>\n\n\n<p> \u7531\u4e8e\u4ec5\u5e73\u5747\u4e86\u4e24\u5929\u7684\u6e29\u5ea6\uff0c\u5e73\u5747\u6570\u636e\u592a\u5c11\uff0c\u6240\u4ee5\u5f97\u5230\u7684\u66f2\u7ebf\u6709\u66f4\u591a\u7684\u566a\u58f0\uff0c\u6709\u53ef\u80fd\u51fa\u73b0\u5f02\u5e38\u503c\uff0c\u4f46\u662f\u8fd9\u4e2a\u66f2\u7ebf\u80fd\u591f\u66f4\u5feb\u7684\u9002\u5e94\u6e29\u5ea6\u7684\u53d8\u5316\u3002 <\/p>\n\n\n<h2 class=\"wp-block-heading\">4.\u7406\u89e3\u6307\u6570\u52a0\u6743\u5e73\u5747\u6570<\/h2>\n\n\n<p> \u4e0a\u4e00\u8282\u6211\u4eec\u5df2\u7ecf\u77e5\u9053\u4e86\u8ba1\u7b97\u6307\u6570\u52a0\u6743\u5e73\u5747\u6570\u7684\u5173\u952e\u65b9\u7a0b\uff1a <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"209\" height=\"43\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-84.png\" alt=\"\" class=\"wp-image-3033\"\/><\/figure><\/div>\n\n\n<p> \u6211\u4eec\u5c06v100\u5c55\u5f00\uff1a <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"793\" height=\"30\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-85.png\" alt=\"\" class=\"wp-image-3034\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-85.png 793w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-85-300x11.png 300w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-85-768x29.png 768w\" sizes=\"(max-width: 793px) 100vw, 793px\" \/><\/figure><\/div>\n\n\n<p> \u6211\u4eec\u53ef\u4ee5\u770b\u5230\u6211\u4eec\u5b9e\u9645\u4e0a\u7b97\u7684\u5e76\u4e0d\u662f\u7cbe\u786e\u7684\u5e73\u5747\u6570\uff0c\u53ea\u4e0d\u8fc7\u7531\u4e8e\u6743\u91cd\u7684\u53d8\u5316\uff0c\u5bf9\u4e8e\u5f88\u4e45\u4ee5\u524d\u7684\u5929\u6570\u6743\u91cd\u5f88\u4f4e\uff0c\u5bfc\u81f4\u5bf9v100\u7684\u5f71\u54cd\u5fae\u4e0d\u8db3\u9053\u3002<\/p>\n\n\n<p>\u90a3\u4e48\u4e3a\u4ec0\u4e48\u8981\u4f7f\u7528\u8fd9\u79cd\u4e0d\u600e\u4e48\u7cbe\u786e\u7684\u6c42 \u5e73\u5747\u503c\u7684\u529e\u6cd5\u5462 \uff1f<\/p>\n\n\n<p> \u90a3\u662f\u56e0\u4e3a\u8fd9\u4e2a\u516c\u5f0f\u53ea\u6709\u4e00\u884c\uff0c\u53ea\u9700\u8981\u4e0d\u65ad\u7684\u8fed\u4ee3\u800c\u4e0d\u9700\u8981\u50cf\u4e4b\u524d\u6c42\u5e73\u5747\u503c\uff0c\u6c42\u548c\u518d\u9664\uff0c\u6d6a\u8d39\u4e86\u8fc7\u591a\u7684\u8ba1\u7b97\u673a\u5185\u5b58\u3002\u800c\u4ea7\u751f\u7684\u8bef\u5dee\u5728\u4e0b\u4e00\u8282\u4e2d\u4e5f\u4f1a\u6709\u9002\u5f53\u7684\u8bef\u5dee\u4fee\u6b63\u3002 <\/p>\n\n\n<h2 class=\"wp-block-heading\">5.\u6307\u6570\u52a0\u6743\u5e73\u5747\u7684\u504f\u5dee\u4fee\u6b63<\/h2>\n\n\n<p>\u8fd9\u4e00\u8282\u5b66\u4e60\u4e00\u4e2a\u6280\u672f\u540d\u8bcd\u53eb\u504f\u5dee\u4fee\u6b63\uff0c\u53ef\u4ee5\u8ba9\u5e73\u5747\u6570\u8fd0\u884c\u66f4\u52a0\u51c6\u786e\u3002 <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"209\" height=\"43\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-86.png\" alt=\"\" class=\"wp-image-3035\"\/><\/figure><\/div>\n\n\n<p> \u7531\u4e8e\u6211\u4eec\u521d\u59cb\u5316v0=0\uff0c\u56e0\u6b64\u5f53\u6211\u4eec\u8ba1\u7b97v1\u7684\u65f6\u5019\uff0cv1=0.98v0+0.02t = 0.02t\uff0c\u8fd9\u6837v1\u7684\u6e29\u5ea6\u5c31\u4f1a\u4e0d\u6b63\u5e38\u7684\u4f4e\u3002\u8fd9\u6837\u5728\u524d\u671f\u6211\u4eec\u5f97\u5230\u7684\u5e73\u5747\u6570\u66f2\u7ebf\u5f88\u5bb9\u6613\u662f\u4e0b\u56fe\u7d2b\u8272\u7684 <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"520\" height=\"176\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-87.png\" alt=\"\" class=\"wp-image-3036\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-87.png 520w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-87-300x102.png 300w\" sizes=\"(max-width: 520px) 100vw, 520px\" \/><\/figure><\/div>\n\n\n<p> \u90a3\u4e3a\u4e86\u4fee\u6b63\u8fd9\u4e2a\u8bef\u5dee\u6211\u4eec\u4fee\u6539\u4e00\u4e0b\u516c\u5f0f\uff0c\u5c06\u7b49\u5f0f\u53f3\u8fb9\u9664\uff081-theta\u7684t\u6b21\u65b9\uff09 <\/p>\n\n\n<p> \u8fd9\u6837\u6211\u4eec\u8ba1\u7b97\u7684\u65f6\u5019\uff0c\u5728t\u8f83\u5c0f\u7684\u65f6\u5019\u9664\u9879\u5f88\u5c0f\uff0c\u4f1a\u653e\u5927\u7ed3\u679c\uff0cvt\u4f9d\u7136\u4f1a\u4fdd\u6301\u4e00\u4e2a\u8f83\u9ad8\u7684\u6c34\u5e73\uff08\u5b9e\u9645\u4e0a\u662fv0\u548cv1\u7684\u52a0\u6743\u5e73\u5747\u6570\uff09\uff0c\u5728t\u8f83\u5927\u7684\u65f6\u5019\u5206\u6bcd\u53c8\u4f1a\u8d8b\u8fd1\u4e8e1\uff0c\u548c\u7eff\u7ebf\u57fa\u672c\u62df\u5408\u3002 <\/p>\n\n\n<p> \u4e0d\u8fc7 \u5728\u673a\u5668\u5b66\u4e60\u4e2d\uff0c\u5728\u8ba1\u7b97\u6307\u6570\u52a0\u6743\u5e73\u5747\u6570\u7684\u5927\u90e8\u5206\u65f6\u5019\uff0c\u5927\u5bb6\u4e0d\u5728\u4e4e\u6267\u884c\u504f\u5dee\u4fee\u6b63\uff0c\u56e0\u4e3a\u5927\u90e8\u5206\u4eba\u5b81\u613f\u71ac\u8fc7\u521d\u59cb\u65f6\u671f\uff0c\u62ff\u5230\u5177\u6709\u504f\u5dee\u7684\u4f30\u6d4b\uff0c\u7136\u540e\u7ee7\u7eed\u8ba1\u7b97\u4e0b\u53bb\u3002<\/p>\n\n\n<p>\u5982\u679c\u4f60\u5173\u5fc3\u521d\u59cb\u65f6\u671f\u7684\u504f\u5dee\uff0c\u5728\u521a\u5f00\u59cb\u8ba1\u7b97\u6307\u6570\u52a0\u6743\u79fb\u52a8\u5e73\u5747\u6570\u7684\u65f6\u5019\uff0c\u504f\u5dee\u4fee\u6b63\u80fd\u5e2e\u52a9\u4f60\u5728\u65e9\u671f\u83b7\u53d6\u66f4\u597d\u7684\u4f30\u6d4b\u3002 <\/p>\n\n\n<h2 class=\"wp-block-heading\">6.\u52a8\u91cf\u68af\u5ea6\u4e0b\u964d\u7b97\u6cd5 <\/h2>\n\n\n<p> \u8fd8\u6709\u4e00\u79cd\u7b97\u6cd5\u53ebMomentum\uff0c\u6216\u8005\u53eb\u52a8\u91cf\u68af\u5ea6\u4e0b\u964d\u6cd5\uff0c\u8fd0\u884c\u901f\u5ea6\u51e0\u4e4e\u603b\u662f\u5feb\u4e8e\u6807\u51c6\u7684\u68af\u5ea6\u4e0b\u964d\u7b97\u6cd5\u3002 <\/p>\n\n\n<p>\u52a8\u91cf\u68af\u5ea6\u4e0b\u964d\u7b97\u6cd5\u5b9e\u9645\u4e0a\u5c31\u662f\u5c06\u52a0\u6743\u5e73\u5747\u6570\u7684\u601d\u60f3\u7528\u5230\u4e86\u68af\u5ea6\u4e0b\u964d\u4e0a\u3002<\/p>\n\n\n<p>\u6b63\u5e38\u7684\u68af\u5ea6\u4e0b\u964d\u5c31\u50cf\u4e0b\u9762\u8fd9\u5e45\u56fe\uff0c\u603b\u662f\u6162\u6162\u7684\u5411\u6700\u4f18\u70b9\u9760\u8fd1\uff0c\u589e\u5927\u5b66\u4e60\u7387\u4f1a\u8ba9\u66f2\u7ebf\u50cf\u7d2b\u8272\u4e00\u6837\u6ce2\u52a8\u7684\u66f4\u5927  <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"412\" height=\"117\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-88.png\" alt=\"\" class=\"wp-image-3037\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-88.png 412w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-88-300x85.png 300w\" sizes=\"(max-width: 412px) 100vw, 412px\" \/><\/figure><\/div>\n\n\n<p> \u6211\u4eec\u5f15\u5165\u4e00\u4e2a\u673a\u5236\uff0c\u7c7b\u4f3c\u4e8e\u5f15\u5165\u4e00\u4e2a\u6469\u64e6\u529b\u673a\u5236\uff0c\u516c\u5f0f\u5982\u4e0b <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"364\" height=\"123\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-89.png\" alt=\"\" class=\"wp-image-3038\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-89.png 364w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-89-300x101.png 300w\" sizes=\"(max-width: 364px) 100vw, 364px\" \/><\/figure><\/div>\n\n\n<p> \u5b9e\u9645\u4e0a\u5c31\u662f\u5c06\u4e4b\u524d\u7684\u53c2\u6570\u66f4\u65b0\u65b9\u6cd5w=w-a*dw\u53d8\u6210w=w-a*( v = theta*v+(1-theta)*dw )\uff0c\u7ecf\u9a8c\u8868\u660e\uff0ctheta\u53d60.9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u9c81\u68d2\u6570\uff0c\u5e76\u4e14\u5728\u5f88\u591a\u65f6\u50191-theta\u9879\u662f\u88ab\u5220\u9664\u7684\uff0c\u4e5f\u5c31\u662fv = theta*v+dw\u3002 <\/p>\n\n\n<h2 class=\"wp-block-heading\">7.RMDprop<\/h2>\n\n\n<p> RMSprop\u7b97\u6cd5\uff0c\u5168\u79f0 root mean square prop\u7b97\u6cd5\uff0c\u5b83\u4e5f\u53ef\u4ee5\u52a0\u901f\u68af\u5ea6\u4e0b\u964d\u3002 <\/p>\n\n\n<p> \u4e3a\u4e86\u51cf\u7f13\u68af\u5ea6\u4e0b\u964d\u8fc7\u7a0b\u4e2d\u7684\u6446\u52a8\uff0c\u6211\u4eec\u5f15\u5165\u65b0\u7684\u66f4\u65b0\u53c2\u6570\u7684\u65b9\u5f0f\u3002 <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"238\" height=\"29\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-90.png\" alt=\"\" class=\"wp-image-3039\"\/><\/figure><\/div>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"212\" height=\"30\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-91.png\" alt=\"\" class=\"wp-image-3040\"\/><\/figure><\/div>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"321\" height=\"54\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-92.png\" alt=\"\" class=\"wp-image-3041\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-92.png 321w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-92-300x50.png 300w\" sizes=\"(max-width: 321px) 100vw, 321px\" \/><\/figure><\/div>\n\n\n<p> \u901a\u8fc7\u8fd9\u79cd\u65b9\u5f0f\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u5c06\u4e0b\u964d\u66f2\u7ebf\u53d8\u6210\u63a5\u8fd1\u7eff\u8272\u7684\u7ebf\u3002 <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"398\" height=\"108\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-93.png\" alt=\"\" class=\"wp-image-3042\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-93.png 398w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-93-300x81.png 300w\" sizes=\"(max-width: 398px) 100vw, 398px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">8.Adam\u4f18\u5316\u7b97\u6cd5<\/h2>\n\n\n<p> Adam\u4f18\u5316\u7b97\u6cd5\u57fa\u672c\u4e0a\u5c31\u662f\u5c06Momentum\u548cRMSprop\u7ed3\u5408\u5728\u4e00\u8d77\u3002 <\/p>\n\n\n<p> \u9996\u5148\u8ba1\u7b97 <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"248\" height=\"28\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-94.png\" alt=\"\" class=\"wp-image-3043\"\/><\/figure><\/div>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"227\" height=\"30\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-95.png\" alt=\"\" class=\"wp-image-3044\"\/><\/figure><\/div>\n\n\n<p> \u8fd9\u91cc\u7684theta1\u5c31\u662f\u4e4b\u524d\u5728Momentum\u63d0\u5230\u8fc7\u4e86\uff0c\u7f3a\u7701\u503c0.9\uff0c\u7136\u540e\u8ba1\u7b97 <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"277\" height=\"34\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-96.png\" alt=\"\" class=\"wp-image-3045\"\/><\/figure><\/div>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"246\" height=\"36\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-97.png\" alt=\"\" class=\"wp-image-3046\"\/><\/figure><\/div>\n\n\n<p> \u8fd9\u91cc\u7684theta2\u5c31\u662f\u4e4b\u524d\u5728RMSprop\u4e2d\u4f7f\u7528\u5230\u7684theta\uff0c\u7f3a\u7701\u503c0.99<\/p>\n\n\n<p> \u7136\u540e\u6211\u4eec\u8981\u8fdb\u884c\u4fee\u6b63\uff08\u4e00\u822c\u8fd9\u5728Adam\u4f18\u5316\u7b97\u6cd5\u4e2d\u8981\u8ba1\u7b97\uff09 <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"157\" height=\"45\" src=\"\/wp-content\/uploads\/2020\/02\/image.png\" alt=\"\" class=\"wp-image-3047\"\/><\/figure><\/div>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"146\" height=\"40\" src=\"\/wp-content\/uploads\/2020\/02\/image-2.png\" alt=\"\" class=\"wp-image-3049\"\/><\/figure><\/div>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"144\" height=\"44\" src=\"\/wp-content\/uploads\/2020\/02\/image-1.png\" alt=\"\" class=\"wp-image-3048\"\/><\/figure><\/div>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"151\" height=\"51\" src=\"\/wp-content\/uploads\/2020\/02\/image-3.png\" alt=\"\" class=\"wp-image-3050\"\/><\/figure><\/div>\n\n\n<p> \u6700\u540e\u66f4\u65b0\u6743\u91cd\u5176\u4e2d Epsilon\u662f\u4e00\u4e2a\u5f88\u5c0f\u7684\u6570\uff0c\u4e00\u822c\u4e3a10\u7684-8\u6b21\u65b9\u3002<\/p>\n\n\n<p><\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"190\" height=\"59\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-98.png\" alt=\"\" class=\"wp-image-3051\"\/><\/figure><\/div>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"184\" height=\"64\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-99.png\" alt=\"\" class=\"wp-image-3052\"\/><\/figure><\/div>\n\n\n<p> Adam\u7b97\u6cd5\u7ed3\u5408\u4e86Momentum\u548cRMSprop\u68af\u5ea6\u4e0b\u964d\u6cd5\uff0c\u5e76\u4e14\u662f\u4e00\u79cd\u6781\u5176\u5e38\u7528\u7684\u5b66\u4e60\u7b97\u6cd5\uff0c\u88ab\u8bc1\u660e\u80fd\u6709\u6548\u9002\u7528\u4e8e\u4e0d\u540c\u795e\u7ecf\u7f51\u7edc\uff0c\u9002\u7528\u4e8e\u5e7f\u6cdb\u7684\u7ed3\u6784\u3002<\/p>\n\n\n<p> \u6211\u4eec\u4e00\u822c\u5e76\u4e0d\u4fee\u6539theta1\u548ctheta2\u4ee5\u53caEpsilon\u7684\u503c\uff0c\u53ea\u9700\u8981\u4fee\u6539\u5b66\u4e60\u7387\u5373\u53ef\u3002  <\/p>\n\n\n<h2 class=\"wp-block-heading\">9.\u5b66\u4e60\u7387\u8870\u51cf<\/h2>\n\n\n<p> \u52a0\u5feb\u5b66\u4e60\u7b97\u6cd5\u7684\u4e00\u4e2a\u529e\u6cd5\u5c31\u662f\u968f\u65f6\u95f4\u6162\u6162\u51cf\u5c11\u5b66\u4e60\u7387\uff0c\u6211\u4eec\u79f0\u5176\u4e3a\u5b66\u4e60\u7387\u8870\u51cf\u3002 <\/p>\n\n\n<p> \u6211\u4eec\u5c06\u5b66\u4e60\u7387\u91cd\u65b0\u5b9a\u4e49\u4e3a <\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"223\" height=\"34\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-100.png\" alt=\"\" class=\"wp-image-3053\"\/><\/figure><\/div>\n\n\n<p> \u5176\u4e2d \uff08decay-rate\u79f0\u4e3a\u8870\u51cf\u7387\uff0cepoch-num\u4e3a\u4ee3\u6570\uff0calpha\u4e3a\u521d\u59cb\u5b66\u4e60\u7387\uff09\uff0c\u6ce8\u610f\uff0cdecay-rate\u662f\u53e6\u4e00\u4e2a\u8d85\u53c2\u3002 <\/p>\n\n\n<p> \u5b66\u4e60\u7387\u8870\u51cf\u5e76\u4e0d\u662f\u5c1d\u8bd5\u7684\u8981\u70b9\uff0c\u8bbe\u5b9a\u4e00\u4e2a\u56fa\u5b9a\u7684\uff0c\u7136\u540e\u597d\u597d\u8c03\u6574\u7f51\u7edc\u4f1a\u6709\u5f88\u597d\u7684\u6548\u679c\uff0c\u5b66\u4e60\u7387\u8870\u51cf\u7684\u786e\u5927\u6709\u88e8\u76ca\uff0c\u6709\u65f6\u5019\u53ef\u4ee5\u52a0\u5feb\u8bad\u7ec3\uff0c\u4f46\u5b83\u5e76\u4e0d\u662f\u8981\u7387\u5148\u5c1d\u8bd5\u7684\u5185\u5bb9\u3002 <\/p>\n\n\n<h2 class=\"wp-block-heading\">\u6d4b\u9a8c<\/h2>\n\n\n<p><strong>1. \u5f53\u8f93\u5165\u4ece\u7b2c\u516b\u4e2amini-batch\u7684\u7b2c\u4e03\u4e2a\u7684\u4f8b\u5b50\u7684\u65f6\u5019\uff0c\u4f60\u4f1a\u7528\u54ea\u79cd\u7b26\u53f7\u8868\u793a\u7b2c\u4e09\u5c42\u7684\u6fc0\u6d3b\uff1f <\/strong><\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"69\" height=\"34\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-102.png\" alt=\"\" class=\"wp-image-3057\"\/><\/figure><\/div>\n\n\n<p>[i]{j}(k)\u4e0a\u6807\u8868\u793a \u7b2ci\u5c42\uff0c\u7b2cj\u5c0f\u5757\uff0c\u7b2ck\u4e2a\u793a\u4f8b<\/p>\n\n\n<p><strong>2. \u5173\u4e8emini-batch\u7684\u8bf4\u6cd5\u54ea\u4e2a\u662f\u6b63\u786e\u7684\uff1f <\/strong><\/p>\n\n\n<ol><li> \u5728\u4e0d\u540c\u7684mini-batch\u4e0b\uff0c\u4e0d\u9700\u8981\u663e\u5f0f\u5730\u8fdb\u884c\u5faa\u73af\uff0c\u5c31\u53ef\u4ee5\u5b9e\u73b0mini-batch\u68af\u5ea6\u4e0b\u964d\uff0c\u4ece\u800c\u4f7f\u7b97\u6cd5\u540c\u65f6\u5904\u7406\u6240\u6709\u7684\u6570\u636e\uff08\u77e2\u91cf\u5316\uff09\u3002<\/li><li> \u4f7f\u7528mini-batch\u68af\u5ea6\u4e0b\u964d\u8bad\u7ec3\u7684\u65f6\u95f4\uff08\u4e00\u6b21\u8bad\u7ec3\u5b8c\u6574\u4e2a\u8bad\u7ec3\u96c6\uff09\u6bd4\u4f7f\u7528\u68af\u5ea6\u4e0b\u964d\u8bad\u7ec3\u7684\u65f6\u95f4\u8981\u5feb\u3002  <\/li><li> mini-batch\u68af\u5ea6\u4e0b\u964d\uff08\u5728\u5355\u4e2amini-batch\u4e0a\u8ba1\u7b97\uff09\u7684\u4e00\u6b21\u8fed\u4ee3\u5feb\u4e8e\u68af\u5ea6\u4e0b\u964d\u7684\u8fed\u4ee3\u3002 <\/li><\/ol>\n\n\n<p>3<\/p>\n\n\n<p><strong>3 . \u4e3a\u4ec0\u4e48\u6700\u597d\u7684mini-batch\u7684\u5927\u5c0f\u901a\u5e38\u4e0d\u662f1\u4e5f\u4e0d\u662fm\uff0c\u800c\u662f\u4ecb\u4e8e\u4e24\u8005\u4e4b\u95f4\uff1f <\/strong><\/p>\n\n\n<ol><li> \u5982\u679cmini-batch\u5927\u5c0f\u4e3a1\uff0c\u5219\u4f1a\u5931\u53bbmini-batch\u793a\u4f8b\u4e2d\u77e2\u91cf\u5316\u5e26\u6765\u7684\u7684\u597d\u5904\u3002 <\/li><li> \u5982\u679cmini-batch\u7684\u5927\u5c0f\u662fm\uff0c\u90a3\u4e48\u4f60\u4f1a\u5f97\u5230\u6279\u91cf\u68af\u5ea6\u4e0b\u964d\uff0c\u8fd9\u9700\u8981\u5728\u8fdb\u884c\u8bad\u7ec3\u4e4b\u524d\u5bf9\u6574\u4e2a\u8bad\u7ec3\u96c6\u8fdb\u884c\u5904\u7406\u3002     <\/li><\/ol>\n\n\n<p>1\uff0c2<\/p>\n\n\n<p><strong>4. \u5982\u679c\u4f60\u7684\u6a21\u578b\u7684\u6210\u672c<\/strong><em><strong>J<\/strong><\/em><strong>\u968f\u7740\u8fed\u4ee3\u6b21\u6570\u7684\u589e\u52a0\uff0c\u7ed8\u5236\u51fa\u6765\u7684\u56fe\u5982\u4e0b\uff0c\u90a3\u4e48 <\/strong><\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/img-blog.csdn.net\/20180410112031975?watermark\/2\/text\/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM3MzMzMjY=\/font\/5a6L5L2T\/fontsize\/400\/fill\/I0JBQkFCMA==\/dissolve\/70\" alt=\"img1\"\/><\/figure><\/div>\n\n\n<ol><li> \u5982\u679c\u4f60\u4f7f\u7528\u7684\u662fmini-batch\u68af\u5ea6\u4e0b\u964d\uff0c\u8fd9\u770b\u8d77\u6765\u662f\u53ef\u4ee5\u63a5\u53d7\u7684\u3002\u4f46\u662f\u5982\u679c\u4f60\u4f7f\u7528\u7684\u662f\u4e0b\u964d\uff0c\u90a3\u4e48\u4f60\u7684\u6a21\u578b\u5c31\u6709\u95ee\u9898 <\/li><\/ol>\n\n\n<p>1<\/p>\n\n\n<p><strong>5. \u5047\u8bbe\u4e00\u6708\u7684\u524d\u4e09\u5929\u5361\u8428\u5e03\u5170\u5361\u7684\u6c14\u6e29\u662f\u4e00\u6837\u7684\uff1a <\/strong><\/p>\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"181\" height=\"77\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-103.png\" alt=\"\" class=\"wp-image-3058\"\/><\/figure>\n\n\n<p><strong> \u5047\u8bbe\u60a8\u4f7f\u7528<\/strong><em><strong>\u03b2<\/strong><\/em><strong>= 0.5\u7684\u6307\u6570\u52a0\u6743\u5e73\u5747\u6765\u8ddf\u8e2a\u6e29\u5ea6\uff1a<\/strong><em><strong>v<\/strong><\/em><strong>0 = 0\uff0c<\/strong><em><strong>vt<\/strong><\/em><strong> =<\/strong><em><strong>\u03b2vt<\/strong><\/em><strong>\u22121 +\uff081-<\/strong><em><strong>\u03b2<\/strong><\/em><strong>\uff09<\/strong><em><strong>\u03b8t<\/strong><\/em><strong>\u3002 \u5982\u679c<\/strong><em><strong>v<\/strong><\/em><strong>2\u662f\u5728\u6ca1\u6709\u504f\u5dee\u4fee\u6b63\u7684\u60c5\u51b5\u4e0b\u8ba1\u7b97\u7b2c2\u5929\u540e\u7684\u503c\uff0c\u5e76\u4e14<\/strong><\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"74\" height=\"33\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-105.png\" alt=\"\" class=\"wp-image-3060\"\/><\/figure><\/div>\n\n\n<p><strong>\u662f\u60a8\u4f7f\u7528\u504f\u5dee\u4fee\u6b63\u8ba1\u7b97\u7684\u503c\u3002 \u8fd9\u4e9b\u4e0b\u9762\u7684\u503c\u662f\u6b63\u786e\u7684\u662f\uff1f<\/strong> <\/p>\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"229\" height=\"44\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-104.png\" alt=\"\" class=\"wp-image-3059\"\/><\/figure>\n\n\n<p><strong>6. \u4e0b\u9762\u54ea\u4e00\u4e2a\u4e0d\u662f\u6bd4\u8f83\u597d\u7684\u5b66\u4e60\u7387\u8870\u51cf\u65b9\u6cd5\uff1f <\/strong><\/p>\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"102\" height=\"27\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-106.png\" alt=\"\" class=\"wp-image-3062\"\/><\/figure>\n\n\n<p>\n\u8fd9\u4f1a\u4f7f\u5f97\u5b66\u4e60\u7387\u51fa\u73b0\u7206\u70b8\uff0c\u800c\u6ca1\u6709\u8870\u51cf\u3002\n<\/p>\n\n\n<p><strong>7. \u5728\u4f26\u6566\u6e29\u5ea6\u6570\u636e\u96c6\u4e0a\u4f7f\u7528\u6307\u6570\u52a0\u6743\u5e73\u5747\u503c\uff0c \u60a8\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u516c\u5f0f\u6765\u8ffd\u8e2a\u6e29\u5ea6 <\/strong><\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"194\" height=\"34\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-107.png\" alt=\"\" class=\"wp-image-3063\"\/><\/figure><\/div>\n\n\n<p> <strong>\u4e0b\u9762\u7684\u7ea2\u7ebf\u4f7f\u7528\u7684\u662f\u03b2= 0.9\u6765\u8ba1\u7b97\u7684\u3002 \u5f53\u4f60\u6539\u53d8\u03b2\u65f6\uff0c\u4f60\u7684\u7ea2\u8272\u66f2\u7ebf\u4f1a\u600e\u6837\u53d8\u5316\uff1f  <\/strong><\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/img-blog.csdn.net\/20180410113737770?watermark\/2\/text\/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM3MzMzMjY=\/font\/5a6L5L2T\/fontsize\/400\/fill\/I0JBQkFCMA==\/dissolve\/70\" alt=\"img 2\"\/><\/figure><\/div>\n\n\n<ol><li> \u589e\u52a0\u03b2\u4f1a\u4f7f\u7ea2\u7ebf\u7a0d\u5fae\u5411\u53f3\u79fb\u52a8 <\/li><li> \u51cf\u5c11\u03b2\u4f1a\u5728\u7ea2\u7ebf\u5185\u4ea7\u751f\u66f4\u591a\u7684\u632f\u8361 <\/li><\/ol>\n\n\n<p><strong>8. \u770b\u4e00\u4e0b\u8fd9\u4e2a\u56fe \u8fd9\u4e9b\u56fe\u662f\u7531\u68af\u5ea6\u4e0b\u964d\u4ea7\u751f\u7684; \u5177\u6709\u52a8\u91cf\u68af\u5ea6\u4e0b\u964d\uff08\u03b2= 0.5\uff09\u548c\u52a8\u91cf\u68af\u5ea6\u4e0b\u964d\uff08\u03b2= 0.9\uff09\u3002 \u54ea\u6761\u66f2\u7ebf\u5bf9\u5e94\u54ea\u79cd\u7b97\u6cd5\uff1f <\/strong><\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/img-blog.csdn.net\/20180410113952152?watermark\/2\/text\/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM3MzMzMjY=\/font\/5a6L5L2T\/fontsize\/400\/fill\/I0JBQkFCMA==\/dissolve\/70\" alt=\"img 3\"\/><\/figure><\/div>\n\n\n<p>\n\uff081\uff09\u662f\u68af\u5ea6\u4e0b\u964d\u3002 \uff082\uff09\u662f\u52a8\u91cf\u68af\u5ea6\u4e0b\u964d\uff08\u03b2\u503c\u6bd4\u8f83\u5c0f\uff09\u3002 \uff083\uff09\u662f\u52a8\u91cf\u68af\u5ea6\u4e0b\u964d\uff08\u03b2\u6bd4\u8f83\u5927\uff09\n<\/p>\n\n\n<p><strong>9. \u5047\u8bbe\u5728\u4e00\u4e2a\u6df1\u5ea6\u5b66\u4e60\u7f51\u7edc\u4e2d\u6279\u5904\u7406\u68af\u5ea6\u4e0b\u964d\u82b1\u8d39\u4e86\u592a\u591a\u7684\u65f6\u95f4\u6765\u627e\u5230\u4e00\u4e2a\u503c\u7684\u53c2\u6570\u503c\uff0c\u8be5\u503c\u5bf9\u4e8e\u6210\u672c\u51fd\u6570J(W[1],b[1],\u2026,W[L],b[L])\u6765\u8bf4\u662f\u5f88\u5c0f\u7684\u503c\u3002 \u4ee5\u4e0b\u54ea\u4e9b\u65b9\u6cd5\u53ef\u4ee5\u5e2e\u52a9\u627e\u5230J\u503c\u8f83\u5c0f\u7684\u53c2\u6570\u503c\uff1f<\/strong> <\/p>\n\n\n<ol><li> \u5c1d\u8bd5\u4f7f\u7528 Adam \u7b97\u6cd5 <\/li><li> \u5c1d\u8bd5\u5bf9\u6743\u91cd\u8fdb\u884c\u66f4\u597d\u7684\u968f\u673a\u521d\u59cb\u5316 <\/li><li> \u5c1d\u8bd5\u8c03\u6574\u5b66\u4e60\u7387\u03b1 <\/li><li> \u5c1d\u8bd5mini-batch\u68af\u5ea6\u4e0b\u964d <\/li><li> \u8bd5\u628a\u6743\u503c\u521d\u59cb\u5316\u4e3a0 <\/li><\/ol>\n\n\n<p>1\uff0c2\uff0c3\uff0c4<\/p>\n\n\n<p><strong>10 \u5173\u4e8eAdam\u7b97\u6cd5\uff0c\u4e0b\u5217\u54ea\u4e00\u4e2a\u9648\u8ff0\u662f\u9519\u8bef\u7684 \uff1f<\/strong><\/p>\n\n\n<p> Adam\u5e94\u8be5\u7528\u4e8e\u6279\u68af\u5ea6\u8ba1\u7b97\uff0c\u800c\u4e0d\u662f\u7528\u4e8emini-batch\u3002 <\/p>\n\n\n<p>\u90fd\u53ef\u4ee5\u4f7f\u7528<\/p>\n\n\n<h2 class=\"wp-block-heading\">\u7f16\u7a0b\u4f5c\u4e1a<\/h2>\n\n\n<p>\u6211\u4eec\u9996\u5148\u5bfc\u5305<\/p>\n\n\n<pre class=\"wp-block-preformatted\">import numpy as np<br \/>import matplotlib.pyplot as plt<br \/>import math<br \/><br \/>from course_2_week_2 import opt_utils<br \/>from course_2_week_2 import testCases<\/pre>\n\n\n<p>\u770b\u4e00\u4e0b\u6570\u636e\uff1a<\/p>\n\n\n<pre class=\"wp-block-preformatted\"># \u52a0\u8f7d\u6570\u636e<br \/>train_X, train_Y = opt_utils.load_dataset()<br \/>plt.show()<br \/><\/pre>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"340\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-108.png\" alt=\"\" class=\"wp-image-3073\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-108.png 605w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-108-300x169.png 300w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><\/figure><\/div>\n\n\n<p>\u751f\u6210mini-batch\u5217\u8868\uff1a<\/p>\n\n\n<pre class=\"wp-block-preformatted\">def random_mini_batches(X, Y, mini_batch_size=64, seed=0):<br \/>    <em>\"\"\"<br \/><\/em><em>    <\/em><em>\u521b\u5efa\u968f\u673a<\/em><em>batch<\/em><em>\u5217\u8868<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> X:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> Y:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> mini_batch_size:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> seed:<br \/><\/em><em>    <\/em><strong><em>:return<\/em><\/strong><em>:<br \/><\/em><em>    \"\"\"<br \/><\/em><em><br \/><\/em><em>    <\/em>np.random.seed(seed)  # \u6307\u5b9a\u968f\u673a\u79cd\u5b50<br \/>    m = X.shape[1]<br \/>    mini_batches = []<br \/><br \/>    # \u7b2c\u4e00\u6b65\uff1a\u6253\u4e71\u987a\u5e8f<br \/>    permutation = list(np.random.permutation(m))  # \u5b83\u4f1a\u8fd4\u56de\u4e00\u4e2a\u957f\u5ea6\u4e3am\u7684\u968f\u673a\u6570\u7ec4\uff0c\u4e14\u91cc\u9762\u7684\u6570\u662f0\u5230m-1<br \/>    shuffled_X = X[:, permutation]  # \u5c06\u6bcf\u4e00\u5217\u7684\u6570\u636e\u6309permutation\u7684\u987a\u5e8f\u6765\u91cd\u65b0\u6392\u5217\u3002<br \/>    shuffled_Y = Y[:, permutation].reshape((1, m))<br \/><br \/>    # \u7b2c\u4e8c\u6b65\uff0c\u5206\u5272<br \/>    # \u8ba1\u7b97\u8981\u5206\u5272\u591a\u5c11\u4efd\u6570\u636e\u96c6<br \/>    num_complete_minibatches = math.floor(m \/ mini_batch_size)<br \/>    for k in range(0, num_complete_minibatches):<br \/>        mini_batch_X = shuffled_X[:, k * mini_batch_size:(k + 1) * mini_batch_size]<br \/>        mini_batch_Y = shuffled_Y[:, k * mini_batch_size:(k + 1) * mini_batch_size]<br \/><br \/>        mini_batch = (mini_batch_X, mini_batch_Y)<br \/>        mini_batches.append(mini_batch)<br \/><br \/>    # \u5904\u7406\u6ca1\u6cd5\u88abbatch\u5927\u5c0f\u5904\u7406\u7684\u90e8\u5206\u6570\u636e<br \/>    if m % mini_batch_size != 0:<br \/>        # \u83b7\u53d6\u6700\u540e\u5269\u4f59\u7684\u90e8\u5206<br \/>        mini_batch_X = shuffled_X[:, mini_batch_size * num_complete_minibatches:]<br \/>        mini_batch_Y = shuffled_Y[:, mini_batch_size * num_complete_minibatches:]<br \/><br \/>        mini_batch = (mini_batch_X, mini_batch_Y)<br \/>        mini_batches.append(mini_batch)<br \/><br \/>    return mini_batches<\/pre>\n\n\n<p>\u7136\u540e\u6211\u4eec\u8ba1\u7b97 \u68af\u5ea6\u4e0b\u964d\u7684\u53c2\u6570\u66f4\u65b0\uff1a<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"251\" height=\"82\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-115.png\" alt=\"\" class=\"wp-image-3083\"\/><\/figure><\/div>\n\n\n<pre class=\"wp-block-preformatted\">def update_parameters_with_gd(parameters, grads, learning_rate):\n    <em>\"\"\"\n    \u66f4\u65b0\u6570\u503c\n    <\/em><strong><em>:param<\/em><\/strong><em> parameters:\n    <\/em><strong><em>:param<\/em><\/strong><em> grads:\n    <\/em><strong><em>:param<\/em><\/strong><em> learning_rate:\n    <\/em><strong><em>:return<\/em><\/strong><em>:\n    \"\"\"\n    <\/em>L = len(parameters) \/\/ 2  # \u795e\u7ecf\u7f51\u7edc\u7684\u5c42\u6570\n    # \u66f4\u65b0\u6bcf\u4e2a\u53c2\u6570\n    for l in range(L):\n        parameters[\"W\" + str(l + 1)] = parameters[\"W\" + str(l + 1)] - learning_rate * grads[\"dW\" + str(l + 1)]\n        parameters[\"b\" + str(l + 1)] = parameters[\"b\" + str(l + 1)] - learning_rate * grads[\"db\" + str(l + 1)]\n    return parameters<\/pre>\n\n\n<p>\u9996\u5148\u6211\u4eec\u5148\u628a\u6574\u4f53\u6a21\u578b\u5148\u5199\u51fa\u6765\uff08\u548c\u4e4b\u524d\u4e00\u6837\uff0c\u5148\u4e0d\u5199\u5b9e\u73b0\uff09\uff1a<\/p>\n\n\n<pre class=\"wp-block-preformatted\">def model(X, Y, layers_dims, optimizer, learning_rate=0.0007,<br \/>          mini_batch_size=64, beta=0.9, beta1=0.9, beta2=0.999,<br \/>          epsilon=1e-8, num_epochs=10000, print_cost=True, is_plot=True):<br \/>    <em>\"\"\"<br \/><\/em><em>    <\/em><em>\u5b9a\u4e49\u795e\u7ecf\u7f51\u7edc\u6a21\u578b<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> X:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> Y:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> layers_dims:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> optimizer:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> learning_rate:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> mini_batch_size:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> beta:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> beta1:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> beta2:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> epsilon:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> num_epochs:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> print_cost:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> is_plot:<br \/><\/em><em>    <\/em><strong><em>:return<\/em><\/strong><em>:<br \/><\/em><em>    \"\"\"<br \/><\/em><em>    <\/em>L = len(layers_dims)<br \/>    costs = []<br \/>    t = 0  # \u6bcf\u5b66\u4e60\u5b8c\u4e00\u4e2aminibatch\u5c31\u589e\u52a01<br \/>    seed = 10  # \u968f\u673a\u79cd\u5b50<br \/><br \/>    # \u521d\u59cb\u5316\u53c2\u6570<br \/>    parameters = opt_utils.initialize_parameters(layers_dims)<br \/><br \/>    # \u9009\u62e9\u4f18\u5316\u5668<br \/>    if optimizer == \"gd\":<br \/>        pass  # \u4e0d\u4f7f\u7528\u4efb\u4f55\u4f18\u5316\u5668\uff0c\u76f4\u63a5\u4f7f\u7528\u68af\u5ea6\u4e0b\u964d\u6cd5<br \/>    elif optimizer == \"momentum\":<br \/>        v = initialize_velocity(parameters)  # \u4f7f\u7528\u52a8\u91cf<br \/>    elif optimizer == \"adam\":<br \/>        v, s = initialize_adam(parameters)  # \u4f7f\u7528Adam\u4f18\u5316<br \/>    else:<br \/>        print(\"optimizer\u53c2\u6570\u9519\u8bef\uff0c\u7a0b\u5e8f\u9000\u51fa\u3002\")<br \/>        exit(1)<br \/><br \/>    # \u5f00\u59cb\u5b66\u4e60<br \/>    for i in range(num_epochs):<br \/>        # \u5b9a\u4e49\u968f\u673a minibatches,\u6211\u4eec\u5728\u6bcf\u6b21\u904d\u5386\u6570\u636e\u96c6\u4e4b\u540e\u589e\u52a0\u79cd\u5b50\u4ee5\u91cd\u65b0\u6392\u5217\u6570\u636e\u96c6\uff0c\u4f7f\u6bcf\u6b21\u6570\u636e\u7684\u987a\u5e8f\u90fd\u4e0d\u540c<br \/>        seed = seed + 1<br \/>        minibatches = random_mini_batches(X, Y, mini_batch_size, seed)<br \/><br \/>        for minibatch in minibatches:<br \/>            # \u9009\u62e9\u4e00\u4e2aminibatch<br \/>            (minibatch_X, minibatch_Y) = minibatch<br \/>            # \u524d\u5411\u4f20\u64ad<br \/>            A3, cache = opt_utils.forward_propagation(minibatch_X, parameters)<br \/>            # \u8ba1\u7b97\u8bef\u5dee<br \/>            cost = opt_utils.compute_cost(A3, minibatch_Y)<br \/>            # \u53cd\u5411\u4f20\u64ad<br \/>            grads = opt_utils.backward_propagation(minibatch_X, minibatch_Y, cache)<br \/>            # \u66f4\u65b0\u53c2\u6570<br \/>            if optimizer == \"gd\":<br \/>                parameters = update_parameters_with_gd(parameters, grads, learning_rate)<br \/>            elif optimizer == \"momentum\":<br \/>                parameters, v = update_parameters_with_momentun(parameters, grads, v, beta, learning_rate)<br \/>            elif optimizer == \"adam\":<br \/>                t = t + 1<br \/>                parameters, v, s = update_parameters_with_adam(parameters, grads, v, s, t, learning_rate, beta1, beta2,<br \/>                                                               epsilon)<br \/>        # \u8bb0\u5f55\u8bef\u5dee\u503c<br \/>        if i % 100 == 0:<br \/>            costs.append(cost)<br \/>            # \u662f\u5426\u6253\u5370\u8bef\u5dee\u503c<br \/>            if print_cost and i % 1000 == 0:<br \/>                print(\"\u7b2c\" + str(i) + \"\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a\" + str(cost))<br \/>    # \u662f\u5426\u7ed8\u5236\u66f2\u7ebf\u56fe<br \/>    if is_plot:<br \/>        plt.plot(costs)<br \/>        plt.ylabel('cost')<br \/>        plt.xlabel('epochs (per 100)')<br \/>        plt.title(\"Learning rate = \" + str(learning_rate))<br \/>        plt.show()<br \/><br \/>    return parameters<\/pre>\n\n\n<p>\u7136\u540e\u662f\u6bd4\u8f83\uff0c\u9996\u5148\u662f\u4e0d\u4f7f\u7528\u4efb\u4f55\u65b9\u6cd5\u7684\uff1a<\/p>\n\n\n<pre class=\"wp-block-preformatted\"># \u4f7f\u7528\u666e\u901a\u7684\u68af\u5ea6\u4e0b\u964d\nlayers_dims = [train_X.shape[0], 5, 2, 1]\nparameters = model(train_X, train_Y, layers_dims, optimizer=\"gd\", is_plot=True)\n# \u9884\u6d4b\npreditions = opt_utils.predict(train_X, train_Y, parameters)\n# \u7ed8\u5236\u5206\u7c7b\u56fe\nplt.title(\"Model with Momentum optimization\")\naxes = plt.gca()\naxes.set_xlim([-1.5, 2.5])\naxes.set_ylim([-1, 1.5])\nopt_utils.plot_decision_boundary(lambda x: opt_utils.predict_dec(parameters, x.T), train_X, train_Y)<\/pre>\n\n\n<p>\u8f93\u51fa\uff1a<\/p>\n\n\n<pre class=\"wp-block-code\"><code>\u7b2c0\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.690735512291113\n\u7b2c1000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.6852725328458241\n\u7b2c2000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.6470722240719003\n\u7b2c3000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.6195245549970403\n\u7b2c4000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.5765844355950944\n\u7b2c5000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.6072426395968576\n\u7b2c6000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.5294033317684576\n\u7b2c7000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.46076823985930115\n\u7b2c8000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.465586082399045\n\u7b2c9000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.46451797221676844\nAccuracy: 0.7966666666666666<\/code><\/pre>\n\n\n<p>\u4ee3\u4ef7\u56fe\uff08\u7531\u4e8e\u662fmini-batch\uff0c\u6240\u4ee5\u4ee3\u4ef7\u5728\u53d8\u5316\uff0c\u4f46\u662f\u603b\u4f53\u4e0b\u964d\uff09\uff1a<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"609\" height=\"341\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-109.png\" alt=\"\" class=\"wp-image-3076\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-109.png 609w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-109-300x168.png 300w\" sizes=\"(max-width: 609px) 100vw, 609px\" \/><\/figure><\/div>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"588\" height=\"339\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-110.png\" alt=\"\" class=\"wp-image-3078\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-110.png 588w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-110-300x173.png 300w\" sizes=\"(max-width: 588px) 100vw, 588px\" \/><\/figure><\/div>\n\n\n<p>\u7136\u540e\u662f\u4f7f\u7528<em>\u52a8\u91cf\u66f4\u65b0\u53c2\u6570(momentum\u7b97\u6cd5\uff09<\/em>\uff0c\u5305\u62ec\u8ba1\u7b97v\u548c\u66f4\u65b0\u53c2\u6570\u4e24\u90e8\u5206\uff1a<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"301\" height=\"162\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-116.png\" alt=\"\" class=\"wp-image-3084\"\/><\/figure><\/div>\n\n\n<p>\u9996\u5148\u521d\u59cb\u5316v<\/p>\n\n\n<pre class=\"wp-block-preformatted\">def initialize_velocity(parameters):<br \/>    <em>\"\"\"<br \/><\/em><em>    <\/em><em>\u521d\u59cb\u5316\u901f\u5ea6<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> parameters:<br \/><\/em><em>    <\/em><strong><em>:return<\/em><\/strong><em>:<br \/><\/em><em>    \"\"\"<br \/><\/em><em>    <\/em>L = len(parameters) \/\/ 2<br \/>    v = {}<br \/><br \/>    for l in range(L):<br \/>        #  zeros_like\u662f\u521d\u59cb\u5316\u4e00\u4e2a0\u77e9\u9635\uff0c\u540e\u53f0\u8c03\u7528\u5b9e\u9645\u4e0a\u8fd8\u662fzeros\uff0c\u53ea\u4e0d\u8fc7\u8fd9\u91cc\u53ef\u4ee5\u4f20\u77e9\u9635\u800c\u4e0d\u662fshape<br \/>        v[\"dW\" + str(l + 1)] = np.zeros_like(parameters[\"W\" + str(l + 1)])<br \/>        v[\"db\" + str(l + 1)] = np.zeros_like(parameters[\"b\" + str(l + 1)])<br \/>    return v<\/pre>\n\n\n<p>\u66f4\u65b0\u53c2\u6570\uff0c\u5148\u8ba1\u7b97v\u518d\u66f4\u65b0<\/p>\n\n\n<pre class=\"wp-block-preformatted\">def update_parameters_with_momentun(parameters, grads, v, beta, learning_rate):<br \/>    <em>\"\"\"<br \/><\/em><em>    <\/em><em>\u4f7f\u7528\u52a8\u91cf\u66f4\u65b0\u53c2\u6570<\/em><em>(momentum<\/em><em>\u7b97\u6cd5\uff09<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> parameters:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> grads:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> v:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> beta:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> learning_rate:<br \/><\/em><em>    <\/em><strong><em>:return<\/em><\/strong><em>:<br \/><\/em><em>    \"\"\"<br \/><\/em><em>    <\/em>L = len(parameters) \/\/ 2<br \/>    for l in range(L):<br \/>        # \u8ba1\u7b97\u901f\u5ea6<br \/>        v[\"dW\" + str(l + 1)] = beta * v[\"dW\" + str(l + 1)] + (1 - beta) * grads[\"dW\" + str(l + 1)]<br \/>        v[\"db\" + str(l + 1)] = beta * v[\"db\" + str(l + 1)] + (1 - beta) * grads[\"db\" + str(l + 1)]<br \/><br \/>        # \u66f4\u65b0\u53c2\u6570<br \/>        parameters[\"W\" + str(l + 1)] = parameters[\"W\" + str(l + 1)] - learning_rate * v[\"dW\" + str(l + 1)]<br \/>        parameters[\"b\" + str(l + 1)] = parameters[\"b\" + str(l + 1)] - learning_rate * v[\"db\" + str(l + 1)]<br \/><br \/>    return parameters, v<\/pre>\n\n\n<p>\u7136\u540e\u6211\u4eec\u8bad\u7ec3\u6d4b\u8bd5\u4e00\u4e0b\u5e76\u7ed8\u5236\u5206\u7c7b\u6a21\u578b\uff1a<\/p>\n\n\n<pre class=\"wp-block-preformatted\">#\u4f7f\u7528\u52a8\u91cf\u7684\u68af\u5ea6\u4e0b\u964d<br \/>layers_dims = [train_X.shape[0],5,2,1]<br \/>parameters = model(train_X, train_Y, layers_dims, beta=0.9,optimizer=\"momentum\",is_plot=True)<br \/>#\u9884\u6d4b<br \/>preditions = opt_utils.predict(train_X,train_Y,parameters)<br \/><br \/>#\u7ed8\u5236\u5206\u7c7b\u56fe<br \/>plt.title(\"Model with Momentum optimization\")<br \/>axes = plt.gca()<br \/>axes.set_xlim([-1.5, 2.5])<br \/>axes.set_ylim([-1, 1.5])<br \/>opt_utils.plot_decision_boundary(lambda x: opt_utils.predict_dec(parameters, x.T), train_X, train_Y)<\/pre>\n\n\n<p>\u8f93\u51fa\uff1a<\/p>\n\n\n<pre class=\"wp-block-code\"><code>\u7b2c0\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.6907412988351506\n\u7b2c1000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.6853405261267578\n\u7b2c2000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.6471448370095255\n\u7b2c3000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.6195943032076022\n\u7b2c4000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.5766650344073023\n\u7b2c5000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.607323821900647\n\u7b2c6000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.5294761758786996\n\u7b2c7000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.46093619004872366\n\u7b2c8000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.465780093701272\n\u7b2c9000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.4647395967922748\nAccuracy: 0.7966666666666666<\/code><\/pre>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"593\" height=\"333\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-113.png\" alt=\"\" class=\"wp-image-3081\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-113.png 593w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-113-300x168.png 300w\" sizes=\"(max-width: 593px) 100vw, 593px\" \/><\/figure><\/div>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"593\" height=\"324\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-114.png\" alt=\"\" class=\"wp-image-3082\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-114.png 593w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-114-300x164.png 300w\" sizes=\"(max-width: 593px) 100vw, 593px\" \/><\/figure><\/div>\n\n\n<p>\u6700\u540e\u5c31\u662f\u6d4b\u8bd5Adam\u7b97\u6cd5\uff1a<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"333\" height=\"186\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-117.png\" alt=\"\" class=\"wp-image-3085\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-117.png 333w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-117-300x168.png 300w\" sizes=\"(max-width: 333px) 100vw, 333px\" \/><\/figure><\/div>\n\n\n<pre class=\"wp-block-preformatted\">layers_dims = [train_X.shape[0], 5, 2, 1]<br \/># \u4f7f\u7528Adam\u4f18\u5316\u7684\u68af\u5ea6\u4e0b\u964d<br \/>parameters = model(train_X, train_Y, layers_dims, optimizer=\"adam\", is_plot=True)<br \/># \u9884\u6d4b<br \/>preditions = opt_utils.predict(train_X, train_Y, parameters)<br \/><br \/># \u7ed8\u5236\u5206\u7c7b\u56fe<br \/>plt.title(\"Model with Adam optimization\")<br \/>axes = plt.gca()<br \/>axes.set_xlim([-1.5, 2.5])<br \/>axes.set_ylim([-1, 1.5])<br \/>opt_utils.plot_decision_boundary(lambda x: opt_utils.predict_dec(parameters, x.T), train_X, train_Y)<\/pre>\n\n\n<pre class=\"wp-block-code\"><code>\u7b2c0\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.6905522446113365\n\u7b2c1000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.18550136438550574\n\u7b2c2000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.150830465752532\n\u7b2c3000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.07445438570997183\n\u7b2c4000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.12595915651337164\n\u7b2c5000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.10434443534245487\n\u7b2c6000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.10067637504120643\n\u7b2c7000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.0316520301351156\n\u7b2c8000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.11197273131244204\n\u7b2c9000\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a0.19794007152465481\nAccuracy: 0.94<\/code><\/pre>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"590\" height=\"332\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-111.png\" alt=\"\" class=\"wp-image-3079\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-111.png 590w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-111-300x169.png 300w\" sizes=\"(max-width: 590px) 100vw, 590px\" \/><\/figure><\/div>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"589\" height=\"334\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-112.png\" alt=\"\" class=\"wp-image-3080\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-112.png 589w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-112-300x170.png 300w\" sizes=\"(max-width: 589px) 100vw, 589px\" \/><\/figure><\/div>\n\n\n<p>\u603b\u7ed3\uff1a<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"972\" height=\"177\" src=\"\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-118.png\" alt=\"\" class=\"wp-image-3086\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-118.png 972w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-118-300x55.png 300w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2020\/02\/\u56fe\u7247-118-768x140.png 768w\" sizes=\"(max-width: 972px) 100vw, 972px\" \/><\/figure><\/div>\n\n\n<p>\u5177\u6709\u52a8\u91cf\u7684\u68af\u5ea6\u4e0b\u964d\u901a\u5e38\u53ef\u4ee5\u6709\u5f88\u597d\u7684\u6548\u679c\uff0c\u4f46\u7531\u4e8e\u5c0f\u7684\u5b66\u4e60\u901f\u7387\u548c\u7b80\u5355\u7684\u6570\u636e\u96c6\u6240\u4ee5\u5b83\u7684\u5f71\u54cd\u51e0\u4e4e\u662f\u8f7b\u5fae\u7684\u3002\u53e6\u4e00\u65b9\u9762\uff0cAdam\u660e\u663e\u4f18\u4e8e\u5c0f\u6279\u91cf\u68af\u5ea6\u4e0b\u964d\u548c\u5177\u6709\u52a8\u91cf\u7684\u68af\u5ea6\u4e0b\u964d\uff0c\u5982\u679c\u5728\u8fd9\u4e2a\u7b80\u5355\u7684\u6a21\u578b\u4e0a\u8fd0\u884c\u66f4\u591a\u65f6\u95f4\u7684\u6570\u636e\u96c6\uff0c\u8fd9\u4e09\u79cd\u65b9\u6cd5\u90fd\u4f1a\u4ea7\u751f\u975e\u5e38\u597d\u7684\u7ed3\u679c\uff0c\u7136\u800c\uff0c\u6211\u4eec\u5df2\u7ecf\u770b\u5230Adam\u6536\u655b\u5f97\u66f4\u5feb\u3002<\/p>\n\n\n<p>Adam\u7684\u4e00\u4e9b\u4f18\u70b9\u5305\u62ec\u76f8\u5bf9\u8f83\u4f4e\u7684\u5185\u5b58\u8981\u6c42\uff08\u867d\u7136\u6bd4\u68af\u5ea6\u4e0b\u964d\u548c\u52a8\u91cf\u4e0b\u964d\u66f4\u9ad8\uff09\u548c\u901a\u5e38\u8fd0\u4f5c\u826f\u597d\uff0c\u5373\u4f7f\u5bf9\u53c2\u6570\u8fdb\u884c\u5fae\u8c03\uff08\u9664\u4e86\u5b66\u4e60\u7387\u03b1<br \/> \u03b1\uff09<\/p>\n\n\n<p>\u5b8c\u6574\u4ee3\u7801\uff1a<\/p>\n\n\n<pre class=\"wp-block-preformatted\"># -*- coding:utf-8 -*-<br \/><br \/><em>\"\"\"<br \/><\/em><em>      \u250f\u251b \u253b\u2501\u2501\u2501\u2501\u2501\u251b \u253b\u2513<br \/><\/em><em>      \u2503<\/em><em>\u3000\u3000\u3000\u3000\u3000\u3000<\/em><em> \u2503<br \/><\/em><em>      \u2503<\/em><em>\u3000\u3000\u3000<\/em><em>\u2501<\/em><em>\u3000\u3000\u3000<\/em><em>\u2503<br \/><\/em><em>      \u2503<\/em><em>\u3000<\/em><em>\u2533\u251b<\/em><em>\u3000<\/em><em>  \u2517\u2533<\/em><em>\u3000<\/em><em>\u2503<br \/><\/em><em>      \u2503<\/em><em>\u3000\u3000\u3000\u3000\u3000\u3000<\/em><em> \u2503<br \/><\/em><em>      \u2503<\/em><em>\u3000\u3000\u3000<\/em><em>\u253b<\/em><em>\u3000\u3000\u3000<\/em><em>\u2503<br \/><\/em><em>      \u2503<\/em><em>\u3000\u3000\u3000\u3000\u3000\u3000<\/em><em> \u2503<br \/><\/em><em>      \u2517\u2501\u2513<\/em><em>\u3000\u3000\u3000<\/em><em>\u250f\u2501\u2501\u2501\u251b<br \/><\/em><em>        \u2503<\/em><em>\u3000\u3000\u3000<\/em><em>\u2503   <\/em><em>\u795e\u517d\u4fdd\u4f51<\/em><em><br \/><\/em><em>        \u2503<\/em><em>\u3000\u3000\u3000<\/em><em>\u2503   <\/em><em>\u4ee3\u7801\u65e0<\/em><em>BUG<\/em><em>\uff01<\/em><em><br \/><\/em><em>        \u2503<\/em><em>\u3000\u3000\u3000<\/em><em>\u2517\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513<br \/><\/em><em>        \u2503<\/em><em>\u3000\u3000\u3000\u3000\u3000\u3000\u3000<\/em><em>    \u2523\u2513<br \/><\/em><em>        \u2503<\/em><em>\u3000\u3000\u3000\u3000<\/em><em>         \u250f\u251b<br \/><\/em><em>        \u2517\u2501\u2513 \u2513 \u250f\u2501\u2501\u2501\u2533 \u2513 \u250f\u2501\u251b<br \/><\/em><em>          \u2503 \u252b \u252b   \u2503 \u252b \u252b<br \/><\/em><em>          \u2517\u2501\u253b\u2501\u251b   \u2517\u2501\u253b\u2501\u251b<br \/><\/em><em>\"\"\"<br \/><\/em><em><br \/><\/em>import numpy as np<br \/>import matplotlib.pyplot as plt<br \/>import math<br \/><br \/>from course_2_week_2 import opt_utils<br \/>from course_2_week_2 import testCases<br \/><br \/>plt.rcParams['figure.figsize'] = (7.0, 4.0)  # set default size of plots<br \/>plt.rcParams['image.interpolation'] = 'nearest'<br \/>plt.rcParams['image.cmap'] = 'gray'<br \/><br \/># \u52a0\u8f7d\u6570\u636e<br \/>train_X, train_Y = opt_utils.load_dataset()<br \/>plt.show()<br \/><br \/><br \/>def update_parameters_with_gd(parameters, grads, learning_rate):<br \/>    <em>\"\"\"<br \/><\/em><em>    <\/em><em>\u66f4\u65b0\u6570\u503c<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> parameters:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> grads:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> learning_rate:<br \/><\/em><em>    <\/em><strong><em>:return<\/em><\/strong><em>:<br \/><\/em><em>    \"\"\"<br \/><\/em><em>    <\/em>L = len(parameters) \/\/ 2  # \u795e\u7ecf\u7f51\u7edc\u7684\u5c42\u6570<br \/><br \/>    # \u66f4\u65b0\u6bcf\u4e2a\u53c2\u6570<br \/>    for l in range(L):<br \/>        parameters[\"W\" + str(l + 1)] = parameters[\"W\" + str(l + 1)] - learning_rate * grads[\"dW\" + str(l + 1)]<br \/>        parameters[\"b\" + str(l + 1)] = parameters[\"b\" + str(l + 1)] - learning_rate * grads[\"db\" + str(l + 1)]<br \/><br \/>    return parameters<br \/><br \/><br \/>def random_mini_batches(X, Y, mini_batch_size=64, seed=0):<br \/>    <em>\"\"\"<br \/><\/em><em>    <\/em><em>\u521b\u5efa\u968f\u673a<\/em><em>batch<\/em><em>\u5217\u8868<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> X:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> Y:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> mini_batch_size:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> seed:<br \/><\/em><em>    <\/em><strong><em>:return<\/em><\/strong><em>:<br \/><\/em><em>    \"\"\"<br \/><\/em><em><br \/><\/em><em>    <\/em>np.random.seed(seed)  # \u6307\u5b9a\u968f\u673a\u79cd\u5b50<br \/>    m = X.shape[1]<br \/>    mini_batches = []<br \/><br \/>    # \u7b2c\u4e00\u6b65\uff1a\u6253\u4e71\u987a\u5e8f<br \/>    permutation = list(np.random.permutation(m))  # \u5b83\u4f1a\u8fd4\u56de\u4e00\u4e2a\u957f\u5ea6\u4e3am\u7684\u968f\u673a\u6570\u7ec4\uff0c\u4e14\u91cc\u9762\u7684\u6570\u662f0\u5230m-1<br \/>    shuffled_X = X[:, permutation]  # \u5c06\u6bcf\u4e00\u5217\u7684\u6570\u636e\u6309permutation\u7684\u987a\u5e8f\u6765\u91cd\u65b0\u6392\u5217\u3002<br \/>    shuffled_Y = Y[:, permutation].reshape((1, m))<br \/><br \/>    # \u7b2c\u4e8c\u6b65\uff0c\u5206\u5272<br \/>    # \u8ba1\u7b97\u8981\u5206\u5272\u591a\u5c11\u4efd\u6570\u636e\u96c6<br \/>    num_complete_minibatches = math.floor(m \/ mini_batch_size)<br \/>    for k in range(0, num_complete_minibatches):<br \/>        mini_batch_X = shuffled_X[:, k * mini_batch_size:(k + 1) * mini_batch_size]<br \/>        mini_batch_Y = shuffled_Y[:, k * mini_batch_size:(k + 1) * mini_batch_size]<br \/><br \/>        mini_batch = (mini_batch_X, mini_batch_Y)<br \/>        mini_batches.append(mini_batch)<br \/><br \/>    # \u5904\u7406\u6ca1\u6cd5\u88abbatch\u5927\u5c0f\u5904\u7406\u7684\u90e8\u5206\u6570\u636e<br \/>    if m % mini_batch_size != 0:<br \/>        # \u83b7\u53d6\u6700\u540e\u5269\u4f59\u7684\u90e8\u5206<br \/>        mini_batch_X = shuffled_X[:, mini_batch_size * num_complete_minibatches:]<br \/>        mini_batch_Y = shuffled_Y[:, mini_batch_size * num_complete_minibatches:]<br \/><br \/>        mini_batch = (mini_batch_X, mini_batch_Y)<br \/>        mini_batches.append(mini_batch)<br \/><br \/>    return mini_batches<br \/><br \/><br \/>def initialize_velocity(parameters):<br \/>    <em>\"\"\"<br \/><\/em><em>    <\/em><em>\u521d\u59cb\u5316\u901f\u5ea6<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> parameters:<br \/><\/em><em>    <\/em><strong><em>:return<\/em><\/strong><em>:<br \/><\/em><em>    \"\"\"<br \/><\/em><em>    <\/em>L = len(parameters) \/\/ 2<br \/>    v = {}<br \/><br \/>    for l in range(L):<br \/>        #  zeros_like\u662f\u521d\u59cb\u5316\u4e00\u4e2a0\u77e9\u9635\uff0c\u540e\u53f0\u8c03\u7528\u5b9e\u9645\u4e0a\u8fd8\u662fzeros\uff0c\u53ea\u4e0d\u8fc7\u8fd9\u91cc\u53ef\u4ee5\u4f20\u77e9\u9635\u800c\u4e0d\u662fshape<br \/>        v[\"dW\" + str(l + 1)] = np.zeros_like(parameters[\"W\" + str(l + 1)])<br \/>        v[\"db\" + str(l + 1)] = np.zeros_like(parameters[\"b\" + str(l + 1)])<br \/>    return v<br \/><br \/><br \/>def update_parameters_with_momentun(parameters, grads, v, beta, learning_rate):<br \/>    <em>\"\"\"<br \/><\/em><em>    <\/em><em>\u4f7f\u7528\u52a8\u91cf\u66f4\u65b0\u53c2\u6570<\/em><em>(momentum<\/em><em>\u7b97\u6cd5\uff09<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> parameters:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> grads:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> v:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> beta:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> learning_rate:<br \/><\/em><em>    <\/em><strong><em>:return<\/em><\/strong><em>:<br \/><\/em><em>    \"\"\"<br \/><\/em><em>    <\/em>L = len(parameters) \/\/ 2<br \/>    for l in range(L):<br \/>        # \u8ba1\u7b97\u901f\u5ea6<br \/>        v[\"dW\" + str(l + 1)] = beta * v[\"dW\" + str(l + 1)] + (1 - beta) * grads[\"dW\" + str(l + 1)]<br \/>        v[\"db\" + str(l + 1)] = beta * v[\"db\" + str(l + 1)] + (1 - beta) * grads[\"db\" + str(l + 1)]<br \/><br \/>        # \u66f4\u65b0\u53c2\u6570<br \/>        parameters[\"W\" + str(l + 1)] = parameters[\"W\" + str(l + 1)] - learning_rate * v[\"dW\" + str(l + 1)]<br \/>        parameters[\"b\" + str(l + 1)] = parameters[\"b\" + str(l + 1)] - learning_rate * v[\"db\" + str(l + 1)]<br \/><br \/>    return parameters, v<br \/><br \/><br \/>def initialize_adam(parameters):<br \/>    <em>\"\"\"<br \/><\/em><em>    <\/em><em>\u521d\u59cb\u5316<\/em><em>Adam<\/em><em>\u7b97\u6cd5\u4f7f\u7528\u7684<\/em><em>v<\/em><em>\u548c<\/em><em>s<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> parameters:<br \/><\/em><em>    <\/em><strong><em>:return<\/em><\/strong><em>:<br \/><\/em><em>    \"\"\"<br \/><\/em><em><br \/><\/em><em>    <\/em>L = len(parameters) \/\/ 2<br \/>    v = {}<br \/>    s = {}<br \/><br \/>    for l in range(L):<br \/>        v[\"dW\" + str(l + 1)] = np.zeros_like(parameters[\"W\" + str(l + 1)])<br \/>        v[\"db\" + str(l + 1)] = np.zeros_like(parameters[\"b\" + str(l + 1)])<br \/><br \/>        s[\"dW\" + str(l + 1)] = np.zeros_like(parameters[\"W\" + str(l + 1)])<br \/>        s[\"db\" + str(l + 1)] = np.zeros_like(parameters[\"b\" + str(l + 1)])<br \/><br \/>    return (v, s)<br \/><br \/><br \/>def update_parameters_with_adam(parameters, grads, v, s, t, learning_rate=0.01, beta1=0.9, beta2=0.999, epsilon=1e-8):<br \/>    <em>\"\"\"<br \/><\/em><em>    <\/em><em>\u66f4\u65b0\u53c2\u6570<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> parameters:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> grads:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> v:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> s:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> t:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> learning_rate:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> beta1:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> beta2:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> epsilon:<br \/><\/em><em>    <\/em><strong><em>:return<\/em><\/strong><em>:<br \/><\/em><em>    \"\"\"<br \/><\/em><em>    <\/em>L = len(parameters) \/\/ 2<br \/>    v_corrected = {}  # \u504f\u5dee\u4fee\u6b63\u540e\u7684\u503c<br \/>    s_corrected = {}  # \u504f\u5dee\u4fee\u6b63\u540e\u7684\u503c<br \/><br \/>    for l in range(L):<br \/>        # \u8ba1\u7b97v<br \/>        v[\"dW\" + str(l + 1)] = beta1 * v[\"dW\" + str(l + 1)] + (1 - beta1) * grads[\"dW\" + str(l + 1)]<br \/>        v[\"db\" + str(l + 1)] = beta1 * v[\"db\" + str(l + 1)] + (1 - beta1) * grads[\"db\" + str(l + 1\n)]<br \/><br \/>        # \u4fee\u6b63\u8bef\u5dee<br \/>        v_corrected[\"dW\" + str(l + 1)] = v[\"dW\" + str(l + 1)] \/ (1 - np.power(beta1, t))<br \/>        v_corrected[\"db\" + str(l + 1)] = v[\"db\" + str(l + 1)] \/ (1 - np.power(beta1, t))<br \/><br \/>        # \u8ba1\u7b97s<br \/>        s[\"dW\" + str(l + 1)] = beta2 * s[\"dW\" + str(l + 1)] + (1 - beta2) * np.square(grads[\"dW\" + str(l + 1)])<br \/>        s[\"db\" + str(l + 1)] = beta2 * s[\"db\" + str(l + 1)] + (1 - beta2) * np.square(grads[\"db\" + str(l + 1)])<br \/><br \/>        # \u4fee\u6b63\u8bef\u5dee<br \/>        s_corrected[\"dW\" + str(l + 1)] = s[\"dW\" + str(l + 1)] \/ (1 - np.power(beta2, t))<br \/>        s_corrected[\"db\" + str(l + 1)] = s[\"db\" + str(l + 1)] \/ (1 - np.power(beta2, t))<br \/><br \/>        # \u66f4\u65b0\u53c2\u6570<br \/>        parameters[\"W\" + str(l + 1)] = parameters[\"W\" + str(l + 1)] - learning_rate * (<br \/>                v_corrected[\"dW\" + str(l + 1)] \/ np.sqrt(s_corrected[\"dW\" + str(l + 1)] + epsilon))<br \/>        parameters[\"b\" + str(l + 1)] = parameters[\"b\" + str(l + 1)] - learning_rate * (<br \/>                v_corrected[\"db\" + str(l + 1)] \/ np.sqrt(s_corrected[\"db\" + str(l + 1)] + epsilon))<br \/><br \/>    return (parameters, v, s)<br \/><br \/><br \/>def model(X, Y, layers_dims, optimizer, learning_rate=0.0007,<br \/>          mini_batch_size=64, beta=0.9, beta1=0.9, beta2=0.999,<br \/>          epsilon=1e-8, num_epochs=10000, print_cost=True, is_plot=True):<br \/>    <em>\"\"\"<br \/><\/em><em>    <\/em><em>\u5b9a\u4e49\u795e\u7ecf\u7f51\u7edc\u6a21\u578b<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> X:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> Y:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> layers_dims:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> optimizer:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> learning_rate:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> mini_batch_size:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> beta:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> beta1:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> beta2:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> epsilon:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> num_epochs:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> print_cost:<br \/><\/em><em>    <\/em><strong><em>:param<\/em><\/strong><em> is_plot:<br \/><\/em><em>    <\/em><strong><em>:return<\/em><\/strong><em>:<br \/><\/em><em>    \"\"\"<br \/><\/em><em>    <\/em>L = len(layers_dims)<br \/>    costs = []<br \/>    t = 0  # \u6bcf\u5b66\u4e60\u5b8c\u4e00\u4e2aminibatch\u5c31\u589e\u52a01<br \/>    seed = 10  # \u968f\u673a\u79cd\u5b50<br \/><br \/>    # \u521d\u59cb\u5316\u53c2\u6570<br \/>    parameters = opt_utils.initialize_parameters(layers_dims)<br \/><br \/>    # \u9009\u62e9\u4f18\u5316\u5668<br \/>    if optimizer == \"gd\":<br \/>        pass  # \u4e0d\u4f7f\u7528\u4efb\u4f55\u4f18\u5316\u5668\uff0c\u76f4\u63a5\u4f7f\u7528\u68af\u5ea6\u4e0b\u964d\u6cd5<br \/>    elif optimizer == \"momentum\":<br \/>        v = initialize_velocity(parameters)  # \u4f7f\u7528\u52a8\u91cf<br \/>    elif optimizer == \"adam\":<br \/>        v, s = initialize_adam(parameters)  # \u4f7f\u7528Adam\u4f18\u5316<br \/>    else:<br \/>        print(\"optimizer\u53c2\u6570\u9519\u8bef\uff0c\u7a0b\u5e8f\u9000\u51fa\u3002\")<br \/>        exit(1)<br \/><br \/>    # \u5f00\u59cb\u5b66\u4e60<br \/>    for i in range(num_epochs):<br \/>        # \u5b9a\u4e49\u968f\u673a minibatches,\u6211\u4eec\u5728\u6bcf\u6b21\u904d\u5386\u6570\u636e\u96c6\u4e4b\u540e\u589e\u52a0\u79cd\u5b50\u4ee5\u91cd\u65b0\u6392\u5217\u6570\u636e\u96c6\uff0c\u4f7f\u6bcf\u6b21\u6570\u636e\u7684\u987a\u5e8f\u90fd\u4e0d\u540c<br \/>        seed = seed + 1<br \/>        minibatches = random_mini_batches(X, Y, mini_batch_size, seed)<br \/><br \/>        for minibatch in minibatches:<br \/>            # \u9009\u62e9\u4e00\u4e2aminibatch<br \/>            (minibatch_X, minibatch_Y) = minibatch<br \/>            # \u524d\u5411\u4f20\u64ad<br \/>            A3, cache = opt_utils.forward_propagation(minibatch_X, parameters)<br \/>            # \u8ba1\u7b97\u8bef\u5dee<br \/>            cost = opt_utils.compute_cost(A3, minibatch_Y)<br \/>            # \u53cd\u5411\u4f20\u64ad<br \/>            grads = opt_utils.backward_propagation(minibatch_X, minibatch_Y, cache)<br \/>            # \u66f4\u65b0\u53c2\u6570<br \/>            if optimizer == \"gd\":<br \/>                parameters = update_parameters_with_gd(parameters, grads, learning_rate)<br \/>            elif optimizer == \"momentum\":<br \/>                parameters, v = update_parameters_with_momentun(parameters, grads, v, beta, learning_rate)<br \/>            elif optimizer == \"adam\":<br \/>                t = t + 1<br \/>                parameters, v, s = update_parameters_with_adam(parameters, grads, v, s, t, learning_rate, beta1, beta2,<br \/>                                                               epsilon)<br \/>        # \u8bb0\u5f55\u8bef\u5dee\u503c<br \/>        if i % 100 == 0:<br \/>            costs.append(cost)<br \/>            # \u662f\u5426\u6253\u5370\u8bef\u5dee\u503c<br \/>            if print_cost and i % 1000 == 0:<br \/>                print(\"\u7b2c\" + str(i) + \"\u6b21\u904d\u5386\u6574\u4e2a\u6570\u636e\u96c6\uff0c\u5f53\u524d\u8bef\u5dee\u503c\uff1a\" + str(cost))<br \/>    # \u662f\u5426\u7ed8\u5236\u66f2\u7ebf\u56fe<br \/>    if is_plot:<br \/>        plt.plot(costs)<br \/>        plt.ylabel('cost')<br \/>        plt.xlabel('epochs (per 100)')<br \/>        plt.title(\"Learning rate = \" + str(learning_rate))<br \/>        plt.show()<br \/><br \/>    return parameters<br \/><br \/><br \/># \u4f7f\u7528\u666e\u901a\u7684\u68af\u5ea6\u4e0b\u964d<br \/># layers_dims = [train_X.shape[0], 5, 2, 1]<br \/># parameters = model(train_X, train_Y, layers_dims, optimizer=\"gd\", is_plot=True)<br \/>#<br \/># # \u9884\u6d4b<br \/># preditions = opt_utils.predict(train_X, train_Y, parameters)<br \/>#<br \/># # \u7ed8\u5236\u5206\u7c7b\u56fe<br \/># plt.title(\"Model with Momentum optimization\")<br \/># axes = plt.gca()<br \/># axes.set_xlim([-1.5, 2.5])<br \/># axes.set_ylim([-1, 1.5])<br \/># opt_utils.plot_decision_boundary(lambda x: opt_utils.predict_dec(parameters, x.T), train_X, train_Y)<br \/><br \/><br \/>#\u4f7f\u7528\u52a8\u91cf\u7684\u68af\u5ea6\u4e0b\u964d<br \/>layers_dims = [train_X.shape[0],5,2,1]<br \/>parameters = model(train_X, train_Y, layers_dims, beta=0.9,optimizer=\"momentum\",is_plot=True)<br \/>#\u9884\u6d4b<br \/>preditions = opt_utils.predict(train_X,train_Y,parameters)<br \/><br \/>#\u7ed8\u5236\u5206\u7c7b\u56fe<br \/>plt.title(\"Model with Momentum optimization\")<br \/>axes = plt.gca()<br \/>axes.set_xlim([-1.5, 2.5])<br \/>axes.set_ylim([-1, 1.5])<br \/>opt_utils.plot_decision_boundary(lambda x: opt_utils.predict_dec(parameters, x.T), train_X, train_Y)<br \/><br \/><br \/># Adam<br \/>layers_dims = [train_X.shape[0], 5, 2, 1]<br \/># \u4f7f\u7528Adam\u4f18\u5316\u7684\u68af\u5ea6\u4e0b\u964d<br \/>parameters = model(train_X, train_Y, layers_dims, optimizer=\"adam\", is_plot=True)<br \/># \u9884\u6d4b<br \/>preditions = opt_utils.predict(train_X, train_Y, parameters)<br \/><br \/># \u7ed8\u5236\u5206\u7c7b\u56fe<br \/>plt.title(\"Model with Adam optimization\")<br \/>axes = plt.gca()<br \/>axes.set_xlim([-1.5, 2.5])<br \/>axes.set_ylim([-1, 1.5])<br \/>opt_utils.plot_decision_boundary(lambda x: opt_utils.predict_dec(parameters, x.T), train_X, train_Y)<br \/><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u5434\u6069\u8fbe\u6df1\u5ea6\u5b66\u4e60\u7b2c\u4e8c\u8bfe\u7b2c\u4e8c\u5468 \u4f18\u5316\u65b9\u6cd5 1.mini-batch\u68af\u5ea6\u4e0b\u964d \u5047\u5982\u6211\u4eec\u6709\u4e00\u4e2a\u957f\u5ea6\u4e3a500w [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_mi_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[7],"tags":[],"views":4304,"_links":{"self":[{"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/posts\/3022"}],"collection":[{"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/comments?post=3022"}],"version-history":[{"count":0,"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/posts\/3022\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/media?parent=3022"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/categories?post=3022"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/tags?post=3022"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}