# 山登りカーを訓練する [OpenAI Gym](http://gym.openai.com) は、すべての環境が同じAPIを提供するように設計されています。つまり、`reset`、`step`、`render`という同じメソッドと、**アクションスペース**および**観測スペース**の同じ抽象化を備えています。そのため、最小限のコード変更で異なる環境に同じ強化学習アルゴリズムを適用することが可能です。 ## 山登りカー環境 [山登りカー環境](https://gym.openai.com/envs/MountainCar-v0/) では、谷に閉じ込められた車が登場します。 目標は谷を抜け出して旗を捕まえることです。そのために、各ステップで以下のいずれかのアクションを実行します: | 値 | 意味 | |---|---| | 0 | 左に加速 | | 1 | 加速しない | | 2 | 右に加速 | しかし、この問題の主なポイントは、車のエンジンが一度の試行で山を登りきるほど強力ではないことです。そのため、成功する唯一の方法は、勢いをつけるために前後に走ることです。 観測スペースは以下の2つの値で構成されています: | 番号 | 観測値 | 最小値 | 最大値 | |-----|--------------|--------|--------| | 0 | 車の位置 | -1.2 | 0.6 | | 1 | 車の速度 | -0.07 | 0.07 | 山登りカーの報酬システムは少し複雑です: * エージェントが山頂の旗(位置 = 0.5)に到達した場合、報酬0が与えられます。 * エージェントの位置が0.5未満の場合、報酬-1が与えられます。 エピソードは、車の位置が0.5を超えるか、エピソードの長さが200を超えると終了します。 ## 手順 既存の強化学習アルゴリズムを適応させて山登りカー問題を解決してください。既存の[notebook.ipynb](notebook.ipynb)コードから始め、新しい環境を置き換え、状態の離散化関数を変更し、既存のアルゴリズムを最小限のコード変更で訓練できるようにしてください。ハイパーパラメータを調整して結果を最適化してください。 > **Note**: アルゴリズムを収束させるためには、ハイパーパラメータの調整が必要になる可能性があります。 ## 評価基準 | 基準 | 優秀 | 適切 | 改善が必要 | | -------- | --------- | -------- | ----------------- | | | Q-LearningアルゴリズムがCartPoleの例から成功裏に適応され、最小限のコード変更で旗を200ステップ以内に捕まえる問題を解決できる。 | インターネットから新しいQ-Learningアルゴリズムを採用したが、十分に文書化されている;または既存のアルゴリズムを採用したが、期待される結果に到達していない。 | 学生はアルゴリズムを成功裏に採用することができなかったが、解決に向けて大きな進展を遂げた(状態の離散化、Q-Tableデータ構造の実装など)。 | --- **免責事項**: この文書は、AI翻訳サービス [Co-op Translator](https://github.com/Azure/co-op-translator) を使用して翻訳されています。正確性を期すよう努めておりますが、自動翻訳には誤りや不正確な表現が含まれる可能性があります。原文(元の言語で記載された文書)が正式な情報源と見なされるべきです。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の利用に起因する誤解や誤認について、当方は一切の責任を負いません。