Morikatron Engineer Blog

モリカトロン開発者ブログ

【Tensorflow2】強化学習アルゴリズムPPOを実装してみる【CartPole】

どうもこんにちは。エンジニアの竹内です。
強化学習、とりわけ方策や価値関数をニューラルネットによって近似する深層強化学習と呼ばれるものにはDQNを始めとして実に様々な手法が存在します。
今回はその中でもDQNと並んで割とポピュラーなProximal Policy Optimization(PPO)について解説しつつ、Tensorflow2を使って実際に実装していこうかと思います。
若干古いアルゴリズムですが、扱いやすく性能も良いので「これから強化学習を始めようと思うけど、手法が多すぎてなにから手をつければ良いかわからない」「そこそこ性能が良くて実装が簡単な手法を知りたい」といった方の参考になれば幸いです。

  • PPOとは
    • ニューラルネットと目的関数
      • ①方策
      • ②状態価値
      • ③エントロピー項
    • GAE
  • PPOの実績
    • Unity Obstacle Tower
    • OpenAI Retro Contest
    • Animal AI Olympics
    • OpenAI Five
    • Unity ML-Agents
  • 実装
    • メイン部分
    • メモリー
    • GAEの計算
    • 損失の計算
    • 各種パラメータ
  • 結果
  • 参考にした資料・サイト
続きを読む

幻想的な旅:自分のマンモスを復活しました・パート1

こんにちは!マルタンです。

マンモスのアピール

絶滅した動物を生き返らせる可能性は何年も人々を魅了してきました。なんで例えば「ジュラシック・パーク」が文化的現象であった理由の1つ。僕は子供の頃からそういうプロジェクトにワクワクしています。

現在科学の進歩により、多くの種の復活プロジェクトはマンモスを中心に集中しています。

マンモスは哺乳綱長鼻目ゾウ科マンモス属に属する種の総称である。現在は全種が絶滅している。

f:id:morika-martin:20200604145058j:plain

https://www.britannica.com/animal/mammoth-extinct-mammal

現生のゾウの類縁だが、直接の祖先ではない。約400万年前から1万年前頃(絶滅時期は諸説ある)までの期間に生息していた。巨大な牙が特徴で、種類によっては牙の長さが5.2メートルに達することもある。

なぜならマンモスを中心に集中している理由のは保存状態の良い冷凍マンモスがシベリアで発見されていた。そして、マンモスDNAはエレファントDNA99.4%同一です。

理由を理解するには、クローニングの仕組みを理解する必要があります。

 

続きを読む

島旅のススメ(前編)

f:id:morika-miyake:20200602142440j:plain

これも東京都

こんにちは。
ようやく外出自粛も緩和され、少しづつ普段の生活を取り戻しつつある中、皆さんいかがお過ごしでしょうか?
モリカトロンでも、状況を見極めつつ、今後もオフィス勤務とリモートワークを併用する新しい勤務形態を模索しているところです。

さて、リモートワークの1回を挟んで、これまでキャンプ、どちらかというと緑の中でのお話を書いてきましたので、今回は視点を移して「海」そして「島」の魅力について書いてみたいと思います。
先日「Go Toキャンペーン」と銘打った国内旅行の半額補助のキャンペーンが発表になりましたし、「島旅」がコロナ後の皆さんの旅行の選択肢の一つになれば嬉しいです。

 

続きを読む

Unity ML-Agents(Release 2)+baselinesを使って学習してみる

こんにちは、モリカトロンのAIエンジニアの本間です。

Unity ML-Agentsがついに1.0メジャーアップデートされましたね!(気付けばRelease-2がリリースされていました)
今回の記事ではgym_unityというシミュレーションパッケージとOpenAI Baselinesという強化学習の実装セットを使ってサンプルプロジェクトで学習します。以前投稿したMacでUnity ML-Agents(v1.0)の環境構築という記事ではmlagents-learnというコマンドを使うことでコードを書かずに学習しましたが、今回はUnity ML-Agents gym-unityドキュメントを参考に少しだけコードを書いてみます。


  • 検証環境
  • (必要なら)Unity ML-AgentsのPythonパッケージをインストール
    • mlagents_envsをインストール
    • gym_unityをインストール
  • Unityプロジェクト(PushBlock)をビルド
    • (補足)PushBlockについて:
  • OpenAI Baselinesをインストール
  • DQNで学習する
  • 学習済みモデルを動かす
  • 最後に
続きを読む

お取り寄せおやつ

夏の気配がそろそろ見え始めましたが、皆さまお元気でお過ごしでしょうか。
おやつ記事担当、モリカトロンの大里です。

暑くなってきましたので、おうちで楽しめるお取り寄せのお話でも。
今まで食べた中で好きだなーと思ったものを列挙いたします。

  • その1:デンマークチーズケーキ
  • その2:いちごプリン(シエスタ)
  • その3:蜂蜜ロールケーキ(シエスタ)
  • その4:バースデードゥーブル
  • その5:あんぽーね
続きを読む

UnityとDEAP(遺伝的アルゴリズム)の連携

こんにちは、モリカトロン・プログラマのはっとりです。

このブログは「UnityとAx(Adaptive Experimentation Platform)の連携 - Morikatron Engineer Blog」の続編です。

  • はじめに
  • 遺伝的アルゴリズム
  • DEAP
  • サンプルプログラム
    • シンプルGA(簡易版)
    • シンプルGA(フルスペック版)
    • 実数値GA
  • 動作環境など
    • GitHub
    • 動作環境
    • 実行手順
  • ベイズ最適化と遺伝的アルゴリズムの比較
  • 最後に

はじめに

前回はUnityとPythonでベイズ最適化のサンプルプログラムを作成しました。
今回は前回のサンプルプログラムに遺伝的アルゴリズムを追加します。

続きを読む