欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實(shí)現(xiàn)感知器

 更新時(shí)間:2021年10月11日 16:43:59   作者:momaojia  
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)感知器的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

上篇博客轉(zhuǎn)載了關(guān)于感知器的用法,遂這篇做個(gè)大概總結(jié),并實(shí)現(xiàn)一個(gè)簡(jiǎn)單的感知器,也為了加深自己的理解。

感知器是最簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò),只有一層。感知器是模擬生物神經(jīng)元行為的機(jī)器。感知器的模型如下:

給定一個(gè)n維的輸入 ,其中w和b是參數(shù),w為權(quán)重,每一個(gè)輸入對(duì)應(yīng)一個(gè)權(quán)值,b為偏置項(xiàng),需要從數(shù)據(jù)中訓(xùn)練得到。

激活函數(shù) 感知器的激活函數(shù)可以有很多選擇,比如我們可以選擇下面這個(gè)階躍函數(shù)f來(lái)作為激活函數(shù):

輸出為:

事實(shí)上感知器可以擬合任何線(xiàn)性函數(shù),任何線(xiàn)性分類(lèi)或線(xiàn)性回歸的問(wèn)題都可以用感知器來(lái)解決。但是感知器不能實(shí)現(xiàn)異或運(yùn)算,當(dāng)然所有的線(xiàn)性分類(lèi)器都不可能實(shí)現(xiàn)異或操作。

所謂異或操作:

二維分布圖為:

對(duì)于上圖,我們找不到一條直線(xiàn)可以將0,1類(lèi)分開(kāi)。對(duì)于and操作,感知器可以實(shí)現(xiàn),我們可以找到一條直線(xiàn)把其分為兩部分。。

對(duì)于and操作:

對(duì)應(yīng)的二維分布圖為:

感知器的訓(xùn)練 

首先將權(quán)重w和 偏置b隨機(jī)初始化為一個(gè)很小的數(shù),然后在訓(xùn)練中不斷更新w和b的值。

1.將權(quán)重初始化為 0 或一個(gè)很小的隨機(jī)數(shù)
2.對(duì)于每個(gè)訓(xùn)練樣本 x(i) 執(zhí)行下列步驟: 

計(jì)算輸出值 y^.

更新權(quán)重

其中

下面用感知器實(shí)現(xiàn)and操作,具體代碼如下:

# -*- coding: utf-8 -*- 
# python 3.4 
import numpy as np 
from random import choice 
from sklearn import cross_validation 
from sklearn.linear_model import LogisticRegression 
''''' 
1.將權(quán)重初始化為 0 或一個(gè)很小的隨機(jī)數(shù) 
2.對(duì)于每個(gè)訓(xùn)練樣本 x(i) 執(zhí)行下列步驟: 
 計(jì)算輸出值 y^. 
 更新權(quán)重 
''' 
def load_data(): 
 input_data=[[1,1], [0,0], [1,0], [0,1]] 
 labels=[1,0,0,0] 
 return input_data,labels 
 
  
def train_pre(input_data,y,iteration,rate): 
 #=========================== 
 ''''' 
 參數(shù): 
 input_data:輸入數(shù)據(jù) 
 y:標(biāo)簽列表 
 iteration:訓(xùn)練輪數(shù) 
 rate:學(xué)習(xí)率 
  
 ''' 
 #============================ 
 unit_step = lambda x: 0 if x < 0 else 1 
 w=np.random.rand(len(input_data[0]))#隨機(jī)生成[0,1)之間,作為初始化w 
 bias=0.0#偏置 
  
  
 for i in range(iteration): 
  samples= zip(input_data,y) 
  for (input_i,label) in samples:#對(duì)每一組樣本 
   #計(jì)算f(w*xi+b),此時(shí)x有兩個(gè) 
   result=input_i*w+bias 
   result=float(sum(result)) 
   y_pred=float(unit_step(result))#計(jì)算輸出值 y^ 
   w=w+rate*(label-y_pred)*np.array(input_i)#更新權(quán)重 
 
   bias=rate*(label-y_pred)#更新bias 
 return w,bias   
 
  
def predict(input_i,w,b): 
 unit_step = lambda x: 0 if x < 0 else 1#定義激活函數(shù) 
 result=result=result=input_i*w+b 
 result=sum(result) 
 y_pred=float(unit_step(result)) 
 print(y_pred) 
  
if __name__=='__main__': 
 input_data,y=load_data() 
 w,b=train_pre(input_data,y,20,0.01) 
 predict([1,1],w,b) 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python Paramiko創(chuàng)建文件目錄并上傳文件詳解

    Python Paramiko創(chuàng)建文件目錄并上傳文件詳解

    Paramiko是一個(gè)用于進(jìn)行SSH2會(huì)話(huà)的Python庫(kù),它支持加密、認(rèn)證和文件傳輸?shù)裙δ?本文旨在詳細(xì)指導(dǎo)新手朋友如何使用Python的Paramiko庫(kù)來(lái)創(chuàng)建遠(yuǎn)程文件目錄并上傳文件,希望對(duì)大家有所幫助
    2024-10-10
  • 利用Python編寫(xiě)一個(gè)鬧鐘,治好你的拖延癥

    利用Python編寫(xiě)一個(gè)鬧鐘,治好你的拖延癥

    起床真是令人困擾的事情,有的人根本不用定鬧鐘,但有的人提前半個(gè)小時(shí)鬧鐘都叫不醒。本文將分享利用Python編寫(xiě)的鬧鐘腳本,希望能治好你的拖延癥
    2022-02-02
  • 基于python二叉樹(shù)的構(gòu)造和打印例子

    基于python二叉樹(shù)的構(gòu)造和打印例子

    今天小編就為大家分享一篇基于python二叉樹(shù)的構(gòu)造和打印例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • python-opencv中的cv2.inRange函數(shù)用法說(shuō)明

    python-opencv中的cv2.inRange函數(shù)用法說(shuō)明

    這篇文章主要介紹了python-opencv中的cv2.inRange函數(shù)用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • python?format格式化和數(shù)字格式化

    python?format格式化和數(shù)字格式化

    這篇文章主要介紹了python?format格式化和數(shù)字格式化,格式化字符串的函數(shù)?str.format(),它增強(qiáng)了字符串格式化的功能,基本語(yǔ)法是通過(guò){}?和?:?來(lái)代替以前的?%?,下面內(nèi)容介紹,需要的朋友可以參考一下
    2022-02-02
  • Python簡(jiǎn)單實(shí)現(xiàn)enum功能的方法

    Python簡(jiǎn)單實(shí)現(xiàn)enum功能的方法

    這篇文章主要介紹了Python簡(jiǎn)單實(shí)現(xiàn)enum功能的方法,簡(jiǎn)單分析了Python實(shí)現(xiàn)enum功能的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04
  • Python格式化輸出--%s,%d,%f的代碼解析

    Python格式化輸出--%s,%d,%f的代碼解析

    這篇文章主要介紹了Python格式化輸出--%s,%d,%f的代碼詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 對(duì)Python函數(shù)設(shè)計(jì)規(guī)范詳解

    對(duì)Python函數(shù)設(shè)計(jì)規(guī)范詳解

    今天小編就為大家分享一篇對(duì)Python函數(shù)設(shè)計(jì)規(guī)范詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • 詳解Python命令行解析工具Argparse

    詳解Python命令行解析工具Argparse

    這篇文章主要為大家詳細(xì)介紹了Python命令行解析工具Argparse的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-04-04
  • 詳解Python中with語(yǔ)句的用法

    詳解Python中with語(yǔ)句的用法

    這篇文章主要介紹了Python中with語(yǔ)句的用法,with語(yǔ)句的使用是Python學(xué)習(xí)過(guò)程當(dāng)中的基礎(chǔ)知識(shí),本文來(lái)自于IBM官方技術(shù)文檔,需要的朋友可以參考下
    2015-04-04

最新評(píng)論