Pythonと数学と音楽とetcの落書き帳

かなりテキトーに、断片的に離散的にプログラミングや、音楽やいろいろなことを書いていく。洋楽のレビューのついでにPythonその他のブログや本のノート、備忘録を書いていきます。

突然LALALANDのレビューとハッカーと画家について語る。ハッカーと音楽家

MongoDBとSQLiteのインストールとcondaでの仮想環境構築中に、
過去みた映画のサウンドトラックを自分のIOSのストリーミングアプリにインストールしていました。
LALALANDとCHICAGOのサントラ入れてたら、LALALANDのAuditionという曲の和訳を読んでいるうちに感傷的な気分になったので、環境構築までで、前回のPostは終えました。(それでいいのか)

シカゴ(字幕版)

シカゴ(字幕版)

LALALANDは、途中までは夢追い人達の恋愛と仕事の話までは好きだったんですが、最後主役二人が初めて出会った時間にTracebackして、おとぎ話みたいな感じになったところで萎えました。()
僕の好みはきれいなきれいな物語じゃないんだなと改めて思いました(小並
Auditionという曲は、LALALANDがまだ僕の中で現実的だった時、そして僕にとってのLALALANDの最盛期で思わず涙を流してしまった曲です。

La La Land - Audition (Fools Who Dream) - Lyrics

今日も和訳を見ていて環境構築中に思わず涙がこみ上げてきました。
migmemo.net
(この和訳サイトドメインもオリジナルだしセンスいいなあ、いつかこんなサイトも作ってみたい。)

夢見る馬鹿に乾杯!
狂気が世界に新しい色を与える。
とか、すごく良いですよね。

よく自己啓発に人間は感情で動くなんてことが書かれていますが、本当に最近しみじみその通りだと思いまして、理屈で良いとわかっていても動けない生き物なのであるのかもしれません(断定できない)

僕自身の経験でも、今のように理屈ばかり考えていた時なんかより、狂気に近い恋をして、妄想に燃えていたような大学部活時代の時が、最も行動していた時期だと思います。

そう、賢いと、行動量が落ちる気がするんです。
上記の僕の狂気に近い恋のリバウンドで(失恋)、部活は辞めたし、そのあともずっと引きずって僕は大学を一回Dropoutしようとしたり、いろんな方向に時間やエネルギーを発散させてきたんですが、
まあ時間が立って、狂気を継続させる原因(僕の場合は恋愛対象だった女の子)が近くにいなかったりすると、だんだん落ち着いてきて、客観的に自分を見れるようになってきたんです。

でもそしたら、急に保守的になってしまって、普通に大学に通って、普通に授業受けていたわけです。あんなに授業嫌いだったのに、(まあ、それには他にもいろんなFactorがあるわけですが、)

そうやって2017年の前半、前期過ごしていたんですけど、なんかつまんないんですよねPassionがなくて、自分が映画のMobにでもなったような気持ちです。体を鍛えるのも辞めてしまったし、学校に通うなんら特徴のない個人になってしまったわけです。

なんかやはり危機感を持って、最後恋愛方向にエネルギーを注いでみたり、洋楽を聞き始めて、トレーニングもはじめて、思考以外の作業も増やしたんですが、なんか狂気が足りないなと。感情的なところが足りないなと。

でも最近少しずつ、Passionが再度僕の中に宿ってきた気がしてきます。そのPassionは、部活をやっていた時より、他人に依存しない純粋な狂気とも言えるかもしれません。
忘れられないような美しさ、音かなにかを残せる人間になりたいなと。

そのきっかけはやはり落合陽一さんというLegendを僕がやっと発見したことであり、理屈の世界で生きる狂気にとてつもなく感動したんです。

人間が理屈で何かに取り組む時は、その根源はやはり狂気や感動!
勉強の仕方としてはやっぱりハッカーと画家で述べられてる。

ハッカーと画家 コンピュータ時代の創造者たち

ハッカーと画家 コンピュータ時代の創造者たち

おっぴろげてから、デバグがいい気がするんです少なくとも僕は。
数学科にいるとそんなことを忘れがちになってしまうけど、音楽を作るように、絵を書くように、
理解できないことも混ぜながら何かを作るのが大切なのではないかと、
理解を完璧することにそんなにWight置かなくていいんじゃねとそういう感じでした。

PythonとJavascriptのオライリーの奴をすすめるための環境構築

こんばんは。

僕の活動地は主に札幌で、雪です。
おかげで本州ではもう来ているという花粉の被害がおくれるのですが、実家の埼玉に3月末に帰る予定を入れてしまったことを少し後悔しているところでした。

でも実家には本当に、昨年といい、今年といいとてもお世話になっているので、対面して生活報告等をすることはとても大変なのかもしれません。とても人間的ですね。

そんな感じでどうでもいいことを間延びしてお話するのはもう辞めて今日も勉強です。
朝高カカオチョコとオイルコーヒーでカフェイン過剰摂取してしまい体調がおかしかったので今日は夜勉強です。

今日の洋楽

今日は、The Chain smorkesを聴いていこうと思います。
出会いのきっかけは、岐阜のクラブ好きのいとこにCloserを進められたんですが、上品なEDM的な感じで、耳触りがとてもいいですね()
どれもいいのですが、この曲が今日は1番かな。

The Chainsmokers, Tritonal - Until You Were Gone (Audio) ft. Emily Warren
あと、王道みたいですが、

The Chainsmokers & Coldplay - Something Just Like This (Lyric)
これも低音ボイスがとてもかっこいいですね。
雪国は、外での出会いはなくても、こういうインドア系の出会いがあるからいいなと思っています。
音楽とかの関心も、自然に沸き起こるものじゃなくて、時間とか確保して聞かないと始まらないよねと最近しみじみ思います。


早く音声加工したいぜ。DJボックス作ってオフィスに置きたいなとか考えてます。(多分怒られるのでおけない。)
ただ、今月は明日から網走に旅行するので、まあ違うものやっとこ(自分でもよくわからない)
3月にまとまった時間があるので、基本を抑えつつ、オリジナリティのある何かをデプロイしていきたいところです。

今日の主題

今日読んでいく本は

PythonとJavaScriptではじめるデータビジュアライゼーション

PythonとJavaScriptではじめるデータビジュアライゼーション

こやつです。オライリーの本が好きです。


こやつはたまたま札幌紀伊国屋で間違えて大きい本を買った時に、返金は出来ないので同額商品と交換となった時に選んだ本ですが、ちょうど最近の自然言語処理にも使えそうな気がしているし、
JavaJavascriptの違いすら最近までおぼろだった僕にとってはまあ面白くためになるかなと思い取り組んでいこうと思います。
専門も多分確率統計ですし、シミュレーターとか作りたいですね
前回のポストでもあったとおり、僕はエンジニアリングで必須(だと思われる)なデータベースの知識もないので、MongoDBとかいじれるぽいのでよいかなと。
サンプルコードもギットに乗ってるから、初学者の僕にとってはとてもありがたいです。
github.com

落合さんのサーヴェイを参考に、読む時間を決めて、ブログまとめながら読んでいこうと思います。
この本のテーマは、Visualizationですね。
最近統計学が最強の学問なんたらかんたら言われていますが、統計をVisualizeすると新しい発見があったり人にプレゼンする時も役立ちそうです。
大学の授業の成績を可視化して、世の大学生の単位取得や、いろいろな目的に沿ったアプリとか作れたら面白そうね。

Fake newsのなんちゃって統計や、広告などのバイアスのかかった情報から真実を見抜くリテラシーもつけていきましょう(適当)

環境構築

さっそくGihubレポジトリをクローンしていきます。

git clone https://github.com/Kyrand/dataviz-with-python-and-js

最初はコードを一から手打ちすべきだってみんな言うけど、面倒くさいんだよね。。
コピペで終わるものって、一回公開されたらもうコピペで終わるし、応用する時に手で打てばええやんて
condaで仮想環境創ります。pyjsasakoが仮想環境の名前です。

conda create --name pyjsasako anaconda

仮想環境作ったら、アナコンダに入ってるライブラリが複製されたみたいで、かなり時間かかったし、容量も食ってそう。
ただ、そこの容量を削減するための努力は今する気になれないので(白目)
思考停止で本書の導入に従います。

source activate pyjsasako

で仮想環境がActivateできることを確認。
と思ったらWindows環境ではsourceいらなかった

activate pyjsasako

SQLite Installation
に従ってSQLiteをインストール&Path通し
Install MongoDB Community Edition on Windows — MongoDB Manual 3.6
ここに従ってMongoDBをインストールしました。
モンゴもC\Programfilesにファイルがインストール出来てるので、binフォルダにPathを通して、

md \data\db
mongod

で動くの確認したので、めでたく本書に取り組む環境ができました!!

参考

ブログもサーヴェイと同じで雛形作ったら見やすくなりそうですね。
そういえば落合さんサーヴェイってなんでカタカナなんだろ。
Surveyの方が良い気がする。

手を動かさずして語るな。語らずして手を動かすな。

落合陽一さんの生き方や主張への感動が止まらないので、言葉にしてみようと思った。
Academicな世界で、厳密なものごとを扱っているのに、その思考や論理は、とてもマッチョで、体育会系で感情的なのである。
歴史的な知識もとても豊富で、説得力がすごい。人間代表の脳って感じである。

www.youtube.com

落合陽一さんは、研究と勉強の両立が大事だと言っている。InputとOutputとも言えるかもしれない。
最近僕も数学の勉強をしていて、よく聞く言葉でとても好きな言葉で、万有引力で有名なアイザック・ニュートンの言葉で、

私がかなたを見渡せたのだとしたら、それはひとえに巨人の肩の上に乗っていたからです。(英語: If I have seen further it is by standing on ye sholders of Giants.[注 1])
巨人の肩の上 - Wikipedia

という言葉があります。

やっぱ学問を全体としてマクロに見ると、歴史の積み重ねというか、先人達の遺産って本当にすごくて、どれくらいすごいかっていうとマンモスというかもう宇宙というかよくわからないんですけど、
なんでこんなこと思いついたんだみたいな発明や発見が、数学の教科書やいろんな本や、今ではインターネットに散りばめられています。
その発見や発明の中には、一人の人間の生涯全ての時間を費やして無から創造されたものもあって、簡単には理解できないものもあるんですが、
なんかそういうものの結論とか、結果だけを扱える今って最高だなって思いました
あてずっぽうで、アタックする人が100万人いてそのうち1人しか見つけられないような確率的発見もたくさんあって、なんかもうすごい。(もう全てが小並感)
ちょっと研究と勉強の話から飛躍しているのですが、無理やりくっつけるとしたら、そういった積み重ねを享受したOutputにこそ価値があるんだなという感じです。
研究は創造と言い換えられると思うんですが、創造はとてもエネルギーと時間が必要なもので、僕らが過去の先人達が証明した定理や、創造した物を再構築する際にも同様のエネルギーが必要になります。

そのエネルギーは、先人が見つけたものより、誰もまだやってないことに対して注ぐべきで、
その誰もまだやってないことは、先人達の積み重ねを勉強し、享受しないと見極められないし、その土台がないと取り組めないものです。

そういう土台を認識してコード書いたり、勉強したりしたらいいですね。(適当

ハッカーと画家

ハッカーと画家 コンピュータ時代の創造者たち

ハッカーと画家 コンピュータ時代の創造者たち

こんな本を最近読んでいる。

ハッキングとか、数学とか、論理的に強くなりたいなら、もっと末端の技術的なこと、数学的なことに没頭すべきなのかもしれないけど、こういうメタに見る有機的な思考をするのが好きだ。

上記の本の中では、ハッカーと画家の共通点についていろいろ書いてあって、
日本では特にこういう思考が強いと思うのだが、プログラミングや数学は、何か人間味を捨ててしまった人が取り組むようなものとして扱われている気がする。
数学科って言うともの珍しい目で見られたりする。
その所以は、理系学部は、感情を切り離して勉強するもの、忍耐力が必要なものっていう考え方がはびこっているからかもしれない。
たしかに数学や科学は、ミクロで世界を見る学問だと思っていて、(文系の経済、文学とか、人間の感情とか数字とかスーパーごちゃごちゃしたものを一気に言葉に変換して扱おうとしている学問だとすると、圧倒的にミクロじゃないかな)
意図して現実世界と学問の関係性を見るようにしなかったら、辛いっていうか、何やってるのかわかんなくなるっていうか、僕らが感情を持った人間であることを忘れがちになる学問である気がする。
しかし数学やコンピューターの正体は、実は人間的なことを表現するための方法なのであって、それを忘れちゃいけないよね的な。
とかちょっとずれたことをぽんぽんと断片的に考えさせてくれる本であり。

まあ僕的に1番大事だなって思ったのは(この本の序盤で特に)

僕らの「Order」の考え方を改めさせてくれるところである。
Orderは、How to learnとも言いかえられる。

現代の教育は、とてもOrderを意識して構成されている気がする。
数学の教育にとても顕著なのだが、(数学は数字を自明なところから構成する論理学なので当然と言えば当然なのだが、)
Each Stepを完全に理解してから次に進もうという認識がとても強い。
理解はとても大事なProcessであり、それが応用するためにとても力になることは自明なのだが、
筆者の、「プログラミングは絵画と同じで、物を創造する手段であり、創りながら理解するものである」という主張を受けると、

Each Stageを100%理解してから次に進むという考えよりもそっちの方が人間的に見えるというか、(数字を目的とせずに感動を目的とするところとか。)
まあ楽しく勉強して、継続しやすそうな気がするよねというか。
そんな感じなのである。
筆者はプログラミングは、めちゃくちゃなコードを広げて、デバックをひたすらする作業であるとも述べていて。

何かを学習する過程では、厳密に順序を守ることよりそういう行き当たりばったりというか、向こう見ずなProcessの方が人間にとって最適なProcessなんだなと。
思って僕もめちゃくちゃな文章を書いている。

まあ、このブログも、めちゃくちゃな文章を書いていこうと思う。
僕が書きたいブログは厳密なDictionaryではなく、広告でもなく、人間的なEmotionalなところと、論理的学問のつながりを意識して書いていきたいのである。
が、気分屋なのでそれも変わるかもしれない。

Crazyなブログになりそうだ

自然言語処理をはじめる。Twitterの鍵なしアカウントを勝手に分析する!By wordcloud

こんにちは。

ブログを書こうと、まあ昨日こんな記事を読みまして。
「もっと早くからやっておけばよかった」と後悔している、いくつかのこと。 | Books&Apps
テキトーにはじめようと思った次第です。
デュアルディスプレイにするのと、起業するのが同じところに並んでていいですね。
ディスプレイを増やすノリで起業します。
ちなみに僕はデュアルディスプレイでした、この記事を読んだ後もう一つ増やしてクアッドディスプレイになりました。


前々から書きたい欲はありつつも、
Django でブログ作るんだ!はてなとか、Livedoorとかじゃやらないぞ!みたいな意地をはって、データベースのクエリがなんだかわからなくて、Django girls Tutorialでハマって断念していたんです。
インターネットはどうやって動いているの? · workshop_tutorialJP
良いチュートリアルと評判ですが、僕の環境だとけっこーハマるところが多かったです。

なんかそれくらいはできるようになりたいと思いつつも基本独学なので、もう少し時間かかりそうだなと、まあ春休みにもう何回かアタックするのと、Word pressも一回やってみようと思います。



今AIソリューションを提供する会社でバイトしてるんですが、最近はAI以前の組合せ最適化のPythonライブラリ 
Google ortools
developers.google.com
を使ってフランケンシュタイン作っていたんですが、
あんまりうまく行かなかったので、もう少しAI寄りのところに戻って自然言語処理関連のタスクが回ってきました。

自然言語処理(Natural Language Processing)は、僕も最近初めて知った言葉なんですが、プログラミング言語機械語も)を人工言語として、
自然発生した言語っていう定義で僕らが使う日常語(日本語、English、etc)を、分解して、統計使って解析しよう的な分野らしいです。

言語を分解するにはまず最小の単位である単語に分けなければいけないんですが、Englishは、
I say helloのように単語間にBlankがあるのでスプリットしてやれば単語までの分解は余裕です。

が、日本語だと見ての通り単語同士に境界がなく

すもももももももものうち

とか見たらすぐわかりますが、単純にSplitできません

ので、とりあえず切り取れる何通りかで切り取って、
単語空間に距離を導入して、隣接する単語の位置が近いような文章を本来の意味解釈の仕方にしよう!
っていうのが日本語の意味の取り方、なのかな??
ちょっとまだわかんないけど、
距離を取って意味を分析するというところは、下記ブログがわかりやすかったので載せます。
www.randpy.tokyo

もう少し勉強をこんな感じの本でします。

自然言語処理の基礎

自然言語処理の基礎


さて、とりあえず意味の距離はおいといて、
とりあえず既存のライブラリを使って面白そうなものを動かすところから初めようと。
「OK word2vec ! "マジ卍"の意味を教えて」 Twitterデータからword2vec実践してみた - これで無理なら諦めて!世界一やさしいデータ分析教室
同じ人のコードを動かしてみました。
文字コード等自分の環境に合わせば動きますが、

Twitter公式からAPIキーをもらって、
Jsonファイルに記入してコード外からもってきて動かしました。

解説はできないので、ソースコード上記サイトを見てください。(白目)

janomeっていうPython自然言語処理のライブラリを使っているんですが、
MeCab触ってて、動かしたのが前なのでそれすら解説できないのと、
Beautifulsoupもよくわかっていないでコピペで動かしたので、とりあえずそれらのライブラリは、

PythonとJavaScriptではじめるデータビジュアライゼーション

PythonとJavaScriptではじめるデータビジュアライゼーション

こっちの本を読み進めた時に詳しくみます!!

僕はインターレスGIF方式で勉強します!
厳密な解説は、また今度です!
成長過程を残したいからブログするから、多少はね!

こんな感じで書いていこう。

前回の投稿がまとまってなかったんですが、

聴いてる音楽の紹介と、勉強してることの紹介と、考えてることの紹介をしていこうと思います。

根性はある方なんですが、すぐ挫折するので、簡単なことから書いていきます。
間違ったことを書くことも多いと思いますが、もし万が一見てる方がいて、お時間あってご指摘いただけると喜びます。

時系列データをKerasLSTMでモデル作りたい時の教師ありデータの作り方。とその他

こんにちは。

 Generalな内容を書きすぎていたので、もう少し、とりとめのないプログラミングのテクニック的なことを書こうと思います。

Kerasを使ってDeeplearningの勉強をしているのでそんな感じで

 

土日の誰もいないバイト先で洋楽を口ずさみながらPythonのコードをいじったりするのが好きです。

 

今聴いてて感動したのは、ZeddのCandy manと

Zedd, Aloe Blacc - Candyman


Zedd, Aloe Blacc - Candyman

Aloe Blaccさんはほとんど知らないのですが、

John legendと似ているブルース調の声で、Zedd音楽と一緒でなんとも聞き心地の良い音楽です。

すいません音楽はたしなみ始めたのが大学からなので、とても稚拙な感想しか述べられませんが、磨いていこうと思います。

 

もう一曲エンドレスリピートしてたのはThe chemical brothersのLet Forever Be

The Chemical Brothers - Let Forever Be
でした


The Chemical Brothers - Let Forever Be

どっかで聴いたことあるっていう人も多いハズ

T

 

洋楽ってYouTubeにフルで落ちてるからよいですね。

 

さて、このThe Chemical Brothersにハマったきっかけは、最近流行りの落合陽一さんが子供に聴かせているとお聞きしたからであります。

 

最近落合陽一さんへのリスペクトが止まらなく、論理的に自分が憧れる理由も説明できないのですが、落合さんの発言に生活スタイルを左右させられています。

 


落合 陽一氏の父と子育て論

 

落合さんは、情熱大陸きっかけで最近一般の人々への認知が爆発したようです。

僕が落合さんにここまで惹かれる理由の一つはおそらく、Academicな世界で結果を残し、Famousな人間になってもそこで甘んじることなく、

自信の健康を顧みずに研究に命を燃やしているところです。

 

僕もせっかく生まれたからには、何か自分の名前が歴史に残るようなことを成し遂げたいという思いは昔からあるのですが、こういう人を見ていると、僕のそこへ向かうスピードの遅さがなんとも悔しくなり、刺激をとても受けます。

 

是非Live picksの動画、Youtubeに全て落ちているので、聴いてほしいです。

Wifi環境下でClipboxなどで保存して、おうちでゆっくりとメモをしながら聴いてみてください。

 

さて、以外と書いてみたら最近書くことあるなとか、毎日洋楽レビューしてことか考えながら、今日勉強したことを書きます。

 

前回のブログにも書きましたが、最近ひきこもりなので、コードやいろいろ公開する機械を増やそうという魂胆です。

僕の勉強はPythonが中心なので、Jupyter NotebookというPython用の入門エディタみたいので、マークダウンにがっつり解釈書きながらブログとかガジガジかじっていきます。

 

GitのPushとかCommitの練習にもなるね!!

 

落合陽一さんのサーベイを応用して、僕はまだ論文読めるレベルではないので、Qiitaをとにかく100個読んで見ようかなと考えています。

せっかくの春休みなので。

 

なんかレギュレーションをきつくすると、挫折して、逃げちゃうと思うので、

 

できるだけ毎日洋楽のレビューと、(プログラミングじゃないですね)、勉強した内容と、サンプルコード一つくらいは、載せていきたいですね。

 

勉強の話に入ります。

Multivariate Time Series Forecasting with LSTMs in Keras - Machine Learning Mastery
machinelearningmastery.com


外国の方の機械学習のブログです。中国の大気汚染を、LSTMという時系列データ読み込んで、何ステップか先の実数連続値を予測する手法でPredictしようという趣旨です。
実はこのブログは、だいぶ前に僕のアルバイトの方で触れる機会があって、その際に大学のお仲間4人と一緒に読みました。
が、応用をする際にもほとんどコピペでフランケンシュタイン状態なので、同じ方のもう少し入門的な記事を、この春休みにできれば全て読もうと試みています。



今回は、

How to Convert a Time Series to a Supervised Learning Problem in Python - Machine Learning Mastery
machinelearningmastery.com


さっきの大気汚染予測ブログの中のコードでも使われている、生の時系列CSVデータから、PythonのDeeplearningライブラリで親切で入門的と名高いKerasに渡す用の教師ありデータを作る関数を定義するところから初めます

 

コードを埋め込み、日本語の解説をつけます。
一回記事Publishしてしまってはてな記法にできなくてさっそくハマった。

ほとんどそのまま引用してしまうから参考とは言い難いかもしれません。

少しずつオリジナリティを出したコードを公開していきたいですね。
Pandasの基本のShift関数を使って教師付きデータを作ります。
まず普通にDataFrameを定義して、Shiftさせるところから

from pandas import DataFrame
df = DataFrame()
df['t'] = [x for x in range(10)]
df['t-1'] = df['t'].shift(1)
df['t+1'] = df['t'].shift(-1)#Shiftすると、Float型になる。無いデータはNaNになる
print(df)

#   t  t-1  t+1
#0  0  NaN  1.0
#1  1  0.0  2.0
#2  2  1.0  3.0
#3  3  2.0  4.0
#4  4  3.0  5.0
#5  5  4.0  6.0
#6  6  5.0  7.0
#7  7  6.0  8.0
#8  8  7.0  9.0
#9  9  8.0  NaN

0~9までの整数データフレーム作って、前と後ろに一つずつずらしました。
これ使うと、横の一行に、t-n,,,,t-1,t,t+1,,,,,t+nとシフトさせてマルチステップの時系列教師ありデータが作れます。

あとは、ブログに乗ってるSereis to supervised(教師あり)
関数を参照していただけたらわかりますが、
Inputとして何ステップ前を取るか、Outputで何ステップ先まで予測するかも任意に選べるのでとても汎用性が高く、便利な関数をブログに乗せてくれています。
PandasとKerasの入門にぴったりだね!
どこまで引用していいのかわからないんですが、とりあえずこんな感じで、ざくざくざっくり読み進めていきます。
Githubにはどんどんこんな感じのipynbファイルを積み上げていきます。