看懂本文,入门神经网络Neural Network

神经网络(Neural Network)

1.1图片

每一个图片都是三维数组,每个像素的值为0-255,如

训练集Training Dataset:“上课学的知识”,用于训练模型得到参数

验证集Validation Dataset:“课后习题”,用于纠正和强化知识点,用来评估不同超参数训练出的模型效果,从而优化模型

测试机 Test Dataset“期末考试”,用于评估最终模型效果

        例如:已知T1(x1,y1)、T2(x2,y2)、T3(x3,y3)三个点,利用T1,T2得出y=ax+b直线,这个T1,T2就是训练集,他们参与了模型的训练得到了参数a,b。将x=x3代入得到y3’ ,比较输出y3 与标签值y3,就能衡量模型的好坏,T3参与了模型评估,T3是测试集。a,b就是训练的目标,但是,在训练模型前,要设定其他参数,如选用哪个函数空间?用什么损失函数来衡量输出与标签之间的差异?要采用哪种优化算法?等等这些问题设计的参数都是需要提取设计的超参数。可以利用验证集去寻找最优模型。

        训练集训练模型得到参数后,验证集在这个参数和超参数下训练得到的模型进行评估,并找到最优的一组超参数,然后将超参数固定,再拿到训练集上重新训练模型,最后由测试集评估最终模型性能 

1.2线性函数(得分函数)

        如,这个猫是32*32*3的像素构成,其中某些点是促进成猫的,有些像素点是抑制成为猫的,函数f(x,W)中,x表示像素点,W表示像素点的权重(得分,即促猫的程度)。

        f(x,W)=Wx+b,例如这个图片32*32*3=3072,视为3072*1的矩阵,对于猫的权重矩阵W1=1*3072,对于其他的类型,有它的Wn(n为自己想要的分类数,也可以5分类,8分类等),假设这里为10(W2可以为狗,W3可以为汽车....等等)这个n取决于自己想要的分类,则总共的W为10*3072的矩阵,再乘以图片矩阵3072*1,得到10*1的得分矩阵(第一项为W1猫的得分,第二项为W2狗的得分......),Wx起到的是决定性作用,后面的b为偏置参数,起到微调的作用(这个例子b为10*1的矩阵)

综上,对于特定的图片,它的x是不会变化的,而W权重矩阵是需要给出的,整个机器学习、深度学习就是在寻找更好的W,来输出更准确的结果。神经网络就是一直在优化W。每个特征点是独立的,则每个特征点对应的权重参数Wi的每个值也是独立的。

1.3损失函数

        得分矩阵的数值如何来说明问题?可以用损失函数来描述。神经网络可以做分类可以做回归,区别在于他们的损失函数不同,而网络结构是不改变的。

        如上图,第一列中,图片明明是猫,却是汽车的得分最高,定义了如上的损失函数,sj 为错误值,syi 为正确值,经过损失函数的计算,可得出一个数据,能够表示预测的正确性(表示是否区分开)。例如第一列猫图片的计算(右上角)。损失函数后面的+1表示的是容忍程度(一般为∆ ,用∆ 表示容忍程度),如第一列,cat为3.2,car为3.15,没有+∆ 计算后值为0,即没有损失了,效果会不好,若有+1 ,计算后为1.05,表明识别情况。损失函数越小越好。

        右上角第一个计算后值为2.9就为loss值;第二个计算后为0(car比其他值都大1),表明做的很好,loss值为0;第三个计算后值为10.9,表明做的很差

1.3.1注意问题

        损失函数值相同,两个模型效果一样吗?

        如上图,w1和w2与x计算后值都为1,但是w1过于关注x的第一参数,会导致过拟合的现象,这是不想要的。所以要加上正则化惩罚项。

如上 称为data_loss,即为数据在当前损失函数的损失,正则化惩罚项为模型的权重参数带来的损失,直接用平方来表示,λ 表示惩罚系数,它越大,表示你不希望过拟合(正则化惩罚项和数据损失是矛盾的,数据损失是要预测值与真实值越来越接近,就要满足每一个样本需求,正则化惩罚项要求不要满足每一个,所以引入λ )。

我们希望模型不要太复杂,因为神经网络太强大了,过拟合风险很高。过拟合指的是模型只关注于局部特征,没有放眼所有的位置。相应的就是泛化能力。

1.4 Softmax分类器

现在学的得到的是得分值和损失函数值,我们想要的是概率值

 

        如上图,得分矩阵中某些值差距很小,先进行一次指数运算放大差距(负数会变为正数且值很小),然后进行归一化转为概率(0.13=24.5/24.5+164.0+0.18 ),再进行对数函数计算损失值。具体公式如下:

        对数运算,-log(0.13)会得出一个较大的值,而越接近1,loss的值越小,越接近0,这就是对数函数的特点。

1.5前向传播、反向传播

1.5.1前向传播

        经过以上过程,由一个w和x最终得到loss,就为前向传播。神经网络的目的是更新权重矩阵w,比如现在的loss很高,现在要更新w将loss降低,这个过程就是反向传播(梯度下降)

1.5.2梯度下降算法(更新W)

利用公式进行参数更新(J(w)是损失函数),寻求最小的loss,a为人为设定的值(超参数),称为学习率,a一般取0.05或0.001,这是一个经验值,有些论文使其变化,刚开始较大,后面越来越小,使之取向最小loss。

同理,b的更新方式是

1.6神经网络

①input layer输入层,表示输入的 特征个数(小猫图片就有32*32*3=3072个圈)

②hidden layer1隐层1,它与输入层每一个圈全部连接,称为全连接,将输入层转化为更多的特征,由输入层转化为隐层1,经过了矩阵乘法(输入层为1*3,隐层1是1*4,则W1矩阵是3*4的矩阵),即就是输入层经过了权重矩阵W1进行了特征提取

③hidden layer2隐层2,与隐层1也是全连接,经过 了W2矩阵(这里是4*4的矩阵)的特征提取。一般情况隐层有很多层。这些隐层的目的就是为了让计算机更好的识别

④output layer输出层,隐层2乘以W3(这里是4*1的矩阵),得出预测结果。最终结果取决于W1,W2,W3好不好,因为输入X是固定的

⑤每次前一项与W相乘后,要进行一次非线性变换(X与W1组合后,进行非线性变换,再与W2进行组合)。这就是为什么不直接用一个W=W1*W2*W3直接变换。非线性函数有很多,只要不是线性的就行。如下:非线性函数是max(0,Wx)

        注意,神经元并不是越多越好,比如这里,隐层1为4个特征,也可以为5,越大更容易拟合,但是速度会相应的下降

        正则化的影响:越小越过拟合

        神经元数量的影响,隐层数量:一般为64,128,256,512等,越大越过拟合

1.7激活函数

        激活函数是神经网络中比较重要的部分,常用的有Sigmoid,Relu,Tanh等。最开始一般为Sigmoid函数,但是它靠两边的部分梯度接近0,这是个问题,称为梯度消失。

        Relu函数经常使用,其他情况也是Relu函数的变体。激活函数就是使用在每次乘法之后的非线性函数,用于非线性变换。

1.8数据预处理

对于输入数据,先进行数据中心化(实际坐标值-均值),再进行放缩或扩充(除以标准差)

1.9 参数初始化

        比如权重矩阵是3*4的矩阵,每个都有(通过策略生成的)随机的值W=0.01*np.random.randn(D,H),这里D,H为3,4,乘以0.01是为了权重参数值不要浮动大。

1.10 DROP-OUT

        由于神经网络过于强大,容易出现过拟合的情况,这也是近年来致力于解决的问题,前面提出了正则化的解决方法(R(w)),还有方法就是DROP-OUT。

        上图左边是正常神经网络,每个都是全连接,drop-out就是在每一层随机杀死部分神经元,每次训练在每一层都是随机的杀死神经元(而不是说直接去除它们)。这只是在训练阶段进行,测试阶段直接使用,不要杀死。

1.11图像增强

        如果数据集很少,就要考虑图像增强。目的是增加相似的数据集,并且防止过拟合,使网络更强壮,这些操作都是再Alexnet上提出的。

1.11.1水平翻转

1.11.2随机旋转

图片随机旋转(-45°,45°)的度数

1.11.3随机裁剪(比较好用)

如227*227的图片,裁剪成224*224,再每次一单位的滑动,最终得到9张类似的图片

1.11.3 PCA操作

更改亮度、对比度、饱和度、色相等等

1.11.4 转换为灰度

例如RGB转化为RRR,GGG,BBB等,或转化为灰度图。

注意:1.11.3和1.11.4的操作使用的很少。

总结

        以上就是神经网络的基础知识,看懂后能迅速入门神经网络,是理解更复杂的网络如CNN(卷积神经网络)的前提,学会后建议直接学习CNN卷积神经网络。也可以看Alexnet,vgg,resnet等经典网络,这些也是基于卷积神经网络实现的。

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

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

相关文章

Zoho Books助外贸,应收账款简化管

ZohoBooks财务管理软件助外贸企业精准管理客户信息,简化跨境开票,集成支付网关自动对账,智能提醒跟进账款,提供强大报表分析功能,支持多币种和当地税法,促进财务健康与资金回笼。 一、精准的客户信息管理 …

保姆级教程!!教你通过【Pycharm远程】连接服务器运行项目代码

小罗碎碎念 这篇文章主要解决一个问题——我有服务器,但是不知道怎么拿来写代码,跑深度学习项目。确实,玩深度学习的成本比较高,无论是前期的学习成本,还是你需要具备的硬件成本,都是拦路虎。小罗没有办法…

作业调度和程序装入内存

作业调度 我们知道,磁盘上的可执行程序只有装入内存,成为进程才可以运行。在磁盘上有许多的可执行程序等待被操作系统唤入内存执行,我们把可执行程序在磁盘上的调度称之为作业调度。 注意:这种说法听起来好像是作业在磁盘上的调…

广义布里渊区方程推导过程中一个公式的理解

是对DOI: 10.1103/PhysRevLett.123.066404补充材料公式(S25)的理解 clear;clc;close all q2; N1;Mq*N; syms LMatsym(zeros(2*M,2*M));for ii1:MTp[];for jj1:2*M%eval([syms , f,num2str(ii),num2str(jj)]);eval([syms ,f,num2str(ii),_beta,num2str(jj),_ES])%eval([temp,f,…

嵌入式linux中HDMI驱动操作方法

大家好,今天主要给大家分享一下,linux系统里面的HDMI驱动实现方法。 第一:HDMI基本简介 HDMI 全称为 High Definition Multimedia Interface,也就是高清多媒体接口,是一个纯数字的音视频传输接口,通过一根线同时发送音视频数据。目前在电视、显示器、电脑、机顶盒等领域得…

边缘的检测

边缘检测效果,是一种用于突出图像中的边缘,使物体的轮廓更加明显的图像处理技术,边缘检测的主要目的是找到图像中亮度变化显著的区域,这些区域通常对应于物体的边界,边缘检测相当于利用 Shader 代码自动给屏幕图像进行…

架构篇(05理解架构的服务演化)

目录 学习前言 一、服务演化简介 二、方向一:架构服务化 单体分层架构 面向服务架构 - SOA 微服务架构 - Microservices 云原生架构 - Cloud Native 三、方向二:部署容器编排化 虚拟机 容器 Kubernetes 与编排 四、参考文献 学习前言 Kubern…

娶老婆花了30万彩礼,结婚2个月,她前夫给我20万,让我老婆和他生孩子!

我叫李志强,今年32岁,在一家物流公司当经理。去年我娶了我老婆张美玲,为了这场婚礼,我花了30万彩礼。美玲比我小3岁,是个护士,长得漂亮又温柔,我觉得自己找到了真爱。 结婚前,美玲就…

基于SpringBoot的国风服装商城系统+LW示例参考

1.项目介绍 系统角色:管理员、普通用户功能模块:管理员(用户管理、商品管理、分类管理、订单管理、系统管理、在线客服等),普通用户(登录注册、个人中心、评价管理、收藏管理、订单管理等、咨询服务等&…

GB/T 43206—2023信息安全技术信息系统密码应用测评要求(五)

文章目录 附录AA.1 概述A.2 密钥产生A.3 密钥分发A.4 密钥存储A.5 密钥使用A.6 密钥更新A.7 密钥归档A. 8 密钥撤销A.9 密钥备份A.10 密钥恢复A.11 密钥销毁 附录B附录C 附录A A.1 概述 密钥管理对于保证密钥全生存周期的安全性至关重要 ,可以保证密钥(除公开密钥外) 不被非授…

jmeter常用配置元件介绍总结之前置处理器、测试片段

系列文章目录 安装jmeter jmeter常用配置元件介绍总结之前置处理器、测试片段 6.前置处理器6.1用户参数6.2取样器超时6.3.测试片段6.4JSR223 PreProcessor6.5.JDBC PreProcessor 6.前置处理器 在取样器请求之前执行的操作,优先级比取样器高,用来处理一些…

【IT人物系列】之Java之父

前言 当今世界由无数的人构成,其中有些人做了一些改变世界的事情,比如:乔布斯缔造了Apple帝国,‌詹姆斯高斯林创造了Java语言等。正是这些优秀的人做的这些优秀的事情,让这个世界更加美好。因此他们值得铭记。 从今天…

鸿蒙开发基础入门

一、熟悉目录结构 二、ArkTS语法介绍 ArkTS是为构建高性能应用设计的编程语言,语法继承TypeScript,并进行了优化,拥有更强的类型约束ArkTS提供了声明式UI范式,符合移动开发的最新趋势 ArkTS摒弃了部分影响运行时的性能的语法&…

大数据机器学习算法和计算机视觉应用01:博弈论基础

Game Theory 2-player Zero Sum GameMinimax Optimal StrategiesVon Neumann’s Minimax TheoremLower Bounds for Randomized AlgorithmsGeneral sum games, Nash quilibria (p.s:该系列是国际交流学术公开课的笔记,主讲人是Carnegie Melon University的终身教授…

如何安装和配置JDK17

教程目录 零、引言1、新特性概览2、性能优化3、安全性增强4、其他改进5、总结 一、下载安装二、环境配置三、测试验证 零、引言 JDK 17(Java Development Kit 17)是Java平台的一个重要版本,它带来了许多新特性和改进,进一步提升了…

【C++进阶】智能指针的使用及原理(1)

1. 智能指针的使用场景分析 下面程序中我们可以看到,new了以后,我们也delete了,但是因为抛异常导,后面的delete没有得到执行,所以就内存泄漏了,所以我们需要new以后捕获异常,捕获到异常后delete…

计算机课程管理:Spring Boot实现的工程认证路径

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了基于工程教育认证的计算机课程管理平台的开发全过程。通过分析基于工程教育认证的计算机课程管理平台管理的不足,创建了一个计算机管理基于工程教育认…

【人工智能训练师】综合案例 HBase与Hive的集成

9.1 HBase与Hive 任务目的 简单回顾了解hive 了解hive与hbase的区别 任务清单 任务1:hive简介 任务2:hbase与hive的区别 任务步骤 任务1:hive简介   什么是Hive呢? Apache Hive是一个构建在Hadoop基础设施之上的数据仓库。 构…

基于STM32的图像处理监控系统

1. 引言 随着物联网和智能家居的普及,图像处理和监控系统在安全防范、家庭监控等方面应用越来越广泛。本项目旨在使用STM32开发板和OV7670摄像头模块搭建一个简单的图像处理监控系统。系统能够捕获图像并进行基本的处理与展示。 2. 环境准备2.1 硬件需求 - STM32开…

QML-简单项目实战一

一、简介 使用QML创建一个简单的登录界面,代码内容来源于bilibili中的视频。 实现效果图如下: 二、实现步骤 1. 核心控件和布局管理和登录事件处理 import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Window 2.12 /*1. 核心控件和布局…