深度学习入门 基于python的理论和实践读书笔记(一)

    书的pdf和源码需要的可以留言

    该书的前两章主要是简介和python的安装和使用,这里我就从第二章开始写下自己的读书笔记。

    第二章感知机 

1 概念

多个输入,一个输出

输入叫做输入信号

输出叫做输出信号,输出信号只有两种状态,就是被激活(传递信号),不被激活(不传递信号)

每个输入都要它自己的权重,输入信号乘以自己的权重相加就是输出信号,如果输出信号到达了某个界定值(称为阈值,常用θ表示

   

式子如下

2 逻辑门

这几类门在基础过程都学过,简单的回顾

与门(两个输入相同是为1,不同时为0)

或门(输入信号中只要有一个信号为1,结果都为1,两个输入信号都为0时结果才是0)

与非门(就是在与门的结果取非,就是1变0,0变1)

后面是python实现一下与门,很简单的,就是传递两个参数,然后乘以对应的权重,如果大于阈值返回为一,如果小于阈值返回为0。

def AND(x1,x2):
    w1,w2,theta = 0.5, 0.5, 0.7
    temp=x1*w1+x2*w2
    if temp<=theta:
        print(0)
        return 0
    elif temp>theta:
        print(1)
        return 1
AND(0,0)
AND(1,1)
AND(1,0)

对于刚刚的阈值来讲,我们把它移到等式的右边和输入信号一边,我们把他将叫做偏置。式字变成这样子。

python代码

import numpy  as np
def AND(x1,x2):
    x = np.array([x1,x2])
    w = np.array([0.5,0.5])
    b = -0.7
    temp = np.sum(w*x)+b
    if temp<=0:
        print(0)
        return 0
    elif temp>0:
        print(1)
        return 1

权重和偏置的意义是不一样的

权重是控制输入信号重要性的参数,偏置是调整神经元被激活的容易度。

现在用python来实现与非门和或门

与非门

def NAND(x1,x2):
    x = np.array([x1,x2])
    w = np.array([-0.5,-0.5])
    b = 0.7
    temp = np.sum(w*x)+b
    if temp<=0:
        print(0)
        return 0
    elif temp>0:
        print(1)
        return 1

或门

def OR(x1,x2):
    x = np.array([x1,x2])
    w = np.array([0.5,0.5])
    b = -0.2
    temp = np.sum(w*x)+b
    if temp<=0:
        print(0)
        return 0
    elif temp>0:
        print(1)
        return 1

异或门
      两个输入取值有且仅有一个输入为的时候取值为1,其他时候情况取值为0。异或门不能线性分割结果。异或门用与非门和或门相与。就可以得到异或门。
python实现代码

def XOR(x1,x2):
    s1 = NAND(x1,x2)
    s2 = OR(x1,x2)
    y=AND(s1,s2)
    return y

       多层感知机
像与门或门这样的就是单层的感知机,像与或门这样子叠加了多层的叫做多层感知机。

感知机是基础很重要。下一章神经网络。加油。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值