微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 普林斯顿大学团队颠覆传统:新方法让AI训练更快更聪明,无需复杂标准化步骤

普林斯顿大学团队颠覆传统:新方法让AI训练更快更聪明,无需复杂标准化步骤

2025-12-30 09:25
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2025-12-30 09:25 科技行者

在AI领域的发展长河中,有一个看似不起眼但极其重要的技术环节——标准化层,它就像是烹饪过程中必不可少的调料,帮助神经网络保持稳定训练。然而,来自普林斯顿大学、纽约大学和卡内基梅隆大学的研究团队却在2024年12月发表了一项突破性研究,彻底改写了这一传统认知。这篇发表在arXiv预印本平台(论文编号:arXiv:2512.10938v1)的研究论文,由普林斯顿大学的陈明志和刘壮等人领衔完成,提出了一种名为"动态误差函数"(Derf)的创新方法,不仅能够完全取代传统的标准化层,更能让AI模型的表现变得更加优秀。

这项研究就像是在烹饪界发现了一种全新的调料,它不仅能替代传统调料的作用,还能让菜品的味道变得更加鲜美。在AI的世界里,标准化层一直被认为是训练深度神经网络时不可或缺的组件,它的作用类似于在制作面包时需要精确控制面团的温度和湿度。然而,研究团队发现了一种全新的"配方",使用简单的数学函数就能达到更好的效果。

这种新方法的核心是一个看似简单的数学函数——误差函数(erf),它就像是大自然中完美的S型曲线。研究团队给这个函数加上了可以学习调整的参数,就像给一把万能钥匙配上了不同的齿形,让它能够适应各种不同的"锁"。这个被命名为Derf的新方法,在图像识别、语音处理、DNA序列分析等多个领域的测试中都表现出色,证明了它的通用性和有效性。

更令人惊喜的是,研究团队不仅提出了这个新方法,还深入分析了为什么它会如此有效。他们发现,一个优秀的替代函数需要具备四个关键特性:以零为中心、有界限、对中心敏感,以及单调性。这就像是发现了优秀调料的四个基本要素:平衡的味道、适度的浓度、敏锐的反应性和稳定的特性。

一、传统标准化层的困境与新思路的诞生

在深度学习的发展历程中,标准化层的地位就像是建筑中的地基,看似不起眼却至关重要。自从2015年批量标准化(Batch Normalization)技术问世以来,各种标准化方法如雨后春笋般涌现,包括层标准化(Layer Normalization)、组标准化(Group Normalization)等等,它们都在努力解决同一个核心问题:如何让神经网络的训练过程保持稳定。

标准化层的工作原理可以用调节水温的恒温器来比喻。当你洗澡时,恒温器会自动调节热水和冷水的混合比例,确保出水温度始终保持在舒适的范围内。同样,标准化层会监控神经网络中数据流动的"温度",通过计算均值和方差来调节数据的分布,防止出现过热(梯度爆炸)或过冷(梯度消失)的情况。

然而,这种传统方法也带来了不少问题。首先,它需要大量的计算资源来统计和处理这些数据分布信息,就像一个过分挑剔的厨师,需要不断地品尝和调味,耗费了大量的时间和精力。其次,这种方法对批次大小非常敏感,就像某些精密的化学反应只能在特定的容器大小中进行,一旦改变容器大小,反应效果就会大打折扣。

正是在这样的背景下,研究团队开始思考一个根本性的问题:是否存在一种更简单、更高效的方法来达到同样甚至更好的效果?他们的灵感来源于最近出现的"动态双曲正切"(Dynamic Tanh,简称DyT)方法,这是一种用简单的数学函数来替代标准化层的尝试,就像用电子温控器替代传统的机械恒温器。

DyT方法使用双曲正切函数(tanh)来处理数据,这个函数的形状像一个平缓的S型曲线,能够自然地将极大和极小的数值压缩到一个合理的范围内,就像一个智能的减震器,能够平滑地处理各种冲击。虽然DyT已经能够达到与传统标准化层相当的效果,但研究团队并不满足于此,他们想要找到一种能够超越传统方法的新途径。

二、四大黄金法则:优秀函数的必备特质

为了找到最理想的替代函数,研究团队进行了一系列精密的实验,就像一位经验丰富的酿酒师在寻找完美的酵母配方。他们系统地分析了各种数学函数的特性,最终总结出了四个关键特质,这四个特质就像是优秀替代函数的"四大黄金法则"。

第一个法则是"以零为中心",这意味着函数在零点附近应该保持平衡,正值和负值的影响应该大致相等。这就像天平的平衡点,任何偏离都会影响整体的稳定性。研究团队发现,当函数偏离零点太远时,神经网络的训练就会变得不稳定,就像一辆失去平衡的自行车,很容易摔倒。

第二个法则是"有界性",即函数的输出值应该被限制在一个有限的范围内。这就像给一匹烈马套上缰绳,虽然它依然充满活力,但不会失控狂奔。实验结果显示,没有边界约束的函数往往会导致数值爆炸,就像没有安全阀的蒸汽机,最终会因为压力过大而发生故障。

第三个法则是"中心敏感性",这意味着函数在零点附近应该对输入变化保持敏感,能够快速响应小的变化。这就像一个灵敏的传感器,即使是微小的信号变化也能被准确捕捉。研究团队发现,如果函数在零点附近过于"迟钝",就像一个反应缓慢的司机,无法及时应对路况变化,最终会影响整体的性能表现。

第四个法则是"单调性",即函数应该始终保持增长或下降的趋势,不能出现起伏不定的情况。这就像一条平稳上坡的道路,虽然可能有陡峭和平缓的区别,但方向始终是明确的。相反,那些忽上忽下的函数就像崎岖的山路,不仅让人感到颠簸,还容易迷失方向。

为了验证这四个法则的有效性,研究团队进行了大量的对比实验。他们就像科学家在实验室中测试不同的化学试剂一样,系统地改变每个特质,观察对最终结果的影响。实验结果清楚地表明,只有同时满足这四个条件的函数,才能在各种任务中表现出色。

这些发现不仅为函数选择提供了科学依据,更重要的是,它们揭示了为什么某些函数能够成功替代传统标准化层的深层原因。这就像发现了成功烹饪的秘密配方,不仅知道放什么调料,还明白为什么要这样搭配。

三、寻找完美函数:从海量候选到最优选择

基于前面发现的四大黄金法则,研究团队开始了一场大规模的"选美比赛",目标是从众多候选函数中找出最优秀的那一个。这个过程就像一位导演在为重要角色选择演员,需要从成千上万的候选者中找出最适合的人选。

研究团队构建了一个庞大的候选函数库,包含了数学世界中各种形状和特性的函数。有些函数来自经典的数学公式,就像莎士比亚的经典剧本;有些则是通过巧妙的数学变换创造出来的新函数,就像现代编剧的创新作品。这个函数库涵盖了多项式函数、三角函数、指数函数、对数函数等各种类型,每一个都经过精心筛选,确保符合四大黄金法则的基本要求。

为了公平地比较这些候选函数,研究团队设计了标准化的测试环境,就像举办奥运会需要统一的比赛场地和规则一样。他们选择了两个代表性的AI架构进行测试:视觉变换器(Vision Transformer,简称ViT)用于图像识别任务,扩散变换器(Diffusion Transformer,简称DiT)用于图像生成任务。这两个任务就像是测试演员演技的两个不同场景,一个考验理解能力,另一个考验创造能力。

测试过程采用了严格的科学方法,每个候选函数都被装配上相同的"装备"——可学习的缩放参数α、偏移参数s、以及标准的仿射变换参数γ和β。这就像给每位选手提供相同的工具和条件,确保比赛的公平性。所有函数都使用相同的训练数据集ImageNet-1K,这是一个包含超过百万张图片的大型数据集,就像是演员们需要表演的同一部剧本。

经过数轮激烈的竞争,一个名为"误差函数"(error function,简写为erf)的函数脱颖而出,成为了这场比赛的最终胜者。这个函数的数学表达式看起来有些复杂,但它的形状却非常优美——是一条平滑的S型曲线,就像大自然中河流的弯曲轨迹一样自然流畅。

误差函数的优越性体现在多个方面。在图像识别任务中,它帮助模型达到了82.8%的准确率,比传统的层标准化(82.3%)和动态双曲正切(82.5%)都要更高。在图像生成任务中,它的表现同样出色,生成图片的质量评分(FID分数,越低越好)达到了43.94,明显优于其他方法。这些数字可能看起来差别不大,但在AI领域,即使是0.1%的提升也意味着巨大的进步,就像奥运会中0.01秒的差距就能决定金牌的归属。

更让人惊喜的是,误差函数不仅在这两个标准测试中表现出色,在后续的各种应用场景中都展现出了稳定而优秀的性能,证明了它的通用性和可靠性。这就像找到了一位全能演员,不仅能演喜剧,也能演悲剧,还能胜任动作片的要求。

四、动态误差函数(Derf)的诞生与优势

基于误差函数的优异表现,研究团队将其进一步完善,创造出了"动态误差函数"(Dynamic error function,简称Derf)。这个新方法就像是在一把好刀的基础上加上了精细的雕刻,让它变得更加锋利和实用。

Derf的核心思想相当巧妙。传统的误差函数就像一个固定形状的模具,虽然形状优美,但缺乏灵活性。而Derf则给这个"模具"加上了可调节的机制,通过两个可学习的参数——缩放因子α和偏移参数s——让函数能够根据具体任务的需求自动调整自己的"体型"。这就像一把可调节的扳手,能够适应不同大小的螺母,比固定尺寸的扳手更加实用。

缩放因子α的作用类似于放大镜的倍数调节,它控制着函数对输入变化的敏感程度。当α较大时,函数会对小的输入变化产生较大的反应,就像高倍放大镜能够清楚地显示细微的细节。当α较小时,函数的反应会比较温和,就像低倍放大镜提供的是更宽广但不太详细的视野。

偏移参数s则像是相机的焦点调节,它能够微调函数的"视角",确保函数能够最好地"聚焦"在数据的关键特征上。通过这个参数的调整,函数可以根据不同数据集的特点来优化自己的行为,就像一个经验丰富的摄影师会根据拍摄对象的不同来调整焦距。

除了这两个核心参数,Derf还保留了传统标准化层中的仿射变换参数γ和β。这两个参数就像是最后的润色工具,γ控制输出的"亮度",β调节输出的"对比度",确保最终结果能够完美地融入整个神经网络的工作流程中。

研究团队在参数初始化方面也下了很大功夫,他们发现最佳的初始设置就像烹饪中的火候控制一样重要。γ初始化为全1向量,β初始化为全0向量,这与传统标准化层的做法保持一致,就像沿用经典菜谱中的基础配料比例。对于新引入的参数,α初始化为0.5,s初始化为0,这个选择是基于大量实验得出的最优起点,就像找到了最适合的起始温度。

Derf相比传统方法的优势是全方位的。从计算效率角度来看,它不需要计算复杂的统计量(如均值和方差),大大减少了计算负担,就像用电子秤替代了需要反复调平的天平。从内存使用角度来看,它不需要存储和同步大量的统计信息,特别是在分布式训练环境中,这种优势更加明显,就像轻装上阵的旅行者总是比负重过多的人走得更快更远。

更重要的是,Derf表现出了更好的泛化能力。研究团队发现,使用Derf训练的模型虽然在训练数据上的拟合能力稍微逊色(训练损失略高),但在测试数据上的表现却更加出色。这种现象表明Derf具有内在的正则化效果,就像一个好的老师不是让学生死记硬背,而是培养学生的理解能力和举一反三的思维。

五、全面验证:多领域的卓越表现

为了验证Derf的通用性和可靠性,研究团队进行了一场堪称"马拉松式"的全面测试。这就像一位新药研发者需要在不同的人群、不同的疾病、不同的环境条件下测试药物的效果,确保它不仅在实验室中有效,在现实世界中也能发挥同样的作用。

测试的第一站是计算机视觉领域,这里使用的是著名的ImageNet-1K数据集,就像视觉AI领域的"高考",几乎所有重要的图像识别算法都会在这个数据集上接受检验。研究团队测试了两种规模的视觉变换器(ViT-Base和ViT-Large),结果令人印象深刻。在ViT-Base上,Derf达到了82.8%的准确率,比传统层标准化的82.3%提升了0.5个百分点,比动态双曲正切的82.5%提升了0.3个百分点。在更大的ViT-Large模型上,提升幅度更加明显,Derf达到了83.8%的准确率,比层标准化提升了0.7个百分点。

接下来的测试涉及图像生成领域,这是一个更具挑战性的任务,就像从学会看图片升级到学会画图片。研究团队使用了三种不同规模的扩散变换器(DiT-B/4、DiT-L/4和DiT-XL/2),评估生成图像的质量。在这个领域,质量评估使用的是FID分数,这个分数越低表示生成的图像质量越好,就像高尔夫球的杆数越少越好。结果显示,Derf在所有三个模型上都取得了显著的改善:在DiT-B/4上FID分数从64.93降低到63.23,在DiT-L/4上从45.91降低到43.94,在DiT-XL/2上从19.94降低到18.92。

语音识别领域的测试采用了wav2vec 2.0模型和LibriSpeech数据集,这就像测试一个人的听力理解能力。在这个任务中,模型需要从原始音频信号中学习有用的表示,为后续的语音识别任务做准备。Derf再次展现了它的优势,在两种模型规模(Base和Large)上都取得了更低的验证损失,证明了它在音频信号处理方面的有效性。

最具挑战性的测试来自生物信息学领域的DNA序列建模。这个任务就像让计算机学会阅读生命的密码,需要理解DNA序列中复杂的模式和规律。研究团队使用了两种专门的模型:HyenaDNA和Caduceus,在GenomicBenchmarks数据集上进行测试。令人惊喜的是,Derf在这个完全不同的领域也表现出色,在HyenaDNA上将准确率从85.2%提升到85.7%,在Caduceus上从86.9%提升到87.3%。

最后的测试涉及自然语言处理,研究团队使用了经典的GPT-2模型在OpenWebText数据集上进行预训练。虽然在这个任务上Derf的提升相对较小,但它依然能够与传统的层标准化方法持平,同时明显优于动态双曲正切方法。

这一系列全面的测试结果表明,Derf不仅仅是一个在特定任务上表现良好的技术方案,而是一个具有广泛适用性的通用改进方法。就像发现了一种新的合金材料,它不仅能够用于制造汽车,还能用于建造飞机、轮船和建筑物,展现出了跨领域的优越性能。

六、深度解析:为什么Derf如此有效

面对Derf在各个领域的优异表现,一个自然而然的问题浮现出来:这种改进究竟来源于哪里?是因为它提高了模型的学习能力,还是因为它增强了模型的泛化能力?为了回答这个根本性问题,研究团队设计了一系列精巧的分析实验,就像医生为了确诊病因而进行的各种检查。

传统的观点认为,一个方法的改进通常来源于两个方面:要么是提高了模型对训练数据的拟合能力(就像让学生更好地掌握课本知识),要么是增强了模型的泛化能力(就像培养学生在面对新题目时的应变能力)。为了分离这两种效应,研究团队采用了一个聪明的实验设计。

他们在模型训练完成后,将所有模型都切换到评估模式,关闭所有的随机性因素(如随机失活、数据增强等),然后在训练数据上重新计算损失函数。这个过程就像让所有学生在完全相同的条件下重新考试,确保比较的公平性。如果某个方法在这种情况下表现出更低的训练损失,就说明它具有更强的拟合能力;如果训练损失更高但测试性能更好,就说明它具有更好的泛化能力。

实验结果令人意外且富有启发性。在所有测试的架构和规模上,Derf和DyT方法都显示出了比传统标准化方法更高的训练损失。按照常规逻辑,这应该意味着更差的性能,但实际情况恰恰相反——它们在测试数据上的表现都比传统方法更好。这种现象就像一个学生在课本练习上的得分稍低,但在真正的考试中却能取得更高的分数。

这个发现揭示了Derf成功的深层秘密:它并不是通过增强模型的记忆能力来提高性能,而是通过改善模型的理解和推理能力。传统的标准化层就像一个过分细致的管家,会根据当前的情况(训练数据的统计特性)来精确调整环境,这种过度的适应性虽然在短期内有效,但可能导致对特定环境的过度依赖。

相比之下,Derf更像一个有原则的指导者,它使用固定的、基于数学原理的变换规则,不会根据当前数据的特性进行调整。这种"固执"的特性实际上是一种隐性的正则化机制,就像一个好老师不会迁就学生的惰性,而是坚持用正确的方法引导学生思考。

研究团队进一步分析发现,Derf相对于DyT的优势主要体现在更好的拟合能力上。虽然两者都具有类似的正则化效果,但Derf在这个基础上还能够更有效地学习数据中的有用模式。这种差异可以用两个老师的教学风格来类比:虽然两位老师都强调理解而非死记硬背,但其中一位老师能够用更清晰、更有条理的方式解释概念,因此学生的理解效果更好。

这种分析还解释了为什么某些看似微小的函数差异会导致显著的性能差异。数学函数的形状特性会影响梯度的传播方式,进而影响整个训练过程。误差函数(erf)相比双曲正切函数(tanh)具有更平滑的导数变化,这种微妙的差异就像两条不同的道路,虽然起点和终点相同,但其中一条路面更平整,行车体验更好,最终能够更快更安全地到达目的地。

七、技术细节与实现要点

在了解了Derf的原理和优势之后,许多技术人员可能会关心一个实际问题:如何在现有的AI系统中实现和部署这个新方法?研究团队在论文中提供了详细的实现指南,就像一本详细的安装说明书,确保任何人都能正确地使用这项技术。

Derf的实现相对简单,这也是它的一个重要优势。与传统标准化层需要复杂的统计计算不同,Derf只需要计算一个数学函数值,就像用计算器计算一个表达式一样直接。具体来说,对于输入的每个数值x,Derf会先计算αx+s,然后将结果代入误差函数erf,最后通过γ和β进行缩放和平移。整个过程可以用一行代码表示:y = γ × erf(α × x + s) + β。

参数初始化是实现过程中的一个关键环节,就像种植花卉需要选择合适的土壤和水分条件。研究团队通过大量实验确定了最佳的初始化策略:γ初始化为1,β初始化为0,这与传统标准化层的做法保持一致;α初始化为0.5,s初始化为0,这是针对Derf特性优化的设置。这些数值看似随意,实际上是经过精心调校的结果,就像名厨的调料配比,每一个数字都有其深层的含义。

在不同的深度学习框架中实现Derf都相对容易。无论是PyTorch、TensorFlow还是其他主流框架,都内置了误差函数的计算,因此不需要从零开始编写复杂的数学运算代码。实现者只需要定义可学习的参数,然后调用框架提供的erf函数即可,整个过程就像搭积木一样简单。

对于那些希望在现有模型中使用Derf的研究者,替换过程也非常直接。只需要找到原有代码中的标准化层(通常命名为BatchNorm、LayerNorm或类似名称),然后用Derf层替换即可,就像更换汽车的轮胎一样,不需要改动整个车辆结构。这种"即插即用"的特性大大降低了使用门槛,让更多人能够受益于这项技术改进。

研究团队还贴心地提供了一些实用建议。例如,他们发现偏移参数s可以是标量(单一数值)也可以是向量(每个通道一个数值),但实验表明标量形式就已经足够,这简化了实现过程并减少了计算开销。他们还发现,虽然理论上可以为每个通道设置不同的α值,但统一的标量α通常能够获得更好的效果,这再次证明了"简单即美"的设计哲学。

此外,研究团队还对比了Derf与近似方法的效果。例如,有人可能想通过调节双曲正切函数的参数来近似误差函数的行为,但实验表明这种近似方法虽然能够带来一些改进,但仍然无法达到真正的误差函数的效果。这就像用人造黄油虽然能够部分替代真黄油的功能,但在味道和营养价值上仍然存在差距。

八、未来展望与应用前景

Derf的成功不仅仅是一个技术改进,更重要的是它开启了一个全新的研究方向,就像哥白尼的日心说不仅解释了行星运动,更改变了人们对宇宙的认知。这项研究向我们展示,那些在深度学习中被视为"必需品"的组件,实际上可能存在更好的替代方案。

从短期应用前景来看,Derf可以立即在多个现有的AI系统中得到应用。对于那些正在开发新的视觉识别系统的团队,Derf可以帮助他们在不增加计算成本的情况下提升模型性能,就像升级了发动机但不增加油耗。对于图像生成和视频制作领域,Derf的改进可能意味着生成内容质量的显著提升,这对于内容创作行业具有重要价值。

在语音处理领域,Derf的应用前景同样广阔。无论是语音识别、语音合成还是语音转换,都可能从这种改进中受益。特别是在资源受限的移动设备上,Derf的高效性可能成为一个重要优势,让智能语音助手变得更加聪明而不会消耗更多电量。

生物信息学领域的应用可能会产生更深远的影响。DNA序列分析在药物研发、疾病诊断和个性化医疗中发挥着越来越重要的作用,Derf的改进可能有助于加速这些领域的突破。例如,更准确的基因变异预测可能帮助医生更早地发现疾病风险,更精确的蛋白质结构预测可能加速新药的研发进程。

从长期角度来看,Derf所代表的研究思路可能会启发更多的创新。如果一个看似不可替代的标准化层都能找到更好的替代方案,那么神经网络中的其他组件是否也存在类似的改进空间?这种思考可能会推动整个深度学习领域的范式转换,就像工业革命用机器替代了手工劳动一样。

研究团队也坦诚地讨论了当前方法的局限性。虽然Derf在多个领域都表现出色,但它是否能够在所有可能的应用场景中都保持优势,还需要更多的验证。特别是在一些极端条件下,比如极小的数据集或者特殊的网络架构,Derf的表现可能需要进一步的研究和优化。

另一个值得关注的方向是对Derf工作机理的理论分析。虽然实验结果清楚地展示了Derf的优势,但从理论角度完全解释这种优势的来源仍然是一个挑战。这就像我们知道某种草药能够治病,但还没有完全理解其中的生物化学机制。深入的理论研究不仅能够增进我们的理解,还可能指导未来更好方法的开发。

教育和普及也是一个重要的考虑因素。虽然Derf的实现相对简单,但让更多的研究者和工程师了解和采用这项技术仍然需要时间和努力。开源代码、教程文档和实际案例的分享将是推动技术普及的关键因素,就像新的烹饪技巧需要通过菜谱和教学视频才能广泛传播。

说到底,这项来自普林斯顿大学团队的研究为我们带来的不仅仅是一个技术改进,更是一种全新的思考方式。它告诉我们,在科技快速发展的今天,那些看似已经定型的技术方案仍然存在着巨大的改进空间。就像厨师永远在寻找更好的调料配方,科学家也应该永远保持对现有方法的质疑和改进的热情。

Derf的成功证明,有时候最好的解决方案并不是最复杂的,而是最优雅的。一个简单的数学函数,经过精心的设计和调优,竟然能够在如此广泛的领域中都表现出色,这本身就是对"简单即美"这一设计哲学的最好诠释。对于那些正在AI领域中探索和创新的研究者们来说,这项研究无疑提供了一个宝贵的启示:最大的突破往往来自于对基础组件的重新思考和改进。

随着越来越多的研究团队开始尝试和验证Derf方法,我们有理由相信,这项技术将在AI领域产生持续而深远的影响,为构建更加智能、高效的人工智能系统铺平道路。

Q&A

Q1:动态误差函数Derf到底是什么?

A:Derf是普林斯顿大学团队开发的一种新技术,用来替代AI训练中的标准化层。它基于数学中的误差函数,加上了可学习的参数,就像给一把万能钥匙配上不同齿形,能适应各种任务需求,而且比传统方法效果更好。

Q2:为什么Derf比传统标准化层更有效?

A:Derf的优势来自更好的泛化能力而非拟合能力。传统标准化层像过分细致的管家,会根据当前情况过度调整,而Derf更像有原则的指导者,用固定的数学规则工作,这种"固执"特性实际上是隐性正则化,能让AI模型在新任务上表现更好。

Q3:Derf能在哪些领域使用?

A:Derf的应用范围很广,包括图像识别、图像生成、语音处理、DNA序列分析甚至自然语言处理。研究显示它在所有这些领域都能提升性能,就像发现了一种通用合金材料,可以用于制造各种不同的产品。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-