Island Life

2013/07/26

実数部が0にならない話

「-2の1.5乗」は純虚数になるはずで、HP 35sでは実際そうなるのだけど、 プログラミング言語処理系では実数部に誤差が乗ってしまう、という話。 Gaucheもそうなる。

gosh> (expt -2 1.5)
-5.195564742431613e-16-2.82842712474619i

(expt x y)は、結果が「明らかに実数」でない場合は次のように計算している。

    x^y == e^{y * log(x)}
        == e^{y * log(|x|)} * e^{y * arg(x) * i}

xが負の実数ならarg(x) = πなので、

    x^y == e^{y*log(-x)} * e^{πyi}
        == e^{y*log(-x)}*cos(πy) + e^{y*log(-x)}*sin(πy)i

y = 1.5の時実部が0にならない理由は、1.5πをdoubleで正確に表現できないから cos(1.5π)が0にならないってことなんだけど、なんかそれもださい気がする。 1.5自体はdoubleで正確に表現できるんだし。

sinpi(x) = sin(x*π) といった関数があれば、 xがキリの良い数(1/2の倍数)の時に正確な値が出せそうだ。 浮動小数点数演算でもsin(0), cos(0)は常に正確なので、 1/2πの倍数が0にくるように入力を適切に変換してやればよい。 そんな感じで作ってみたのがこれ。

gosh> (for-each (^x (print (%sinpi x))) (lrange -2 2.001 1/8))
0.0
0.3826834323650898
0.7071067811865475
0.9238795325112867
1.0
0.9238795325112867
0.7071067811865475
0.3826834323650898
0.0
-0.3826834323650898
-0.7071067811865475
-0.9238795325112867
-1.0
-0.9238795325112867
-0.7071067811865475
-0.3826834323650898
0.0
0.3826834323650898
0.7071067811865475
0.9238795325112867
1.0
0.9238795325112867
0.7071067811865475
0.3826834323650898
0.0
-0.3826834323650898
-0.7071067811865475
-0.9238795325112867
-1.0
-0.9238795325112867
-0.7071067811865475
-0.3826834323650898
0.0
#<undef>

これを使うと実部の誤差はこの通り消える。

gosh> (expt -2 1.5)
0.0-2.82842712474619i

確か以前にもsin(nπ)あたりが綺麗に出ないのに残念な気分に なった覚えがあるんだけど、少なくともGaucheのソースでは 他にsinpiとかが使える場所は無い感じなので、試しに入れてはみたが キープするかどうかは微妙。しばらく様子見。

Tag: Gauche

2013/07/26

ピアノレッスン103回目

  • Brahms: Rhapsody Op.79 No.2
    • 暗譜でゆっくり。
    • 旋律やアルペジオで、なめらかであるべきところが切れることがあるので注意。 繰り替えされるトリル様の伴奏はあくまで伴奏なのでもっともっとソフトに。
  • Bach: WTC book II No. 5 (D major)
    • 時間がなくなったのでフーガのみ。八分音符=88。旋律に気を取られると 他の声部を忘れる。

Tag: Piano

2013/07/19

ピアノレッスン102回目

  • Bach: Well-tempered Clavier Book II No.5 (D major)
    • Preludeはだんだん覚えてきた。油断してると16分音符が不揃いになるけど。
    • Fugueは八分音符=60のスローペースで。3声までは頭で追えるけど4声を全部独立して追うのは難しい~。WTC Iの4番は5声だったけど、全部の声部が独立して動いてるところってストレッタの部分くらいで、後は「旋律A、対旋律B、伴奏」くらいの分類で何とかなった。対してこのWTC II 5番、声部ごとにアーティキュレーションが違うので全部意識してないとならない。よくどっかのパートを忘れて慌てる。聴くだけならかわいい曲なんだけどなあ。

Tag: Piano

2013/07/15

失敗経験値 / スキルの指数

ピアノに関して、人前での失敗経験値がまだ足りないので経験値を稼ぐべく子供に混じって発表会。

  • Bach: Prelude and Fugue in C♯ major, WTC I
    • プレリュードが珍しくほとんどミスなしで行ったのでほっとしたらフーガの途中でわからなくなった。でたらめに弾いてつなげたけど後で録音を聞いたらでたらめ過ぎて吹いた。止まらなかったのは進歩だが、脱線しそうになったときにもっと余裕を持って対応するのが課題。
  • Scriabin: Sonata No.4 Op.30
    • 第一楽章から第二楽章半ばまではわりと調子良かった。しかしこないだのコンサートで再現部ではまったので、再現部が近づくにつれだんだん緊張してきて、展開部最後の右手4連符のところでわけわかんなくなった。何とか止まらずに続けたけど録音を聞いたらやっぱりでたらめすぎ。まあ前回のように仕切り直しをしなくて済んだという点では進歩だな。

YouTubeにエミール・ギレリスのScriabin 4番があるんだけど、 展開部の右手4連や再現部でやっぱりわけわかんなくなってるとこがあって、 それでもそれをものともせずに演奏を強行しててすごい。 失敗はリカバー次第なんだなということがよくわかる。

★ ★ ★

こないだ、スキルの差について、レベルが一段上がるにつれスキルは一定量上がるのではなく一桁上がるんじゃないかってなことを書いたけど (これ)、それに関連してこんなことを思った。

ある一つの曲について、こういうレベルがあるとする。

  • (A) 自分だけで弾いてて、一応楽譜は追えて最後まで弾けるかなって程度
  • (B) ミスはあるけど止まったり弾き直しするほどではなく、録音して聞かせられるかな程度
  • (C) 人前で弾いてあぶなっかしくない程度(多少のミスはあっても気にならない程度)

この場合、AとBのスキル差が10倍くらい、BとCのスキル差がやっぱり10倍くらいになるんじゃないか。 10倍というのははなはだ感覚的なものなんだけど、まあ5倍よりは大きくて20倍よりは小さいとか そのくらいのオーダー。

例えば、数回〜10回くらい録音して、そのうち1回くらいまあ人に聞かせられるかなって 演奏ができれば、Bのレベルだ。私がYouTubeにあげてるのも最近はだいたい5〜6テイクしてる。 10回弾いてもだめだとまだ機が熟して無いかなって感じ。 これが、Cのレベルでは1回で確実に人に聞かせられる演奏にしなければならない。これだけ考えても 一桁の差はある。

録音もせずにただ好きなように弾いてる時は、失敗したことは都合よく忘れちゃって、 「5回前に弾いてうまくいった前半部分」と「今弾いてうまくいった後半部分」の記憶が つながってなんか弾けてる気になっちゃう。録音してみるとそれがよくわかる。 なのでAとBの差もやっぱり一桁くらい。

肝心なのは指数的に難しくなるってことで、 これはつまり、AからBに至るのにやっていた練習と同じことをやってCに至ろうとしても 10倍の時間/労力がかかるってことだ。それは物理的に無理。

レベルが一段上がるごとに指数的に難しくなるのなら、練習方法も指数的に効率を 上げてかないと追いつけないことになる。

多分、何にでも言えることで、上級者のやってる練習の1時間は、その密度というか効率において、 中級者の10時間、初級者の100時間に相当する、みたいなスケールがあるんじゃなかろうか。

Tag: Piano

2013/07/12

YouTubeの著作権クレーム、その2

自分の演奏動画につけられた著作権クレーム、 これまではdisputeすればリリースされてたんだけど、前回のこれについては disputeがrejectされた。UMPG Publishing、強気だな。

disputeがrejectされたら、次のステップはappealになるようだ。

[image]

よっしゃ、挑戦を受けて立ってやろうじゃないの。

Appealを選ぶと、こんな風に念を押される。このAppealに対してさらに向こうが著作権を主張してきたらアカウントに1ストライク入っちゃうようだ(3ストライクで停止だっけ?) だがこんな理不尽な主張を見過ごすわけにはいかない。

[image]

ここから進むとアカウントをverifyしてくれということになって、携帯番号を入力→テキストメッセージで送られてきたコードを入力。この画面に進む。

[image]

Continueすると、住所氏名メールアドレス、及びこちらの主張を記入するフォームに。 住所氏名メールアドレスはUMPG Publishingにも渡されるようだ。 下のキャプチャは主張を記入する部分。 「おめえが言ってるそんな曲そもそも存在しねえよ」と書きたくなるのはこらえた (世の中には変な題名の曲があるかもしれないし)。

[image]

Content ID matchingの偽陽性については、 日々アップロードされるビデオの量と、うっかり著作権侵害しちゃってるビデオの 多さを考えてやや同情的だったんだけど、 こういうでたらめなクレームで強弁してくるのはいただけない。 しかもこれ、もしUMPG Publishing側にコストがかからないなら、 簡単に個人情報収集できちゃうじゃん。

大量の情報をさばかないとならないのだから、全部人手で厳密にやれとは言わないけれど、 コスト構造を調節することでうまくバランスを取れないものかね。

"UMPG Publishing" で検索すると多少、似たような経験談が出てくる:

(追記2013/07/13 22:03:05 UTC): いろいろ見ていると、最初のクレーム (「第三者のコンテンツに一致している可能性が云々」)に対して憤ってる人もいるのだけれど、自分は最初のクレームについては仕方ないと思っている。仕組み上、偽陽性が出ることは避けられないし。完全なチェックを著作権者側に求めるのも物理的に不可能。だから偽陽性が出ちゃった場合に、ユーザ側の少しの負担で修正してゆくって仕組み自体は悪くない。この第一段階はあくまで「可能性」のレベルでのやりとりなんだから。でもその修正を拒否してさらに強弁してくるからには、UMPG Publishing側にもそれなりのコスト負担がないとおかしいだろう。この第二段階で、ユーザは言い分が通らなければアカウントに1ストライク入るってリスクを負ってるんだから、UMPG Publishing側もその言い分が通らなければ何らかのペナルティを負って欲しいところ。)

Tags: Piano, YouTube, Copyright

More entries ...