サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
qiita.com/antimon2
この記事は、Julia Advent Calendar 2017 の3日目の記事です。 Julia では関数は第一級オブジェクトであり、関数の中で関数を定義することとかも普通にできるし、Closure も普通に定義できます。 ただ、Julia に限った話ではないですが、Closure って気軽に手軽に定義できるけれど、決してパフォーマンス良くないんですよね。 その理由と、Julia における「Closure のパフォーマンス改善」について少し解説してみます。 Julia の対象バージョンは v0.6.x(v0.6.1 で動作確認済)1。 お題:Xorshift32 Closure の良い例がなかなか浮かばなかったのですが、単純すぎず複雑すぎずと言うことで、Xorshift(32bit版)を取り上げます2。 Closure によるシンプルな実装 まずはこれを Closure でシンプルに実装
TL;DR この資料は、機械学習名古屋勉強会#16「強化学習ハンズオンパート2」 の補助資料です。 この資料を見るだけで、Windows10(Home可)上で OpenAI Gym が動くまでの環境設定ができることを目指します。 はじめに OpenAI Gym。公式にサポートしているのは Linux / macOS のみで、Windows はサポート外です。 Windows で OpenAI Gym を動かすにはいくつか方法があるのですが、そこそこネイティブに近い(=VirtualBoxやHyper-Vなどの仮想環境を利用しない)、Windows 10 Home でも利用可能な方法1を紹介します。 それが、「WSL(Windows Subsystem for Linux)」に「Ubuntu 18.04」を入れて、「VcXsrv(Windows用のXServer)」でGUIを表示する方法です
TL;DR 正格評価なのか非正格評価(遅延評価)なのかはしっかり把握しましょう、という話。 あとおまけで、素数無限列挙の話についてもちらっと。 初めに Scala は、遅延リストとしての Stream を備えています。 Stream.from(n) とすれば n 以降の整数を無限に列挙1できますし、その他フィボナッチ数列や素数列も定義できます。もちろん遅延リストなので、基本的には実際の値は必要になるまで算出されません。 また Haskell などと同様、Scala でも Stream は『最初の要素』と『残り』のようなパターンマッチングに対応しています。これを利用して柔軟な Stream 処理が可能なのですが…。 ちょっと込み入ったことをしようとすると、すぐに StackOverflowError に見舞われてしまいます。 ということで、自分用の覚書を兼ねて、その原因と対策をまとめてみます
はじめに この記事は、毎月開催(2017/04/17(月) に初回開催)の 機械学習 名古屋 分科会「ゼロから作る Deep Learning 読書会+ハンズオン」 に向けて、参加者の開発環境を統一するために作成した Dockerイメージ の説明と、作り方の解説をまとめたものです。 前半は、主に勉強会参加者向けの Dockerイメージ の使い方の説明です。 後半は、この Dockerイメージ を作るにあたって気付いた点・工夫した点等の技術解説です。 【2017/05/19 Docker イメージ更新に伴い内容を加筆・修正しています】 Dockerイメージの使い方 前提 当たり前ですが Docker がインストールされている必要があります。 この記事では、Docker について・Docker のインストールについて等、深く解説しません。以下の各リンク先を参照してください。 Docker Co
前置き 色々やりたいことはあるのに思うように捗りません1。 そんなときは現実逃避のために、Julia の最新開発版をインストールして新機能を試してみて近未来を覗いたりします2。 v0.6.0-dev に、前々から少し期待していた「型システムの仕様変更」がついに入りました! 割と自分の思っていた方向に実装がされていたので、紹介したいと思います。 【2018/02/19 11:45】編集:参考リンク集のリンク先を一部修正3。 Julia の型システム概要 Julia は、動的型付言語です。コンパイル時ではなく基本的に実行時に型が決定します。 一方で、関数の引数や戻り値等に、型アノテーションを付けることはできます。 特に関数については、引数の違い(型及び個数)で同じ関数を多重定義することができ、実行時に適切な引数を持った関数が呼ばれる仕組みを取っています(多重ディスパッチ と言います)。これが(
初めに この記事は、Machine Learning Advent Calendar 2016 5日目の記事です。 複数の学習器(弱学習器、weak learner)を組み合わせてよりより性能の高い学習器(強学習器、strong learner)を作る、アンサンブル学習の手法の一つ、ブースティング。 その中でも代表的な、AdaBoost。 PRML本にも載っている(日本語版下巻p.374)しググれば実装例もいくらでも出てきますけれど、弱学習器として一番単純な決定株(decision stump)を用いた例ばかり。 それを他のものに変えたら、性能にどう影響するか。思いつきで実験してみました。1 実験環境 Mac OSX 10.11.6 Core i7 3.1GHz / 16GB RAM Julia v0.5.0 IJulia(Julia の Jupyter カーネル)、Gadfly(Juli
TL;DR Julia は速いよ。 Julia は行列演算簡単だよ。 Julia は Deep Learning 向きだよ。 Julia はそもそも書きやすいよはかどるよ! Julia 良いよ Julia! 初めに 【注意】この記事は1年以上前の記事です12。 この記事は、Julia Advent Calendar 2016 の3日目の記事です。 と同時に、機械学習 名古屋 第8回勉強会 の発表資料です。 またこの記事は、ゼロから作る Deep Learning(O'reilly, 2016/09)を参考に構築しています。 ↑ をJuliaに移植中 → DLScratch.jl 自己紹介 自己紹介 名前:後藤 俊介 所属:有限会社 来栖川電算 言語:Python, Julia, Ruby, Scala(勉強中), … twitter: @antimon2 Facebook: antimon
初めに 転職して約1ヶ月経過1 仕事でバリバリ TensorFlow 活用中 ↑にともなって月の前半は TF(再)勉強 その成果の紹介 主にデータ収集・読込回りの情報共有 あとQiitaスライドモードのテストも兼 tf.train.batchXXX() 指定したバッチサイズのミニバッチをどんどん生成してくれる「データプロバイダ」を生成する関数 内部でキューを利用して、先読み・送出する仕組み 複数のデータを同時(同期)的に送出可能(画像とラベルとか) 参照:Batching at the end of an input pipeline サンプル # データ・ラベルの定義 data = tf.random_uniform([2], -1, 1) label = tf.cast(tf.reduce_prod(data)>=0, tf.float32) # バッチデータプロデューサ(バッチサイズ
前置き GW いかがお過ごしでしょうか? 私は、色々あって超暇なのでCNNとかRNNとかいろいろ実験しようと思ってた1のですが、体調崩して連休の半分くらい寝てました2。 ということでちょっとリハビリに、Julia の HEAD(2016/05/06 13:00 時点の最新 v0.5.0-dev+3922)をインストールして試してみました。 その中で「これ Julia に欲しかった!」が実装されていたので紹介します。 Generator 式 Julia には、Python に類似の リスト内包表記 があります: julia> ls0 = [i for i in 1:10000] 10000-element Array{Int64,1}: 1 2 3 4 5 6 7 8 9 10 ⋮ 9992 9993 9994 9995 9996 9997 9998 9999 10000 julia> Py
前置き 某 オンライン機械学習コース の Linear Regression with Multiple Variables(多変量線形回帰)で出てきた、Normal Equation(正規方程式)について。 Andrew Ng 先生(以降、Ang先生 と略記)が「導出するのめんどい(意訳)」と言って結果だけ示されたので、ちょっとだけ掘り下げてみました。 その中で、疑問点も浮かんできたので共有してみます。 私自身、まだちゃんと分かってない部分もあるかもなので、ツッコミ大歓迎です。 【2015/07/24 23:10】検証コードを追加し、大幅に加筆修正しています。 まずはおさらい。 $X$ は、トレーニングデータの特徴量全体を表す $m \times (n+1)$ 行列($m$(行数)はデータの件数、$n$ は feature(特徴)の数)。 $y$ は、トレーニングデータの「正解の値」を並
前置き 某 オンライン機械学習コース を受講するにあたって、自宅及び会社の Mac に Octave をインストールました。 で、Jupyter に確か Octave のカーネルもあるはずだ、と探してついでにインストールしたのですが。 ちょっとだけハマったので、情報共有のために記録。 【2015/07/14 09:00 追記】 動作確認していて、日本語の扱いでハマったので、記事を加筆・修正しました。 環境 Mac OSX 10.8.5 / 10.9.5 Homebrew Python 2.7.9 / 3.4.31 IPython 3.1.0 → 3.2.02 Octave のインストール Octave は、バイナリをダウンロードしてインストールすることもできるようですが、私は Homebrew でインストール。OSX のバージョンにほぼ依存せず同じ手順でインストールできたので(時間はかかり
はじめに CodeIQで出題されていた、通称「フィズ・バズ・エクストリーム」問題(←問題の公開は終了したので左記リンクでは問題閲覧はできません)。 うまい漸化式を見付けて、それを元にコンパクトな再帰で解けたのですが、意外とこの漸化式で解いている人が少なそうなので、(誰か解説書いてくれるだろうと踏んでいたのですけれどこの際だから自分で)それを紹介・解説してみます。 ついでに、そこから Ruby でコードゴルフしたのでそのコードも簡単に解説。 問題(概要) 問題全文は、↓こちらを参照。 CodeIQ 「フィズ・バズ・エクストリーム」 問題 [PDF] 文章を引用する代わりに私の言葉で意訳したのが↓こちら。 与えられた $n$ に対して、$n$ 以下の正の整数のうち、3, 5, 7, 11, 13, 17, 19, 23, 29, 31 の少なくともどれか一つの倍数となるものの総和を求めよ。 Q
前置き 先日(2015/05/30)、Python東海 第27回勉強会で、「Jupyter + RISE による ライブデモ&プレゼンテーション」という発表をしてきました。 発表は、資料を Jupyter(IPython Notebook)で大枠を作り、RISE でリアルタイムスライド表示しながらその場で編集し、その場で Gist にアップ → nbviewer に登録 → nbviewer でのスライド表示、という流れで実施1。上記の発表資料は最終的に nbviewer で公開したスライド(後で少しだけ再編集したもの)です。 で、スライド関係は良かったのですが、主にそれ以外の環境設定周りについて、短い発表時間の中でだいぶ端折ったり、発表資料も最低限のことしか書いていないので、自分がやったことを補足しておこうと思います。 なおこの記事は、先日の記事「IPython + IJulia → J
前置き 元ネタは、結城浩氏著の「数学ガール 乱択アルゴリズム」。 新しい言語を覚えるとき、慣れるために「充足可能性問題(3-SAT)を解く乱択アルゴリズム」(p.353)を実装するという癖をつけていま1す。 ということで。前回の Egison版 に引き続き。勉強開始約1ヶ月の Julia ( http://julialang.org/ ) で実装してみました2。 開発環境・動作確認環境 Mac OSX 10.9.5 Julia 0.3.5 コード # Rw3sat.jl sample(a::Array) = a[rand(1:end)] immutable Literal index::Int not::Bool end literal(index, not) = Literal(index, not) # issatisfied(l::Literal, x::BitArray{1}) =
前置き 元ネタは、結城浩氏著の「数学ガール 乱択アルゴリズム」。 新しい言語を覚えるとき、慣れるために「充足可能性問題(3-SAT)を解く乱択アルゴリズム」(p.353)を実装するという癖をつけていました1。 ということで、久々に。個人的に研究中の Egison ( http://www.egison.org/ ) で試してみました。 開発環境・動作確認環境 Mac OSX 10.9.52 Egison 3.3.15/3.5.134 コード 例1:関数型プログラミングを強く意識したコード まずは関数型プログラミングとしての実装例。Egison が標準で用意してくれている関数は素直になるべく利用するようにしました。 ;; rw3sat_f.egi (define $sample (lambda [$xs] (nth (pure-rand 1 (length xs)) xs))) (defin
このページを最初にブックマークしてみませんか?
『@antimon2のマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く