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

☁️主页 Nowl

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

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

文章目录

感知机模型介绍

神经网络搭建感知机

结构

准备训练数据

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

测试结果

完整代码

多层感知机

结语


感知机模型介绍

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

神经网络搭建感知机

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

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

结构

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

python 复制代码
from keras.models import Sequential
from keras.layers import Dense


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

可以看到非常简单

准备训练数据

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

python 复制代码
# 创建随机输入数据和目标数据
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个轮次

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

测试结果

python 复制代码
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,那就判断为正数,否则判断为负数,我们看看运行结果

完整代码

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

  • 先导入所需要的库
  • 再定义一个感知机神经网络
  • 接着准备训练数据
  • 选择模型的损失函数与优化器
  • 最后训练模型并进行效果检测
python 复制代码
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("负数")

多层感知机

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

结语

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

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

相关推荐
程序猿阿伟1 分钟前
《OpenClaw Active Memory的智能遗忘与抽象机制》
人工智能
YANQ6622 分钟前
6. Gemini相机+yoloseg+foundationpose环境搭建及应用
人工智能·数码相机
Soari3 分钟前
【紧急发布】Claude Code v2.1.148 :修复 Bash 127 瘫痪 Bug,/simplify 升级为 AI 代码评审
人工智能·bug·bash·claudecode
微祎_3 分钟前
写给新手的 triton-inference-server-ge-backend:昇腾Triton推理服务后端到底是啥?
前端·人工智能·cann
大飞记Python3 分钟前
【2026更新】Python基础学习指南(AI版)——06函数
开发语言·人工智能·python
电商API_180079052475 分钟前
反向海淘是什么?现状如何?未来趋势如何?
数据库·人工智能·笔记·性能优化·数据挖掘·网络爬虫
伤心的瘦子6 分钟前
【零基础 AI 编程】Vibe Coding 小白指南第一课
人工智能
硅基流动9 分钟前
硅基流动上线阿里 Z-Image
人工智能
SLD_Allen10 分钟前
从Prompt、Context到Harness,工程的三次进化
人工智能·prompt·上下文·harness
企学宝11 分钟前
企学宝课程开发与知识管理解决方案:零售、金融、制造等多行业落地实践
人工智能·零售·企业培训