# 마치며

이번 12장에서는 강화학습에 대해 이야기하고, 강화학습을 통해 자연어 생성 문제를 해결하는 방법을 다루었습니다. 다양한 강화학습 알고리즘을 사용해 자연어 생성 문제의 성능을 높일 수 있겠지만, 이 책에서는 그 중에서도 폴리시 그래디언트를 사용해 자연어 생성에 적용하는 방법을 설명했습니다.

> 강화학습은 이 책에서 온전히 전부 다루기에는 매우 방대하고 깊은 학문입니다.

폴리시 그래디언트 방법을 자연어 생성에 적용해 얻을 수 있는 이점은 크게 두 가지입니다. 첫째, 자기회귀 속성으로 인해 실제 추론 방식과 다르게 훈련해야 하는 teacher-forcing 훈련 방법을 탈피하여, 실제 추론 방식과 같은 샘플링을 통해서 문장 생성 능력을 높일 수 있습니다. 둘째, 더 정확한 목적 함수를 훈련할 수 있습니다. 기존의 PPL은 번역 품질 또는 문장의 생성 품질을 정확하게 반영할 수 없는 단점을 갖고 있었고, 때문에 BLEU 또는 기타 여러 가지 매트릭을 사용해 모델에 대한 성능을 측정할 수 있었습니다. 하지만 BLEU와 같은 평가 함수는 미분을 할 수가 없었으므로, PPL과 동일한 교차 엔트로피를 활용하여 신경망을 훈련해야 했습니다. 폴리시 그래디언트는 보상 함수에 미분을 할 필요가 없기 때문에, 이 점을 활용하면 어떤 보상 함수든지 활용하여 신경망을 훈련할 수 있는 것입니다.

하지만 폴리시 그래디언트에도 단점이 있습니다. 일단 샘플링을 기반으로 훈련하므로 많은 반복 시행이 필요합니다. 따라서 훈련에 훨씬 많은 시간이 소요되어 더 비효율적인 학습이 진행됩니다. 또한 보상함수는 방향이 없는 스칼라값을 리턴하므로, 보상함수를 최대화하는 방향을 정확하게 알 수 없습니다. 이는 기존의 MLE 방식에서 손실 함수를 신경망 파라미터 $\theta$ 에 대해 미분하여 얻은 그래디언트를 통해 손실 함수 자체를 최소화하는 방향으로 업데이트하던 것과 차이가 있습니다. 결국, 이 또한 기존의 MLE 방식보다 훨씬 비효율적인 학습 진행으로 이어집니다.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kh-kim.gitbook.io/natural-language-processing-with-pytorch/00-cover-11/07-conclusion.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
