深度学习入门笔记(8)—— Multilayer Perceptron 多层感知器

在这里插入图片描述
所谓多层感知器,其实就是具有一个或多个隐藏层(hidden layer)的全连接前馈神经网络,如图所示,在最重要的求取损失关于权重的偏导数的过程上,跟之前的 Logistic Regression 和 Softmax Regression 一样,仍然是使用链式法则进行求导。

在这里插入图片描述
为了将感知器、Logistic Regression 和 Adaline 看作是单层神经网络,习惯上,我们把输入层作为第 0 层,把第一个隐藏层作为第 1 层,以此类推。在符号上也是如此,a2(1)a_2^{(1)}a2(1) 表示第 1 层的第 2 个神经元,即第一个隐藏层的第 2 个神经元。

在这里插入图片描述
单层神经网络模型的损失函数是凸函数,而在多层神经网络模型下就不是了,凸函数会存在很多的局部极小值点,所以需要进行多次不同的权重初始化,以防止损失陷入局部极小值点。

在这里插入图片描述
Sigmoid 激活函数 + MSE 损失函数的组合虽然在形式上很好(Sigmoid 函数的导数抵消了负对数似然函数导数的分母),但是 Sigmoid 函数 σ(z)\sigma (z)σ(z) 当输入 z 很小时,其输出也会很小,这就造成了梯度消失的问题。

在这里插入图片描述
但是,在 MLP 中,只有隐藏层还不够,还需要加上非线性的激活函数,才能解决异或问题。Logistic Regression 是无隐藏层 + 非线性激活函数,线性 MLP 是有隐藏层 + 线性激活函数,它们都是只能产生线性决策边界的。

在这里插入图片描述
在这里插入图片描述
在非线性激活函数中,Sigmoid 和 Tanh(及其变种)都是 S 型曲线,而 Tanh 与 Sigmoid 相比,优势在于其过零点、零点附近的曲线更陡峭(梯度大)、可以同时产生正负值(避免了梯度消失)

在这里插入图片描述
在这里插入图片描述

ReLU 及其变种,当 ReLU 函数的输入小于 0 时,斜率也为 0,相当于神经元“死亡”,如果太多神经元“死亡”就会影响训练,但也可以看作是一种剪枝或者正则化方法(避免过拟合)。Leaky ReLU 的 α 是超参数,需要人为设定;而PReLU 中的 α 是通过训练得到的。

在这里插入图片描述
在 Smooth Adversarial Training 这篇论文中,作者比较了不同激活函数的性能与鲁棒性。

在这里插入图片描述
代码示例 1 是 Sigmoid + 均方损失,代码示例 2 是 Softmax + 交叉熵损失,后者的性能更好,可能是因为前面提到过的,Sigmoid + MSE 的组合会留下 σ(z)(1−σ(z))\sigma (z) (1 - \sigma (z))σ(z)(1σ(z)) ,这是两个小数的乘积,值会越来越小导致梯度消失。

在这里插入图片描述
在这里插入图片描述
虽然已经有论文证明单层神经网络可以逼近任意函数,但不代表它是可行的。使用深度学习而不是宽度学习,好处是能用更少的神经元(参数)得到相同的学习能力,而后面的层受到前面层的限制,也可以避免过拟合,但是层数多会造成梯度消失和梯度爆炸的问题。

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

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

相关文章

蓝桥杯-填空题-门牌制作

一&#xff1a;题目 二&#xff1a;代码 #include <iostream> using namespace std; int main() {int nums 2020;int count 0;string str to_string(nums);for(int i 1; i < nums; i) {string str to_string(i);for(auto temp: str) {if(temp 2){count;}}}cout…

.NET Core中间件与依赖注入的一些思考

点击上方蓝字"小黑在哪里"关注我吧1.起源? 为什么会有这篇文章呢? 源于我看了老A的aspnet core 3 框架揭秘[1] 请求管道 篇产生的疑惑?三点疑惑:Singleton服务中注入Scoped服务产生内存泄露?关于中间件的生命周期是Singleton的?怎么避免中间件、Singleton服务中…

深度学习入门笔记(9)—— Regularization to avoid overfitting 用正则化来避免过拟合

在维基百科的词条中&#xff0c;正则化就是让答案变得更简单的&#xff0c;目的是防止过拟合。在分类上可以分为显式正则化&#xff08;对目标函数添加先验、惩罚、约束、成本&#xff09;和隐式正则化&#xff08;所有其他形式的正则化如提前停止、集成学习、Dropout 等&#…

蓝桥杯-填空题-购物单

一&#xff1a;题目 **** 180.90 88折 **** 10.25 65折 **** 56.14 9折 **** 104.65 9折 **** 100.30 88折 **** 297.15 半价 **** 26.75 65折 **** 130.62 半价 **** 240.28 …

C# 中 System.Index 结构体和 Hat 运算符(^)的全新用法

翻译自 John Demetriou 2019年2月17日 的文章 《C# 8 – Introducing Index Struct And A Brand New Usage For The Hat Operator》今天我们要讲的是 Hat 运算符(^)。目前为止&#xff0c;Hat 运算符(^)已经被用作布尔类型的异或运算符&#xff0c;以及字节、整型类型的按位异或…

Lagrange Multipliers 拉格朗日乘数法(含 KKT 条件)

最优化问题通常是指对于给定的某一函数&#xff0c;求其在指定作用域上的全局最小值&#xff0c;一般情况下&#xff0c;最优化问题一般分为三种情况&#xff1a; &#xff08;1&#xff09;无约束条件 对于无约束条件的优化问题中&#xff0c;如果一个函数 f 是凸函数&#…

蓝桥杯-代码-数字三角形

一:题目 二:代码 #include <iostream> #include<vector> using namespace std; int main() {/**思路:1.确定dp数组的定义以及下标的含义dp[i][j] 表示的是一条路径到达下标i和j时&#xff0c;的最大值 2.确定dp数组的状态转移公式我们当前位置的最大值其实是由右上…

ABP VNext从单体切换到微服务

注&#xff1a;此处的微服务只考虑服务部分&#xff0c;不考虑内外层网关、认证等。ABP VNext从单体切换到微服务&#xff0c;提供了相当大的便利性&#xff0c;对于各模块内部不要做任何调整&#xff0c;仅需要调整承载体即可。ABP can help you in that point by offerring a…

dotnet 在 UOS 国产系统上使用 Xamarin Forms 创建 xaml 界面的 GTK 应用

在前面几篇博客告诉大家如何部署 GTK 应用&#xff0c;此时的应用是特别弱的&#xff0c;大概只是到拖控件级。尽管和 WinForms 一样也能写出特别强大的应用&#xff0c;但是为了提升一点开发效率&#xff0c;咱开始使用 xaml 神器写界面。本文告诉大家如何在 UOS 国产系统上&a…

赛码-编程题-打字

一:题目 二&#xff1a;上码 #include<bits/stdc.h> using namespace std;int main() {int n;vector<int> v1;cin >> n;for(int i 0; i < n; i) {string str;int count 0;cin >> str;for (int j 0; j < str.size(); j) {int num int(str[j]…

Python 中的 with 语句用法和 Pytorch 中的 with torch.no_grad() 解析

Python 中的 with 语句适用于对资源进行访问的场合&#xff0c;确保不管使用过程中是否发生异常都会执行必要的“清理”操作&#xff08;异常处理&#xff09;&#xff0c;释放资源&#xff0c;比如文件使用后自动关闭&#xff0f;线程中锁的自动获取和释放等。例如下面是文件读…

遍历 Dictionary,你会几种方式?

一&#xff1a;背景 1. 讲故事昨天在 StackOverflow 上看到一个很有趣的问题&#xff0c;说: 你会几种遍历字典的方式&#xff0c;然后跟帖就是各种奇葩的回答&#xff0c;挺有意思&#xff0c;马上就要国庆了&#xff0c;娱乐娱乐吧&#xff0c;说说这种挺无聊的问题?????…

PyTorch 中各种操纵维度的函数比较 view() reshape() squeeze() unsqueeze() flatten()

首先&#xff0c;假设我们有一个三行四列的张量 X&#xff1a; view() 和 reshape() 函数都可以指定并改变张量的维度&#xff0c;它们本质上是相同的&#xff0c;只有两点区别&#xff1a; 1、view() 函数返回的是原始张量的视图&#xff0c;而 reshape() 函数返回的是原始张…

.NET Core 下的 API 网关

网关介绍网关其实就是将我们写好的API全部放在一个统一的地址暴露在公网&#xff0c;提供访问的一个入口。在 .NET Core下可以使用Ocelot来帮助我们很方便的接入API 网关。与之类似的库还有ProxyKit&#xff0c;微软也发布了一个反向代理的库YARP。关于网关的介绍不多说了&…

leetcode剑指 Offer 29. 顺时针打印矩阵

一&#xff1a;题目 二:上码 class Solution { public:vector<int> spiralOrder(vector<vector<int>>& matrix) {//判空处理 否则会出现空指针异常if(matrix.size() 0 || matrix[0].size() 0){return {};}int m matrix.size();// 行int n matrix[0].…

VS也可以这样进行快捷安装

前言记录带新人的那些事&#xff0c;主要是一些工作技巧上的分享部门老大&#xff1a;阿元&#xff0c;明天有几个实习生新人开发来入职&#xff0c;你负责带一下他们阿元&#xff1a;明天吗&#xff1f;哦&#xff0c;好的&#xff0c;顺便问下&#xff1a;男的女的&#xff1…

蓝桥杯-卡片-填空题

一:题目 二:思路 1是最快消耗完的计算1的个数即可 三&#xff1a;上码 #include <iostream> using namespace std; int main() {int ans 0;int count 0;for(int i 1; i < 20000; i) {string str to_string(i);// cout << str << endl;for(int j …

跟我一起学.NetCore之Swagger让前后端不再烦恼及界面自定义

前言随着前后端分离开发模式的流行&#xff0c;接口对接、联调成为常事&#xff0c;前端同事会经常问&#xff1a;我需要调哪个接口&#xff1f;这个接口数据格式是啥&#xff1f;条件都传啥&#xff1f; 对于一些紧急接口可能会采取沟通对接&#xff0c;然后补文档&#xff0c…

由浅入深,带你搞懂 Pytorch 中的张量 tensor 是什么

目录1、tensor 是什么&#xff1f;2、tensor 的三个属性2.1 Rank 秩2.2 Axis&#xff08;复数 为 Axes&#xff09; 轴2.3 Shape 形状3、Pytorch 中 torch.Tensor 的三个属性3.1 torch.dtype3.2 torch.device3.3 torch.layout4、创建张量的两种方法4.1 从现有数据创建张量4.2 凭…

蓝桥杯-排序-填空题

一:题目 二:上码 #include <iostream> using namespace std; int main() {// 请在此输入您的代码/**/**冒泡排序中:我们考虑到最坏的情况,那就是全都是逆序 那么就需要交换 N(N-1)/2; 那么100次 最起码需要 15个字符&#xff0c;而15个字符完全逆序的话 需要交换 105次…