DNN(Deep-Learning Neural Network)

本文介绍了深度学习神经网络(DNN)的基本架构,包括全连接层的概念,解释了为何使用深层网络而非单一隐藏层网络,并通过手写数字识别(MNIST)实例展示了DNN的代码实现。深度学习通过模块化自动将复杂问题分解为简单函数,解决了数据量不足时的训练效果问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DNN(Deep-Learning Neural Network)

接下来介绍比较常见的全连接层网络(fully-connected feedfoward nerural network)

名词解释

首先介绍一下神经网络的基本架构,以一个神经元为例

在这里插入图片描述

输入是一个向量权重(weights)也是一个矩阵

把两个矩阵进行相乘,最后加上偏差(bias),即w1 * x1 + w2 * x2 + b

在这里插入图片描述

神经元里面会有一个激活函数(activation),比如sigmoid,Relu等等,然后将这个结果当作未知量输入神经元所代表的函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y0shDSoS-1618453973490)(https://github.com/sherlcok314159/ML/blob/main/Images/neuron_3.png)]

神经网络分为三个层次,从左到右分别为输入层(Input Layer)隐含层(Hidden Layer)输出层(Output Layer) 。当然在输出之前还得经过softmax,这里只是广义的网络架构。输入层和输出层没必要赘言。一个隐含层有很多神经元(neuron),神经元的数目是你可以设置的参数。

何为 全连接(fully-connected) 呢?

每一个输入跟神经元必定两两相连
在这里插入图片描述

------------------------------------------------------------------------图片来源----------------------------------------------------------------------------

那么,肯定有人问了

Deep or not?

Universality Theorem

Any Deep Neuron Network can be replaced by one-hidden-layer neuron network.

于是有人说,我都可以用一层代替很多层了,那为什么还用Deep,根本没必要嘛

Why Deep?

确实一个很宽的隐含层可以代替很多层,但是效率必须纳入比较范围

如果浅层和深层比较,按照控制变量法,两个参数数量必须一样,否则结果会有偏差

举个例子,接下来我要通过图片来分辨长发男,短发男,长发女,短发女。

浅层做法:

在这里插入图片描述

那我们联系一下现实,现实中长发男不大好找诶,这就意味着这类数据量很少,train出的结果很糟。

我们都知道如果问题比较复杂的时候,可以将问题分为几个小问题,算法中有个思维是分而治之(Divide and Conquer)。这里要介绍一下模组化(Modularization)

继续上面的例子,我们可以先分辨是男是女和是长发还是短发

在这里插入图片描述

------------------------------------------------------------------------图片来源----------------------------------------------------------------------------

这样的话,数据量都是够的,train出的结果不会很糟

在这里插入图片描述

----------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值