数学的モデリングのアルゴリズムと応用 [BP ニューラル ネットワーク アルゴリズム]

ニューラル ネットワークは、予測および分類の問題を評価するために使用できます。畳み込みニューラル ネットワークは大規模なサンプルに適しています。ディープ ラーニングには、畳み込みニューラル ネットワーク、敵対的ネットワークなど、さまざまなタイプのネットワークが含まれます。ディープ ラーニングは、大規模なサンプルと小規模なサンプルの両方で機能します。

人工ニューラルネットワークANN

機械学習と認知科学の分野では、人工ニューラル ネットワーク (ANN)、ニューラル ネットワーク (NN)、またはニューラル ネットワークは、生物学的な神経ネットワーク (動物の中枢神経系、特に動物の中枢神経系) を模倣する一種のニューラル ネットワークです。 . 機能を推定または近似するために使用される、脳の構造と機能の数学的または計算モデル。
ANNって何ができるの?
ここに画像の説明を挿入
ニューラルネットワークの主な研究内容
・ニューロンモデル
・活性化関数
・ネットワーク構造
・動作状態
・学習方法

一般的なニューラル ネットワークには、次の 3 つの部分があります。
1.アーキテクチャ(アーキテクチャ) 構造は、ネットワーク内の変数とそれらのトポロジ関係を指定します。たとえば、ニューラル ネットワークの変数は、ニューロン接続の重みやニューロンの活性化値(ニューロンの活動) にすることができます 2.
アクティビティルール. ほとんどのニューラル ネットワーク モデルは、短い時間スケールのダイナミクスを持っています。ニューロンは、他のニューロンの活動に基づいて興奮値を変更します。一般に、活性化関数はネットワーク内の重み (つまり、ネットワークのパラメーター) に依存します。3.学習ルール学習ルールは、ネットワーク内の重みが時間の経過とともにどのように調整されるかを指定します。これは一般に長期的な動的ルールとみなされます。一般に、学習規則はニューロンの活性化値に依存します。また、監督者が提供する目標値と現在の体重の値にも依存する場合があります。下の図は 3 層のニューラル ネットワークで、入力層には d 個のノード、隠れ層には q 個のノード、出力層には l 個のノードがあります。入力層を除いて、各層のノードには非線形変換が含まれています。


ここに画像の説明を挿入ここに画像の説明を挿入

人工ニューロン

他の処理単位(ニューロン)iからの情報をxi、この処理単位との重みをωi、i=0,1,...,n-1、処理単位内の閾値をθとする。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

活性化関数

ここに画像の説明を挿入
ここに画像の説明を挿入

ネットワークモデル

ネットワーク内のニューロンのさまざまな相互接続方法に従って、ネットワーク モデルは次のように分類されます。
フィードフォワード ニューラル ネットワークは、
トレーニング プロセス中にのみフィードバック信号を持ちますが、分類プロセス中は、データは出力層に到達するまで前方にのみ送信できます。層間の方向性はありません
フィードバックニューラルネットワーク
後のフィードバック信号は、出力から入力へのフィードバック接続を持つニューラルネットワークです その構造はフィードフォワードネットワークよりもはるかに複雑です 自己組織化ネットワークは、自動的に自己組織化し、適応的に変化
ます
サンプルに固有の法則と本質的な属性を発見し、ネットワークパラメータと構造を発見します。
ここに画像の説明を挿入
ニューラル ネットワークの動作状態は、学習と動作の 2 つの状態に分けられます。
学習では
、学習アルゴリズムを使用してニューロン間の接続の重みを調整し、ネットワーク出力を現実とより一致させます。
動作中の
ニューロン間の接続の重みは変更されず、変更することができます。分類器または予測データとして使用されます。
学習方法学習は、講師付き学習講師なし学習
に分かれており、講師付き学習では、一連のトレーニングセットをネットワークに送信し、ネットワークの実際の出力と期待される出力の差に応じて接続の重みを調整します。 。例: BP アルゴリズム (家庭教師不要学習) は、サンプル セットに含まれる統計的特徴を抽出し、それらをニューロン間の接続重みの形でネットワークに保存します。例: Hebb 学習率





BP ニューラル ネットワーク (逆伝播)

BP ニューラル ネットワークの学習プロセスは、信号の順伝播誤差の逆伝播の 2 つのプロセスで構成されます。順伝播中、入力サンプルは入力層から渡されます。隠れ層によって層ごとに処理された後、出力層に送信されます。出力層の実際の出力が期待される出力と一致しない場合、出力層は、誤差の逆伝播段階に移ります。誤差の逆伝播は、出力誤差を何らかの形式で隠れ層を介して層ごとに入力層に逆伝播し、誤差を各層のすべてのユニットに割り当て、それによって各層ユニットの誤差信号を取得し、この誤差信号を取得します。各単位の重量の補正の基礎として使用されます。
BP (Back Propagation) ニューラル ネットワーク モデルは、現在最も広く使用されている人工ニューラル ネットワーク モデルの 1 つです。BP ネットワークは、このマッピング関係を説明する数式を事前に明らかにすることなく、多数の入出力パターンのマッピング関係を学習して保存できます。その学習ルールは、勾配降下法を使用し、バックプロパゲーションを通じてネットワークの重みしきい値を継続的に調整して、ネットワークの二乗誤差の合計を最小限に抑えることです。BP ニューラル ネットワーク モデルのトポロジー構造には、入力層、隠れ層、出力層が含まれます。
入力層には複数の入力ノードがあり、出力層には 1 つ以上の出力ノードがあり、中間の隠れ層ノードの数は実際のニーズに応じて設定され、上位層と下位層の間のノードは完全に接続されています。つまり、すべてです。下位層のノードは上位層のすべてのノードに完全に接続されており、同じ層内のノード間には接続がありません。

BPアルゴリズム

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

データの前処理

1. データの前処理
ニューラル ネットワークをトレーニングする前に、一般にデータを前処理する必要があります。重要な前処理方法は正規化です。以下に、正規化処理の原理と方法を簡単に紹介します
(1) 正規化とは?
データの正規化とは、データを [0,1] または [-1,1] の間隔、あるいはそれより小さい間隔 ( ( 0.1、0.9)。
(2) なぜ正規化が必要なのか?
<1> 入力データの単位が異なり、特にデータ範囲が大きい場合があるため、ニューラルネットワークの収束が遅くなり、学習時間が長くなります
<2>データ範囲が大きい入力はパターン分類においてより大きな役割を果たす可能性がありますが、データ範囲が狭い入力はより小さな役割を果たす可能性があります。
<3>ニューラルネットワーク出力層の活性化関数値の範囲は限られているため、ネットワーク学習の対象データを活性化関数の値の範囲にマッピングする必要がある。
たとえば、ニューラル ネットワークの出力層が S 字型の活性化関数を使用する場合、S 字型の関数の値の範囲は (0,1) に制限されるため、ニューラル ネットワークの出力はは (0,1) にのみ制限されるため、トレーニング データの出力は [0,1] 区間に正規化する必要があります。
<4> S 字型の活性化関数は(0,1) 区間の外側では非常に平坦であり識別が小さすぎますたとえば、S 字関数 f(x) のパラメータ a=1 の場合、f(100) と f(5) の差はわずか 0.0067 です。
ここに画像の説明を挿入
ここに画像の説明を挿入

関連コマンドコード

データの前処理

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

ニューラルネットワークのトレーニングとテスト

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入

トレーニング行列 P を m n 次行列とする。mは判定が必要なパラメータ(属性)の数、nはデータ(サンプル)の数を表します。
結果として得られる行列 T の
次数が c n であるとします。c は出力結果の状態の合計数で、n は P の n と同じでなければなりません。また、サンプルのセットと同じ数の出力のセットが存在します。
コラム: 60 人の子どもの成績を 3 科目で評価し、結果は良いか悪いかだけを出力します。このとき、P は 3 行 60 次元の行列、T は 1 行 60 次元の行列になります。
ここに画像の説明を挿入

%以每三个月的销售量经归一化处理后作为输入,可以加快网络的训练速度将每组数据都变为-1至1之间的数
P=[0.5152 0.8173 1.0000;
0.8173 1.0000 0.7308;
1.0000 0.7308 0.1390; 
0.7308 0.1390 0.1087;
0.1390 0.1087 0.3520;
0.1087 0.3520 0.0000;]';
%以第四个月的销售量归一化处理后作为目标向量
T=[0.7308 0.1390 0.1087 0.3520 0.0000 0.3761];
%创建一个BP神经网络,每一个输入向量的取值范围为[0,1],
% 输出层有一个神经元,隐含层的激活函数为tansig,
% 输出层的激活函数为logsig,训练函数为梯度下降函数
net=newff([0 1;0 1;0 1],[5,1],{'tansig','logsig'},'traingd');
net.trainParam.epochs=15000;%训练终止次数
net.trainParam.goal=0.01;%训练终止精度
net=train(net,P,T);%用P和T去训练
Y = sim(net,P)%用P去做仿真
plot(P,T,P,Y,'o')%画出图像

例: 運動量勾配降下アルゴリズムを使用して BP ネットワークをトレーニングする

% 训练样本定义如下: 
% 输入矢量为     
%  p =[-1 -2 3  1  
%      -1  1 5 -3] 
% 目标矢量为   t = [-1 -1 1 1] 
close all  
clear  
clc 
% ---------------------------------------------------------------
% NEWFF——生成一个新的前向神经网络,函数格式:
% net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) takes,
% PR -- R x 2 matrix of min and max values for R input elements
%  (对于R维输入,PR是一个R x 2 的矩阵,每一行是相应输入的边界值)
% Si -- 第i层的维数
% TFi -- 第i层的传递函数, default = 'tansig'
% BTF -- 反向传播网络的训练函数, default = 'traingdx'
% BLF -- 反向传播网络的权值/阈值学习函数, default = 'learngdm'
% PF -- 性能函数, default = 'mse'
% ---------------------------------------------------------------
% TRAIN——对 BP 神经网络进行训练,函数格式:
%  train(NET,P,T,Pi,Ai,VV,TV),输入参数:
% net -- 所建立的网络
% P -- 网络的输入
% T -- 网络的目标值, default = zeros
% Pi -- 初始输入延迟, default = zeros
% Ai -- 初始网络层延迟, default = zeros
% VV -- 验证向量的结构, default = []
% TV -- 测试向量的结构, default = []
% 返回值:
% net -- 训练之后的网络
% TR -- 训练记录(训练次数及每次训练的误差)
% Y -- 网络输出
% E -- 网络误差
% Pf -- 最终输入延迟
% Af -- 最终网络层延迟
% ---------------------------------------------------------------
% SIM——对 BP 神经网络进行仿真,函数格式:
% [Y,Pf,Af,E,perf] = sim(net,P,PiAi,T)
% 参数与前同。
% ---------------------------------------------------------------
% 
%  定义训练样本  
% P 为输入矢量 
echo on
P=[-1,  -2,    3,    1;
    -1,    1,    5,  -3]; 
% T 为目标矢量  
T=[-1, -1, 1, 1];  
%  创建一个新的前向神经网络  
net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm') 
% ---------------------------------------------------------------
% 训练函数:traingdm,功能:以动量BP算法修正神经网络的权值和阈值。
% 它的相关特性包括:
% epochs:训练的次数,默认:100
% goal:误差性能目标值,默认:0
% lr:学习率,默认:0.01
% max_fail:确认样本进行仿真时,最大的失败次数,默认:5
% mc:动量因子,默认:0.9
% min_grad:最小梯度值,默认:1e-10
% show:显示的间隔次数,默认:25
% time:训练的最长时间,默认:inf
% ---------------------------------------------------------------
%  当前输入层权值和阈值  
inputWeights=net.IW{1,1}  
inputbias=net.b{1}  
%  当前网络层权值和阈值  
layerWeights=net.LW{2,1}  
layerbias=net.b{2}  
%  设置网络的训练参数  
net.trainParam.show = 50;  
net.trainParam.lr = 0.05;  
net.trainParam.mc = 0.9;  
net.trainParam.epochs = 1000;  
net.trainParam.goal = 1e-3;   
%  调用 TRAINGDM 算法训练 BP 网络  
[net,tr]=train(net,P,T);  
%  对 BP 网络进行仿真  
A = sim(net,P)  
%  计算仿真误差  
E = T - A  
MSE=mse(E)  
echo off
figure;
plot((1:4),T,'-*',(1:4),A,'-o')

実行結果
ここに画像の説明を挿入
: 予測の精度はまだ比較的高く、
ここに画像の説明を挿入
トレーニング チャートをクリックすると、トレーニング プロセス中の各データの変化結果を取得できます。
ここに画像の説明を挿入

BPニューラルネットワークの長所と短所

アドバンテージ

  1. 非線形マッピング機能: BP ニューラル ネットワークは基本的に入力から出力までのマッピング関数を実装します。数学理論は、3 層ニューラル ネットワークが任意の精度で任意の非線形連続関数を近似できることを証明しています。これにより、複雑な内部メカニズムの問題を解決するのに特に適しています。つまり、BP ニューラル ネットワークは強力な非線形マッピング機能を備えています。
    2)自己学習と適応能力:BPニューラルネットワークは、学習中に出力と出力データの間の「合理的なルール」を学習を通じて自動的に抽出し、学習内容をネットワークの重みに適応的に記憶することができます。つまり、BP ニューラル ネットワークは高度な自己学習能力と適応能力を備えています。
  2. 一般化能力: いわゆる一般化能力とは、パターン分類器を設計する際に、ネットワークが必要な分類オブジェクトを正しく分類できるかどうか、またネットワークが目に見えないパターンや学習後のパターンを分類できるかどうかを考慮する必要があることを意味します。汚染パターンを正確に分類します。つまり、BP ニューラル ネットワークには、学習結果を新しい知識に適用する機能があります
    4)耐障害性: BP ニューラル ネットワークは、局所的または部分的なニューロンが損傷した後でも全体的なトレーニング結果に大きな影響を与えません。つまり、局所的に損傷した場合でも、システムは引き続き正常に動作します。つまり、BP ニューラル ネットワークには一定の耐障害性があります。
    短所
    1.局所最小化問題: 数学的な観点から見ると、従来の BP ニューラル ネットワークは局所探索最適化手法であり、複雑な非線形問題を解決し、ネットワークの重みが局所的に改善され、方向が徐々に調整されます。アルゴリズムが局所的な極値に陥り、重みが局所的な最小点に収束するため、ネットワーク トレーニングが失敗します。さらに、BP ニューラル ネットワークは、ネットワークの初期重みに非常に敏感です。ネットワークが異なる重みで初期化されると、異なる極小値に収束することがよくあります。これが、多くの学者がトレーニングのたびに異なる結果を得る根本的な理由でもあります。
    2. BP ニューラル ネットワーク アルゴリズムの収束速度が遅い: BP ニューラル ネットワーク アルゴリズムは本質的に勾配降下法であるため、最適化したい目的関数が非常に複雑であるため、必然的に「ジグザグ現象」が発生します。 BP アルゴリズムの効果が低くなり、最適化の目的関数が非常に複雑であるため、ニューロンの出力が 0 または 1 に近い場合、必然的に平坦な領域がいくつか現れます。これらの領域では、重み誤差の変化がほとんどないため、トレーニング プロセスが容易になります。ほぼ停止する; BP ニューラル ネットワーク モデルでは、ネットワークが BP アルゴリズムを実行するために、従来の一次元探索方法を使用して各反復のステップ サイズを見つけることはできませんが、ステップの更新ルールはサイズを事前にネットワークに与える必要がありますが、この方法もアルゴリズムの非効率を引​​き起こします。上記のすべてにより、BP ニューラル ネットワーク アルゴリズムの収束速度が遅くなります。
    3.BP ニューラル ネットワーク構造にはさまざまな選択肢があります。BP ニューラル ネットワーク構造の選択に関する統一的かつ完全な理論的ガイダンスはまだ存在せず、通常は経験によってのみ選択できます。ネットワーク構造が大きすぎると、学習効率が低くなり、過学習が発生してネットワークのパフォーマンスが低下し、耐障害性が低下する可能性があり、ネットワーク構造が小さすぎると、ネットワークが収束しない可能性があります。ネットワークの構造は、ネットワークの近似能力と一般化特性に直接影響します。したがって、アプリケーションにおいて適切なネットワーク構造をどのように選択するかが重要な問題となります。
    4.アプリケーションインスタンスとネットワーク規模の矛盾:BPニューラルネットワークは、アプリケーション問題のインスタンス規模とネットワーク規模の矛盾を解決することが困難であり、ネットワーク容量の可能性と実現可能性、つまり学習の関係が関係します。複雑さの問題。
    5. BP ニューラルネットワークの予測能力と訓練能力の対立: 予測能力は一般化能力または汎化能力とも呼ばれ、訓練能力は近似能力または学習能力とも呼ばれます。一般に、訓練能力が低いと予測能力も低くなり、訓練能力が向上するとある程度予測能力も向上しますしかし、この傾向は固定されたものではなく限界があり、この限界に達すると、学習能力が向上すると逆に予測能力が低下する、いわゆる「過学習」現象と呼ばれますこの現象の原因は、ネットワークがサンプルの詳細を学習しすぎて、学習されたモデルがサンプルに含まれるパターンを反映できなくなったためであるため、学習の程度を把握し、ネットワークの予測能力と予測能力の矛盾をどのように解決するかが重要です。学習能力も BP ニューラル ネットワークの問題です ネットワークの重要な研究内容
    6. BP ニューラル ネットワークのサンプル依存問題: ネットワーク モデルの近似および汎化能力は学習サンプルの典型性と密接に関係しており、問題から典型的なサンプルインスタンスを選択してトレーニングセットを形成するのは非常に難しい問題です。
    従来の BP アルゴリズムの改善には、主に 2 つのカテゴリがあります。
    ヒューリスティック アルゴリズム: 追加の運動量法や適応アルゴリズムなどです。
    数値最適化手法: 共役勾配法、ニュートン反復法、レーベンバーグ・マルカート法など

おすすめ

転載: blog.csdn.net/Luohuasheng_/article/details/128675915
おすすめ