Surrogate

Unicode 字符和UTF编码的理解

末鹿安然 提交于 2021-01-07 10:59:32
  Unicode 编码的由来   我们都知道,计算机的内部全部是由二进制数字0, 1 组成的, 那么计算机就没有办法保存我们的文字, 这怎么行呢? 于是美国人就想了一个办法(计算机是由美国人发明的),也把文字转化成数字,计算机不就能够保存文字了,所以美国人就制定了一张表,规定了文字与数字的一一对应,字符A 就对应数字65, 字符B 就对应数字66, 这张表就是著名的ASCII 码表。由于美国人的文字比较少,就是a, b, c d 等等, 对应完了,发现一共使用了128个数字,这也太少了,一个字节都没有使用了,所以就决定用一个字节来表示一个字符, 所以对于ASCII 码来说,一个字符在计算机中就占用一个字节。码表制定好了,生产计算机的时候直接把码表内置到计算机中就可以了。   但是随着计算机的推广,它到达了欧洲,亚洲,这就有点问题了,因为计算机中只有英文,它不可能表达 和书写其他国家的语言,比如汉语,日语等等, 这肯定也是不行的。于是各个国家的政府就制定各自的码表, 好让计算机也能表示本国的语言,就拿我国来说吧,GBK, GB2313 码表就出现了。 这就会出现一个问题,相同的数字在不同的码表中对应的文字可能不同, 这就有可能造成乱码。国际友人发了一封电子邮件过来,打开一看乱码了,各国之间的文件不能够交换使用。这时国际标准化组织就想把各国的字符都统一起来,把它们放到一张码表中

深度强化学习

心已入冬 提交于 2020-10-07 01:01:18
Policy Gradient 类的算法是深度强化学习中很重要的一类算法,也是目前最有成效的算法之一。但我在学习的过程中一直觉得这部分的知识点比较散乱,因为策略梯度类的算法包括很多种变体,经过了各种改进,初学的时候感觉就是一团乱麻,迷失在各种各样的损失函数表达式里。当看到还有 Actor-Critic 这种结构的时候更是一脸懵逼。 因此这里把这类算法做个简单的梳理,也是为了帮助自己理清思路,总结的算法包括:Reinforce,受限策略梯度,PPO1 和 PPO2。为了搞清楚具体的流程,我把三种常用算法的流程画了简图,对照流程图写程序思路更清晰。 核心设计:Policy Gradient 的损失函数 Policy Gradient 类的算法是通过梯度计算去更新策略网络的参数,因此目标函数就直接设计成期望累积奖励。这个期望值有多种表达方式,也就对应着不同的具体算法对损失函数的不同计算方法。 但因为累积奖励的期望值无法直接计算,需要采用蒙特卡洛方法,多次采样取近似的平均值。每次采样都会生成一个 Trajectory,在不断迭代运行,获取了大量的 Trajectory 后,使用一定的变换和近似去计算累积奖励,作为用于梯度更新的损失函数。 在进行梯度计算时,往往采用 log probablity 的形式,这更易于计算(在Pytorch等框架中也很容易实现)。相关近似计算的推到过程如下:

Twitter图像编码挑战[关闭]

最后都变了- 提交于 2020-08-04 18:05:41
问题: If a picture's worth 1000 words, how much of a picture can you fit in 140 characters? 如果一张图片价值1000字,你可以在140个字符中放入多少图片? Note : That's it folks! 注意 :那就是大家! Bounty deadline is here, and after some tough deliberation, I have decided that Boojum's entry just barely edged out Sam Hocevar's . 赏金的最后期限就在这里,经过一番艰难的考虑后,我认为 Boojum的进入 只是勉强淘汰 Sam Hocevar的 。 I will post more detailed notes once I've had a chance to write them up. 一旦我有机会写下来,我会发布更详细的笔记。 Of course, everyone should feel free to continue to submit solutions and improve solutions for people to vote on. 当然,每个人都应该随时继续提交解决方案并改进人们投票的解决方案。 Thank

2018-ECCV-Progressive Neural Architecture Search-论文阅读

我的未来我决定 提交于 2020-07-28 10:02:26
PNAS 2018-ECCV-Progressive Neural Architecture Search Johns Hopkins University(霍普金斯大学) && Google AI && Stanford GitHub:300+ stars Citation:504 Motivation current techniques usually fall into one of two categories: evolutionary algorithms(EA) or reinforcement learning(RL) . Although both EA and RL methods have been able to learn network structures that outperform manually designed architectures, they require significant computational resources . 目前的两种nas方法,EA和RL,存在计算代价高昂的问题 Contribution we describe a method that requiring 5 times fewer model evaluations during the architecture search. 只需要评估1

Unicode 与 utf8 utf16 utf32的关系

怎甘沉沦 提交于 2020-05-08 00:03:35
Unicode是计算机领域的一项行业标准,它对世界上绝大部分的文字的进行整理和统一编码,Unicode的编码空间可以划分为17个平面(plane),每个平面包含2的16次方(65536)个码位。17个平面的码位可表示为从U+0000到U+10FFFF,共计1114112个码位,第一个平面称为基本多语言平面(Basic Multilingual Plane, BMP),或称第零平面(Plane 0)。其他平面称为辅助平面(Supplementary Planes)。基本多语言平面内,从U+D800到U+DFFF之间的码位区段是永久保留不映射到Unicode字符,所以有效码位为1112064个。 Unicode的编码方式 unicode 只是一种字符码表, 而在计算机中进行存储时, 必须指定一种具体的存储方式。常见的如utf8, utf16, utf32 比如,对于英文字符A , 在unicode中的值是65, 其在计算机中存储时, 使用utf8 utf16 utf32等不同格式存储时, 是完全不同的。 utf8存储,在内存中就是0x41; utf16存储,在内存中就是0x0041 ; utf32存储,在内存中就是0x00000041 在windows编程中, 字符格式通常有多字节(ansic)与宽字符(unicode)之分。 很多时候

String类型的"字符"长度(码点/代码单元的区别)

你离开我真会死。 提交于 2020-05-06 03:18:41
查看String的源码可以发现它以一个char类型的数组保存字符串的,而String.length()方法返回的也是这个char数组的长度. 那么,这个长度和"字符"长度有什么关系呢? 在这里就不得不引入码点和代码单元的概念,以下是摘抄至《Java核心技术卷一基础知识(第十版)》中的定义: "码点( code point ) 是指与一个编码表中的某个字符对应的代码值。在Unicode 标准中,码点采用十六进制书写,并加上前缀U+, 例如U+0041 就是拉丁字母A 的码点。Unicode 的码点可以分成17 个代码级别( codeplane)。第一个代码级别称为基本的多语言级别( basic multilingual plane ), 码点从U+0000 到U+FFFF, 其中包括经典的Unicode 代码;其余的16个级另丨〗码点从U+10000 到U+10FFFF , 其中包括一些辅助字符(supplementary character)。UTF-16 编码采用不同长度的编码表示所有Unicode 码点。在基本的多语言级别中, 每个字符用16 位表示,通常被称为代码单元( code unit ) ; 而辅助字符采用一对连续的代码单元进行编码。这样构成的编码值落人基本的多语言级别中空闲的2048 字节内, 通常被称为替代区域(surrogate area) [ U+D800 ~

java.lang.String 类源码解读

早过忘川 提交于 2020-04-26 17:17:35
String类定义实现了java.io.Serializable, Comparable<String>, CharSequence 三个接口;并且为final修饰。 public final class String defined String由char[]数组实现 /** The value is used for character storage. */ private final char value[]; /** Cache the hash code for the string */ private int hash; // Default to 0 value[]用于存储字符串内容,被final修饰,说明一旦创建就不可被修改。String 声明的变量重新赋值即代表重新指向了另一个String实例对象。 实现序列化 /** use serialVersionUID from JDK 1.0.2 for interoperability */ private static final long serialVersionUID = -6849794470754667710L ; /** * Class String is special cased within the Serialization Stream Protocol. * * A String

阿里面试官让我讲讲Unicode,我讲了3秒说没了,面试官说你可真菜

社会主义新天地 提交于 2019-12-30 22:42:47
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本文首发于微信公众号:程序员乔戈里 乔哥:首先说说什么是Unicode、码点吧~要想搞懂,这些概念必须清楚 什么是Unicode? 下图来自 http://www.unicode.org/standard/WhatIsUnicode.html 中的截图 Unicode编码定义了这个世界上几乎所有字符(就是你眼睛看的字符比如ABC,汉字等)的数字表示,而且Unicode还兼容了很多老版本的编码规范,例如你熟悉的 ASCII码。 什么是码点? 我们国家的每一个人都对应唯一的一个身份证号,而Unicode也为了每个字符发了一张身份证,这张“身份证”上有一串唯一的数字ID确定了这个字符。 这串数字在整个计算机的世界具有唯一性,Unicode给这串数字ID起了个名字叫[码点]。 码点是如何表示的呢? 先来说一声码点是如何表示的: U+XXXXXX 是码点的表示形式,X 代表一个十六制数字,可以有 4-6 位,不足 4 位前补 0 补足 4 位,超过则按是几位就是几位。 字符A的ASCII码是众所周知是65吧,将65转换成16进制就是41(16×4+(16^0)×1 = 65),按照规则前面补0,那么字符A的码点表示就是U+0041,依次类推B的码点表示就是U+0042...等等,汉字"你"的字符表示是“U+4F60”..

探秘Runtime

左心房为你撑大大i 提交于 2019-12-06 17:57:00
该文章属于<简书 — 刘小壮>原创,转载请注明: <简书 — 刘小壮> https://www.jianshu.com/p/f313e8e32946 当一个对象的方法被调用时,首先在对象所属的类中查找方法列表,如果当前类中没有则向父类查找,一种找到根类 NSObject 。如果始终没有找到方法实现,则进入消息转发步骤中。 动态消息解析 当一个方法没有实现时,也就是在 cache lsit 和其继承关系的 method list 中,没有找到对应的方法。这时会进入消息转发阶段,但是在进入消息转发阶段前, Runtime 会给一次机会动态添加方法实现。 可以通过重写 resolveInstanceMethod: 和 resolveClassMethod: 方法,动态添加未实现的方法。其中第一个是添加实例方法,第二个是添加类方法。这两个方法都有一个 BOOL 返回值,返回 NO 则进入消息转发机制。 void dynamicMethodIMP(id self, SEL _cmd) { // implementation .... } + (BOOL)resolveInstanceMethod:(SEL)sel { if (sel == @selector(resolveThisMethodDynamically)) { class_addMethod([self class], sel,

每一个工程师都要学的安全测试,老板再也不用担心服务器被黑

删除回忆录丶 提交于 2019-12-02 17:51:00
本文由云+社区发表 本篇包含了XSS漏洞攻击及防御详细介绍,包括漏洞基础、XSS基础、编码基础、XSS Payload、XSS攻击防御。 第一部分:漏洞攻防基础知识 XSS属于漏洞攻防,我们要研究它就要了解这个领域的一些行话,这样才好沟通交流。同时我建立了一个简易的攻击模型用于XSS漏洞学习。 1. 漏洞术语 了解一些简单术语就好。 VUL Vulnerability漏洞,指能对系统造成损坏或能借之攻击系统的Bug。 POC Proof of Concept,漏洞证明;可以是可以证明漏洞存在的文字描述和截图,但更多的一般是证明漏洞存在的代码;一般不会破坏存在漏洞的系统。 EXP exploit,漏洞利用;利用漏洞攻击系统的代码。 Payload (有效攻击负载)是包含在你用于一次漏洞利用(exploit)中的攻击代码。 PWN 是一个黑客语法的俚语词 ,是指攻破设备或者系统。 0DAY漏洞和0DAY攻击 零日漏洞或零时差漏洞(Zero-dayexploit)通常是指还没有补丁的安全漏洞。 零日攻击或零时差攻击(Zero-dayattack)则是指利用这种漏洞进行的攻击。 零日漏洞不但是黑客的最爱,掌握多少零日漏洞也成为评价黑客技术水平的一个重要参数。 CVE漏洞编号 Common Vulnerabilities and Exposures,公共漏洞和暴露