首页 > 其他 > 详细

Chapter2_感知机

时间:2020-02-05 12:08:38      阅读:59      评论:0      收藏:0      [点我收藏+]

感知机

感知机接收多个输入信号,输出一个信号。感知机的信号只有“1/0”两种取值。
神经元计算传送过来的信号的总和,当总和超过 阈值时,“神经元被激活”。阈值用\(\theta\)表示
\[ y=\begin{cases} 0,& \text { $(\omega_1x_1+\omega_2x_2\leq \theta)$ }\\ 1,& \text { $(\omega_1x_1+\omega_2x_2>\theta)$} \end{cases} \]

感知机的实现

#实现一个AND门
def AND(x1,x2):
w1,w2,theta = 0.5,0.5,0.7
tmp = w1*x1+w2*x2
if tmp<=theta:
return 0
elif tmp>theta:
return 1

导入权重和偏置

\[ y=\begin{cases} 0,& \text{$b+\omega_1x_1+\omega_2x_2 \leq 0$}\1,& \text{$b+\omega_1x_1+\omega_2x_2>0$} \end{cases} \]
\(b=-\theta\) 称为偏置,\(\omega_1\)\(\omega_2\)称为权重

import numpy as np
x = np.array([0,1]) #输入
w = np.array([0.5,0.5]) #权重
b = -0.7 #偏置
w*x
np.sum(w*x)
np.sum(w*x)+b

使用权重和偏置的实现

def AND(x1,x2):
x = np.array([x1,x2])
w = np.array([0.5,0.5])
b = -0.7
tmp = np.sum(2*x)+b
if tmp<=0:
return 0
else:
return 1

注:\(\omega_1,\omega_2\)是控制输入信号重要性的参数,偏置\(b\)为调整神经元被激活的容易程度(输出信号为1的程度)的参数

感知机的局限性

  1. 单层感知机无法分离非线性空间
#异或门的实现
def XOR(x1,x2):
s1 = NAND(x1,x2)
s2 = OR(x1,x2)
y = AND(s1,s2)
return y

多层感知机

  • 叠加了多层的感知机
  • 可以表示非线性空间

Chapter2_感知机

原文:https://www.cnblogs.com/suqinghang/p/12262981.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!