25亿企业网站管理系统,嘉兴网站制作星讯网络科技,网页设计视频网站建设,net和cn哪个做网站好☁️主页 Nowl
#x1f525;专栏《机器学习实战》 《机器学习》
#x1f4d1;君子坐而论道#xff0c;少年起而行之
文章目录
神经网络
介绍
结构
基本要素
Keras
介绍
导入
定义网络
模型训练
前馈神经网络
特点
常见类型
代码示例
反馈神经网络
特点
… ☁️主页 Nowl
专栏《机器学习实战》 《机器学习》
君子坐而论道少年起而行之
文章目录
神经网络
介绍
结构
基本要素
Keras
介绍
导入
定义网络
模型训练
前馈神经网络
特点
常见类型
代码示例
反馈神经网络
特点
作用
常见类型
代码示例
结语 神经网络
介绍
我们知道深度学习也是机器学习的一个范畴所以它满足机器学习的基本思想从数据中拟合出某种规律只是它的模型结构与经典机器学习的模型不同且具有特色它的模型结构像人脑的神经元一样连接所以我们也把这种结构叫做神经网络
结构
由数个神经元组成一层整个神经网络由多个层组成最开始的层叫做输入层最后的层叫做输出层输入层与输出层中间的叫做隐藏层层与层之间互相连接 基本要素
作为机器学习的一种深度学习当然也有模型性能评估函数损失函数优化方法神经网络还有一个激活函数的概念这个激活函数添加到某个神经网络的层上将输入经过某种函数变化后再输出常见的激活函数有sigmoidrelu等不用着急这些概念我们在之后的系列文章中都会反复提到 Keras
介绍
本系列教程将主要使用Keras库进行讲解Keras是一个流行的python深度学习库在许多人工智能竞赛中使用量都居于领先地位 导入
from keras.models import Sequential # 导入Sequential 模型
from keras.layers import Dense # 导入Dense层
import numpy as np
Sequential是一种存储神经网络的模型
Dense是全连接层每个神经元都与上一层的所有神经元相连
定义网络
model Sequential()
model.add(Dense(6, input_dim4, activationrelu))
model.add(Dense(1, activationsigmoid))
这行代码先创建了一个Sequential模型然后往里面添加了两个全连接层第一个全连接层的输入是4个神经元这一层有6个神经元激活函数是relu第二个全连接层只有一个神经元而它的输入由上一层自动判断也就是6个神经元激活函数是sigmoid
模型训练
# 编译模型
model.compile(lossbinary_crossentropy, optimizeradam, metrics[accuracy])# 训练模型
model.fit(X, y, epochs10, batch_size32)
compile初始化了一些基本设置 定义了损失函数loss定义了优化器optimizer定义了评估模型性能的指标metrics
fit开始训练模型epochs定义了训练批次batch_size设置了每次训练提取的样本数深度学习训练过程每次一般都是抽取训练集的一个子集这样做往往可以提高模型训练速度 前馈神经网络
特点
前一个神经元的输出是后一个神经元的输入一般结构如下图所示
常见类型
感知机全连接神经网络深度神经网络卷积神经网络
代码示例
from keras.models import Sequential
from keras.layers import Dense
import numpy as np# 生成一些示例数据
X np.random.random((1000, 20))
y np.random.randint(2, size(1000, 1))# 定义简单的前馈神经网络
model Sequential()
model.add(Dense(64, input_dim20, activationrelu))
model.add(Dense(1, activationsigmoid))# 编译模型
model.compile(lossbinary_crossentropy, optimizeradam, metrics[accuracy])# 训练模型
model.fit(X, y, epochs10, batch_size32)这段代码定义了一个最简单的前馈神经网络整个模型结构有一个输入层就是我们输入的数据这个层没有添加到Sequential中一个隐藏层一个输出层 反馈神经网络
特点
某一个神经元的输入不只与前一个神经元有关而是可能与之前的所有神经元有关 作用
反馈神经网络通常用来处理序列数据如语音文本等因为这些数据通常跟前后文有关我们需要反馈神经网络的结构来记忆前后文的关系
常见类型
循环神经网络长短时记忆网络
代码示例
from keras.models import Sequential
from keras.layers import SimpleRNN, Dense
import numpy as np# 生成一些示例数据
X np.random.random((1000, 10, 20)) # 1000个样本每个样本有10个时间步每个时间步有20个特征
y np.random.randint(2, size(1000, 1))# 定义简单的反馈神经网络
model Sequential()
model.add(SimpleRNN(64, input_shape(10, 20), activationrelu))
model.add(Dense(1, activationsigmoid))# 编译模型
model.compile(lossbinary_crossentropy, optimizeradam, metrics[accuracy])# 训练模型
model.fit(X, y, epochs10, batch_size32)这段代码定义了一个最简单的反馈神经网络隐藏层为RNN层设置时间步为10这意味着数据会在RNN层循环十次后再输入到下一层
结语
对于深度学习我们主要要了解以下几个方面
神经网络中层与层的连接方式前馈反馈各种神经网络层的作用卷积层池化层激活函数relu损失函数优化方法