投稿

9月, 2015の投稿を表示しています

シルバーウィーク

シルバーウィークでした。 連休中にPythonとMachine Learningをしこたま勉強してやろうと思っていたんですが 風邪を引いてしまってふるわず。 午前中に勉強して 午後から具合悪くなって寝る、の繰り返しでした。 ベッドの上に寝転がっていても そうそう眠れるものではなかったので 積読消化をしておりました。 以下は連休中に読んだ本。 『家守綺譚』 梨木香歩 日常と非日常の交差が絶妙。 とても好きです。 『最後の喫煙者』 筒井康隆 初筒井作品。スプラッター。 『経済ってそういうことだったのか会議』 佐藤雅彦・竹中平蔵 竹中さんの話っておもしろい。 タイトルの通り、「そうだったのか!」ってなりました。 GYAOの無料映画も見ました。 『ぐるりのこと。』 橋口亮輔 リリーフランキーはやっぱりいい。 木村多江もめっちゃきれいでかわいかった。 ぐいぐいと引き込まれる映画でした。 『阪急電車』 三宅喜重 惰性で見た。 可もなく不可もなし。 今津線って一度もつかったことないから、 ぜんぜん土地勘なくて残念。

iPython notebook

イメージ
前回に引き続き、Machine Learning Foundationsのためのセッティング。 今回はその2: iPython Notebook iPython Notebookはブラウザ上でスクリプトを書いたり、実行することができるらしいです。 ブラウザを使うってことはWebへの公開もらくちん。 なだかすごいね。すごいねテクノロジー。 下は実際のスクリーンショットです。 ブラウザはChrome くわしくは こちらのページ を参考してください。 イメージとしては MATLABのパブリッシュ機能 に似てるなと思いました。 なんかもう、わざわざお金出してMATLAB使う必要ないんじゃないかと 思い始めた今日この頃。 Pythonたんたのしい。

GraphLab Create

Courseraで新たに機械学習のコースを受講することにしました。 「Machine Learning Foundations: A Case Study Approach」 このコースではPythonを使ってプログラムするようです。 最初の授業ではiPythonとiPython Notebook, そしてGraphLab Createをインストールするように 求められます。 どれもよーわからんですが、 とりあえずiPythonとiPython Notebookはすでにインストールされているようです。 Anacondaちゃんやりよるわ。 んで、GraphLab Createをインストールするんですが まずはGraphLab Createってなんぞ?ということで ユーザーズガイド の説明を抜粋してみます。 GraphLab Create is a Python package that allows programmers to perform end-to-end large-scale data analysis and data product development. Data ingestion and cleaning with SFrames. SFrame is an efficient disk-based tabular data structure that is not limited by RAM. This lets you scale your analysis and data processing to handle terabytes of data, even on your laptop. Data exploration and visualization with GraphLab Canvas. GraphLab Canvas is a browser-based interactive GUI that allows you to explore tabular data, summary plots and statistics. Network analysis with SGraph. SGraph is a disk-based gr...

コマンドプロンプトでPython

イメージ
仕事用のラップトップ( Anacondaを導入したやつ )でも コマンドプロンプト(cmd)からPythonを使えないか試してみました。 まずは環境変数の確認。 スタートメニュー⇒コンピュータ⇒システムのプロパティ⇒システムの詳細設定⇒環境変数 と辿っていって、「システム環境変数」の「Path」を確認します。 C:\Anaconda;C:\Anaconda\Scripts ちゃんとPathは通っていました。 ちなみに私の環境では、Pythonの実行ファイルはC:\Anacondaにあります。 つぎにコマンドプロンプトでPythonのコマンドを実行。 cmdをたちあげて、pythonを実行します。 Python 2.7.10が立ち上がりました。 ちゃんと使えています。 ついでに先日構築したPython3の環境も動作するか確認してみます。 コマンドラインでpython3の環境(beniensis)をアクティベートしてから pythonを実行します。 Python 3.4.3が起動しました。 Python 3の動作も確認します。 あれ? >>print 'hello world' が通じない。。。なんで? しらべてみたら、仕様がちょっと変わったみたいです。 >>print('hello world')   こうするとちゃんと通じました。よしよし。ワン!(Python犬) コマンドラインでスクリプトの実行 .py拡張子のファイルをpythonで開くように関連付けを行ったら コマンドラインでスクリプトを実行できるようになりました。 やりかたは、 コントロールパネル⇒プログラム⇒既定のプログラム⇒ 関連付けを設定する と進んでいって、 .py拡張子のファイルをpythonで開くように設定します。 めでたし、めでたし。

コマンドプロンプトでスクリプト

Programming for Everybody (Getting start with Python)というコースを受講し始めました。 講師の"Python is a dog."という言葉にがっちりハートをキャッチされちゃった結果です。 んで、PythonスクリプトをWindowsのコマンドプロンプトから実行するという課題があったんですが、 Anacondaちゃんではなかなかうまくいかない。。。 Anacondaのコンソールを使って >>hello.py って感じで実行しようとしても、そんなファイルねーよ!って怒られるた。 いや、講師の言葉を借りるとAnacondaは犬なので 「すみません、ご主人様、お言葉をちょっと理解できなかったんです。もうしわけありません。 っていってるらしいんですが。 まぁ、それはそれとして、あんまり時間をかけるのも嫌なので 自宅のPCに Python2.7.10 単体と Nodepad++ を別々にインストールして 試したらうまくいきました。 PythonとNotepad++はインストーラを実行するだけです。 2つともインストールしおえたら、コマンドプロンプトを立ち上げます。 環境変数を設定してpythonを実行できるようにします。 ぼくはコマンドラインでpathを通しました。 PythonはC:\Python27にインストールされていたので 以下のようになります。 >> set path=%path%;C:\python27 あとは、コマンドライン上にスクリプトファイル名を打ち込めば実行できました。 >>hello.py hello, world!!    

Pythonパイセン導入

気分転換(またの名を現実逃避)のために、Pythonを導入してみました。 Courseraの "Computational Neuroscience"というコースで紹介されていた方法 に従って導入しました。 Pythonにはいくつかのディストリビューションがあるようですが、 今回導入したのは The Anaconda Scientific Python Distribution です。 これまでの僕の理解によると、このディストリビューションは以下の点で優れているようです。 マルチプラットフォーム対応 自然科学分野で有益なライブラリが多くbuilt-inされている(numpy, matplotlib, schipy, etc) エクセルと簡単に連携できる conda とよばれる強力なパッケージ管理ソフトによって複数のバージョンを共存させ、簡単に管理することができる(アップデートなど) Matlab-likeな統合開発環境spyderを利用できる(built-in) Windowsの場合、インストールはいたって簡単でした。 The Anaconda Scientific Python Distribution のページかインストーラーをダウンロードして実行するだけ。 コンソールのみ(IPython QTconsole)を立ち上げて使うこともできますし、 Spyderを立ち上げてスクリプトを書いて実行することもできます。 ただ、Pythonのバージョンがデフォルトで2.7だったので Python3.4も入れてみることにしました。 ここらへんがanacondaの本領を発揮するところなんですかね。 とりあえず、anacondaとcondaのアップデートをしておきます。 anacondaのコンソールを立ち上げて以下のコマンドを実行。 >>conda update conda >>conda update anaconda   この作業はSypderのIPythonコンソールではできませんでした。 このへんがちょっとややこしくて、まだ十分に理解できてないのですが、 Pythonの各バージョンやSpyderはAnacondaで管理されているためだと...

Pythonパイセン

Dr. NgによるMachine Learningを終え、 Huth et al., 2012 Neuronをなんとか読み込み、 今週からいよいよ手持ちのデータを解析してみます。 どうなることやら。 とりあえず、手持ちのデータを 機械学習→パラメータのPCA→PCの評価→PCの意味 みたいな流れで、どれだけ解析できるのか試してみようと思います。 んで、実験計画を具体的にブラッシュアップしていきます(願望)。 さて、それの作業に平行して Courseraで新しいコースを受講しようと思うのです。 (Courseraにはまってしまいましたw) 今興味のあるのは Data Analysis and Interpretation Specialization Machine Learning Specialization Coding the Matrix: Linear Algebra through Computer Science Computational Neuroscience Learning How to Learn Natural Language Processing あたりなんですが、上の3つはPythonを使うコースみたいです。 Pythonってこの分野ではよく使われているのだろうか。 一方で、Dr. NgはPythonよりもMATLAB/Octaveを強く勧めてたし、 Coding the Matrixのシラバスには、Pythonを使うのは教育的な目的で、 コース終了後にはMatlab/Octaveを使うことになるだろうと書いていたので、 コンピュータサイエンスでのMatlab/Octaveの優位性には変わりないのだろうか。 Pythonパイセンのことが気になりはじめた今日この頃。

『アルケミスト 夢を旅した少年』

これまたLibraryのマスターにオススメいただいた本です。 夢を追うことについて、深い洞察と多くの金言を与えてくれる本です。 座右の書にしようと思います。 これを書き終えたらAmazonでポチることにします。 一人の少年が自分の運命に従い、 スペインからサハラ砂漠を経てエジプトのピラミッドまでを旅し、 ついに夢にたどり着くまでのお話。 南米文学のかおりが漂うファンタジックなストーリーと (マルシアガルケスほどファンシーではないけど) 硬すぎずやわらかすぎない、とてもわかりやすい日本語訳に ぐいぐいと引き込まれました。 少年が旅の終盤で大いなる魂を知るときの描写は 禅やタオイズムを彷彿とさせました。 とても興味深い。 すべての探求は初心者のつきで始まる。そして、すべての探求は、勝者が厳しくテストされることによって終わるのだ。 しかし夢の実現を不可能にするものが、たった一つだけある。それは失敗するのではないかという恐れだ。 おまえは夢を実現する途中で死ぬのだ。それでも、自分の運命が何か知りもしない何百万人よりかは、ずっと良い死に方なのだよ。    

読書と映画

ひさびさに読書と映画にひたりました。 まずは読書から。 『家族の言い訳』 良く行くコンビニでふと目について、タイトルが気になったので買ってみました。 ためしに1ページ読んでみたら、とまらなくなってしまって一気に読みきってしまいました。 読みやすい文章と引き込まれる展開ってやつですかね。 どの家族にも多かれ少なかれ問題はあると思うのですが、 そんな問題を抱える8組の家族の短いストーリー。 さわやかに泣けました。 家族ってなんだろう。 いがみ合ったり、いくつもの問題を抱えながら それでも一緒にいる。 そんなにいやなら別れてしまえば良いのに。 そもそも結婚なんてしなければいいのに。 とか思っている(いた)のですが それだけでは語れない何かがあるのかもしれませんね。 家族には。 『BAR追分』 Libraryでお貸しいただきました。 マスターが「おもしろいよ」と薦めてくれました。 その言葉に偽りなし。 新宿の一角の路地にあるバー「追分」と 追分が店を構える「ねこみち横丁」を舞台に 横丁の住人たちが織り成すストーリー。 やっぱバーっていいよなー。 お互いがつかず離れず。 でもやさしさと暖かさに包まれる。 最後のお話にはとくにぐっときました。 つづいて、映画。 『James Brown』 フォーラム福島のスタンプが貯まって 無料鑑賞できたのでみてきました。 たのしい映画でした。 とくにライブシーンがとてもよく描写されていて まるでライブビューイングにきたみたいでした。 ジェームスブラウンってあんまりよく知らなかったんだけど 曲はどこかで聴いたことのあるものがおおくて 「おお!これか」とか思いながら見ているうちに どんどん引き込まれました。 ライブシーンと平行して ジェームスの生い立ちが描かれるんですが 挿入の仕方がとてもよかったです。 映画を見るまえは JBのことをただのファンキーなじいさんかと思ってたんですが 間違っていました。 JBはものすごくファンキーなじいさんです。 かっこいい。 『SAFE』 わ...

Week10 and week11

Dr. Ngのクラスもこれで最後。 わりとがんばってみたので、感慨もひとしおです。 Week10 Large scale machine learning データ数が数億に上るような機械学習の解説です。 所謂ビッグデータというやつですかね。 ひとつはアメリカ合衆国の国勢調査とかそんなの。 データが増えるとその分、計算量が増えます。 ひとつの学習をさせるのものすごい時間がかかったり、あるいは計算できなかったり。 そんなときの対処法として確率的最急降下法とかが紹介されています。 あるいは複数のコンピュータ(またはコア)を使った分散処理の仕方とか。 もうひとつはGoogleやAmazonのようなネットを介したオンラインデータの学習ですね。 これは日々目に触れる機会が多い技術ですよね、きっと。 ユーザのクリックをもとに映画や商品をオススメしたりするやつ。 基本的なアルゴリズムが解説されていて、知的好奇心を刺激してくれます。 Week11 いよいよ最後のセッション。 ここでは機械学習が現在挑んでいるOCRという話題について概説しています。 OCR: Optical Character Recognition 写真の中から文字列を検出して、それを認識するというもの。 ここで使われているアルゴリズムはこのクラスですでに解説されているものです。 ロジスティック回帰とか。 では、メインの話題はというと、中規模から大規模プロジェクトの開発における マネジメント方法を詳しく教えてくれます。 プロジェクトをいくつかのステップ(コンポーネント)にわけ、それぞれを別々に開発していくようなシチュエーションが該当すると思います。 システム全体の成績を上げたいとき(あるいはデバッグしたいとき)、 どのコンポーネントに人的・時間的リソースを割くのがもっとも効果的かを見分ける方法です。 アルゴリズムにとどまらず、開発のマネジメントまで解説してくれるとは ほんとうに至れり尽くせりな幹事が増す。 最後のQuizをクリアすると同時に、Congratulation!というメールが届きました。 You completed the course. Hard work pays off. とねぎら...

Week8 and Week9

Week8: k-means clustering and PCA 教師なし学習としてK-means clusteringとPCAが取り上げられています。 K-means cluteringの説明がとてもわかりやすかった。 PCAは線形代数の知識をまるっとすっとばしてsvd(特異値分解の解を得るための関数)の使い方に終始。あくまでも機械学習のアプリケーションに重点をおく姿勢はぶれない。Dr. Ngはぶれない。 教育のあり方としても参考になりました。何が重要で何がそんなに重要でないかをはっきりと伝えてもらうことは、初学者にとってとてもありがたいです。 Week9: 異常検知とRecommendation どちらも実践的な話題です。 異常検知はクレジットカードの不正利用なんかの検出に使われているようです。 RecommendationはAmazonなどで商品をお勧めしてくるあれです。 異常検知でも線形代数の知識をがばっと端折って説明してくれます。 ありがとう、Dr. Ng でも、いつかはきちんと線形代数のおさらいをしなければ。 また、Courseraにお世話になろう。 Recommendationはいまやインターネットでは見かけない日はないくらい 身近な話題ですね。 Dr. Ngの解説を聞きながら感心しきりです。 とくにCollaborative filtering  algorithmはパラメータθだけでなく 特徴値まで推定してくれるという優れもの。 これには感心しました。 これはシステム解析にも使えるんじゃなかろうかと妄想しております。 脳の各段階で、どのような特徴量が抽出されているのかを機械学習的に割り出すことが できやしないものか。。。 妄想は膨らみます。 残すところあと2週。 今週中に完了させて、 自分のデータ解析に移りたい。 科研の書類に間に合うかな。