这可能是最详尽的TensorflowPlayground讲解笔者团队作为前端在智能化领域的先行探索者,在过去一年多

为此,本文希望借助有名的TensorFlowPlayground来带领大家循序渐进的进入深度学习的领域。

(TensorflowPlayground)

我们对TensorflowPlayground进行一个细致的布局划分,总体上有如下区域:

(Playground区域划分)

接下来我们会对深度学习做一个总体的介绍,然后对每个区域所涉及的深度学习知识详解。

结合Playground自身极强的可视化信息,相信每个读完本文的同学都能畅游其中。

在TensorFlowPlayground里,您就是一个初级算法工程师。需要选择一个你想解决的数据集分类问题,依次调整数据集、超参数、特征向量和隐藏层,点击运行并查看预测结果。

回归到深度学习本身,我们要剥离其中晦涩的概念,给出一个零基础的同学也能看懂的说明。

机器学习并没有什么魔法,它其实就是一个找出过往数据的内在规律,并对未来新数据进行预测的过程,所有的机器学习,包括深度学习,都是找到从输入到输出的最佳拟合函数的过程,传统机器学习可能用的是一些从统计学中传承的方法,而作为机器学习的一个新领域的深度学习,则是从生物神经网络原理中得到的灵感,用网状结构逐步调整各神经元权重的方法来拟合函数。

以Playground里第三个数据集为例,我们选择这个数据集,设定任意参数,运行就可以看到output区域里的结果是对角划分蓝黄区域的这么一个图。

我们需要把节点和颜色分开来看,节点是我们的训练数据,可以看见因为x,y值的不同,我们人为的将数据分为了黄蓝两类。现实中这种场景比比皆是,比如番茄和圣女果就可以根据宽高不同划分,假定我们有番茄和圣女果两类数据,一黄一蓝,通过深度或传统机器学习我们得到了一个可以判别水果类型的方法,这个方法可视化之后就是一个区域划分图,坐标系中长宽较大的右上角区域偏蓝,一个新的数据进来,根据其宽高进行判断,落在这里就会被判别为番茄,反之则是圣女果。

(传统机器学习和深度学习解题步骤)

(svm原理图)

深度学习核心是神经网络,通常一个简单的神经网络包含3部分:输入层、隐含层和输出层,图中的圆圈代表神经元,箭头代表数据的流向,每根连线上面都对应一个不同的权重,权重是网络通过学习自己得到的。网络中每一个神经元都包含了输入、输出以及计算模型3个部分,可以把神经元看成一个计算与存储单元,计算是神经元对其的输入进行计算功能。存储是神经元会暂存计算结果,并传递到下一层。

(神经网络原理)

首先数据集区域,您可以在这里选择四种数据集,每个数据集都有两个类别,这两个类别分别可以用圆形、两条正交直线、对角线和螺旋线的函数来划分。相较于前三个数据集,最后一个数据集函数拟合最困难,是playground里调试起来最有难度的数据集。

(数据集类型)

您可以在Ratiooftrainingtotestdata下调整训练与测试数据的比率,一般来说完整的机器学习有训练集、验证集和测试集三类数据集。训练集是程序寻找特征的数据集,一般来说数据量最大。验证集是每个迭代用于在训练过程中检验模型的状态和收敛情况的数据集。测试集用来评价模型泛化能力,就是训练好了一个模型后需要在测试集上验证真实的结果如何。测试集和验证集数量可以稍微少点,吴恩达的深度学习课程里对不同数据量级别的各数据集占比给出了不同的推荐比例,在百万甚至更多的数据量下,验证集和测试集可以占百分之一甚至千分之一的比例,而在数据量偏少的情况下时,验证集和测试集需要避免过小,推荐训练集、验证集、测试集可以按7:2:1的比例分配。tensorflowplayground里面没有验证集概念,所以训练与测试数据比例设为80%+的情况下训练效果最好。

noise是数据噪声,您可以视情况决定是否启用噪声,噪声越小,训练效果越好。batchsize是每批进入神经网络数据点的个数,我们一个迭代里需要跑完整个数据集,大数据量的情况下一次性的把数据全部塞进网络里显然是不合理的,所以我们可以设定一个batchsize大小,每次只把size大小的数据放进网络里进行训练。

Feature一栏包含了可供选择的7种特征,这里写的是x1,x2,我们不妨直接把X2看做是y坐标。对于playground里的这些用(x,y)描述的二维平面数据集,我们可以从x,y入手,抽离出很多特征,比如单纯的x,y的大小,x,y平方,sin(x),sin(y)正弦分布等。在这里,特征的小方块中同样有黄蓝两种颜色,这个颜色是数值大小的意思,蓝色代表大,黄色代表小,基本可以认为蓝色是正数,黄色是负数。方块本身代表着整个的取值空间,可以认为中心点就是坐标原点,那么以x1x2特征来看,一三象限内值都是蓝色,也就是正数,二四象限内都是负数,很形象的可视化表述了我们的数据特征。

(选择合适的特征很重要)

上图用一个例子形象描述了选择合适特征的重要性,一个需要横纵坐标数据一起作用才能预测的数据集,只凭横坐标一个特征不够的,因为数据中和分类真正有关的有效信息没有传进网络,那么无论多少隐藏层多少神经元都无法实现对数据的有效划分。

上图我们只用横坐标尝试失败了,添加了纵坐标特征就成功了,然后我们选择最为合适的x*y的特征,则效果出乎意料的好。

一般来说,TensorFlow、keras等框架的模型的训练结果包含了模型自身结构信息和隐藏层权重信息两部分,所以神经网络的训练其实就是隐藏层中各个节点权重值的训练。我们可以通过解释playground里面的颜色来感知隐藏层权重的意义,他们的颜色和数据点蓝黄颜色的意义还稍稍不一样:

(神经元和权重的可视化)

hiddenlayers一栏可以设置很多隐藏层。一般来说,隐藏层越多,衍生出的特征类型也就越丰富,分类的效果也会越好。但是层数多了训练速度会变慢,也可能不会有效收敛,容易过拟合。

我尽量用通俗易懂的方式来描述上面这段话。

简单来说,我们要用神经网络拟合出一个可以划分两个数据边界的线,隐藏层的深度和大小就是这个线的细致程度,如果隐藏层越多那么线就会越细致,就会有越多的点被准确划分。但是过于细致也不行,因为如果数据存在噪声,比如一个数据错误的跑到了对面去了,那我这条线就可能要为这个数据绕很大一个圈,这样虽然训练集的准确率高了,每个训练数据的特征都被完美的学到了,但是其实它的划分线并不合理,新来一个数据很有可能就判断出错,如下图所示:

(分类classification问题中的三种拟合状态)

所以,机器学习中一个很常见的问题就是解决过拟合问题,解决它,就要求我们的网络或是其中的一些步骤具有一定的“模糊”效果。只要模糊了,拟合出的函数就会张弛有度,不会吹毛求疵。

回到我们“迭代”这个概念上来,我们以监督学习为例,我们已经有了一些数据,目标是找到将x值映射到y值的函数,可以描述此映射的所有可能函数集合我们成为假设空间,神经网络中每个节点的权重组成的权重网络就是假设空间中的每个“函数集合”。要找到这个最准确的函数,或是这个最准确的权重网络,我们就需要让算法有一些逐步逼近并找出最优解的最佳实践。

这个最佳实践就叫损失函数的求解过程。我们对于最终结果建立起一套“风险函数评估机制”,每次在假设空间中检索的时候都会将这个风险函数计算出的数据拿出来实时查看,始终往风险低的方向走。如果我们在假设空间里是往正确的方向前进,则我们的风险函数(损失函数)也会越来越低,最后趋于一个最低值。

(损失函数求解过程)

这里计算损失函数的步骤都是在全量的数据跑完之后进行的,全量的数据在网络里跑完一次后计算出当前的损失函数大小,然后往下个方向继续行进。这个过程就是一个迭代(Epoch),我们在TensorflowPlayground里面运行算法时,随着Epoch的增加,Output里loss(损失函数值)也在随之变化,直到N个迭代后到达损失函数最优点。这时候我们可以说,已经找到了当前数据样本的最佳拟合函数,我们的模型已经训练完成。

除了隐藏层的个数和神经元个数,我们还有很多左右训练结果的初始参数,他们都叫超参数。

还是看上面的损失函数求解过程,学习率就是每个迭代完之后的行进步长,步长过大则有可能越过了最优解,反复横跳不能得到最优效果。步长过小则不仅收敛效果慢,还有可能如下图一样陷入局部最优,这时候加大学习率才能越过山头找到真正的最优解。总之,选用合适的学习率很重要,不同的模型也有不同的合适学习率可选择。甚至你可以用一些动态学习率的方法来在运算的过程中动态调整学习率,loss下降明显时加大学习率,loss趋缓时减小学习率。

(陷入局部最优)

激活函数是神经网络独有的概念,可以这么说,没有激活函数,那么神经网络是画不出那一条细致的分类线的,再多的隐藏层和神经元都只能复合出线性运算,只能画直线拟合线性函数。激活函数在Playground里面供我们选择的有Relu、Tanh、Sigmoid等,他们样子如下:

(激活函数对比)

正则化是解决过拟合的手段之一,使用正则化可以降低模型的复杂度,增强模型的泛化能力。正则化常用的几种方法有L1和L2。

正则化率就是正则化的程度,提高正则化率可以减少过拟合,但是也要注意不要过高导致欠拟合。

可以更换问题类型,本文介绍的都是分类问题,目的是给定一个数据,我们猜测他的分类。

另一种问题类型叫回归问题,给定一个数据,猜测的结果不需要是分类,而是一个数值。

最后我们可以在Playground的右侧查看本次训练的模型的好坏。

Loss值本质上可以认为就是模型的好坏,loss越小,说明我们模型当前估算出的函数越贴近数据集。所以每个算法的loss函数的计算方式都是算法核心之一,定义了loss函数等于定义了问题解题路径。

说了这么多,最后大家可以自己玩起来啦。如果能对第四个数据集有效收敛并得到一个边缘相对圆滑的结果,就说明您已经是入门算法调参员啦。有兴趣的同学可以私下交流~

THE END
1.2024年12月随笔档案久曲健12 2024 档案 【建议收藏】最新版IDEA2024.3及 AI Assistant 一键激活到2099 摘要:成功永久激活 一、支持的IDE和版本 支持JB家族所有IDE激活 支持版本为2021.3~2024.1 二、如何破解激活 第一步:激活工具下载 为了防止破解工具被删除,通过公众号回复“「永久激活」”获取下载最新工具(如过期,请记得提醒我哦) 关注https://www.cnblogs.com/longronglang/p/archive/2024/12
2.SSRN下载指南,轻松获取学术资源的秘诀优惠活动1、访问SSRN官方网站。 2、点击“注册”按钮。 3、填写个人信息,包括姓名、电子邮件地址等。 4、创建一个安全密码并确认。 5、完成注册流程。 搜索和下载论文 注册成功后,您可以开始搜索和下载论文,请按照以下步骤操作: 1、使用关键词搜索:在SSRN搜索框中输入关键词,选择相关学科领域进行搜索。 https://www.zovps.com/article/index.php/post/438246.html
3.最新idea2024激活码,idea激活教程(附有效idea激活码+激活补丁)问题:https://yoodb.com/deployment/intellij-idea/idea-202402.html文章结尾处有有效解决idea激活的解决方法。 该激活方式不限于IDEA,同样也适用于JetBrains全家桶的所有工具都适用,包括Pycharm、WebStorm、PhpStorm、AppCode、Datagrip、CLion、RubyMine等工具。 https://www.bilibili.com/read/cv40055198
4.MicrosoftLearn资源MicrosoftLearn获取常见问题的答案、排查常见问题并了解与 Microsoft Learn 相关的功能。https://docs.microsoft.com/zh-cn/learn/support/
5.学习导航网studynav网站介绍学习导航网是一个一站式学习网址导航网站,旨在网罗各类学习资源,帮助用户成为学霸。该网站提供了丰富的学习工具和资源,涵盖了多个学习领域,包括但不限于幼小初高电子课本、外语学习、数理化生、考公考研、音乐艺术、电脑办公、设计创意、编程算法以及文学历史等。 https://www.163.com/dy/article/JJRS09M40556B4YR.html
6.ActiveLearningClassroomdfhttps://lrc.uic.edu.cn/info/1045/1129.htm
7.边睡觉边学习?梦境还是现实?npjScienceofLearning—论文—科学网在睡觉时学习是否会有助于记忆?为了进一步探索这一问题,Bjorn Rasch博士在“文章背后的故事”栏目里讨论了他近期于npj Science of Learning发表的一篇研究论文,题目为“Effects of targeted memory reactivation during sleep at home depend on sleep disturbances and habituation”。 https://news.sciencenet.cn/htmlpaper/2019/5/20195281341289150337.shtm
8.分享下《如何学习》完整笔记(如何学习)书评2、遗忘的威力:过滤干扰信息,激活深处的宝藏老观点:遗忘不利于学习传统观点认为,记忆随着时间的增长而减弱。19世纪80年代,德国心理学家赫尔曼·艾宾浩斯(Hermann Ebbinghaus)发现「遗忘曲线」 1914年,美国教育心理学家爱德华·桑代克(Edward Thorndike)将其命名为「失用定律」——如果某项记忆不被提取使用,那么它就会渐渐https://book.douban.com/review/8788634/
9.OriginProLearningEdition填写网页后看到 500 Internal Error 怎么办? 申请学习版的时候填写网页,请注意词句中不要有单引号'(例如It's这样的用法)。目前网站不接受单引号输入,否则网页会返回 Error 500 错误。 三、安装指引 软件安装 "OriginPro Learning Edition instruction" 邮件中提供下载链接(或看下面链接)。如果觉得网盘链接太慢的话https://www.originlab.com/index.aspx?pid=4450
10.中国国际贸易单一窗口网站登录失败常见问题四、操作员激活:使用注册好的操作员用户名与密码登录网站,进行账号激活。 五、省单一窗口登录:网址https://www.360docs.net/doc/8275137.html,/。点击登录—标准版登录,输入用户名密码。 六、绑定:登录成功后,与浙江电子口岸用户名进行绑定。 七、运输工具/舱单申报业务进入:前往省单一窗口,选择登录—标准版,输入https://m.360docs.net/doc/8275137.html
11.数智化学习服务商企业在线学习平台企业培训平台E时代光华创新的平台工具和优质的学习服务受到多方的认可和肯定 企业直播元年 将直播技术深度融入线上学习平台 使直播成为了企业培训中必不可少的一环 激活企业学习生态的ELP5.0上线 移动端APP上线 新版E-Learning平台“ELP5.0”上线 将运营理念融入产品,以运营驱动企业线上学习 https://www.21tb.com/index.jsp
12.神经网络和深度学习neuralnetworksanddeeplearning在实践 中,通常将反向传播算法和诸如随机梯度下降这样的学习算法进行组合使用,我们会对许多 训练样本计算对应的梯度。特别地,给定一个大小为 的 minibatch,下面的算法应用一步 梯度下降学习在这个 minibatch 上: 1. 输入训练样本的集合 2. 对每个训练样本 :设置对应的输入激活 ,并执行下面的步骤 : 前向传播 :https://max.book118.com/html/2018/0401/159671740.shtm
13.机器学习实战从零开始深度学习(通过GPU服务器进行深度学习)一·利用PyTorch开始深度学习 0 写在前面 1 神经网络的组成部分 1.1 层 1.2 非线性激活函数 2 利用Pytorch构建深度学习框架 2.1数据预处理与特征工程 2.2 如何决定要使用的层? 2.3 损失函数 2.4 优化器的选择 2.5 评估机器学习模型 2.6 模型的选择 3 案例实践——猫狗图像分类 https://cloud.tencent.com/developer/article/1990845
14.吴恩达DeepLearning学习笔记——第二课改善深层神经网络为了加速模型的构建,提高模型性能,在训练模型时,一般将数据data划分为训练集、验证集、和测试集,训练集用于训练模型内的参数,如W,b;但还有许多超参数(learning rate、网络结构参数,激活函数选择,正则化参数等)是人为设定的,需要通过验证集来对这些超参数进行优化,测试集用于评估模型的泛化能力。 https://www.jianshu.com/p/9cc85156f7ec
15.12种实用的英语学习方法在开始学习之前,想一想通用的语法点来激活你的语法。例如,如果你是要学习英语语法中的过去时态,可以停下来想想上周你做了什么。通过激活语法,你可以以简单的方式使自己的大脑回想起关于一般过去时的知识。 9.Singing a Song 唱歌 Before class begins, or before you sit down to study English sing a song inhttps://mip.wenshubang.com/xuexijihua/608110.html
16.深度学习高手笔记卷1:基础算法目前人工智能(artificial intelligence,AI)在计算机界非常火热,而其中深度学习(deep learning,DL)无疑是更为火热的一个领域,它在计算机视觉、自然语言处理、语音识别、跨模态分析、风控建模等领域均取得了突破性的进展。而且近年来该领域的优秀论文、落地项目也层出不穷。密切关注深度学习领域的进展是每个深度学习工作者https://www.epubit.com/bookDetails?id=UB7d8623610d375
17.疾控工作动态周报(2023年第39期)组织学分析表明,AAV-NDNF注射促进脊髓运动神经元的存活,减少异常蛋白的聚集,保护神经肌肉接头,减缓肌肉的萎缩(图2)。信号通路分析表明,AAV-NDNF注射显著激活细胞存活相关信号通路,抑制细胞死亡相关信号通路,而且抑制炎症相关信号通路。因此,通过AAV鞘内递送NDNF展现了作为ALS基因治疗策略的潜力。https://www.yascdc.com/Article/View?id=13250
18.如何攻击深度学习系统——后门攻防安全客首先我们需要知道后门攻击的特点,不论是在传统软件安全领域还是深度学习系统(也称神经网络)中,后门攻击都具有两大特点:1.不会系统正常表现造成影响(在深度学习系统中,即不会影响或者不会显著降低模型对于正常样本的预测准确率);2.后门嵌入得很隐蔽不会被轻易发现,但是攻击者利用特定手段激活后门从而造成危害(在深度学习https://www.anquanke.com/post/id/232414
19.你有哪些deeplearning(rnncnn)调参的经验?看论文时经常不看超参数设置等细节。举个例子,现在还有相当多的人不知道 BERT 的激活函数是 GELU 而https://www.zhihu.com/question/41631631
20.learningwithdeepconvolutionalgenerativeadv)的实现在判别网络的所有层上使用LeakyReLU激活函数。 图:LSUN 场景模型中使用的DCGAN生成网络。一个100维度的均匀分布z映射到一个有很多特征映射的小空间范围卷积。一连串的四个微步幅卷积(在最近的一些论文中它们错误地称为去卷积),将高层表征转换为64*64像素的图像。明显,没有使用全连接层和池化层。 https://blog.csdn.net/liuxiao214/article/details/74502975/
21.深度学习基础知识题库大全51CTO博客解析:正确答案B。修正线性单元是非线性的激活函数。 6.深度学习是当前很热门的机器学习算法,在深度学习中,涉及到大量的矩阵相乘,现在需要计算三个稠密矩阵 A,B,C 的乘积ABC,假设三个矩阵的尺寸分别为m?n,n?p,p?q,且m < n < p < q,以下计算顺序效率最高的是() https://blog.51cto.com/xfxuezhang/5888139
22.在Google学习中将个人学习者添加到您的帐号领英学习帮助中心您可以在 Adobe Learning 管理主页上查看已激活许可证的进度。 重要事项 (a) 管理员功能在 Learning 应用程序中不可用。请使用电脑访问领英学习管理。 (b) 某些类型的电子邮件地址(如sales@company.com、abuse@company.com或postmaster@company.com)被视为“角色”而不是“个人”电子邮件地址,在组织许可证内分配 Lehttps://www.linkedin.com/help/learning/answer/72050
23.多层感知器实战:从入门到实践的深度学习之旅多层感知器(MLP)是一种广泛应用于深度学习领域的神经网络结构,它具有多层(包括输入层、隐藏层和输出层)的计算单元或节点,通过逐层处理信息来实现复杂的非线性分类或回归任务。MLP的核心在于其前馈结构允许信息在输入层向输出层单向传递,通过激活函数的引入,使得网络能够学习和表示复杂映射关系。 https://www.imooc.com/article/356464
24.imagebasedonchannelattentionandtransferlearning而PReLU函数的负半轴斜率是一个可以学习的参数,使负半轴的信息不会丢失,所以本文将选择PReLU作为网络的激活函数,这样可以避免神经元“坏死”的现象,起到一定程度的正则作用,也能增加网络的泛化能力; 较深的网络可能会出现难以收敛或过拟合的情况,使网络训练的效果变差[17],所以本文加入了残差网络结构以加速训练的https://www.oejournal.org/article/doi/10.12086/oee.2021.200045
25.(PDF)深度学习入门:基于Python的理论与实现.wangzhiyong本书的理念本书是一本讲解深度学习的书,将从最基础的内容开始讲起,逐一介绍理解深度学习所需的知识。书中尽可能用平实的语言来介绍深度学习的概念、特征、工作原理等内容。不过,本书并不是只介绍技术的概要,而是旨在让读者更深入地理解深度学习。这是本书的特色之一。那么,怎么才能更深入地理解深度学习呢?在笔者https://www.academia.edu/40360595/%E8%A1%A8%E6%BC%94%E9%81%97%E4%BA%A7_%E6%97%85%E6%B8%B8%E4%B8%AD%E7%9C%9F%E5%AE%9E%E6%80%A7%E7%9A%84%E5%86%8D%E6%80%9D%E8%80%83