当前位置: 首页 > news >正文

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

一、前向传播

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

二、反向传播

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

三、整体架构

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

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.lryc.cn/news/100367.html

相关文章:

  • rust 配置
  • 文心一言 VS 讯飞星火 VS chatgpt (67)-- 算法导论6.5 6题
  • 6、Kubernetes核心技术 - Pod
  • VlanIf虚拟接口 通信技术(二十三课)
  • 图神经网络(GNN)入门学习笔记(直观且简单)
  • 【Java开发】 Mybatis-Flex 01:快速入门
  • 企业级业务架构学习笔记<二>
  • Minio在windows环境配置https访问
  • 安装JDK环境(Windows+Linux双教程)
  • SVG图标,SVG symbols,SVG use标签
  • 常用css 笔记
  • git的ssh方式对接码云
  • Golang之路---02 基础语法——变量
  • Webpack5 DefinePlugin的作用
  • Verilog语法学习——LV7_求两个数的差值
  • C#匿名函数,lambda表达式笔记
  • 【图论】LCA(倍增)
  • QT 使用串口
  • GitHub上怎么寻找项目?
  • 如何快速用Go获取短信验证码
  • 详解Mybatis查询之resultType返回值类型问题【4种情况】
  • Python-Python基础综合案例:数据可视化 - 折线图可视化
  • CSS盒子模型(HTML元素布局)
  • PostgreSQL-Centos7源码安装
  • QTday2信号和槽
  • 信驰达推出RTL8720DN系列2.4G和5G双频Wi-Fi+蓝牙二合一模块
  • 【LeetCode】剑指 Offer Ⅱ 第1章:整数(5道题) -- Java Version
  • 解析数据可视化工具:如何选择最合适的软件
  • 大数据面试题之Elasticsearch:每日三题(七)
  • ubuntu20.04 安装 Qt5.15