Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenDAS
nni
Commits
41d19a53
Unverified
Commit
41d19a53
authored
Feb 15, 2019
by
Chi Song
Committed by
GitHub
Feb 15, 2019
Browse files
Chinese Translation (#732)
parent
8896afa3
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
109 additions
and
45 deletions
+109
-45
zh_CN/README.Makefile.md
zh_CN/README.Makefile.md
+20
-20
zh_CN/README.md
zh_CN/README.md
+5
-5
zh_CN/docs/Builtin_Assessors.md
zh_CN/docs/Builtin_Assessors.md
+7
-5
zh_CN/docs/Builtin_Tuner.md
zh_CN/docs/Builtin_Tuner.md
+16
-14
zh_CN/docs/img/bar.png
zh_CN/docs/img/bar.png
+0
-0
zh_CN/src/sdk/pynni/nni/batch_tuner/README.md
zh_CN/src/sdk/pynni/nni/batch_tuner/README.md
+7
-0
zh_CN/src/sdk/pynni/nni/evolution_tuner/README.md
zh_CN/src/sdk/pynni/nni/evolution_tuner/README.md
+5
-0
zh_CN/src/sdk/pynni/nni/gridsearch_tuner/README.md
zh_CN/src/sdk/pynni/nni/gridsearch_tuner/README.md
+5
-0
zh_CN/src/sdk/pynni/nni/hyperopt_tuner/README.md
zh_CN/src/sdk/pynni/nni/hyperopt_tuner/README.md
+13
-0
zh_CN/src/sdk/pynni/nni/medianstop_assessor/README.md
zh_CN/src/sdk/pynni/nni/medianstop_assessor/README.md
+5
-0
zh_CN/src/sdk/pynni/nni/metis_tuner/README.md
zh_CN/src/sdk/pynni/nni/metis_tuner/README.md
+19
-0
zh_CN/src/sdk/pynni/nni/smac_tuner/README.md
zh_CN/src/sdk/pynni/nni/smac_tuner/README.md
+7
-1
No files found.
zh_CN/README.Makefile.md
View file @
41d19a53
# Makefile 文件和安装配置
NNI 使用 GNU 来生成和安装。
NNI 使用 GNU
Make
来生成和安装。
`Makefile`
提供标准的目标
`生成`
、
`安装`
和
`卸载`
, 以及不同设置的安装对象:
*
`easy-install`
: 针对非专家用户,自动
处理
所有内容;
*
`dev-easy-install`
: 针对专家用户,自动
处理
所有内容;
*
`easy-install`
: 针对非专家用户,自动
安装
所有内容;
*
`dev-easy-install`
: 针对专家用户,自动
安装
所有内容;
*
`install`
: 针对 NNI 普通用户,通过复制文件来安装 NNI;
*
`dev-install`
: 针对 NNI
贡献者
,通过创建
symlinks
而不是复制文件来安装 NNI;
*
`dev-install`
: 针对 NNI
开发人员
,通过创建
符号链接
而不是复制文件来安装 NNI;
*
`pip-install`
: 针对使用
`setup.py`
安装的情况;
下文会有更详细的介绍。
## 依赖项
NNI 依赖于 Node.js, Yarn, 和
pip
来生成,推荐安装 TypeScript。
NNI 依赖于 Node.js, Yarn, 和
PIP
来生成,推荐安装 TypeScript。
NNI 需要 Node.js 以及
运行所需要的所有库。 需要的
Node.js 库 (包括 TypeScript) 可以通过 Yarn 来安装,
需要的
Python 库可以通过 setuptools 或者 PIP 来安装。
运行
NNI 需要 Node.js 以及
依赖库。
Node.js
依赖
库 (包括 TypeScript) 可以通过 Yarn 来安装, Python
依赖
库可以通过 setuptools 或者 PIP 来安装。
NNI
*用户*
可以用
`make install-dependencies`
来安装 Node.js 和 Yarn。 Node.js 会被安装到 NNI 的安装目录,Yarn 会被安装到
`/tmp/nni-yarn`
。 安装过程需要 wget。
NNI
*
普通
用户*
可以用
`make install-dependencies`
来安装 Node.js 和 Yarn。 Node.js 会被安装到 NNI 的安装目录,Yarn 会被安装到
`/tmp/nni-yarn`
。 安装过程需要 wget。
NNI
*开发人员*
推荐手工安装 Node.js 和 Yarn。 可浏览相应的官方文档了解安装过程。
...
...
@@ -32,15 +32,15 @@ NNI *开发人员*推荐手工安装 Node.js 和 Yarn。 可浏览相应的官
NNI 项目主要由两个 Node.js 模块 (
`nni_manager`
,
`webui`
) 以及两个 Python 包 (
`nni`
,
`nnictl`
) 所组成。
默认情况下,Node.js 模块
可以
为所有用户安装在
`/usr/share/nni`
目录下,也可
为只安装在
当前用户
的
`~/.local/nni`
目录下。
默认情况下,Node.js 模块为所有用户安装在
`/usr/share/nni`
目录下,也可
以只为
当前用户
安装在
`~/.local/nni`
目录下。
Python 包使用 setuptools 安装,所以安装路径依赖于 Python 配置。 如果
为没有权限的用户
安装,并且没有虚拟环境的时候,要加上
`--user`
参数。
Python 包使用 setuptools 安装,所以安装路径依赖于 Python 配置。 如果
以非管理员身份
安装
,并且没有虚拟环境的时候,要加上
`--user`
参数。
此外,
`nnictl`
是一个 bash
脚本,会被安装在
`/usr/share/bash-completion/completions`
或
`~/.bash_completion.d`
目录下。
此外,
`nnictl`
提供一个自动完成
脚本,会被安装在
`/usr/share/bash-completion/completions`
或
`~/.bash_completion.d`
目录下。
在某些配置情况下,NNI 也会将 Node.js 安装到
`/usr/share/nni`
目录下。
以上所有目录都可
以
配置。 可参考下一章节。
以上所有目录都
是
可配置
的
。 可参考下一章节。
### 配置
...
...
@@ -59,19 +59,19 @@ Python 包使用 setuptools 安装,所以安装路径依赖于 Python 配置
|
`NODE`
| Node.js 命令 | 参考源代码 | 参考源代码 |
|
`YARN`
| Yarn 命令 | 参考源代码 | 参考源代码 |
注意,这些变量不仅会影响安装路径,也会影响生成的
`nnictl`
和
`nnimanager`
脚本。 如果复制文件的路径和运行时的不一样(例如,创建发行版本包时),需要手工编辑
`nnictl`
和
`nnimanager`
。
注意,这些变量不仅会影响安装路径,也会影响生成的
`nnictl`
脚本。 如果复制文件的路径和运行时的不一样(例如,创建发行版本包时),需要手工编辑
`nnictl`
和
`nnimanager`
。
### 目标
安装目标的流程如下:
| 目标 | 流程
|
| ------------------ | ------------------------------------------
------
|
|
`easy-install`
| 安装依赖项,生成,安装 NNI,并编辑
`~/.bashrc`
|
|
`dev-easy-install`
| 安装依赖项,生成,将 NNI 作为
symlinks
来安装,并编辑
`~/.bashrc`
|
|
`install`
| 安装 Python 包,Node.js 模块,NNI 脚本和样例
|
|
`dev-install`
| 将 Python 和 Node.js 模块作为
symlinks
安装,然后安装 scripts |
|
`pip-install`
| 安装依赖项,生成,安装 NNI,但不安装 Python 包
|
| 目标 | 流程 |
| ------------------ | ------------------------------------------ |
|
`easy-install`
| 安装依赖项,生成,安装 NNI,并编辑
`~/.bashrc`
|
|
`dev-easy-install`
| 安装依赖项,生成,将 NNI 作为
符号链接
来安装,并编辑
`~/.bashrc`
|
|
`install`
| 安装 Python 包,Node.js 模块,NNI 脚本和样例 |
|
`dev-install`
| 将 Python 和 Node.js 模块作为
符号链接
安装,然后安装 scripts |
|
`pip-install`
| 安装依赖项,生成,安装 NNI,但不安装 Python 包 |
## TODO
...
...
@@ -79,4 +79,4 @@ Python 包使用 setuptools 安装,所以安装路径依赖于 Python 配置
*
`test`
目标
*
`lint`
目标
*
每个目标的测试用例
*
评审变量
*
评审变量
\ No newline at end of file
zh_CN/README.md
View file @
41d19a53
<p
align=
"center"
>
<img
src=
"https://
microsoft.github.io/nni
/docs/img/nni_logo.png"
width=
"300"
/>
<img
src=
"https://
github.com/Microsoft/nni/blob/master
/docs/img/nni_logo.png"
width=
"300"
/>
</p>
* * *
...
...
@@ -13,7 +13,7 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)的工具包
### **NNI [v0.5.1](https://github.com/Microsoft/nni/releases) 已发布!**
<p
align=
"center"
>
<a
href=
"#nni-v05-has-been-released"
><img
src=
"https://
microsoft.github.io/nni
/docs/img/overview.svg"
/></a>
<a
href=
"#nni-v05-has-been-released"
><img
src=
"https://
github.com/Microsoft/nni/blob/master
/docs/img/overview.svg"
/></a>
</p>
<table>
...
...
@@ -21,15 +21,15 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)的工具包
<tr
align=
"center"
valign=
"bottom"
>
<td>
<b>
支持的框架
</b>
<img
src=
"https://
user-images.githubusercontent.com/44491713/51381727-e3d0f780-1b4f-11e9-96ab-d26b9198ba65
.png"
/>
<img
src=
"https://
github.com/Microsoft/nni/blob/master/docs/img/bar
.png"
/>
</td>
<td>
<b>
调优算法
</b>
<img
src=
"https://
user-images.githubusercontent.com/44491713/51381727-e3d0f780-1b4f-11e9-96ab-d26b9198ba65
.png"
/>
<img
src=
"https://
github.com/Microsoft/nni/blob/master/docs/img/bar
.png"
/>
</td>
<td>
<b>
训练服务
</b>
<img
src=
"https://
user-images.githubusercontent.com/44491713/51381727-e3d0f780-1b4f-11e9-96ab-d26b9198ba65
.png"
/>
<img
src=
"https://
github.com/Microsoft/nni/blob/master/docs/img/bar
.png"
/>
</td>
</tr>
<tr/>
...
...
zh_CN/docs/Builtin_Assessors.md
View file @
41d19a53
...
...
@@ -2,10 +2,12 @@
NNI 提供了先进的调优算法,使用上也很简单。 下面是内置 Assessor 的介绍:
| Assessor | 算法简介 |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
**Medianstop**
[
(用法)
](
#MedianStop
)
| Medianstop 是一种简单的提前终止策略,可参考
[
论文
](
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/46180.pdf
)
。 如果 Trial X 的在步骤 S 的最好目标值比所有已完成 Trial 的步骤 S 的中位数值明显要低,就会停止运行 Trial X。 |
|
[
Curvefitting
](
../src/sdk/pynni/nni/curvefitting_assessor/README.md
)
[
(用法)
]
(#Curvefitting) | Curve Fitting Assessor 是一个 LPA (learning, predicting, assessing,即学习、预测、评估) 的算法。 如果预测的 Trial X 在 step S 比性能最好的 Trial要差,就会提前终止它。 此算法中采用了 12 种曲线来拟合精度。 |
注意:点击
**Assessor 的名称**
可跳转到算法的详细描述,点击
**用法**
可看到 Assessor 的安装要求、建议场景和使用样例等等。
| Assessor | 算法简介 |
| ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
[
Medianstop
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/medianstop_assessor/README.md
)
[
(用法)
]
(#MedianStop) | Medianstop 是一个简单的提前终止算法。 如果 Trial X 的在步骤 S 的最好目标值比所有已完成 Trial 的步骤 S 的中位数值明显要低,就会停止运行 Trial X。
[
参考论文
](
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/46180.pdf
)
|
|
[
Curvefitting
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/curvefitting_assessor/README.md
)
[
(用法)
]
(#Curvefitting) | Curve Fitting Assessor 是一个 LPA (learning, predicting, assessing,即学习、预测、评估) 的算法。 如果预测的 Trial X 在 step S 比性能最好的 Trial要差,就会提前终止它。 此算法中采用了 12 种曲线来拟合精度曲线。
[
参考论文
](
http://aad.informatik.uni-freiburg.de/papers/15-IJCAI-Extrapolation_of_Learning_Curves.pdf
)
|
## 用法
...
...
@@ -49,7 +51,7 @@ assessor:
**建议场景**
适用于各种性能曲线,可用到各种场景中来加速优化过程。 更好的是,它能
够
处理并评估性能类似的曲线。
适用于各种性能曲线,可用到各种场景中来加速优化过程。 更好的
地方
是,它能处理并评估性能类似的曲线。
**参数**
...
...
zh_CN/docs/Builtin_Tuner.md
View file @
41d19a53
...
...
@@ -2,18 +2,20 @@
NNI 提供了先进的调优算法,使用上也很简单。 下面是内置 Tuner 的简单介绍:
| Tuner | 算法简介 |
| ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
**TPE**
[
(用法)
](
#TPE
)
| Tree-structured Parzen Estimator (TPE) 是一种 sequential model-based optimization(SMBO,即基于序列模型优化)的方法。 SMBO 方法根据历史指标数据来按顺序构造模型,来估算超参的性能,随后基于此模型来选择新的超参。 |
|
**Random Search**
[
(用法)
](
#Random
)
| 在超参优化时,随机搜索算法展示了其惊人的简单和效果。 建议当不清楚超参的先验分布时,采用随机搜索作为基准。 |
|
**Anneal**
[
(用法)
](
#Anneal
)
| 这种简单的退火算法从先前的采样开始,会越来越靠近发现的最佳点取样。 此算法是随机搜索的简单变体,利用了反应曲面的平滑性。 退火率不是自适应的。 |
|
**Naive Evolution**
[
(用法)
](
#Evolution
)
| 朴素进化算法来自于大规模图像分类进化。 它会基于搜索空间随机生成一个种群。 在每一代中,会选择较好的结果,并对其下一代进行一些变异(例如,改动一个超参,增加或减少一层)。 进化算法需要很多次 Trial 才能有效,但它也非常简单,也很容易扩展新功能。 |
|
**SMAC**
[
(用法)
](
#SMAC
)
| SMAC 基于 Sequential Model-Based Optimization (SMBO,即序列的基于模型优化方法)。 它会利用使用过的结果好的模型(高斯随机过程模型),并将随机森林引入到 SMBO 中,来处理分类参数。 SMAC 算法包装了 Github 的 SMAC3。 注意:SMAC 需要通过
`nnictl package`
命令来安装。 |
|
**Batch tuner**
[
(用法)
](
#Batch
)
| Batch Tuner 能让用户简单的提供几组配置(如,超参选项的组合)。 当所有配置都执行完后,Experiment 即结束。 Batch Tuner 仅支持 choice 类型。 |
|
**Grid Search**
[
(用法)
](
#GridSearch
)
| 网格搜索会穷举定义在搜索空间文件中的所有超参组合。 网格搜索可以使用的类型有 choice, quniform, qloguniform。 quniform 和 qloguniform 中的数值 q 具有特别的含义(不同于搜索空间文档中的说明)。 它表示了在最高值与最低值之间采样的值的数量。 |
|
[
Hyperband
](
https://github.com/Microsoft/nni/tree/master/src/sdk/pynni/nni/hyperband_advisor
)
[
(用法)
]
(#Hyperband) | Hyperband 试图用有限的资源来探索尽可能多的组合,并发现最好的结果。 它的基本思路是生成大量的配置,并运行少量的步骤来找到有可能好的配置,然后继续训练找到其中更好的配置。 |
|
[
Network Morphism
](
../src/sdk/pynni/nni/networkmorphism_tuner/README.md
)
[
(用法)
]
(#NetworkMorphism) | Network Morphism 提供了深度学习模型的自动架构搜索功能。 每个子网络都继承于父网络的知识和形态,并变换网络的不同形态,包括深度,宽度,跨层连接(skip-connection)。 然后使用历史的架构和指标,来估计子网络的值。 最后会选择最有希望的模型进行训练。 |
|
**Metis Tuner**
[
(用法)
](
#MetisTuner
)
| 大多数调参工具仅仅预测最优配置,而 Metis 的优势在于有两个输出:(a) 最优配置的当前预测结果, 以及 (b) 下一次 Trial 的建议。 它不进行随机取样。 大多数工具假设训练集没有噪声数据,但 Metis 会知道是否需要对某个超参重新采样。 |
注意:点击
**Tuner 的名称**
可跳转到算法的详细描述,点击
**用法**
可看到 Tuner 的安装要求、建议场景和使用样例等等。
| Tuner | 算法简介 |
| ------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
[
TPE
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/hyperopt_tuner/README.md
)
[
(用法)
]
(#TPE) | Tree-structured Parzen Estimator (TPE) 是一种 sequential model-based optimization(SMBO,即基于序列模型优化)的方法。 SMBO 方法根据历史指标数据来按顺序构造模型,来估算超参的性能,随后基于此模型来选择新的超参。
[
参考论文
](
https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf
)
|
|
[
Random Search
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/hyperopt_tuner/README.md
)
[
(用法)
]
(#Random) | 在超参优化时,随机搜索算法展示了其惊人的简单和效果。 建议当不清楚超参的先验分布时,采用随机搜索作为基准。
[
参考论文
](
http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf
)
|
|
[
Anneal
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/hyperopt_tuner/README.md
)
[
(用法)
]
(#Anneal) | 这种简单的退火算法从先前的采样开始,会越来越靠近发现的最佳点取样。 此算法是随机搜索的简单变体,利用了反应曲面的平滑性。 退火率不是自适应的。 |
|
[
Naive Evolution
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/evolution_tuner/README.md
)
[
(Usage)
]
(#Evolution) | 朴素进化算法来自于大规模图像分类进化。 它会基于搜索空间随机生成一个种群。 在每一代中,会选择较好的结果,并对其下一代进行一些变异(例如,改动一个超参,增加或减少一层)。 进化算法需要很多次 Trial 才能有效,但它也非常简单,也很容易扩展新功能。
[
参考论文
](
https://arxiv.org/pdf/1703.01041.pdf
)
|
|
[
SMAC
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/smac_tuner/README.md
)
[
(用法)
]
(#SMAC) | SMAC 基于 Sequential Model-Based Optimization (SMBO,即序列的基于模型优化方法)。 它会利用使用过的结果好的模型(高斯随机过程模型),并将随机森林引入到 SMBO 中,来处理分类参数。 SMAC 算法包装了 Github 的 SMAC3。 注意:SMAC 需要通过
`nnictl package`
命令来安装。
[
参考论文,
](
https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf
)
[
Github 代码库
]
(https://github.com/automl/SMAC3) |
|
[
Batch tuner
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/batch_tuner/README.md
)
[
(用法)
]
(#Batch) | Batch Tuner 能让用户简单的提供几组配置(如,超参选项的组合)。 当所有配置都执行完后,Experiment 即结束。 Batch Tuner 仅支持 choice 类型。 |
|
[
Grid Search
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/gridsearch_tuner/README.md
)
[
(用法)
]
(#GridSearch) | 网格搜索会穷举定义在搜索空间文件中的所有超参组合。 网格搜索可以使用的类型有 choice, quniform, qloguniform。 quniform 和 qloguniform 中的数值 q 具有特别的含义(不同于搜索空间文档中的说明)。 它表示了在最高值与最低值之间采样的值的数量。 |
|
[
Hyperband
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/hyperband_advisor/README.md
)
[
(用法)
]
(#Hyperband) | Hyperband 试图用有限的资源来探索尽可能多的组合,并发现最好的结果。 它的基本思路是生成大量的配置,并运行少量的步骤来找到有可能好的配置,然后继续训练找到其中更好的配置。
[
参考论文
](
https://arxiv.org/pdf/1603.06560.pdf
)
|
|
[
Network Morphism
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/networkmorphism_tuner/README.md
)
[
(用法)
]
(#NetworkMorphism) | Network Morphism 提供了深度学习模型的自动架构搜索功能。 每个子网络都继承于父网络的知识和形态,并变换网络的不同形态,包括深度,宽度,跨层连接(skip-connection)。 然后使用历史的架构和指标,来估计子网络的值。 最后会选择最有希望的模型进行训练。
[
参考论文
](
https://arxiv.org/abs/1806.10282
)
|
|
[
Metis Tuner
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/metis_tuner/README.md
)
[
(用法)
]
(#MetisTuner) | 大多数调参工具仅仅预测最优配置,而 Metis 的优势在于有两个输出:(a) 最优配置的当前预测结果, 以及 (b) 下一次 Trial 的建议。 它不进行随机取样。 大多数工具假设训练集没有噪声数据,但 Metis 会知道是否需要对某个超参重新采样。
[
参考论文
](
https://www.microsoft.com/en-us/research/publication/metis-robustly-tuning-tail-latencies-cloud-systems/
)
|
<br
/>
...
...
@@ -109,7 +111,7 @@ tuner:
**建议场景**
此算法对计算资源的需求相对较高。 需要非常大的初始种群,以免落入局部最优中。 如果 Trial 时间很短,或者
利
用了 Assessor,就非常适合此算法。 如果 Trial 代码支持权重迁移,即每次 Trial 会从上一轮继承已经收敛的权重,建议使用此算法。 这会大大提高训练速度。
此算法对计算资源的需求相对较高。 需要非常大的初始种群,以免落入局部最优中。 如果 Trial 时间很短,或者
使
用了 Assessor,就非常适合此算法。 如果 Trial 代码支持权重迁移,即每次 Trial 会从上一轮继承已经收敛的权重,建议使用此算法。 这会大大提高训练速度。
**参数**
...
...
@@ -169,7 +171,7 @@ tuner:
**建议场景**
如果 Experiment 配置已确定,可通过
Batch Tuner
将它们罗列到搜索空间中运行即可。
如果 Experiment 配置已确定,可通过
`choice`
将它们罗列到搜索空间
文件
中运行即可。
**使用样例:**
...
...
zh_CN/docs/img/bar.png
0 → 100644
View file @
41d19a53
517 Bytes
zh_CN/src/sdk/pynni/nni/batch_tuner/README.md
0 → 100644
View file @
41d19a53
# Batch Tuner
## Batch Tuner(批处理调参器)
Batch Tuner 能让用户简单的提供几组配置(如,超参选项的组合)。 当所有配置都执行完后,Experiment 即结束。 Batch Tuner 仅支持
[
搜索空间
](
../../../../../docs/SearchSpaceSpec.md
)
中的 choice。
建议场景:如果 Experiment 配置已确定,可通过 choice 将它们罗列到搜索空间文件中运行即可。
\ No newline at end of file
zh_CN/src/sdk/pynni/nni/evolution_tuner/README.md
0 → 100644
View file @
41d19a53
# Naive Evolution Tuner
## Naive Evolution(进化算法)
进化算法来自于
[
Large-Scale Evolution of Image Classifiers
](
https://arxiv.org/pdf/1703.01041.pdf
)
。 它会基于搜索空间随机生成一个种群。 在每一代中,会选择较好的结果,并对其下一代进行一些变异(例如,改动一个超参,增加或减少一层)。 进化算法需要很多次 Trial 才能有效,但它也非常简单,也很容易扩展新功能。
\ No newline at end of file
zh_CN/src/sdk/pynni/nni/gridsearch_tuner/README.md
0 → 100644
View file @
41d19a53
# Grid Search
## Grid Search(遍历搜索)
Grid Search 会穷举定义在搜索空间文件中的所有超参组合。 注意,搜索空间仅支持
`choice`
,
`quniform`
,
`qloguniform`
。
`quniform`
和
`qloguniform`
中的
**
数字
`q`
有不同的含义(与
[
搜索空间
](
../../../../../docs/SearchSpaceSpec.md
)
说明不同)。 这里的意义是在
`low`
和
`high`
之间均匀取值的数量。
</p>
\ No newline at end of file
zh_CN/src/sdk/pynni/nni/hyperopt_tuner/README.md
0 → 100644
View file @
41d19a53
# TPE, Random Search, Anneal Tuners
## TPE
Tree-structured Parzen Estimator (TPE) 是一种 sequential model-based optimization(SMBO,即基于序列模型优化)的方法。 SMBO 方法根据历史指标数据来按顺序构造模型,来估算超参的性能,随后基于此模型来选择新的超参。 TPE 方法对 P(x|y) 和 P(y) 建模,其中 x 表示超参,y 表示相关的评估指标。 P(x|y) 通过变换超参的生成过程来建模,用非参数密度(non-parametric densities)代替配置的先验分布。 细节可参考
[
Algorithms for Hyper-Parameter Optimization
](
https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf
)
。
## Random Search(随机搜索)
[
Random Search for Hyper-Parameter Optimization
](
http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf
)
中介绍了随机搜索惊人的简单和效果。 建议当不清楚超参的先验分布时,采用随机搜索作为基准。
## Anneal(退火算法)
这种简单的退火算法从先前的采样开始,会越来越靠近发现的最佳点取样。 此算法是随机搜索的简单变体,利用了响应面的平滑性。 退火率不是自适应的。
\ No newline at end of file
zh_CN/src/sdk/pynni/nni/medianstop_assessor/README.md
0 → 100644
View file @
41d19a53
# Medianstop Assessor
## Median Stop
Medianstop 是一种简单的提前终止 Trial 的策略,可参考
[
论文
](
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/46180.pdf
)
。 如果 Trial X 的在步骤 S 的最好目标值比所有已完成 Trial 的步骤 S 的中位数值明显要低,这个 Trial 就会被提前停止。
\ No newline at end of file
zh_CN/src/sdk/pynni/nni/metis_tuner/README.md
0 → 100644
View file @
41d19a53
# Metis Tuner
## Metis Tuner
大多数调参工具仅仅预测最优配置,而
[
Metis
](
https://www.microsoft.com/en-us/research/publication/metis-robustly-tuning-tail-latencies-cloud-systems/
)
的优势在于有两个输出:(a) 最优配置的当前预测结果, 以及 (b) 下一次 Trial 的建议。 不再需要随机猜测!
大多数工具假设训练集没有噪声数据,但 Metis 会知道是否需要对某个超参重新采样。
大多数工具都有着重于在已有结果上继续发展的问题,而 Metis 的搜索策略可以在探索,发展和重新采样(可选)中进行平衡。
Metis 属于基于序列的贝叶斯优化 (SMBO) 的类别,它也基于贝叶斯优化框架。 为了对超参-性能空间建模,Metis 同时使用了高斯过程(Gaussian Process)和高斯混合模型(GMM)。 由于每次 Trial 都可能有很高的时间成本,Metis 大量使用了已有模型来进行推理计算。 在每次迭代中,Metis 执行两个任务:
在高斯过程空间中找到全局最优点。 这一点表示了最佳配置。
它会标识出下一个超参的候选项。 这是通过对隐含信息的探索、挖掘和重采样来实现的。
注意,搜索空间仅支持
`choice`
,
`quniform`
,
`uniform`
和
`randint`
。
更多详情,参考论文:https://www.microsoft.com/en-us/research/publication/metis-robustly-tuning-tail-latencies-cloud-systems/
\ No newline at end of file
zh_CN/src/sdk/pynni/nni/smac_tuner/README.md
View file @
41d19a53
# 集成文档:NNI 上使用 SMAC
\ No newline at end of file
# SMAC Tuner
## SMAC
[
SMAC
](
https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf
)
基于 Sequential Model-Based Optimization (SMBO). 它会利用使用过的结果好的模型(高斯随机过程模型),并将随机森林引入到 SMBO 中,来处理分类参数。 NNI 的 SMAC 通过包装
[
SMAC3
](
https://github.com/automl/SMAC3
)
来支持。
NNI 中的 SMAC 只支持部分类型的
[
搜索空间
](
../../../../../docs/SearchSpaceSpec.md
)
,包括
`choice`
,
`randint`
,
`uniform`
,
`loguniform`
,
`quniform(q=1)`
。
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment