Morikatron Engineer Blog

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

Python

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

英語をカタカナ表記に変換してみる

モリカトロン宮本です。 最近は自然言語処理をゲームに役立てるためのもろもろに取り組んでいます。 さて、今日は英語を無理矢理カタカナ表記に変換する方法をご紹介します。 日本語には「よみ」と「表記」がありますが、機械学習の分野では、「よみ」は比較…

MacでUnity ML-Agents(v1.0)の環境構築

こんにちは、モリカトロンのAIエンジニアの本間です。 Unity ML-Agentsがついに1.0メジャーアップデートされましたね! という事で、この記事では環境構築した後にサンプルプロジェクトで学習します。 Unity ML-Agentsとは 検証環境 (必要なら)Unityをイン…

UnityとAx(Adaptive Experimentation Platform)の連携

はじめまして、モリカトロン・プログラマのはっとりです。 今日からブログを始めます。 初回はUnityとPythonのAx(Adaptive Experimentation Platform)を連携させてみた件について書こうと思います。 はじめに Axとは ベイズ最適化とは Axの超簡単なサンプル …

【GiNZA】三点リーダーで文を区切らないようにする

こんにちは。モリカトロンのプログラマでラグビー好きの服部です。 最近は自然言語処理で GiNZA を利用しています。 基本的に処理も速く高機能でとても助かっているのですが、三点リーダー(…)の扱いですこし苦労しました。 その時の対応方法をご紹介したい…

Anaconda の NumPy が高速みたいなので試してみた

こんにちは、モリカトロンでプログラマおじさんをやってる岡島です。 pip install で導入した NumPy と conda install で導入した NumPy とでは内部で使われているライブラリが違い、後者の方が高速だという記事を見つけました。 orizuru.io minus9d.hatenab…

Windows と Linux で Python 実行速度を比較してみた

こんにちは、モリカトロンでプログラマおじさんをやってる岡島です。 会社で購入した新しい ノートPC を Windows10 と Ubuntu Linux のデュアルブートにしたので、 かねてより気になっていた、OS の違いによる Python の速度比較をしてみました。 CPU や GPU…

ガイスターのプログラムを紹介します

こんにちは、モリカトロン株式会社チーフエンジニアの松原です。 今日は、モリカトロンがオープンソースとして公開しているガイスターのプログラムとその周辺情報を紹介します。この記事の対象読者はゲームAIに興味がある人、ボードゲームが好きな人、ガイス…

Python のプログラムを並列処理で高速化する

こんにちは、モリカトロンでプログラマおじさんをやってる岡島です。 Python でプログラムを書いていると高速に実行したくなることが多々あると思います。 でも、「とにかく実行速度を最速に!」みたいな人は最初から Python なんて使わないですよね。 とい…

(高速化の前に) Python のプログラムをプロファイリングして遅い処理を特定しよう

こんにちは、モリカトロンでプログラマおじさんをやってる岡島です。 Python でプログラムを書いていると高速に実行したくなることが多々あると思います。 でも、「とにかく実行速度を最速に!」みたいな人は最初から Python なんて使わないですよね。 とい…