鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

Posted 鍔犳帹绉戝闄?/a> 鍔犳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶相关的知识,希望对你有一定的参考价值。

鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

鉂?/span>

鑴戞満鎺ュ彛鏃朵唬宸茬粡鍒版潵锛熶綔涓轰竾鑳藉垎绫诲櫒锛屽悇绫荤缁忕綉缁滃湪杩戝勾鏈変簡闀胯冻鐨勫彂灞?/p>

姣斿鍗风Н绁炵粡缃戠粶锛屼篃鍦ㄥ浠婄殑鍥剧墖璇嗗埆棰嗗煙鍙栧緱鏈€濂界殑鎴愮哗

浠婂ぉ鐨勭洰鏍囨槸JS鎵嬫挄閫氱敤绁炵粡缃戠粶馃敟锛屾棤浠讳綍搴撲緷璧?/p> 鉂?/span>

绁炵粡缃戠粶姒傝堪

  • 浜哄伐绁炵粡缃戠粶锛?Artificial Neural Networks锛?绠€鍐欎负ANNs锛変篃绠€绉颁负绁炵粡缃戠粶锛圢Ns锛夋垨绉颁綔杩炴帴妯″瀷锛圕onnectionist Model锛?锛屾槸瀵逛汉鑴戞垨鑷劧绁炵粡缃戠粶锛圢atural Neural Network锛? 銆岃嫢骞层€?/strong>鍩烘湰鐗规€х殑鎶借薄鍜屾ā鎷熴€?
  • 淇轰滑鐨勭缁忓厓鐪嬩笂鍘诲緢鍘夊
  • 鐩墠鍦ㄧ缁忕綉缁滅爺绌舵柟娉曚笂宸插舰鎴愬涓祦娲撅紝鏈€瀵屾湁鎴愭灉鐨勭爺绌跺伐浣滃寘鎷細澶氬眰缃戠粶BP绠楁硶锛孒opfield缃戠粶妯″瀷锛岃嚜閫傚簲鍏辨尟鐞嗚锛岃嚜缁勭粐鐗瑰緛鏄犲皠鐞嗚绛夈€備汉宸ョ缁忕綉缁滄槸鍦ㄧ幇浠g缁忕瀛︾殑鍩虹涓婃彁鍑烘潵鐨勩€傚畠铏界劧鍙嶆槧浜嗕汉鑴戝姛鑳界殑鍩烘湰鐗瑰緛锛屼絾杩滀笉鏄嚜鐒剁缁忕綉缁滅殑閫肩湡鎻忓啓锛岃€屽彧鏄畠鐨勬煇绉嶇畝鍖栨娊璞″拰妯℃嫙銆?
  • 浠婂ぉ澶ц嚧鐨勫涔犳祦绋嬶紝鏃ュ父闂=>鎰熺煡鏈?>鍚戝墠浼犳挱=>鍚戝悗浼犳挱=>澶氬眰BP绁炵粡缃戠粶->妗堜緥=>灏忕粨
  • 涓哄暐瑕佸涔狅紵鏈哄櫒涓€鐩村湪瀛︿範锛屼綔涓轰汉绫昏淇濇寔瀛︿範馃槃

鏃ュ父鏁版嵁鍒嗙被闂

绠€鍗曟劅鍙椾竴涓?/span>

  • 鍏堢湅涓姩鍥?
  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 涓婂浘鐨勮繃绋嬶紝灏辨槸閫氳繃鏈哄櫒瀛︿範锛屾渶缁堢‘瀹氫竴缁勫弬鏁帮紝鏈€鍚庡皢2缁勬暟鎹敖鍙兘鍒嗗紑馃槃
  • 閫氳繃涓€鏉$洿绾胯繘琛屽垎绫伙紝灏辨槸绾挎€у垎绫诲櫒

鍐嶆潵鐪嬩竴涓粡鍏稿垎绫讳緥瀛?/span>

  • 閫昏緫鐢佃矾涓垜浠兘瀛﹁繃涓庨棬锛屾垨闂紝涓庨潪闂紝鎴栭潪闂紝寮傛垨闂?
  • 銆岄澶栬瘽銆?/strong>锛氶棬鐢佃矾褰㈡垚缁勫悎閫昏緫锛岃Е鍙戝櫒缁勫悎褰㈡垚鏃跺簭閫昏緫锛?鑰呭叡鍚屽疄鐜版暟瀛楅€昏緫锛屾渶缁堝舰鎴愪亢浠殑CPU馃挜銆傘€傘€?
  • 杈撳叆=>杈撳嚭 鐨勭湡鍊艰〃锛屽涓嬪浘
  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 闄や簡XOR锛屽叾浠栭€昏緫鎿嶄綔鐪熷€艰〃 閮藉彲浠ヨ涓€鏉$洿绾垮垝鍒嗭紝濡備笅鍥?
  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 1鏉$洿绾垮熀鏈棷澶╀笅锛屼絾XOR鍛紝鏃犳硶鐢ㄤ竴鏉$洿绾挎悶瀹氾紝閭e簲璇ュ浣曪紵馃樁涓€鏈靛皬涔屼簯锛?
  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 鐪嬩竴涓?鏃犳硶绾挎€у垎绫荤殑鍔ㄥ浘锛屾満鍣ㄤ笉鏂涔狅紝浣嗛櫡鍏ラ渿鑽○煒?
  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

绫讳技XOR鍒嗙被鐨勮В鍐虫柟妗?/span>

  • 鎴戜滑鍙互鐢ㄥ悇绉嶆満鍣ㄥ涔犲畬鎴愶紝绫籜OR鏁版嵁闆嗗垎绫伙紝濡備笅鍥?/p>

  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 浠婂ぉ瑕佺敤鐨勬槸涓婂浘涓紝 宸︿笅妯″紡-绁炵粡缃戠粶锛屽疄鐜伴潪绾挎€у垎绫诲櫒馃敟

浜哄伐绁炵粡缃戠粶

鎰熺煡鏈?/span>

  • 鎰熺煡鏈猴紙perceptron锛夋槸鐢辩編鍥藉鑰?Frank Rosenblatt 鍦?1957 骞存彁鍑烘潵鐨勶紝鎰熺煡鏈烘槸绁炵粡缃戠粶锛堟繁搴﹀涔狅級鐨勮捣婧愮畻娉?/p>

  • 鍙互绠€鍗曠殑璁や负涓€涓劅鐭ユ満灏辨槸涓€涓缁忓厓锛屾帴鍙楄緭鍏ワ紝澶勭悊鍚庤緭鍑猴紝涔熷彲浠ヨ緭鍏ュ埌涓嬩竴涓劅鐭ユ満馃槃

  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 涓€涓劅鐭ユ満锛岀敱澶氫釜杈撳叆锛屽叾涓紝鍙傛暟w鍙仛鏉冨€煎悜閲?weight)锛宐绉颁负鍋忕疆(bias)锛宎ctivation function鏄縺娲诲嚱鏁帮紝鏈€缁堝緱鍑篛j

  • 娉ㄦ剰b 鍦ㄤ笂鍥炬病鏈夋槑纭爣娉ㄥ嚭,鍙互璁や负鏄竴涓埅璺?姣忎釜鎰熺煡鏈哄搴?涓猙

  • 鏁翠釜鎰熺煡鏈猴紝鐞嗚В璧锋潵鏄緢绠€鍗曠殑锛屼粬妯℃嫙浜嗙敓鐗╃缁忓厓鐨勭壒瀹氬姛鑳金煒?/p>

  • 涓婇潰鐨刦锛坸锛?锛屼綘鍙互绠€鍗曡涓哄氨鏄竴鏉$洿绾匡紝鎵€浠ュ浜庨櫎浜哫OR鐨勯€昏緫闂紝鎴戜滑鍙互閫氳繃1涓劅鐭ユ満杩涜鍒嗙被

  • 涓嬮潰鎴戜滑浼氱敤JS寤虹珛涓€涓劅鐭ュ崟鍏冪被銆?/p>

  • 绁炵粡缃戠粶涓昏鏈変笁涓熀鏈绱狅細銆屾潈閲嶃€佸亸缃拰婵€娲诲嚱鏁般€?/strong>锛屾垜浠殑鐩爣灏辨槸璋冩暣杩?涓弬鏁?/p>

婵€娲诲嚱鏁?/span>

  • 璧烽潪绾挎€ф槧灏勭殑浣滅敤锛屽叾鍙皢绁炵粡鍏冪殑杈撳嚭骞呭害闄愬埗鍦ㄤ竴瀹氳寖鍥村唴锛屼竴鑸檺鍒跺湪锛堬紞1锝?锛夋垨锛?锝?锛変箣闂淬€傛渶甯哥敤鐨勬縺娲诲嚱鏁版槸Sigmoid鍑芥暟銆?
  • Sigmoid鍑芥暟鍦ㄤ箣鍓嶆枃绔犱腑鏈夋彁鍙?
  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 涓嬮潰浠g爜涓垜浠細瀹炵幇锛?绉嶆縺娲诲嚱鏁帮紝鍙婂叾瀵兼暟

澶氬眰鎰熺煡鏈?绁炵粡缃戠粶

  • 鍏堢湅鍔ㄥ浘
  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 涓婂浘鏈?灞傝緭鍏ュ眰锛?灞傞殣钘忓眰锛?灞傝緭鍑哄眰
  • 杈撳叆灞傛湁2涓淮搴﹁緭鍏ワ紝杈撳嚭灞傛湁2涓淮搴﹁緭鍑?
  • 澶ч儴鍒嗙殑鍒嗙被宸ヤ綔锛岀敤2灞傞殣钘忓眰缃戠粶瓒崇煟

姝e悜浼犳挱

  • 澶氬眰绁炵粡缃戠粶鐨勬鍚戜紶鎾ぇ绾︽槸杩欐牱鐨?
  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 杈撳叆鐨勬墜鍐欐暟瀛楋紝閫氳繃2灞傦紝闅愯棌灞傚悗锛岃幏寰椾簡 0-9锛?0涓垎绫?
  • 涓哄暐浼氬緱鍒?-9锛岄偅鏄敱閲岄潰鐨剋 鍙傛暟锛宐鍙傛暟锛?婵€娲诲嚱鏁帮紝纭畾鐨?銆備綘瑕佸仛鐨勫彧鏄箻璧锋潵姹傚拰
  • 784鏄粈涔堥锛?8x28锛屾瘡寮犲浘鐗囩殑鍍忕礌涓暟 馃槃锛岃繖閲屼娇鐢ㄤ簡 one-hot鐙儹缂栫爜
  • 濡備綍纭畾杩欎簺鍙傛暟鍊煎憿锛熶娇鐢ㄥ弽鍚戜紶鎾紝涔熷氨鏄父璇寸殑瀛︿範锛堣缁冿級

鍙嶅悜浼犳挱

  • 濡傛灉姝e悜浼犳挱鏄皬瀛︾敓锛岄偅鍙嶅悜浼犳挱涓€涓嬪氨璺冲埌浜嗗ぇ瀛﹂澶囩彮馃樁锛屽彲鑳借繖灏辨槸鎵€璋撳墠鏂归珮鑳藉惂
  • 鎴戜滑灏藉彲鑳界畝鍗曠殑鍙欒堪杩欎釜杩囩▼
澶嶅悎鍑芥暟鐨勫亸瀵?閾惧紡娉曞垯
  • 涓哄暐瑕佽繖涔堝鏉傦紵
  • 鍥犱负鍦╳ 锛宐 涓嶇‘瀹氱殑鏃跺€欙紝鎴戜滑鍏堥€氳繃姝e悜浼犳挱寰楀嚭涓€涓€硷紝杩欎釜鍊煎拰鐪熷疄鐨勫€肩殑宸紝褰㈡垚涓€涓崯澶卞嚱鏁癓oss()
  • 鎴戜滑瑕佸仛鐨勫氨鏄?璋冩暣 杩欎簺 w 鍜?b 鍊硷紝姹侺oss鍑芥暟鐨勬渶灏忓€?
  • 鎴戜滑閫氳繃鍑犵櫨涓婂崈娆$殑寰皟 杩欎簺w 鍜?b 鏉ヨ娈嬪樊锛堝疄闄呭拰棰勬祴鐨勫樊锛夊彉灏?
  • 鑰岃繖浜涘井璋冿紝鎴戜滑鐢ㄦ暟瀛﹁瑷€灏辨槸姹侺鍑芥暟鐨剋鍋忓 b鍋忓
  • 鏁翠釜杩囩▼濡備笅锛?
  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 鈥滄鍚戜紶鎾€濇眰鎹熷け锛屸€滃弽鍚戜紶鎾€濅紶璇樊銆傚悓鏃讹紝绁炵粡缃戠粶姣忓眰鐨勬瘡涓缁忓厓閮藉彲浠ユ牴鎹宸俊鍙蜂慨姝f瘡灞傜殑w 鍜?b鐨勫€?
  • 涓婂浘鐨勎?灏辨槸姊害锛屽埆鎼為敊鏄竴涓悜閲忓摝馃槃
  • 鐞嗚В杩欎釜杩囩▼锛屽啓鍑轰唬鐮佸苟涓嶉毦馃樁
  • 鑰岃繖涓笉鏂井璋冪殑杩囩▼鎴戜滑鍙搴︿笅闄嶆硶锛?
  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 涓婂浘瀵笿鍑芥暟姹傦紝胃0 鍜?胃1鐨勫亸瀵硷紝姣忔瀵瑰涓弬鏁拌皟涓€鐐圭偣锛屾懜绱㈢潃锛屾壘鍒板鍚堝嚱鏁扮殑鏈€灏忓€?馃挜
  • 鏈€鍚庯紝鏍规嵁杩欎簺姊害鍊硷紝鏇存柊w锛宐鍙傛暟璋冩暣鍚庣殑鏂板€硷紝杩涘叆涓嬩竴杞鍚戜紶鎾?
  • 澶氬眰绁炵粡缃戠粶濂芥瘮涓圭倝锛岃€屾垜浠緱鍒扮殑鍙傛暟濂芥瘮閲戜腹銆備簬鏄疉I宸ョ▼甯堬紝鍙堣鎴愪负鐐间腹甯?

骞茶揣锛屼笂浠g爜

  • 棣栧厛鏄緟鍔╁嚱鏁?
function activeFunc (x, type = 'relu'{
  let lamb = 1.0507009873554804934193349852946
  let alpha = 1.6732632423543772848170429916717
  let temp = 0
  switch (type) {
    case 'sign':
      return x >= 0 ? 1 : -1
    case 'sigmoid':
      return 1 / (1 + Math.exp(-x))
    case 'tanh':
      return (Math.exp(x) - Math.exp(-x)) / (Math.exp(x) + Math.exp(-x))
    case 'relu':
      return x > 0 ? lamb * x : lamb * alpha * (Math.exp(x) - 1)
    case 'diffsigmoid':
      x = 1 / (1 + Math.exp(-x))
      return x * (1 - x)

    case 'difftanh':
      x = Math.tanh(x)
      return 1 - x ** 2
    case 'diffrelu':
      return x > 0 ? 1 : alpha * Math.exp(x)
  }
}
function mse (realArr = [], predArr = []{
  return (
    realArr.reduce((a, b, idx) => a + (b - predArr[idx] || 0) ** 20) /
    realArr.length
  )
}
//浜ゅ弶鐔垫崯澶卞嚱鏁板閫?/span>
function crossEntropy (a, y{
  return -y * Math.log(a) - (1 - y) * Math.log(1 - a)
}
  • 3涓父鐢ㄦ縺娲诲嚱鏁板強鍏跺鏁板嚱鏁帮紝鍋氫簡涓€涓?鍚?鐨勫嚱鏁帮紝鐩殑涓轰簡澶勫鍙井锛屽苟鏄緭鍑洪潪绾挎€у寲銆備綘涔熷彲浠ュ垎寮€鍐?
  • 杩欑偣寰堥噸瑕佸惁鍒欙紝绾挎€х粍鍚堣繕鏄嚎鎬х殑锛屾ā鍨嬫棤娉曡繘琛屽鏉傛嫙鍚?
  • mse骞虫柟宸眰鍜岋紝鐩殑涓轰簡璁$畻娈嬪樊锛屾洿濂界殑瑙傚療妯″瀷閫愭鏀舵暃鐨勮繃绋?
  • 鎰熺煡鏈虹被
class Perceptron {
  constructor (inputObj = {}) {
    this.config = inputObj
  }
  set config (o) {
    this.type = o.type || 'hidden' // input hidden output 绁炵粡鍏冪殑绫诲瀷 cov pool
    this.inputDimNum = o.inputDimNum || 2 //杈撳叆缁村害
    this.outputDimNum = o.outputDimNum || 2 //杈撳嚭缁村害
    this.inputArr = []
    this.beforeOutput = 0
    this.output = 0
    this.activeFunc = o.activeFunc || 'sigmoid'
    this.wb =
      o.wb ||
      $.math.genRange(1this.inputDimNum, 0).map(x =>
        randMinMax(
          -Math.sqrt(1 / this.inputDimNum), //浼犵粺鐨勫垵濮嬪寲绉嶅瓙
          Math.sqrt(1 / this.inputDimNum)
        )
      ) //w 鍚戦噺 0.5
    if (!o.wb) this.wb.push(1//b 璁剧疆鎴?nbsp;1
    this.wbT = $.math.mat.transpose([this.wb]) // w+b杞疆鐭╅樀
    this.derivative = 0 //瀵兼暟鍊?/span>
  }
  setWb (a) {
    this.wb = a
    this.wbT = $.math.mat.transpose([this.wb]) // w+b杞疆鐭╅樀
  }
  predict (inputArr) {
    if (inputArr.length < this.inputDimNum) throw new Error('杈撳叆缁村害澶皯')
    this.inputArr = inputArr
    this.beforeOutput = $.math.mat.mul([[...inputArr, 1]], this.wbT)[0][0]
    this.output = activeFunc(this.beforeOutput, this.activeFunc)
    return this.output
  }
}
  • 鎰熺煡鏈虹被锛屼富瑕佸疄鐜?鍚戝墠浼犳挱锛屽氨鏄睘鎬у锛屽叾浠栧緢绠€鍗曫煒?
  • 杩欓噷浣跨敤 predict 鏉ュ疄鐜?鍚戝墠浼犳挱
  • 鍚戝悗浼犳挱锛岄渶瑕佷箻浠ヨ宸煩闃碉紝涓庡亸瀵肩殑涔樼Н锛屼綔涓轰笂涓€灞傜殑璇樊鐭╅樀锛屼粠灏鹃儴鎯崇缁忕綉鐨勫ご閮ㄤ紶杈?
  function backPropagation (realArr{
    if (typeof realArr === 'number') {
      realArr = [realArr]
    }
    //绗琇琛?/span>
    let L = networkArr.length - 1
    let deltaArr = []
    // 璁$畻鍋忓
    for (let i = L; i > 0; i--) {
      deltaArr[i] = []
      if (i === L) {
        for (let d = 0; d < networkArr[i]; d++) {
          deltaArr[i].push(
            (networkObj[i][d].output - realArr[d]) *
              activeFunc(networkObj[i][d].beforeOutput, 'diffsigmoid'//鏈€鍚庝竴灞傜殑璇樊
          )
        }
      } else {
        let weightArr = []
        for (let k = 0; k < networkArr[i + 1]; k++) {
          weightArr.push(networkObj[i + 1][k].wb)
        }
        let weightArrT = $.math.mat.transpose(weightArr)
        for (let d = 0; d < weightArrT.length - 1; d++) {
          deltaArr[i][d] = 0
          weightArrT[d].map((x, idx) => {
            deltaArr[i][d] +=
              deltaArr[i + 1][idx] *
              x *
              activeFunc(networkObj[i][d].beforeOutput, 'diffsigmoid'// 鐭╅樀鐐逛箻
          })
        }
      }
    }

    //鏇存柊姣忎竴灞傜殑姣忎釜wb鍊?/span>
    for (let i = L; i > 0; i--) {
      for (let k = 0; k < networkArr[i]; k++) {
        let wbArr = networkObj[i][k].inputArr.map((x, idx) => {
          return x * deltaArr[i][k]
        })
        wbArr.push(deltaArr[i][k])
        networkObj[i][k].wb.map((x, idx) => {
          wbArr[idx] = x - learnRate * wbArr[idx]
        })
        networkObj[i][k].setWb(wbArr)
      }
    }
  }
  • 瀛︿範Train鐨勮繃绋嬶紝闈炲父绠€鍗曟毚鍔?
 let epoch = 1e5 //涓栦唬 浣犱篃鍙互璁や负鏄凯浠f鏁?/span>
 for (i = 0; i < epoch; i++) {
    let mseArr = []
    for (let k = 0; k < data.length; k++) { //鏁版嵁琛屾暟
      forwardPropagation(data[k]) // 姣忎釜鏁版嵁鐨勭淮搴?/span>
      backPropagation(dataTag[k]) // 姣忎釜鏁版嵁鐨勫垎绫绘爣璁?/span>
    }
  }
  • 鍏舵浣犻渶瑕佷竴涓猚reateNetwork鍑芥暟寰幆浜х敓澶氫釜锛屾劅鐭ユ満瀹炰緥銆備唬鐮佸お绠€鍗曞氨缃楀垪浜?
  • 瀵癸紝杩欏氨瀹屼簡锛屼綘鐨勪腹鐐夊凡缁忔悶瀹氾紝鍙互寮€濮嬬偧涓逛簡銆傪煍?
  • 浠ヤ笂鐭╅樀鍩烘湰鎿嶄綔锛屽皝瑁呭湪meeko鐨勪唬鏁版牳蹇冨簱涓€?

瀹炰緥鎵ц

XOR鍒嗙被
  • xor鏃犳硶閫氳繃鏅€氬洖褰掕繘琛屽垎鍓诧紝鎴戜滑鐪嬬湅鑷繁鐨勪腹鐐夋晥鏋?
  • 2,2,2 1涓殣灞傜綉缁?
  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 鍦?4485娆¤凯浠e悗锛岃宸獊鐒跺噺灏忥紝杩欎篃鏄ぇ閮ㄥ垎绁炵粡缃戠粶瀛︿範鐨勶紝鐗瑰緛锛岃鑰愬績鐐间腹

  • 鏈€鍚庤緭鍑虹殑 灏辨槸閲戜腹浜嗭紝鐩存帴锛屾嬁杩欎簺w 鍜?b 鐨勫弬鏁帮紝灏卞彲浠ョ洿鎺ユ柇瑷€XOR鎿嶄綔浜?/p>

  • 鏈変簡涓硅嵂锛岃緭鍑烘槸鐬棿鐨勩€傝繖涔熸槸澶ч儴鍒嗗悓瀛﹀湪缃戜笂涓嬭浇鍒汉璁粌濂界殑妯″瀷鐨勭敤娉曫煒?/p>

楦㈠熬鑺卞垎绫?span class="mq-443">
  • 鎴戜滑浣跨敤涔嬪墠鐨?50涓?楦㈠熬鑺辨暟鎹泦锛屽鑺辩殑鍝佺杩涜鍒嗙被
  • 鎴戜滑鎶?绫昏姳锛岃繘琛宱ne-hot缂栫爜 [1,0,0] [0,1,0] [0,0,1] 浠h〃3绫伙紝杈撳叆4缁?
  • 鍦ㄤ箣鍓嶇殑銆婄壒寰佸伐绋嬫枃绔犱腑銆嬶紝鎴戜滑浣跨敤PCA灏嗛涪灏捐姳鐨勭淮搴︿粠4缁撮檷浣庡埌浜?缁?
  • 鏈锛屾垜浠厛涓嶉檷缁达紝鐩存帴鏆村姏浣跨敤绁炵粡缃戠粶鍒嗙被馃敟
  • 鎴戜滑鍒涘缓涓€涓?10涓缁忓厓鐨勯殣钘忓眰
let networkArr = [4103]
networkObj = createNetwork(networkArr)// 寰幆浜х敓澶氬眰澶氫釜鎰熺煡鏈?/span>
  • 139绉掑悗锛屾垜浠湪87170娆¤凯浠e悗锛屽緱鍒颁簡婊¤冻闃€鍊糴ps鐨勪腹鑽?
  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 鎴戜滑璋冩暣鍙傛暟鍒涘缓鏂扮殑绁炵粡缃戠粶锛?涓殣钘忓眰锛?1涓湁10涓缁忓厓鐨勶紝1涓湁3涓缁忓厓
let networkArr = [41033// 杩欎釜缁撴瀯鏄湅鍒癿atlab 楦㈠熬鑺变緥瀛愮敤浜嗚繖涓弬鏁?/span>
networkObj = createNetwork(networkArr)
  • 鍥犱负闅忔満鍙傛暟閫犳垚鐨勫樊寮傦紝鏅亶鏉ヨ 4,10,3,3缁撴瀯浼氭瘮 4,10,3 濂戒竴浜涳紝璁粌鏃堕棿闅忕綉缁滃彉澶ц€岃繀閫熷鍔犮€?/p>

  • 浣嗗悓鏍风殑epoch锛屽灞傚彲浠ョ敤鏇村鐨?鍙傛暟鍙皟锛屽綋鐒跺浜庝笉鍚岀殑鏁版嵁闆?鎯呭喌鏈夋墍涓嶅悓銆?/p>

  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 鍑犳杩愯涓嬫潵锛屼細鍙戠幇缁忓父鏈?涓偣 [ 6, 2.7, 5.1, 1.6 ]  娌℃湁琚纭瘑鍒?/p>

  • 鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶

  • 鎴戜滑浣滃浘鐪嬩竴涓?
  • 杩欎釜鐐规槸鍦?涓姳鍝佺涔嬮棿锛屼汉宸ョ瓫閫変篃浼氬嚭鐜伴敊璇€傚お楂樼殑缃戠粶灞傛暟 涓€鏍蜂細閫犳垚杩囨嫙鍚堬紝杩欎釜涓硅嵂锛堝弬鏁帮級锛屾渶缁堟槸闈炲父婊℃剰鐨勩€?
  • 鐢?84,100,10 杩欐牱鐨勭綉缁滄ā鍨嬶紝鍙互璁粌鎵嬪啓 MINST鏁版嵁闆?鍒?7%+ 鐨勭簿鍑嗙巼锛岃繖鏄潪甯稿ソ鐜╃殑浜嬫儏銆?
  • 鑷虫鑷缓鐨勫灞傜缁忕綉缁滐紝杩樻槸鏈変竴瀹氱殑绮惧噯鎬х殑馃敟
鉂?/span>

娴忚鍣ㄤ腑杩愯涔熸槸濡ュΕ鐨勷煉?/p> 鉂?/span>

杩涗竴姝ュ涔?/span>

  • 涓绘祦绁炵粡缃戠粶鍔犲叆浜嗘洿澶氫笉鍚屽姛鑳界殑鑺傜偣锛屼絾涓囧彉涓嶇鍏跺畻

  • 姣斿甯哥敤鐨勫嵎绉缁忕綉锛屽氨鍔犲叆浜嗭紝鍗风Н灞傚拰姹犲寲灞傪煒?/p>

  • 鍙傛暟鐨勪紭鍖栵紝涓昏鏈夊姩鎬佸涔犵巼锛屽弬鏁板垵濮嬪寲鏂规硶锛屽綊涓€锛屽姩閲忥紝鏀瑰彉涓嬮檷鏂瑰紡绛?/p>

  • 瀵逛簬绁炵粡缃戠粶鎴戜滑宸茬粡鐜伴緳鍦ㄧ敯浜?/p>

  • 鍏朵粬绫诲瀷鐨勭缁忕綉缁?/p>

鎬荤粨

  • 浜嗚В閫氱敤浜哄伐绁炵粡缃戠粶鐨勬銆佸弽鍚戜紶鎾?
  • 浜嗚В澶氬眰绁炵粡缃戠粶锛岀缁忕綉缁滃氨鏄腹鐐夛紝鑾峰緱鐨勫弬鏁板氨鏄噾涓?
  • 閫氳繃JS瀹炵幇涔嬶紝灏嗙畻娉曠敤鍒板疄闄呬笟鍔″満鏅紝鑷姩鍖栦竴鍒囷紝鍑忓皯浜哄伐
  • 閫愭鎺屾彙澶氬眰绁炵粡鍒嗙被鐨勬妧宸?
  • 浜嗚В鍏朵粬涓绘祦绁炵粡缃戠粶

绁濆ぇ瀹?020鎻愬崌鎶€鏈紝寮€蹇冿紝鑾峰緱閲戜腹锛屽彂璐?馃槃


以上是关于鍔犳帹瀹炴垬涔嬪叏鏍圝S绁炵粡缃戠粶的主要内容,如果未能解决你的问题,请参考以下文章

鏈€鏂?绡嘔CLR2021绡囧浘绁炵粡缃戠粶璁烘枃鎺ㄨ崘

鍔ㄥ浘璇﹁В锛欸oogle缈昏瘧鑳屽悗鐨勬満鍣ㄥ涔犵畻娉曚笌绁炵粡缃戠粶妯″瀷

鎶撳寘瀹炴垬椤圭洰