思考ノイズ

無い知恵を絞りだす。無理はしない。

Rhymester Live 公開リハーサル・ゲネプロにいってきた話

10月5日に行われたRhymester Liveのゲネプロに行ってきました。いやー最高だったのですが、どうまとめたもんかと考えているうちに週末に入り、記憶が定かなうちに書きはじめてます。考えが全然まとまってねぇw

Rhymester

Rhymesterとは2MC(宇多丸/Mummy-D)と1DJ(DJ Jin)からなる日本のヒップホップグループで日本のHIPHOPシーンの創世記をささえてきたグループなのです。

Rhymesterの公開リハーサルライブ

で、そのRhymesterのツアー名は、「KING OF STAGE」といい、今回のライブは「KING OF STAGE VOL. 13 ダンサブル Release Tour 2017」の公開リハーサルとなっています。

f:id:bython-chogo:20171007162305p:plain

http://www.rhymester.jp/

9月6日に発売されたアルバム「ダンサブル」のリリースLiveツアーを始めるのですが、Rhymesterはここ最近「公開リハーサル・ゲネプロ」というのを最初に行っています。通常のライブチケットより安くして客を入れてリハーサルを見てもらい、そのフィードバックをもって本番のツアーをブラシュアップさせるという試み。

リハーサルといっても、本番さながらのセットでもちろん楽曲も本番と同じクオリティで行われます。一部、映像が間に合ってなかったり、予定のEvent (a.k.a 余興) をスキップしていたようですが内容的には本番とそん色ないQualityで行われます。

感想箇条書き

セットリストやサプライズの内容はネタバレになってしまうので抑えながら箇条書き。

  • もちろん今回は新作アルバム・ダンサブルがメインでの構成。今回のアルバムはタイトル通りにノリやすく非常に自分好みでうれしい。
  • 始まる前のクラブチッタ松井さんの始まりの言葉。「リハーサルであるため、一部演出、映像が間に合っておりません。ご容赦ください。また2人のリリック等も間に合っておりません。」のエクスキューズに爆笑。
  • しょっぱなの3曲はマジあがる。たまらない。
  • 新作曲から「テーマつながり」で旧作曲の流れが一つあったが最高だった。昔のライブでいうとアルバムPOP LIFEツアーでの「敗者復活戦」からの「Born to Lose」のような。歴史のあるRhymesterの旧名(迷)曲がフックされるととても気持ちいい。
  • 旧作のつなぎで盛り上がる「鉄板」ネタも健在。上がりまくる流れにひと工夫加えてまじヤヴぁい。
  • J-HIPHOP リスペクトのカバー曲が登場。そんな昔の曲とは思えないほどやばすぎのカバーだった。全然新曲としてもいける。
  • さらに昔のJ曲のカバーもリクエストに登場。J-PopではなくJ歌謡曲の域。さすがの私もカバーしきれないほど古いw なぜそのチョイスw かっこよいんだけどそのチョイスに至った理由がききたいくらいぶっ飛んだ方向(笑) かっこよかったけど。そのあとのMCでハモリを披露する三人のおっさんHIPHOPレジェンドw
  • MCは相変わらず面白い。2MCの掛け合いが最高すぎる。個人的には「俺の緩さは半端ないよー」とお決まりのフロウで観客に語りかけるDさんに大笑いしてしまった。
  • 通常チケット5500円で、公開リハは3000円。宇多丸「2500円分を差し引いてパフォーマンスしますから。そうしないと割が合わないから!」。Mummy-D「それか2500円分、みなさんにはイヤーな思いをしてもらいます。」
  • Mummy-Dさんが髪切ったあと初めてみたけど、似合ってた。マネしたいけど似合わないだろうな。
  • 休憩の合間の偽CMはまだ間に合わず過去の迷作選でした。いいね。ひどいね。
  • 舞台セットもアルバムのイメージにとてもあっていると思います。

すべてが終わって、クラブチッタの松井さんが「いつも出待ちをしていただいている方がいらっしゃいますが、今日はこのあと深夜までここでミーティングをする予定なのでお控えいただきますようお願いいたします。」楽しく愉快にパフォーマンスるようにみせて、きっちり反省会をその日のうちにおこないまじめにブラシュアップを練っているようです。レジェンドになっても決して手を緩めぬ姿勢にリスペクトで、好きなものを仕事にしている人たちはこうした地道な積み重ねをおこなっているんだと思い知らされました。

お台場にも行く予定なので、「本番」も楽しみにしています。

10年後に1998年を振り返る記事をみてからもう9年

Webクロール中にたまたまBuzzFeedさんの以下のエントリを見つけました。

www.buzzfeed.com

あれ、これデジャブだなーと思って探したらそうそう、このまとめサイトを見てた記憶だ。

blog.livedoor.jp

そうか、このまとめ見てからもう9年も経つんだ。というかBuzzfeedさんの19年前を振り返るのって中途半端じゃね? でもなんとなくわかるのですが、感覚的に「1997年が20年前」よりも「1998年が20年前」というほうがちょっと心に刺さるものがあります。それが2007年と2008年でも同じ。下一桁の8は大台にのる直前感を醸し出すマジックナンバーなのかもしれませんね。

ちょっと9年前の痛ニューのコメントについて、9年後の自分がコメントを入れてみます。

55 名前: グラドル(アラバマ州) 投稿日:2008/01/01(火) 00:58:38.53 ID:4teCgfiA0
MXとか2chとかなにやってたんだおれ

9年後、5chになるって言ってもだれも信じないだろうな。MXとかWinnyとかYouTubeなどなどでなくなっちゃいましたね。

64 名前: 建設作業員(埼玉県)[sage] 投稿日:2008/01/01(火) 00:59:35.81 id:oVqD1qdQ0
時のオカリナも10年前の作品に。

さらに9年。ゼルダも新ゲーム機で健在

120 名前: 日本語教師(北海道)[sage] 投稿日:2008/01/01(火) 01:07:06.72 id:zPUln/+60
宇多田ってどんだけ若いんだよw

20年近くたっても35ですからねー

383 名前: 留学生(長野県) 投稿日:2008/01/01(火) 01:46:23.75 ID:E+hBCPSk0
10年間何してきたか? 違うよ、これから10年何をするかが大切なんだよ

2028年を見据えて頑張ります

415 名前: 人気者(東京都)[sage] 投稿日:2008/01/01(火) 01:51:29.71 ID:6AOQYFO+0
人の人生で一番重要な時期って10歳~30くらいだろ この10年が2回くらい過ぎたら人間の人生なんて終わったようなもんだ 30歳からなんて老いていくだけだろ

30半ばを過ぎてきましたが、まだまだこれからのつもりです。

868 名前: 山伏(dion軍) 投稿日:2008/01/01(火) 08:06:11.75 ID:wBQoO+020
未だにスマップや宇多田が人気とか文化停滞しすぎだろw

解散、3人がジャニーズ脱退=>New(s) Mapへ いろいろありますがいまだに活躍中。

423 名前: あらし(アラバマ州) 投稿日:2008/01/01(火) 01:55:23.84 id:fzVGd+k50
ニコ動って10年後にも存在してんのかな? 2ch以上に廃人を生み出すだろ・・・

角川と合併も、課金ユーザの減少がニュースになっています。

442 名前: 人気者(東京都)[sage] 投稿日:2008/01/01(火) 01:58:57.00 ID:6AOQYFO+0
ネットが普及してからおかしくなった ネットで得たものもたくさんあったが失ったもののほうが大きいだろう 10年後はもっとネットが進化してるからどうなるのかな・・・

ネットの中心はPCからスマホへ。You Tuberなるものが職業に。

443 名前: 朝日新聞記者(東京都) 投稿日:2008/01/01(火) 01:59:05.63 ID:3L3hY0id0
オレが1998年に購入したVAIO505 ソニータイマー故障で現在も現役。

大丈夫、もうVAIOソニーじゃないよ!

584 名前: ダンパ(アラバマ州) 投稿日:2008/01/01(火) 02:36:55.43 ID:1Y0Vdh3+P
10年前のこち亀こち亀モンスターPCマシンのキャプチャ・自重> そういやこち亀1000話って96年なのか・・・

こち亀がついに終わりました。このキャプチャは後になってみれば見るほど趣がでてきますね。

682 名前: ボーカル(コネチカット州) 投稿日:2008/01/01(火) 03:24:48.86 ID:+E7EmGMuO
この十年で国の借金がとんでもない額になりました

あっ。。。

829 名前: 愛のVIP戦士(アラバマ州) 投稿日:2008/01/01(火) 07:02:25.80 id:px9pfaj40 
平成になってからもう20年も経つのが驚き

平成も30年(31年?)までということになりました。

844 名前: 自衛官(福岡県)[] 投稿日:2008/01/01(火) 07:20:36.47 id:p6cvu58s0
10年後2ちゃんがあるかどうか知らんが、日本はどうなっているのだろうか・・・・

2chは名前を変えましたが、日本は問題を抱えながらまだそれなりにやっていってます。これからの10年もがんばりましょう。

それでは、2028年にまた!

備忘録 - Python/WIn10 64bit でMeCabを導入

最近 Chainer本をやっているのは、ぼんやりと言語系の機械学習をいっちょかみしたいなと考えているからなのですが、そろそろ必要な環境についてもPCへの導入を始めました。その過程のお話し。

日本語の文章を学習させるにあたって必要になるのが「わかち書き」ってやつで、ようは機械に日本語を学習させるにあたり、意味で区切った文節の間に英語のようにスペースなどの記号を入れる必要が出てきます。これって結構難儀だよなって思っていたのですが、あっさりとMeCabというフリーの形態解析エンジンがでてきました。。

MeCab: Yet Another Part-of-Speech and Morphological Analyzer

MeCab京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトを通じて開発されたオープンソース 形態素解析エンジンです。 言語, 辞書,コーパスに依存しない汎用的な設計を 基本方針としています。 パラメータの推定に Conditional Random Fields (CRF) を用 いており, ChaSenが採用している 隠れマルコフモデルに比べ性能が向上しています。また、平均的に ChaSen, Juman, KAKASIより高速に動作します。 ちなみに和布蕪(めかぶ)は, 作者の好物です。

これぞ情報の海の産物。めかぶだけに。この時代に生まれてよかったと感じざるを得ませんでした。 これを自分の開発の環境に合わせなくてはいけません。Windows10 64bitのPC上で、Python 2.7を使って動かしています。Pythonも活発な言語なのでこのあたり導入したライブラリの情報がいくらでもあるだろうとたかをくくっていたのですが、実際に導入する方法はちょっとトリッキーでした。ただそのトリッキーな方法もわかりやすく記載したエントリーがでてきます。

hassiweb-programming.blogspot.jp

Mecab 32bitをインストールする。ただ動かしたいのは64bit版なので、そのソースコードをダウンロードして少し情報を書き換えたうえでコンパイルPythonモジュールのビルドをしてようやく導入が完了します。

おおむね参照させていただいたページのプロセスで進んだのですが、どうしてもPython モジュールのコンパイルの場所でエラーが発生してしまいます。 曰く、"Unable to find vcvarsall.bat" とのこと。実はこれも先のページのトラブルシュートで記載があったのですが、解決に至りませんでした。*1

なんのこっちゃよくわからず、ぐるぐると検索して回った結果、以下のページで解決しました。

www.regentechlog.com

例えば、Python本体がMSC v.1500、つまりVC++9.0(2008)でコンパイルされていてインストールされているVC++が11.0(2012)の場合、 set VS90COMNTOOLS=%VS110COMNTOOLS% と環境変数をセットしてやるとVC++11.0を使ってコンパイルしてくれます。

私の環境だと、Visual Stdio 2015を導入していて、これだとVCのバージョンは14になるようです。一方で、Microsoftから提供されているPython2.7用のコンパイラはVC9となり、Visula Stdioでいうと2008と相当古いものになってしまうのです。VC9のコンパイラVisual Studio 2008のライブラリを探しに行くのですが、システム上にないためのこのエラーがでてきたということでしょうか。そこで上の環境変数のセットで存在するバージョンのライブラリのパスを設定する必要があったようです。私の環境の場合Visual Studio2015はVC14となるので、以下の設定になりました。

set VS90COMNTOOLS=%VS140COMNTOOLS%

これで、MeCabのPython2.7 (on 64bit) での導入は成功したようです。次のステップは日本語データの収集かな。

以下のサイトでも勉強させていただきました。

qiita.com

*1:よくよく確認すると、正しい対処法が書かれていたようです。解決できなかったのは理解不足が原因ですね。。。

「自然界の黄金比」をプロットしてみる

話題になった黄金率の話にうすーく乗っかってみたくなりました。

モチベーション

www.watto.nagoya

正直、連分数に関してちゃんと理解できていないのですが、とにかく、

(略)これは、黄金比有理数による近似は常に精度が最も悪くなることを意味するのである。 これまでと同様の手順で、100枚の葉をつけた状態が、下図である。有理数による近似の精度が悪い=腕が見えづらい=葉の重なりが少ないってことで、葉の重なりが最も少なくなる配置が得られた。

というところに素直に感動してしまいました。自然界、まじやべぇ。*1

というわけで、これは matplotlib を使って動画化してみてみるしかないと奮い立ちました。先に言ってしまうと、自分の理解が薄かったせいで最初に考えていたよりも作業は大変でした。

課題のおさらい

幹から1枚目の葉を出したら、1枚目の葉からθの角度で2枚目の葉を出す。3枚目の葉は2枚目の葉からやはりθの角度で出す。以下n枚目の葉まで、同様に繰り返す。 幹からn枚目の葉の中心までの長さは、√nとする。

こうして幹の周りから同じ角度でずらしながらで直径1の葉っぱを配置していきます。中心からのきょりも順番の数の平方根で遠ざかっていって、全体に効率よく太陽の光をあびることのできる配置を考えるんですね。そうすると黄金比を使ったやつが一番となるらしいです。今回は元エントリーの例に倣って 無理数の代表 θ = π×π も作って比較してみます。

プロット結果

とっとと実行結果からお見せします。葉っぱの枚数は300枚としました。 まずは π×π

f:id:bython-chogo:20170926021040g:plain

そして 黄金比を使った場合。

f:id:bython-chogo:20170926021151g:plain

きちんと前の円の群れで欠けたるところにすっぽりはまっていくように見えますね。不思議。

コード

jupyterで書いていますが、plt.show()使えば、jupyter以外でもできると思います。未確認。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches
from matplotlib import animation

from IPython.display import HTML

T = 360 * 1.0 / (1 + (1+math.sqrt(5))/2)
#T = 360 * 1.0 / (math.pi * math.pi) 

fig = plt.figure()
ax = plt.gca()
ax.set_xlim(-20, 20)
ax.set_ylim(-20, 20)

def ccl_plt(n, d):
    r = n * d * math.pi / 180 
    x = math.sqrt(n) * math.cos(r)
    y = math.sqrt(n) * math.sin(r)
    return x, y

def init():
    return []

def animate(j):
    plt.cla()
    patches = []
    for i in range(j):
        if i == 0:
            continue
        patches.append(ax.add_patch(plt.Circle(ccl_plt(i, T), 1.0, alpha=0.1, color='g')))

    return patches

    
anim = animation.FuncAnimation(fig, animate,
                               init_func=init,
                               frames=300,
                               interval=80,
                               blit=True)


#plt.show()
HTML(anim.to_html5_video())

もう一つ、簡単な静止画バージョン。

import math
import matplotlib.pyplot as plt
%matplotlib inline

def ccl_plt(n, d):
    r = n * d * math.pi / 180 
    x = math.sqrt(n) * math.cos(r)
    y = math.sqrt(n) * math.sin(r)
    return x, y

fig = plt.figure()
ax = fig.add_subplot(111)
plt.xlim(-20, 20)
plt.ylim(-20, 20)
for i in range(300):

    if i == 0:
        continue
    t = 360 * 1.0 / (1 + (1+math.sqrt(5))/2)
    #t = 360 * 1.0 / (math.pi * math.pi)
    x, y = ccl_plt(i, t)
    ax.add_patch(plt.Circle((x, y), 1.0, alpha=0.1, color='g'))
plt.show()

蛇足

今回の課題は簡単かなとたかをくくっていたのですが、いざやってみると黄金比の角度をどう設定すればいいのかわからず苦労しました。検索して見つけたのですが、黄金角っちゅうのがあるのですね。入力が度数である場合は以下の計算で黄金角を導き出されるようです。

t = 360 * 1.0 / (1 + (1+math.sqrt(5))/2)

参考:http://gakuen.gifu-net.ed.jp/~contents/museum/golden/page62.html

分母の部分が黄金比の式になってますね。

いやはや、時間がかかりすぎてしまった。眠い。

*1:というかこうしたネタを華麗に持ち出してくるwattoさん、しゅごい。

Chainer - ミニバッチベースの各モデルの学習結果を比較してみる

昨日に続き、Chainerのお勉強。第4章のIris識別方法を比較してみたものの備忘録です。

Chainerによる実践深層学習

Chainerによる実践深層学習

第4章ではChainerの例としてアヤメの花びらのデータから種類を判別するスクリプトがかかれているのですが、いくつかのモデルを紹介して、コードが以下のようにアップデートされていきます。

  • 通常のミニバッチ (4.4)
  • 誤差の累積 (4.5)
  • Softmax Cross Entropy (4.7)
  • ロジスティック回帰 (4.8)

これらのミニバッチをベースにした学習精度を比較します。バッチするファイルの選択はランダムに行っているため、実行ごとのデータの取り方によって結果は毎回変わってしまいます。正しい比較のため、同じデータをとって3000回学習した場合にこの4つのモデルで正解率と損失係数を並べて比べ、判別効率がどの程度変わるのかグラフで視覚化してみたいと思います。

では結果をどん。上にも書きましたが、毎回選ばれるランダム値によって結果が違ってくるので、3パターンを並べてみます。

f:id:bython-chogo:20170920004559p:plain f:id:bython-chogo:20170920004712p:plain f:id:bython-chogo:20170920004904p:plain

正解率の良い順としては、ロジステック回帰>誤差の累積=Softmax Cross Entropy>(通常の)ミニバッチでしょうか。今回はロジスティック回帰が相性が良いみたいです。大体は1000~1500ぐらいで上に張り付くようですが、通常のミニバッチは学習が少し遅いようです。また、損失率は別のモデルに対してそのまま比較することには意味がないこともわかります。なるほど。

前回: bython-chogo.hatenablog.com

Irisデータサンプルプログラムのグラフプロット

現在、以下の本でお勉強中。個人的な備忘録です。

Chainerによる実践深層学習

Chainerによる実践深層学習

オライリーDeep Learning本も一通りやったうえで、言語の学習をやりたくてこちらに手を出してみました。現在4章を実行中。

ここではChainerの利用例として、ディープラーニングでおなじみのアヤメの花びら分類問題をやる例のやつが出てきます。iris0.py のサンプルを走らせたのですが、学習の繰り返しごとにどの程度の正解率・損失率になるのか気になったのでプロットしてみました。それが以下のグラフ。

f:id:bython-chogo:20170918232542p:plain

10000回の学習を繰り返していくなかで正解率の変化(上)と、損失率の変化(下)を表しています。損失率は4000回目以降大きな変化はないように見えますが、正解率は少しずつ上がっているようです。

ダンケルク

危機が迫るなかでの撤退ミッション。

wwws.warnerbros.co.jp

世界大戦での実話を実写化したもの。 この「ダンケルクの戦い」とか「ダイナモ作戦」はヨーロッパなどでは有名な出来事みたいなのですが、おそらく一般の日本人はあまりよく知らないのではないでしょうか。と、偉そうに語る私もまったく知りませんでした。せっかくなので事前の予習は何もせず、見に行ってやりました。こうした史実に忠実な映画では絶対にストーリーを変えられなく、観客はネタバレをみこして作っているんですよね。*1今回もそのネタバレ上等映画なのですが、私を含む日本人にとっては前提知識がなく見に行っている人が多かったのではないかと思います。その辺で評価に差が出たるのかは気になるところですね。

飽きさせない編成

イギリス空軍、撤退兵、民間船など、いくつかの視点を切り替えながら物語をすすめていく編成で、各シーンごとにそれぞれの立場での緊張感を保ちながら進めていくので全体的に飽きさせることの少ない進行になっていたいました。映画を見ながらたまにあるような「ここ、間延びするなー」ということが全くありませんでした。一方でシーンの切り替えで意図的に時系列が前後することが多く、それによる混乱がおきたのも事実です。夜のシーンと昼のシーンを交互に切り替えたりするので、時差ボケが発生したり、前半におきたイベントのシーンの続きを後半で始めたりして、「お、おう、いまそうつながったんね」って少し追いつくのに労力がいりました。まぁたいした労力じゃないと思います。

まとめ

ダンケルクの戦いは英仏(特にイギリス)にとっての苦い成功歴史で、映画の題材的には扱いやすいのかと思います。多大の犠牲の上でなんとかやり遂げるのことができたミッション、という意味では、なんとなくですが進撃の巨人に通づるようなカタルシスがあるんかなと。 ただの美談ではなく、撤退を余技されない状況で敵に責められて自分の命が尽きるかもしれない恐怖感、撤退兵用の艦船にのれて一安心かと思いきやまた海に投げ出される。絶望的な環境の中で味方が敵になるなど、戦争の恐怖も伝えられてたと思います。ただ正直もうちょっとここを強めにしてもよいかとは思いました。個人的には少し生ぬるい感じとも感じたのですが、映倫関連も含めた大衆向けのバランスをとったものなのでしょう。 戦争もの、エンターテイメント映画として上質な仕上がりになっていたかと思います。

*1:例えば関ケ原は日本人にとっては石田が負けることは知っているうえで見に行きます。まさか西軍が勝つことを予想して見に行く人はほとんどいないと思います。