Commit cc961dee authored by Chi Song's avatar Chi Song Committed by xuehui
Browse files

Chinese translation for v0.8 (#1111)

* New translations RELEASE.md (Chinese Simplified)

* New translations Installation.md (Chinese Simplified)

* New translations WindowsLocalMode.md (Chinese Simplified)

* New translations Builtin_Tuner.md (Chinese Simplified)

* New translations Installation.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations Builtin_Tuner.md (Chinese Simplified)

* New translations QuickStart.md (Chinese Simplified)

* New translations QuickStart.md (Chinese Simplified)

* New translations RELEASE.md (Chinese Simplified)

* New translations RELEASE.md (Chinese Simplified)

* New translations RELEASE.md (Chinese Simplified)

* New translations RELEASE.md (Chinese Simplified)

* New translations WindowsLocalMode.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations WindowsLocalMode.md (Chinese Simplified)

* New translations WindowsLocalMode.md (Chinese Simplified)

* New translations WindowsLocalMode.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations WindowsLocalMode.md (Chinese Simplified)

* New translations WindowsLocalMode.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations NNICTLDOC.md (Chinese Simplified)

* New translations QuickStart.md (Chinese Simplified)

* New translations multiPhase.md (Chinese Simplified)

* New translations RELEASE.md (Chinese Simplified)

* New translations WindowsLocalMode.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations QuickStart.md (Chinese Simplified)

* New translations RELEASE.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations WindowsLocalMode.md (Chinese Simplified)

* New translations multiPhase.md (Chinese Simplified)

* New translations QuickStart.md (Chinese Simplified)

* New translations NNICTLDOC.md (Chinese Simplified)

* New translations FAQ.md (Chinese Simplified)

* New translations QuickStart.md (Chinese Simplified)

* New translations WindowsLocalMode.md (Chinese Simplified)

* New translations FAQ.md (Chinese Simplified)

* New translations QuickStart.md (Chinese Simplified)

* New translations QuickStart.md (Chinese Simplified)

* New translations WindowsLocalMode.md (Chinese Simplified)

* New translations WindowsLocalMode.md (Chinese Simplified)

* New translations Builtin_Tuner.md (Chinese Simplified)

* New translations NASComparison.md (Chinese Simplified)

* New translations index.rst (Chinese Simplified)

* New translations index.rst (Chinese Simplified)

* New translations HPOComparison.md (Chinese Simplified)

* New translations Builtin_Tuner.md (Chinese Simplified)

* New translations NASComparison.md (Chinese Simplified)

* New translations index.rst (Chinese Simplified)

* New translations HPOComparison.md (Chinese Simplified)

* New translations HPOComparison.md (Chinese Simplified)

* New translations HPOComparison.md (Chinese Simplified)

* New translations WindowsLocalMode.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations Installation.md (Chinese Simplified)

* New translations Installation.md (Chinese Simplified)

* New translations Installation.md (Chinese Simplified)

* New translations index.rst (Chinese Simplified)

* New translations HowToImplementTrainingService.md (Chinese Simplified)

* New translations LocalMode.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations tuners.rst (Chinese Simplified)

* New translations AnnotationSpec.md (Chinese Simplified)

* New translations FAQ.md (Chinese Simplified)

* New translations Overview.md (Chinese Simplified)

* New translations KubeflowMode.md (Chinese Simplified)

* New translations Installation.md (Chinese Simplified)

* New translations HowToDebug.md (Chinese Simplified)

* New translations FrameworkControllerMode.md (Chinese Simplified)

* New translations ExperimentConfig.md (Chinese Simplified)

* New translations QuickStart.md (Chinese Simplified)

* New translations training_services.rst (Chinese Simplified)

* New translations index.rst (Chinese Simplified)

* New translations assessors.rst (Chinese Simplified)

* New translations advanced.rst (Chinese Simplified)

* New translations Trials.md (Chinese Simplified)

* New translations RemoteMachineMode.md (Chinese Simplified)

* New translations AdvancedNas.md (Chinese Simplified)

* New translations SmacTuner.md (Chinese Simplified)

* New translations BohbAdvisor.md (Chinese Simplified)

* New translations HpoComparison.md (Chinese Simplified)

* New translations NasComparison.md (Chinese Simplified)

* New translations NetworkmorphismTuner.md (Chinese Simplified)

* New translations builtin_tuner.rst (Chinese Simplified)

* New translations MetisTuner.md (Chinese Simplified)

* New translations MedianstopAssessor.md (Chinese Simplified)

* New translations HyperoptTuner.md (Chinese Simplified)

* New translations HyperbandAdvisor.md (Chinese Simplified)

* New translations GridsearchTuner.md (Chinese Simplified)

* New translations EvolutionTuner.md (Chinese Simplified)

* New translations CurvefittingAssessor.md (Chinese Simplified)

* New translations builtin_assessor.rst (Chinese Simplified)

* New translations examples.rst (Chinese Simplified)

* New translations BatchTuner.md (Chinese Simplified)

* New translations Nnictl.md (Chinese Simplified)

* New translations CustomizeTuner.md (Chinese Simplified)

* New translations CustomizeAssessor.md (Chinese Simplified)

* New translations CustomizeAdvisor.md (Chinese Simplified)

* New translations contribution.rst (Chinese Simplified)

* New translations Contributing.md (Chinese Simplified)

* New translations BuiltinTuner.md (Chinese Simplified)

* New translations BuiltinAssessors.md (Chinese Simplified)

* New translations PaiMode.md (Chinese Simplified)

* New translations Release.md (Chinese Simplified)

* New translations Cifar10Examples.md (Chinese Simplified)

* New translations SklearnExamples.md (Chinese Simplified)

* New translations MultiPhase.md (Chinese Simplified)

* New translations MnistExamples.md (Chinese Simplified)

* New translations GbdtExample.md (Chinese Simplified)

* New translations reference.rst (Chinese Simplified)

* New translations tutorials.rst (Chinese Simplified)

* New translations SetupNniDeveloperEnvironment.md (Chinese Simplified)

* New translations SearchSpaceSpec.md (Chinese Simplified)

* New translations SquadEvolutionExamples.md (Chinese Simplified)

* New translations index.rst (Chinese Simplified)

* New translations RecommendersSvd.md (Chinese Simplified)

* New translations automl_practice_sharing.rst (Chinese Simplified)

* New translations community_sharings.rst (Chinese Simplified)

* New translations nni_practice_sharing.rst (Chinese Simplified)

* New translations advanced.rst (Chinese Simplified)

* New translations community_sharings.rst (Chinese Simplified)

* New translations automl_practice_sharing.rst (Chinese Simplified)

* New translations RecommendersSvd.md (Chinese Simplified)

* New translations examples.rst (Chinese Simplified)

* New translations builtin_tuner.rst (Chinese Simplified)

* New translations builtin_assessor.rst (Chinese Simplified)

* New translations WindowsLocalMode.md (Chinese Simplified)

* New translations BohbAdvisor.md (Chinese Simplified)

* New translations HowToImplementTrainingService.md (Chinese Simplified)

* New translations LocalMode.md (Chinese Simplified)

* New translations tuners.rst (Chinese Simplified)

* New translations index.rst (Chinese Simplified)

* New translations assessors.rst (Chinese Simplified)

* New translations Trials.md (Chinese Simplified)

* New translations Contributing.md (Chinese Simplified)

* New translations Installation.md (Chinese Simplified)

* New translations contribution.rst (Chinese Simplified)

* New translations CustomizeTuner.md (Chinese Simplified)

* New translations ExperimentConfig.md (Chinese Simplified)

* New translations FAQ.md (Chinese Simplified)

* New translations FrameworkControllerMode.md (Chinese Simplified)

* New translations HowToDebug.md (Chinese Simplified)

* New translations KubeflowMode.md (Chinese Simplified)

* New translations SetupNniDeveloperEnvironment.md (Chinese Simplified)

* New translations QuickStart.md (Chinese Simplified)

* New translations Release.md (Chinese Simplified)

* New translations reference.rst (Chinese Simplified)

* New translations RemoteMachineMode.md (Chinese Simplified)

* New translations SearchSpaceSpec.md (Chinese Simplified)

* New translations nni_practice_sharing.rst (Chinese Simplified)

* New translations WindowsLocalMode.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations Release.md (Chinese Simplified)

* New translations HpoComparison.md (Chinese Simplified)

* New translations NasComparison.md (Chinese Simplified)

* New translations HpoComparison.md (Chinese Simplified)

* New translations NasComparison.md (Chinese Simplified)

* New translations NasComparison.md (Chinese Simplified)

* update names

* Delete AdvancedNAS.md

* Delete SetupNNIDeveloperEnvironment.md

* Delete bohbAdvisor.md

* Delete CONTRIBUTING.md

* Delete RELEASE.md

* Delete Contribution.rst

* Delete Examples.rst

* Delete Reference.rst

* Revert "update names"

This reverts commit 72489e34ce8f4edad776f68bb785d33502e162a1.

* remove renamed files

* New translations MnistExamples.md (Chinese Simplified)

* New translations LocalMode.md (Chinese Simplified)

* New translations BatchTuner.md (Chinese Simplified)

* New translations FAQ.md (Chinese Simplified)

* New translations HpoComparison.md (Chinese Simplified)

* New translations LocalMode.md (Chinese Simplified)

* New translations Release.md (Chinese Simplified)

* New translations FAQ.md (Chinese Simplified)

* New translations advanced.rst (Chinese Simplified)

* Delete batchTuner.md

* New translations SearchSpaceSpec.md (Chinese Simplified)

* New translations FAQ.md (Chinese Simplified)

* New translations SearchSpaceSpec.md (Chinese Simplified)

* New translations RecommendersSvd.md (Chinese Simplified)

* New translations RecommendersSvd.md (Chinese Simplified)

* New translations RecommendersSvd.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations BuiltinTuner.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations community_sharings.rst (Chinese Simplified)

* New translations nni_practice_sharing.rst (Chinese Simplified)

* New translations BuiltinTuner.md (Chinese Simplified)

* New translations community_sharings.rst (Chinese Simplified)

* New translations BuiltinTuner.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations FAQ.md (Chinese Simplified)

* New translations Installation.md (Chinese Simplified)

* New translations QuickStart.md (Chinese Simplified)

* New translations RemoteMachineMode.md (Chinese Simplified)

* New translations NniOnWindows.md (Chinese Simplified)

* New translations WebUI.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations FAQ.md (Chinese Simplified)

* New translations Installation.md (Chinese Simplified)

* New translations QuickStart.md (Chinese Simplified)

* New translations README.md (Chinese Simplified)

* New translations NniOnWindows.md (Chinese Simplified)

* New translations QuickStart.md (Chinese Simplified)

* New translations WebUI.md (Chinese Simplified)

* New translations RemoteMachineMode.md (Chinese Simplified)

* remove useless files
parent 45daf3e8
...@@ -109,7 +109,7 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)的工具包 ...@@ -109,7 +109,7 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)的工具包
**通过 pip 命令安装** **通过 pip 命令安装**
* 当前支持 Linux,MacOS 和 Windows(本机模式),在 Ubuntu 16.04 或更高版本,MacOS 10.14.1 以及 Windows 10.1809 上进行了测试。 在 `python >= 3.5` 的环境中,只需要运行 `pip install` 即可完成安装。 * 当前支持 Linux,MacOS 和 Windows(本机,远程,OpenPAI 模式),在 Ubuntu 16.04 或更高版本,MacOS 10.14.1 以及 Windows 10.1809 上进行了测试。 在 `python >= 3.5` 的环境中,只需要运行 `pip install` 即可完成安装。
Linux 和 macOS Linux 和 macOS
...@@ -126,12 +126,12 @@ python -m pip install --upgrade nni ...@@ -126,12 +126,12 @@ python -m pip install --upgrade nni
注意: 注意:
* 如果需要将 NNI 安装到自己的 home 目录中,可使用 `--user`,这样也不需要任何特殊权限。 * 如果需要将 NNI 安装到自己的 home 目录中,可使用 `--user`,这样也不需要任何特殊权限。
* 当前 NNI 在 Windows 上仅支持本机模式。 强烈推荐使用 Anaconda 或 Miniconda 在 Windows 上安装 NNI。 * 目前,Windows 上的 NNI 支持本机,远程和 OpenPAI 模式。 强烈推荐使用 Anaconda 或 Miniconda 在 Windows 上安装 NNI。
* 如果遇到如`Segmentation fault` 这样的任何错误请参考[常见问题](docs/zh_CN/FAQ.md) * 如果遇到如`Segmentation fault` 这样的任何错误请参考[常见问题](docs/zh_CN/FAQ.md)
**通过源代码安装** **通过源代码安装**
* 当前支持 Linux(Ubuntu 16.04 或更高版本),MacOS(10.14.1)以及 Windows 10(1809 版)下的本机模式 * 当前支持 Linux(Ubuntu 16.04 或更高版本),MacOS(10.14.1)以及 Windows 10(1809 版)。
Linux 和 macOS Linux 和 macOS
...@@ -155,7 +155,7 @@ Windows ...@@ -155,7 +155,7 @@ Windows
参考[安装 NNI](docs/zh_CN/Installation.md) 了解系统需求。 参考[安装 NNI](docs/zh_CN/Installation.md) 了解系统需求。
参考 [NNI Windows 本机模式](docs/zh_CN/WindowsLocalMode.md),了解更多信息 Windows 上参考 [Windows 上使用 NNI](docs/zh_CN/NniOnWindows.md)
**验证安装** **验证安装**
......
...@@ -45,9 +45,9 @@ nnictl 在执行时,使用 tmp 目录作为临时目录来复制 codeDir 下 ...@@ -45,9 +45,9 @@ nnictl 在执行时,使用 tmp 目录作为临时目录来复制 codeDir 下
* 如果使用服务器 IP 后还是无法看到 Web 界面,可检查此服务器上是否有防火墙或需要代理。 或使用此运行 NNI Experiment 的服务器上的浏览器来查看 Web 界面。 * 如果使用服务器 IP 后还是无法看到 Web 界面,可检查此服务器上是否有防火墙或需要代理。 或使用此运行 NNI Experiment 的服务器上的浏览器来查看 Web 界面。
* 另一个可能的原因是 Experiment 启动失败了,NNI 无法读取 Experiment 的信息。 可在如下目录中查看 NNIManager 的日志: ~/nni/experiment/[your_experiment_id] /log/nnimanager.log * 另一个可能的原因是 Experiment 启动失败了,NNI 无法读取 Experiment 的信息。 可在如下目录中查看 NNIManager 的日志: ~/nni/experiment/[your_experiment_id] /log/nnimanager.log
### Windows 本机模式 ### NNI 在 Windows 上的问题
参考 [NNI Windows 本机模式](WindowsLocalMode.md) 参考 [Windows 上使用 NNI](NniOnWindows.md)
### 帮助改进 ### 帮助改进
......
# 安装 NNI # 安装 NNI
当前支持在 Linux,Mac 和 Windows(本机模式)下安装。 当前支持在 Linux,Mac 和 Windows(本机,远程和 OpenPAI 模式)下安装。
## **在 Linux 和 Mac 下安装** ## **在 Linux 和 Mac 下安装**
......
# Windows 本地模式(测试中 # Windows 上的 NNI(实验阶段的功能
当前 Windows 下仅支持本机模式。 推荐 Windows 10 的 1809 版,其经过了测试。 当前 Windows 支持本机、远程和 OpenPAI 模式。 推荐 Windows 10 的 1809 版,其经过了测试。
## **在 Windows 上安装** ## **在 Windows 上安装**
...@@ -25,15 +25,15 @@ Set-ExecutionPolicy -ExecutionPolicy Unrestricted ...@@ -25,15 +25,15 @@ Set-ExecutionPolicy -ExecutionPolicy Unrestricted
先决条件: `python >=3.5`, `git`, `PowerShell` 先决条件: `python >=3.5`, `git`, `PowerShell`
```bash ```bash
git clone -b v0.7 https://github.com/Microsoft/nni.git git clone -b v0.8 https://github.com/Microsoft/nni.git
cd nni cd nni
powershell ./install.ps1 powershell -file install.ps1
``` ```
运行完以上脚本后,从命令行使用 **config_windows.yml** 来启动 Experiment,完成安装验证。 运行完以上脚本后,从命令行使用 **config_windows.yml** 来启动 Experiment,完成安装验证。
```bash ```bash
nnictl create --config nni/examples/trials/mnist/config_windows.yml nnictl create --config nni\examples\trials\mnist\config_windows.yml
``` ```
同样,其它示例的 YAML 配置中也需将 Trial 命令的 `python3` 替换为 `python` 同样,其它示例的 YAML 配置中也需将 Trial 命令的 `python3` 替换为 `python`
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
## 安装 ## 安装
当前支持 Linux,MacOS 和 Windows(本机模式),在 Ubuntu 16.04 或更高版本,MacOS 10.14.1 以及 Windows 10.1809 上进行了测试。 在 `python >= 3.5` 的环境中,只需要运行 `pip install` 即可完成安装。 当前支持 Linux,MacOS 和 Windows,在 Ubuntu 16.04 或更高版本,MacOS 10.14.1 以及 Windows 10.1809 上进行了测试。 在 `python >= 3.5` 的环境中,只需要运行 `pip install` 即可完成安装。
#### Linux 和 MacOS #### Linux 和 MacOS
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
#### Windows #### Windows
如果选择 Windows 本机模式并使用 PowerShell 运行脚本,需要首次以管理员身份在 PowerShell 环境中运行以下命令。 如果 Windows 上使用 NNI,首次使用 PowerShell ,需要以管理员身份运行下列命令。
```bash ```bash
Set-ExecutionPolicy -ExecutionPolicy Unrestricted Set-ExecutionPolicy -ExecutionPolicy Unrestricted
...@@ -161,7 +161,7 @@ trial: ...@@ -161,7 +161,7 @@ trial:
从命令行使用 **config_windows.yml** 文件启动 MNIST Experiment 。 从命令行使用 **config_windows.yml** 文件启动 MNIST Experiment 。
**注意**:如果使用 Windows 本机模式,则需要在 config.yml 文件中,将 `python3` 改为 `python`,或者使用 config_windows.yml 来开始 Experiment。 **注意**:如果使用 Windows,则需要在 config.yml 文件中,将 `python3` 改为 `python`,或者使用 config_windows.yml 来开始 Experiment。
```bash ```bash
nnictl create --config nni/examples/trials/mnist/config_windows.yml nnictl create --config nni/examples/trials/mnist/config_windows.yml
......
...@@ -56,6 +56,10 @@ machineList: ...@@ -56,6 +56,10 @@ machineList:
passwd: bob123 passwd: bob123
``` ```
可以使用不同系统来在远程计算机上运行 Experiment。
#### Linux 和 macOS
填好 `machineList` 部分,然后运行: 填好 `machineList` 部分,然后运行:
```bash ```bash
...@@ -64,6 +68,16 @@ nnictl create --config ~/nni/examples/trials/mnist-annotation/config_remote.yml ...@@ -64,6 +68,16 @@ nnictl create --config ~/nni/examples/trials/mnist-annotation/config_remote.yml
来启动 Experiment。 来启动 Experiment。
#### Windows
填好 `machineList` 部分,然后运行:
```bash
nnictl create --config %userprofile%\nni\examples\trials\mnist-annotation\config_remote.yml
```
来启动 Experiment。
## 版本校验 ## 版本校验
从 0.6 开始,NNI 支持版本校验,详情参考[这里](PaiMode.md) 从 0.6 开始,NNI 支持版本校验,详情参考[这里](PaiMode.md)
\ No newline at end of file
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
* 查看 Experiment 的配置和搜索空间内容。 * 查看 Experiment 的配置和搜索空间内容。
* 支持下载 Experiment 结果。 * 支持下载 Experiment 结果。
* 支持导出 nni-manager 和 dispatcher 的日志文件。
* 如果有任何问题,可以点击 “Feedback” 告诉我们。
![](../img/webui-img/over1.png) ![](../img/webui-img/over1.png)
...@@ -52,6 +54,14 @@ ...@@ -52,6 +54,14 @@
![](../img/webui-img/detail-local.png) ![](../img/webui-img/detail-local.png)
* "Add column" 按钮可选择在表格中显示的列。 如果 Experiment 的最终结果是 dict,则可以在表格中查看其它键。
![](../img/webui-img/addColumn.png)
* 可使用 "Copy as python" 按钮来拷贝 Trial 的参数。
![](../img/webui-img/copyParameter.png)
* 如果在 OpenPAI 或 Kubeflow 平台上运行,还可以看到 hdfsLog。 * 如果在 OpenPAI 或 Kubeflow 平台上运行,还可以看到 hdfsLog。
![](../img/webui-img/detail-pai.png) ![](../img/webui-img/detail-pai.png)
......
#################
自动机器学习的经验分享
#################
.. toctree::
:maxdepth: 2
神经网络架构搜索的对比<CommunitySharings/AutomlPracticeSharing/NasComparison>
# 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
# Grid Search
## Grid Search(遍历搜索)
Grid Search 会穷举定义在搜索空间文件中的所有超参组合。 注意,搜索空间仅支持 `choice`, `quniform`, `qloguniform``quniform``qloguniform` 中的 **数字 `q` 有不同的含义(与[搜索空间](../../../../../docs/zh_CN/SearchSpaceSpec.md)说明不同)。 这里的意义是在 `low``high` 之间均匀取值的数量。</p>
\ No newline at end of file
# NNI 中使用 Hyperband
## 1. 介绍
[Hyperband](https://arxiv.org/pdf/1603.06560.pdf) 是一种流行的自动机器学习算法。 Hyperband 的基本思想是对配置分组,每组有 `n` 个随机生成的超参配置,每个配置使用 `r` 次资源(如,epoch 数量,批处理数量等)。 当 `n` 个配置完成后,会选择最好的 `n/eta` 个配置,并增加 `r*eta` 次使用的资源。 最后,会选择出的最好配置。
## 2. 实现并行
首先,此样例是基于 MsgDispatcherBase 来实现的自动机器学习算法,而不是基于 Tuner 和Assessor。 这种实现方法下,Hyperband 集成了 Tuner 和 Assessor 两者的功能,因而将它叫做 Advisor。
其次,本实现完全利用了 Hyperband 内部的并行性。 具体来说,下一个分组不会严格的在当前分组结束后再运行,只要有资源,就可以开始运行新的分组。
## 3. 用法
要使用 Hyperband,需要在 Experiment 的 YAML 配置文件进行如下改动。
advisor:
#可选项: Hyperband
builtinAdvisorName: Hyperband
classArgs:
#R: 最大的步骤
R: 100
#eta: 丢弃的 Trial 的比例
eta: 3
#可选项: maximize, minimize
optimize_mode: maximize
注意,一旦使用了 Advisor,就不能在配置文件中添加 Tuner 和 Assessor。 使用 Hyperband 时,Trial 代码收到的超参(如键值对)中,除了用户定义的超参,会多一个 `STEPS`**使用 `STEPS`,Trial 能够控制其运行的时间。</p>
对于 Trial 代码中 `report_intermediate_result(metric)``report_final_result(metric)`**`指标` 应该是数值,或者用一个 dict,并保证其中有键值为 default 的项目,其值也为数值型**。 这是需要进行最大化或者最小化优化的数值,如精度或者损失度。
`R``eta` 是 Hyperband 中可以改动的参数。 `R` 表示可以分配给配置的最大步数(STEPS)。 这里,STEPS 可以代表 epoch 或 批处理数量。 `STEPS` 应该被 Trial 代码用来控制运行的次数。 参考样例 `examples/trials/mnist-hyperband/` ,了解详细信息。
`eta` 表示 `n` 个配置中的 `n/eta` 个配置会留存下来,并用更多的 STEPS 来运行。
下面是 `R=81``eta=3` 时的样例:
| | s=4 | s=3 | s=2 | s=1 | s=0 |
| - | ---- | ---- | ---- | ---- | ---- |
| i | n r | n r | n r | n r | n r |
| 0 | 81 1 | 27 3 | 9 9 | 6 27 | 5 81 |
| 1 | 27 3 | 9 9 | 3 27 | 2 81 | |
| 2 | 9 9 | 3 27 | 1 81 | | |
| 3 | 3 27 | 1 81 | | | |
| 4 | 1 81 | | | | |
`s` 表示分组, `n` 表示生成的配置数量,相应的 `r` 表示配置会运行多少 STEPS。 `i` 表示轮数,如分组 4 有 5 轮,分组 3 有 4 轮。
关于如何实现 Trial 代码,参考 `examples/trials/mnist-hyperband/` 中的说明。
## 4. 待改进
当前实现的 Hyperband 算法可以通过改进支持的提前终止算法来提高,原因是最好的 `n/eta` 个配置并不一定都表现很好。 不好的配置可以更早的终止。
在当前实现中,遵循了[此论文](https://arxiv.org/pdf/1603.06560.pdf)的设计,配置都是随机生成的。 要进一步提升,配置生成过程可以利用更高级的算法。
\ No newline at end of file
# 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
# 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
# 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
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment