パンダの休日

雑多な書き残し

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ur12_1.jpg
ur12_0.jpg

前のが調子悪くなったので買い替え。
ベース繋いでPCからの音に合わせて弾けることと、ループバック録音できることを条件に探して人気のありそうだったのを購入。
価格は安いが特に性能で不満な点はなく、ジャックやツマミの接触不良もない。
強いて不満点を言えばサンプリング周波数をコンパネで設定できず、一々Yamaha Steinberg USB Driverを起動して設定しなければならない点(ループバック設定も同様)と出力の小ささ。
音質は価格なりというか特段良くも悪くもなく、妙な調整がかかっているより素直な出力で良い。
デザインは同価格帯で最も優れていると思う。
rfg1_4_51.png


今流行のディープラーニング乗り損ね組ですこんばんは。
ディープラーニングは色々調べたのですがどうにも1から書くには数学力が足りないようなのでコスパ最高と名高いランダムフォレストをPythonで書いてみました。
主たる部分の行数が100行と少し。流石コスパ最高。
後から読んで何も分からないような汚いコードを書いてしまったので、ググってもあまり出なかったポイントの独自解釈を載せます。
(この解釈で結果はそこそこ正確でしたがランダムフォレストとして正しいかは分かりません。)


1.入力データ
分類の場合
[float(入力1), float(入力2), float(入力3), ... , str(出力)]
入力は数学関数に使うのでそれに合うもの、出力の型は==で一致が確認できるものならなんでも。
回帰の場合
[float(入力1), float(入力2), float(入力3), ... , float(出力)]
出力は平均をとる必要があるのでintかfloatを。
入力は何元でも良いが出力に2元以上が使えるかは不明。恐らく不可。

2.分岐関数
豆腐に包丁を入れるようにn元空間を平面でひたすら切って細かい空間にするための関数。
  例 : f(x, y) = ax + by + c (2元1次の関数)
2次以上の関数で空間を切る意味がないので1次関数(平面)を使う。
入力次元の平方根の元数を使うのが良いらしい。
傾きや切片を細かくして精度が上がるような仕組みではないので荒くても良い。(傾き10種類で18度ずつ等)
分類の場合は切った左右でエントロピーを計算して重み付けした和が最も小さくなる関数を用いる。
回帰の場合は左右それぞれに「各データの平均からの差の2乗」の和を計算し、左右の値の和が最も小さくなる関数を用いる。

3.データのランダム選択と量
手続:
渡されたデータを重複を許しランダムに7割ほど選ぶ。
→選ばれた7割を上手く分割する関数を探す。
元のデータをその関数で分ける。
分けたデータをそれぞれに同じ関数に再帰的に渡す。
1分岐ごとに半分になるので1木あたり5*2^分岐深度ほどの量が必要。
データの選択は重複を許すがデータ2個で同じものを拾うと分岐が上手くいかずエラーになる可能性がある。

4.木の構成
def 木を作る(データ, 深度):
if 渡されたデータが1種類か深度達成:
return(そのデータの出力値)
else:
ほげほげ
return([条件, 木を作る(真データ, 深度+1), 木を作る(偽データ, 深度+1)])
のようにしておくと
while True:
if type(tree) != type([]):
return tree
if 条件:
tree = tree[1]
else:
tree = tree[2]
のようにして拾いやすい。

5.木の重み付け
データの数がしょぼいと過学習に陥っているように感じる。
(しなくてもいい気がする・・・)

6.判定
分類は単純多数決。100本なら100本の木全てに分類させたいデータを渡して分類させ、最も多いものが判定結果となる。
回帰は上と同様にして得た値の平均が判定結果となる。


上記画像はある点からの距離を回帰でランダムフォレストに判定させたものをリニアングラフをお借りしてグラフ化したもの。
粗い方が趣があるので木50本深さ4。
purine.jpg
(台所撮影なので質はご容赦。コップはなるべく可愛いのを選びました。)

無糖プリン作ってみたのでレシピの覚書き。

材料(2個分):
卵(全卵) 1個
牛乳 120ml
砂糖(エリスリトール) 25g
水 25ml
バニラエッセンス 数滴

手順:
①砂糖と卵を入れて十分に混ぜる。 #砂糖と卵から始めると白身が切りやすく楽
②牛乳と水とバニラエッセンスを加えて混ぜる。
③出来上がった液を電子レンジで1分温める。
④電子レンジ待ちの間に蒸し器にカップを入れ沸騰するまで余熱しておく。
⑤茶漉しなどで液を漉しながらカップに注ぐ。 #面倒ならそのまま注ぐ
⑥蒸し器(鍋等)は蓋を傾け、ずらした状態にして出来るだけ弱い火で8分蒸す。
⑦固まっていれば取り出して冷やす。固まっていなければ火を消して蓋を完全に閉めて5分以上置く。
⑧食べる。

コツ:
上記レシピでは硬めの仕上がりになるのでゆるく作る場合は牛乳もしくは水を足し、増やした量の20%の砂糖を加える。
後を引かないエリスリトールの甘さは冷菓に向くが、加熱に弱いのでカラメルは作れない。
バニラエッセンスを入れ忘れると甘い茶碗蒸しにしか思えなくなるので注意。
ここ10年以内にオーヲタになってしまった人にはあるあるネタだと思いますが、
オーヲタになる前にレンタル等の何らかの方法で集めた音楽データは大抵MP3の128kbpsなどの初期設定の音質ですよね。
そしてオーヲタになってから可逆圧縮とか、せめて320kbpsにしたいと思いますよね。
しかしデータ置き換えるためだけに改めて買ってきたCDでiTunesの旧データを置換すると再生回数が消えます。
普通の人は気にしないのでしょうが、オーヲタは、というかオタク気質の人間は気にします。
なので手間はかかりますが再生回数を書き換えます。

①新規のプレイリストを作成します。

②再生回数を書き換えたい曲をそのプレイリストに入れます。

③未再生曲は最低1度再生しておきます。スキップ回数も書き換えたい場合はスキップもしておきます。

④画面左上ファイル→ライブラリ→プレイリストのエクスポート で[プレイリスト名].xmlというファイルを書き出します。

⑤プレイリストに含まれる曲を全て選択し、Shift + Delete でファイルを保持して削除します。「ファイルを保持して」←重要

⑥[プレイリスト名].xml をメモ帳で開いて編集します。(1曲ごとにインデントされて表示されるはず)

⑦Play Countと書かれている横の数字が再生回数なので適当に書き換えて上書き保存します。スキップはSkip Count。

⑧iTunesでファイル→ライブラリ→プレイリストをインポート を選択します。

以上の手順で曲情報の書き換えができるはずです。
もっと楽にできるツールもありそうですがフリーソフトを入れたくなかったので直接書き換えました。

momen.jpg

普段使いのイヤホンを家の中で紛失してツナギのイヤホン購入。
初ゼンハイザーイヤホン。

「開封直後の状態で」の音質レビュー:
 (屋外普段使いがEtyで家ではAKGの耳で)
 音のバランスは低音が多め。
 低音好きが好むような低音はなく、少しボワボワとした低音。
 高音は全域聞こえるがシャープさがない。が、このイヤホンはそれがいい(本当に)。
 ボーカルは少し遠く感じるが広がりのある音。
 解像感は高くなく分離も良くないが何か楽器を聞き逃すほどではない。
 アニソン・ロック音楽には合いづらい。
 クラシックには合う。
 映画など見るときも使える。
 金管楽器・アコースティックの弦楽器・ボーカルのみで構成されて音数の少ないものは相性が良い。
 初めて聞いた人を感動させるような何かは少ないが人へのプレゼントなら選びたいような普通さ。
 iPhone用のマイクとコントローラーが付いているので通話にも使える。
 遮音性は足りない。似たような見た目の1000円イヤホンと変わらない。

その他:
 デザインは4000円クラスの雰囲気。
 プラグからケーブルへの接続はL字で使いやすい。
 ケースは硬めの素材で厚め。BOSEやEtyに比べると使いにくい。

レビューはこんなもんです。
そして今更ですが写真のイヤピースは付属のものではありません。
1日使用して遮音性の無さに耐え切れずEtymotic Research付属のあまりを無理やりはめました。
1.5mmの穴に4mmをはめる感じになりますが意外と簡単に入ります。
失くしたEtymotic Researchのイヤピースを余らせている人はこうすると良いでしょう。

このイヤホンに関して、これはこれで本当にいい値段の良い物に出会えたと思っている。
なので嫉妬したEtyがそろそろ出てきてくれてもいい頃ではないのか。
(追記↓)

⇒続きを読む

shader

Author:shader
多趣味飽き性に振り回されて色々やってます。

直接連絡したい方は御気軽にメールしてください。 3日以内には返信させて頂きます。

名前:
メール:
件名:
本文:

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。