diff --git a/工作日志/2020年9月6日-ML.md b/工作日志/2020年9月6日-ML.md index ec4d1601..d117494e 100644 --- a/工作日志/2020年9月6日-ML.md +++ b/工作日志/2020年9月6日-ML.md @@ -1,113 +1,138 @@ # 机器学习 + ## 当前的主要任务: 现在处在研究的第一和第二阶段。关于第一阶段联邦学习的应用场景,主要由蒋师兄完成。第二阶段,学习联邦学习关联的基础知识,为第三阶段机器学习算法的实现和框架的搭建做好准备。 -看完相关的文章和博客。然后开始学习,用两周时间学习完成基础知识。在学习基础知识的时候,使用tensorflow框架进行算法的运行。 +看完相关的文章和博客。然后开始学习,用两周时间学习完成基础知识。在学习基础知识的时候,使用 tensorflow 框架进行算法的运行。 + +--- -------------------- ## 长久的时间计划: -* 必须在十一月份之前完成学习工作。那就到10月30号把。还有五本需要看的书。10月30号之前,完全搞懂该领域的内容。 -* 十一月份,进行调研,寻找大量相关的研究工作。 -* 十二月份,对相关领域的算法进行实现。对算法进行改进。 + +- 必须在十一月份之前完成学习工作。那就到 10 月 30 号把。还有五本需要看的书。10 月 30 号之前,完全搞懂该领域的内容。 +- 十一月份,进行调研,寻找大量相关的研究工作。 +- 十二月份,对相关领域的算法进行实现。对算法进行改进。 > 感觉时间不够了啊,兄弟。你这需要做的事情有点多。国庆节,尽量恶补完成大部分机器学习的基础知识和主要的算法,然后国庆节后开始看论文。 --------------- +--- + ## 学习路线 -### Python系列(一周) -> 熟悉python进行机器学习的基础库,包括每个库都干了什么。 +### Python 系列(一周) -python3-numpy-scipy-matplotlib-pandas√ -> 基本完成。主要是知道了这些东西都是干什么用的。 +> 熟悉 python 进行机器学习的基础库,包括每个库都干了什么。 + +- [x] python3√ +- [x] numpy√ +- [x] scipy√ +- [x] matplotlib√ +- [x] pandas√ + > 基本完成。主要是知道了这些东西都是干什么用的。 ### 机器学习+深度学习系列(视频教程)(三周) -> 需要了解机器学习的各种工具,需要的进行补充。使用python3进行编程实践。这一部分是最关键的,需要按照知乎的方法进行调整学习。入门课程->模型算法->编程实践 + +> 需要了解机器学习的各种工具,需要的进行补充。使用 python3 进行编程实践。这一部分是最关键的,需要按照知乎的方法进行调整学习。入门课程->模型算法->编程实践 1. 《机器学习》吴恩达的课程一看。跟着做做笔记。 - * 第一轮,笔记对照(看一部分,总结一部分。) - * 第二轮,看吴恩达的PPT重新整理所有的笔记。 - * 第三轮,寻找吴恩达课程的课后题,使用python完成课后题 + - [x] 第一轮,笔记对照(看一部分,总结一部分。) + - 第二轮,看吴恩达的 PPT 重新整理所有的笔记。 + - 第三轮,寻找吴恩达课程的课后题,使用 python 完成课后题 2. 吴恩达的神经网络五套课程看完。各种神经网络。 - * 神经网络与深度学习 - * 改善神经网络 - * 结构化项目学习 - * 卷积神经网络 - * 序列模型 - * 第一轮,笔记对(借用其他人的笔记进行修改,同时理解) - * 第二轮,看吴恩达的PPT重新整理所有的笔记 - * 第三轮,课后题,TensorFlow完成 -3. ~~《统计学习方法》~~ 一看。3Blue1Brown的视频看一看。跟着做做笔记。数学公式太多,太难了,应该学会放弃。看西瓜书好了。 -4. 《机器学习西瓜书》一看。跟着做做笔记。 -5. 《机器学习实战》量子位提供的书,适合编程。 -6. 《python机器学习》里边涉及几个实战 -7. 《白板推导》视频看一遍。tensorflow教程一看,实现一遍之前的算法。 -8. (可选) ~~《机器学习基石》上&下~~//李宏毅的机器学习也行(在进行一段时间之后,已经完成了多个项目之后,可以回过头来看李的视频,进行更深层次的理解) - * 完成第二轮,笔记对照 - * 代码实现课后的内容 + - [x] 神经网络与深度学习 + - [x] 改善神经网络 + - [x] 结构化项目学习 + - [x] 卷积神经网络 + - [x] 序列模型 + - 第一轮,笔记对(借用其他人的笔记进行修改,同时理解) + - 第二轮,看吴恩达的 PPT 重新整理所有的笔记 + - 第三轮,课后题,TensorFlow 完成 +3. ~~《统计学习方法》~~ 一看。 + - [ ] 3Blue1Brown 的视频看一看。跟着做做笔记。数学公式太多,太难了,应该学会放弃。看西瓜书好了。 +4. 《机器学习西瓜书》一看。 + - [ ] 跟着做做笔记。 +5. 《机器学习实战》 + - [ ] 量子位提供的书,适合编程。 +6. 《python 机器学习》 + - [ ] 几个实战. +7. 《白板推导》 + - [ ] 视频看一遍。tensorflow 教程一看,实现一遍之前的算法。 +8. (可选) ~~《机器学习基石》上&下~~ + - [ ] 李宏毅的机器学习也行(在进行一段时间之后,已经完成了多个项目之后,可以回过头来看李的视频,进行更深层次的理解) + - [ ] 完成第二轮,笔记对照 + - [ ] 代码实现课后的内容 > (1,2)->(3,4)->(5,6)->(7,8) > 安排 +> > 1. 首先跟着量子位的课程完成上述学习。 -> 2. 然后跟着apacheCN的资料完成第二阶段的阅读。 +> 2. 然后跟着 apacheCN 的资料完成第二阶段的阅读。 > 3. 然后就是尝试专业领域的应用实战。 -> 补充:林轩田《机器学习基石》《机器学习技法》。李宏毅的《机器学习视频教程》。 -> 工具 -> * sklearn -> * tensorflow +> 补充:林轩田《机器学习基石》《机器学习技法》。李宏毅的《机器学习视频教程》。 +> 工具 +> _ sklearn +> _ tensorflow > 变更说明 -> * 经过仔细思考,感觉李宏毅的机器学习+深度学习与吴恩达的机器学习+深度学习,重叠的部分太多,入门阶段进行混合学习代价较大。所以,入门阶段都是以吴恩达的课程为主,编程也是以吴恩达的课程为主。总共包括五个模块,可以适当地学习三到四个模块,然后进行下一阶段。 -> * 等所有部分完成了,以李宏毅的课程作为基础知识的回顾和强化。 - +> +> - 经过仔细思考,感觉李宏毅的机器学习+深度学习与吴恩达的机器学习+深度学习,重叠的部分太多,入门阶段进行混合学习代价较大。所以,入门阶段都是以吴恩达的课程为主,编程也是以吴恩达的课程为主。总共包括五个模块,可以适当地学习三到四个模块,然后进行下一阶段。 +> - 等所有部分完成了,以李宏毅的课程作为基础知识的回顾和强化。 > 学习路径说明 -> * 视频教程-基础知识构建,以知识的角度,逐渐构建机器学习体系,跟随课程理解。 -> * 读书整理-机器学习算法,从算法的角度,独立理解算法的原理,深刻理解每个算法的原理。 -> * 算法实践,从工程的角度,考虑如何设计算法,实现算法,优化算法和进行算法可视化 +> +> - 视频教程-基础知识构建,以知识的角度,逐渐构建机器学习体系,跟随课程理解。 +> - 读书整理-机器学习算法,从算法的角度,独立理解算法的原理,深刻理解每个算法的原理。 +> - 算法实践,从工程的角度,考虑如何设计算法,实现算法,优化算法和进行算法可视化 +### 联邦学习实践系列(三周) -### 联邦学习系列(三周) > 尝试搭建小型的联邦学习框架。寻找网络教程,完成这一块,还有很多书。 -tensorflow -fate + +- [ ] sklearn +- [ ] tensorflow +- [ ] pysft +- [ ] fate ### 问题定义(三周) -* 阅读相关论文,定义环境,找到论文的方向。 -* 分析前沿的研究,了解该领域的主要方案。 -* 提出自己解决问题的方案,对模型和系统进行初步规划。 +- 阅读相关论文,定义环境,找到论文的方向。 +- 分析前沿的研究,了解该领域的主要方案。 +- 提出自己解决问题的方案,对模型和系统进行初步规划。 ### 相关资料说明 -* 吴恩达的机器学习 -* 吴恩达的深度学习五套课程 -* 李宏毅《机器学习+深度学习》课程 -* ~~林轩田《机器学习基石》课程~~ -* 李航《统计学习方法》 -* 周志华《西瓜书》 -* 《机器学习实战》 -* 《Python机器学习》 + +- 吴恩达的机器学习 +- 吴恩达的深度学习五套课程 +- 李宏毅《机器学习+深度学习》课程 +- ~~林轩田《机器学习基石》课程~~ +- 李航《统计学习方法》 +- 周志华《西瓜书》 +- 《机器学习实战》 +- 《Python 机器学习》 ### 选择 + 框架选择: -* tensorflow和fate -研究方向: -* 数据挖掘 -* 文本处理(自然语言处理) -* 行为建模和行为分析。(这可能是工作量最大的地方。) -* 恶意软件相关特征提取(恶意软件相关特征分析和应用,机器学习算法应用的地方,联合训练模型的构建) + +- tensorflow 和 fate + 研究方向: +- 数据挖掘 +- 文本处理(自然语言处理) +- 行为建模和行为分析。(这可能是工作量最大的地方。) +- 恶意软件相关特征提取(恶意软件相关特征分析和应用,机器学习算法应用的地方,联合训练模型的构建) ### 参考 -* [知乎量子位回答](https://zhuanlan.zhihu.com/p/37349519) -* [知乎ApacheCN回答](https://www.zhihu.com/question/20691338/answer/248678328) -> 当你按照自己的流程走完了上述的内容之后,应该去看量子位和ApacheCn的教程。自己的学习只能算是入门,当前的关键,应该是开始学习,而不是在这里瞎搞。 + +- [知乎量子位回答](https://zhuanlan.zhihu.com/p/37349519) +- [知乎 ApacheCN 回答](https://www.zhihu.com/question/20691338/answer/248678328) + > 当你按照自己的流程走完了上述的内容之后,应该去看量子位和 ApacheCn 的教程。自己的学习只能算是入门,当前的关键,应该是开始学习,而不是在这里瞎搞。 ### 补充学习 > 有时间学习一下数学内容(找相关的数学客车个) -* 微积分 -* 线性代数 -* 概率论和数理统计 \ No newline at end of file +- 微积分 +- 线性代数 +- 概率论和数理统计 diff --git a/工作日志/2021年2月27日-三月份计划.md b/工作日志/2021年2月27日-三月份计划.md index d67d754c..04cf924a 100644 --- a/工作日志/2021年2月27日-三月份计划.md +++ b/工作日志/2021年2月27日-三月份计划.md @@ -10,50 +10,51 @@ - 制作简历(明天)√ - 知识复习——语言 - C++(primer)(两周) - - 基础语法√ - - 标准库 STL√ - - 面向对象√ - - 设计模式(有道云笔记,gitee 设计模式库,书) - - effective 系列 - - 系列视频 - - 问题专项解决) + - [x] 基础语法 √ + - [x] 标准库 STL√ + - [x] 面向对象 √ + - [ ] 设计模式(有道云笔记,gitee 设计模式库,书) + - [ ] effective 系列 + - [ ] 系列视频 + - [ ] 问题专项解决) - Java(两周) - - 语法 - - 标准库(网络编程、多线程、IO) - - Spring框架 -- 知识复习——算法与数据结构(一周) - - 数据结构《大话数据结构》 - - 算法《数据结构与算法分析》《算法图解》 + - [ ] 语法 + - [ ] 标准库(网络编程、多,周) + - 数据结构 + - [ ] 《大话数据结构》 + - 算法 + - [ ] 《数据结构与算法分析》 + - [ ] 《算法图解》 - 知识复习——基础(一周) - - 计算机网络 - - 数据库 - - 操作系统 - - Linux 与网络编程 -* 刷题 - * 力扣(学习、题库、讨论。侧重于刷算法类型的题目和相关讨论) - * 学习:3-5本书的学习需要阅读的书籍如下 - * 数组、链表、队列、树(堆)、图(数据结构专项) - * 初级算法 - * 中级算法 - * 高级算法 - * 题库:然后按照热度刷题库 - * 剑指offer - * 讨论:没事看讨论,主要是一些面经和基础知识,可以补充 - * 牛客网(学习、社区、求职基础知识的学习) - * 题库(知识用来刷题) - * 经典必刷题目 - * C++/JAVA专项练习 + - [ ] 计算机网络 + - [ ] 数据库 + - [ ] 操作系统 + - [ ] Linux 与网络编程 +- 刷题 + - 力扣(学习、题库、讨论。侧重于刷算法类型的题目和相关讨论) + - 学习:3-5 本书的学习需要阅读的书籍如下 + - [ ] 数组、链表、队列、树(堆)、图(数据结构专项) + - [ ] 初级算法 + - [ ] 中级算法 + - [ ] 高级算法 + - 题库:然后按照热度刷题库 + - [X] 剑指 offer√ + - [ ] 每日一题 + - 讨论:没事看讨论,主要是一些面经和基础知识,可以补充 + - 牛客网(学习、社区、求职基础知识的学习) + - 题库(知识用来刷题) + - [ ] 经典必刷题目 + - [ ] C++/JAVA 专项练习 ### 问题(待处理) -* 关于递归的方式。头递归。尾递归。递归前和递归后的处理。递归前的处理,影响或许递归。递归后的处理,恢复之前的影响。那个应该是一个典型的递归搜索路径的问题。 -* 关于树的处理。前序遍历中序遍历后续遍历。 -* 关于位运算的特殊总结。 - +- [x] 关于递归的方式。头递归。尾递归。递归前和递归后的处理。递归前的处理,影响或许递归。递归后的处理,恢复之前的影响。那个应该是一个典型的递归搜索路径的问题。 +- [x] 关于树的处理。前序遍历中序遍历后续遍历。 +- [x] 关于位运算的特殊总结。 ### 时间安排 -* 知识复习——数据结构与算法 - * 明天早上,根据已经下载好的笔记,读博客已经收藏的博客,修改笔记。关键部分写代码。 -* 刷题——剑指offer、经典必刷提、C++专项练习。 \ No newline at end of file +- 知识复习——数据结构与算法 + - 明天早上,根据已经下载好的笔记,读博客已经收藏的博客,修改笔记。关键部分写代码。 +- 刷题——剑指 offer、经典必刷提、C++专项练习。 diff --git a/工作日志/2021年3月15日-每日计划.md b/工作日志/2021年3月15日-每日计划.md index 086b89f7..9e0f8931 100644 --- a/工作日志/2021年3月15日-每日计划.md +++ b/工作日志/2021年3月15日-每日计划.md @@ -1,11 +1,6 @@ ## 今天的计划 -* 刷完今天的十道题 -* 刷完昨天的十道题 - - - - +- [x] 刷完今天的十道题 √ ## 今天的收获 diff --git a/工作日志/2021年3月16日-每日计划.md b/工作日志/2021年3月16日-每日计划.md index 720b41ad..f22cdc64 100644 --- a/工作日志/2021年3月16日-每日计划.md +++ b/工作日志/2021年3月16日-每日计划.md @@ -1,6 +1,6 @@ ## 今天的计划 -* 刷完十道题 -* 开始做毕设 + +- [x] 刷完十道题 ## 今天的收获 diff --git a/工作日志/2021年3月17日-今日计划.md b/工作日志/2021年3月17日-今日计划.md index 3ca93ecb..cdfc79ef 100644 --- a/工作日志/2021年3月17日-今日计划.md +++ b/工作日志/2021年3月17日-今日计划.md @@ -1,17 +1,15 @@ # 计划 -1. 对刷题的内容进行总结。首先进行这个总结。 -2. 实现字符串分割和字符串格式化的方法(C++库string篇) -3. 学习、复习分治法(把相关思想下的问题和算法补充完整) -4. 学习、复习动态规划 -5. 学习、复习贪心 -6. 学习、复习回溯剪枝 -7. 学习、复习分支限界 -8. √学习C++容器。对容器的构造函数进行总结。 -9. √学习C++容器。对每个容器的基础操作进行总结。 -10. √学习C++模板算法。对算法的第三个参数进行总结。 -11. 需要重新看一下补码、原码相关的加减法操作。 - - +- [ ] 对刷题的内容进行总结。首先进行这个总结。(一半了) +- [ ] 实现字符串分割和字符串格式化的方法(C++库string篇) +- [ ] 学习、复习分治法(把相关思想下的问题和算法补充完整) +- [ ] 学习、复习动态规划 +- [ ] 学习、复习贪心 +- [ ] 学习、复习回溯剪枝 +- [ ] 学习、复习分支限界 +- [x] 学习C++容器。对容器的构造函数进行总结。 +- [x] 学习C++容器。对每个容器的基础操作进行总结。 +- [x] 学习C++模板算法。对算法的第三个参数进行总结。 +- [ ] 需要重新看一下补码、原码相关的加减法操作。 # 收获 * 学会了sort的第三个参数的应用 diff --git a/工作日志/2021年3月18日-今日计划.md b/工作日志/2021年3月18日-今日计划.md index d3323a56..bd36b137 100644 --- a/工作日志/2021年3月18日-今日计划.md +++ b/工作日志/2021年3月18日-今日计划.md @@ -2,10 +2,10 @@ > 完成昨天的任务。 -1. 学习、复习图算法,动手实现所有的图算法。 -2. 看完数据结构与算法的三本书!!!对相关的原理进行复习和总结。 -3. 学习机器学习的实现方案。毕设计划真正的开始执行。 -4. 关于字符串分割。字符串格式化方法的总结。转换成流,作为流对象处理。转换为容器。作为容器对象处理,使用泛型算法。 +- [ ] 学习、复习图算法,动手实现所有的图算法。 +- [ ] 看完数据结构与算法的三本书!!!对相关的原理进行复习和总结。 +- [ ] 学习机器学习的实现方案。毕设计划真正的开始执行。 +- [ ] 关于字符串分割。字符串格式化方法的总结。转换成流,作为流对象处理。转换为容器。作为容器对象处理,使用泛型算法。 ## 收获 diff --git a/工作日志/2021年3月19日-四月份计划.md b/工作日志/2021年3月19日-四月份计划.md new file mode 100644 index 00000000..7955d374 --- /dev/null +++ b/工作日志/2021年3月19日-四月份计划.md @@ -0,0 +1,40 @@ +## 计划 + +> 复习计划暂时搁置。开始机器学习的计划(第二篇)五月份学弟就要毕业了,也就是在四月份一个月要把一下的东西全部搞出来。 + +> 当前工作的主要的三个方向 +> 1. 机器学习算法实践。 +> 2. 联邦学习文章复现。 +> 3. 恶意软件数据处理。 + +### 机器学习算法实践(四周) +> 尝试各种机器学习算法,主要使用主流的算法框架。寻找网络教程,完成这一块,还有很多书。机器学习算法,应该由浅入深。不能像之前那样想先学会所有的原理,自己手动实现这些原理,然后使用别人的框架实现这些过程,在别人的基础上进行改进。当前应该吧顺序颠倒过来。从使用开始,逐渐理解底层的东西,然后做出适当的修改。 +> 1. ->使用算法框架或别人的代码解决问题 +> 2. ->理解该代码的底层逻辑 +> 3. ->理解机器学习算法的原理 +> 4. ->改进算法符合自己的预期目标。 + +- [ ] sklearn与机器学习算法的原理。各种机器学习算法实践。 +- [ ] tensorflow federated +- [ ] pysft +- [ ] fate + +### 联邦学习文章复现(四周) +> 阅读当前最新的联邦学习文章。使用别人的代码复现联邦学习的过程。复习和复现 + +- [ ] DeepAMD + +### 恶意软件数据处理(四周) +> 针对恶意软件使用机器学习算法。尝试单机或者使用联邦学习解决恶意软件中的问题。 + +- [ ] 恶意软件数据的处理 +- [ ] 恶意软件与机器学习算法的结合 + +### 任务安排 + +1. 每天sklearn一个机器学习小算法 +2. 每天一个联邦学习框架 +3. 每天一篇联邦学习的文章。 +4. 每天数据集处理一小步。 + +## 收获 \ No newline at end of file diff --git a/工作日志/2021年3月20日-今日计划.md b/工作日志/2021年3月20日-今日计划.md new file mode 100644 index 00000000..9a9dda86 --- /dev/null +++ b/工作日志/2021年3月20日-今日计划.md @@ -0,0 +1,18 @@ +## 计划 + +> C++11的新特性+C++标准库组合起来也太有意思了。可以创造无限可能啊。 +> Python现在的发展也有点离谱。几天不看就不会用了。Python开发的工具也太多了。 + +1. 每天sklearn一个机器学习小算法 + - [ ] k-近邻算法 + - [ ] 复习吴恩达机器学习笔记 + - [ ] 复习吴恩达深度学习笔记 +2. 每天一个联邦学习框架 + - [ ] pysyft +3. 每天一篇联邦学习的文章。 + - [ ] deepAMD +4. 每天数据集处理一小步。 + - [X] 获取2020年的两个超大型数据集,并存到云盘当中 + - [X] 获取CIC关于恶意软件分析的论文 + +## 收获 \ No newline at end of file diff --git a/算法/B类:数据结构算法/2.2 二叉搜索树与双向链表.md b/算法/B类:数据结构算法/2.2 二叉搜索树与双向链表.md index 41bdbc4f..d1ff2f92 100644 --- a/算法/B类:数据结构算法/2.2 二叉搜索树与双向链表.md +++ b/算法/B类:数据结构算法/2.2 二叉搜索树与双向链表.md @@ -1,12 +1,14 @@ -# 二叉搜索树与双向链表 - -## 1 +## 1 二叉树与双向链表 ### 问题分析 * 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 * [链接](https://leetcode-cn.com/problems/er-cha-sou-suo-shu-yu-shuang-xiang-lian-biao-lcof/) +## 1 二叉树与双向链表——左旋右旋 + +> 借鉴了构建二叉平衡树的内容。可以自己完成以下二叉平衡树试试。 + ### 算法设计 * 通过左旋右旋操作实现树的旋转。最终旋转成一个倒V树。 @@ -101,7 +103,7 @@ public: return ; } ``` - +## 1.2 二叉树与双向链表——中序遍历输出 ### 算法设计 diff --git a/算法/C类:问题类型算法/1.2 二维查找.md b/算法/C类:问题类型算法/1.2 二维数组查找.md similarity index 100% rename from 算法/C类:问题类型算法/1.2 二维查找.md rename to 算法/C类:问题类型算法/1.2 二维数组查找.md