深度学习入门ch2b numpy型感知器2(jupyter note)

深度学习入门numpy型感知器2(note)

In [3]:

#权重相当于电流里所说的电阻。电阻是决定电流流动难度的参数,
#电阻越低,通过的电流就越大。而感知机的权重则是值越大,通过
#的信号就越大。不管是电阻还是权重,在控制信号流动难度(或者流
#动容易度)这一点上的作用都是一样的。
#输入信号被送往神经元时,会被分别乘以固定的权重(w1x1、w2x2)。神经元会计算传送过来的信号的总和,只有当这个总和超过
#了某个界限值时,才会输出1。这也称为“神经元被激活”。
#偏置和权重w1、w2 的作用是不
#一样的。具体地说,w1 和w2 是控制输入信号的重要性的参数,而偏置是调
#整神经元被激活的容易程度(输出信号为1 的程度)的参数。比如,若b 为
#−0.1,则只要输入信号的加权总和超过0.1,神经元就会被激活。但是如果b
#为−20.0,则输入信号的加权总和必须超过20.0,神经元才会被激活。
def AND(x1,x2):   #implement using python basic
    w1,w2,theta = 0.5,0.5,0.7  # theta represents thresholds
    tmp = x1*w1 + x2*w2
    if tmp <= theta:
        return 0
    elif tmp > theta:
        return 1

Output:

In [4]:

print(AND(0,0))
print(AND(0,1))
print(AND(1,0))
print(AND(1,1))

Output:

0
0
0
1

In [13]:

#implement using numpy
import numpy as np
w = np.array([0.4,0.6])
b = -0.6
for x1 in [0,1]:
    for x2 in [0,1]:
        x = np.array([x1,x2])
        print(x1,x2)
        print(w*x)
        print(np.sum(w*x))
        print(np.sum(w*x)+b)  # if > 0 means true, otherwise false
        print(10*'-')

Output:

0 0
[0. 0.]
0.0
-0.6
----------
0 1
[0.  0.6]
0.6
0.0
----------
1 0
[0.4 0. ]
0.4
-0.19999999999999996
----------
1 1
[0.4 0.6]
1.0
0.4
----------

In [ ]:

#机器学习的课题就是将这个决定参数值的工作交由计算机自动进行。
#学习是确定合适的参数的过程,而人要做的是思考感知机的构造(模型),并把训练数据交给计算机。
#所以,本章节严格地说,并没有利用深度学习来实现and or。那就继续吧。
#点评:或许作者认为AND OR用深度学习 属于杀鸡用牛刀,后面的非线性模型才舍得用DL。

Output:

to be continued
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值