?? perceptron_example1.m
字號:
%--------------------------------------------------------------------------
% 采用單一感知器神經元解決一個簡單的分類問題,將四個輸入矢量分為兩類,其中
% 兩個矢量對應的目標值為1,另兩個矢量對應的目標值為0
%
% initp—對感知器神經網絡初始化,初始化權值和閾值
% simup—對感知器神經元仿真
% trainp—利用感知器學習規則對感知器神經元訓練
%--------------------------------------------------------------------------
clf reset; % 從當前圖形窗口刪除所有圖形對象,除"Position, Units, PaperPosition, and PaperUnits"
%等屬性外。恢復圖形窗口其他屬性的默認設置
figure(gcf); % gcf--獲得當前圖形窗口的句柄
% set(gcf,300,300);
% set(gcf, 'PaperPosition', [2 1 4 2]);
echo on; % 允許在屏幕上顯示批處理命令行
clc;
p=[-0.5 -0.5 0.3 0; -0.5 0.5 -0.5 1]; % p為輸入矢量
t=[1 1 0 0]; % t為目標矢量
plotpv(p,t); % 畫出感知器的輸入/目標矢量
pause;
clc;
[w,b]=initp(p,t); % 定義感知器神經元,w是權值矩陣,b是閾值矩陣\
% 試分析:w和b的大小?
pause;
% w是1*2的矩陣,b是1*1的變量
%
%
% 試分析:為什么w不是2*1的矩陣
pause;
% 與輸入矢量p的數值排列有關
pause;
echo off; % 禁止在屏幕上顯示批處理命令行
clc
k=pickic;
if k==2
w=[-0.8161 0.3078];
b=[-0.1680];
end
echo on;
clc;
plotpc(w,b); % 在感知器矢量圖圖上,畫出與初始權值和閾值對應的分類線
pause;
clc;
[w,b,epochs,errors]=trainp(w,b,p,t,-1); % 訓練感知器神經元
pause;
clc;
ploterr(errors); % 畫出誤差曲線
pause;
clc;
plotpv(p,t);
p=[0.5; 0]; % 利用訓練完的感知器神經元進行分類
hold on;
plot(p(1),p(2),'*');
hold off;
% 試分析:對應于輸入[0.5; 0]的輸出值?
pause;
clc;
a=simup(p,w,b)
echo off;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -