深度学习第1天:深度学习入门-Keras与典型神经网络结构

☁️主页 Nowl

🔥专栏《机器学习实战》 《机器学习》

📑君子坐而论道,少年起而行之

文章目录

神经网络

介绍

结构

基本要素

Keras

介绍

导入

定义网络

模型训练

前馈神经网络

特点

常见类型

代码示例

反馈神经网络

特点

作用

常见类型

代码示例

结语


神经网络

介绍

我们知道,深度学习也是机器学习的一个范畴,所以它满足机器学习的基本思想:从数据中拟合出某种规律 ,只是它的模型结构与经典机器学习的模型不同,且具有特色:它的模型结构像人脑的神经元一样连接,所以我们也把这种结构叫做神经网络

结构

由数个神经元组成一层,整个神经网络由多个层组成,最开始的层叫做输入层 ,最后的层叫做输出层 ,输入层与输出层中间的叫做**隐藏层,**层与层之间互相连接

基本要素

作为机器学习的一种,深度学习当然也有模型性能评估函数损失函数优化方法 ,神经网络还有一个激活函数的概念,这个激活函数添加到某个神经网络的层上,将输入经过某种函数变化后再输出,常见的激活函数有sigmoid,relu等,不用着急,这些概念我们在之后的系列文章中都会反复提到


Keras

介绍

本系列教程将主要使用Keras库进行讲解,Keras是一个流行的python深度学习库,在许多人工智能竞赛中使用量都居于领先地位

导入

python 复制代码
from keras.models import Sequential # 导入Sequential 模型
from keras.layers import Dense # 导入Dense层
import numpy as np

Sequential是一种存储神经网络的模型

Dense是全连接层,每个神经元都与上一层的所有神经元相连

定义网络

python 复制代码
model = Sequential()
model.add(Dense(6, input_dim=4, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

这行代码先创建了一个Sequential模型,然后往里面添加了两个全连接层,第一个全连接层的输入是4个神经元,这一层有6个神经元,激活函数是relu,第二个全连接层只有一个神经元,而它的输入由上一层自动判断,也就是6个神经元,激活函数是sigmoid

模型训练

python 复制代码
# 编译模型
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# 训练模型
model.fit(X, y, epochs=10, batch_size=32)

compile初始化了一些基本设置 ,定义了损失函数(loss) ,定义了优化器(optimizer) ,定义了评估模型性能的指标(metrics)

fit开始训练模型,epochs定义了训练批次,batch_size设置了每次训练提取的样本数(深度学习训练过程每次一般都是抽取训练集的一个子集,这样做往往可以提高模型训练速度)


前馈神经网络

特点

前一个神经元的输出是后一个神经元的输入,一般结构如下图所示

常见类型

感知机,全连接神经网络,深度神经网络,卷积神经网络

代码示例

python 复制代码
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_dim=20, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

# 编译模型
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# 训练模型
model.fit(X, y, epochs=10, batch_size=32)

这段代码定义了一个最简单的前馈神经网络,整个模型结构有一个输入层(就是我们输入的数据,这个层没有添加到Sequential中),一个隐藏层,一个输出层


反馈神经网络

特点

某一个神经元的输入不只与前一个神经元有关,而是可能与之前的所有神经元有关

作用

反馈神经网络通常用来处理序列数据,如语音,文本等,因为这些数据通常跟前后文有关,我们需要反馈神经网络的结构来记忆前后文的关系

常见类型

循环神经网络,长短时记忆网络

代码示例

python 复制代码
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), activation='relu'))
model.add(Dense(1, activation='sigmoid'))

# 编译模型
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# 训练模型
model.fit(X, y, epochs=10, batch_size=32)

这段代码定义了一个最简单的反馈神经网络,隐藏层为RNN层,设置时间步为10,这意味着数据会在RNN层循环十次后再输入到下一层

结语

对于深度学习,我们主要要了解以下几个方面

  • 神经网络中层与层的连接方式(前馈,反馈)
  • 各种神经网络层的作用(卷积层,池化层)
  • 激活函数(relu)
  • 损失函数
  • 优化方法
相关推荐
予枫的编程笔记2 分钟前
【JDK版本】JDK版本迁移避坑指南:从8→17/21实操全解析
java·人工智能·jdk
科技云报道2 分钟前
科技云报到:个人AI时代,超级智能体如何真正为你而来?
人工智能·科技
红头辣椒4 分钟前
AI赋能全流程,重塑需求管理新生态——Visual RM需求数智化平台核心能力解析
人工智能·设计模式·软件工程·需求分析·用户运营
东方佑4 分钟前
思维自指:LLM推理架构的维度突破与意识雏形
人工智能·架构
AI猫站长4 分钟前
快讯|DeepSeek Engram论文详解存算分离,华为SWE-Lego开源轻量级代码智能体全栈方案,
人工智能·机器人·开源·具身智能·deepseek·灵心巧手
CoookeCola6 分钟前
从人脸检测到音频偏移:基于SyncNet的音视频偏移计算与人脸轨迹追踪技术解析
数据仓库·人工智能·目标检测·计算机视觉·数据挖掘
linmoo19867 分钟前
Langchain4j 系列之二十一 - Language Models
人工智能·语言模型·自然语言处理·langchain·指令微调·langchain4j·languagemodel
ai_top_trends9 分钟前
2026 年 AI 生成 PPT 工具推荐清单:测评后给出的答案
人工智能·python·powerpoint
程序新视界9 分钟前
“提供溢出的情绪价值”是AI产品极具可能性的方向
人工智能·后端·产品
xixixi7777712 分钟前
AGI-Next前沿峰会——对于唐杰教授提到的AI下一步方向的“两条思路一次取舍”的思考(思路分析+通俗易懂解释)
人工智能·ai·大模型·agi·通用人工智能·asi