一、什麼是感知機?
其中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...