Morikatron Engineer Blog

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

神様のゲーム#8

「体の中の警察」

FPSやRPGでのお楽しみの1つに、武器や装備のカスタマイズがある。
同じ武器でも装着する弾薬の種類を替えることができれば、武器の種類x弾薬の種類だけのバリエーションが生まれる。
装備にしてもしかり。武器を2つ持てるとすると、(武器の種類x弾薬)x(武器の種類x弾薬)だけのバリエーションが生まれる。
武器が5種類、弾薬が10種類だけでも、武器2つ持ちで単純計算で(5x10)x(5x10)=2,500パターンとなる。どういう組み合わせにしようかと十分に悩める(楽しめる)。
プレイヤーがうれしいだけじゃなく、作り手もうれしい。用意するのは、武器が5種類、弾薬が10種類、計15アイテムだけだからだ。ウインウインの仕様である。

続きを読む

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

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

彫刻:AIはこれができる?

人工知能(AI)は人間の芸術家や意志を置き換える、または私たちに創造性の新しい視点を示していますか?

AI生成およびAI対応のビジュアルアートワークに関しては、2D画像フィールドでは、過去数年間に多くの作業が行われています。その間、伝統的に彫刻のフィールドに属していた3Dオブジェクトのフィールドでの探索はほとんど無かったです

去年ある研究ではいくつの重要な改善をしました。

https://arxiv.org/pdf/1908.07587.pdf 

Developing Creative AI to Generate Sculptural Objects

機械学習を使って、二つの違うアルゴリズム「Amalgamated DeepDream (ADD)とPartitioned DeepDream (PDD)」でAIが彫刻を作れるようになりました。モデルは創造的な点群を生成することを学びます。 次に、これらの点群からメッシュが作成されます。

続きを読む

【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%同一です。

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

 

続きを読む

Cocos Creator + FastAPI + Gunicorn + Apache + EC2のメモ

こんにちは、モリカトロンのチーフエンジニア松原です。
この記事は、自作Pythonサーバーと自作Cocos Creatorクライアントの間でRestAPIとWebSockets通信を行う際の、Amazon EC2上での各種設定やコマンドについてのメモであります。

続きを読む

島旅のススメ(前編)

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で学習する
  • 学習済みモデルを動かす
  • 最後に
続きを読む