CPN神經網路學習

2021-07-04 08:41:57 字數 2520 閱讀 8980

cpn神經網路的一些資料:

cpn神經網路設計步驟如下:

c**如下:(本**按照步驟完成,同時也對照matlab**修改,但是並沒有**功能,只能判斷已輸入的樣本屬於哪一類。貼出**,希望大牛能幫幫忙)

#include "stdio.h"

#include "stdlib.h"

#include "math.h"

#include "time.h"

#include "vector"

using namespace std;

#define inf 99999

#define dimin 4   //輸入樣本維數

#define dimout 1  //期望輸出樣本維數 

#define competenum 40  //競爭神經元數

#define maxloop  6000   //訓練次數

#define alpha 0.41    //輸入層到競爭層的學習率

#define delta 0.32     //競爭層到輸出層的學習率

typedef vectordoublevector;

vectordatain;   //輸入訓練樣本

vectordataout;  //期望輸出樣本

vectorw;     //輸入層到競爭層的權值

vectorv;     //競爭層到輸出層的權值

doublevector b;  //二值輸出向量

vectory;  //輸出層輸出向量

void getfiledata(char *file1, char *file2);   //獲取樣本

double eucdistance(doublevector x);   //計算歐式距離

void normalizationx();   //輸入樣本歸一化

void normalizationw();   //連線權值歸一化

void normalizationv();   //輸出層權值歸一化

void initialize();     //初始化權值

void cpn_train();      //開始訓練

int choosewg(doublevector x);  //選擇權重與x距離最近的向量

void use_cpn();  //使用cpn網路

doublevector round(doublevector src);   //四捨五入

//主函式

void main()

//使用cpn網路

void use_cpn()

dis = eucdistance(test);

for(i=0; itest[i] = test[i]/dis;

g = choosewg(test);

for(i=0; iout_sam.push_back(v[i][g]);

out_sam = round(out_sam);   //四捨五入

printf("測試結果:\n");

for(i=0; iprintf("%lf  ", out_sam[i]);

printf("\n\n");}}

//開始訓練

void cpn_train()

t++;  //計步器加1}}

//四捨五入

doublevector round(doublevector src)

return dst;

}//選擇權重與x距離最近的向量

int choosewg(doublevector x)

}return label;

}//初始化權值

void initialize()

//競爭層到輸出層的權值

for(i=0; i

}//連線權值歸一化

void normalizationw()

}//計算歐式距離

double eucdistance(doublevector x)

//輸入樣本歸一化

void normalizationx()

}//獲取樣本

void getfiledata(char *file1, char *file2)

doublevector temp;

//輸入的樣本

i = 1;

temp.clear();

while(fscanf(fp1, "%lf", &num)!=eof)

i++;

}//輸出的樣本

i = 1;

temp.clear();

while(fscanf(fp2, "%lf", &num)!=eof)

i++;}}

神經網路學習之 Hopfield神經網路

1982年,美國加州理工學院的優秀物理學家hopfield提出了hopfield神經網路。hopfield神經網路引用了物理力學的分析方法,把網路作為一種動態系統並研究這種網路動態系統的穩定性。dhnn 離散型hopfield神經網路 這是一種單層全反饋網路,共有n個神經元。其特點是任一神經元的輸出...

神經網路學習

深度學習入門部落格 cnn 卷積神經網路 rnn 迴圈神經網路 dnn 深度神經網路 概念區分理解 deep learning 的概念源於人工神經網路的研究。含多隱層的多層感知器就是一種深度學習結構。深度學習通過組合低層特徵形成更加抽象的高層表示屬性類別或特徵,以發現資料的分布式特徵表示。深度學習是...

神經網路學習

1 神經元模型 神經網路最廣泛的定義 神經網路是由具有適應性的簡單單元組成的廣泛並行互聯的網路,他的組織能夠模擬生物神經系統對真實世界物體所作出的互動反應。神經網路中最基本的成分是神經元模型,即上述定義中的 簡單單元 在生物神經網路中,神經元之間相連,當某乙個 興奮 時,就會向相連的神經元傳送化學物...