感知機章節課後習題 證明感知機演算法收斂性

2021-06-15 07:26:13 字數 2475 閱讀 5078

看了下統計學習方法p36 的3個習題,試著做了下,下面給出自己的解答:  有不對的地方歡迎提出:)

q 2.1  感知機是線性模型,因此不能表示複雜的函式。請解釋感知機為什麼不能學習異或xor函式?

下面這個**釋的很清楚:

訓練集線性不可分,當然不能用感知機表示出xor函式。

q 2.2 模仿書中2.1例,構建從訓練資料集合求解感知機的例子

a 2.2 可以構建乙個3維的特徵空間,取在i卦限的任意兩點為正例,取其在第vii卦限一點為負例,比如可以這麼取:

正例:(1,1,1) (2,5,7)

負例: (-2,-1,-1)

使用感知機原始形式求解:

import os

import sys

import random

#this algorithm learns a perceptron model from trainingdataset

#note: the trainset is linearly seperable, and different choicesof initial parameters or false-classified points

#may lead to different perceptron model, which is reasonableunder this framework.

#date:2013-7-4, by zhl

if __name__ == "__main__":

trainset =[(1,1,1,1),(2,5,7,1),(-2,-1,-1,-1)]

#initialize

w1 = w2 = w3 = b = 0

id = 0

# we set learning rate = 1

while true:

id += 1

flag = false

for choice in range(3):

if trainset[choice][3] * (w1 * trainset[choice][0] + w2 * trainset[choice][1] + w3 * trainset[choice][2] + b)<= 0:

flag = true

break

if flag == false:

break

#randomlyselect a point from trainset

choice = random.randint(0,2)

#judge whether it's false-classified

if trainset[choice][3] * (w1 *trainset[choice][0] + w2 * trainset[choice][1] + w3 * trainset[choice][2] + b) <= 0:

w1 = w1 + trainset[choice][3] * trainset[choice][0]

w2 = w2 + trainset[choice][3] * trainset[choice][1]

w3 = w3 + trainset[choice][3] * trainset[choice][2]

b = b + trainset[choice][3]

#print out current values

print 'round ',id,':','flase-classified point:',choice + 1,',w1:',w1,',w2:',w2,',w3:',w3,',b:',b,'\n'

print 'theperceptron model learned is sign(%d x1 + %d x2 + %d x3 + %d)\n' % (w1,w2,w3,b)

round  1 : flase-classified point: 3 ,w1: 2 ,w2: 1 ,w3: 1 ,b: -1 

theperceptron model learned is sign(2 x1 + 1 x2 + 1 x3 + -1)

q 2.3 一道證明題,暫略~ 週末有空了做下~

-----------------------------------proof of divergence theorem 2.1----------------------------------

好長時間不寫字了,這筆跡真是不忍直視啊....

感知機模型

這裡介紹機器學習中最簡單的一種分類方法 感知機模型。感知機模型 其中sign是符號函式,w和b是引數,x是輸入特徵向量,f x 返回決策結果。分離超平面s 對於二類線性可分問題,分離超平面將兩類樣本分在s兩側。空間中一點x0到s的距離 損失函式 定義損失函式的意義是所有誤分類的點到分離超平面的距離之...

多層感知機

1 單輸出多層感知機 單輸出多層感知機 圖中各變數滿足公式 假如現在有乙個樣本 x 1,x2 t 用該樣本訓練網路時,網路優化的目標為lossfun最小。lossfun是乙個關於變數w和v多元函式。網路的訓練又變成多元函式求極值的問題。求v1的梯度 同理可得v i的梯度 求w11的梯度 同理,可得w...

感知機演算法

1 目標 感知機演算法針對二分類問題 f x x 1 實質在於對於線性可分的資料集 x i0,x i1,x in y i xi y i i 0,1 2,m 2 找到乙個超平面 x b 0 將資料分成兩部分,使得位於位於超平面上半部分的資料點屬於 1 類,處於超平面下半空間的資料點屬於 1 類。2 優...