Python-感知機以及實現感知機

感知機定義

如果有一個算法,具有1個或者多個入參,但是返回值要么是0,要么是1,那么這個算法就叫做感知機,也就是說,感知機是個算法

感知機有什么用

感知機是用來表示可能性的大小的,我們可以認為假設如果返回1,那么事情下一步的方向偏向A更大一些,如果返回0,那么事情下一步的方向偏向B更大一些,現在說這些還太早,總之我們知道感知機是用來表述可能性大小的東西就可以了

亂寫一個感知機

根據定義,下面的算法是我隨便寫的,雖然沒任何用,但是它確實是一個感知機算法,很明顯,感知機算法有無窮無盡個
java語言:

public static void main(String[] args) {int result = 感知機(7, 8);System.out.println(result);
}public int 感知機(int a, int b) {if (a + b > 5) {return 1;}return 0;
}

python語言:

def perceptron(a,b): # 定義感知機算法if(a + b>5):return 1else: return 0
a,b = 7,8
result = perceptron(a,b)
print(result)

閾值與偏置:上述示例中的[5]叫做閾值,后文中我們會叫它偏置

閾值:
很明顯,上述示例中的5,是我根據我腦海中的需求,隨便寫出來的,其他人的想法肯定是和我不太一樣的,所以其他人也有可能寫成a+b>999,那么我們就說閾值是999,如果滿足這個閾值,就返回1,不滿足這個閾值,就返回0
偏置:
在感知機的概念中,我們通常把閾值叫做偏置,既然名詞改變了,那么我們的算法也需要改變一下,變成下面這樣

if(-5 + (a + b)>0):return 1
else: return 0

這個時候,我們才可以正式的說:偏置為-5

權重

這是一個非常重要的概念,在上述算法中,我沒有體現出權重,也就是說,上面的代碼,沒有權重,或者說,上述的代碼中,權重是1

那么對于感知機來說,什么是權重?沒有權重會怎么樣
1.什么是權重:每個入參都需要乘以一個值,至于值是多少,我們先不管,那么乘以的這個值,就叫做權重,拿上述代碼來說,其實是乘以了1,就像下面這樣:

# a乘以1加上b乘以1
if(-5 + (a*1 + b*1)>0):return 1
else: return 0

2.加上權重會怎么樣?當然是會嚴重影響結果了例如,我們讓參數a的權重是0.5,參數b的權重是0.1,變成下面這樣

if(-5 + (a*0.5 + b*0.1)>0):return 1
else: return 0
# 此時如果a=7,b=8,那么該感知機算法會返回0,之前是返回1的,加了這個權重,變成0

3.權重到底影響什么?權重影響的是參數,如果我們認為參數是現實中的某種決策的外在條件,那么權重會影響最終結果,例如,今天下雨天氣不好,我要出去玩HR,那么請問天氣不好在家的權重大,還是出去玩HR的權重大???如果天氣不好在家的權重非常大,只要滴幾個小雨點或者陰天,那么我們就絕對不會出門,如果出去玩HR的權重大,那么無論天氣多么惡劣,我們也會出去玩HR,對不對??所以說權重會影響決策,例如下面你的代碼,無論你將b設置成什么值,都不會影響結果,因為它的權重非常小

if(-5 + (a*0.5 + b*0)>0): # 我們將b的權重設置成0,相當于完全忽略b這個條件return 1
else: return 0

感知機的初步公式

我們上面介紹了入參,權重,偏置,所以得到了一個感知機公式,如下

結果0 = 偏置 + (入參1 * 入參1權重 + 入參2 * 入參2權重) <=0
結果1 = 偏置 + (入參1 * 入參1權重 + 入參2 * 入參2權重) > 0

階躍函數與激活函數

階躍函數是當結果超過了某個閾值,就輸出另一個參數,在本文的例子中,就是大于0小于0這個過程,下面代碼中的step函數,就是階躍函數,對上文的代碼進行拆分,我們拆分成兩步,如下
步驟1:

結果X = 偏置 + (入參1 * 入參1權重 + 入參2 * 入參2權重)

步驟2:

def step(a): # 定義一個階躍函數if(a>0):return 1else: return 0
結果R = step(X) # 將步驟1的結果傳遞到階躍函數中,結果R要么是0,要么是1

由于階躍函數使用起來不夠平滑,平滑指的是跳躍太大了,有點像高低電平,給一個閾值,以這個閾值為門檻,這有很多缺點,我們之后再說,總之你要記住“不夠平滑”,我們想要平滑,所以又提出了階躍函數的升級版本,也叫激活函數(注意,激活是個名詞,不是動詞)

激活函數

這里不寫了,單獨拎出一片文章吧,今天該下班回家打LOL了

感知機的缺點

感知機有一個缺點,就是這個權重的設置,在本文的代碼中,0.5,0.1,0什么的,這都是我隨便設置的,但是現實生活中,如果想讓一個算法具有智能,那么這個權重是通過大量數據總結出來的,如果想要人工總結,那么得需要大量的時間和人工成本,是否有什么辦法,能夠讓計算機自己定義這個權重呢??

當然是有的,我們常常聽到的機器學習,就是通過大量數據+一個叫做神經網絡的技術,把權重算出來,當然,如果你覺得對這個權重不滿意,也可以人工干擾,或者說我本身就知道應該設置權重多少,沒必要進行機器學習,直接寫死權重值也是可以的,不過這是后面文章的內容了

本文就到這里,介紹了一些感知機的概念

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83403.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83403.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83403.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

STM32 ADC+DMA+TIM觸發采樣實戰:避坑指南與源碼解析

知識點1【TRGO的介紹】 1、TRGO的概述 TRGO&#xff1a;Trigger Output&#xff08;觸發輸出&#xff09;&#xff0c;是定時器的一種功能。 它可以作為外設的啟動信號&#xff0c;比如ADC轉換&#xff0c;DAC輸出&#xff0c;DMA請求等。 對于ADC來說&#xff0c;可以通過…

Qwen3技術報告解讀

https://github.com/QwenLM/Qwen3/blob/main/Qwen3_Technical_Report.pdf 節前放模型&#xff0c;大晚上的發技術報告。通義&#xff0c;真有你的~ 文章目錄 預訓練后訓練Long-CoT Cold StartReasoning RLThinking Mode FusionGeneral RLStrong-to-Weak Distillation 模型結構…

【網絡編程】十、詳解 UDP 協議

文章目錄 Ⅰ. 傳輸層概述1、進程之間的通信2、再談端口號端口號的引出五元組標識一個通信端口號范圍劃分常見的知名端口號查看知名端口號協議號 VS 端口號 3、兩個問題一個端口號是否可以被多個進程綁定&#xff1f;一個進程是否可以綁定多個端口號&#xff1f; 4、部分常見指令…

實現RTSP低延遲播放器,挑戰與解決方案

隨著低延遲直播需求的快速增長&#xff0c;RTSP&#xff08;Real-Time Streaming Protocol&#xff09;播放器逐漸成為實時視頻流傳輸中的核心技術之一。與WebRTC&#xff08;Web Real-Time Communication&#xff09;相比&#xff0c;RTSP在實時性和網絡延遲方面面臨諸多挑戰&…

【springcloud學習(dalston.sr1)】Eureka單個服務端的搭建(含源代碼)(三)

該系列項目整體介紹及源代碼請參照前面寫的一篇文章【springcloud學習(dalston.sr1)】項目整體介紹&#xff08;含源代碼&#xff09;&#xff08;一&#xff09; springcloud學習&#xff08;dalston.sr1&#xff09;系統文章匯總如下&#xff1a; 【springcloud學習(dalston…

GPU與NPU異構計算任務劃分算法研究:基于強化學習的Transformer負載均衡實踐

點擊 “AladdinEdu&#xff0c;同學們用得起的【H卡】算力平臺”&#xff0c;H卡級別算力&#xff0c;按量計費&#xff0c;靈活彈性&#xff0c;頂級配置&#xff0c;學生專屬優惠。 引言 在邊緣計算與AI推理場景中&#xff0c;GPU-NPU異構計算架構已成為突破算力瓶頸的關鍵技…

探索C語言中的二叉樹:原理、實現與應用

一、引言 二叉樹作為一種重要的數據結構&#xff0c;在計算機科學領域有著廣泛的應用&#xff0c;無論是在操作系統的文件系統管理&#xff0c;還是在數據庫的索引構建中&#xff0c;都能看到它的身影。在C語言中&#xff0c;我們可以利用指針靈活地構建和操作二叉樹。接下來&…

使用libUSB-win32的簡單讀寫例程參考

USB上位機程序的編寫&#xff0c;函數的調用過程. 調用 void usb_init(void); 進行初始化 調用usb_find_busses、usb_find_devices和usb_get_busses這三個函數&#xff0c;獲得已找到的USB總線序列&#xff1b;然后通過鏈表遍歷所有的USB設備&#xff0c;根據已知的要打開USB設…

vue注冊用戶使用v-model實現數據雙向綁定

定義數據模型 Login.vue //定義數據模型 const registerData ref({username: ,password: ,confirmPassword: })使用 v-model 實現數據模型的key與注冊表單中的元素之間的雙向綁定 <!-- 注冊表單 --><el-form ref"form" size"large" autocompl…

【Arthas實戰】常見使用場景與命令分享

簡介: Arthas是一款Java診斷工具&#xff0c;適用于多種場景&#xff0c;如接口響應變慢、CPU占用過高、熱更新需求等。其核心命令包括實時監控面板&#xff08;dashboard&#xff09;、線程狀態查看&#xff08;thread&#xff09;、方法調用鏈路追蹤&#xff08;trace&#x…

Jenkins 最佳實踐

1. 在Jenkins中避免調度過載 過載Jenkins以同時運行多個作業可能導致資源競爭、構建速度變慢和系統性能問題。分配作業啟動時間可以防止瓶頸&#xff0c;并確保更順暢的執行。如何實現&#xff1f; 在Cron表達式中使用H&#xff1a;引入抖動&#xff08;jitter&#xff09;&a…

pytest框架 - 第二集 allure報告

一、斷言assert 二、Pytest 結合 allure-pytest 插件生成美觀的 Allure 報告 (1) 安裝 allure 環境 安裝 allure-pytest 插件&#xff1a;pip install allure-pytest在 github 下載 allure 報告文件 地址&#xff1a;Releases allure-framework/allure2 GitHub下載&#x…

人工智能時代:解鎖職業新身份,從“認證師”到“工程師”的進階之路

在人工智能技術浪潮席卷全球的今天,技術的飛速迭代正在重塑職業版圖。從算法優化到倫理決策,從系統測試到應用開發,AI技術不再只是程序員的專屬領域,而是成為各行各業從業者必須掌握的“生存技能”。當企業爭相布局AI賽道,個人如何在這場變革中搶占先機?答案或許藏在兩個…

【帶文檔】網上點餐系統 springboot + vue 全棧項目實戰(源碼+數據庫+萬字說明文檔)

&#x1f4cc; 一、項目概括 本系統共包含三個角色&#xff1a; 管理員&#xff1a;系統運營管理者 用戶&#xff1a;點餐消費用戶 美食店&#xff1a;上傳菜品與處理訂單的店鋪賬號 通過對這三類角色的權限與業務分工設計&#xff0c;系統實現了點餐流程的全鏈路數字化&a…

window nvidia-smi命令 Failed to initialize NVML: Unknown Error

如果驅動目錄下的可以執行&#xff0c;那可能版本原因 "C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi"復制"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe"替換 C:\Windows\System32\nvidia-smi.exe 或者 把C:\Windows\System3…

接觸感知 鉗位電路分析

以下是NG板接觸感知電路的原理圖。兩極分別為P3和P4S&#xff0c;電壓值P4S < P3。 電路結構分兩部分&#xff0c;第一部分對輸入電壓進行分壓鉗位。后級電路使用LM113比較器芯片進行電壓比較&#xff0c;輸出ST接觸感知信號。 鉗位電路輸出特性分析 輸出電壓變化趨勢&a…

70、微服務保姆教程(十三)Docker容器詳細講義

一、關于Docker 1.1為什么要用docker? 隨著開發的項目越來越復雜,軟件越來越多,服務器越來越多,我們在開發和部署的時候會遇到很多問題,比如: 1.不同的應用程序可能會有不同的應用環境,比如Java開發的網站和php開發的網站依賴的軟件就不一樣,如果把他們依賴的軟件都…

Python 中的 typing.ClassVar 詳解

一、ClassVar 的定義和基本用途 ClassVar 是 typing 模塊中提供的一種特殊類型&#xff0c;用于在類型注解中標記類變量&#xff08;靜態變量&#xff09;。根據官方文檔&#xff0c;使用 ClassVar[…] 注釋的屬性表示該屬性只在類層面使用&#xff0c;不應在實例上賦值 例如&…

架構與UML4+1視圖

簡單對比分析 架構41視圖 架構41視圖是由Philippe Kruchten提出的&#xff0c;用于描述軟件系統的架構。它包括以下五個視圖&#xff1a; 邏輯視圖&#xff1a;描述系統的功能需求&#xff0c;展示系統的靜態結構&#xff0c;通常使用類圖、對象圖等。開發視圖&#xff1a;…

Redis 八股

目錄 數據類型 字符串&#xff1a; List&#xff1a; HASH&#xff1a; Set&#xff1a; Zset&#xff1a; BitMap&#xff1a;&#xff08;這個及以下是后來新增的數據結構&#xff09; HyperLogLog&#xff1a; GEO&#xff1a; Stream&#xff1a; 主要數據結構 …