0%

应该是18年的下半年,逐渐有个想法,读过的书,看过的电影,体验过的人生,倘若不在结束的时候记录几句,便好似火车上一闪而过的风景,过去了也就过去了。

因此,希望能把自己的感触 想法统统记录下来。一来回顾往生的时候多了许多有意思的事,二来在一些重要的决定或者自己三观的培养上也能有指导作用。

白鹿原描绘了从晚清到建国,在关中的小村白鹿原中发生的的几十年历史,短短的几十年,却发生了几千年自然演变都造不出的变革。家族体系面临着人权民主的冲击,封建社会遭到国民革命的洗礼,而资本主义也和共产主义进行着强烈的冲击。正是种种“主义”交织在一起,才使得故事一波三折,高潮迭起。

白嘉轩与白孝文

白嘉轩是一个典型的传统中国中家族族长的形象,威严,正义,洁身自好,有骨气。但是这么多好的词放在他身上却又没使得这个角色如诸葛亮那般人见人爱,顶多算个人见人静。我们不可谓这种家族体系不好,也不可谓白嘉轩是个坏人,至少在他的带领下,白鹿原也是一个远近闻名的文明之邦,但我们为什么对这种“父辈”会有一丝反感呢?究其缘由,可能是许多人在白嘉轩中看到了自己父辈的影子,那个扼杀了自己许多天性的父辈影子。传统中国的人际关系有何特征,按照人类简史的说法,世界范围内的大部分农业社会都是以家族为单位,家族中的族长往往有着无可比拟的个人影响力和家族权力,而中国的家族主导制还多了儒家思想的浸染,早期儒家思想其实并不是白嘉轩为代表的灭人欲,真正将纲常伦理摆在修身之首的是朱熹,这么说来朱熹也是个“带恶人”?现在在年轻人眼中家族体制似乎是落后封建的代表,带也有一部分原因是政府,或者说资本家们更希望将人分成独立而不互助的个体,这样更有利于自己的统治。于是政治家们开始宣传私有财产神圣不可侵犯,自身人格平等而独立,这些我们现在觉得天经地义的思想 在当时看来确是大逆不道。人们遇到纠纷,从最开始的找族长,变成了找警察,对家族的依赖性大大降低,而对政府的统治愈加习以为常。因此,当我真的要去评判白嘉轩时代的白鹿村时,以当代人的视角自然是有失公允的。如果换个问题,扪心自问我愿不愿意在白嘉轩时代的白鹿村生活,答案是明显的否。我承认我已经是人格自由的坚实拥护者,倘若连选择陪伴自己一生的伴侣都要受着伦理道德的束缚,我宁愿反抗这种看似灭人欲实则灭人性的道德。但不论如何,我是尊敬着白嘉轩的,他有着一个男子汉该有的所有性格,只是受限于当时的时代思想(其实是否他的思想就是受限呢?难道思想也有先进之分?),让他成了朱熹思想下的“完美男人”。

相比于白嘉轩,白孝文是最让我内心波动并且“触目惊心”的。初读白鹿原时,我就有个想法 这彬彬有礼的白孝文,不就是我么?是啊,不论是否是真心想要那样,但孝文确实是我的样子,内敛而不自闭,矜持而不失礼,广受族人好评,也正是如此,看到那鹿子霖计谋他那卑鄙阴谋的时候,我是真的不忍卒读。但就像鹿子霖说的,他只是个钓鱼的,主动上钩的是白孝文自己,是的,白孝文和他爹不一样,他有着常人皆有的人欲,而也是这种人欲让他堕落,逐渐成为了第二个鹿子霖。在我看来,白孝文对小娥不仅仅只有荷尔蒙的欲望,还有两个被当时世俗唾弃的可怜人的互相怜惜,但让我遗憾的是,白孝文的沉沦,成了我最厌恶的那类人。这也是我为什么相信读书,相信冥想的力量,一个人只有真正想明白自己的幸福靠的是什么,才不会在花花世界中放弃自己的原则。于我而言,惟愿本心无怨尤有了新的定义,所谓的本心,初衷,并不是人的兽性一面的欲望,而是自己回首此生,不会觉得虚度,不会后悔,不会恍然发现自己陷在了无休止的竞争,钱财、权力、或是名望。只有知道自己真正的本心,也就是自己真正想要怎么度过的人生,才能做到没有怨尤。人生应该怎样过 没有明确的定义规划,但是我知道的是,由欲望主导的做事行为绝对带来不了真正的心安。佛说过,所有痛苦的来源都是欲望,其实大家都明白这个道理,对事物的欲求太多,得不到时的痛苦也就越多。而现代社会,往往不是因为缺乏必需的而痛苦难耐,而是因为缺乏太多额外的想要的。这个想要的不仅仅是物质,还有很多虚拟的期望,譬如望子成龙,譬如爱情,只有抛却到对这些的欲望但又为之努力,做到尽吾志也而不能至者,才称得上真正的无悔。

小娥

小娥是不幸的,是可怜的, 而可怜的人必定有他可恨的地方。但当我仔细想想,她的可恨,我会发现,所有我恨的,不是因为她本身,而是她遇到的这个表明和谐实则乌烟瘴气的社会。 她敢于追求自己的爱情,勇于试着拯救她的心上人。但因为旧社会的妻妾制度,女权的丧失和一些心术不正之人的威逼利诱,她走上了这条在她性格下注定了的道路。

姓国还是姓共

这本书貌似是台湾的禁书。但其实对我而言,这书对我最大的政治上的启迪是,不论姓国还是姓共,对人民、对国家最好的才是好的党派,我这种说辞颇有点无党派人士的意味。放在以前,我会把国放在一个反派的位置,或者把共放在反派,但现在,越发觉得,这世上,哪有什么绝对的正反,国民党中有坏人,但也有为国捐躯的好男儿,共产党中有一些为人民的好人,但也有陷在阶级斗争或是政治斗争中的“政治家“。

1
2
3
4
5
6
7
considering a numpy matrix mat with shape[10,7,1,2]
if we want to access the FIRST column of mat, which has shape[10]
then we should use:
mat[:,0,0,0]
instead of:
mat[:][0][0][0] (return the shape of [5])
cause mat = mat[:] actully.

lecture 12 visualization

Q1 why does visualizing the weights of the filters tell you what the filter is looking for?

template match. (filter = template)

the input which maximizes that activation under a norm constraint on the input is exactly when those two vectors (input + filter) matches up.

visualization of second last layers:

L2 nearest neighbors in feature space can be same types ( tree on the left or tree on the right)

visualization of middle layers

select images with maximal activations in exact channels of exact layers (the selected images are usually same)

mask part of the image before feeding into CNN

saliency maps

  • which pixels matter?
  • computer gradient of output/input directly

deep dream

set feature maps as the (backpropagation) gradient to maximize the features found by DNN

neural texture synthesis

generate a big texture from a small texture(image)

  • how to compute Gram Matrix(also for style transfer)?:
  1. get a feature map through DNN with size ($C\times H\times W$)
  2. generate $cchw$ matrix for each pair of c-dimensional vectors measuring co-occurrence ($new_{ij} = old1_iold2_j$)
  3. average from cchw to cc
  • using random image to generate gram matrix and compare it with input’s gram matrix( loss function to compare)

style transfer

  • gram matrix is also used
  • but the iteration may be too large (random image as initial image), solution: train a DNN(feedforward net in the image) ,input: raw image output: style image and the weight is updated by throwing the output into the gram matrix calculation procedure.

1546069236886

lecture 13 generative models

面试了两次了,去年一次,今年一次。记录一下流程和心得吧。

流程

  • 跟教授套磁(个人觉得是影响最后结果最重要的因素,最好是能跟教授做research, 比如申请ra,申请fyp在cu做)
  • cs 官网报名。注意early submission一般是8,9月截止。正常的是11月开始 越早报名越好,regular interview不是等到最后三月DDL后才一起面试。
  • interview,了解到的eligible的同学基本都是top15水准的内地同学吧,中大,浙大,华科,清华等等。不过也有南科大top1的同学和华盛顿回港的待就业local。
    • 首先是一小时的written test。考的东西是 组合 + 概率 + 图论 + OS + data structure 等各种杂交的把。不过难度不是很大,准备其实也无从下手。内地同学可能要把单词搞明白?重要性据说也就那样,好了自然是加分项,没好也不会太扣分。
    • 面试是三位老师。常规的 自我介绍,reasons for apply for this program是一定要准备的。另外的话 就是准备好介绍自己的proj。一般来说 前期套磁很顺利的话 教授就不会太刁难的问算法 技术问题,只是发邮件“套磁”的话可能会问到比如leetcode这样的东西。
  • 面试完之后,如果通过了,前期已经完全说好的就可以直接跟教授拿offer了,否则还需要找教授问要不要收我。(这个面试代表engineering falculty 认可你做phd学生,不代表某个特定的教授就要招你)

感想

  • 面试的时候有说 charles kao 是自己的偶像,想做newton in physicals那样的人物。教授有点“冷笑”的意思。 再想想自己现在其实并没有什么能摆上台面的achievement,说这种话真有点“志大才疏”的意思,心比天高的人其实是我最不想成为的人。在我能说出这些话之前,先有足够的实力才不会被人质疑。不过所幸还有足够时间努力。
  • eric lo 从工业界回到学术圈的原因也知道了,不喜欢编程。觉得钱不是最重要的事。很高兴其实还是有很多人这么想的。就像记者问charles kao没有光纤专利后不后悔,他说不后悔,” if everything is for making money, then I cannot absolutely invent the optical fiber”。至少我也一定不会做一个money-oriented 的人,对我来说 人生的追求不是making big money.

1
2
3
4
5
6
7
8
9
10
11
// loop over inner tile(output tile) dimension
for ( int iktile = 0; iktile < ntiles; iktile++ ) {

// loop over row tiles
for ( int irowtile = 0; irowtile < ntiles; irowtile++ ) {
// loop over column tiles
for ( int icoltile = 0; icoltile < ntiles; icoltile++ ) {

}
}
}

Details description

社交网络。

看完后浓浓的窒息感。

第一想法就是觉得人生中有许多特别重要的抉择 当时我们可能不以为然 但往后就会陷入后悔。不过仔细想想他们的结局。其实没有谁特别糟糕。即便特别糟糕了 事情既然发生 也不能怎样了 接受天命很难 却是大部分人必须学会的。

另外在争吵后,如何去调整关系,不管是伴侣,还是朋友,还是合作伙伴。也许他说的是有道理,也许我真的不适合,公司的未来发展,总之,不要盲目把自己就想成真理。

SOSP2017

Problem

automated and systematic testing of large-scale, real-world DL systems with thousands of neurons and millions of parameters for all corner cases is extremely challenging.

如何准确评估一个DL系统的好坏?

Background

  • adversarial deep learning have demonstrated that carefully crafted synthetic images by adding minimal perturbations扰动 to an existing image can fool state-of-the-art DL systems.(像素攻击)
    • limit: it must limit its perturbations to tiny invisible changes or require manual checks.
  • Challenges:
    • how to generate inputs that trigger different parts of a DL system’s logic and uncover different types of erroneous behaviors,
    • how to identify erroneous behaviors of a DL system without manual labeling/checking.
  • This work
    • neuron coverage (the number of neurons activated)
    • multiple DL systems finish same work. (traditional software engineering technical)
    • how to use gradient to solve the problem(test more neuron coverage and as many differential behaviors as possible)

Details

input: unlabeled test inputs

output: new tests that cover a large number of neurons

SuperNeurons: Dynamic GPU Memory Management for Training Deep Neural Networks

Problem

Memory optimization of single DNN training work in single GPU

Method

  • Liveness Analysis 只保存未来会用到的tensors
  • Unified Tensor Pool communication tools for GPU-CPU memory using Least Recent Used tensor replacement policy and a Tensor cache. (只有conv 这种co mputation-intensive的才放到cpu去)
  • Cost-Aware Re-computation 只要不高于peak memory 都不recompute,否则除了conv 都recompute(pool,activation…)
  • Selective convolution algorithm 基于此刻与peak memory的差值选择convolution 方法(eg。 FFT需要额外的convolution space)

攻击神经网络

Fast Gradient Method (Explaining & Harnessing Adversarial Examples)

linear model:

$$
y’=w^Tx’ = w^Tx+w^T\sigma
$$

where $\sigma$ is the change of original input x, and we have:
$$
\sigma = \varepsilon sign(w)
$$
理解: 在保持$|\sigma|$ 不变情况下,y’ 变化最大只可能 使 $w^T\sigma = |w|_1$

DNN
$$
\sigma = \varepsilon sign (\triangledown_xJ(\theta,x,y_{true}))
$$

where J is the loss function. In most cases (soft-max as classifier layer)

理解: 要让y’变化最大,及 应向loss 变大的方向变化。 即若$(\triangledown_xJ(\theta,x,y))$ 为负数(loss 与 x 的gradient)则 x应变小 ($\sigma$需为负数)

Iterative method

Basic iterative method

update equation (1) $x_2’ = x_1’ + \sigma$

Targeted

(3) becomes:
$$
\sigma = -\varepsilon sign (\triangledown_xJ(\theta,x,y_{targeted}))
$$

Our Method

What we have known and what we can obtained now?
  • Printable image size:

    $P(i,j)$ as the indexed boxes with size: Black/white box: $P_h\times P_w$

  • Actual image ($100\times 100$) per frame.

    $S_I$: starting index of the billboard for each frame.

    $R_I$: range of the billboard for each frame.

    $G_I$: gradient of each pixel in the bill board/

What we need to calculate

$G_P$ :gradient of each box in P.

How?

Transform:

  • Nearest

  • SPP:

  • Binary