城北徐公之機器學習 感知機模型

2022-05-07 03:15:09 字數 1809 閱讀 3175

一、什麼是感知機?

其中x1,x2為輸入,b為偏置,啟用函式被稱為符號函式(sign function),我們將啟用函式的輸出記為

,其函式表示式及影象如下所示。

二、感知機可以用來幹什麼?

感知機可以用來處理線性可分類問題,線性可不可分簡單來說,就是可不可以用一條直線把圖上兩類點劃分開。如第二張圖所示,無論怎麼畫直線都無法將兩類點分割槽開。

線性可分

線性不可分

對於線性不可分問題一般用多層神經網路,svm來處理。

三、感知機如何實現線性分類?

我們舉乙個最最最簡單的分類問題,邏輯運算(這裡我們用「與」運算)並且結合matlab**來說明感知機如何實現線性分類。

x1x2y0

0001

0100

111也就是說,我們要在平面上找到這樣一條直線,把點(1,1)與其它點劃分開,而這條直線的方程為

(decision boundary),如果把符號啟用函式向右平移1各單位,那麼這條直線方程則為

轉化為最優化問題,那如何找這麼乙個函式來描述優化程度?因為啟用函式不平滑,無法用誤差的形式來描述。

這裡我們提出一種點到直線距離的描述方法j=

,對誤分類點而言,j>0;

我們對資料集中的訓練點逐一進行判別,訓練權重,直至無誤分類點。

權重訓練方法採用的是梯度下降法。

matlab**:

close all;

clear;

w=[1 0.5];b=0;%隨機設定初始權值與閾值

%p,t為給定的訓練樣本,p為輸入,t為對應的輸出

%and計算網路迭代訓練五次

p=[0 0;0 1;1 0;1 1];

t=[-1;-1;-1;1];

p1=[p;p;p;p;p];

t1=[t;t;t;t;t];

%訓練過程傳遞函式為階躍函式

for i=1:size(p1,1)

n=0.5;%學習率

a=unitstep(p1(i,1:2)*w'+b);

if t1(i)*(p1(i,1:2)*w'+b)<0

w=w+n*p1(i,1:2)*t1(i);

b=b+n*t1(i);   

figure(1)

plot(i,w(1),'*');

hold on;

figure(2)

plot(i,w(2),'^');

hold on;

figure(3)

x1=0:0.1:1;

x2=(-w(1)/w(2))*x1-b/w(2);

plot(x1,x2)

plot([0 0 1 1],[0 1 0 1],'^');

axis([0 1 0 1])

hold on;

end

end%網路輸出

a=unitstep(p(1:4,1:2)*w'+b)

機器學習 感知機模型

感知機模型,主要的思想是用乙個函式,通過不斷的調節權值和偏置的數值,將乙個線性可分的集合分類 感知機演算法 fx sign w x b sign 1 x 0,1 x 0 對於最優的w,b的值,採用了損失函式 l w,b sum xi 屬於 m yi w xi b m 為錯誤分類點的集合 感知機學習演...

機器學習 感知機模型

目錄感知機 perceptron 是二類分類的線性分類模型,其輸入為例項的特徵向量,輸出為例項的類別,取 1 和 1 二值.感知機對應於輸入空間 特徵空間 中將例項劃分為正負兩類的分離超平面,屬於判別模型.感知機學習旨在求出將訓練資料進行線性劃分的分離超平面,為此匯入基於誤分類的損失函式,利用梯度下...

機器學習 手寫感知機模型

資料集來自mnist資料集,主要利用numpy裡的matrix矩陣計算。演算法的實現主要在於對引數w和b的求解。演算法的推導過程參考李航 統計學習方法 推導最優化函式然後更新引數的過程。import numpy as np import pandas as pd import time defdat...