图像分类网络1——感知机

本文介绍了感知机的历史背景,重点讨论了其工作原理,随后深入剖析了多层深度前馈网络的概念及其在实际代码中的应用。通过对比,读者将理解神经网络中从简单到复杂的基本构建模块。

1 简介

要理解神经网络,先解释一种叫做感知机(perceptron)的人工神经元。感知机由科学家Frank Rosenblatt发明于1950至1960年代,他受到了来自Warren McCulloch 和Walter Pitts的更早工作的启发。

注:我们通常使用其它种类的人工神经元模型,主要使用的是一种叫做sigmoid神经元(sigmoid neuron)的神经元模型。

在这里插入图片描述

2 问题

在这里插入图片描述

在这里插入图片描述

3 多层网络

深度前馈网络
在这里插入图片描述

4 代码实现

直接看多层感知机吧,留一层就是感知机
### 使用多层感知机(MLP)实现图像分类 #### 数据预处理 为了使多层感知机能有效地用于图像分类,数据集中的每张图片需转换成适合输入到模型的形式。通常情况下,这意味着要将二维或多维的像素矩阵展平为一维向量,并对其进行标准化或归一化操作以提高训练效率和准确性[^1]。 ```python from sklearn.preprocessing import StandardScaler import numpy as np def preprocess_images(images): # 将图像展平并标准化 scaler = StandardScaler() flat_images = images.reshape((images.shape[0], -1)) scaled_images = scaler.fit_transform(flat_images) return scaled_images, scaler ``` #### 构建MLP模型 构建一个多层感知机来执行图像分类任务涉及定义网络架构——即层数、各隐藏层节点数以及激活函数的选择等参数设置。对于大多数简单的图像识别问题来说,三层结构(含一个输入层、若干个隐含层及单个输出层)已经足够强大[^2]。 ```python from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Dropout def create_mlp_model(input_dim, num_classes): model = Sequential([ Dense(512, activation='relu', input_shape=(input_dim,)), Dropout(0.2), Dense(256, activation='relu'), Dropout(0.2), Dense(num_classes, activation='softmax') ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) return model ``` #### 训练过程 一旦完成了上述准备工作之后就可以开始训练这个基于MLP的图像分类器了。这一步骤主要包括指定批次大小(batch size),迭代次数(epoch number)以及其他超参调优工作;同时还需要考虑采用何种方式评估模型性能以便及时调整策略确保最终获得良好的泛化能力[^3]。 ```python model.fit(scaled_train_images, train_labels, epochs=20, batch_size=128, validation_data=(scaled_val_images, val_labels)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太阳花bigdata

如果文章给您带来帮助,感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值