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

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

1.神经网络是什么

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

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

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

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

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

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

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

3.神经网络的展示

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

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

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

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

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

4.神经网络的传递细节

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

细致结构如下

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

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

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

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

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实现简单的神经网络

相关推荐
txg6663 分钟前
机器人领域简报(2026年6月7日—14日)
大数据·人工智能·机器人
4A广告文案6 分钟前
品牌负面评论难排查?AI情绪分析实时抓取全网评论,提前规避公关翻车
人工智能
Z-D-K8 分钟前
S-44的周末”旅行“-周日
人工智能·ai·aigc·交互·agi
Shota Kishi8 分钟前
在 Solana 上实现稳定币基础设施支付:SOL / USDC / EURC 付款与 EURC 结算的工程实践
人工智能·区块链
Z-D-K10 分钟前
S-44的周末”旅行“-周六
人工智能·机器学习·aigc·交互·agi
意图共鸣11 分钟前
能力对等器技术解析:意图共鸣科技《AI记忆链商业化白皮书3.0》——为什么每个开发者都需要一个属于自己的AI
人工智能·科技
星落zx12 分钟前
在CI/CD流水线里接入多模型自动Code Review,踩坑与方案分享
人工智能·ci/cd·代码复审
IT_陈寒12 分钟前
Vue的响应式让我原地裂开,你们也有这情况吗
前端·人工智能·后端
STDD14 分钟前
Kubeflow ML 流水线 K8s 部署教程:机器学习工作流编排全攻略
机器学习·容器·kubernetes
下班走回家15 分钟前
Qwen2.5 模型架构解读:国产大模型的进化
人工智能·架构