Crypto Note
Crypto note
detect0530@gmail.com
DH key-excahnge protocol
一些公钥系统的安全性定义
这里A甚至可以选择把m0,m1都用pk加密一遍,因为它是CPA,所以这样做是可行。(侧面说明确定性的加密方法在这里不适用)
CCA security
EI Gamal Encryption
注意我们在Gen过程中,随机选择了x,这样就可以保证每次加密的结果都不一样,这样就可以避免确定性加密的问题。
但是很遗憾,其不是CCA安全的(个人感觉Dec函数过于简单不是件好事)
RSA
Plain RSA
plain RSA是有问题的
是确定性算法
规约假设中密文是均匀取样才能保证安全性,但是在palin rsa中m不是
Padding RSA
一种实现方法:
打乱了m的分布,同时引入随机性!
例题
数字签名,只要能伪造即可。
一般就是先问几个,然后拼接/运算。
solution
发现这个题希望我们规约到DDH问题。
于是我们分析原问题哪里喝DDH问题相似。
原问题引入b=0/1,分别代表了(gx,gy, ...
IntroAI_HW4 Freeway_Game Lab_Report
报告题目:Freeway Game
detect0530@gmail.com
2023年12月
1 引言
强化作为机器学习比较新的一个分支,广泛用于游戏ai中,本次实验,将以Freeway Game作为例子,运用强化学习的方法,训练一个能够自动玩游戏的ai。
2 实验内容
2.1 Task1
2.1.1.0 阐述强化学习的方法与过程
实验Sample code采用的是传统的Q-learning方法,Q-learning是一种基于Q值的强化学习方法,其核心思想是通过不断的迭代,更新Q-table,最终得到一个最优的Q-table,从而得到最优的策略。
具体来说,需要维护Q-tabke来辅助决策,Q-table记录了每个statement对应每个action的打分。这一步我们引入了三个东西:
状态 : 指游戏或模型中不同的状态定位,当然在特征工程的帮助下,也可以看作特征,
action : 指游戏/模型规定的运作方式。
打分 :又涉及heuristic函数,来对当前状态以及action评分。
Q-learning 强化学习算法流程:
第一步设计对状态的评估函数Q ...
演化算法HW3-复杂度&期望运行时间理论分析
Homework 3
detect0530@gmail.com
1. 证明No Free Lunch(NFL)定理
整体思路采用归纳法,首先,让我们证明:
∑fP(d1y∣f,m=1,a)=∑fμ(d1y,f(d1x))\sum_fP(d_1^y|f,m=1,a) = \sum_f\mu(d_1^y,f(d_1^x))
f∑P(d1y∣f,m=1,a)=f∑μ(d1y,f(d1x))
μ\muμ函数代表指示函数,成立时为1,反之为0。
注意这里的dxxd_x^xdxx是由aaa(算法)决定的。
因为f函数有个sum up,故上述式子的可以化简为∣Y∣∣X∣−1|Y|^{|X|-1}∣Y∣∣X∣−1,与aaa无关!
接下来,按照归纳法,我们假设∑fP(dmy∣f,m,a)\sum_fP(d_m^y|f,m,a)∑fP(dmy∣f,m,a)和a无关,然后去证明∑fP(dm+1y∣f,m+1,a)\sum_fP(d_{m+1}^y|f,m+1,a)∑fP(dm+1y∣f,m+1,a)也和a无关。
首先变化一下式子:
P(dm+1y∣f,m+1,a)=P(dm+1y( ...
Self-Attention机制
Self-Attention 机制
场景
输入不只是一个向量,有可能是一个向量组,且向量长度和向量组集合大小都不确定。
比如文本输入,一段文本可以看作是一个向量组,每个向量是一个词向量,向量组的大小是文本的长度。
但是这些文本如果按照简单的编码是不定长,且文本的order对其解读有很大影响。传统的输入方式以上特征都无法满足。
(to learn more: word embedding in weblink)
又比如声音信号:(也是一堆向量组成的向量组)
图也可以作为,比如人际关系图中,每个人的attributes可以看作是一个向量。同时向量之间是有联系的。
一些输入输出的例子:
每个向量都有输出
e.g. 词性判断、语音识别、购物推荐
只输出一个lable就好
e.g. sentiment analyisis、speaker recognition
机器自己决定输出(sequence to sequence)
e.g. 翻译、语音辨识
初步考虑
Windows
如果我们需要关联上下文,是不是开一个足够大的windows就好了呢?
如图我们开了一个全连接的wi ...
贝叶斯网络与MCMC近似
贝叶斯网络的结构
计算联合分布:
有利于减少参数量。(因为计算中每个节点只与父节点相关)
贝叶斯网络的建立
按照上述方式至少可以建DAG,但是想让图最自然同时边最少,需要按照逻辑拓扑序建图。
反过来也说明贝叶斯网络对图如何建立的不敏感。
贝叶斯网络的性质
流动性特点:
X,Y为节点,Z为观测变量的集合
有效迹
更具流动性的特点,可以引入d-分离的概念。
定理1:父节点已知时,该节点与其非后代节点条件独立。(根据有效迹可以判断)
定理2:Markov blanket:Each node is conditionally independent of all others given its Markov blanket: parents + children + children’s parents
计算条件独立时可化简
计算条件概率时,可以通过条件独立大大化简原式子。(每个部分的概率只依赖于不多的与之相关的节 点)。
特别需要注意下:
在给定G时,D与I是有流动性的,此时D与I是不独立的。
反之,若不给定G,D与I之间没有有效迹,是独立的。
虽 ...
CNN卷积神经网络-原理
1. 为什么对于图形,不能暴力的使用全连接层?
直接全连接,参数过多,训练慢且容易overfitting。
2. 图形识别的一些观察
不需要完整的图片,只用看一小部分。
Observation 1
只用在意一个小区域(receptive field)的信息,而不是整张图片。
receptive field可以有重叠甚至可以完全相同(侦测多种pattern)
receptive field的大小、形状、位置、channal都是可以调整的
Tyopical Setting
stride 偏移量
padding 填充(方法多样
Observation 2
同一个pattern在所有receptive field共享参数。
Benefit of Convolutional Layer
针对图像识别的特化神经网络。虽然弹性变小,但是不会overfitting。
Convolutional Layer
每一个filter都产生一层层特征,所有的filter叠加起来就是一个feature map。
可以发现每个Filter高度等于输入的channel,宽度等于recepti ...
Deep_Learning 简介
1. Difference between Deep network and Shollow network
deep network 显著地减少了参数的数量,一方面避免了参数过多而过拟合的风险,一方面也减少了计算量,提高了训练速度。
深度学习可以在参数量小的同时,loss值同样小。做到了鱼与熊掌的兼得。
两难困境
模型太大了,理想解恨好,但是训练出来效果不好
模型小了,理想和现实接近但是都不好
为什么需要Hidden Layer
正常的函数逼近
制造很多上图中的sigmoid函数,然后叠加在一起,就可以逼近任何函数了
于是通过神经网络的连接,通过设置很多神经元的参数:weight and bios,再通过sigmoid激活函数后组合起来,就可以逼近任何函数了
当然更多时候,我们用relu激活函数代替sigmoid函数,因为relu函数更简单,计算量更小,而且效果更好。
为什么需要多层神经网络
Why we want “Deep” network, while not “fat” network? Just because it sounds cool?
Y ...
快捷键合集
Windows
vscode:
Ctrl + Shift + P 打开命令面板
Ctrl + Shift + N 新建窗口
Alt + ← 返回上一处光标
Ctrl + u 撤销光标的上一次操作
Macos
OPTION COMMAND D 隐藏菜单栏
command shift 4 截图
control option <- 窗口靠左
command h 隐藏程序
command q 关闭程序
command w 关闭程序窗口
Command T/N 新建标签页or新建窗口(finder中)
Command + Option + back 彻底删除
iterm2
imgcat 展示文件
proxy 打开终端代理
unproxy 关闭终端代理(实际上执行的是导入的脚本)
Linux terminal
watch -n 1 nvidia-smi 实时刷新监控显卡使用情况
gpustat 简化的nvidia-smi(插件
Vim
演化算法HW2 Maximum Cut
报告题目:Maximum Cut
detect0530@gmail.com
1 引言
演化算法可以解决很多优化问题,其中最大割问题是一个NP难问题,本次作业使用了遗传算法来解决最大割问题。
盼来的演化算法实践!同时更加期待第四次HW!
2 任务一 基本演化算法
本阶段,我将介绍code的基本结构,以及如何运行。
2.1 演化算子
12345def Get_fitness(graph,x,n_edges,threshold=0): g1=np.where(x==0)[0] g2=np.where(x==1)[0] fitness = round(nx.cut_size(graph,g1,g2)/n_edges,5) return fitness
计算fitness的函数,这里使用了nx的cut_size函数,计算割集的大小,除以总边数,得到fitness。
123456def One_bit_mutation(x): x_new=copy.deepcopy(x) idx=random.randint(0,len(x_new)-1) x_n ...
IntroAI_HW3 "Aliens game" Lab Report
报告题目:Aliens 游戏
王崧睿 221502011 detect0530@gmail.com
2023年11月
1 引言
之前研究过一些机器学习算法,很高兴能在这次作业里学习并运用检测不同算法对该问题的适用性。
2 实验准备
Task1
2.1 任务概述:
通过学习并观察代码框架,发现我需要先完成一次游戏,再对我完成游戏中的行为的特征提取,采用surpervised分类算法,让机器学会我的操作思路和细节。
2.2 思路制定:
明确目标:要在不被炸弹炸死且不能让alien进入最后一层,同时尽可能快的结束游戏。
我发现出怪的时间间隔是固定的,如果我们能对准轴,那么我们就可以在出怪的时候炸死它们,所以第一步就是先左移然后尽可能在刷怪时就歼灭之。
而当出现漏怪的情况,我们先按兵不动,因为如果转火去追击,那么就必须放弃即将新刷出来的怪,得不偿失。但是如果停止刷怪,或者大部分怪已经刷出来了,那么就该改变策略去歼灭了。
言而总之,战术分为两个部分:
一开始的定点打击,旨在尽可能多的歼灭敌人。此时不会主动移动,只会不断发射子弹,同时闪避炸弹。
当敌人数量下降到一定地步后 ...