用感知器實現邏輯運算 - 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個輸入端上面的...