深度学习第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("负数")

多层感知机

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

结语

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

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

相关推荐
羑悻的小杀马特16 分钟前
OpenCV 引擎:驱动实时应用开发的科技狂飙
人工智能·科技·opencv·计算机视觉
guanshiyishi3 小时前
ABeam 德硕 | 中国汽车市场(2)——新能源车的崛起与中国汽车市场机遇与挑战
人工智能
极客天成ScaleFlash4 小时前
极客天成NVFile:无缓存直击存储性能天花板,重新定义AI时代并行存储新范式
人工智能·缓存
Uzuki4 小时前
AI可解释性 II | Saliency Maps-based 归因方法(Attribution)论文导读(持续更新)
深度学习·机器学习·可解释性
澳鹏Appen5 小时前
AI安全:构建负责任且可靠的系统
人工智能·安全
蹦蹦跳跳真可爱5895 小时前
Python----机器学习(KNN:使用数学方法实现KNN)
人工智能·python·机器学习
视界宝藏库6 小时前
多元 AI 配音软件,打造独特音频体验
人工智能
xinxiyinhe6 小时前
GitHub上英语学习工具的精选分类汇总
人工智能·deepseek·学习英语精选
ZStack开发者社区7 小时前
全球化2.0 | ZStack举办香港Partner Day,推动AIOS智塔+DeepSeek海外实践
人工智能·云计算
Spcarrydoinb8 小时前
基于yolo11的BGA图像目标检测
人工智能·目标检测·计算机视觉