[machine learning]神经网路初步 basic neural network

这一篇写的很差....我会找时间慢慢补充的

1.神经网络是什么

在上一篇关于逻辑回归的博客中,简单介绍了逻辑回归模型,对于监督学习来说,模型可以理解为一个模块/函数,在足够的数据训练以后,通过梯度下降等手段进行拟合,最终根据输入来预测输出结果.

这一个东西,我们可以称之为神经元(初中生物)

多个神经元可以组成层(layer),最终多个层可以组成一个神经网络

神经网络和单一的逻辑回归模型一样,同样是多个数据的输入来进行训练,最后得到我们需要的结果.

2.为什么要使用神经网络

相比于单一逻辑回归计算,神经网络对于高复杂度的数据有更好的训练结果展示,例如具有多个特征或者多个需求模块识别的时候,使用神经网络是更加合适的选择.

此外神经网络的自适应性很高,每个节点的权重数目可以随着特征数目而变化,可以根据输入数据的变化进行调整。这使它们能够处理不断变化的环境和数据分布。

3.神经网络的展示

神经网络的大致结构如下所示:

在本图中图片分为: 输入,隐藏层1,隐藏层2,隐藏层3,输出层,输出

根据输入的训练数据,对每一层的每个神经元进行梯度下降等方法训练,每一层输出维数和层中神经元数目一致的向量(不同的框架库对于向量的表示方法不一样,反正你就记着不是数组就对了)

正因为神经元数目足够多,并且结构比较复杂,像这种每个神经元都需要完全接收输入的情况(这种层称之为密集层(dense layer)),需要的训练数据比单一模型训练更加复杂和耗时.

另外每一层可以单独设置激活函数(activation function),这一点会在后面讲到.

4.神经网络的传递细节

对于神经网络来说,每一层的输入是一个向量,每一层的输出也是一个向量

细致结构如下

在这个简单的神经网络示意图中,a[2]是隐藏层2的输出结果,a[2]的特征值数目与layer2中的神经网络数目一致,一个神经元负责计算一个分量.

而在layer3中,由于本图展示的3是密集层,所以神经元都能独立完全接收到整个输入的数据a[2],神经元会根据传入的特征值的数目,自行安排权重向量w的数目.

最后再使用激活函数,对于每个神经元的输出结果做简单处理.组合成新的输出结果a[3]

(注:训练原理仍然是梯度下降)

5.神经网络的分层

神经网络有很多分层,像上面的称之为(Dense layer),特点是每个神经元需要获取到全部的特征值,至于具体最后的结果是否不需要某个特征值,这个是训练结果决定的.如果根据使用特征值的情况进行连线,最后的结果是这样

所以被称之为密集层.

而如果使用卷积层(reconvene),可以指定某个神经元只能读取某些特征值,举个例子,对于一张图片的读取来说,我们可以给神经元分配任务,让某些神经元只获取特定区域的信息

6.多分类问题

在上述的图片中,神经网络的最终实现结果是一个输出,比如说我们可以使用sigmoid激活函数,最终可以得到一个预测值,比如说预测一个东西是不是车,神经网络会回答你"是"/'不是'(或者说有多大概率是)

但是如果我们的输出需求可能有很多,比如判断一张图的东西是车?马?人?或者比如说数字识别,是1还是234579?这种情况下当然可以构建"神经网络森林".但是这样子训练开销增加巨大,数字只有十个,但是汉字?

并且就算使用多个神经网络,最后的计算结果,训练过程也不一样,到时候的输出结果:

1的可能性为=0.77 ,2的可能性为0.36

这不是很尴尬/

为了处理这种问题,我们可以使用一种名为softmax的多分类算法

softmax:

在最后的输出层不再是单一的输出,而是根据需求设置的多个神经元数目,每个神经元代表一种可能的输出,其实思路很简单

最后一层我们也可以称之为softmax层,每一层仍然是利用到一样的方法.

然后为了实现归一化(即让所有结果的预测值可能性相加为1,我们使用特殊的激活函数)

这个激活函数可以保证最后的全部结果相加为1

以上就是对分类问题的处理方法.其实对于solfmax算法还有一些可以改进的乙方,这个就后续有机会再说坝

7.什么是激活函数

对于一些wx+b的计算结果来说,可能最终的计算结果并不符合我们的心意.

例如要预测什么东西,结果给哥们干出一个77.....

一方面是对数据进行规整化的处理,另一方面是为了让数据更加符合我们的需求,我们要对预测结果加上一个激活函数.

向上面来说,我们在softmax使用了规范化的激活函数,预测概率的基础上,让整体的结果相加为1

还有我们之前常用的sigmoid函数也是一种激活函数

此外常用的激活函数

ReLU: max(0.z)

linear: z

对于每个网络层来说,激活函数都是必不可少的,他表示了我们将以何种方式来处理最终的输出矢量,每种激活函数都有属于自己的适用场景和功能

8.神经网络的应用举例

图片识别

图片识别的本质其实是神经网络获取图片的特征,然后将根据特征值计算出这是什么东西

第一个隐藏层在图片中寻找"边角"这种特征值

第二个隐藏曾在上一层边角中寻找面部特征

第三个隐藏层在上一层的面部特征中,预测匹配的脸型

9.使用tensorflow实现简单的神经网络

相关推荐
佚明zj6 分钟前
全卷积和全连接
人工智能·深度学习
qzhqbb3 小时前
基于统计方法的语言模型
人工智能·语言模型·easyui
冷眼看人间恩怨3 小时前
【话题讨论】AI大模型重塑软件开发:定义、应用、优势与挑战
人工智能·ai编程·软件开发
2401_883041083 小时前
新锐品牌电商代运营公司都有哪些?
大数据·人工智能
AI极客菌4 小时前
Controlnet作者新作IC-light V2:基于FLUX训练,支持处理风格化图像,细节远高于SD1.5。
人工智能·计算机视觉·ai作画·stable diffusion·aigc·flux·人工智能作画
阿_旭4 小时前
一文读懂| 自注意力与交叉注意力机制在计算机视觉中作用与基本原理
人工智能·深度学习·计算机视觉·cross-attention·self-attention
王哈哈^_^4 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
Power20246665 小时前
NLP论文速读|LongReward:基于AI反馈来提升长上下文大语言模型
人工智能·深度学习·机器学习·自然语言处理·nlp
数据猎手小k5 小时前
AIDOVECL数据集:包含超过15000张AI生成的车辆图像数据集,目的解决旨在解决眼水平分类和定位问题。
人工智能·分类·数据挖掘
好奇龙猫5 小时前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法