Morikatron Engineer Blog

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

AIネット対戦システムの紹介2

こんにちは、モリカトロン株式会社チーフエンジニアの松原です。 前回記事(AIネット対戦システムの紹介 - Morikatron Engineer Blog)に続きまして、AIネット対戦システムのAIクライアント(ゲームをプレイするためのプログラム)を紹介いたします。まずは…

可搾取量(exploitability)で不完全情報ゲームの戦略を評価する

こんにちは、エンジニアの竹内です。 以前のブログ記事【CFR】不完全情報ゲームを学習するAIを実装してみる【KuhnPoker】 - Morikatron Engineer Blogにて二人不完全情報ゲームのナッシュ均衡を計算的に求めるCounterfactual Regret Minimizationというアル…

CEDEC2020の補足 ー格闘ゲーム編その3ー

どうも、モリカトロンのプログラマおじさん、岡島です。 CEDEC からだいぶたってしまいましたが、前回 からの続きで 接待プレイについての補足などをしていこうと思います。 「接待」について そもそもなんで接待プレイをAIにさせたかったのか 接待プレイの…

AIネット対戦システムの紹介

こんにちは、モリカトロン株式会社チーフエンジニアの松原です。 今日は弊社が開発した「AIネット対戦システム」を紹介いたします。 「AIネット対戦システム」はインターネット上でいつでも誰でもゲームの対戦ができるシステムです。AIと人間とが分け隔てな…

CEDEC2020 質疑応答

こんにちは、モリカトロンでプログラマをやっています。馬淵です。 先日発表させていただいたCEDEC2020ですが、講演時でのコメントやアンケートが届いたため、今回はそれらに寄せられた質疑応答を私が代表してここに書かせていただきます。 発表時のスライド…

【GAIL】逆強化学習とGANを組み合わせた模倣学習アルゴリズムを実装してみる【CartPole】

こんにちは、エンジニアの竹内です。以前の記事でDQNに模倣学習の仕組みを取り入れたDeep Q-Learning from Demonstrationsというアルゴリズムを紹介しましたが、模倣学習には他にもいろいろなアプローチが存在します。 特にエキスパートの行動軌跡から環境の…

CEDEC2020の補足 ー格闘ゲーム編その2ー

どうも、モリカトロンのプログラミングおじさん、岡島です。 馬淵の記事で予告された通り、今回は僕から 用意した環境ではUE4の描画を切ることが出来ず(その辺りの話は岡島さんが書いてくれると思います) の部分について補足説明をします。 UE4とPythonを通…

CEDEC2020の補足 ー格闘ゲーム編その1ー

お久しぶりです。モリカトロンでエンジニアをやっております、馬淵です。 前回私がブログを書いたのがNEATに関して書いたとき*1(2020年2月24日)で、これを書き始めているのが2020年9月8日なので、私がブログを書くのは実に6ヶ月強ぶりになります。 何故これ…

【CEDEC2020】模倣学習でAIに3Dアクションゲームを攻略させてみる(後編)【ML-Agents】

こんにちは、エンジニアの竹内です。 この記事は【CEDEC2020】模倣学習でAIに3Dアクションゲームを攻略させてみる(前編)【ML-Agents】 - Morikatron Engineer Blogの続きとなります。 前編ではUnity側で行った学習の準備を中心的に扱いましたが、後編ではPyt…

【CEDEC2020】模倣学習でAIに3Dアクションゲームを攻略させてみる(前編)【ML-Agents】

こんにちは。エンジニアの竹内です。 まずはじめに、この記事はCEDEC2020というゲーム開発者向けのカンファレンスで発表した内容(CEDEC2020: 攻略、接待、変更に強いAIプレイヤー開発のためのアプローチ)の模倣学習部分について、発表で網羅しきれなかった検…

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

こんにちは!まるたんです。今日はみんな待てました、マンモスパート3の記事です! AI:ペイントができる? ペイントて言う時に、何ですか?意味を調べるとペイントは「着色のため物体の表面に塗る流動体」。AIはそれを物理的に行うことはできません。ただ…

【CFR】不完全情報ゲームを学習するAIを実装してみる【KuhnPoker】

こんにちは、エンジニアの竹内です。 これまでの記事ではDQfD、PPOといった深層強化学習のアルゴリズムを紹介してきましたが、今回は少し趣向を変えて、ニューラルネットを使わずに不完全情報ゲームの戦略を求めるアルゴリズムを扱いたいと思います。 不完全…

島旅のススメ(後編)

こんにちは。 モリカトロンのお外担当の三宅です。前編から間が空いてしまいました。その間に『Go To トラベル』キャンペーンが開始となりましたが、東京は除外など色々ゴタついていますね……。僕もこのキャンペーンを利用して島旅を計画しようとしていたので…

Pythonと音楽と...(3)MIDIファイルの再生

こんにちは、モリカトロンのチーフエンジニア松原です。 連載第3回めの今回は、MIDIファイルの読み込み、解析、音声波形の生成、合成、再生まで実装しました。 MIDIについて 概要 MIDIの仕様書を読みたい方は MIDIファイルの中身 MIDIファイルを入手するに…

Pythonと音楽と...(2)トラックとミックス

こんにちは、モリカトロンのチーフエンジニア松原です。 連載第2回めの今回は、前回作成した音を鳴らすプログラムをもうすこしキチンとした実用的なプログラムに改造して行きます。具体的には、音楽を扱いやすいように「トラック」を導入し、音の切れ目のプ…

ホットサンドメーカーを買いました

暑いんだか涼しいんだか分からない毎日が続いておりますが、皆様いかがお過ごしでしょうか。食べ物のお話担当、モリカトロンの大里です。 前回の更新でネタが尽きたら小麦粉の話でもするか、と思っていましたが、キャンプ大好き上司たちの話を聞いているうち…

Pythonと音楽と...(1)音を鳴らす

モリカトロンのチーフエンジニア松原です、こんにちは! 今回から「Pythonと音楽と...」と題して連載します(全部で四回くらいの予定)。第一回は「音を鳴らす」。音のデータ化や録音・再生の仕組みから、Pythonで指定した周波数の音を発音するところまで、…

WebSocket を TCP の代わりに使ってみる

どうも、モリカトロンでプログラマおじさんをしている岡島です。 現在 TCP を使ってプロセス間の通信を行っているのですが、同一のマシンで沢山のプロセスと通信しようとすると空いているポート番号がたくさん必要になるし、 ネットワーク上の複数の機器を使…

お取り寄せタレ・ドレッシング

梅雨も本格的になり湿度と暑さが迫りくる日々ですが、皆さまいかがお過ごしでしょうか。食べ物の話題担当、モリカトロンの大里です。 今回も引き続きお取り寄せのお話をいたします。といってもおやつがもう限界なので、ご紹介するのは液体です。タレやドレッ…

神様のゲーム#8

「体の中の警察」 FPSやRPGでのお楽しみの1つに、武器や装備のカスタマイズがある。同じ武器でも装着する弾薬の種類を替えることができれば、武器の種類x弾薬の種類だけのバリエーションが生まれる。装備にしてもしかり。武器を2つ持てるとすると、(武器…

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

こんにちは!マルタンです。 彫刻:AIはこれができる? 人工知能(AI)は人間の芸術家や意志を置き換える、または私たちに創造性の新しい視点を示していますか? AI生成およびAI対応のビジュアルアートワークに関しては、2D画像フィールドでは、過去数年間に…

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

どうもこんにちは。エンジニアの竹内です。 強化学習、とりわけ方策や価値関数をニューラルネットによって近似する深層強化学習と呼ばれるものにはDQNを始めとして実に様々な手法が存在します。 今回はその中でもDQNと並んで割とポピュラーなProximal Policy…

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

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

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

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

島旅のススメ(前編)

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

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

こんにちは、モリカトロンのAIエンジニアの本間です。 Unity ML-Agentsがついに1.0メジャーアップデートされましたね!(気付けばRelease-2がリリースされていました) 今回の記事ではgym_unityというシミュレーションパッケージとOpenAI Baselinesという強化…

お取り寄せおやつ

夏の気配がそろそろ見え始めましたが、皆さまお元気でお過ごしでしょうか。おやつ記事担当、モリカトロンの大里です。 暑くなってきましたので、おうちで楽しめるお取り寄せのお話でも。今まで食べた中で好きだなーと思ったものを列挙いたします。 その1:デ…

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

こんにちは、モリカトロン・プログラマのはっとりです。 このブログは「UnityとAx(Adaptive Experimentation Platform)の連携 - Morikatron Engineer Blog」の続編です。 はじめに 遺伝的アルゴリズム DEAP サンプルプログラム シンプルGA(簡易版) シンプ…

神様のゲーム#7

「増やす、読み取る、直す」 細胞が分裂するとき、当然、DNAも複製されて、分裂後のそれぞれの細胞に1個ずつ入る。DNAの複製は、元のDNAを見ながら(誰が?)写し取るわけではなく、自動的に複製される。まず、DNAの端がはがれる。ファスナーを開くイメージ…

AnImator#2 ― 3Dをロトスコープする簡易手法

こんにちは、モリカトロンのAIエンジニア兼オタクの銭です。 前回の記事 でアニメ作画におけるスムーズさをAI寄りの視点で考察しましたが、少し抽象的でピンと来ないかもしれません。なので今回はその中の一番最初の仮設ーー動きの情報量が保てばスムーズ-…