あとで読むに関するamacbeeのブックマーク (13)

  • C言語1000行以下のエディタ「Kilo」を理解する(1) シンプルな内部構造

    以前、Salvatore Sanfilippo氏によって開発されたエディタ「Kilo」を取り上げたところ、高い関心を集めた。Kiloはclocカウントでソースコードが1000行以下で、しかもcursesなどのライブラリも使っていない。VT100の基的なエスケープシーケンスとlibcで提供されている機能だけを用いて実装されたエディタで、シンタックスハイライトにも対応している。C言語1000行程度でここまで実用的なエディタが開発できるというのは、教育向けの素材として興味深い。 連載では、Kiloのソースコードを読み、どのような仕組みでエディタが作られているかについて紹介する。C言語でソフトウェアを開発する際に利用する機能が網羅されており、学習素材としてなかなかのポテンシャルを持っている。エディタがどのように実装されているのかを知るためにも、一度は読んで見てほしいソースコードだ。 頭から読む

    C言語1000行以下のエディタ「Kilo」を理解する(1) シンプルな内部構造
  • Amazon AWSでユーザ数1100万以上にスケーリングするためのビギナーズ・ガイド | POSTD

    あるシステムを、1人のユーザから1100万人以上にスケーリングするにはどのようにすれば良いのでしょうか。Amazonのウェブサービスソリューションアーキテクトである Joel Williams が AWS re: Invent 2015 Scaling Up to Your First 10 Million Users でスケーリング方法について素晴らしいプレゼンをしています。 AWS上級者のユーザには適さないプレゼンですが、AWS初心者やクラウド初心者、Amazonが次々と送り出す新機能の流れについていけていない人が始めるには素晴らしい内容だと思います。 おおよその見当は付いていると思いますが、このプレゼンはAmazonによって提供されているため、どの問題についても解決策として提案されているものは全てAmazonのサービスになります。amazonのプラットフォームの役割は、印象深く、分か

    Amazon AWSでユーザ数1100万以上にスケーリングするためのビギナーズ・ガイド | POSTD
  • 第一線のAI研究者が注目する最新機械学習技術6選(NIPS2015招待講演より) - 作って遊ぶ機械学習。

    ちょっと前になりますが、昨年12月に行われた機械学習のトップカンファレンスであるNIPS2015の講演ビデオが上がっているようなのでチェックしてみました。今回ご紹介するのはケンブリッジ大学のZoubin Ghahramani教授の研究です。 datasciencereport.com 同教授は今後excitingな機械学習の基礎・応用に関する取り組みとして次のような6テーマを紹介しています。 ・Bayesian Nonparametrics ベイジアンノンパラメトリクスでは、無限次元を持つモデルを仮定することにより、データ量に応じて適切なモデルを学習することができます。こういったモデルは関数上の確率分布(確率過程)を考慮することによって実現できます。代表的な例はガウス過程、中華料理店過程、インド料理過程などです(ご飯ばっかりですね)。 ガウス過程は、回帰や識別、ランキングや次元削減に使われ

    第一線のAI研究者が注目する最新機械学習技術6選(NIPS2015招待講演より) - 作って遊ぶ機械学習。
  • ChainerのCupyでGPUを有効活用しよう - mktozkの日記

    お久しぶりです、@mktozkです。 2ヶ月くらいブログの更新をしてませんでした。 おちこんだりもしたけれど、私はげんきです。 さて、今日はディープラーニングのフレームワークであるChainerに含まれているCupyというライブラリについて話します。 ChainerはCupyを使って様々な計算をGPU (CUDA) で行っています。 今回はこのCupyを使って楽に色んな計算をGPUに投げることを目指します。 ディープラーニングの話は全くしません。 chainer.org この記事を読んだらわかること Cupyの使い方 CupyとNumpyの両方に対応したコードの簡単な書き方 この記事には書いてないこと CUDAカーネルの書き方と使い方 この記事で使用したコードはここかここから取得できます。 ちなみに、Chainerはv1.5.1です。 GPUは速い Cupyとは Cupyの導入 Cupyの

    ChainerのCupyでGPUを有効活用しよう - mktozkの日記
  • 「全ての確率はコイン投げに通ず」 Japan.R 発表資料

    「全ての確率はコイン投げに通ず」 2015/12/5 Japan.R 発表資料 様々な確率分布をベルヌーイ分布(コイン投げ)との関係性で説明をしてみるというスライドです。 Pythonバージョンのコード: https://github.com/matsuken92/Qiita_Contents/blob/master/random_variables/random_variables.ipynbRead less

    「全ての確率はコイン投げに通ず」 Japan.R 発表資料
  • Python Dask.Array で 並列 / Out-Of-Core 処理 - StatsFragments

    この記事は Python Advent Calendar 2015 13 日目の記事です。 Python で手軽に並列 / Out-Of-Core 処理を行うためのパッケージである Dask について書きたい。Dask を使うと以下のようなメリットが得られる。 環境構築 / インストールが pip で簡単にできる 手軽に並列処理ができる Out-Of-Core (メモリに乗らないデータ) 処理ができる 補足 Dask は手持ちの PC の シングルコア / 物理メモリでは処理が少しきついかな、といった場合に利用するパッケージのため、より大規模 / 高速 / 安定した処理を行いたい場合には Hadoop や Spark を使ったほうがよい。 Dask は以下 3 つのサブパッケージを持つ。 サブモジュール ベースパッケージ dask.array NumPy dask.bag PyToolz

    Python Dask.Array で 並列 / Out-Of-Core 処理 - StatsFragments
  • 自然言語処理20_161

  • Python Jupyter + pandas で DataFrame 表示をカスタマイズする - StatsFragments

    先日 pandas v0.17.1 がリリースされた。v0.17.0 に対するバグフィックスがメインだが、以下の追加機能もあるため その内容をまとめたい。 HTML 表示のカスタマイズ Jupyer 上では pandasの DataFrame は自動的に HTML として描画される。この HTML に対して、さまざまな CSS を柔軟に設定できるようになった。 このエントリでは、添付した公式ドキュメントとは少し違う例を記載する。 Style -- pandas documentation @TomAugspurger (コミッタの一人) 作成の Jupyter Notebook 重要 公式ドキュメントにも記載がされているが v0.17.1 時点で開発中 / Experimental な追加のため、今後 破壊的な変更が発生する可能性がある。ご要望やお気づきの点があれば GitHub issu

    Python Jupyter + pandas で DataFrame 表示をカスタマイズする - StatsFragments
  • Pythonのオブジェクトとクラスのビジュアルガイド – 全てがオブジェクトであるということ | POSTD

    Python開発者が大好きな言葉があります。それは”全てはオブジェクトである”です。実際、私自身もPythonのクラスを教えているときに何度も口にしています。多くの人が何度も聞いた言葉かもしれないのですが、私が言う度に生徒は賛同の相槌をしてくれます。結局のところ、Javaにおいて全ては(対象がそうでない場合を除いて)オブジェクトであり、.NETにおいても全てはオブジェクトであると、よく言われています。 しかしPythonにおいて全てがオブジェクトであると言う時、(私の生徒は驚いていましたが)「 全て 」にはクラスも含まれているのです。これはとても筋が通っていて、オブジェクトシステム全体が理解しやすくなります。しかしそれでも、広い視野で物事を見ることは難しいのです。 今回のブログ記事では、Pythonのオブジェクト間のつながりをざっと見ていきたいと思います。そして”全てはオブジェクトである”

    Pythonのオブジェクトとクラスのビジュアルガイド – 全てがオブジェクトであるということ | POSTD
  • Python基礎講座(はじめに) - Qiita

    この記事を書いた動機 僕の住む静岡県では、2010年から「静岡Developers勉強会」という ITエンジニアを対象とした勉強会が開催されています。 2010年:「Programming in Haskell」 2011年:「JavaScript: The Good Parts」 2012年:「HTML5&CSS3実践入門」 2013年:「入門 機械学習」 2014年:「実践 コンピュータビジョン」 昨年の「実践 コンピュータビジョン」ではPythonを使用したため、 多くの人に勉強会に参加してもらうために、Pythonの基を学べる スライドを作成しました。 その後、勉強会に参加したメンバーから、「自分もそのスライドの発表を聞きたい」と 要望があり、せっかく初心者用の資料を作成したのならば、Webで公開したほうが 多くの人が見ることが出来て良いのではないかと考え、今回Qiitaを利用し

    Python基礎講座(はじめに) - Qiita
  • 社会人のための趣味CTFまとめ

    DEFCONにセキュキャン… 夏の日差しのように若きセキュリティ人材の活躍が眩しい今日この頃、職場や家族の冷ややかな視線を背中に受けながら、冷房いらずでフラグを探している社会人趣味CTF初心者の皆様、いかがお過ごしでしょうか。 通勤時間を使いスマホの小さな画面でwriteupを読み、なんとなく理解したようでも、いざ実戦となると歯も立たず…。 鬼の居ぬ間に過去問を解いてみても、それが直接得点になるわけではないのでモチベーションが続かない…。 だからといって、易々と教えを乞うのはプライドが許さない…。 社会人趣味CTF初心者が、小さな小さな人権と、問題を解いた大きな喜びを得るには、当然ながら「自分で問題を解く」しかありません。 そこで、社会人でもスキマ時間を使って参加でき、さらにランキングがあってモチベーションが維持しやすい常時開催されているタイプのCTFを、私の主観を交えてまとめてみました。

  • Stochastic Gradient Descent

    1. 導入 私達が実際に機械学習で行っていることは誤差関数を最小にすることや尤度関数を最大にするパラメータを求めることですが、関数の最小点を見つけることを「最適化」とすると、関数によっては最適化はとても難しいものとなり、単なる行列計算では求めることができない場合があります( むしろそのような場合がほとんどです ). その際に勾配を用いたアプローチが効果的とされています. 2. 勾配降下法 関数の勾配を用いて、最適化を図る手法を勾配降下法( Gradient Descent: GD )と呼びます. 横軸を重み\( w \)、縦軸を誤差\( E(w) \)とした時、誤差が最小となる重みを\( w^{opt} \)とし、現在の重みを\( w^{old} \)とします. 学習によって最適な重み\( w^{opt} \)へ近づくように重みの更新を行うのですが、その際知りたいのは重みをどの方向へ動かせ

    Stochastic Gradient Descent
  • Python: コマンドラインパーサの Click が便利すぎた - CUBE SUGAR CONTAINER

    Python のコマンドラインパーサといえば、標準ライブラリに組み込まれている argparse が基。 蛇足になるけど、バージョン 2.7 以前で使われていた optparse は将来的に廃止予定なので新たに使うことは避けた方が良い。 そして、今回紹介する Python のサードパーティ製コマンドラインパーサ Click は、既存のパッケージと比較すると最小限のコードで美しくコマンドラインインターフェースを実装できるように作られている。 どれくらい楽になるかといえば、もう argparse を使っている場合じゃないな、と思えるレベル。 Welcome to Click — Click Documentation (8.0.x) もくじ もくじ Click をインストールする 基的な使い方 コマンドを定義する オプションを追加する 引数を追加する サブコマンドを作る オプションについて

    Python: コマンドラインパーサの Click が便利すぎた - CUBE SUGAR CONTAINER
    amacbee
    amacbee 2015/10/20
    Clickまだ使ったことないけど便利らしいという噂だけは随所で聞く
  • 1