学问思辨行: 记录生活学习和工作中的实践和思考,以期实现终身成长.
-
P2P网络技术简要介绍
P2P网络是一种网络技术,有很多应用场景都可以用得到,特别是当前流行的区块链技术中P2P技术将作为主要核心的技术支撑,这里先简要对P2P技术做一下相关说明。如有不正确或补充的地方欢迎读者联系指出。 P2P网络中每一台机器即可以用来做客户端,也可以用来做服务器,其中的任何两个节点不需要服务器就可以直接进行通信从而共享资源交换信息。P2P网络是去中心化的,因此也意味着没有一个中央的授权节点来控制和管理资源。 P2P网络可以有多种应用存在形式,这里几个较有影响力的P2P应用,如用于文件分享的BitTorrent, 区块链网络应用比特币(bitcoin等),去中心化的计算标准Matrix,P2P网络技术还可以用于物联网平台。这些系统虽然也都有一些挑战和平衡综合考虑,但是都是在这些应用场景下要优于传统的客户端服务器的网络模式。 libp2p是一个比较健壮的面向P2P应用的开发库,用其开发P2P的应用有如下的几个优势:1、模块化,libp2p基于组件构建,可以面向不同的应用场景去组合不同的组件去构建应用;2、可扩展的网络协议配置,libp2p支持多种传输协议; 3、提供了多种语言实现的网络发现,数据存储和检索模式的代码,方便不同的编程习惯的程序员去构建;4,支持NAT穿越,NAT穿越,以实现不同内网的机器通信,关于NAT Traversal的原理,可以参考引文7;更多的优势可以参考引文8中的说明文字。 这篇短文主要介绍了P2P技术的应用,关键的技术,以及支持P2P应用开发库libp2p。P2P网络技术可以在云平台中进行部署,如Chainmaker就可以在云平台中进行部署。后续有机会将向大家详细介绍具体技术开发的应用细节。 References
-
区块链技术简介
区块链技术是当前较为重要且可以在生产环境中使用的关键信息技术之一,为可信存储和计算提供了技术保障,这里对区块链技术做一下简要的介绍,欢迎读者批评指正和补充。后续将介绍更多的相关技术和应用的内容。 区块链是一个基于点对点(peer-to-peer network,一种计算机网络技术)的记账系统,允许节点之间直接进行交易而不需要中心授权节点的介入。点对点网络是一个完全的去中心化的。为了满足去中心化的要求,每一个节点都需要一个记账的拷贝。拷贝可以是一个完整的拷贝,或者对于在网络上能够正常工作和保持连接的一个最小拷贝。 为了保证交易的一致性,一致性的方法如 Proof-of-Work, Proof-of-Stake被采用。在高级的密码学算法的辅助下,每一个交易都是安全的。 区块链的用处挺多,可以用在医疗卫生,供应链金融、碳交易、食品追溯等一系列关乎国计民生的重大领域。这里列举两个具体的例子:1、比如医疗卫生部门可以将病人的诊疗数据如检查结果药方等存放到区块链上,当然这些数据也可以贡献给医疗卫生部门做为数据提供。当然也可以解决假药问题,同时帮助病人和制药公司;2、食品追溯,包括食品的种子,生长过程管理数据(施肥撒药等,温度等天气数据,土壤等水土数据),以及保鲜物流,储存条件等信息。碳交易即把二氧化碳排放权作为一种商品,从而形成了二氧化碳排放权的交易,简称碳交易,碳交易有利于减少二氧化碳的排放,有利于环境保护和重构。 区块链技术所用到的底层信息技术有P2P网络,加密算法等,ChainMaker是由几个知名的大公司合作研发的区块链开源底层软件平台,具体介绍可以参考引文链接。区块链技术本身是一种分布式系统,可以和云平台相结合进行生产环境中部署,如引文7中就有基于公有云平台的区块链产品。 References
-
我眼中好的生活节奏和价值观
现在社会发展节奏块,特别是大城市,很多白领程序员工作都比较辛苦,对于这种“卷”的现象,应该还是有不少可以优化的地方的,不管从公司制度规则还是从个人生活习惯,都有一些可能需要调整的地方。 比如程序员这个行业,加班都是常有的事情,效率是否高就不一定了,而且由于每天较长时间的工作,生活中的一些小的细节美好没有闲暇去体会,感觉就像运转的齿轮少了点润滑剂,容易对身心有影响。 中华民族是个勤劳的民族,才在近几十年有飞速的经济发展,希望再过段时间,或者企业制定更加理性的发展运营规则,或者宣扬普及这样的价值观:大家不以金钱,不以房子车子,不以城市乡村这些来作为最重要的指标来度量成功,而是所做事的意义,自己的获得感,自己从生活中体验的到细小的美好,小我中有大我,这样可能才是热爱生活的更好的模样。 感谢这段时间以来支持鼓励我的所有的人,经过这些年的成长仍有有不少细节可以做的更好,苟日新,日日新,又日新。相信自己,每天有一个更好的自己。
-
致青年
五四青年节来临之际,转发几则名人名言来勉励自己。 青春孕育无限希望,青年创造美好明天。 1.不驰于空想,不骛于虚声。——李大钊2.腹有诗书气自华。——苏轼3.博学之、审问之、慎思之、明辨之、笃行之。——《礼记·中庸》4.人生万事须自为,跬步江山即寥廓。——范梈5.锲而舍之,朽木不折;锲而不舍,金石可镂。——荀子6.苟日新,日日新,又日新。——《礼记·大学》7.看似寻常最奇崛,成如容易却艰辛。——王安石 青春不是年龄,而是心态,只要我们不断求索,终身成长,我们就一直在求知和青春的路上,无奋斗不青春,也和更年轻的同学们共勉!
-
动态规划较为简单的两个示例
动态规划是编程算法里边经常会用到的一种解决问题的思路,这里向大家介绍两个相对比较简单的示例。 示例1:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径? 示例2:给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 其中,第1题中可以将路径数目用二维数组path[m-1][n-1]来表示,path[i][j]就表示为从[0][0]位置起始开始走到[i][j]位置可能的路径。具体的实现方法和代码注释请参考链接。data-structures-algorithms/dp/unique-paths.cpp at main · kindlytree/data-structures-algorithms (github.com) 第2题,假设需要拼接的字符串的长度为s,则可以用一个can_concat[s+1]的数组来标记每一个从开始到index的位置是否可以有字典的单词标记出来。具体代码可以参考链接:data-structures-algorithms/dp/word-break.cpp at main · kindlytree/data-structures-algorithms (github.com)
-
Policy Gradient算法原理简介-强化学习技术系列3
前面的相关文章,介绍了基于价值函数的强化学习算法(MDP和Q-Learning),在强化学习中,除了基于值函数的方法,还有一支非常经典的方法,那就是基于策略(policy-based)的方法。这篇文章将向大家介绍相关的算法思想,不正确或需要修正的地方欢迎大家批评指正。 在前面介绍的Q-Learning算法中,会采用一定的随机策略去选择action(epsilon greedy),一开始会让Agent更偏向于探索Explore,并不是哪一个Action带来的Value最大就执行该Action,选择Action时具有一定的随机性,目的是为了覆盖更多的Action,尝试每一种可能性。等训练很多轮以后各种State下的各种Action基本尝试完以后,我们这时候会大幅降低探索的比例,尽量让Agent更偏向于利用Exploit,哪一个Action返回的Value最大,就选择哪一个Action。 在策略梯度中,Agent一般称为Actor,策略pi通常用一个神经网络来表示,一般神经网络的输出为动作的概率(如softmax)。智能体会自动的探索不同的状态和trajectory(通过随机采样的机制进行实现。如一个policy在某种状态下输出action1的概率为60%,输出action2的概率为40%,则智能体自然而然会更多采样到action1,但也会常采样到action2)。policy gradient还有”No more perceptual aliasing”和”Effective in high-dimensional action spaces“这样的优势, 从初始状态出发,到任务的结束,被称为一个完整的episode(剧集)。这样,一个有T个时刻的eposide,Actor不断与环境交互,形成如下的序列τ: 具体的公式推导可以参考引文1,最后的梯度求解公式如下: 关于其公式的推导可以参考引文1,这里就不做赘述。需要说明和强调的是 对代码有几处说明一下:1、loss为负值,求最小,即为正值最大化,2,采用了Mento Carlo采样的思想,每次训练数据基于一个episode,从开始状态直至完成done;3、当前的某个时刻的R为从当前到最后状态r的一个折扣和,具体可以参考链接7中的实现。 实验中用到了GYM,强化学习算法工具包,可以提供强化学习算法的模拟环境,从而为测试和验证强化学习算法提供了方便。 References
本博客主要包含一些工程技术方面的短文和日常生活的随想。感谢所有师长领导朋友和老同学们的关心支持,特别感谢上海交通大学、上海建设管理职业技术学院、上海闵行职业技术学院、中科院软件所、北京师范大学及中小学的老师同学们和上汽集团等工作过公司的领导同事们给与的关爱和支持,以及家人们的期望和默默付出,希望有些文章能对大家有所启发。由于作者水平有限,撰写较为仓促,文章中难免存在一些缺点和错误,殷切希望来自世界各地的读者批评指正。期待能够和大家一起学习,迎接挑战,共同进步。