亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bp.txt

?? 神經網絡bp算法
?? TXT
字號:
#include "stdafx.h"
#include <string>
#include <cmath>
#include<ctime>
#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
const int N = 8;                                             //樣本數量
const int d = 4;                                             //樣本特征維數
const int nH = 3;                                           //隱含層元素個數,包括闕值
const int c = 1;                                             //每個樣本的目標值都是1維的
const double error_limit = 0.01;                           //迭代結束的誤差
const double rate = 0.05;                                    //學習率                      
const double momentum = 0.9;                           //沖量大小   
//
class weight{
    public:                                                    
double samples[N][d];                               //N個樣本的d維特征空間
double weight_HI[nH][d];                            //輸入層到隱含層權值
double weight_OH[c][nH];                            //隱含層到輸出層權值
double old_weight_HI[nH][d];                     //前一時刻輸入層和隱含層權重的變化率
double old_weight_OH[c][nH];                   //前一時刻輸出層和隱含層權重的變化率  
double dweight_HI[nH][d];                            //輸入層和隱含層權重的變化率
double dweight_OH[c][nH];                           //隱含層和輸出層權重的變化率
double old_dweight_HI[nH][d];                       //輸入層和隱含層上一次權重的變化率
double old_dweight_OH[c][nH];                       //隱含層和輸出層上一次權重的變化率
double sensitity_k[c];                              //隱含層敏感度
double sensitity_j[nH];                             //輸出層敏感度
double x[d];                                        //隨機選擇的樣本
double y[nH];                                   //類的定義中,只能聲明不能實例化,也就是不能有分配內存空間的變量
double z[c];                                    //在新的權值(weight_HI和weight_OH)下輸出層的輸出值
double net_j[nH];                                   //隱含層凈值                               
double net_k[c];                                    //輸出層層凈值 
double t[N][c];                                     //N個樣本的標準輸出值
double t_now[c];                                    //當前樣本的標準輸出值
double error;                                       //準則函數誤差變化率
//構造函數
weight(double s[N][d],double st[N][c]) {  
  for(int k = 0;k < c;k++) {
   sensitity_k[k] = 0;
  }
  for(int j = 0;j < nH;j++) {
   sensitity_j[j] = 0;
  }
  for(int n = 0;n < N;n++)
   for(int i = 0;i < d;i++) {
    samples[n] = s[n];
   }
  for(int n = 0;n < N;n++)
   for(int k = 0;k < c;k++) {
    t[n][k] = st[n][k];
   }
  
}

//輸入層到隱含層權值初始化
    void ini_weight_HI(double wHI[nH][d]) {                  
  for(int j = 0;j < nH;j++)
   for(int i = 0;i < d;i++) {
    weight_HI[j] = wHI[j];
    old_weight_HI[j] = wHI[j]; 
   } 
}
//隱含層到輸出層權值初始化
    void ini_weight_OH(double wOH[c][nH]) {                   
  for(int k = 0;k < c;k++)
   for(int j = 0;j < nH;j++) {
    weight_OH[k][j] = wOH[k][j];
                old_weight_OH[k][j] = wOH[k][j];
   } 
}

//輸入層到隱含層權值初始化
    void ini_dweight_HI() {                                   
  for(int j = 0;j < nH;j++)
   for(int i = 0;i < d;i++) {
    dweight_HI[j] = 0;
   } 
}

//隱含層到輸出層權值初始化
void ini_dweight_OH() {                                 
  for(int k = 0;k < c;k++)
   for(int j = 0;j < nH;j++) {
    dweight_OH[k][j] = 0;
   } 
}

//輸入層到隱含層權值初始化
void ini_old_dweight_HI() {                              
  for(int j = 0;j < nH;j++)
   for(int i = 0;i < d;i++) {
    old_dweight_HI[j] = 0;
   } 
}

//隱含層到輸出層權值初始化
void ini_old_dweight_OH() {                             
  for(int k = 0;k < c;k++)
   for(int j = 0;j < nH;j++) {
    old_dweight_OH[k][j] = 0;
   } 
}

//獲取當前樣本標準輸出值
void obtain_t_now(double t[c]) {                        //獲取當前樣本標準輸出值
  for(int k = 0;k < c;k++) {
   t_now[k] = t[k];
  }
}

//獲取當前隨機選擇的樣本
void obtain_x(double tem_x[d]) {                                //獲取當前隨機選擇的樣本
  for(int i = 0;i < d;i++) {
   x = tem_x;
  }
}

//計算y[j]以及net_j[j]
void obtain_y() {                               
  y[0] = 1;
  //
  for(int j = 1;j < nH;j++) { 
   //凈值初始為零
   net_j[j] = 0;
   //計算凈值
   for(int i = 0;i < d;i++) {
    net_j[j] += weight_HI[j] * x;
   }
   //計算凈值輸出
   y[j] = 1 / ( 1 + exp(-net_j[j]) );
  }
}
//計算z[k]
void obtain_z() {                               
  for(int k = 0;k < c;k++) {  
   //
   net_k[k] = 0;
   //
   for(int j = 0;j < nH;j++) {
    net_k[k] += weight_OH[k][j] * y[j];
   }
   z[k] = 1 / ( 1 + exp(-net_k[k]) );
  }                                               
}
//計算校正后輸入層到隱含層的權值
void obtain_new_weight_HI(double rate) {           
  for(int j = 0;j < nH;j++) {                     
   //
   sensitity_j[j] = 0;                          
   //
   for(int k = 0;k < c;k++) {                  
    sensitity_j[j] += y[j] * (1- y[j]) * weight_OH[k][j] * sensitity_k[k];
   }
   //
   for(int i = 0;i < d;i++){
    //
    dweight_HI[j] = rate * sensitity_j[j] * x;
    //
    weight_HI[j] = weight_HI[j] + (momentum * dweight_HI[j] + (1 - momentum) * old_dweight_HI[j]);
    //
    old_dweight_HI[j] = dweight_HI[j];
   }
  } 
}
//計算校正后隱含層到輸出層的權值
void obtain_new_weight_OH(double rate) {             
  for(int k = 0;k < c;k++) {
   //
            sensitity_k[k] = (t_now[k] - z[k]) * z[k] * (1 - z[k]);
   //
   for(int j = 0;j < nH;j++){
    //
    dweight_OH[k][j] = rate * sensitity_k[k] * y[j];
    //
    weight_OH[k][j] = weight_OH[k][j] + (momentum * dweight_OH[k][j] + (1 - momentum) * old_dweight_OH[k][j]);
    //
                old_dweight_OH[k][j] = dweight_OH[k][j];
   }
  }
}
//判斷迭代是否結束
int if_over() {                                     
  error = 0;
  for(int n = 0;n < N;n++) {
   obtain_x(samples[n]);
   obtain_t_now(t[n]);
      obtain_y();
      obtain_z();
   for(int k = 0;k < c;k++) { 
    error += fabs( 0.5 * pow( z[k] - t_now[k],2 ) );
   }  
  }
  if( (error) < error_limit ) return 1;
  else return 0;        
}
};                                                                                               //分號;最容易誤事 !
//
int main(){
//
double samples[N][d] = { {1,0,0,1},{1,0,0,0},{1,0,1,0},{1,0,1,1},{1,1,0,0},{1,1,0,1},{1,1,1,0},{1,1,1,1} };  //最基本的數組初始化也忘了 !
double t[N][c] = {0.1,0.9,0.1,0.9,0.1,0.9,0.9,0.1};    
double test[8][4] = { {1,0,0,0},{1,1,1,1},{1,0.0,0.0,0.2},{1,0.0,0.0,0.8},{1,0.0,0.2,0.0},{1,0.0,0.8,0.0},{1,0.0,0.2,0.2},{1,0.0,0.8,0.8} };    
//
weight w_obj(samples,t);                                                             
w_obj.ini_dweight_HI();
w_obj.ini_dweight_OH();
w_obj.ini_old_dweight_HI();
w_obj.ini_old_dweight_OH();
//
srand((unsigned)time(0));                                                   
//隨機初始化權值weight_OH
double random_weight_OH[c][nH]; 
for(int k = 0;k < c;k++)
  for(int j = 0;j < nH;j++) {
   random_weight_OH[k][j] = (double)( rand() % 100 ) / 100 - 0.5;             
  }                                                                              
w_obj.ini_weight_OH(random_weight_OH);                   
//隨機初始化權值weight_HI
double random_weight_HI[nH][d]; 
for(int j = 0;j < nH;j++)
  for(int i = 0;i < d;i++) {
   random_weight_HI[j] = (double)( rand() % 100 ) / 100 - 0.5;
  }
//
w_obj.ini_weight_HI(random_weight_HI);
  w_obj.obtain_x(samples[n]);
  w_obj.obtain_t_now(t[n]);
  w_obj.obtain_y();
  w_obj.obtain_z();
}
//
cout<<"Begin"<<endl;
int count = 0;
int num;
int if_over = 0;
while( !if_over ) {
  num = rand() % N;
  w_obj.obtain_x(samples[num]);
  w_obj.obtain_t_now(t[num]);
  w_obj.obtain_y();
  w_obj.obtain_z();
  w_obj.obtain_new_weight_OH(rate);
  w_obj.obtain_new_weight_HI(rate);
  if_over = w_obj.if_over(); 
  count++;             //保存迭代次數
}
  getchar();
  return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美无砖专区一中文字| 欧美另类久久久品| 韩国女主播一区| 免费成人在线视频观看| 亚洲成av人片在www色猫咪| 亚洲一区二区三区四区在线 | 欧美精选一区二区| 欧美少妇性性性| 欧洲av在线精品| 色综合一区二区| 日本高清不卡aⅴ免费网站| 色综合久久久久综合体桃花网| 波波电影院一区二区三区| 高清不卡在线观看| av成人老司机| 色婷婷激情综合| 欧美日韩一本到| 日韩欧美成人激情| 久久久久久一级片| 国产精品色哟哟网站| 国产精品你懂的在线欣赏| 成人欧美一区二区三区视频网页| 最新高清无码专区| 亚洲一区二区三区中文字幕在线| 丝袜亚洲另类丝袜在线| 国产一区二区在线视频| 成人在线综合网| 欧美影院精品一区| 日韩欧美一区二区免费| 久久美女高清视频| 亚洲精品欧美综合四区| 午夜视频在线观看一区| 久久精品理论片| caoporen国产精品视频| 在线观看免费亚洲| 日韩欧美在线观看一区二区三区| 久久久一区二区三区捆绑**| 亚洲欧美日韩国产另类专区| 日韩av中文在线观看| 国产福利一区二区三区视频| 色一情一伦一子一伦一区| 欧美精品色综合| 国产日韩欧美高清| 亚洲高清在线视频| 国产精品一二二区| 欧美色视频一区| 精品国免费一区二区三区| 国产精品毛片久久久久久| 五月婷婷激情综合| 国内不卡的二区三区中文字幕| 97国产精品videossex| 日韩色在线观看| 中文字幕一区在线观看视频| 日韩不卡在线观看日韩不卡视频| 成人高清在线视频| 91麻豆精品国产91久久久使用方法| 国产人成一区二区三区影院| 亚洲超碰97人人做人人爱| 国产91精品精华液一区二区三区 | 欧美色精品天天在线观看视频| 日韩亚洲欧美成人一区| 亚洲欧美自拍偷拍| 蜜桃av一区二区| 欧洲国内综合视频| 欧美国产日韩亚洲一区| 日本伊人午夜精品| 91黄色免费看| 欧美国产精品久久| 麻豆成人av在线| 欧美日韩一本到| 亚洲美女免费视频| 处破女av一区二区| 精品国产一区二区三区久久影院 | 麻豆国产精品777777在线| 日本丶国产丶欧美色综合| 久久综合久久鬼色中文字| 五月激情综合婷婷| 91国产免费看| 国产精品久久久久久一区二区三区 | 亚洲激情在线激情| 大美女一区二区三区| 久久久欧美精品sm网站| 午夜精品影院在线观看| 一本色道综合亚洲| 中文字幕一区二区三区四区| 韩国av一区二区三区| 6080午夜不卡| 丝袜国产日韩另类美女| 日本道免费精品一区二区三区| 国产精品高潮呻吟久久| 国产电影精品久久禁18| 日韩欧美国产wwwww| 免费在线观看不卡| 91精品午夜视频| 亚洲123区在线观看| 欧洲一区二区三区在线| 亚洲精选免费视频| 一本到一区二区三区| 一区二区在线看| 色伊人久久综合中文字幕| 亚洲美女视频在线观看| 色婷婷av一区二区三区软件| 亚洲人成精品久久久久| 色哟哟日韩精品| 亚洲永久免费av| 欧美三级日本三级少妇99| 一区二区三区丝袜| 在线亚洲一区观看| 亚洲一级在线观看| 9191精品国产综合久久久久久| 偷拍自拍另类欧美| 日韩亚洲电影在线| 国产资源在线一区| 中文字幕免费在线观看视频一区| 成人免费观看视频| 亚洲同性gay激情无套| 色妞www精品视频| 亚洲综合在线第一页| 欧美精品色一区二区三区| 麻豆专区一区二区三区四区五区| 精品日韩一区二区| 国产成人啪午夜精品网站男同| 国产精品毛片久久久久久| 色婷婷国产精品| 日本大胆欧美人术艺术动态| 精品对白一区国产伦| 成人av影视在线观看| 欧美精品三级日韩久久| 国产成人啪免费观看软件| 一区二区三区久久久| 欧美大度的电影原声| 国产乱对白刺激视频不卡| 亚洲第四色夜色| 成人性生交大片免费看中文| 日韩精品专区在线影院重磅| 精品免费99久久| 国产亚洲综合性久久久影院| 久久一区二区视频| 精品对白一区国产伦| 日韩一区二区在线播放| 亚洲午夜电影网| 国产91富婆露脸刺激对白| 一本一道综合狠狠老| www.亚洲在线| 韩日欧美一区二区三区| 最新日韩av在线| 欧美tk—视频vk| 在线电影一区二区三区| av一区二区三区| 色综合久久综合网欧美综合网| 色综合色狠狠综合色| 色噜噜狠狠色综合欧洲selulu| 处破女av一区二区| 国内精品国产成人国产三级粉色 | 国产成人av一区二区三区在线观看| 激情伊人五月天久久综合| 色噜噜狠狠色综合中国| 国产亚洲精品7777| 日韩精品视频网| 国产一区二区在线观看免费| 日韩伦理免费电影| 亚洲免费资源在线播放| 日韩av不卡一区二区| 捆绑变态av一区二区三区| 精品在线一区二区三区| 激情综合色丁香一区二区| 成人av电影在线观看| 在线观看91精品国产入口| 久久久综合精品| 午夜视频一区在线观看| 麻豆视频一区二区| 精品一区二区三区在线播放| 国产一区视频导航| 99免费精品视频| 精品国产91洋老外米糕| 久久久91精品国产一区二区精品| 欧美mv和日韩mv的网站| 国产日韩欧美一区二区三区乱码 | 在线视频国内一区二区| 欧美日韩精品电影| 中文字幕不卡在线| 日韩国产精品91| 97se亚洲国产综合在线| 欧美老女人第四色| 亚洲天堂免费看| 国产一级精品在线| 欧美优质美女网站| 欧美日韩综合色| 日本一区二区三区高清不卡| 91麻豆福利精品推荐| 欧美成人aa大片| 99久久婷婷国产综合精品电影 | 亚洲日本va午夜在线影院| 亚洲精品在线免费观看视频| 91免费看`日韩一区二区| 国产成人自拍高清视频在线免费播放| 日韩在线一二三区| 国产精品久久久一本精品 | 中文字幕乱码久久午夜不卡| 777精品伊人久久久久大香线蕉|