2018年3月30日金曜日

人狼知能開発のPythonAgent接続(AutoStarterバージョン)

https://qiita.com/aves/items/afefaa0d61fb9e21e2d4
にGUIを使ったPythonエージェントのつなぎ方が書いてありました.
@avesさん,ありがとうございます.

せっかくなので,AutoStarter.bat(AutoStarter.sh)でのつなぎ方についても説明をしておきます.

AutoStarter.iniで,エージェント数を指定して,それよりも少ない数のエージェントしか登録しなければ, 接続待ちの状態で止まりますので,その間にPythonエージェントをしていたポートにつなげれば,サーバにPythonエージェントを接続することが出来ます. AutoStarter.iniを以下のように書き直します.
  1. AutoStarter.iniを以下のように書き直す.
    lib=./
    log=./log/
    port=10000
    game=10
    view=true
    setting=./SampleSetting.cfg
    agent=5
    Sample1,org.aiwolf.sample.player.SampleRoleAssignPlayer,WEREWOLF
    Sample2,org.aiwolf.sample.player.SampleRoleAssignPlayer,SEER
    Sample3,org.aiwolf.sample.player.SampleRoleAssignPlayer
    Sample4,org.aiwolf.sample.player.SampleRoleAssignPlayer
    #Sample5,org.aiwolf.sample.player.SampleRoleAssignPlayer ←コメントアウト
  2. AutoStarter.bat(sh)を実行する
  3. Pythonエージェントをポート10000につなげる
以上です.

2018年3月14日水曜日

強いAI弱いAI

學鐙 第115巻 第1号(2018年春号)に安西祐一郎先生が「強いAI弱いAI」の書評を書いてくださいました.
安西先生らしいちょっと捻った面白いレビューです.

出版社・安西先生の使用許諾を得て公開しますので,ぜひご覧ください. 「強い AI・弱い AI ─研究者に聞く人工知能の実像」書評

書評を見て面白そうだなと思ったら,本書の方もぜひご覧ください.




2017年5月24日水曜日

第31回人工知能学会全国大会で発表数が多い研究者をランキングしてみた

昨日から第31回人工知能学会全国大会が始まっています.
人工知能に注目が集まっている昨今,どんな研究者がこの分野で特に活躍しているのでしょうか.
シンプルに発表件数が多い順にランキングしてみました.
なお,ランキングの論文数はプログラムからカウントし,同姓同名は同じ人物として扱っています.

第9位

まずは,同率9位. 名古屋大学の古橋 武先生(名古屋大学)と栗原 聡先生(電気通信大学),池上 高志先生(東京大学),坂田 一郎先生(東京大学)です.
いずれの先生も色々な研究を行っています.古橋先生は,ロボットから感性まで扱っていますし,栗原先生は群知能,センサネットワーク,深層学習とテーマが多彩です.

第3位

第3位は同率で6名の方がランクインしています.
森 純一郎先生(東京大学), 長井 隆行先生(電気通信大学), 白松 俊先生(名古屋工業大学), 吉川 大弘先生(名古屋大学), 福田 直樹先生(静岡大学), 伊藤 孝行先生(名古屋工業大学)です.
それぞれ10件のご発表があります.
開催地が名古屋だからか,東海周辺の先生方が多いですね.
やはり研究テーマは皆さん多彩です.たとえば,伊藤先生,白松先生,福田先生の市民共創知研究会の構想:グローバルで持続可能な地域創生活動支援の仕組みなどは一見人工知能とは無関係のようにも見える研究ですが,こういった広い分野を受け入れるのも人工知能学会の懐の広さではないでしょうか. 深層学習だけが人工知能ではありません.

第2位

鳥海 不二夫(東京大学)です. なんというか,ごめんなさい.
近未来チャレンジセッション「NFC (卒業)異種協調型災害情報支援システム実現に向けた基盤技術」人狼知能で学ぶAIプログラミングをよろしくお願いします.

第1位

栄えある第一位はやはり松尾 豊先生(東京大学)でした.なんと20件もの論文があります.
今をときめくディープラーニングを牽引する松尾先生が発表数第一位というは極めて納得いく結果です.うん,なんだかんだ言ってやっぱり深層学習は熱いですね.

というわけで,トップ10ランキング表を付けておきます.

順位研究者名所属論文数
1松尾 豊東京大学20
2鳥海 不二夫東京大学11
3森 純一郎東京大学10
3長井 隆行電気通信大学10
3白松 俊名古屋工業大学10
3吉川 大弘名古屋大学10
3福田 直樹静岡大学10
3伊藤 孝行名古屋工業大学10
9古橋 武名古屋大学9
9栗原 聡電気通信大学9
9池上 高志東京大学9
9坂田 一郎東京大学9
敬称略


2017年度論文数ベスト100研究者

ついでに,10位以降のベスト100のランキングは以下のようになります.皆さんは何位でしたか?
順位研究者名論文数
13荒井 幸代8
13中村 友昭8
13小林 一郎8
13岡田 真人8
13藤田 桂英8
18井上 克巳7
18鹿島 久嗣7
18岡 瑞起7
18加藤 昇平7
22稲邑 哲也6
22平嶋 宗6
22石川 翔吾6
22矢入 郁子6
22岡 夏樹6
22日和 悟6
22馬場 雪乃6
22大塚 孝信6
22和泉 潔6
22竹林 洋一6
22横尾 真6
22福井 健一6
22橋本 康弘6
22廣安 知之6
22仙石 晃久6
22宇津呂 武仁6
38大知 正直5
38水山 元5
38大森 隆司5
38羽室 行信5
38平田 圭二5
38浅谷 公威5
38榊 剛史5
38本村 陽一5
38中山 英樹5
38野中 朋美5
38伊藤 孝紀5
38高間 康史5
38鷲尾 隆5
38ジメネス フェリックス5
38中野 有紀子5
38五十嵐 康彦5
38上野山 勝也5
55高瀬 裕4
55清水 美穂4
55櫻井 祐子4
55河原 吉伸4
55萩原 良信4
55松下 光範4
55瀧川 一学4
55武藤 敦子4
55跡見 順子4
55杉山 弘晃4
55金子 正秀4
55小野 智司4
55今井 倫太4
55中村 剛士4
55古崎 晃司4
55大澤 博隆4
55跡見 友章4
55松井 孝典4
55西村 拓一4
55林 雄介4
55東中 竜一郎4
55小方 孝4
55山下 和也4
55森山 甲一4
55大武 美保子4
55吉田 光男4
55市瀬 龍太郎4
55岡田 将吾4
55田中 文英4
55工藤 卓4
55谷口 忠大4
55犬塚 信博4
55加納 政芳4
88松尾 義博3
88武田 英明3
88田和辻 可昌3
88内田 智之3
88三輪 誠3
88砂山 渡3
88渥美 雅保3
88沖本 天太3
88駒谷 和範3
88畑中 裕司3
88北原 鉄朗3
88佐々木 裕3
88秀島 栄三3
88長谷川 克也3
88稲葉 雅幸3
88松村 真宏3
88宇野 毅明3
88藤井 秀樹3
88池田 圭佑3
88中村 哲3
88荒牧 英治3
88松本 和幸3
88戸田 浩之3
88山田 誠二3
88岩澤 有祐3
88林 佑樹3
88尾形 哲也3
88相澤 清晴3
88沼尾 正行3
88河瀬 諭3
88穴田 一3
88高野 雅典3
88日永田 智絵3
88岩橋 直人3
88柳井 孝介3
88宮原 哲浩3
88下田 和3
88松居 辰則3
88吉田 智一3
88新田 克己3
88北 研二3
88福田 一郎3
88尾崎 知伸3
88森田 武史3
88番原 睦則3
88芦原 佑太3
88堂坂 浩二3
88永田 賢二3
88町村 尚3
88西田 知史3
88吉村 忍3
88岡田 慧3
88寺野 隆雄3
88石黒 浩3
88若宮 翔子3
88柳瀬 利彦3
88宮澤 和貴3
88岡本 洋3
88麻生 英樹3
88山田 クリス孝介3
88西本 伸志3
88早川 博章3
88山崎 俊彦3
88那須野 薫3
88鈴木 祐介3
88坪内 孝太3
88山下 達雄3
88吉田 稔3
88岡田 克彦3
88岩沼 宏治3
88青木 達哉3
88和田 健太郎3
88諏訪 正樹3
88中山 浩太郎3
88小郷原 一智3
88松井 藤五郎3
88伊藤 貴之3
以上敬称略


なお,ランキングが高い研究者同士の関係を知りたい方は,第31回人工知能学会全国大会の発表から人工知能研究者のネットワークを作ってみたをご覧ください.


2017年5月23日火曜日

第31回人工知能学会全国大会の発表から人工知能研究者のネットワークを作ってみた

5月23日から26日の間名古屋で第31回人工知能学会全国大会が開かれています.
とりあえず,せっかく人工知能研究者が一同に介す場なので,人間関係を調べてみようということで, 人工知能研究者のネットワークを作ってみました.
共著が一つでもある人をリンクでつないだ図になります.


とりあえず,全体像はこんな感じ.
いくつか大きなコンポーネントに分かれています.
人工知能なんという小さな分野でも一枚岩じゃないですねw
とはいえこれを見ても,何も情報が無いので,上位5コンポーネントについてどんな研究グループがあるのかを見てみましょう.

抽出された最大コンポーネントがこちら.
西村先生,本村先生という産総研人工知能研究センターのメンバーと電通大長井先生,中村先生,立命館谷口先生,玉川大の大森先生などが入っています.機械学習,認知,サービス工学とかその当たりが中心でしょうか.
いくつかのグループがブリッジとなる人を介して一つのコンポーネントになっていることが分かります.


次に大きかったコンポーネントはこちら.これは見るからにソーシャルウェブ関係の人達が中心ですね.インタラクションや科学技術社会論が繋がっているのがなかなか興味深いですね.
確かに,その辺と近い気がする・・・


ここに出ている右側のグループは伊藤先生を中心としたマルチエージェント系のグループですね.左側は音楽情報系のグループのようです.一見大分違うグループにも見えますが,北原先生がコネクションとなっているようです.


こちらは大阪大学の沼尾先生らを中心とした研究グループと関連するところでしょうか.データマイニングとか知識アーキテクチャの研究家と思います.

 こちらは明らかに松尾先生を中心とした深層学習グループでしょうね.
ディープラーニングブームを考えると,ここが一番大きいかなと思ったのですが,意外とそんなことはありませんでした.

というわけで,人工知能学会全国大会における共著関係から,どんな研究グループがあるのかを見てみました.
とはいえ,2000人近く参加している学会のため,私自身もあんまり研究内容をよく知らない先生も多いため,見当違いのことを書いているかもしれません.
間違いがあったら,メールまたは,twitter(@toritorix)までご連絡ください.


せっかくデータを作ったので,ネットワークデータは公開しておきます.
ネットワークデータのダウンロード
間違いを発見したら教えてください.

なお,データはJSAIのプログラムページからぶっこ抜いて処理しています.
同姓同名の人は同一人物として扱われているので,もしかしたらその辺で間違いはあるかもしれません.

こちらもどうぞ.
第31回人工知能学会全国大会で発表数が多い研究者をランキングしてみた.

2016年12月1日木曜日

WindowsでDeepLearning・その2

さて,昨日の段階で,

    **************************************************
    *** WARNING: Include files not found: ['cudnn.h']
    *** WARNING: Skip installing cudnn support
    *** WARNING: Check your CFLAGS environment variable
    **************************************************
というエラーが出て終わっていたので,FIXを目指す. https://github.com/pfnet/chainer/issues/1699 を見てみたけど,どうも最後まで解決はしていないらしい.

とにかく問題はcuDNNがうまくインストールされていないことらしいということで, あたりがついてきたので,その辺を調べてみる.

どうやらcuDNNは中身を C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0 以下に上書きする必要があったようだ. http://qiita.com/okuta/items/f985b9da6de33a016a75

cuDNNを無事ダウンロードできた人は、展開したファイルをC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5に上書きしてください。
cuDNNv3の場合、cudnn64_70.dllがCUDA\v7.5\binフォルダに、cudnn.hがCUDA\v7.5\includeフォルダにcudnn.libがCUDA\v7.5\lib\x64に入っていれば大丈夫です。

これで再び

>pip install chainer --no-cache-dir -vvvv
でインストールすると,エラーは発生せずに無事インストールできた.

が,実行してみると

>python train_mnist.py --gpu 0

GPU: 0
# unit: 1000
# Minibatch-size: 100
# epoch: 20

Traceback (most recent call last):
  File "C:\usr\Python35\lib\site-packages\cupy\cuda\compiler.py", line 49, in _run_nvcc
    return subprocess.check_output(cmd, cwd=cwd, stderr=subprocess.STDOUT)
  File "C:\usr\Python35\lib\subprocess.py", line 626, in check_output
    **kwargs).stdout
  File "C:\usr\Python35\lib\subprocess.py", line 708, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['nvcc', '--preprocess', '-Xcompiler', '/wd 4819', '-m64', 'C:\\Users\\***\\AppData\\Local\\Temp\\tmp_ak8290o\\kern.cu']' returned non-zero exit status 2

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "train_mnist.py", line 107, in 
    main()
  File "train_mnist.py", line 104, in main
    trainer.run()
  File "C:\usr\Python35\lib\site-packages\chainer\training\trainer.py", line 292, in run
    entry.extension(self)
  File "C:\usr\Python35\lib\contextlib.py", line 77, in __exit__
    self.gen.throw(type, value, traceback)
  File "C:\usr\Python35\lib\site-packages\chainer\reporter.py", line 90, in scope
    yield
  File "C:\usr\Python35\lib\site-packages\chainer\training\trainer.py", line 289, in run
    update()
  File "C:\usr\Python35\lib\site-packages\chainer\training\updater.py", line 170, in update
    self.update_core()
  File "C:\usr\Python35\lib\site-packages\chainer\training\updater.py", line 182, in update_core
    optimizer.update(loss_func, *in_vars)
  File "C:\usr\Python35\lib\site-packages\chainer\optimizer.py", line 392, in update
    loss = lossfun(*args, **kwds)
  File "C:\usr\Python35\lib\site-packages\chainer\links\model\classifier.py", line 67, in __call__
    self.y = self.predictor(*x)
  File "train_mnist.py", line 24, in __call__
    h1 = F.relu(self.l1(x))
  File "C:\usr\Python35\lib\site-packages\chainer\links\connection\linear.py", line 91, in __call__
    self._initialize_params(x.size // x.shape[0])
  File "C:\usr\Python35\lib\site-packages\chainer\links\connection\linear.py", line 77, in _initialize_params
    initializer=self._W_initializer)
  File "C:\usr\Python35\lib\site-packages\chainer\link.py", line 180, in add_param
    data = initializers.generate_array(initializer, shape, self.xp)
  File "C:\usr\Python35\lib\site-packages\chainer\initializers\__init__.py", line 45, in generate_array
    initializer(array)
  File "C:\usr\Python35\lib\site-packages\chainer\initializers\normal.py", line 94, in __call__
    Normal(s)(array)
  File "C:\usr\Python35\lib\site-packages\chainer\initializers\normal.py", line 31, in __call__
    loc=0.0, scale=self.scale, size=array.shape)
  File "cupy/core/core.pyx", line 1107, in cupy.core.core.ndarray.__setitem__ (cupy\core\core.cpp:22267)
  File "cupy/core/core.pyx", line 1336, in cupy.core.core.elementwise_copy (cupy\core\core.cpp:49642)
  File "cupy/core/elementwise.pxi", line 771, in cupy.core.core.ufunc.__call__ (cupy\core\core.cpp:40576)
  File "cupy/util.pyx", line 35, in cupy.util.memoize.decorator.ret (cupy\util.cpp:1261)
  File "cupy/core/elementwise.pxi", line 579, in cupy.core.core._get_ufunc_kernel (cupy\core\core.cpp:37190)
  File "cupy/core/elementwise.pxi", line 32, in cupy.core.core._get_simple_elementwise_kernel (cupy\core\core.cpp:27744)
  File "cupy/core/carray.pxi", line 87, in cupy.core.core.compile_with_cache (cupy\core\core.cpp:27431)
  File "C:\usr\Python35\lib\site-packages\cupy\cuda\compiler.py", line 131, in compile_with_cache
    base = _empty_file_preprocess_cache[env] = preprocess('', options)
  File "C:\usr\Python35\lib\site-packages\cupy\cuda\compiler.py", line 94, in preprocess
    pp_src = _run_nvcc(cmd, root_dir)
  File "C:\usr\Python35\lib\site-packages\cupy\cuda\compiler.py", line 56, in _run_nvcc
    raise RuntimeError(msg)
RuntimeError: `nvcc` command returns non-zero exit status.
command: ['nvcc', '--preprocess', '-Xcompiler', '/wd 4819', '-m64', 'C:\\Users\\*****\\AppData\\Local\\Temp\\tmp_ak8290o\\kern.cu']
return-code: 2
というわけで,実行時エラー.
さて,ここからどうするか・・・

2016年11月30日水曜日

WindowsでDeepLearning・その1

Windows10でDeepLearningを目指す.
基本的に,
http://qiita.com/akrian/items/953082aa8f00479dbb01
を参考にする.

まずは,Python3.x系のインストール.
2.7系とどちらを入れるべきか悩んだけど,参考ページが3.5なので同じものを.

https://www.python.org/downloads/
から,Python3.5.2 Windows x86-64 web-based installerを選択してDL.
そして,インストール.





Visual Studio CommunityをDL
https://www.visualstudio.com/ja/downloads/
最新版でいいのかな.
さすがMicrosoft.いきなりInstallが始まったぞ.



かなり長時間のインストール後,再起動.

続いてCudaを導入.
https://developer.nvidia.com/cuda-downloads



cuDNNをインストール

Pycudaをインストール

Windows環境変数を追加

Chainerのインストール

と調子よくインストールが完了していったが,
・Chainerのサンプルファイルを実行
でこけた.

GPU: 0
# unit: 1000
# Minibatch-size: 100
# epoch: 20

Traceback (most recent call last):
  File ".\train_mnist.py", line 107, in <module>
    main()
  File ".\train_mnist.py", line 56, in main
    chainer.cuda.get_device(args.gpu).use()  # Make a specified GPU current
  File "C:\usr\Python35\lib\site-packages\chainer\cuda.py", line 180, in get_device
    check_cuda_available()
  File "C:\usr\Python35\lib\site-packages\chainer\cuda.py", line 85, in check_cuda_available
    raise RuntimeError(msg)
RuntimeError: CUDA environment is not correctly set up
(see https://github.com/pfnet/chainer#installation).CuPy is not correctly installed. Please check your environment, unin
stall Chainer and reinstall it with `pip install chainer --no-cache-dir -vvvv`.
だそうで.

試しに,
> pip install chainer --no-cache-dir -vvvv
としてみたけど,案の定ダメ.

http://hurikake.hatenadiary.jp/entry/2016/09/26/232246
を参考にして,
いろいろ試した結果,pathが有効になっていなかった.
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
へのPathが有効になっていなかった.

ログインしなおして再チャレンジ.
今度は,
distutils raises an error: Unable to find vcvarsall.bat
だそうな.
http://www.regentechlog.com/2014/04/13/build-python-package-on-windows/
によると,
C/C++などのビルドが必要なファイルを含むPythonパッケージをWindows環境下でインストールしようとすると「Unable to find vcvarsall.bat」とエラーがでることがあります。

Pythonパッケージにビルドが必要なファイル(pure Python以外のC/C++など)が指定されている場合はインストール時にコンパイルが必要ですが、Windows環境ではデフォルトでPython本体をコンパイルしたVC++と同じバージョンのVC++を呼ぼうとします。そのため、Python本体をコンパイルしたバージョンのVC++がないとエラーになります。
なるほど.
調べてみると,
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.version
'3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)]'
>>>
ということで,MSC v.1900->VS13でコンパイルしたことが分かる.
・・・と思ったけど,
http://stackoverflow.com/questions/33323172/vcvarsall-bat-needed-for-python-to-compile-missing-from-visual-studio-2015-v-1
によると, vcvarsall.bat がないことがあるらしい.
調べてみたら,確かに
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\vcvarsall.bat 
はない.
http://stackoverflow.com/questions/33323172/vcvarsall-bat-needed-for-python-to-compile-missing-from-visual-studio-2015-v-1#comment63185046_35243904
を参考に,
c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\vsvars32.batをコピーして,vcvarsall.batとリネームしてみる.

とりあえず動いたけど,
GPU: 0
# unit: 1000
# Minibatch-size: 100
# epoch: 20

C:\usr\Python35\lib\site-packages\chainer\cuda.py:90: UserWarning: cuDNN is not enabled.
Please reinstall chainer after you install cudnn
(see https://github.com/pfnet/chainer#installation).
  'cuDNN is not enabled.\n'
というわけで,cuDNNは使えていないらしい.
そのうえ,実行も失敗している.

う~む・・・
いずれにせよ,今日は時間がないので,ここまで.


2016年2月1日月曜日

2006年の節分まで恵方巻なんてなかった!?クックパッドデータを使って調べてみた.

節分が近づいてきました.
で,最近は恵方巻きとか太巻きとか節分に食べる訳ですが,子供の頃そんな風習無かったよな~としか思えない.

マスコミに踊らされているとか,コンビニ戦略だ,とか色々言われているけど,一体いつから恵方巻きとか太巻きとかが節分に食べられるようになったのか気になる.
というわけで,クックパッドとNIIによって提供されているクックパッドレシピデータを使って調べてみた.データは1998年から2014年まである.

とりあえず,レシピのタイトルに「恵方巻き」「太巻き」が入っているレシピを検索し,いつ投稿されたのかを調べる.ただし,全体の投稿数と比較しないと何とも言えないので,
「一日に投稿されたレシピの内,恵方巻き・太巻きが含まれている割合」
を各日ごとに検出してみた.



ちゃんとピークは2月ごとに訪れているらしい.
んでもって,最初のピークは2003年2月.

う~ん,2003年より前はクックパッドのデータにどれほど統計的意味があるか分からないレベルなので,何とも言えないかな.
ただ,別途調べた「雑煮」だと2000年からピークが出ているので,それに比べるとやはり節分に太巻きという風習は2000年代初頭はそれほどメジャーなイベントでは無かったのかも知れない.

なお,恵方巻のみだと2006年が初出.恵方巻きという言葉自体は2006年くらいから使われ始めたもののようだ.
それまでは一件もレシピがないみたいだけど、誰がこの名前つけたんだろう?




というわけで,思ったより太巻きを食べる風習というのは昔からあったみたいだけど,恵方巻きと言う言葉は最近メジャーになったものらしいということが分かりました.

クックパッドのデータ,近年の食文化の変化を見るには適しているのかも.
論文にはなりづらそうだけど.