百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

高效炼丹必备:一文入门深度学习数学原理,还有吴恩达亲授课程

csdh11 2024-12-31 10:26 4 浏览

贾浩楠 发自 凹非寺
量子位 报道 | 公众号 QbitAI

哪个程序员不想高效“炼丹”?

尤其是深度学习算法开发人员,追求模型结构优化和提高编程效率是永远的目标。

但是,如果只做代码“搬运工”,不了解神经网络背后的数学原理,很难对项目有深刻全面的理解,debug反而会更难、耗时更长。

就以深度学习中常用的神经网络来说,典型模型包括多层感知机(DLP)、卷积神经网络(CNN)、循环神经网络(RNN)等等,不同的项目,对神经网络的调参需求也不相同。

下面的深度学习数学基础详解,以DLP为例,你读完后会对它的数学基础有全面的了解,并且熟悉用数学解释算法的基本思路。

除了DLP,文末还一并为你准备了RNN、CNN数学原理,以及吴恩达老师的AI数学基础课程。

一文实现AI数学基础入门,还在等什么?

多层感知机的数学表达

多层感知机的数学表达分为4个部分:学习算法、参数初始化、激活函数、优化函数。

学习算法

神经网络的学习过程可以看做是参数的权重在网络中经历的不同回归,也就是说我们的算法是要找出一个使参数得到最佳输出的回归方法,由此我们定义一个目标函数:损失函数L(loss function);还有一个参数J,它是训练集真实与估计值的量化表示。

我们通过正向和反向传播两种方法来使J最小化,学习算法可以表示为:
正向传播:

其中m是训练集的大小,i是参数在网络中的迭代次数,y是模型的输出,θ是模型参数。

反向传播:

参数初始化

零初始化:使所有参数的权重和偏差都为零。

随机初始化:不断将随机噪音赋值给参数。如果噪音过大,可能会造成某些激活函数溢出,并影响到后续的梯度计算。

Xavier方法:取值于正态分布的中心变量:

Glorot方法:同样取值于正态分布,方法不同。

激活函数

激励函数的功能是选择在网络中被传递的具体参数,更深一层的理解是,允许网络中被有效激活的神经元传递训练数据。

一下是一些常用的激活函数:

优化函数

风险,是神经网络中全部数据集的损失,是我们需要优化的对象,定义为:

其中,X是一个可观测的连续空间中,与Y有关的元素,p(X,Y)是在这一空间中观察到点(X,Y)的边缘概率。

经验风险

在没有全部数据集,或全部数据集过大的情况下,我们不考虑参数分布情况,仅将风险估计的范围限定在一个有代表性的数据集上,这种情况下,损失函数可以表示为:

m是代表数据集的大小。

于是可以得出:

梯度下降法

我们需要构造一个可微凸函数J,其任何一个局部的最小值都是整个函数的最小值,那么求这个函数的最小值就相当于解一个方程?J(θ)=0,设它的解为θ?,于是我们得到:

学习率递减

实践证明,随着数据迭代次数增加,模型会逐渐降低学习率。现在已经有许多成熟地描述学习率递减的公式。

优化函数还包含输入优化、网络数据丢失正则化、反向传播正则化等,限于篇幅将链接放在文末。

其他有关深度学习的数学基础的参考链接

DLP中的其他优化函数,以及参数正向、反向传播时损失函数详细推推导过程
https://www.ismailmebsout.com/deep-learning/

除了DLP,其他神经网络RNN、CNN等也有详细的数学表达推导过程
CNNhttps://www.ismailmebsout.com/Convolutional%20Neural%20Network%20-%20Part%201/
RNNhttps://www.ismailmebsout.com/recurrent-neural-networks/

deep learning数学基础入门
http://deeploria.gforge.inria.fr/cours/cours1.html#/definitions

Deep Learning Specialization. Master Deep Learning, and Break into AI,吴恩达
https://fr.coursera.org/specializations/deep-learning

Antoine Henrot的优化算法课程
http://www.iecl.univ-lorraine.fr/~Antoine.Henrot/english.html

相关推荐

重温2010年总决赛,黄绿大战,科比真的抢了加索尔FMVP吗

2010年NBA总决赛,已经过去了10多年。不过,提起那一年的总决赛,很多球迷还是记忆犹新,在他们心里,这一年的总决赛是21世纪以来最为精彩的一次总决赛。2010年总决赛,凯尔特人和湖人时隔2年再次相...

始料未及的屠戮——简述2010世界杯阿根廷德国之战

2010年四分之一决赛,德国队以一个令人震惊的比分击败阿根廷,追平连续3届闯进半决赛的纪录,同时创造12次入围4强的新纪录。如果论及世界杯中的冤家球队,英格兰和阿根廷是一对,巴西和法国是一对,阿根廷和...

10年总决赛湖人4:3凯尔特人——科比和加索尔每场具体数据

以下7图为2009-2010赛季总决赛湖人4:3凯尔特人——科比和加索尔每场具体数据:湖人首发:安德鲁·拜纳姆、保罗·加索尔、梅塔·沃尔德·皮斯(慈世平)、...

2020年和2010年的热刺相比,到底提高了多少?

虽然本赛季状态并不太好,但近些年托特纳姆热刺在各方面应该说有了很大的进步。按照这个思路,我们来比较一下热刺在2010年和如今的一下数据。联赛位置2009/2010赛季是热刺崛起的开始,他们逐渐成为联赛...

2010季后赛詹姆斯VS罗斯 老詹关键三分锁定胜局

直播吧6月6日讯2010年季后赛克利夫兰骑士与芝加哥公牛在首轮相遇。整个系列赛,身为当赛季常规赛MVP的詹姆斯场均得到31.8分9.2篮板8.2助攻,而刚进入联盟两年的罗斯亦表现抢眼场均贡献26.8...

攻势犀利未翻盘,出线希望变暗淡,韩国不敌加纳离16强远了

来源:环球时报【环球时报驻埃及特派记者黄培昭环球时报特约记者李佳寅唐牧茂】北京时间28日晚,韩国队在世界杯H组第二轮比赛中2∶3不敌加纳队,这是两支球队在世界杯赛场上的首次碰面。两支球队此前...

VC++与MFC入门简介:它们的区别是什么&如何挑选开发组件

C++编程入门系列给大家讲了C++的编程入门知识,大家对C++语言在语法和设计思想上应该有了一定的了解了。但是教程中讲的例子只是一个个简单的例程,并没有可视化窗口。在这套VS2010/MFC编程入门教...

哪款C语言编译器(IDE)适合初学者?

这里我们把“编译器”和“IDE(集成开发环境)”当做一个概念,不再加以区分。C语言的集成开发环境有很多种,尤其是Windows下,多如牛毛,初学者往往不知道该如何选择,本节我们就针对Window...

八强硬碰硬 往事涌心头

晨报记者孙俊毅北京时间昨天凌晨,随着欧洲杯最后两场1/8决赛结束,八强球队全部产生:上半区的4支球队为瑞士、西班牙、比利时和意大利,下半区的4支球队则是捷克、丹麦、英格兰和乌克兰。1/4决赛将于北京...

无缘十四年后顶峰相遇!10年世界杯决赛荷兰vs西班牙,还记得吗?

欧洲杯半决赛荷兰队无缘与西班牙顶峰相遇,被英格兰所淘汰。荷兰队2010年世界杯决赛正是和西班牙对决,当时0-1惜败巅峰西班牙。(欢迎大家点点关注,随老相馆一起追忆往昔)...

(2)初学C++:如何使用Visual Stdio 2010调试C++程序?

一、创建解决方案和项目1.打开Vs2010,单击...

「连载」 .Net cad二次开发(一)

平常都用arx/c++/mfc来进行cad开发,业余时间学习下.net/C#开发,在此做下记录,同时以供大家参考,交流,共同进步。ps:我也是现学的,如果有什么不对的地方可以指出来,在此谢谢大家!!一...

今日图集:2010年湖人VS热火圣诞大战

詹姆斯撒镁粉科比面对詹姆斯跳投科比防守詹姆斯詹姆斯、丹皮尔、科比韦德飞身上篮科比对抗韦德詹姆斯与阿泰斯特奥多姆与波什...

Visual Studio 2010(VS)--消消乐定制版?--添加反应计时

VisualStudio2010(VS)--消消乐定制版?--添加反应计时上期回顾(上期主要是把原来16格,扩展到了36格的,带18组文字图形的消消乐):本期将给他加一个计时,就是当第一次按下的时...

【项目实战】C/C++自制程序:双人击球游戏

每天一个编程小项目,提升你的编程能力!游戏说明Player1玩家通过W、S按键控制左板上下移动,Player2玩家通过O、L按键控制右板上下移动。在游戏过程中,小球的速度会随着接触木板的次...