隐喻

基于LLM的prompt隐喻理解增强 基于LLM的prompt隐喻理解增强 关键词:LLM、Prompt、隐喻理解、自然语言处理、人工智能 摘要:本文探讨了基于大型语言模型(LLM)的prompt隐喻理解增强方法。首先,我们介绍了问题的背景和问题描述,然后提出了一种解决方案,详细阐述了隐喻识别与分类、隐喻解析与理解、隐喻生成与反馈的步骤。最后,我们讨 阅读详情

隐喻的重要性

我之前认为事物的逻辑性,只有对错之分,但是读完这一节带给我许多新的思考,咱们一起来品读。

重要概念的产生往往通过类比产生,比如将分子类比为保龄球一样的小球;光和声音的传播类比等等。这些类比有好有坏,但没有绝对的对错之分,其实看待任何事物不能只是狭隘地区分对错,而应该从多个角度深入地去看。

模型之所以容易被接受,是因为它生动形象,我们从认知上来讲最容易接受图像信息,就是因为直观,生动形象。模型有好有坏,而且对于同一事物的不同角度也能分出不同的模型,也能有不同的理解。

比如一个悬在铁链上来回晃动的大石头。在 Galileo 之前,Aristotelian 看到它时想到的是重物必然要从高处落下来停在低处,他认为石头是在克服阻力下落,而当 Galileo 看到同一现象时,他认为自己看到了一个单摆,他认为石头是在不断地重复同一运动。

1973年的图灵奖颁奖演说中,Charles Bachman 叙述了从地心说向日心说转移的过程。Bachman 把天文学中从地心说向日心说的转变,与 70 年代前期在计算机编程中的变化作了个对比。在当时,数据处理正从以计算机为中心向以数据库为中心进行转变。Bachman 指出,在旧的处理模式中,数据被当成是一个连续流过计算机的卡片流(以计算机为中心);而在新的模式中,数据好比是一个水池,而计算机则偶尔涉足其中(以数据库为中心)。

旧理论一旦被抛弃就很难再捡起来,具有讽刺意味的是,旧理论的相信者认为新理论荒唐可笑,就像我们今天看旧理论一样。

当然我们不能一味地评判对错,科学史并不是由一系列从“错误”模型到“正确”模型开关组成的,而是逐渐由“坏”模型变为“较好”的模型,从包含面较窄到包含面较宽,从覆盖领域较少到覆盖领域较多。

事实上很多被替代的旧理论还在发挥作用,像数学理论、基础力学等。

在软件科学中,拥有的是大量相互矛盾的模型,对于模型的理解决定了对于软件开发的理解。

使用软件隐喻

隐喻对于软件的作用更像是灯塔,给人以启发性的思考。

公式是一套规则,你的所有行动必须在公式的限定下进行,而启发往往与运气相关,更具有趣味性和未知性。公式与启发的区别是微妙的,他们之间的主要区别是:公式直接指令,而启发会告诉你如何找到这些指令,至少你知道去哪里寻找。

编程中最富于挑战性的问题便是将问题概念化,编程中许多错误往往都是概念性错误,因为每个程序在概念上都是独特的,所以创立一套可以指导每一个问题的规则是非常困难,甚至是不可能的。这样,从总体上知道该如何解决问题,便几乎和知道某一特定问题的答案一样重要了。

你是怎样使用软件隐喻的呢?应该用它来帮助你获得关于编程过程的内在理解,利用它们来帮助你考虑编程活动,想象解决问题的更好办法。

常用的软件隐喻

Writing Code(写代码)

开发软件最原始的隐喻出自“写代码”一词。这个写的隐喻说明开发一个程序就像随便写封信,你准备好纸、笔和墨水,坐下从头写到尾就算完成了。这不需要任何正式计划,你只是把你要说的都写出来。

Jon Beitle 说,你应该准备好一杯白兰地,一支上等雪茄,与你喜欢的猎狗一同坐在火边,像一个优秀小说家一样享受一次“自由编程”。

在一些小问题中,写代码隐喻可以充分描述他们,但是随着软件的发展,开发一个主要系统的投资已经相当于建一幢十层办公楼或造一艘远洋客轮的费用了。这种写代码隐喻已经不适用了。

Growing a System(软件播种)

与刻板的写隐喻相反,一些软件开发者认为你应该把创建软件当作播种或培植庄稼。你设计一小部分,编码一小部分,测试一小部分,然后在某个时候把它加到系统上,通过小步走,你减小了每次可能遇到的错误。

但是软件种植隐喻的弱点是你对于软件开发失去了直接控制。你在春天播种代码,最后在秋天收获一大堆代码。所以不合适

System Accretion(系统积累)

有时候,人们在谈论种植软件而事实上他们指的是软件积累。这两个隐喻是密切联系的,但是软件积累更深刻一些。“积累”这个词,含有通过外加或吸收,缓慢生长的意思,就像河蚌逐渐分泌酸钙形成珍珠一样。在地质学上,水中悬浮物逐渐沉积形成陆地的过程也与此相似。

另外一个与积累密切相联的词是增量。增量设计、构造、测试是软件开发的最强有力工具之一。“增量”一词在设计者心目中还远未达到“结构化”或“面向对象设计”等的地位,所以迄今为止也没有一本关于这方面的论述,这实在是令人遗憾的,因为这种书中所收集的技术将具有极大的潜力。

在增量开发中,你首先设计系统可以运行的最简单版本。不需要输入输出,只需要成为一个坚实的骨架结构,以便承受在其之上的系统。就像河蚌刚开始产生珍珠的核——一粒沙子。

当你搭好骨架后,逐渐地往上添加肌肉和皮肤。你把每一个伪子程序变成真正的子程序。

增量隐喻的力量在于:作为一个隐喻,它并没有过分作出许诺,它不像耕种隐喻那样容易被错误延伸。河蚌育珍珠的联想对理解增量发展法或积累法有很大帮助。

Building Software(创建软件)

“建造”一词的想象比“写”或者“种植’软件的想象更为贴切,它与“增量”软件的想法是基本一致的。建造隐喻暗示了许多诸如计划、准备、执行等工作阶段。如果你仔细研究这个隐喻,你还会发现它还暗示着其它许多东西。

建造不同的事物所需的集合是完全不同的,如建造沙滩上的一个小土堆和建造一个摩天大楼。

较大的规模和复杂性往往意味着可以产生较大的成果。在修房子的时候,材料可能比较贵,但更大的花费是劳动力。拆掉一面墙并把它移到六英尺之外是很昂贵的,但并不是因为你浪费了许多钉子,而是因为你需要付出劳动。你应该尽可能精心设计,以避免那些本可避免的错误,以降低成本。在开发软件过程中,材料更便宜,然而劳动力成本却更高。改变一个报告的格式,可能与移走一幢房子里的墙壁一样昂贵,因为二者成本的主要部分都是劳动力。

这两个活动之间还有什么类似之处呢?在建房子中,你不会去建造那些你可以现成买来的东西,比如洗衣机、烘干机,电冰箱、吸尘器等,除非你是个机械迷。同时,你也会去购买已经做好的地毯、门、窗和浴室用品,而不是自己动手建。如果你正在建造一个软件,你也会这样做。你会推广使用高级语言的特点,而不是去编写操作系统一级的代码。你也会利用已经存在的显示控制和数据库处理系统,利用已经通过的子程序。如果样样都自己动手是很不明智的。

如果你在盖办公楼时工作做得不好,那么在楼内办公的人便可能面临危险。同样,如果你在创建医药、航空电子、空中交通管制、加工控制等软件时工作做得不好,后果也可能是灾难性的。危及别人生命是劣质软件的最可怕后果,但并不是它的唯一危害。如果公司的股东们因为你编写了错误软件而赔钱,那也是令人遗憾的。无论如何,无辜的人们没有义务为你的工作失误而付出代价。

这两者之间的相似还可以推广到其它方面,这就是为什么建筑物创建隐喻是如此强有力的原因。许多常用的软件词汇来源于建筑学,如:软件体系结构、搭结构架、构造、分割代码、插入子程序等等。

The Intellectual Toolbox(智能工具箱)

在过去的十几年中,优秀的软件开发人员们积累了几十条关于开发软件的技术和技巧,有些像咒语般灵验,这些技术不是规则,它们是分析工具。一个优秀的工匠知道用什么样的工具干哪一样工作,而且知道该如何使用它们。程序员也是如此,关于编程你理解得越深入,你的工具箱里的工具也就越多,何时何地该如何运用它们的知识也就越多。

把方法和技巧当作工具是很有益处的,因为这样可以使我们对其有一个正确的态度。不要把最新的“面向对象设计技术”当作上帝赐予的法宝,它不过是一件在某些场合下有用,而在某些场合下又无用的技术。

在软件开发中,常常会有人告诉你用一种方法来代替另外一种方法。这实在不幸,如果你仅仅采用一种方法,那你就会把整个世界都当成那个工具的作用对象。你会失去用更适合的方法解决问题的机会。工具箱隐喻有助于我们保留一切方法、技巧、技术等,并在适当的时候使用它们。

Combing Metaphors(复合隐喻)

隐喻从本质上来说就是一种启发性思维,各种隐喻之间有相互联系的地方,这就需要你的想象力,去找到合适的隐喻。

总结

  • 生动形象去联系事物之间的关系
  • 要找到好的隐喻
  • 要充分理解创建软件和智能工具箱隐喻
隐喻理解深度:测试LLM解读比喻性语言的准确性 隐喻理解与LLM 引言 在语言交流中,隐喻是一种常见且强大的修辞手法。隐喻通过将一个事物比作另一个事物,使得抽象概念变得更加具体、生动。然而,隐喻的理解并非易事,它涉及语言、文化和认知等多方面的因素。随着人工智能技术的不断发展,特别是大型语言模型(LLM)的出现,我们开始探索机器是否能够理解并解读隐喻。 阅读详情

相关推荐

隐喻:动词和内容词的隐喻分类

动词/内容词的自动隐喻分类 请参考以下每个子目录,以获取有关动词和内容词(名词,动词,形容词和副词)自动隐喻分类的数据集/实验的进一步参考。 每个子目录都是独立的。 对于动词隐喻分类,请转到此 对于内容词分类,请转到此 对于NAACL 2018中第一个隐喻共享任务或ACL 2020中第二个此类共享任务中使用的VUA数据集,请转到此 对于ACL 2020中第二个共享的隐喻检测共享任务中使用的TOEFL数据集,请转到此 要直接下载数据集,请直接转到

软件隐喻

1.隐喻或者称为“类比”,“建模”通过把你不太理解的东西和一些你较为理解的,且十分类似的做比较,可以对那些不太理解的东西产生更深刻的理解,这种隐喻的方法叫做“建模”     2.隐喻是一种启发式的方法,告诉我们如何去发现这些引导信息,哪里去寻找,是激发思维灵感。算法是比较严谨的,直接解决问题引导     3.书中举例四种常见的软件隐喻       1)书写代码:对写作而言最重要的是原创性,但

805

隐喻识别与应用

基于机器学习与语义知识的动词隐喻识别与应用

编程工作中常用的隐喻

建造软件 软件开发中的问题定义——决定造一幢什么样的房子 软件的总体设计——总体方案 软件中的详细设计——画出细节蓝图给承包商 软件创建——选房址、打地基、建造房屋框架、建好墙壁、加上屋顶、用千斤锤检查墙壁是否垂直等 软件优化——请来园艺师和装修师,以便使房间和空地得到最好的利用 软件开发中的评审和鉴定——在整个过程中,会有各种监督人员来检查房址、地基、框架、供电系统和其它东西 智能工具箱 ..

weixin_39461846的博客 387

光模块的封装工艺有哪些?

COB封装传统的单路10Gb/s或25Gb/s速率的光模块采用SFP封装将电芯片和TO封装的光收发组件焊接到PCB板上组成光模块。但对于40G及以上速率的高速光模块,受激光器速率限制(多为25G),主要通过多通道并行实现,如40G由4×10G实现,而100G则由4×25G实现。蝶形封装:壳体通常为长方体,结构及实现功能通常比较复杂,可以内置制冷器、热沉、陶瓷基块、芯片、热敏电阻、背光监控,并且可以支持所有以上部件的键合引线。BOX封装属于蝶形封装的一种,用于多通道并行封装。

WaytoICT- Explore ICT Technology, Build Your Tech Path 3806

AD7920实战:从咪头到ADC的音频信号采集电路设计全解析(附电路图)

本文详细解析了基于AD7920 ADC芯片的音频信号采集电路设计全流程。从驻极体咪头的驱动、AD8542运放的两级增益与偏置设计,到关键的抗混叠滤波器配置,以及ADC接口的驱动缓冲与PCB布局要点,提供了完整的实战指南与电路图,帮助开发者实现高质量音频信号采集。

red88的博客 792

软件隐喻的本质与模式

1.引言   隐喻思维具有普遍性,是人类认知得以深化的前提之一,隐喻是丰富人类语言的有效手段。   然而,一直以来,对于隐喻的讨论主要限于语言学和修辞学,从而将隐喻狭隘化,局限化,使得隐喻在其他领域中的作用未能得到彰显。美国语言学家莱考夫认为,隐喻不是语言的表面现象,而是一种深层的认知机制,它组建了我们的思维,形成了我们对世界的判断,使语言结构化、系统化,从而具有巨大的生产力。 ...

weixin_33798152的博客 334

手把手教你搭建日本亚马逊CVV钓鱼系统(含自动验证功能)

本文详细介绍了电商平台安全防护的关键实践,重点讲解了如何构建自动化风控系统。内容包括基础架构设计、用户行为分析、交易风险评估模型构建、验证机制实现以及系统部署优化,帮助电商平台有效识别和防范安全威胁,同时提升用户体验。

weixin_30952535的博客 814

常见的软件隐喻

1、重要的研发成果常常产自类比。通过把你不太理解的东西和你较为理解、十分类似的东西进行比较,你可以对这些不太理解的东西产生更深刻的理解。这种使用隐喻的方法叫做“建模”。   2、软件隐喻不会告诉你到哪里去找答案,仅告诉你该如何找到答案。隐喻的作用更像启示,而不是算法。   3、“增量的”、“迭代的”、“自适应的”、“演进的”,以增量的方式进行设计、编码和测试,是目前已知的最强有力的软件开发概念。 ...

南村土人 475

手把手教你用GD32F407VET6的EXMC驱动外部SRAM,搞定大内存需求

本文详细介绍了如何使用GD32F407VET6的EXMC外设驱动外部SRAM,解决嵌入式开发中的大内存需求问题。通过硬件连接方案、EXMC时序配置与初始化步骤,以及软件集成与内存管理技巧,帮助开发者快速实现内存扩展。特别适合需要处理图形显示缓冲、音频处理等大内存场景的GD32F407开发者。

weixin_30752699的博客 345

Figure 03人形机器人与Helix端到端控制系统:具身智能突破深度解析

2026年5月,Figure AI的Figure 03人形机器人在一场震撼业界的直播中完成了长达200小时的连续全自动作业,分拣近25万个包裹,零故障。这一里程碑式的成就标志着人形机器人正式从「实验室展示」迈入「规模化商用」阶段。本文深入剖析Figure 03的核心技术——Helix端到端神经网络控制系统,包括System 0/1/2三层架构、视觉运动策略、全身协同控制等关键技术,并提供完整的Python/Go代码示例,帮助开发者理解具身智能的核心原理与实现路径。关键词。

shao.bing的专栏 991

隐喻的使用及误用

如果采用的现实世界隐喻和用户从现实世界经验得到的预期结果不符,那么其结果将更为糟糕。

rolt的专栏 661

探索Vortex开源GPGPU:RISC-V SIMT架构(4-1),Execute SFU(1)

本文详细分析了Vortex RISC-V内核6级流水线中Execute阶段的SFU(特殊功能单元)模块。重点介绍了SFU的数据流结构,包含dispatch_unit、pe_switch、csr_unit、wctl_unit和gather_unit五个子模块。文章深入解析了warp控制指令wspawn和tmc的实现机制:wspawn用于激活指定数量的warp并设置新PC值,tmc则用于控制线程掩码和warp状态。通过C代码和汇编指令的对照分析,阐明了这些指令在并行计算中的关键作用,包括线程激活、状态切换和执行

weixin_55313207的博客 1363

移动界面隐喻设计

转自 http://www.userkon.com/tolyer/metaphors_design_on_mobile_device.html界面是什么?是的,有些时候,我就在想这个简单的问题,而那时我的答案还是:界面是对软件应用解决方案的显性,使用图形化符号,向使用者解释它的功能与任务。但最近一些认知却让我对这个问题有了新的回答:界面就是软件应用它本身。它不是一份对软件应用功

iimgal的专栏 5500

UE4动作游戏实例RPG Action解析二:GAS系统播放武器绑定的技能,以及GE效果

官方实例激活技能通过装备系统数据激活,我先用武器数据资产直接激活官方实例蒙太奇播放是自定义的AbilityTask,我先用更简单的方法实现效果1.1.1 插件启用AbilitySystem1.1.2 PlayerCharacter绑定技能组件AbilitySystemComponent 1.1.3 技能初始化,AbilitySystemComponent->GiveAbility 把上节获取到的默认武器绑定的技能GameAbility 添加到ASC组件 1.2、创建一个GameplayAbili

yuchenwuhen的专栏 1279

华为OD新系统真题-最小极差分组(C/C++/Py/Java/Js/Go)

华为OD机试 新系统真题【最小极差分组】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【最小极差分组】多语言题解。

qq_45776114的博客 584

极限编程中的系统隐喻到底在隐喻什么?

系统隐喻作为极限编程中的一个工程实践,就是用通俗易懂的语言将原本晦涩难懂的概念或开发过程阐释出来,达到“一说就懂,一听就会”的效果。 极限编程中的系统隐喻到底在隐喻什么? 隐喻就如同小分队交接的暗号,只有同一阵营中的成员才能明白隐喻指代的是什么。在电影《智取威虎山》中,解放军杨子荣就利用土匪间通用的黑话彻底打消了几个匪徒的怀疑,顺利地混入土匪老巢,最终活捉匪首“座山雕”。 此外,IT行业

weixin_45228755的博客 906

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

隐喻图形在平面设计中怎么体现

本文由:“学设计上兔课网”原创,图片素材来自网络,仅供学习分享 隐喻图形在平面设计中怎么体现?在平面设计中,隐喻不仅仅是一种修辞手法,更是一种思维方式和认知方式,人们通过对不同事物之间的相似性的比较而认识事物的特征。尤其是创造相似性的隐喻,通过发现原来没有任何联系的事物之间的相似性,从而为图形的表达提供新的角度。 隐喻是在一种事物的暗示下,使人产生感知、体验、联想、想象、理解事物以及与其相关心理、语言、文化行为等。隐喻不仅是一种语言现象,还是人类思维的一种方式,是通过对一种事物的感受与思考产生对另一

tukewang的博客 1079

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

代码大全中提到的软件隐喻

 偶尔看到了《代码大全》的连载,感觉其中提到的软件/编程隐喻很特别,特摘录一二如下:原文对隐喻的关键点总结:■         隐喻是启示而不是算法。因此它们往往有一点随意(sloopy)。■         隐喻把软件开发过程与其他你熟系的活动联系在一起,帮助你更好地理解。■         有些隐喻比其他一些隐喻更贴切。■         通过把软件的构建过程比作是房屋的建

阿文(alvin)的专栏 1316

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

《我们赖以生存的隐喻》文学中的面向对象

一、这本书是主要讲什么? 书中高度概括了隐喻的本质特征就是认知性 隐喻不但体现在语言,也贯穿与我们的思维和行为 隐喻无处不在,体现在我们的日常生活里,同时影响我们的认知 隐喻不是凭空产生,而是基于我们自身的经验 隐喻是一种映射关系,将我们的抽象概念具体化,以加深我们对抽象概念的理解,隐喻允许我们依据一个经验领域去理解另一个经验领域 隐喻概念能超越思维和语言的普通字面范围,延伸到被称为比...

weixin_30242907的博客 426

解读极限编程的十二大原则——隐喻

 隐喻:普通语言和术语的集合,用来预见项目中的功能。《敏捷软件开发:原则、模式与实践》一书中对隐喻的解读如下:隐喻(metaphore)是所有XP实践中最难理解的一个。极限编程者在本质上都是务实主义者,隐喻这个缺乏具体定义的概念使我们觉得很不舒服。的确,一些XP的支持者经常讨论把隐喻从XP的实践中去除。然而,在某种意义上,隐喻却是XP所有实践中最重要的实践之一。想像一下智力拼图玩具

鹿寒的专栏 6569

数学教育 | 数学隐喻与思维方法

……

u013669912的博客 1329

计算机桌面隐喻,计算机英语词汇隐喻分析论文

计算机英语词汇隐喻分析论文一、基于隐喻的计算机英语词汇的生成(一)派生隐喻在人类对计算机科学的认知、理解和推理中起着重要的作用,并反过来激发、促进了计算机隐喻性词汇的生成。派生形式具有构词力强、词义宽广、结合灵活等特点,为隐喻性计算机英语词汇提供了取之不尽、用之不竭的源泉。例如,lap—top是lap(膝)和top(顶部)的叠加,人们根据其形象的比喻将便携式电脑称之为laptop。同样地,桌面电脑...

weixin_30932183的博客 584
上一篇: 软件的创建
下一篇: 先决条件(一)问题定义和需求分析
Apache-Wang
博客等级 码龄11年 18粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值