中期结束

This commit is contained in:
Estom
2021-08-29 16:27:02 +08:00
parent 8e1ccd4de6
commit 1bd1270276
7 changed files with 464 additions and 12 deletions

108
.vscode/settings.json vendored
View File

@@ -80,4 +80,112 @@
"xutility": "cpp"
},
"python.pythonPath": "/usr/bin/python3",
"latex-workshop.latex.tools": [
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"%DOC%"
]
},
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
}
],
"latex-workshop.latex.recipes": [
{
"name": "latexmk",
"tools": [
"latexmk"
]
},
{
"name": "xelatex",
"tools": [
"xelatex"
]
},
{
"name": "pdflatex",
"tools": [
"pdflatex"
]
},
{
"name": "pdflatex -> bibtex",
"tools": [
"pdflatex",
"bibtex"
]
},
{
"name": "pdflatex -> bibtex -> pdflatex*2",
"tools": [
"pdflatex",
"bibtex",
"pdflatex",
"pdflatex"
]
},
{
"name": "xelatex -> bibtex -> xelatex*2",
"tools": [
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
}
],
"latex-workshop.latex.autoBuild.run":"never",
"latex-workshop.view.pdf.viewer": "tab",
"latex-workshop.latex.clean.fileTypes": [
"*.aux",
"*.bbl",
"*.blg",
"*.idx",
"*.ind",
"*.lof",
"*.lot",
"*.out",
"*.toc",
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
"*.ist",
"*.fls",
"*.log",
"*.fdb_latexmk"
],
}

View File

@@ -0,0 +1,59 @@
\documentclass[11pt]{article}
\usepackage{CJK}
\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\usepackage{amsmath}
\floatname{algorithm}{算法}
\renewcommand{\algorithmicrequire}{\textbf{输入:}}
\renewcommand{\algorithmicensure}{\textbf{输出:}}
\begin{document}
\begin{CJK*}{UTF8}{gkai}
\begin{algorithm}
\caption{用归并排序求逆序数}
\begin{algorithmic}[1] %每行显示行号
\Require $Array$数组,$n$数组大小
\Ensure 逆序数
\Function {MergerSort}{$Array, left, right$}
\State $result \gets 0$
\If {$left < right$}
\State $middle \gets (left + right) / 2$
\State $result \gets result +$ \Call{MergerSort}{$Array, left, middle$}
\State $result \gets result +$ \Call{MergerSort}{$Array, middle, right$}
\State $result \gets result +$ \Call{Merger}{$Array,left,middle,right$}
\EndIf
\State \Return{$result$}
\EndFunction
\State
\Function{Merger}{$Array, left, middle, right$}
\State $i\gets left$
\State $j\gets middle$
\State $k\gets 0$
\State $result \gets 0$
\While{$i<middle$ \textbf{and} $j<right$}
\If{$Array[i]<Array[j]$}
\State $B[k++]\gets Array[i++]$
\Else
\State $B[k++] \gets Array[j++]$
\State $result \gets result + (middle - i)$
\EndIf
\EndWhile
\While{$i<middle$}
\State $B[k++] \gets Array[i++]$
\EndWhile
\While{$j<right$}
\State $B[k++] \gets Array[j++]$
\EndWhile
\For{$i = 0 \to k-1$}
\State $Array[left + i] \gets B[i]$
\EndFor
\State \Return{$result$}
\EndFunction
\end{algorithmic}
\end{algorithm}
\end{CJK*}
\end{document}

View File

@@ -0,0 +1,173 @@
\documentclass[11pt]{article}
\usepackage{CJK}
\usepackage[top=2cm, bottom=2cm, left=3cm, right=3cm]{geometry}
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\usepackage{amsmath}
\floatname{algorithm}{算法}
\renewcommand{\algorithmicrequire}{\textbf{输入:}}
\renewcommand{\algorithmicensure}{\textbf{输出:}}
\begin{document}
\begin{CJK*}{UTF8}{gkai}
$$
hello = f(x)
this is
$$
\renewcommand{\thealgorithm}{1}
\begin{algorithm}[H]
\caption{联邦平均算法Fedavg}
\begin{algorithmic}[1]%每行显示行号
\Require{$t,T,k,N,\eta,E,B, w_k^t,$}
\Ensure {$w$}
\Function{ServerAggregate:}{}
\For{$t = 0, \cdots , T-1$}
\State select $S_t$ from $K$ device\
\State send $w^t$ to device
\For{client $k\in S_t$}
\State $w^k_{t+1} \gets $ ClientUpdate($k,w_t$)
\EndFor
\State $w_{t+1} \gets \frac{1}{N}\sum_{k=1}^N w_{t+1}^k$
\EndFor
\EndFunction
\Function{ClientUpdate:}{$k,w_t$}
\State $w_t^k \gets w_t$
\For{epoch i from $1 to E$}
\For{batch $b \in B$}
\State $w_t^k \gets w_t^k - \eta\nabla l(w_t^k,b)$
\EndFor
\EndFor
\EndFunction
\State return $w_{t}^k$;
\end{algorithmic}
\end{algorithm}
\begin{algorithm}[H]
\caption{模型无关的元学习算法MAML}
\begin{algorithmic}[1]%每行显示行号
\Require{$p(T):$distribution over task}
\Ensure {$\alpha,\beta:$step size hyperparameters}
\State Randomly initialize $\theta$
\While{not done}
\State Sample batch of task $T_i\sim p(T)$
\For{all $T_i$}
\State Evalute $\nabla L_{T_i}(f_\theta)$ respect to $K$ example
\State Compute adpated parameters with gradient descent
\State $\theta_i' = \theta-\alpha\nabla_\theta L_{T_i}(f_\theta)$
\EndFor
\State Update $\theta \gets \theta-\beta\nabla_\theta\sum_{T_i\sim p_i}L_{T_i}(f_{\theta_i'})$
\EndWhile
\end{algorithmic}
\end{algorithm}
\begin{algorithm}[H]
\caption{基于贡献度和元学习的联邦学习算法}
\begin{algorithmic}[1]%每行显示行号
\Require{$t,T,k,N,\eta,E,B, w_k^t,$}
\Ensure {$w$}
\Function{ServerAggregate:}{}
\For{$t = 0, \cdots , T-1$}
\State select $S_t$ from $K$ device\
\State send $w^t$ to device
\For{client $k\in S_t$}
\State $w^k_{t+1} \gets $ ClientUpdate($k,w_t$)
\EndFor
\State $w_{t+1} \gets \sum_{k=1}^N C_k w_{t+1}^k$
\EndFor
\EndFunction
\Function{ClientUpdate:}{$k,w_t$}
\State $w_t^k \gets w_t$
\For{epoch i from $1 to E$}
\State $\tilde{w_t^k} \gets w_t^k - \alpha\nabla_w l(w_t^k,D_{support})$
\EndFor
\State $w_{t+1}^k \gets w_t^k-\beta \nabla_w l(\tilde{w_t^k},D_{query})$
\EndFunction
\State return $w_{t+1}^k$;
\end{algorithmic}
\end{algorithm}
\begin{algorithm}[H]
\caption{基于差分隐私的联邦学习算法}
\begin{algorithmic}[1]%每行显示行号
\Require{$t,T,k,N,\alpha,,E epoch,B batch, w_k^t,C$}
\Ensure {$w_{t+1}^k$}
\Function{ServerAggregate:}{}
\For{$t = 0, \cdots , T-1$}
\State select $S_t$ from $K$ device\
\State send $w^t$ to device
\For{client $k\in S_t$}
\State $w^k_{t+1} \gets $ ClientUpdate($k,w_t$)
\EndFor
\State $w_{t+1} \gets \sum_{k=1}^N C_k w_{t+1}^k$
\EndFor
\EndFunction
\Function{ClientUpdate:}{$k,w_t$}
\State $w_t^k \gets w_t$
\For{epoch i from $1 to E$}
\State Compute gradient $g_t^k(w) \gets \nabla_w l(w_t^k,D)$
\State Clip gradient $\overline{g_t^k}(w) \gets g_t^k(w)/max(1,\frac{||g_t^k(w)||_2}{C})$
\State Add noise $\tilde{g_t^k}(w)\gets (\overline{g_t^k}(w)+N(0,\sigma^2C^2))$
\State Descent $w_t^k \gets w_t^k-\alpha \tilde{g_t^k}(w_t^k)$
\EndFor
\State $w_{t+1}^k\gets w_t^k$
\State return $w_{t+1}^k$;
\EndFunction
\end{algorithmic}
\end{algorithm}
\begin{algorithm}
\caption{用归并排序求逆序数}
\begin{algorithmic}[1] %每行显示行号
\Require $Array$数组,$n$数组大小
\Ensure 逆序数
\Function {MergerSort}{$Array, left, right$}
\State $result \gets 0$
\If {$left < right$}
\State $middle \gets (left + right) / 2$
\State $result \gets result +$ \Call{MergerSort}{$Array, left, middle$}
\State $result \gets result +$ \Call{MergerSort}{$Array, middle, right$}
\State $result \gets result +$ \Call{Merger}{$Array,left,middle,right$}
\EndIf
\State \Return{$result$}
\EndFunction
\State
\Function{Merger}{$Array, left, middle, right$}
\State $i\gets left$
\State $j\gets middle$
\State $k\gets 0$
\State $result \gets 0$
\While{$i<middle$ \textbf{and} $j<right$}
\If{$Array[i]<Array[j]$}
\State $B[k++]\gets Array[i++]$
\Else
\State $B[k++] \gets Array[j++]$
\State $result \gets result + (middle - i)$
\EndIf
\EndWhile
\While{$i<middle$}
\State $B[k++] \gets Array[i++]$
\EndWhile
\While{$j<right$}
\State $B[k++] \gets Array[j++]$
\EndWhile
\For{$i = 0 \to k-1$}
\State $Array[left + i] \gets B[i]$
\EndFor
\State \Return{$result$}
\EndFunction
\end{algorithmic}
\end{algorithm}
\end{CJK*}
\end{document}

View File

@@ -2,16 +2,16 @@
今天(周二)
* [ ] 阅读他人的中期报告、完成中期报告的架构工作,想好每一部分些什么。
* [ ] 阅读自己的开题报告、毕业设计、工作规划。补充每一部分已经完成的成果。
* [x] 阅读他人的中期报告、完成中期报告的架构工作,想好每一部分些什么。
* [x] 阅读自己的开题报告、毕业设计、工作规划。补充每一部分已经完成的成果。
明天(周三)
* [ ] 查阅相关的算法、技术。对报告内容进行完善。包括完成算法的描述、公式的输入输出和论证、技术的描述(参考学弟的论文)
* [ ] 查阅软件设计绘图的资料。画完所有系统图、技术图。设计好系统和技术
* [x] 第一轮,填充内容。复制相关的资料、自己的文档,根据其他人中期报告的句式进行修改。
* [ ] 第二轮,公式、图片、算法输入完成。查阅相关的算法、技术。对报告内容进行完善。包括完成算法的描述、公式的输入输出和论证、技术的描述。查阅软件设计绘图的资料。画完所有系统图、技术图。设计好系统和技术。
* [ ] 第三轮,添加文献引用
* [ ] 第四轮,修改格式。(将当前的问下,分解成两个自文献——中期报告和毕设论文。)

View File

@@ -0,0 +1,99 @@
PPT的章节
# 论文研究计划
## 选题背景——提出基于联邦学习的恶意软件检测,解决需求
## 选题背景——存在的问题。在应用过程中存在问题。选题意义——能干嘛?解决问题被。解决问题后能有什么美好的未来。
## 研究目标——解决应用过程中存在的问题。目标是啥?解决问题呗?量化的解决问题。
## 研究内容——通过什么方法+什么技术实现研究目标。
## 研究计划——论文研究计划和完成情况
# 已完成的工作
## 国内外研究现状分析
* 恶意软件的研究现状
* 联邦学习应用过程的研究现状
## 理论基础研究
* 联邦学习的理论
* 元学习的理论
* 差分隐私的理论
* 非独立同分布的理论
## 剩下的已完成的工作人为加一页PPT强制分开
* 实现了基于贡献度和元学习的联邦学习框架
* 建立了基于差分隐私的联邦学习框架
* 实验。验证和部分和实验结果的处理
* 完成了系统的设计和系统的部分构件
# 关键技术和难点
## 数据预处理技术
* 恶意软件特征提取
* 数据非独立同分布的划分
## 基于贡献度和元学习的联邦学习框架
* 非独立同分布衡量
* 贡献度计算
* 联邦元学习算法
## 基于差分隐私的联邦学习框架
* 威胁模型
* 隐私保护算法
* 隐私计算和实验验证
## 实验结果
## 基于微服务技术的联邦学习系统
# 下一阶段的计划
## 存在的问题
## 问题的解决方案
## 时间安排
# 第二版修改意见。
1. 将有效内容压缩到15页PPT。总共包括五部分每一部分两分钟
1. 开始3页
2. 数据处理 3页
3. 算法1 3页
4. 算法2 3页
5. 系统 3页
6. 结尾 1页
2. 为什么、是什么。关键要讲清楚自己的思路,这么做思考的过程,让别人觉得你这样做很合理。
1. 为什么提出这样的观点。(服务器端的调整,让他们有共同的方向。客户端的调整,让他们具有更强的泛化性,突出元学习强调各个任务的泛化性)
2. 这个观点是什么。(如何计算得到弹性权重,如何将元学习融入到联邦学习中呢)
3. 这样做能产生什么样的效果。(这样做产生的效果,弹性圈中,会导致,与大方向相同的权重获得更多的计算效果)
4. 通过实验验证这么做的效果。(讲述一下自己复现的别人的算法,每个算法的优缺点,以及实验的设置和实验效果)
> 对于差分隐私部分也是如此。
3. 系统设计上。也是如此。我们考虑到联邦学习落地困难的原因:
1. 客户端服务器的协商机制,如何建立通信链接
2. 客户端动态参与机制。能够弹性的实现加入与退出,实现服务注册与发现。
3. 考虑面对新的训练业务应用场景,提供可扩展化的模块。

View File

@@ -36,13 +36,22 @@
> 这里应该是本次研究对比的对象。
#### 恶意软件检测方法的研究现状
#### 联邦学习的研究现状
* 联邦学习与非独立同分布问题
* 联邦学习与隐私保护问题
* 联邦学习系统构建
1. 恶意软件检测的机器学习和联邦学习方案。
2. 当前解决恶意软件数据隐私保护问题的方案——传统的数据隐私保护方法的研究(差分隐私、数据加密)
3. 当前解决恶意软件数据无标签问题的方案——恶意软件检测与半监督学习的方案sephew、基准分类器
4. 当前解决恶意软件数据非独立同分布问题的方案——现有的非独立同分布数据方案prox
5. 联邦学习的隐私保护、半监督学习、非独立同分布等开放问题的解决方案。
### 对比基线
#### 对比基线
1. 恶意软件检测的机器学习和深度学习研究方案(第一层:针对恶意软件检测**领域**对比)
1. 恶意软件检测中数据扩展+隐私保护的研究方案(第二层:针对数据扩展和隐私保护等**需求**的对比)
2. 联邦学习的隐私保护、非独立同分布等开放问题的研究方案(第三层:针对隐私泄露问题、非独立同分布**问题**的对比)
@@ -64,20 +73,24 @@
## 第二章:理论基础和相关技术
### 1 恶意软件检测原理
### 1
### 2 数据预处理
#### 恶意软件特征去提取
> 恶意软件主要分类、恶意软件主要分类的依据和数学表示(接口、行为?)、恶意软件主要的检测方法利用到的原理。
### 2 恶意软件特征提取技术
> 哪些内容能够表现恶意软件
> 特征提取技术,特征降维方法。动静态特征的提取方法。
* 静态特征的提取
* 动态特征的提取
* 特征降维方法
####
### 3 联邦学习
> 联邦学习的基础原理。联邦学习的实现方案。联邦学习的分类和数学表示。联邦学习中的开放问题。