| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> Datawhale7月“吃瓜教程”Task04打卡 -> 正文阅读 |
|
[人工智能]Datawhale7月“吃瓜教程”Task04打卡 |
ps:本文为记录参与Datawhale-7月吃瓜教程的学习笔记 pss:文章所有PPT截图来自于:Datawhale吃瓜教程(https://www.bilibili.com/video/BV1Mh411e7VU),记得一键三连~ ? 目录 ? Task04 详读西瓜书+南瓜书第5章1 神经元模型定义:我们在机器学习中所谈论的神经网络一般指的是“人工神经网络”,是机器学习与神经网络两个学科的交叉部分。所谓神经网络,目前用得最广泛的一个定义是“神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应”。 神经网络中最基本的单元是神经元(neuron)模型。即上述定义中的“简单单元”。 在生物神经网络中,每个神经元与其他神经元相连,当它"兴奋"时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个"阔值" (threshold), 那么它就会被激活,即 "兴奋" 起来,向其他神经元发送化学物质。下图则将上述情形抽象化,也就是著名的“M-P神经元模型”。 在这个模型中,神经元接收到来自?n?个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接(connection)进行传递,神经元接收到的总输入值将与神经元的阀值进行比较,然后通过"激活函数" (activation function) 处理以产生神经元的输出。 神经元模型最理想的激活函数是阶跃(sgn)函数,它将神经元输入值与阈值的差值映射为输出值“1”或“0”,若差值大于等于零输出1,对应兴奋;若差值小于零则输出0,对应抑制。 然而阶跃函数不连续,不光滑,故在M-P神经元模型中,实际是采用Sigmoid函数来作为激活函数的, Sigmoid函数将较大范围内变化的输入值挤压到 (0,1) 输出值范围内,所以也称为挤压函数(squashing function)。 ? ? ?把许多个这样的神经元按一定的层次结构连接起来,就得到了神经网络。
2 感知机与多层网络感知机(Perceptron)由两层神经元组成, 如图 5.3 所示,输入层接收外界输入信号后传递给输出层, 输出层是 M-P神经元,亦称"阔值逻辑单元" (threshold logic unit)。 ? ? ? ? ? ?感知机只有输出层神经元进行激活函数处理,即只拥有?一层功能神经元(functional neuron),其学习能力非常有限。事实上,上述与、或、 非问题都是线性可分(linearly separable)的问题。但异或问题时非线性可分问题。 ?而要解决非线性可分问题,可考虑使用多层神经元。如图5.5的简单两层感知机来解决异或问题。 ? 在图5.5(a)中, 输出层与输入层之间的一 层神经元,被称为隐层或隐含层(hidden layer),隐含层和输出层神经元都是拥有激活函数的功能神经元。 多层前馈神经网络"(multi-layer feedforward neural?networks):每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。 其中输入层神经元接收外界输入,隐层与输出层神经元对信弓进行加工,最终结果由输出层来输出。换言之,输入层神经元仅是接受输入,不进行函数处理,隐层与输出层包含功能神经元来进行处理工作。 神经网络的学习过程,就是根据训练数据来调整神经元之间的 "连接权" (connection weight) 以及每个功能神经元的阈值。换言之,神经网络所要"学"到的东西,蕴涵在连接权与阈值中。 3 误差逆传播(BP)算法误差逆传播(error BackPropagation,简称BP)算法是具有强大学习能力的多层网络算法中的最杰出代表,也是迄今为止最成功的神经网络学习算法。 ? 上图的网络中有 (d +?l?十 1) q 十 l个参数需确定:输入层到隐层的 d xq 个权值、 隐层到输出层的 q x l 个权值、 q 个隐层神经元的阈值、?l?个输出层神经元的阈值。 ? BP 是一个迭代学习算法,在迭代的每一轮中采用广义的感知机学 习规则对参数进行更新估计。 任意参数的更新估计式为: ?BP算法的工作流程:
? 4 全局最小与局部最小模型学习的过程实质上就是一个寻找最优参数的过程,例如BP算法试图通过随机梯度下降来寻找使得累积经验误差最小的权值与阈值,在谈到最优时,一般会提到局部极小(local minimum)和全局最小(global minimum)。
? ?现实任务中常用于“跳出”局部极小的策略:
5 深度学习理论上来说,参数越多的模型复杂度就越高,容量(capability)也就越大,从而能完成更复杂的学习任务。但复杂的模型训练效率低,容易陷入过拟合。而随着计算机算例的提高和训练数据的大幅增加,训练的低效性和过拟合的风险都得到相应的缓解。深度学习(deep learning)正是一种极其复杂而强大的模型。 增大模型复杂度的两个办法: 一是增加隐层的数目,二是增加隐层神经元的数目。前者更有效一些,因为它不仅增加了功能神经元的数量,还增加了激活函数嵌套的层数。但是对于多隐层神经网络,经典算法如标准BP算法往往会在误差逆传播时发散(diverge),无法收敛达到稳定状态。 有效地训练多隐层神经网络的两种方法:
深度学习可以理解为是一种特征学习或者表示学习,无论是DBN还是CNN,都是通过多层处理,逐渐将初始的“低层”特征表示转化为“高层”特征表示,从而使得最后可以用简单的模型来完成复杂的学习任务。 在传统任务中,样本的特征需要人类专家来设计,这称为特征工程(feature engineering)。特征好坏对泛化性能有至关重要的影响。而深度学习为全自动数据分析带来了可能,可以自动产生更好的特征。这使机器学习向“全自动数据分析”又前进了一步。 ? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/22 9:48:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |