深度学习第4天:感知机模型

 

☁️主页 Nowl

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

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

文章目录

感知机模型介绍

神经网络搭建感知机

结构

准备训练数据

感知机的损失函数与优化方法

测试结果

完整代码

多层感知机

结语


感知机模型介绍

感知机是一种很简单的二分类模型,给它一组特征,它输出是或者否

神经网络搭建感知机

在这一节中,我们使用Keras来搭建神经网络,Keras是一个python的深度学习框架

本节我们创建一个简单的判断输入是正数还是负数的感知机模型

结构

在神经网络中,感知机就是一个只有一个输入层,一个输出层的神经网络,我们使用Keras库来定义它

from keras.models import Sequential
from keras.layers import Dense


model = Sequential([
    Dense(1, activation='sigmoid')
])

可以看到非常简单

准备训练数据

因为任务非常简单,所以我们只用一小部分数据进行训练

# 创建随机输入数据和目标数据
input_data = np.array([[1], [-5], [-3], [2], [7], [-2], [5], [-2], [-111], [234], [21], [-24]])
target_data = np.array([[1], [0], [0], [1], [1], [0], [1], [0], [0], [1], [1], [0]])

将输入数据转化为array,这是Keras支持的输入格式,不然可能会报错 

损失函数与优化方法

我们定义损失函数为mse,优化方法为随机梯度下降,并训练模型1000个轮次

# 编译模型
model.compile(loss='mse', optimizer='sgd')
# 训练模型
model.fit(input_data, target_data, epochs=1000)

测试结果

data = np.array([[1], [98], [-17]])

prediction = model(data)
for i in range(3):
    print(str(data[i][0])+"是", end="")
    if prediction.numpy()[i][0] > 0.5:
        print("正数")
    else:
        print("负数")

在这个代码中,我们输入三个数据,1,98和-17,之后是对输出结果进行处理:如果模型输出的数据大于0.5,那就判断为正数,否则判断为负数,我们看看运行结果

​ 

完整代码

我们再来回顾完整代码,这个代码用一个感知机模型完成了判断数字正负的任务

  • 先导入所需要的库
  • 再定义一个感知机神经网络
  • 接着准备训练数据
  • 选择模型的损失函数与优化器
  • 最后训练模型并进行效果检测
from keras.models import Sequential
from keras.layers import Dense
import numpy as np


# 定义模型
model = Sequential([
    Dense(1, activation='sigmoid')
])

# 创建随机输入数据和目标数据
input_data = np.array([[1], [-5], [-3], [2], [7], [-2], [5], [-2], [-111], [234], [21], [-24]])
target_data = np.array([[1], [0], [0], [1], [1], [0], [1], [0], [0], [1], [1], [0]])

# 编译模型
model.compile(loss='mse', optimizer='sgd')
# 训练模型
model.fit(input_data, target_data, epochs=1000)

# 效果检测
data = np.array([[1], [98], [-17]])

prediction = model(data)
for i in range(3):
    print(str(data[i][0])+"是", end="")
    if prediction.numpy()[i][0] > 0.5:
        print("正数")
    else:
        print("负数")

多层感知机

多层感知机是在感知机的基础上多了一个或多个隐藏层,同时加入了一些激活函数,隐藏层与激活函数使得多层感知机能够处理更加复杂的问题,非线性分类,多分类等

结语

以我的理解,单层感知机和多层感知机都只是形式化了的模型的某种结构,在具体任务中,我们的模型架构将是灵活多变的,我们主要应该了解的是模型的某一部分的作用,以便我们在遇到问题时能搭建出对应的模型,跟着本专栏继续学习下去吧

感谢阅读,觉得有用的话就订阅下本专栏吧,有错误也欢迎指出

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

火车头插件-最全火车头伪原创图片存储等插件

火车头插件。作为一个功能强大的工具,火车头插件以其众多特色引起了广大用户的关注。而其中,火车头采集器更是备受瞩目。我们将分享火车头插件的安装教程,还会深入了解火车头伪原创插件的应用。 火车头插件安装教程 我们来安装火车头插件&a…

JavaScript 内存泄漏的检测与防范:让你的程序更稳定

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

HT7713 3A同步降压变换器 快速瞬态响应

HT7713 是一款 3A 降压转换器,具有Z少的外部元件和低关断电流。HT7713具有快速瞬态响应的特点,输出电容器采用低 ESR (聚合物)或超低 ESR(陶瓷),无需外部补偿。 HT7713在轻载时以脉冲跳跃模式工…

Spring Security 6.x 系列(8)—— 源码分析之配置器SecurityConfigurer接口及其分支实现

一、前言 本章主要内容是关于配置器的接口架构设计,任意找一个配置器一直往上找,就会找到配置器的顶级接口:SecurityConfigurer。 查看SecurityConfigurer接口的实现类情况: 在 AbstractHttpConfigurer 抽象类的下面可以看到所有…

HT81298 集成免滤波器调制D类音频功放

HT81298是一款内置升压的立体声D类音频功率放大器,HT81298内部集成免滤波器调制技术, 能够直接驱动扬声器,内置的关断功能使待机 电流Z小化,还集成了输出端过流保护、片内 过温保护、输入电源欠压异常保护、升压电压 过压保护等功…

Docker 环境中 Spring Boot 应用的 Arthas 故障排查与性能优化实战

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

Guns快速开发平台 Shiro反序列化漏洞复现

0x01 产品简介 Guns是一个现代化的 Java 应用开发框架,基于主流技术Spring Boot 2 Vue3,Guns的核心理念是提高开发人员开发效率,降低企业信息化系统的开发成本。 0x02 漏洞概述 Guns v5.1 及之前的版本存在 shiro 反序列化漏洞,…

1.0 十大经典排序算法

分类 算法 本系列算法整理自:https://github.com/hustcc/JS-Sorting-Algorithm 同时也参考了维基百科做了一些补充。 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序&#…

Google Chrome 下载 (离线版)

1 访问网址 Google Chrome 网络浏览器 2 点击 下载Chrome 3 直接运行 ChromeStandaloneSetup64.exe 其他: ####################### 谷歌浏览器 (Google Chrome) 最新版离线安装包下载 https://www.iplaysoft.com/tools/chrome/#google_vignette Google Chrome …

SpringBoot整合Activiti7——消息事件(十)

文章目录 消息事件开始事件中间事件边界事件代码实现xml文件测试流程流程执行步骤 消息事件 消息事件只有一个接收者&#xff0c;消息具有名字与载荷。 信息会储存在 act_ru_event_subscr 表中。 <!-- 定义消息 --> <message id"msgId1" name"msgName…

触控板绘画工具Inklet mac功能介绍

Inklet mac是一款触控板绘画工具&#xff0c;把你的触控板变成画画的板子&#xff0c;意思是&#xff0c;你点在触控板的哪里&#xff0c;鼠标就会出现载相应的地方。例如&#xff0c;但你把手指移动到触控盘左下角&#xff0c;那么鼠标也会出现在左下角&#xff0c;对于用户而…

富文本内容回显

<el-card><h7>正文内容</h7><template><div v-html"inputForm.bulletinData"></div></template></el-card> 通过 v-html 来回显数据

MidJourney笔记(6)-Niji模式

Niji模式 回顾一下,在讲解settings命令时,我们可以看到一个Niji字眼。 而且是在Midjourney V4之后才有的,那Niji到底是什么? Niji是MidJourney中用于绘制二次元/动漫风格的模型,那Niji的V4和V5有什么区别呢?

Docker Compose及Docker 知识点整理

目录 1、Docker Compose 简介 2、为什么要使用Docker Compose 3、Docker Compose安装使用&#xff08;Linux&#xff09; 3.1 下载 3.2 mkdir docker 文件夹目录 3.3 上传docker-compose到docker文件夹 3.4 移动到 /usr/local/bin 目录下 3.5 添加执行权限 3.6 修改文…

spring boot 3.2.0 idea从零开始

spring boot 3.2.0 idea从零开始 最新的spring initilizer 不再支持低版本java&#xff0c;只能选择17、21 。 我也被迫尝试下最新版本的java。 jdk下载地址 自定义好artifact和group之后点击下一步。 在这里选择需要的组件&#xff0c;我准备做web项目所以只选择spring web …

阿里云开源通义千问720亿参数模型,性能超越大部分商用闭源大模型

12月1日&#xff0c;阿里云举办通义千问发布会&#xff0c;开源通义千问720亿参数模型Qwen-72B。Qwen-72B在10个权威基准测评创下开源模型最优成绩&#xff0c;成为业界最强开源大模型&#xff0c;性能超越开源标杆Llama 2-70B和大部分商用闭源模型。未来&#xff0c;企业级、科…

周报:浅谈对豆瓣网页实战的注意事项

制作整体网页时HTML代码和CSS代码的常用处理方法&#xff1a; 分开HTML代码和CSS代码&#xff0c;专门制作一个CSS文件专门来放置css代码&#xff0c;css文件里一般有作者样式(XXX.css)和通用样式(common.css)。这样会使代码更易维护&#xff0c;且整齐美观。 写代码前的注意…

用100ask 6ull配合 飞凌 elf1的教程进行学习的记录

启动方式 百问网 elf1: 固件 emmc-otg 串口 网络 改eth0, 网线接在右边的网口eth2上

51k+ Star!动画图解、一键运行的数据结构与算法教程!

大家好&#xff0c;我是 Java陈序员。 我们都知道&#xff0c;《数据结构与算法》 —— 是程序员的必修课。 无论是使用什么编程语音&#xff0c;亦或者是前后端开发&#xff0c;都需要修好《数据结构与算法》这门课&#xff01; 在各个互联网大产的面试中&#xff0c;对数据…

我们需要什么样的HA

作为DBA,大家在运维数据库的时候都会遇到 数据库发生 Failover /Switchover 切换的场景。数据库发生切换导致业务连续性受损&#xff0c;少则分钟级&#xff0c;多则小时级别。(最近互联网的故障比较多)。 本文 基于 MySQL 数据库架构场景来分析我们在遇到数据库 HA 切换时是系…