Windows Configuration01 WSL2

Windows Configuration01 WSL2

WSL(Windows Subsystem Linux) 将 Linux 环境部署在 Windows 中,Linux 环境在补全了 Windows 开发上的不足之外(Bash 等),还有以下的几个特性极大的便利开发和日常使用,因此强烈推荐启用并安装。

  • win11 中 wsl2 已经支持相应主机的 cuda,便利了机器学习的开发;
  • 子系统中通过/mnt 挂载了 windows 的磁盘,可以通过子系统访问和管理 windows 环境;
  • windows 资源管理器可访问和管理子系统中的文件
  • 支持 windows 打开子系统中的 GUI 应用

无论是将 windows 和 linux 分别作为日常和开发的环境来隔离,还是两个协同去做开发和日常,都是一个比较不错的选择,下面就介绍一下如何安装和使用 WSL2。

  • 开始之前可以参考 windows terminal 安装一下这个官方的终端模拟器,在 windows 上的表现是比较优秀的
  • 如果是考虑在 windows 环境开发的话,也可以参考这个[windows],里面有我个人推荐的一些应用。

启用并安装 WSL2

安装和启用 WSL2 需要在 windows 的服务中勾选 Hyper-V 和 Windows Subsystem Linux 支持两个选项,具体操作如下:

  1. Win + S 搜索 “功能”,打开启用或关闭 windows 功能
  2. 启用对应功能,功能安装完毕后即可
    image.png
    image.png
  3. 安装 linux 发行版可以在 windows store 安装,也可以通过如下的命令进行安装:
1
2
3
4
5
6
7
# 列出对应的发行版
wsl -l -o
# 选择相应的发行版进行安装
wsl --install -d <Distribution Name>
# 如果当前的WSL是1版本,更新到2
wsl -l -v
wsl --set-default-version 2

Windows Configuration00 系统初始配置

Windows Configuration00 系统初始配置

@AikenHong 2020

本文介绍个人的 windows 开发环境搭建(包括一些环境安装、功能启用)以及一些使用的小 tips。

软件推荐

Windows 的账号同步功能善用,减少在环境迁移的时候对浏览器插件和 Vscode 插件的繁琐同步步骤。

同时对 Onedrive 和外接硬盘的应用可以很好的减轻备份的负担,在网络环境对 Onedrive 友好的时候还是推荐使用,在 Mac 和 Windows 上都有一个比较好的体验。

一些基础的软件

Software Type Free? & source
Powertorys system enhance y & github
Translucent beautify y & Microsoft Store
Snipaste system enhance y & offical site
Clash for windows proxy y & github
everything search-file y & offical site
Potplayer Player y & offical site
Twinkle Tray screen control y & offical site
7 zip system enhanc y & offical site
Zerotier NAT y & offical site
Nerd Font Font y & offical site
Wallpaper Engine beautify n & steam
MyDockerFinder beautify n & steam
IDM Download n & offical site

开发工具

Software Type Free? & source
Windows Terminal Terminal Simulator y & Microsoft Store
Powershell 7 Shell y & Github
VsCode Editor y & Offical Site
Visual Studio IDE y & Offical Site
Interllij IDEA IDE n & Offical Site
Git - -
Nodejs - -
Anaconda - -

文档编写

Software Type Free & Source
Obsidian Markdown Editor y & offical-site
Typora Markdown Editor n & offical-site
Picgo Image Upload y & offical-site
CopyTranslate Translate y & offical-site
Mathpix Snipping Tool Latex Formulate - & offical-site

Daily

Software Free & Source
Office n & offical-site
Tim y & offical-site
WeChat y & offical-site
OneDrive y & offical-site
Steam - & offical-site
Epic - & offical-site
yy y & offical-site
uu n & offical-site
网易云 y & offical-site

开发环境配置


Build Gitbook

Build Gitbook

Gitbook命令行工具,基于Markdown编写文档,后续基于Github发布该Blog

笔记的构建流程:

Chapter1 Install

安装Gitbook之前我们需要安装node.jsnpm的依赖,使用npm安装gitbook

  • 首先安装Install Nodejs,Npm

    Windows:Node.js (nodejs.org)

    Linux:

    1
    2
    3
    4
    5
    6
    # add & update apt source before install nodejs.
    curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
    sudo apt-get update

    # install nodejs after that.
    sudo apt-get install -y nodejs
  • 然后安装gitbook

    1
    2
    3
    4
    5
    npm install gitbook-cli -g 

    gitbook fetch beta # 安装历史版本
    gitbook ls-remote # 列举可以下载的版本

  • 检查Gitbook版本

    1
    gitbook -V

RL-DouZero

RL-DouZero

Desc: GAME, RL
Finished?: Yes
Tags: Paper
URL1: https://arxiv.org/abs/2106.06135
URL2: https://github.com/kwai/DouZero
URL3: https://github.com/datamllab/rlcard-showdown)

使用蒙特卡洛方法进行自我对弈不断更新预测模型的方法,这实际上也是普通人对于强化学习如何在self-play中实现自我更新的最基础的想法把:
自我对弈(记录动作序列)- 用最终的胜负(价值)更新网络。

算法的设计和思路

算法的目标是学习一个价值网路。网络的输入是当前状态和一个动作,输出是在当前状态做这个动作的期望收益(比如胜率)。简单来说,价值网络在每一步计算出哪种牌型赢的概率最大,然后选择最有可能赢的牌型。蒙特卡罗方法不断重复以下步骤来优化价值网络:

  • 用价值网络生成一场对局
  • 记录下该对局中所有的状态、动作和最后的收益(胜率)
  • 将每一对状态和动作作为网络输入,收益作为网络输出,用梯度下降对价值网络进行一次更新

其实,所谓的蒙特卡罗方法就是一种随机模拟,即通过不断的重复实验来估计真实价值。

如下图所示,斗零采用一个价值神经网络,其输入是状态和动作,输出是价值。首先,过去的出牌用 LSTM 神经网络进行编码。然后 LSTM 的输出以及其他的表征被送入了 6 层全连接网络,最后输出价值。


Leetcode 题型和框架代码总结
Pooling

Pooling

DownSampling:Pooling的全面调研

@Aiken 2021 笔记摘录:

深度神经网络中的池化方法:全面调研(1989-2020) - 知乎相同论文的简单中文Version

16页综述,共计67篇参考文献。网络千奇百怪,但基础元素却大致相同!本文全面调研了1989至2020年一些著名且有用的池化方法,并主要对20种池化方法进行了详细介绍(这些方法,你都知道么?) 注1:文末附【计算机视…

来自 https://zhuanlan.zhihu.com/p/341820742

原文:《Pooling Methods in Deep Neural Networks, a Review》

整合2

池化的根本目的(Motivation)

卷积神经网络是DNN的一种特殊类型,它由几个卷积层组成,每个卷积层后都有一个激活函数和一个池化层。

池化层是重要的层,它对来自上一层的特征图执行下采样,并生成具有简化分辨率的新feature maps 。该层极大地减小了输入的空间尺寸。 它有两个主要目的。 首先是减少参数或权重的数量,从而减少计算成本。 第二是控制网络的过拟合。

  • 池化可以增加网络对于平移(旋转,伸缩)的不变性,提升网络的泛化能力。
  • 增大感受野;
  • 降低优化难度和参数数目,

理想的池化方法应仅提取有用的信息,并丢弃无关的细节。

特征不变性、特征降维、在一定程度上防止过拟合,更方便优化


OW-openmix

OW-openmix

@Aiken 2021 究极万恶的撞车论文

Intro

Motivation :Tackle the problem of 发现无标注数据中与给定(已知)类别不相交的新类。

Related Research:

现有的方法通常1. 使用标记数据对模型进行预训练; 2. 无监督聚类在未标记的数据中识别新的类

作者认为label带来的essential knowledge在第二步中没有被充分学习利用到,这样模型就只能从第一步的现成知识中获益,而不能利用标记数据和未标记数据之间的潜在关系


Reward is Enough

Reward is Enough

Desc: RL
Finished?: Yes
Tags: Paper

通用人工智能,是否能通过强化学习的奖励机制就实现

实现AGI,强化学习就够了?Sutton、Silver师徒联手:奖励机制足够实现各种目标

对reward构建AGI的可行性的分析和探讨

这篇文章实际上没有给出一个很好的方案通过reward来实现各种AGI的设计,但是给出了在每一种场景下的AGI的reward设计的设想把。和对用reward进行设计的可行性分析。
同时分析了:感知、社交、语言、泛化、模仿,这几个方面

类似地,如果人工智能体的经验流足够丰富,那么单一目标(例如电池寿命或生存)可能隐含地需要实现同样广泛的子目标的能力,因此奖励最大化应该足以产生一种通用人工智能。

这不久回到了最基础的问题,没有这种长线以及大量数据交互以及全面场景的经验流,来支撑这样一个AGI的学习,所以这不也是在现阶段上纸上谈兵嘛?

对这篇论文我的总结是,我不推荐详细阅读,我觉得收益有限,太理想化,其实和强化学习本身的假设也没有太多新东西,我们可以假设强化学习能带来一个AGI,但是对应的约束和限制确实是有点多了。


RL-MobaAI

RL-MobaAI

Created by: Aiken H
Desc: GAME, RL
Finished?: Yes
Tags: Paper

《Master Complex Control in MOBA Games with Deep Reinforcement Learning》 论文阅读笔记

@Aiken H 2021.06

MOBA游戏的复杂度和状态空间都远比以前的围棋之类的运动更大,所以难度会更大一些

早一些的游戏ai使用的是(2015) Deep Q-Network 通过 supervised learning and self-play 结合的训练策略在围棋上击败了专业人类,而最近更多的使用了DRL(Deep Reinforcement Learning)的方法在近几年被进一步的应用。

Neural Network Architecture Include

Contributions

  • the encoding of Multi-modal inputs 多模态输入
  • the decoupling of inter-correlations in controls 控制内关联解码
  • exploration pruning mechanism 剪枝设置
  • Action mask for efficient exploration ❓效率
  • attack attention(for target selection) Attention机制做目标选择
  • LSTM for learning skill combos LSTM 机制做技能释放和链接
  • Optimize by multi-label proximal policy algorithm(improved PPO)
    • dual-clip PPO 帮助训练的收敛


RL Notebook 01

RL Notebook 01

Created by: Aiken H
Detail: survey
Finished?: No
Tags: Paper
URL1: https://www.cnblogs.com/pinard/category/1254674.html
URL2: https://github.com/ljpzzz/machinelearning
URL3: https://datawhalechina.github.io/easy-rl/#/

Chapter1 模型基础

强化学习(一)模型基础

强化学习是介于监督和无监督学习之间的,强化学习没有输出值,但是有reward: 同时这个reward是事后给出的,而不是及时回馈的。而无监督学习是只有数据特征,同时数据之间是独立的,没有前后依赖的关系。

https://images2018.cnblogs.com/blog/1042406/201807/1042406-20180729163058011-290427357.png

Theory理论基础