深度学习入门(4)

神经网络的构建

import numpy as np
import matplotlib.pyplot as plt
def sigmoid(x):return 1/(1+np.exp(-x))
def identity_function(x):#恒等函数return x
def init_network():#进行权重和偏置的初始化,并保存到字典中network={}network['W1']=np.array([[0.1,0.3,0.5],[0.2,0.4,0.6]])network['b1']=np.array([0.1,0.2,0.3])network['W2']=np.array([[0.1,0.4],[0.2,0.5],[0.3,0.6]])network['b2']=np.array([0.1,0.2])network['W3']=np.array([[0.1,0.3],[0.2,0.4]])network['b3']=np.array([0.1,0.2])return networkdef forward(network,x):#输入到输出的处理W1,W2,W3=network['W1'],network['W2'],network['W3']b1,b2,b3=network['b1'],network['b2'],network['b3']a1=np.dot(x,W1)+b1z1=sigmoid(a1)a2=np.dot(z1,W2)+b2z2=sigmoid(a2)a3=np.dot(z2,W3)+b3y=identity_function(a3)return ynetwork=init_network()
x=np.array([1.0,0.5])
y=forward(network,x)
print(y)
这里定义了 init_network() forward() 函数。 init_network() 函数会进行权重和偏置的初始化,并将它们保存在字典变量 network 中。这个字典变 network 中保存了每一层所需的参数(权重和偏置)。 forward() 函数中则封 装了将输入信号转换为输出信号的处理过程。
输出层所用的激活函数,要根据求解问题的性质决定。一般地,回归问题可以使用恒等函数,二元分类问题可以使用 sigmoid函数, 多元分类问题可以使用 softmax函数。

恒等函数和softmax函数

 恒等函数会将输入按原样输出,对于输入的信息,不加以任何改动地直接输出。

exp( x ) 是表示 e x 的指数函数( e 是纳皮尔常数 2 . 7182 ... )。式( 3 . 10 )表示假设输出层共有 n 个神经元,计算第 k 个神经元的输出 y k 。如式( 3 . 10 )所示, softmax 函数的分子是输入信号 a k 的指数函数,分母是所有输入信号的指数 函数的和。
import numpy as np
a=np.array([0.3,2.9,4.0])
exp_a=np.exp(a)
print(exp_a)
sum_exp_a=np.sum(exp_a)
print(sum_exp_a)
y=exp_a/sum_exp_a
print(y)#softmax的函数形式
def softmax(a):exp_a=np.exp(a)sum_exp_a=np.sum(exp_a)y=exp_a/sum_exp_areturn y

实现softmax函数时的注意事项 

softmax存在的问题是会发生溢出导致数据不准确,因此采用下面这种方式进行优化

 

在进行 softmax 的指数函数的运算时,加上(或者减去)某个常数并不会改变运算的结果。这里的 C 可以使用任何值,但是为了防 止溢出,一般会使用输入信号中的最大值。
def softmax(a):c=np.max(a)exp_a=np.exp(a-c)sum_exp_a=np.sum(exp_a)y=exp_a/sum_exp_areturn y

 softmax函数的特征

 softmax函数的输出是0.01.0之间的实数。并且,softmax函数的输出值的总和是1。输出总和为1softmax函数的一个重要性质。正因为有了这个性质,我们才可以把softmax函数的输出解释为“概率”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/641582.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch 学习路程 - 1:入门

目录 下载Pytorch 入门尝试 几种常见的Tensor Scalar Vector Matrix AutoGrad机制 线性回归尝试 使用hub模块 Pytorch是重要的人工智能深度学习框架。既然已经点进来,我们就详细的介绍一下啥是Pytorch PyTorch 希望将其代替 Numpy 来利用 GPUs 的威力&…

HCIP-Datacom-ARST必选题库_01_ACL【7道题】

一、单选 1.下面是一台路由器的部分配置,关于该配置描述正确的是: 源地址为1.1.1.1的数据包匹配第一条ACL语句rule 0,匹配规则为允许 源地址为1.1.1.3的数据包匹配第三条ACL语句rule 2,匹配规则为拒绝 源地址为1.1.1.4的数据包匹配第四条ACL语句rule 3,匹配规则为允…

轻松学会微信小程序开发(一)

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

什么是SSRF攻击?该如何防御SSRF攻击?

随着网络安全形式日益严峻,各式各样的攻击频繁发生。当前,应用程序为了给用户提供更多更方便的功能,从另一个URL获取数据的场景越来越多,因此出现了一种安全漏洞攻击-SSRF。并且,由于云服务和体系结构的复杂性&#xf…

@Value注解使用详解

目录 介绍 基于配置文件注入: 介绍 Value 注解可以用来将外部的值动态注入到 Bean 中,在 Value 注解中,可以使${} 与 #{} Value("${}"):可以获取对应属性文件中定义的属性值。 Value("#{}"):表示…

办公设备租赁行业内卷瞎扯

办公设备租赁行业内卷瞎扯 最近听到很多同行抱怨,现在市场太卷了,真的有点到了卷不死就往死里卷的节奏,让大家都开始想换地方,或者转行。但是今天,我想从另外一个角度聊一下这个问题,分析一下,…

windows安装nc命令的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

记录如何用php做一个网站访问计数器的方法

简介 创建一个简单的网站访问计数器涉及到几个步骤,包括创建一个用于存储访问次数的文件或数据库表,以及编写PHP脚本来增加计数和显示当前的访问次数。 方法 以下是使用文件存储访问次数的基本步骤: 创建一个文本文件来存储计数&#xff1a…

如何在PostgreSQL中备份和恢复整个数据库,包括相关的用户和权限设置?

文章目录 备份数据库恢复数据库 PostgreSQL数据库管理系统提供了多种备份和恢复策略,其中pg_dump和psql工具是最常用的。但需要注意的是,pg_dump主要用于备份数据库的结构和数据,而不包括用户和权限设置。为了备份这些设置,我们需…

图搜索算法详解:广度优先搜索与深度优先搜索的探索之旅

图搜索算法详解:广度优先搜索与深度优先搜索的探索之旅 1. 广度优先搜索(BFS)1.1 伪代码1.2 C语言实现 2. 深度优先搜索(DFS)2.1 伪代码2.2 C语言实现 3. 总结 图搜索算法是计算机科学中用于在图结构中查找路径的算法。…

vscode 解决无法创建临时文件。

报错: Fatal error: cant create C:\Users???y\AppData\Local\Temp\ccqkCS9j.o: No such file or directory 右击此 电脑 -> 属性 打开 系统信息 -> 高级系统设置 系统属性 -> 高级 -> 环境变量 将temp 和 tmp 改为其它英文路径 只更改用户变量…

关于Developers网站的一些使用分享

Android Developers 官网使用分享 语音切换android studio 版本下载最新版本下载位置历史版本下载位置 android studio 版本和 AGP 对应关系API 和 android studio 版本和 AGP 对应关系android studio 版本android 版本API levelandroid.hardware.camera2 语音切换 Developers…