深度学习入门(一):感知机与输入数据

news2024/9/20 8:02:00

单层感知机与多层感知机

单层感知机(Single-Layer Perceptron)和多层感知机(Multi-Layer Perceptron,简称MLP)是神经网络的基本形式,用于执行各种机器学习任务,包括分类和回归。它们都基于早期的神经网络概念,其核心在于模拟人脑中神经元的工作方式。

单层感知机

单层感知机是最简单的神经网络形式,由一个输入层和一个输出层组成,其中输出层包含一个或多个独立的神经元。它的主要目的是执行线性分类。

结构和工作原理

  • 输入层:接收输入特征(x1, x2, ..., xn),通常包括一个偏置项(bias),即x0=1。
  • 权重:每个输入特征有一个权重(w0, w1, w2, ..., wn),其中w0是偏置权重。
  • 激活函数:通常使用阶跃函数(例如,Heaviside step function),输出只有两种状态(比如0和1)。

在计算中,感知机将输入特征与相应的权重相乘,然后将结果相加得到一个总和。这个总和通过激活函数转换成输出结果。

偏置项的作用

偏置项的主要作用是允许模型在没有输入特征时仍然可以输出一个非零值,从而增加模型的灵活性和表达能力。它可以帮助调整决策边界的位置,使得模型在处理各种数据集时更具有适应性。无论是单层感知机还是多层感知机,都具有偏置项,只不过单层感知机只会有一个常数偏置,故上图中数学表达式还可进一步理解:

多层感知机(MLP)

多层感知机是一种更复杂的神经网络,它由一个输入层、一个或多个隐藏层以及一个输出层组成。隐藏层的引入使MLP能够学习更复杂的数据模式,执行非线性分类和回归任务。

结构和工作原理:

  • 输入层:接收原始数据输入。
  • 隐藏层:每一层由多个神经元组成,每个神经元都接收前一层的所有输出作为输入,并输出到下一层。隐藏层允许网络捕捉输入数据中的复杂模式。
  • 输出层:根据最后一个隐藏层的输出生成网络的最终输出。
  • 激活函数隐藏层和输出层的神经元通常使用非线性激活函数,如Sigmoid、tanh或ReLU。这些激活函数帮助网络捕捉非线性关系。

学习过程

无论是单层还是多层感知机,它们的学习过程通常涉及以下步骤:

  1. 前向传播:输入数据通过网络向前传递,每层的输出作为下一层的输入,直至生成最终输出。
  2. 损失计算:根据网络输出和真实标签计算一个损失值,该值衡量了网络的预测误差。
  3. 反向传播:通过计算损失相对于每个权重的导数,并利用这些导数更新权重,从而减小损失。

单层感知机和多层感知机是构建更复杂神经网络模型的基石。虽然单层感知机仅限于解决线性可分问题,但多层感知机通过引入一个或多个隐藏层,能够处理非线性问题,极大地扩展了神经网络的应用范围。这种基本的网络结构为现代深度学习的发展奠定了基础,从简单的二分类到复杂的图像识别、自然语言处理等问题都有广泛应用。


如何向神经网络中输入数据?

向神经网络输入数据通常涉及几个关键步骤,包括数据格式化、标准化或归一化、以及必要时的编码处理。这些预处理步骤对于模型的训练效率和最终性能至关重要。

数据输入与预处理

  1. 数据格式化(满足格式要求):确保输入数据的格式符合神经网络的要求。例如,对于图像数据,通常需要将图片转换为统一的尺寸和色彩深度。

  2. 归一化与标准化

    • 归一化 (Normalization):将数据缩放到0到1的范围内。这在处理图像数据时非常常见,通常通过将每个像素值除以255(像素的最大值)来实现。
    • 标准化 (Standardization):将数据转换为均值为0,标准差为1的分布。这主要用于处理数值型数据,有助于加快学习过程并提高模型的收敛速度
  3. 编码

    1. 对于分类任务,标签通常需要进行独热编码(One-Hot Encoding)。

    2. 使用one-hot编码,将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点。将离散型特征使用one-hot编码,会让特征之间的距离计算更加合理。(因为有些类别为非数值型,例如‘男’、‘女’如果处于离散特征的计算范围之内,那么这些类别标签需要编码为二进制向量,才能更好地计算其欧式距离,进一步根据欧式距离计算特征相似性等)

预处理策略选择

预处理策略的选择取决于几个因素:

  • 数据类型:图像、文本、声音或时间序列数据可能需要不同的预处理方法。
  • 网络类型:不同的神经网络架构可能对数据的格式有特定的要求。例如,卷积神经网络通常需要将图像数据作为输入,而循环神经网络则优于处理序列数据。
  • 数据分布:数据的原始分布可能会影响选择何种标准化或归一化方法。
  • 计算效率:某些预处理技术可以减少模型训练时间和提高模型的收敛速度。

图像数据的具体处理

当我们想输入一张图片到神经网络时,需要处理图像的三个颜色通道(红色、绿色、蓝色),每个通道可以被看作一个矩阵(二维数组),其大小取决于图像的分辨率。例如,一张256x256像素的彩色图像将有三个256x256的矩阵,每个矩阵对应一个颜色通道。

在输入到神经网络之前,通常会执行以下步骤:

  • 尺寸调整:确保所有输入图像具有相同的尺寸,这对于模型处理是必需的。通常,将所有图片特征(每个矩阵的特征数为像素px*px*256)以特征向量(一维,由三个RGB矩阵对应的全部特征组成)的形式传入神经网络
  • 归一化:将像素值从[0, 255]缩放到[0, 1]范围,这有助于网络更好地处理输入数据。

这样的预处理不仅有助于网络更有效地学习,还有助于避免某些常见问题,如梯度消失或爆炸,这些问题可能会在训练过程中导致不稳定。


归一化与激活函数的“归一化”

归一化

归一化通常是指在数据预处理阶段将输入数据(例如图像像素值)调整到一个统一的数值范围,比如将像素值从[0, 255]缩放到[0, 1]。这个过程通常是通过简单地将每个像素值除以255来实现的。主要目的是:

  • 改善数值稳定性避免在网络中出现过大的数值,这些数值可能导致计算中的数值不稳定性,例如梯度消失或梯度爆炸。
  • 加快训练过程:当输入特征具有相似的数值范围时,梯度下降算法(或其他优化算法)更容易找到误差函数的最小值。

激活函数

激活函数如Sigmoid、ReLU等,则是在神经网络的各个层中使用,用来引入非线性,使得网络可以学习和模拟复杂的函数和决策边界。激活函数的作用包括:

  • 非线性引入:没有激活函数,无论神经网络有多少层,其本质上还是一个线性模型,不能学习数据中的非线性关系。
  • 决策制作在分类问题中,如Sigmoid函数可以将值压缩到0和1之间,常用于二分类的最后输出,表示概率。所以,激活函数也可以实现类似“归一化”(Sigmoid)或者“非零化”(ReLU)的作用,但这只是对于输出数据而言,它不属于数据预处理部分。

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

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

相关文章

赚他10个亿...

体育竞技 & 商业价值 虽然昨天遭受了全球黑一,但四年一度的奥运会还是要关注的。 不知道最近大家是否有关注巴黎奥运会,印象深刻的项目又是哪个? 截止于发稿前,目前「金牌榜」上,中国以微弱优势位于第一&#xff0…

CDGA/CDGP数据治理证书:含金量高,职场竞争力提升的明智之选

在当今这个数据驱动的时代,数据已成为企业最宝贵的资产之一,而高效、合规的数据治理则是挖掘数据价值、驱动业务增长的关键。随着企业对数据治理重视程度的不断提升,拥有专业数据治理知识和技能的人才变得尤为稀缺。在此背景下,CD…

win10批量修改文件名,记得保存文件

打开需要修改的文件夹新建文本内容如下 DIR . /B>文件列表.csv 并另存为bat文件,注意编码,双击bat文件生成Excel 打开Excel 填写你的文件名至B列,如我需要在文件名前面都加上spi5_公式D1&A1 C列输入"REN "&"""&q…

【C++BFS算法】2059. 转化数字的最小运算数

本文涉及知识点 CBFS算法 LeetCode2059. 转化数字的最小运算数 给你一个下标从 0 开始的整数数组 nums ,该数组由 互不相同 的数字组成。另给你两个整数 start 和 goal 。 整数 x 的值最开始设为 start ,你打算执行一些运算使 x 转化为 goal 。你可以…

实验8-1-7 数组循环右移

本题要求实现一个对数组进行循环右移的简单函数:一个数组a中存有n(>0)个整数,将每个整数循环向右移m(≥0)个位置,即将a中的数据 (最后m个数循环移至最前面的m个位置)…

CMU15445 (Fall 2023) Project 4 - Concurrency Control 思路分享

文章目录 写在前面Task 1 - Timestamps1.1 Timestamp Allocation1.2 Watermark Task 2 - Storage Format and Sequential Scan2.1 Tuple Reconstruction2.2 Sequential Scan / Tuple Retrieval Task 3 - MVCC Executors3.1 Insert Executor3.2 Commit3.3 Update and Delete Exe…

FreeIPA安装

一、环境准备 主机名IP角色master. bhlu. com192.168.22.10服务端node1. bhlu. com192.168.22.11客户端 两台服务器关闭防火墙和 selinux配置好 yum 源 1.1 配置 chronyd 配置好 chronyd,使用 chronyc source -v 可以验证 # 这里写了一个playbook作为示例了 --…

OpenHarmony网络请求库-axios

简介 Axios ,是一个基于 promise 的网络请求库,可以运行 node.js 和浏览器中。本库基于 Axios 原库v1.3.4版本进行适配,使其可以运行在 OpenHarmony,并沿用其现有用法和特性。 http 请求Promise APIrequest 和 response 拦截器转…

Codeforces Round 920 (Div. 3) A~E 题

A. Square 题目链接: Problem - A - Codeforces 思路: 题目比较简单:就是给你一个矩形的四个顶点的坐标,然后让你求矩形的面积,我们知道矩形的面积等于长乘宽,那么,如何就矩形的长和宽&…

ctfhub Bypass disable_function

LD_PRELOAD url 蚁剑连接 选择插件 点击开始 查看到此文件名编辑连接拼接到url后面重新连接 点击开启终端 在终端执行命令 ls / /readfile ShellShock url CTFHub 环境实例 | 提示信息 蚁剑连接 写入shell.php <?phpeval($_REQUEST[ant]);putenv("PHP_test() { :…

ViT论文详解

文章目录 前言一、ViT理论二、模型结构三、实验结果总结 前言 ViT是谷歌团队在2021年3月发表的一篇论文&#xff0c;论文全称是《AN IMAGE IS WORTH 16X16 WORDS:TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE》一张图片分成16x16大小的区域&#xff1a;使用Transformer进行按比…

如何将Python程序打包成exe程序

众所周知,通过python开发的程序要运行,一般需要安装python环境来运行程序文件,那么如何在未安装python环境的电脑上直接运行程序呢?通常采用Pyinstaller来实现的,本文主要对该打包过程进行具体说明。本文重点解决PyQt5在打包时无法正确运行的问题。 一、安装Pyinstaller 安…

Docker常用命令与相关操作(更新中)

Docker介绍 1.什么是Docker Docker是一个开源的应用容器引擎&#xff0c;它是一个是基于Go语言开发的开源项目。使用Docker可以让开发者封装他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任意的Linux机器上&#xff0c;也可以实现虚拟化。Docker容器完全使…

机房空调远程控制方案

概述 企业和园区都会有电力机房&#xff0c;往往会配备抽风机或者空调设备。特别在南方&#xff0c;空气湿度大时特别需要这些设备。经常有业主反馈&#xff0c;下班后靠人力到现场控制不太方便&#xff0c;24小时开启又浪费资源&#xff0c;而且可能有长期噪声污染。为此&…

Tomato靶机

修改网络模式为NAT 主机发现 arp-scan -l 端口扫描 nmap 192.168.48.147 nmap -sC -sV -O 192.168.48.147 -sC常见漏洞脚本扫描 -sV开放端口服务/版本号 -O操作系统探测 端口利用 访问web服务 目录扫描 dirb http://192.168.48.147 访问 http://192.168.48.147/antibot_im…

盘点4款令人惊艳的视频剪辑工具

在这个短视频盛行的时代&#xff0c;每个人都可以成为视频内容的创作者。但是&#xff0c;在此之前&#xff0c;拥有一款适合自己的剪辑软件十分重要。今天我就来和大家来说一说我自己觉得比较好用的4款剪辑软件。 1、福昕剪辑神器 直达链接&#xff1a;www.pdf365.cn/foxit-c…

如何将iphone照片导入电脑?4种使用的照片导入办法

你是否曾为如何将iPhone上的照片导入电脑而烦恼&#xff1f;是否尝试过多种方法&#xff0c;却总是觉得步骤繁琐、效率低下&#xff1f;不用再为找不到好方法而挠头了&#xff01; 下面分享几种实用的导入办法&#xff0c;让你在短时间内将照片从iPhone照片导入电脑&#xff0…

学习笔记 韩顺平 零基础30天学会Java(2024.8.6)

P471 String对象特性2 数组默认情况下是放到堆里面的 只要调用一个方法就会产生一个新栈&#xff0c;因为是在主方法里创建对象的&#xff0c;所以对象是在栈里面&#xff0c;而str ch这些都应该在堆里面&#xff0c;栈里的对象指向堆中的str ch。这一题很像学C语言的时候遇到的…

红外遥控风扇——arduino

红外遥控风扇——arduino 本节课任务红外遥控红外遥控通信过程红外遥控套件红外遥控接线实现风扇的多种换挡方式用本节课所学的红外遥控&#xff0c;控制RGB彩灯变换颜色&#xff0c;至少配置4种 本节课任务 1、了解红外遥控技术在生活中的运用。 2、学会编程测试红外遥控器的…