| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 深度学习笔记(2) -> 正文阅读 |
|
[人工智能]深度学习笔记(2) |
?3.5向量化实现的解释 通过上一节的公式 可以知道每个训练样本所进行的计算都是类似的,当有不同的训练样本时,只需要将它们堆到矩阵 X的各列中,那么它们的输出也就会相应的堆叠到矩阵的各列中。因此就可以直接同时计算多个样本,实现向量化 ?这一节只是说明了为什么公式是前向传播的第一步计算的正确向量化实现,但事实证明,类似的分析可以发现,前向传播的其它步也可以使用非常相似的逻辑,即如果将输入按列向量横向堆叠进矩阵,那么通过公式计算之后,也能得到成列堆叠的输出。 3.7为什么需要非线性激活函数 方便自己理解,就举了个极端例子如果是一个有n个隐藏层的激活函数都是同一个线性激活函数,那效果就和把没有隐藏层的激活函数执行n次;如果所有函数都是线性的,就可以简单的把多个隐藏层进行合并。事实证明,如果你使用线性激活函数或者没有使用一个激活函数,那么无论你的神经网络有多少层一直在做的只是计算线性函数,所以不如直接去掉全部隐藏层。在简明案例中,事实证明如果你在隐藏层用线性激活函数,在输出层用sigmoid函数,那么这个模型的复杂度和没有任何隐藏层的标准Logistic回归是一样的。 3.10直观理解反向传播 本章内容讲了如何进行反向推导相关的导数计算 首先是正向传播 然后是反向的传播 先是从dz=a-y的推导过程 ?首先从(a=g(z)的转化)? ?因为,且 ?又因为最后输出的y-hat=a,所以有 又因为a=g(z)? 所以? 代入得? ? ? ?然后是关于矩阵维数的介绍 4.2深层网络中的前向传播 解释了多个隐藏层存在时的运行过程,基本原理和之前讲的差不多 4.6前向和反向传播 根据老师的过程可以把反向传播的求导过程整理为下式? ?根据每次输回的导数d(w)乘以步长,逐步下降梯度,实现自主寻找合适参数的功能 4.7参数与超参数 参数是指计算机可以通过大量计算自己寻找最优解的的一个量 而超参数则是类似步长这一类只能凭直觉或是经验人为来设定的计算机改变不了的量(个人理解) 之后的学习还会介绍许多超参数 如momentum、mini batch size、regularization parameters等等。 ?深度学习应用领域是很经验性的过程,通常你有个想法,比如你可能大致知道一个最好的学习率值,可能说 α = 0.01 \alpha=0.01α=0.01 最好,会想先试试看,然后你可以实际试一下,训练一下看看效果如何。然后基于尝试的结果你会发现,你觉得学习率设定再提高到0.05会比较好。如果你不确定什么值是最好的,你大可以先试试一个学习率 α ?,再看看损失函数J的值有没有下降。然后你可以试一试大一些的值,然后发现损失函数的值增加并发散了。然后可能试试其他数,看结果是否下降的很快或者收敛到在更高的位置。你可能尝试不同的 α 并观察损失函数 J ?这么变了,试试一组值,然后可能损失函数变成这样,这个值 α 会加快学习过程,并且收敛在更低的损失函数值上,我就用这个 α 值了。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/27 8:47:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |