当前位置: 首页 > Web前端 > JavaScript

5分钟带你通过Javascript了解人工智能的基本原理

时间:2023-03-27 16:28:38 JavaScript

Javascript鏄垜鐨勨€滄瘝璇€濓紝鐢ㄥ畠鏉ュ涔犱汉宸ユ櫤鑳斤紝璁颁綇鏇寸墷銆傚涔犱汉宸ユ櫤鑳界殑闂ㄦ楂樺悧锛熸垜鑺变簡2涓湀鐨勬椂闂翠笂鎵嬶紝瀛︿範浜唒ython鍜屽井绉垎锛屾墠澶ц嚧浜嗚В浜嗘繁搴﹀涔犵殑鍩烘湰鍘熺悊銆傚綋鏃剁‘瀹炲緢澶寸柤锛屼笉杩囩幇鍦ㄥ洖杩囧ご鏉ョ湅锛屽熀鏈師鐞嗕篃娌¢偅涔堥毦浜嗐€?.鍩烘湰鍘熺悊鏈儴鍒嗕笉闇€瑕佷换浣曞熀纭€锛屾墍鏈夊伐绋嬪笀閮藉簲璇ヨ兘澶熺湅鎳傘€傜粡杩囨垜鐨勬秷鍖栵紝浜哄伐鏅鸿兘琛ㄨ揪鐨勮繃绋嬫槸锛氭湁涓€浜涙暟鎹紝鍋囪杩欎簺鏁版嵁閬靛惊涓€瀹氱殑瑙勫緥锛屼絾鏄繖涓寰嬩腑鐨勫叿浣撳弬鏁版槸鏈煡鐨勶紝璁╄绠楁満澶氭鐚滄祴杩欎簺鍙傛暟鐨勫€硷紝骞朵粠瀹冮€氳繃鎵惧埌璇樊鏈€灏忕殑鍙傛暟闆嗭紝灏卞彲浠ラ娴嬫柊鐨勬暟鎹€傛瘮濡傛湁涓€缁勮韩楂榵锛屽勾榫剏鐨勬暟鎹細arr=[{x:10,y:131},{x:11,y:135},{x:12,y:139},{x:13,y:145},]骞撮緞瓒婂ぇ锛岃韩楂樿秺楂橈紝鎵€浠ュ亣璁捐韩楂樺拰骞撮緞閬靛惊瑙勫緥锛歽=kx+bk鍜宐鏄灏戯紝鐢佃剳鏄福鐢枫€傜湅瀹屽叕寮忓拰鏁版嵁锛屼竴澶撮浘姘达紝鐒跺悗涔辩寽銆俴=10b=15锛屽垯10*10+15=11510*11+15=12510*12+15=13510*13+15=145鐪嬬湅杩欎釜鐩茬寽鍜屽疄闄呭€肩浉宸灏戯紝鎴戜滑瀛﹀埌浜嗕竴涓腑瀛﹁瘎浼扮殑鏂瑰紡锛屽彨鍋氭柟宸紝杩欓噷鐢ㄧ被浼肩殑鏂瑰紡鏉ヨ瘎浼發oss锛歭etyArr=[131,135,139,145]letzArr=[115,125,135,145]letloss=0yArr.forEach((y,index)=>{letz=zArr[index]loss+=Math.pow(z-y,2)//(z-y)虏})loss=loss/data.length//loss=93loss姹傚€间负93锛屾棤璁烘槸澶ц繕鏄皬锛岀數鑴戞福鐢烽兘涓嶅お娓呮锛屾墍浠ョ數鑴戦渶瑕佽繘琛屾洿澶氱殑鐚滄祴锛屽彇鎵€鏈夌寽娴嬩腑loss鏈€灏忕殑k鍜宐浣滀负鏈€缁堝€笺€傚畬鏁寸殑浠g爜瀹炵幇鏄細model={xArr:[10,11,12,13],yArr:[131,135,139,145],k:10,//parameter1b:15,//parameter2//鎹熷け鍑芥暟锛歡etLoss(k,b)鐢ㄤ簬閿欒璇勪及{letzArr=this.xArr.map(x=>this.getY(x,k,b))letloss=0this.yArr.forEach((y,index)=>{letz=zArr[index]loss+=Math.pow(y-z,2)//(y-z)虏})loss=loss/this.yArr.lengthreturnloss},//姝e垯鍏紡getY(x,k,b){returnk*x+b},//璁粌锛氳璁$畻鏈虹洸鐩寽娴嬨€傚湪瀹為檯寮€鍙戜腑锛岀寽娴嬪苟涓嶆槸鍍忎笅闈㈢殑浠g爜锛屼絾鏄櫧鐒舵柟娉曚笉鍚岋紝浣嗘槸鍘熺悊鏄竴鏍风殑learn(){//璁﹌鍜宐鍒嗗埆鍙?鍒?00letkArr=Array.from(Array(100),(v,i)=>i+1)璁゜Arr=Array.from(Array(100),(v,i)=>i+1)璁﹍ossArr=[]kArr.forEach(k=>{bArr.forEach(b=>{lossArr.push({loss:this.getLoss(k,b),//閲嶆柊璁$畻浠ヨ绠楁崯澶眐:k,b:b})})})letresult={loss:Infinity}lossArr.forEach(d=>{if(d.lossmodel.getY(x,model.k,model.b)))鏈€鍚庡緱鍒発=5b=80yArr=[131,135,139,145]zArr=[130,135,140,145]灏濊瘯棰勬祴涓€涓?4宀佺殑韬珮y=kx+by=5*14+80y=150150cm鏄緢鍚堢悊鐨勶紝杩欏氨鏄汉宸ユ櫤鑳斤紝鏈変簡杩欓噷瀛﹀埌鐨勭煡璇嗭紝鍘诲紑鍙戜汉鑴歌瘑鍒惂锛屽懙鍛叼煠湅鍒拌繖閲屼簡锛屽彲浠ョ偣涓禐鍚楋紵锛燂紵2.浼樺寲鐚滄祴绠楁硶杩欓儴鍒嗛渶瑕佹彁鍓嶄簡瑙e鏁般€佸亸瀵兼暟銆佸悜閲忕Н绛夋暟瀛︾煡璇嗐€備笂涓€鑺傛垜浠繘琛屼簡鏆村姏鐚滄祴锛屼粠1鍒?00涓€涓竴涓湴鐚滄祴k鍜宐锛屼絾鏄湁鍙兘鏈€浼樿В涓嶅湪1~100涔嬪唴锛屾墍浠ユ垜浠潵浼樺寲涓€涓嬬寽娴嬬畻娉曘€傞鍏堝洖椤句竴涓嬪叕寮忥細\(y=kx+b\)\(L=\sum_{i=1}^N(y_{i}-z_{i})^2\)\(y_{i}\)鏄疄闄呭€硷紝\(z_{i}\)鏄绠楁満鐚滄祴鐨勫€硷紝N鏄痽Arr鐨勯暱搴︼紝杩欓噷loss鎴戜滑涓嶇敤浠g爜鏉ヨ〃杈句簡锛岀敤鏁板鍏紡鏉ヨ〃杈撅紝L=loss锛屼笉鎳傜殑鍚屽瑕佸厛鐮旂┒涓€涓嬪啀鍥炴潵鍐嶇湅涓€閬嶃€傚彧鏈夌湅鍒伴棶棰樼殑鏈川锛屾墠鑳芥洿濂藉湴浼樺寲绠楁硶銆傛垜浠渶瑕佷簡瑙銆乥銆丩鐨勫叧绯伙紝鎴戜滑鎶妅銆乥銆丩鐨勫€肩敾鎴愪竴涓浘锛氫粠鍥句腑鍙互鐪嬪嚭L鏄竴涓潰锛屾垜浠姹傝繖涓潰鐨勬渶浣庣偣琛ㄩ潰銆傚鏋滄鏃跺湪琛ㄩ潰涓婃斁缃竴棰楃幓鐠冪彔锛岄偅涔堢幓鐠冪彔灏变細鍚戞渶浣庣偣鍥炴粴銆傚埄鐢ㄨ繖绉嶇幇璞$殑鍘熺悊鏉ヤ紭鍖栫畻娉曪紝璁$畻鏈哄彲浠ュ湪鏈€鐭殑鏃堕棿鍐呮壘鍒癓鐨勬渶灏忓€笺€傚€煎緱銆傜幓鐠冪彔鑷姩绉诲姩鍒版渶浣庣偣鐨勭畻娉曠О涓烘搴︿笅闄嶆硶銆傚湪L闈笂鐨勬煇涓€鐐癸紝璁$畻k鍜宐鐨勫亸瀵兼暟銆傚亸瀵兼暟鐨勪箻绉彲浠ヨ绠楀嚭姊害涓嬮檷鐨勬柟鍚戙€傛帹瀵艰繃绋嬪涓嬨€俓(\frac{\mathrm{d}L}{\mathrm{d}k}=\frac{\mathrm{d}L}{\mathrm{d}z}\frac{\mathrm{d}z}{\mathrm{d}k}\)鍏堟眰\(\frac{\mathrm{d}L}{\mathrm{d}z}\)\(L=\sum_{i=1}^N(y_{i}-z_{i})^2\)\(\frac{\mathrm{d}L}{\mathrm{d}z}=\sum_{i=1}^N(2y_{i}-2z_{i})\)\(\frac{\mathrm{d}L}{\mathrm{d}z}=\sum_{i=1}^N(2y_{i}-2kx_{i}-2b)\)鐒跺悗姹倇\mathrm{d}k}=x_{i}\)鏈畬寰呯画锛岃鐐瑰嚮鏀惰棌绋嶅悗瑙傜湅