ANN|学习笔记(二)

简介: 快速学习 ANN

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践ANN】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/1067/detail/15447


ANN

四、激活函数

汇总数据经过激活函数之后才能输出。对二元分类来说,如果激活函数能产生两个值,1和0,那最好,哪些函数能够产生1和0,或者相似的二元分类呢?激活函数常用的有 sigmoid 函数、tanh 函数、softmax 函数等。左图为 sigmoid 函数可视化的结果。

image.png横坐标是 z,经过函数后产生的值为纵坐标,z 取0时

,0在中间,z<0时,值趋向于0,z>0时,激活函数趋向于1。经过 sigmoid 函数处理过以后,它的值一边取0,一边取1。小于0时,取得的结果趋向于0,大于0时,取得的结果趋向于1。

具体的公式如下图

image.png用程序把这个函数执行一下,图形便为

这是最经典的最早期的用于神经网络的激活函数。

左图为tanh函数,双曲正切函数。公式为

image.png公式里有自然数e,在自然科学里是非常重要的常数,它产出的图形结果如左图所示,当z<0时,函数结果趋向于*1,image.png当 z>0时,值趋向于1。tanh(z) 函数是 sigmoid 函数的一种变体,它的取值范围为[-1,1],而不是 sigmoid 函数的[0,1]。也能满足二元分类的要求。

 

五、一般的人工神经元网络结构

image.png中间多了个隐藏层,最起码是三层结构。有输入层,隐藏层和输出层。输入层里面的每个神经元接受一个输入数据,这里接受了 x1到x5的五个输入数据。中间的隐藏层有三个神经元,每个神经元相当于一个 M-P 的神经元模型。

它可以接收每个输入数据,以及在这个上面有权重,汇总后得到这个神经元的结果。再通过激活函数产生输出。隐藏层的每个神经元都是同样的工作机理。这样的神经网络结构才是真正的神经网络,最早的神经元是理解神经网络的基础。

单层感知器模型是最简单的神经网络。进一步发展为三层的神经网络结构。中间哪怕只有一层隐藏层,那也增加了很强大的功能。隐藏层的每个神经元都要与输入的神经元相连,上面都有权重,然后进行汇总,最后通过激活函数产生输出。每个隐藏的神经元都是这样的功能。因此神经网络具备了强大的功能。

输出层也是 M-P 神经元,他接收隐藏层产生的输出,在这个图里,隐藏层产生了三个输出,对于输出层来说为三个输入,上面也有权重 w,再经过输出层神经元的激活,产生输出。因为加了隐藏层,神经网络变得很智能。现在很热门的深度学习为有更多的中间层,早期的神经网络中间就几层,很多时候就用到一个隐藏层,层数加多了计算量是巨大的,早期的计算机能力不够,而且没有大数据的支持,所以早期的神经网络发展的非常缓慢。到了2010年、2012年,万事俱备,只欠东风,东风即计算能力和大数据。可以加入很多层,也可以计算了,所以产生了强大的计算功能。中间隐藏层的每个神经元,以及输出层的每个神经元。右边图的示意,中间的椭圆代表了一个神经元,代表了像隐藏层的神经元和输出层的神经元。输入层的神经元只接受输入数据,所以这里的椭圆代表了隐藏层的神经元和输出层的神经元。

它接收没个输入数据,这个输入数据可以认为是上一层的输入数据。对于隐藏层来说就是输入层,对于输出层来说是上面的隐藏层。产生的输入数据都有权重,传到这个神经元里,通过汇总以后经过激活函数,再产生输出。这个是一般神经网络的结构和原理。

神经网络模型要训练它,让它更智能。训练神经网络,意思是学习调整改变神经元连接的权重,这个是神经网络的本质。神经元里多了个权重,权重是最关键的。

激活函数很重要,里面最关键的是权重。输入一组样本数据,经过神经元网络学习后就能得出输出结果。输出结果可以帮助我们输出管理,输入图片经过神经元网络,判断是和否,x 数值不变,神经元如何实现强大的功能呢?就因为里面有权重,如果学的不对就再学,关键是调权重。加深一下对权重的理解,输入的 x 数据是不能变的。但输出不对的话,我们能改的只是权重。举例,一个班的同学老师上课讲的知识是 x 是一样的,每个同学接受的 x 是一样的,为什么有的同学学的好,有的学的不好呢?因为每个同学的权重不同,对于名师来说,善于调整学生的权重。比如,中学生背单词,一个单词背错了,老师让他背十遍,抄十遍,目的是调权重,因为输入的 x 这个单值是一样的,只能调权重,如果哪个名师有特异功能,对手上面敲两下,脑袋上面发个功,权重就能调整,那这个名师很厉害。

ANN 学习算法

Initialize the weights (w0, w1,.... ,Wk)

Adjust the weights in such a way that the output of ANN is consistent with class labels of training examples

Objective function:

Find the weights wi's that minimize the above objective function

e. g., backpropagation algorithm (see lecture notes)

先初始化一组权重,因为输入的 X 是不变的是一样的,一组对应的权重,然后调整这一组权重。调整权重的依据是神经网络的输出值和样本里面带的标签值,来进行比较。因为这个是有接口的分类算法。根据神经网络模型输出的结果和标签结果之间的差异来调整权重,所以需要一个函数,这个函数叫做目标函数,或者成本函数,或者损失函数。这个函数的公式所示,

E 是损失、误差、成本、目标,Yi 是样本真实的标签值,Y 和 y 代表的意思一样,f(wi,xi)中 X 是神经网络的输入数据,W 是权重,f 是激活函数。经过激活函数处理以后,得到的是模型的输出值即预测值。预测值和真实标签值的差值就是误差,一般用误差的平方来表示目标函数或者是成本函数或者是损失函数,这是数学上的一种表达。这是学习算法的一个抓手,一个依据,一个目标,就是有损失函数。训练的理想状况是让损失函数越小越好。让它最小化。即让误差最小。如何让它最小呢?

因为输入的 X 不变,所以只能调整权重,即发现这一组权重,这组权重让目标函数最小,所以数学逻辑很清晰。实际上,神经网络背后最重要的是这些数据。对神经网络来说,最后如何调整权重让误差最小?是内部最关键的技术,如果要推导则非常复杂。有一些算法可以让误差最小,比如 BP 算法,也叫 BP 神经网络,它是误差反向传播的机制,来实现误差最小。如果用中文表达为最小化误差的平方和。

如果把刚刚误差的平方和可视化,应该是个抛物线,如下图所示,纵坐标是成本函数,也可以用 E 表示即为误差函数,纵坐标代表每一个误差,横坐标是输入输出的函数,希望在抛物线上面找到误差最小的那个点,这便是训练的目标。那么,在训练的过程中,如何找到最低点呢?需要一个算法知识,比较常用的是 BP 算法里的梯度下降。梯度下降非常形象,比如随机的一个误差在一个点上面,目标是让误差最小,那该怎么办呢?可以从这个点向上移动,也可以向下移动,看误差是否变小。发现向上移误差变大,因此,不能向上移动,应该向下移动,向下移动误差会变小,也就是梯度在下降,一直降到误差最小。因为这是一条抛物线,是一个凸函数。通过梯度下降便可以找到最低点。梯度下降在数学上面是,在抛物线上求导数,需要用到微积分。

将训练集放入神经网络并获得输出,输入数据是训练集,里面有 X1,X2 等等。然后与权重相乘,到神经元激活产生输出。

将输出与期望输出做对比,期望是标签值,是 y,做对比即求误差,误差一般用平方表示,要构造成本函数,也就是误差函数,来计算误差。基于误差值和使用的成本函数,决定如何改变权重以使误差最小。改变权重有许多算法,其中一个是 BP 神经网络,有一个梯度下降的算法。需要用到微积分,来一步一步求。重复该过程直到误差值最小。

image.png

相关文章
|
资源调度 前端开发 API
Kiwi-国际化全流程解决方案
目前有很多成熟的库可以帮助前端去做对应的国际化方案,比较知名的有 react-intl 以及 I18N-loader。这些库都可以很好的解决代码中多种语言切换的问题
Kiwi-国际化全流程解决方案
|
1月前
|
人工智能 Kubernetes 调度
AgentTeams 和 Claude Tag 都进入群聊模式,是新范式还是新叙事?
AgentTeams 和 AgentLoop 均处于邀测期,欢迎感兴趣的朋友申请测试。
344 12
|
7月前
|
数据采集 人工智能 决策智能
黎跃春深度解析:从业务 SOP 到 AI 自动化,智能体运营工程的实战逻辑
黎跃春主讲的AI智能体运营工程师课程,聚焦真实业务场景,系统传授SOP数字化、RAG知识治理、Python自动化评估与Multi-Agent架构设计等实战能力,助力开发者打造稳定可进化的AI生产力系统,在成都等地实现30k+高薪突破。(239字)
|
8月前
|
数据采集 运维 区块链
真实世界资产代币化的合规与技术难题解决方案
聚焦RWA项目合规与技术难题,通过界定资产类别、司法辖区等边界,梳理利益相关方与风险触点,建立“谁负责、谁受益、谁承担”共识机制。输出可执行问题陈述、边界图及合规技术清单,设定法域映射、数据完整性和合规成本区间等落地标准。
|
机器学习/深度学习 监控 算法
拼多多API智能定价引擎,利润最大化不是梦!
在竞争激烈的电商市场中,拼多多推出的API智能定价引擎通过数据驱动与算法优化,助力商家实现动态价格调整,最大化利润。本文解析其核心原理、优势及实现方式,帮助商家轻松掌握智能定价技巧,提升盈利能力。
|
8月前
|
Linux 虚拟化 iOS开发
PC软件多系统兼容性测试覆盖策略与不同系统适配方案对比
文章围绕PC软件多系统兼容性测试展开,指出需覆盖Windows、macOS、Linux三大系统并制定适配策略。介绍全系统矩阵测试、虚拟化环境模拟与云真机平台测试三类主流方案及其优劣,通过对比提出混合策略为高性价比实践方向,还给出常见问题的解决办法,助力开发者保障软件跨系统稳定运行。
|
人工智能 自然语言处理 数据挖掘
人工智能claude 3.5官网怎么用?claude中文镜像网站解读!
人工智能的浪潮席卷全球,每一次技术的突破都引发着行业的巨变。近期,Claude 的出现犹如一颗耀眼的明星🌟,迅速成为 AI 领域的焦点,并引发了业界对其与前任王者 GPT-4 的激烈讨论
|
安全 Java 程序员
【HTTP】认识 URL 和 URL encode
【HTTP】认识 URL 和 URL encode
561 0
|
网络协议 C语言
C语言 网络编程(十)TCP通信创建流程---客户端
在TCP通信中,客户端需通过一系列步骤与服务器建立连接并进行数据传输。首先使用 `socket()` 函数创建一个流式套接字,然后通过 `connect()` 函数连接服务器。连接成功后,可以使用 `send()` 和 `recv()` 函数进行数据发送和接收。最后展示了一个完整的客户端示例代码,实现了与服务器的通信过程。
|
SQL 安全 前端开发
文件上传漏洞(二)中国菜刀
文件上传漏洞(二)中国菜刀