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

news2024/11/17 19:40:34

☁️主页 Nowl

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

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

文章目录

神经网络

介绍

结构

基本要素

Keras

介绍

导入

定义网络

模型训练

前馈神经网络

特点

常见类型

代码示例

反馈神经网络

特点

作用

常见类型

代码示例

结语


神经网络

介绍

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

结构

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

基本要素

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


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_dim=4, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

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

模型训练

# 编译模型
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设置了每次训练提取的样本数(深度学习训练过程每次一般都是抽取训练集的一个子集,这样做往往可以提高模型训练速度)


前馈神经网络

特点

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

常见类型

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

代码示例

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中),一个隐藏层,一个输出层 


反馈神经网络

特点

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

作用

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

常见类型

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

代码示例

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)
  • 损失函数
  • 优化方法

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VC++彻底理解链接器:四,重定位

重定位 程序的运行过程就是CPU不断的从内存中取出指令然后执行执行的过程,对于函数调用来说比如我们在C/C语言中调用简单的加法函数add,其对应的汇编指令可能是这样的: call 0x4004fd 其中0x4004fd即为函数add在内存中的地址,当CPU执行这条…

全国测绘资质管理信息系统测绘资质申报流程

讲解一期关于测绘资质申请如何操作,在哪操作的问题,想要知道的按以下流程操作即可 (注:以下操作为资质系统操作,想要能把资质申请下来,还需满足以下要求,后面会和系统操作一起统一讲解&#xf…

K8S如何部署ActiveMQ(单机、集群)

前言 大家好,在今天的讨论中,我们将深入研究如何将ActiveMQ迁移到云端,以便更好地利用Kubernetes的容器调度和资源管理能力,确保ActiveMQ的高可用性和可扩展性。 ActiveMQ是Apache开源组织推出的一款开源的、完全支持JMS1.1和J2…

IBM X3650M4安装ESXI6.5卡在/lsl_mr3.v00

环境:IBM X3650M4服务器双盘配置raid1,通过rufus制作启动U盘,安装VMware Vsphere 5.5系统 问题:卡在/lsi_mr3.v00界面无法往下运行(两台配置一样的机器遇到同样的问题) 解决方案: 直接在U盘根…

软件设计中如何画各类图之二深入解析数据流图(DFD):系统设计与分析的关键视觉工具

目录 1 前言2 数据流图(DFD)的重要性3 数据流图的符号说明4 清晰的数据流图步骤4.1 确定系统边界4.2 识别数据流4.3 定义处理过程4.4 确认数据存储4.5 建立数据流动的连线4.6 细化和优化 5 数据流图的用途6 使用场景7 实际应用场景举例8 结语 1 前言 当…

Eclipse 设置try-cacth 默认格式

设置面板 第一处 第二处 其中NsRuntimeException是自定义的异常处理。这样设置后,打开代码补全功能,输入try回车就会默认显示设置的代码

雅可比矩阵(Jacobian Matrix)

假设给定一个从n维欧式空间到m维欧式空间的变换: 雅可比矩阵就是将一阶偏导数排列成一个m行、n列形式的矩阵,记作: 举一个例子: 雅可比矩阵等于:

新手如何对一个web网页进行一次渗透测试

新手如何对一个web网页进行一次渗透测试 什么是渗透测试? 在获得web服务运营的公司书面授权的情况下,模拟攻击者的行为,以确定系统的脆弱性,并为保护系统提供有效的建议。 渗透测试和红蓝对抗的区别 渗透测试和红蓝对抗别再傻傻分不清楚…

ChatGPT重磅升级!集简云支持GPT4 Turbo Vision, GPT4 Turbo, Dall.E 3,Whisper等最新模型

在11月7日凌晨,OpenAI全球开发者大会宣布了 GPT-4的一次大升级,推出了 GPT-4 Turbo号称为迄今为止最强的大模型。 此次GPT-4的更新和升级在多个方面显示出强大的优势和潜力。为了让集简云用户能快速体验新模型的能力,我们第一时间整理了大会发…

Leetcode103 二叉树的锯齿形层序遍历

二叉树的锯齿形层序遍历 题解1 层序遍历双向队列 给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 提示&#xff1a…

力扣每日一题-统计和小于目标的下标对数目-2023.11.24

力扣每日一题:统计和小于目标的下标对数目 开篇 今天这道力扣打卡题写得我好狼狈,一开始思路有点问题,后面就是对自己的代码到处缝缝补补,最后蒙混过关。只能分享一下大佬的代码,然后我帮大家分享代码的思路。 题目链…

迈巴赫S480升级主动式氛围灯 浪漫婉转的气氛

主动式氛围灯有263个可多色渐变的LED光源,营造出全情沉浸的动态光影氛围。结合智能驾驶辅助系统,可在转向或检测到危险时,予以红色环境光提示,令光影艺术彰显智能魅力。配件有6个氛围灯,1个电脑模块。 1、气候&#xf…

2023年亚太杯数学建模A题——深度学习苹果图像识别(思路+模型+代码+成品)

Image Recognition for Fruit-Picking Robots 水果采摘机器人的图像识别功能 问题 1:计数苹果 根据附件 1 中提供的可收获苹果的图像数据集,提取图像特征,建立数学模型,计算每幅图像中的苹果数量,并绘制附件 1 中所有…

FANUC机器人系统配置相关--系统变量介绍

FANUC机器人系统配置相关–系统变量介绍 系统配置页相关变量 1- 停电处理$SEMIPOWERFL = TRUE(有效)/FALSE(无效) 2- 停电处理中的I/O $PWF_IO = 1(不恢复)/2(仿真恢复)/3(解除仿真)/4(恢复所有) 3- 停电处理无效时自动执行的程序 $PWR_NORMAL = ‘’ 4- 停电处理有效时自动…

VINS-MONO代码解读----vins_estimator(鲁棒初始化部分)

0. 前言 整个初始化部分的pipeline如下所示,参照之前的博客,接下来根据代码一步步讲解。 1. 旋转约束标定旋转外参Rbc 上回讲了processImage中addFeatureCheckParallax完成了对KF的筛选,我们知道了2nd是否为KF,接下来是初始化…

Diffusion Model: DDPM

本文相关内容只记录看论文过程中一些难点问题,内容间逻辑性不强,甚至有点混乱,因此只作为本人“备忘”,不建议其他人阅读。 Denoising Diffusion Probabilistic Models: https://arxiv.org/abs/2006.11239 DDPM 一、基于 已知…

使用Linux JumpServer堡垒机本地部署与远程访问

🌈个人主页:聆风吟 🔥系列专栏:网络奇遇记、Cpolar杂谈 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. 安装Jump server二. 本地访问jump server三. 安装 cpolar内网穿透软件四. 配…

mysql索引分为哪几类,聚簇索引和非聚簇索引的区别,MySQL索引失效的情况有哪几种情况,MySQL索引优化的手段,MySQL回表

文章目录 索引分为哪几类?聚簇索引和非聚簇索引的区别什么是[聚簇索引](https://so.csdn.net/so/search?q聚簇索引&spm1001.2101.3001.7020)?(重点)非聚簇索引 聚簇索引和非聚簇索引的区别主要有以下几个:什么叫回…

vcsa6.7 5480无法登录

停电维护硬件后,发现vcsa异常,https://ip:5480无法登录,https://ip/ui正常,ssh登录页正常 kb资料 通过端口 5480 登录到 VMware vCenter Server Appliance Web 控制台失败 (2120477) 操作过程 Connecting to 192.16.20.31:22..…

LLMLingua:集成LlamaIndex,对提示进行压缩,提供大语言模型的高效推理

大型语言模型(llm)的出现刺激了多个领域的创新。但是在思维链(CoT)提示和情境学习(ICL)等策略的驱动下,提示的复杂性不断增加,这给计算带来了挑战。这些冗长的提示需要大量的资源来进行推理,因此需要高效的解决方案,本文将介绍LLM…