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

第三章 神经网络 一二节

神经网络示意图

=
做左边一列叫做输入层,该书中也叫做第0层,从左往右一次是第1层,第二层。中间的叫做中间层或者是隐藏层,最右边一列叫做输出层。
在感知机中输出与输入对应这样子一个式子
b为偏置
把偏加入神经元的图中,则我们加入一个神经元,如下图
在这里插入图片描述
为了让输入输出看上去更加简洁,把之前的式子改为
在这里插入图片描述
在这里插入图片描述

激活函数

上面的h(x)函数,将输入信号的总和转化为输出信号。这个函数一般被称为激活函数。
将激活函数分得更加细一点,变成两个式子。
在这里插入图片描述

那么之前的示意图可以变成这样子
在这里插入图片描述

sigmoid函数

sigmoid函数的表达式
在这里插入图片描述
其中exp(−x)表示e-x,sigmoid函数的值域在0到1之间,是一条s型的曲线。

阶跃函数

实现阶跃函数的代码如下

import numpy as np
def step_function(x):
    y = x>0
    return  y.astype(np.int)

y = x>0 这句代码,如果x是一个数组,执行后的结果就是大于0的元素对应y这个数组就是true反之则为false.如x=[-1,1,4,-2],则y=[false,true,true,false]。然后y.astype(),.astype就是其他语言里面的数据类型的转化,把y转化为括号里面的类型。如中国地方括号里面写的是int类型,那么true就会变成1,false就会转化为0。
显示阶跃函数和sigmoid函数的图形的python代码

import numpy as np
import matplotlib.pylab as plt
def step_function(x):
    return np.array(x > 0, dtype=np.int)
def sigmoid(x):
    return 1/(1+np.exp(-x))
x=np.arange(-5.0,5.0,0.1)
y=step_function(x)
plt.plot(x,y)
plt.ylim(-0.1,1.1)#指定y轴的范围
plt.show()

x=np.arange(-5.0,5.0,0.1)
y=sigmoid(x)
plt.plot(x,y)
plt.ylim(-0.1,1.1)#指定y轴的范围
plt.show()

    np.arang(-5.0,5.0,0.1)表示x轴的范围在-5到5,以0.1为一个单位,生成数组([-5.0, -4.9, …, 4.9])

阶跃函数和sigmoid函数图形的对比
在这里插入图片描述       阶跃函数和sigmoid函数的不同点是,sigmoid是一条平滑的曲线,输出随着输入发生连续性的变化,二阶跃函数也0为界限输出发生急剧的变化,并且阶跃函数的值域只能返回1或者是0,而sigmoid函数返回值是从0到1连续的值域。
      阶跃函数和sigmoid函数的相同点是,他们的输出信号的值和1之间。并且都是非线性函数。
      神经网络的激活函数必须是非线性的,应为如果激活函数是线性的话,那么我们加深网络的层数就没有意义了。

ReLU函数

函数的式子是这样子的
在这里插入图片描述
python实现

def relu(x):
    return np.maxinum(0,x)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值