用感知器實現「與」運算

2021-10-04 05:39:44 字數 1960 閱讀 8148

用感知器實現邏輯運算 - and (「與」)

# -*- coding: utf-8 -*-

"""created on sat mar 21 12:01:05 2020

@author: 隕星落雲

"""import pandas as pd

# 設定權重與偏置項

weight1 =

1weight2 =

1bias =

-1.5

# 輸入與輸出

test_inputs =[(

0,0)

,(0,

1),(

1,0)

,(1,

1)]correct_outputs =

[false

,false

,false

,true

]outputs =

# 生成並檢查輸出結果

for test_input,correct_output in

zip(test_inputs,correct_outputs)

: linear_combination = weight1*test_input[0]

+weight2*test_input[1]

+bias

output =

int(linear_combination >=0)

is_correct_string =

'yes'

if output == correct_output else

'no'

[test_input[0]

,test_input[1]

,linear_combination,output,is_correct_string]

)# 列印結果

num_wrong =

len(

[output[4]

for output in outputs if output[4]

=='no'])

output_frame = pd.dataframe(outputs,columns=

['input1'

,'input2'

,'linear combination'

,'activation output'

,'is correct'])

ifnot num_wrong:

print

('nice! you got it all correct.\n'

)else

:print

('you got {} wrong. keep tring!\n'

.format

(num_wrong)

)print

(output_frame.to_string(index=

false

))

nice! you got it all correct.

input1 input2 linear combination activation output is correct

00-1.00 yes

01-0.10 yes

10-0.10 yes

110.8

1 yes

用感知器實現邏輯運算 - or (「或」)

or 感知器和 and 感知器很相似。在下圖中,or 感知器和 and 感知器的直線一樣,只是直線往下移動了。你可以如何處理權重和/或偏差以實現這一效果?請使用 and 感知器來建立乙個 or 感知器。

單層感知器實現邏輯與運算

感知器是乙個用來做模式識別最簡單的模型,由於僅有乙個神經元,所以只能用來處理線性可分的兩類模式識別。u i 1i nwi xi b u sum w x b u i 1 i n wi x i b y s gn u y sgn u y sgn u sgn階躍函式,當u 0時,y 1 當u 0時,y 0。...

感知器的scala實現

其實感知器學習演算法,就是利用第一節介紹的單層感知器。首先利用給的正確資料,計算得到輸出值,將輸出值和正確的值相比,由此來調整每乙個輸出端上的權值。公式便是用來調整權值,首先 是乙個 學習引數 一般我將它設定成小於1的正數。t便是訓練資料中的正確結果,便是第i個輸入端的輸入值,便是第i個輸入端上面的...

感知器的scala實現

其實感知器學習演算法,就是利用第一節介紹的單層感知器。首先利用給的正確資料,計算得到輸出值,將輸出值和正確的值相比,由此來調整每乙個輸出端上的權值。公式便是用來調整權值,首先 是乙個 學習引數 一般我將它設定成小於1的正數。t便是訓練資料中的正確結果,便是第i個輸入端的輸入值,便是第i個輸入端上面的...