深度学习入门(二):神经网络整体架构

news/2024/12/5 8:48:48/

一、前向传播

作用于每一层的输入,通过逐层计算得到输出结果

二、反向传播

作用于网络输出,通过计算梯度由深到浅更新网络参数
在这里插入图片描述

三、整体架构

层次结构:逐层变换数据
神经元:数据量、矩阵大小(代表输入特征的数量)

x : [ 1 , 3 ] x:[1,3] x[1,3]
w 1 : [ 3 , 4 ] w_1:[3,4] w1[3,4]
h i d d e n l a y e r 1 : [ 1 , 4 ] hidden layer1:[1,4] hiddenlayer1[1,4]
w 2 : [ 4 , 4 ] w_2:[4,4] w2[4,4]
h i d d e n l a y e r 2 : [ 1 , 4 ] hidden layer2:[1,4] hiddenlayer2[1,4]
w 3 : [ 4 , 1 ] w_3:[4,1] w3[4,1]
在这里插入图片描述

非线性操作加在每一步矩阵计算之后,增加神经网络的非线性。没有激活函数的每层都相当于矩阵相乘。就算你叠加了若干层之后,无非还是个矩阵相乘罢了。

在这里插入图片描述

四、神经元个数对结果的影响(Stanford例子)

Stanford可视化的神经网络,可以自行调参数试试

1、 num_neurons:1

将神经元设置为1,查看效果

layer_defs = [];
layer_defs.push({type:'input', out_sx:1, out_sy:1, out_depth:2});
layer_defs.push({type:'fc',  num_neurons:1, activation: 'tanh'});
layer_defs.push({type:'fc', num_neurons:1, activation: 'tanh'});
layer_defs.push({type:'softmax', num_classes:2});net = new convnetjs.Net();
net.makeLayers(layer_defs);trainer = new convnetjs.SGDTrainer(net, {learning_rate:0.01, momentum:0.1, batch_size:10, l2_decay:0.001});

查看circle data,可以看出效果不佳,看上去像切了一刀。
在这里插入图片描述

2、 num_neurons:2

将神经元设置为2,查看效果

layer_defs = [];
layer_defs.push({type:'input', out_sx:1, out_sy:1, out_depth:2});
layer_defs.push({type:'fc', num_neurons:2, activation: 'tanh'});
layer_defs.push({type:'fc', num_neurons:2, activation: 'tanh'});
layer_defs.push({type:'softmax', num_classes:2});net = new convnetjs.Net();
net.makeLayers(layer_defs);trainer = new convnetjs.SGDTrainer(net, {learning_rate:0.01, momentum:0.1, batch_size:10, l2_decay:0.001});

查看circle data,可以看出效果一般,看上去像切了两刀,抛物线状。
在这里插入图片描述

3、 num_neurons:3

将神经元设置为3,查看效果

layer_defs = [];
layer_defs.push({type:'input', out_sx:1, out_sy:1, out_depth:2});
layer_defs.push({type:'fc', num_neurons:3, activation: 'tanh'});
layer_defs.push({type:'fc', num_neurons:3, activation: 'tanh'});
layer_defs.push({type:'softmax', num_classes:2});net = new convnetjs.Net();
net.makeLayers(layer_defs);trainer = new convnetjs.SGDTrainer(net, {learning_rate:0.01, momentum:0.1, batch_size:10, l2_decay:0.001});

查看circle data,可以看出效果较好。
在这里插入图片描述

五、正则化

正则化 R ( w ) R(w) R(w)的作用:稳定时出现平滑边界
在这里插入图片描述

六、参数个数对结果的影响

在这里插入图片描述

七、激活函数

S i g m i o d Sigmiod Sigmiod:数值较大或较小时,梯度约为0,出现梯度消失问题
R e l u Relu Relu:当前主要使用的激活函数
在这里插入图片描述

八、数据预处理

在这里插入图片描述

九、参数初始化

通常我们都使用随机策略来进行参数初始化

十、DROP-OUT(传说中的七伤拳)

过拟合是神经网络非常头疼的一个问题!
左图是全连接神经网络,右图在神经网络训练过程中,每一层随机杀死部分神经元。DROP-OUT是防止神经网络过于复杂,进行随机杀死神经元的一种方法。
在这里插入图片描述


http://www.ppmy.cn/news/984802.html

相关文章

Node.js学习笔记-02

三、node的异步I/O 四、异步编程 1、函数式编程 高阶函数 函数可以作为参数或者返回值。 偏函数用法 偏函数用法是指创建一个调用另外一个部分——参数或变量已经预置的函数——的函数的用法。 举个例子:在JavaScrip中进行类型判断时,我们通常会进…

【linux 结束pts/1踢人踢除另一个终端】

centos7上误执行了个命令,导致一直刷屏,强制CTRLC无法正常退出,一直出现如下: 网上搜索通过ctrlD,q均无法正常退出, 不想强行关掉,通过:who命令查看均用户: who mshns…

什么是消息队列?

目录 什么是消息队列? 消息队列中间件 消息队列的应用场景 异步处理 系统解耦 流量削峰 日志处理 什么是消息队列? 消息队列,英文名:Message Queue,经常缩写为MQ。从字面上来理解,消息队列是一种用来…

郑州Sectigo DV通配符SSL证书

我们在浏览器访问网页时或许不会注意到网站是http还是https链接,但是一定能注意到浏览器给我们展示的“不安全”警告,警告访问者网站未加密,访问网站会有泄露隐私的危险。SSL证书能将网站链接由http转为https,对网站传输数据加密&…

有状态的应用如何部署 1?

前面我们分享很多关于 K8S 的内容,有没有发现 pod 都是无状态,RS / RC 管理的 pod 也是无状态的,我们可以任意删除一个 pod,副本管理器又会马上给我们创建一个 pod 那么如果咱们的这个 pod 是有挂载持久卷的,那么我们…

uni-app在小米手机上运行【步骤细节】

注意细节重点: 1.手机使用数据线与电脑连接,手机连接模式必须是传输文件模式 2.手机必须打开开发者模式 3.打开开发者模式后,仔细浏览并调整USB调试权限,重点打开USB是否允许安装按钮!!! 操作步…

DRUPAL 8.x远程代码执行漏洞(CVE-2018-7600)

事件背景 框架漏洞收集 CVE-2018-7600有两个POC分别是7和8的,本文仅研究8版本的POC,与其它的文章不同的事,本文我将数据流向调试并记录下来了 漏洞说明 1. 漏洞原理:Drupal对表单请求内容未做严格过滤,因此&#x…

RN 设置背景图片(使用ImageBackground组件)

在RN版本0.46版本的时候添加了ImageBackground控件。ImageBackground可以设置背景图片,使用方法和image一样,里面嵌套了其他的组件 import React from "react"; import { ImageBackground, StyleSheet, Text, View } from "react-native…