【Python初学】神经网络入门

神经网络的核心组件:层,网络,目标函数和优化器。
训练神经网络主要围绕,1:层。多个层组合成网络(或模型);2:输入数据数据和相应的目标;3:损失函数(用于学习的反信号);4:优化器,决定学习过程如何进行。训练过程如图所示
在这里插入图片描述
多个层链接在一起组成网络,将输入数据映射为预测值。然后损失函数将这些预测值与目标进行比较,得到损失值,用于衡量网络预测值与预期结果的匹配程度,优化器使用这个损失值来更新网络的权重。

层是神经网络的基本数据结构。层是一个数据处理模块,将一个或多个输入张量转换为一个或多个输出张量。
不同的张量格式与不同的数据处理类型需要用不同的层。
1 简单的向量数据保存在形状为(Samples,feature)2D的张量中,通常用密集连接层,对应kears的Dense类。
2 序列数据保存在形状为(samples,timesteps,feature)的3D张量中,比如Keras的LSTM层。
3 图像数据保存在4D张量中,通常用二维卷积层(Keras的Conv2D)来处理。

from keras import models
from keras import layers

model = models.Sequential()
model.add(layers.Dense(16, input_shape=(10000,)))  # 第一层
model.add(layers.Dense(16))  #第二层

上述代码的意思是第一层,只接受第一个维度大小为10000的2D张量作为输入,这个层将返回一个张量,第一维度大小变为16。这个层后面只能连接一个接受32维向量作为输入的层,这里keras会自动定义输入形状。

模型:层构成的网络
深度学习模型是层构成的有向无环图。网络拓扑结构定义了假设空间,将输入数据映射为输出数据。常见的网络拓扑结构有线性堆叠、多分支网络、多头网络、Inception模块。

损失函数和优化器
对于分类、回归、序列预测等常见问题遵循以下指导原则来选择正确的损失函数
1 对于二分类问题,你可以使用二元交叉熵(binary crossentropy)损失函数;
2 对于多分类问题,可以使用分类交叉熵(categorical crossentropy)损失函数;
3 对于回归问题,可以使用均方误差(mean-squared error)损失函数;
4 对于序列学习问题,可以使用联结主义时序分类(CTC)损失函数

Keras开发工作流程
1 定义训练数据:输入张量和目标张量。
2 定义层组成的网络(或模型)、将输入映射到目标。
3 配置学习过程:选择损失函数、优化器和需要监控的指标。
4 调用模型的fit方法在训练数据上进行迭代。

定义模型有两种方法:一是使用Sequential类(仅用于层的线性堆叠),另一种是函数式API。
使用使用Sequential类定义两层模型。

from keras import models
from keras import layers


model = models.Sequential()
model.add(layers.Dense(16, activation='relu', input_shape=(10000,)))
model.add(layers.Dense(16, activation='relu'))

使用函数式API定义相同的模型

imput_tensor = layers.Input(shape=(784,))
x = layers.Dense(32,activation='relu')(input_tensor)
output_tensor = layers.Dense(10,activation='softmax')(x)

model = models.model(inputs=imput_tensor,outputs=output_tensor)

配置学习过程,指定模型使用的优化器和损失函数。例:单一损失函数

model.compile(optimizer=optimizers.RMSprop(lr=0.001), loss=losses.binary_crossentropy, metrics=['accuracy'])

最后学习过程通过fit()方法将输入的数据的Numpy数组(和对应的目标数据)传入模型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值