Paper Info
Authors
: Zuxuan Wu, Tushar Nagarajan, Abhishek Kumar, Steven Rennie, Larry S. Davis, Kristen Grauman, Rogerio Feris
subject
: Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.
link
: https://arxiv.org/abs/1711.08393
Abstract
-
very deep CNN은 좋은 recognition results를 제공하지만,
여전히 computational expense는 real-world application에 적용하기에 제한이 있다.
-
우리는 BlockDrop
이라는 접근 방식을 소개한다.
이는 prediction accuracy를 저하시키기 않으면서 total computation을 최대한 줄이기 위해
inference 중에 network의 어떤 layer를 실행시킬지 동적으로 선택하는 방법을 학습한다.
-
우리의 framework는 ResNet layer dropping에 대한 robustness를 활용하여,
특정 새로운 image에 대해 evaluate를 어떤 residual block들이 수행할지 결정한다.
-
특히,
pretrained ResNet이 주어졌을 때,
우리는 최소한의 block을 사용하면서 recognition accuracy를 유지하기 위한
dual reward을 위해 associative reinforcement learning setting에서
policy network를 train시켰다.
1. Introduction
- 최근 computer vision의 성공으로 여러 task에서 사용되고 있지만,
network architecture가 매우 복잡하다.
이는 autonomous driving, robotic navigation, user-interactive app on mobile devices과 같은
delay-sensitive and real-time scenario domain에서 문제가 발생한다는 의미이다.
대부분 연구들은 network의 속도 향상을 위해 model compression technique을 추구한다.
model compression으로 인해 상당한 speed-ups이 가능해졌지만,
model complexity는 고려하지 않고 새로운 image에 대해 동일한 고정된 set of feature를 추출해야 하는 일반적인 network를 생성한다.
반면에,
human perception system의 중요한 특징 중 하나는
visual recognition을 위해 시간과 주의를 적응적으로 할당할 수 있다는 것이다.
예를 들어,
인간은 물체와 장면의 일부분만을 흘깃 보고도 해당 image를 빠르게 인식할 수 있지만,
현재의 Deep Learning model들의 접근 방식은 이러한 유연성이 부족한 상태이다.
- 그래서 우리는 deep network에 computation을 동적으로 할당하는 문제를 탐구했다.
특히 우리는 recognition task에 강력한 성능과 layer 제거에 대한 내성[50]으로 유명하기 때문에
Residual Networks (ResNet)을 고려했다.
- ResNet은 residual block으로 구성되어 있으며,
이는 두 개 이상의 conv layer와 skip connection으로 이루어져 있다.
이러한 skipp connection은 residual block 간의 직접적인 path를 제공한다.

- [50, Residual Networks Behave Like Ensembles of
Relatively Shallow Networks] :
이 skip connection으로 인해
ResNets은 shallow networks들의 ensemble처럼 동작하게 하고,
따라서 특정 residual block을 제거해도 성능에 큰 영향을 미치지 않는다.
그러나 ResNet에서 block dropping에 대한 초기 연구([50])는
전역적으로 수동으로 정의된 dropping scheme(모든 image에 대해 똑같은 block dropping)을 적용한다.
이는 더 많은 block이 drop될 때 error가 증가하게 된다.
(요약)
ResNet이 성능이 좋고, layer dropping에 강인한 모습을 보였기 때문에
ResNet에 대해서 BlockDrop을 실험해봤다.
기존에도 똑같이 Residual block을 drop하는 연구가 있었지만
전역적으로 수동으로 정의된 block을 dropping했지만, 우리는 adaptive하게 적용한다는 차이가 있다.
- 우리는 image-specific decision에 기반하여
prediction accuracy와 최소한의 block 사용을 보존하는
optimal block dropping 전략을 학습하는 것을 제안한다.
recognition을 위해 훈련된 network에 새로운 input이 제공되면,
dynamic inference path가 따라가며 해당 instance에 대해
어떤 block을 계산할지 선택적으로 결정한다.

- 이러한 접근 방식은 inference 중에 계산 효율성을 향상시킬 수 있음(static global scheme 보다 더 많은 residual block을 삭제할 수도 있음).
- 또한 ResNet에 대한 추가적인 insight를 제공할 수 있음.
예를 들어,
다른 block이 object에 대한 정보를 encode하는지,
classification을 위해 필요한 계산이 예제의 난이도 수준에 따라 달라지는 등을 알 수 있음
- 이를 위해,
우리는 ResNets에서 instance-specific inference path를 유도하기 위한
reinforcement learning 방식인 BlockDrop을 소개할 것이다.
주요 아이디어는 사전 훈련된 ResNet에서 각 block을 삭제하거나 유지할지에 대한
binary decision의 모든 posterior probabilities를 출력하는 model(policy network라고 함)을
학습하는 것이다.
- 이 policy network는 prediction accuracy를 보존하면서
가능한 적은 block을 사용하도록 장려하는 보상을 극대화하기 위해
curriculum learning이 사용되어 학습된다.
- 또한, pretrained ResNet은 block dropping에 맞춰진
feature transformation을 생성하기 위해
policy network와 함께 공동으로 finetuning된다.
- 우리의 접근 방식은 모든 decision이 single step에서 이루어지며,
이는 policy execution이 가볍고 매우 깊은 network에 확장 가능하다는 점에서
associative reinforcement learning의 한 예시로 볼 수 있다.
- 우리는 CIFAR와 ImageNet에서 광범위한 실험을 진행했다.
BlockDrop은 pretrained ResNet-110에서 33% 및 55%의 block만을 사용하여
각각 CIFAR-10 및 CIFAR-100에서 93.6% 및 73.7%의 정확도를 달성했다.
또한 BlockDrop은 ImageNet에서 ResNet-101 model의 속도를 20% 높이면서 동일한 76.4%의 top-1 accuracy를 유지.
Layer Dropping in Residual Networks
-
ResNet에서 layer를 dropping하는 것은 DropOut과 유사한 regularization mechanism으로 사용되어 왔다.
특히, very deep networks(e.g., over 1000 layers) with stochastic depth로 훈련할 때 이 방법이 사용된다.
Stochastic Depth Network([22])에서 residual layer dropping은 training stage에서만 발생하며,
test 시에는 layer가 고정된다.
-
Veit et al. [50]은 ResNet이 test 시에 layer dropping에 강하다는 것을 보여주었으며,
이는 우리의 접근 방식을 동기부여하는 요인이 되었다.
그러나 그들은 accuracy를 희생하지 않고 network에서 어떤 layer를 동적으로 제거할 수 있는 방법을 제공하지 않았음.
-
더 최근에는,
Huang and Wang([23])는 sparsity constraint에 기반하여 실행될 residual block의 subset을 선택하는 방법을 제안했다.
위 방식들과는 대조적으로,
우리는 inference 중에 ResNet을 가속화하기 위한 instance-specific residual block removal scheme을 제안한다.
Model Compression
-
deep neural network를 mobile device에 적용하기 위한 연구가 있었다.
(knowledge distillation, low-rank factorization, filter pruning, quantization, compression, network binarization, ...)
-
SqueezeNet 및 MobileNet과 같은 Efficient network architecture들은
compact deep nets을 training시키기 위해 연구되어 왔다.
하지만 이 방법들은 모든 image에 동일한 계산량이 적용되지만,
우리는 input image에 따라 실행될 block의 subset을 동적으로 선택함으로써
efficient inference에 집중한다.
Conditional Computation
(skip)
Early Prediction
-
우리의 연구는 early prediction models에 강한 연관이 있다.
이는 어떤 기준(e.g. classification에 대한 충분한 확신)이 early layer에서
충족되었을 때 종료하는 conditional computation model의 한 유형이다.
-
Cascade detectors는 이러한 아이디어를 활용하는 computer vision에서 가장 초기 방법 중 하나이다.
이들은 종종 시각적 특징과 별도로 학습된 handcrafted control decisions에 의존한다.
최근에는 feature와 early decision의 joint learning이 연구되고 있다.
Teerapittayanon et al. [48]은 BranchyNet을 제안하여
각 layer에 branch를 구성하여 초기 classification decision을 내린다.

- Figurnov et al. [14]은 이러한 아이디어를 ResNet의 공간 영역으로 확장하여
Adaptive Computation Time(ACT)을 여러 image block의 각 공간 위치에 적용한다.
우리의 연구와 유사하게,
그들의 개발은 instance-specific ResNet 구성을 식별하지만,
ResNet의 미리 정의된 segment에서 초기 밀접한 block을 사용하는 구성만 허용한다.
이러한 초기 block을 일반적으로 high-dimensional feature map에서 low-level feature를 encoding하며,
필요한 판별력이 부족할 수 있다.
이 문제는 서로 다른 scale의 image를 사용하여 완화될 수 있지만, 더 높은 계산 비용이 든다.


우리는 어떤 block이든 network에 기여할 수 있도록 허용하여 잠재적인 ResNet 구성과 policy의 훨씬 더 높은 변동성을 가능하게 한다.
3. Approach
-
test image가 주어지면,
우리의 목표는 ResNet model의 computational block들의 최적 구성을 찾는 것이다.
이를 통해 최소한의 block 개수를 사용하면서도 classification accuracy를 감소시키지 않는 것임.
-
computational block의 최적 구성을 찾는 것을 search problem으로 취급하는 것은
block 수가 증가함에 따라 잠재적인 구성의 수가 기하급수적으로 증가하여
deeper model에서 빠르게 해결할 수 없는 문제가 된다.
-
또한 block 위에 soft-attention mask를 학습하는 것은
이를 binary decision으로 변환하는 어려움을 야기한다 (?)
이러한 변환에는 신중하게 handcrafted threshold가 필요하며, 이는 어려움을 야기할 수 있다.
게다가, 이러한 thresholding operation은 non-differentiable하므로,
supervised learning framework를 직접적으로 사용하는 것이 복잡해진다.
-
따라서 우리는 최소한의 block 사용으로 정확한 prediction을 장려하는
optimal block dropping scheme을 유도하기 위해
reinforcement learning의 policy search methods를 활용한다.
- section 3.1에서 ResNet의 architecture를 살펴보고, block dropping에 적합한 이유를 논의할 것이다.
- section 3.2에서 input image에 조건부로 동적으로 선택된 inference paths를 학습하는
policy network를 소개할 것이다.
- section 3.3에서 우리 model의 training algorithm을 제시할 것이다.
3.1. Pretrained Residual Networks
-
만약 i-th residual block의 input을 yi라고 한다면,
residual block은 Fi,
residual block의 output은 yi+1=Fi(yi)+yi이고,
yi+1은 그 다음 residual block의 input으로 사용된다.
identity skip-connection의 존재로 인해 두 residual block 사이에 직접적인 path가 형성되며,
따라서 network의 상위 layer에는 forward pass 중에 하위 layer로부터 정보에 접근할 수 있으며,
back-propagation 단계에서는 higher layer에서 lower layer로 gradient를 직접 전달할 수 있다.
-
Veit et al.[50]은 residual block을 test시 제거하더라도(i.e., yi+1=yi를 갖는) 큰 accuracy drop이 발생하지 않음을 보여줬다.
이러한 결과는 ResNet을 많은 path의 ensemble로 볼 수 있기 때문에 발생하는 것이다.
그 결과, AlexNet과 VGGNet과 같은 single-path model과 달리 path가 삭제되더라도 정보가 보존될 수 있었다.
-
[50]의 결과는 다른 block이 strong dependencies를 공유하지 않음을 시사한다.
그러나, 이 연구는 inference 중에 model에서 더 많은 block이 제거될 때 classification error가 증가한다는 것을 보여준다.
우리는 이것이 모든 image에 대해 global dropping strategy를 채택한 결과라고 생각한다.
따라서 우리는 최소한의 block을 사용하여 올바른 예측을 이끌어내는 the best dropping schemes가 instance-specific하게 되어야 한다고 주장한다.
3.2. Policy Network for Dynamic Inference Paths
-
ResNet의 context의 configuration은 각 block을 keep/drop하는 decision을 나타내며,
각 block을 drop하는 decision은 network에서 path의 일부를 제거하는 것에 해당한다.
우리는 이러한 decision을 dropping strategy로 참조한다.
-
input instance가 주어졌을 때 optimal dropping strategy를 찾아내기 위해,
우리는 pretrained ResNet에서 block을 keep or drop하는 작업을 수행하는
binary policy vector를 출력하는 policy network를 개발했다.
-
training 중에는 policy vector의 active block(= keep block)만을 사용하여
ResNet을 실행했을 때 생성된 block만 사용과 prediction accuracy를 모두 고려한 reward가 주어진다.

-
standard reinforcement learning과는 달리,
policy를 한 번에 모든 작업을 예측하도록 훈련한다.
이는 본질적으로 input state에 대한 single-step Markov Decision Process(MDP)이며,
contextual bandit 또는 asoociative reinforcement learning으로도 볼 수 있다.
(이 design choice에 대한 긍정적 효과는 Sec. 4.2.에서 조사할 것임)
-
공식적으로,
image x와 K개의 residual blocks으로 구성된 pretrained ResNet이 주어졌을 때,
우리는 block-dropping 정책의 행동을 다음과 같이 정의한다.
-
fpn : weight W로 parameterize된 policy network.
(Sec. 4에서 detail을 다룰 예정인데, fpn의 architecture의 실행 비용이 ResNet과 비교하여 무시할 만함. policy execution의 overhead가 적음.)
-
s : sigmoid function(σ(x)=1+e−x1)을 지난 policy network fpn의 output.
vector s의 k번째 항목인 sk∈[0,1]는 original ResNet의 residual block이 drop되어질 likelihood를 나타냄.
- Likelihood? (출처 : https://xoft.tistory.com/30)
Probability는 주어진 확률 분포가 고정된 상태에서, 관측되는 사건이 변화될 때, 확률을 표현하는 단어.
Likelihood는 관측된 사건이 고정된 상태에서, 확률 분포가 변화될 때(=확률 분포를 모를 때 = 가정할 때), 확률을 표현하는 단어입니다.
ex : 1,2,3,4,5 정수 중에서 특정 값이 관측될 확률을 계산하는 문제.
선택 가능한 정수의 범위를 1~5로 제한(확률 분포를 고정)한 상태에서
관측 목표값이 1~5 중에 한개 숫자(관측 되는 사건이 변화)가 될 경우,
확률에 대한 단어를 Probability로 사용.
이 경우 확률값은 0.2로 단순히 계산 할 수 있음.
선택 가능한 정수의 범위를 1~5가 아닌 다른 정수 범위 1~10 또는 4~50으로 바꾸면서(=확률 분포를 모름), 2가 관측될 확률을 계산(관측 사건이 고정) 할 경우,
확률에 대한 단어를 Likelihood로 사용.
-
action u∈{0,1}K는 s에 의해 선택된다.
ui=1 if si>0.5 and ui=0 otherwise.

- uk=1 ➡️ keeping the k-th resdiaul block, sk
- uk=0 ➡️ dropping the k-th resdiaul block, (1−sk)
-
action u에 의해 drop되지 않은 block들만 forward pass에서 evaluate되어진다.
그런데 우리는 correct prediction 뿐만 아니라 minimal block usage도 고려해야 하므로,
action u에 다음의 reward function을 연결했다.
- (K∣u∣0)2는 correct prediction일 때의 blocks utilized의 percentage를 나타낸다.
(제곱을 한 이유는 minimal block usage를 위해, block을 더 적게 쓸수록 더 큰 reward를 주기 위함)
- incorrect prediction을 γ로 penalize함.
이는 efficiency(block usage)와 accuracy 간의 trade-off를 조절한다.
우리는 γ를 사용하여 model의 operating point를 변화시켜 다양한 model을 target budget constraint에 따라 훈련할 수 있도록 사용했다. (?)


-
마지막으로 policy network의 optimal parameter를 학습하기 위해
다음과 같은 expected reward를 maximization했다 : 
요약하면, 우리의 model은 다음과 같이 작동한다 :
input image에 대해 ResNet의 어떤 block을 유지할지 결정하기 위해 fpn을 사용하고,
유지된 block만을 사용하여 ResNet의 forward pass를 통해 prediction이 생성되며,
correctness and efficiency에 따라 reward가 주어진다.
3.3. Training the BlockDrop Policy
-
Eqn. 4를 maximize하기 위해서,
우리는 policy gradient(46 : https://web.stanford.edu/class/psych209/Readings/SuttonBartoIPRLBook2ndEd.pdf)를 사용했다.
이는 주요 policy search methods 중 하나로, J의 gradient를 계산하기 위해 사용되는 방법이다.
-
전통적인 reinforcement learning method와는 달리,
우리의 policy는 K-dimensional Bernoulli distribution에서 생성된다.
여기서 uk∈{0,1}(0 or 1)로, gradient는 다음과 같이 유도될 수 있다.



다시 언급하지만, 여기서의 W는 policy network의 parameter를 말한다.
우리는 Eqn. 5의 expected gradient를 모든 mini-batch sample을 사용하여 Monte-Carlo sampling을 통해 근사한다.
- Monte-Carlo sampling이란? (출처)
반복된 무작위 추출(repeated random sampling)을 이용하여 확률 분포를 근사적으로 계산하기 위해 사용되는 알고리즘.
- (내 생각) : policy network는 image x에 따라 확률적으로 동작하기 때문에
-
Monte-Carlo sampling을 사용한 gradient estimates는 unbiased하지만, variance가 높다.
그래서 variance를 줄이기 위해, self-critical baseline R(u~)(39)를 사용하여 Eqn. 5을 다음과 같이 재정의했다 : (?)
- A=R(u)−R(u~)
- u~는 현재 policy s에 따라 maximally probable configuration으로 정의됨. (?)
즉, 만약 si>0.5이면 ui=1이고 나머지는 ui=0
-
우리는 distribution s에 제한하고 포화되지 않도록 하는 parameter α를 도입하여 수정된 distribution s′를 만듦 :
s′=αs+(1−α)(1−s)
이를 통해 distribution을 1−α≤s′≤α의 범위로 제한하고,
그 후에 policy vector를 sampling함. (?)
Curriculum learning
-
Policy gradient method는 일반적으로 initialization에 매우 sensitive하기 때문에
우리는 parameter를 randomly initialization하지 않았다.
-
그래서 curriculum learning[3]으로부터 idea를 얻을 수 있었다.
- curriculum learning이란? (출처)
Curriculum Learning은 training 전략으로,
사람의 교육 체계를 모방하여 쉬운 데이터부터 어려운 데이터까지 점진적으로 훈련하는 방법.

-
curriculum learning의 idea와 유사하게,
1≤t≤K에서, epoch t 동안,
처음 K−t block을 training하지 않고 마지막 t block만 학습한다.

- 이는 REINFORCE를 사용하여 text generation task를 training할 때
순차적으로 시퀀스를 노출시키는 것과 유사한 장점을 갖고 있다고 한다.
(이쪽에 대한 연구 분야가 있는 듯..)
- 왜 마지막 block부터 학습을 순차적으로 시킨 것일까?
첫번째 block부터 순차적으로 학습시키면 안되는 것인가?
Joint finetuning
4. Experiment
4.1. Experimental Setup
Datasets and evaluation metrics.
- 우리의 method를 3개의 benchmarks : CIFAR-10, CIFAR-100, ImageNet에 대해서 평가했다.
Pretrained ResNet
- CIFAR-10과 CIFAR-100의 경우, 우리는 두개의 ResNet model(ResNet-32, ResNet-110)에 대한 실험을 진행했다.
- ImageNet의 경우, bottleneck design으로 구성된 ResNet101을 채택했다.

Policy network architecture
- 우리의 policy network는 base model의 일부 depth를 가진 ResNet을 사용한다.
CIFAR의 경우, 3개 block으로 구성된 ResNet(ResNet-8).
ImageNet의 경우, 4개 block으로 구성된 ResNet(ResNet-10).
또한 ImageNet에 대한 policy network의 input으로 image를 112×112로 downsampling했다.
- CIFAR (ResNet-110)에 대한 policy network의 computation은 기존의 4.8%,
ImageNet (ResNet-101)에 대한 policy network의 computation은 기존의 3.0%
만 요구되므로 plicy computations은 무시할만하다.
Implementations details
- PyTorch for implementation
- ADAM as the optimizer
- α=0.8
- learning rate to 1e−4 , 1e−5 for ImageNet.
- batch size of 2048 durgin curriculum learning.
- batch size to 256 to 320 on CIFAR and ImageNet, respectively
- Our code is available at https://github.com/Tushar-N/blockdrop
4.2 Quantitative Results
Learned policies vs. heuristics
BlockDrop vs. state-of-the-art models.
-
Figure 3 (a)는 CIFAR에 대한 결과를 보여줌.
우리의 best model은 original ResNet-110 model 대비
평균적으로 65% 적은 FLOPs를 사용하여 accuracy가 0.4% 향상된 결과를 보여줌. (93.6% vs. 93.2%)
performance 향상은 network의 block을 dropping하여 나타난 regularization 효과에 기인할 수 있음.
(BlockDrop의 FLOPs는 직접 부여하지 못하고, policy network의 학습에 의해서 결정될텐데..
graph에서 그려진 FLOPs는 γ값에 따라 model을 학습시킨 후 측정한 FLOPs겠지?)
-
Figure 3 (b)는 ImageNet에 대한 결과를 보여줌.
original ResNet-101 model과 비교했을 때, BlockDrop은
6% speed up (1.47×1010 vs. 1.56×1010)과 아주 살짝 더 높은 결과 (76.8% vs. 76.4%)를 보여주었음.
(CIFAR-10에서와 달리, Top-1 Accuracy를 보여준 것은 Top-5 accuracy는 별 차이 없었다고 생각됨.)
(그래도 Top-1 Accuracy가 더 중요한 metric이기 때문에 6% speed up으로 0.4 accuracy를 향상시킨 것은 좋은 결과라고 생각됨.)
Efficiency advantage of single-step policy
(skip)
- (핵심) 전통적인 Reinforcement Learning의 policy learning은 순차적으로 진행되는데,
그 방식은 우리의 single-step policy보다 훨씬 오래 걸림.

4.3. Qualitative Results
5. Conclusion
- 우리는 input image에 따라 학습되고 최적화된 방식으로 residual block을 선택함으로써
ResNet에서 더 빠른 추론을 수행하는 방법인 BlockDrop을 제안했다.
특히, 우리는 pretarined ResNet에서 block을 dropping할 것으로 예측하기 위해
policy network를 train시키면서 prediction accuracy를 유지하려고 했다.
ResNet은 block dropping 동작에 맞게 조정된 smooth feature representation을 생성하기 위해 추가적으로 jointly fintetuning했다.
우리는 CIFAR 및 ImageNet에서 실험을 수행하여 efficiency-accuracy trade-off 측면에서 기존 방법에 비해 상당한 이득을 얻었다.
궁금한 점
1 (해결)

- Eq 1.에서 맨 앞에 π는 뭘까?
- w(u∣x)는 뭘까? (pocliy of block-dropping behavior as K-dimensional Bernoulli distribution 이라고 하긴 했는데... 잘 알지 못하겠음)
➡️ π와 w(u∣x)은 별도의 값이 아니라, πw(u∣x) 자체가 하나의 scalar값.
2 (해결)
- 이는 efficiency(block usage)와 accuracy 간의 trade-off를 조절한다.
우리는 γ를 사용하여 model의 operating point를 변화시켜 다양한 model을 target budget constraint에 따라 훈련할 수 있도록 사용했다. (?)
- 내가 해석한 의미 : γ는 정답이 틀린 상황에 주는 penalty니까
γ값을 작게 주면, model이 block을 더 사용하지 않아도 된다고 생각 ➡️ accuracy는 낮아지만 block usage(efficiency)는 높을 것
γ값을 크게 주면, model이 block을 더 사용해야 한다고 생각 ➡️ accuracy는 높아지지만 block usage(efficiency)는 낮을 것.
- 그래서 만약 model을 작은 컴퓨팅 환경에 적용하려면, γ를 작게 해서 training시킬 수 있다는 의미인듯....
3 (해결)
- "우리는 Eqn. 5의 expected gradient를 모든 mini-batch sample을 사용하여 Monte-Carlo sampling을 통해 근사한다."
➡️ 이게 무슨 말인지?
- (내 생각) :
policy network의 동작은 input image x에 따라 달라짐.
즉, 모든 mini-batch들에 대해서 policy network의 동작이 너무나도 달라지기 때문에서
mini-batch마다 parameter update를 하는게 아니라
모든 mini-batch sample들에 대한 gradient를 평균내서, 그것을 expected gradient라고 부르는 듯.
expected gradient값 하나를 이용해서 parameter update를 진행했다고 이해함...
4
- 우리는 distribution s에 제한하고 포화되지 않도록 하는 parameter α를 도입하여 수정된 distribution s′를 만듦 :
s′=αs+(1−α)(1−s)
이를 통해 distribution을 1−α≤s′≤α의 범위로 제한하고,
그 후에 policy vector를 sampling함.
➡️ distirbution s에 제한하고 포화된다는게 무슨 말인지?
만약 그렇게 된다고 하면 그게 안좋은 것인지? 어떻게 안좋은것인지?
➡️ 우선 소스코드에서는 0.8을 default로 설정하고, 'probability bounding factor'라고 설명함

α=0.8로 생각해봤을 때, s′의 범위를 [0.2, 0.8]로 만드는 것인데,
왜 이렇게 했는지 모르겠음.
s와 s′에 대한 차이를 실험적으로라도 보였으면 더 좋았을 것 같다...
5
- Monte-Carlo sampling을 사용한 gradient estimates는 unbiased하지만, variance가 높다.
그래서 variance를 줄이기 위해, self-critical baseline R(u~)(39)를 사용하여 Eqn. 5을 다음과 같이 재정의했다 : (?)
- A=R(u)−R(u~)
- u~는 현재 policy s에 따라 maximally probable configuration으로 정의됨. (?)
즉, 만약 si>0.5이면 ui=1이고 나머지는 ui=0