BP神经网络算法(2)

Jun 07, 2016 pm 03:49 PM
ニューラルネットワーク アルゴリズム

// BpNet.h:interfacefortheBpclass. // // E-Mail:zengzhijun369@163.com /**/ ///////////////////////////////////////////////////////////////////// / #include stdafx.h #include BpNet.h #include math.h #ifdef_DEBUG #undef THIS_FILE static char

 

//BpNet.h: interface for the Bp class.
BP神经网络算法(2)
//
BP神经网络算法(2)
//E-Mail:zengzhijun369@163.com
BP神经网络算法(2)BP神经网络算法(2)
/**///////////////////////////////////////////////////////////////////////
BP神经网络算法(2)#include "stdafx.h"
BP神经网络算法(2)#include 
"BpNet.h"
BP神经网络算法(2)#include 
"math.h"
BP神经网络算法(2)
BP神经网络算法(2)#ifdef _DEBUG
BP神经网络算法(2)
#undef THIS_FILE
BP神经网络算法(2)
static char THIS_FILE[]=__FILE__;
BP神经网络算法(2)
#define new DEBUG_NEW
BP神经网络算法(2)
#endif
BP神经网络算法(2)
BP神经网络算法(2)BP神经网络算法(2)
/**///////////////////////////////////////////////////////////////////////
BP神经网络算法(2)// Construction/Destruction
BP神经网络算法(2)BP神经网络算法(2)
/**///////////////////////////////////////////////////////////////////////
BP神经网络算法(2)
BP神经网络算法(2)BpNet::BpNet()
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){       
BP神经网络算法(2)    error
=1.0;
BP神经网络算法(2)    e
=0.0;
BP神经网络算法(2)    
BP神经网络算法(2)    rate_w
=0.05;  //权值学习率(输入层--隐含层)
BP神经网络算法(2)
    rate_w1=0.047//权值学习率 (隐含层--输出层)
BP神经网络算法(2)
    rate_b1=0.05//隐含层阀值学习率
BP神经网络算法(2)
    rate_b2=0.047//输出层阀值学习率
BP神经网络算法(2)
    error=1.0;
BP神经网络算法(2)    e
=0.0;
BP神经网络算法(2)    
BP神经网络算法(2)    rate_w
=0.05;  //权值学习率(输入层--隐含层)
BP神经网络算法(2)
    rate_w1=0.047//权值学习率 (隐含层--输出层)
BP神经网络算法(2)
    rate_b1=0.05//隐含层阀值学习率
BP神经网络算法(2)
    rate_b2=0.047//输出层阀值学习率
BP神经网络算法(2)
}

BP神经网络算法(2)
BP神经网络算法(2)BpNet::
~BpNet()
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){
BP神经网络算法(2)    
BP神经网络算法(2)}

BP神经网络算法(2)
BP神经网络算法(2)
void winit(double w[],int sl)//权值初始化
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){int i;
BP神经网络算法(2)
double randx();
BP神经网络算法(2)BP神经网络算法(2)
for(i=0;isl;i++)BP神经网络算法(2){
BP神经网络算法(2)    
*(w+i)=0.2*randx();
BP神经网络算法(2)}

BP神经网络算法(2)}

BP神经网络算法(2)
BP神经网络算法(2)
double randx()//kqy error
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){double d;
BP神经网络算法(2)d
=(double) rand()/32767.0;
BP神经网络算法(2)
return d;
BP神经网络算法(2)}

BP神经网络算法(2)
BP神经网络算法(2)
void BpNet::init()
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){
BP神经网络算法(2)    winit((
double*)w,innode*hidenode);
BP神经网络算法(2)    winit((
double*)w1,hidenode*outnode);
BP神经网络算法(2)    winit(b1,hidenode);
BP神经网络算法(2)    winit(b2,outnode);
BP神经网络算法(2)}

BP神经网络算法(2)
BP神经网络算法(2)
BP神经网络算法(2)
void BpNet::train(double p[trainsample][innode],double t[trainsample][outnode])
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){
BP神经网络算法(2)    
double pp[hidenode];//隐含结点的校正误差
BP神经网络算法(2)
    double qq[outnode];//希望输出值与实际输出值的偏差
BP神经网络算法(2)
    double yd[outnode];//希望输出值
BP神经网络算法(2)
    
BP神经网络算法(2)    
double x[innode]; //输入向量
BP神经网络算法(2)
    double x1[hidenode];//隐含结点状态值
BP神经网络算法(2)
    double x2[outnode];//输出结点状态值
BP神经网络算法(2)
    double o1[hidenode];//隐含层激活值
BP神经网络算法(2)
    double o2[hidenode];//输出层激活值
BP神经网络算法(2)
    for(int isamp=0;isamptrainsample;isamp++)//循环训练一次样品
BP神经网络算法(2)BP神经网络算法(2)
    BP神经网络算法(2)
BP神经网络算法(2)        
for(int i=0;iinnode;i++)
BP神经网络算法(2)            x[i]
=p[isamp][i];
BP神经网络算法(2)        
for(i=0;ioutnode;i++)
BP神经网络算法(2)            yd[i]
=t[isamp][i];
BP神经网络算法(2)        
BP神经网络算法(2)        
//构造每个样品的输入和输出标准
BP神经网络算法(2)
        for(int j=0;jhidenode;j++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            o1[j]
=0.0;
BP神经网络算法(2)            
BP神经网络算法(2)            
for(i=0;iinnode;i++)
BP神经网络算法(2)                o1[j]
=o1[j]+w[i][j]*x[i];//隐含层各单元输入激活值
BP神经网络算法(2)
            x1[j]=1.0/(1+exp(-o1[j]-b1[j]));//隐含层各单元的输出kqy1
BP神经网络算法(2)            
//    if(o1[j]+b1[j]>0) x1[j]=1;
BP神经网络算法(2)            
//else x1[j]=0;
BP神经网络算法(2)
        }

BP神经网络算法(2)        
BP神经网络算法(2)        
for(int k=0;koutnode;k++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            o2[k]
=0.0;
BP神经网络算法(2)            
BP神经网络算法(2)            
for(j=0;jhidenode;j++)
BP神经网络算法(2)                o2[k]
=o2[k]+w1[j][k]*x1[j];//输出层各单元输入激活值
BP神经网络算法(2)
            x2[k]=1.0/(1.0+exp(-o2[k]-b2[k]));//输出层各单元输出
BP神经网络算法(2)            
//    if(o2[k]+b2[k]>0) x2[k]=1;
BP神经网络算法(2)            
//    else x2[k]=0;
BP神经网络算法(2)
        }

BP神经网络算法(2)        
BP神经网络算法(2)        
for(k=0;koutnode;k++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            e
=0.0;
BP神经网络算法(2)            qq[k]
=(yd[k]-x2[k])*x2[k]*(1.-x2[k]);//希望输出与实际输出的偏差
BP神经网络算法(2)
            e+=fabs(yd[k]-x2[k])*fabs(yd[k]-x2[k]);//计算均方差
BP神经网络算法(2)
            
BP神经网络算法(2)            
for(j=0;jhidenode;j++)
BP神经网络算法(2)                w1[j][k]
=w1[j][k]+rate_w1*qq[k]*x1[j];//下一次的隐含层和输出层之间的新连接权
BP神经网络算法(2)
            e=sqrt(e);
BP神经网络算法(2)            error
=e;
BP神经网络算法(2)        
BP神经网络算法(2)        }

BP神经网络算法(2)        
BP神经网络算法(2)        
for(j=0;jhidenode;j++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            pp[j]
=0.0;
BP神经网络算法(2)            
for(k=0;koutnode;k++)
BP神经网络算法(2)                pp[j]
=pp[j]+qq[k]*w1[j][k];
BP神经网络算法(2)            pp[j]
=pp[j]*x1[j]*(1-x1[j]);//隐含层的校正误差
BP神经网络算法(2)
            
BP神经网络算法(2)            
for(i=0;iinnode;i++)
BP神经网络算法(2)                w[i][j]
=w[i][j]+rate_w*pp[j]*x[i];//下一次的输入层和隐含层之间的新连接权
BP神经网络算法(2)
        }

BP神经网络算法(2)        
BP神经网络算法(2)        
for(k=0;koutnode;k++)
BP神经网络算法(2)            b2[k]
=b2[k]+rate_b2*qq[k];//下一次的隐含层和输出层之间的新阈值
BP神经网络算法(2)
        for(j=0;jhidenode;j++)
BP神经网络算法(2)            b1[j]
=b1[j]+rate_b1*pp[j];//下一次的输入层和隐含层之间的新阈值
BP神经网络算法(2)
        
BP神经网络算法(2)    }
//end isamp样品循环
BP神经网络算法(2)
    
BP神经网络算法(2)}

BP神经网络算法(2)BP神经网络算法(2)
/**////////////////////////////end train/////////////////////////////
BP神经网络算法(2)
BP神经网络算法(2)
/////////////////////////////////////////////////////////////////

BP神经网络算法(2)
BP神经网络算法(2)
double *BpNet::recognize(double *p)
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){   
BP神经网络算法(2)    
double x[innode]; //输入向量
BP神经网络算法(2)
    double x1[hidenode];//隐含结点状态值
BP神经网络算法(2)
    double x2[outnode];//输出结点状态值
BP神经网络算法(2)
    double o1[hidenode];//隐含层激活值
BP神经网络算法(2)
    double o2[hidenode];//输出层激活值
BP神经网络算法(2)

BP神经网络算法(2)    
for(int i=0;iinnode;i++)
BP神经网络算法(2)        x[i]
=p[i];
BP神经网络算法(2)    
for(int j=0;jhidenode;j++)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        o1[j]
=0.0;
BP神经网络算法(2)        
BP神经网络算法(2)        
for(int i=0;iinnode;i++)
BP神经网络算法(2)            o1[j]
=o1[j]+w[i][j]*x[i];//隐含层各单元激活值
BP神经网络算法(2)
        x1[j]=1.0/(1.0+exp(-o1[j]-b1[j]));//隐含层各单元输出
BP神经网络算法(2)        
//if(o1[j]+b1[j]>0) x1[j]=1;
BP神经网络算法(2)        
//    else x1[j]=0;
BP神经网络算法(2)
    }

BP神经网络算法(2)    
BP神经网络算法(2)    
for(int k=0;koutnode;k++)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        o2[k]
=0.0;
BP神经网络算法(2)        
for(int j=0;jhidenode;j++)
BP神经网络算法(2)            o2[k]
=o2[k]+w1[j][k]*x1[j];//输出层各单元激活值
BP神经网络算法(2)
        x2[k]=1.0/(1.0+exp(-o2[k]-b2[k]));//输出层各单元输出
BP神经网络算法(2)        
//if(o2[k]+b2[k]>0) x2[k]=1;
BP神经网络算法(2)        
//else x2[k]=0;
BP神经网络算法(2)
    }
 
BP神经网络算法(2)    
BP神经网络算法(2)    
for(k=0;koutnode;k++)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        shuchu[k]
=x2[k];
BP神经网络算法(2)    }
 
BP神经网络算法(2)    
return shuchu;
BP神经网络算法(2)BP神经网络算法(2)}
/**/////////////////////////////end sim///////////////////////////
BP神经网络算法(2)
BP神经网络算法(2)
void BpNet::writetrain()
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){//曾志军 for 2006.7
BP神经网络算法(2)
    AfxMessageBox("你还没有训练呢,训练后再写吧!请不要乱写,除非你认为这次训练是最好的,否则会覆盖我训练好的权值,那样你又要花时间训练!");
BP神经网络算法(2)    AfxMessageBox(
"你认为这次训练结果是最好的,就存下来,下次就不要花时间训练了!",MB_YESNO,NULL);
BP神经网络算法(2)    FILE 
*stream0;
BP神经网络算法(2)    FILE 
*stream1;
BP神经网络算法(2)    FILE 
*stream2;
BP神经网络算法(2)    FILE 
*stream3;
BP神经网络算法(2)

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

YOLOは不滅です! YOLOv9 がリリースされました: パフォーマンスとスピード SOTA~ YOLOは不滅です! YOLOv9 がリリースされました: パフォーマンスとスピード SOTA~ Feb 26, 2024 am 11:31 AM

現在の深層学習手法は、モデルの予測結果が実際の状況に最も近くなるように、最適な目的関数を設計することに重点を置いています。同時に、予測に十分な情報を取得するには、適切なアーキテクチャを設計する必要があります。既存の方法は、入力データがレイヤーごとの特徴抽出と空間変換を受けると、大量の情報が失われるという事実を無視しています。この記事では、ディープネットワークを介してデータを送信する際の重要な問題、つまり情報のボトルネックと可逆機能について詳しく説明します。これに基づいて、深層ネットワークが複数の目的を達成するために必要なさまざまな変化に対処するために、プログラマブル勾配情報 (PGI) の概念が提案されています。 PGI は、目的関数を計算するためのターゲット タスクに完全な入力情報を提供することで、ネットワークの重みを更新するための信頼できる勾配情報を取得できます。さらに、新しい軽量ネットワーク フレームワークが設計されています。

CLIP-BEVFormer: BEVFormer 構造を明示的に監視して、ロングテール検出パフォーマンスを向上させます。 CLIP-BEVFormer: BEVFormer 構造を明示的に監視して、ロングテール検出パフォーマンスを向上させます。 Mar 26, 2024 pm 12:41 PM

上記および筆者の個人的な理解: 現在、自動運転システム全体において、認識モジュールが重要な役割を果たしている。道路を走行する自動運転車は、認識モジュールを通じてのみ正確な認識結果を得ることができる。下流の規制および制御モジュール自動運転システムでは、タイムリーかつ正確な判断と行動決定が行われます。現在、自動運転機能を備えた自動車には通常、サラウンドビューカメラセンサー、ライダーセンサー、ミリ波レーダーセンサーなどのさまざまなデータ情報センサーが搭載されており、さまざまなモダリティで情報を収集して正確な認識タスクを実現しています。純粋な視覚に基づく BEV 認識アルゴリズムは、ハードウェア コストが低く導入が容易であるため、業界で好まれており、その出力結果はさまざまな下流タスクに簡単に適用できます。

C++ での機械学習アルゴリズムの実装: 一般的な課題と解決策 C++ での機械学習アルゴリズムの実装: 一般的な課題と解決策 Jun 03, 2024 pm 01:25 PM

C++ の機械学習アルゴリズムが直面する一般的な課題には、メモリ管理、マルチスレッド、パフォーマンスの最適化、保守性などがあります。解決策には、スマート ポインター、最新のスレッド ライブラリ、SIMD 命令、サードパーティ ライブラリの使用、コーディング スタイル ガイドラインの遵守、自動化ツールの使用が含まれます。実践的な事例では、Eigen ライブラリを使用して線形回帰アルゴリズムを実装し、メモリを効果的に管理し、高性能の行列演算を使用する方法を示します。

C++sort 関数の基礎となる原則とアルゴリズムの選択を調べる C++sort 関数の基礎となる原則とアルゴリズムの選択を調べる Apr 02, 2024 pm 05:36 PM

C++sort 関数の最下層はマージ ソートを使用し、その複雑さは O(nlogn) で、クイック ソート、ヒープ ソート、安定したソートなど、さまざまなソート アルゴリズムの選択肢を提供します。

1.3ミリ秒には1.3ミリ秒かかります。清華社の最新オープンソース モバイル ニューラル ネットワーク アーキテクチャ RepViT 1.3ミリ秒には1.3ミリ秒かかります。清華社の最新オープンソース モバイル ニューラル ネットワーク アーキテクチャ RepViT Mar 11, 2024 pm 12:07 PM

論文のアドレス: https://arxiv.org/abs/2307.09283 コードのアドレス: https://github.com/THU-MIG/RepViTRepViT は、モバイル ViT アーキテクチャで優れたパフォーマンスを発揮し、大きな利点を示します。次に、この研究の貢献を検討します。記事では、主にモデルがグローバル表現を学習できるようにするマルチヘッド セルフ アテンション モジュール (MSHA) のおかげで、軽量 ViT は一般的に視覚タスクにおいて軽量 CNN よりも優れたパフォーマンスを発揮すると述べられています。ただし、軽量 ViT と軽量 CNN のアーキテクチャの違いは十分に研究されていません。この研究では、著者らは軽量の ViT を効果的なシステムに統合しました。

人工知能は犯罪を予測できるのか? CrimeGPT の機能を調べる 人工知能は犯罪を予測できるのか? CrimeGPT の機能を調べる Mar 22, 2024 pm 10:10 PM

人工知能 (AI) と法執行機関の融合により、犯罪の予防と検出の新たな可能性が開かれます。人工知能の予測機能は、犯罪行為を予測するためにCrimeGPT (犯罪予測技術) などのシステムで広く使用されています。この記事では、犯罪予測における人工知能の可能性、その現在の応用、人工知能が直面する課題、およびこの技術の倫理的影響について考察します。人工知能と犯罪予測: 基本 CrimeGPT は、機械学習アルゴリズムを使用して大規模なデータセットを分析し、犯罪がいつどこで発生する可能性があるかを予測できるパターンを特定します。これらのデータセットには、過去の犯罪統計、人口統計情報、経済指標、気象パターンなどが含まれます。人間のアナリストが見逃す可能性のある傾向を特定することで、人工知能は法執行機関に力を与えることができます

画像の類似性比較にコントラスト損失を使用してシャム ネットワークを探索する 画像の類似性比較にコントラスト損失を使用してシャム ネットワークを探索する Apr 02, 2024 am 11:37 AM

はじめに コンピュータ ビジョンの分野では、画像の類似性を正確に測定することは、幅広い実用化を伴う重要なタスクです。画像検索エンジンから顔認識システム、コンテンツベースの推奨システムに至るまで、類似した画像を効果的に比較して見つける機能が重要です。シャム ネットワークとコントラスト損失を組み合わせることで、データ駆動型の方法で画像の類似性を学習するための強力なフレームワークが提供されます。このブログ投稿では、シャム ネットワークの詳細を掘り下げ、コントラスト損失の概念を探り、これら 2 つのコンポーネントがどのように連携して効果的な画像類似性モデルを作成するかを探っていきます。まず、Siamese ネットワークは、同じ重みとパラメータを共有する 2 つの同一のサブネットワークで構成されています。各サブネットワークは入力画像を特徴ベクトルにエンコードします。

改良された検出アルゴリズム: 高解像度の光学式リモートセンシング画像でのターゲット検出用 改良された検出アルゴリズム: 高解像度の光学式リモートセンシング画像でのターゲット検出用 Jun 06, 2024 pm 12:33 PM

01 今後の概要 現時点では、検出効率と検出結果の適切なバランスを実現することが困難です。我々は、光学リモートセンシング画像におけるターゲット検出ネットワークの効果を向上させるために、多層特徴ピラミッド、マルチ検出ヘッド戦略、およびハイブリッドアテンションモジュールを使用して、高解像度光学リモートセンシング画像におけるターゲット検出のための強化されたYOLOv5アルゴリズムを開発しました。 SIMD データセットによると、新しいアルゴリズムの mAP は YOLOv5 より 2.2%、YOLOX より 8.48% 優れており、検出結果と速度のバランスがより優れています。 02 背景と動機 リモート センシング技術の急速な発展に伴い、航空機、自動車、建物など、地表上の多くの物体を記述するために高解像度の光学式リモート センシング画像が使用されています。リモートセンシング画像の判読における物体検出

See all articles