PDF形式のファイルを御覧いただく場合には、Adobe Acrobat Readerが必要な場合があります。 Adobe Acrobat Readerは開発元のWebページにて、無償でダウンロード可能です。
PDF形式のファイルを御覧いただく場合には、Adobe Acrobat Readerが必要な場合があります。 Adobe Acrobat Readerは開発元のWebページにて、無償でダウンロード可能です。
はじめに この記事はルービックキューブ Advent Calendar 2018 の14日目の記事です。 昨日の記事は望月さんの「ラノベで覚えよう!目隠しキューブ。「恋するイヤーマフ」」でした。 本連載では、ルービックキューブを解くプログラムをPythonで実装しながら、その仕組みを勉強します。 ルービックキューブを解くプログラムと言っても、どれくらい頑張って高速化・効率化するかなどあると思うので、今回の記事では、大体1秒位 & 20手強くらいで解くプログラムを書くのを目標に、コードのわかりやすさ重視でやっていきましょう。 ルービックキューブを効率よく解くアルゴリズムとしてTwo-Phase-Algorithmというものが広く使われています。 本連載でも、Two-Phase-Algorithmを実装します。 まだ、前編しか書けていないので、内容は変わるかもしれませんが、 前編と中編では、実
振り返りまとめを書きました。まずそちらをご覧ください。 ベイジアンモデリングという手法を使って日本と韓国のコロナ対策の有効性を考えます。 SIRDモデルまず背景にある数学的モデルを説明します。理論的な話に興味のない方は飛ばしてください。 ベースになっているのはよく知られているSIRDモデル(susceptible, infected, recovered and death model)です。これはこのように考えます。S[t]を時点tで未感染の人の数、I[t]を今感染している人の数(アクティブ)、R[t]を回復した人、D[t]を死亡した人の数とします。感染している人は各時点である確率βで未感染の人に病気をうつします。今感染している人はある確率aで回復し、確率dで死亡します。一旦回復すると免疫がついてもう病気にはかからなくなります。これを式にまとめてみましょう。Pは人口です。 新型コロナウイ
2020年1月に入社し、SWETの仕様分析サポートチームに加わったtakasek(@takasek)です。 仕様分析サポートチームでは、社内のプロダクト開発に対する形式手法の活用可能性を模索しています。当ブログでも、継続的に形式手法に関する情報発信をしています(形式手法 カテゴリーの記事一覧)。 この記事では、加入3か月を経てようやく形式手法の輪郭が掴めてきた私の視点から、学習前後での理解の変化について振り返ります。想定読者として学習前の私と近い属性——すなわちコンピュータサイエンスや数学の専門教育を受けておらず、主に現場での実務と自習に頼ってきたソフトウェアエンジニアを想定しています。 形式手法を学ぶ前の認識と疑問 ソフトウェアエンジニアとしての私の一番の興味関心は設計手法です。設計は、なんらかの解決したい問題に対して、ある一面を切り取った構造(モデル)を与え、そのモデルを解決の機構に落
要点¶Neural TangentsはGoogle AIが開発したJAXのラッパーライブラリです。無限幅 (中間層のユニット数$\to \infty$)のニューラルネットワーク (以後, NN: neural networks)を高速かつ簡単に構築及び学習させることを目的としています。 Neural Tangentsでは無限幅のNNを学習させる手法としてNNGP (Neural Network Gaussian Process)と NTK (Neural Tangent Kernel)の2つを実装しています。 この記事ではNNGPとNTKの要点を紹介し、Neural Tangentsを用いた実装について紹介していきます。 Neural-Tangentsに関連する文献¶ Paper : https://arxiv.org/abs/1912.02803 OpenReview : https:/
はじめに 前回の記事で、全順序が仮定されているからこそうまくいくソートアルゴリズムを半順序で使用するとどうなるかを見ました。結果としてクイックソートなら半順序でもうまくソートできることを見ましたが、本記事では、これを定理証明支援系Coqを用いて、形式的に証明していきます。 定理証明支援系Coqに関して軽く説明しておくと、プログラムが正しく動くことを、数学的に検証できるツールとして使えるものです。 クイックソートを定義 SSReflectのpathライブラリには、標準のソート関数sortが定義されていますが、このアルゴリズムはマージソートなので、前回の記事で検証したように半順序では使えません。 そこでCoqでクイックソートを定義します。 まず定義の前に、ソートを行う要素の集合Tと、半順序関係Rを宣言しておきます。実際にはTは型で、RはただのT上の二項関係T -> T -> boolとして定義
1992年三重生まれ、会社員。ゆるくまじめに過ごしています。ものすごく暇なときにへんな曲とへんなゲームを作ります。 前の記事:無糖の飲みものに砂糖を入れる > 個人サイト ほりげー インターネットは文字化けと共にある インターネットが普及して20年をゆうに超える。メール、添付ファイル、Webブラウザなど、様々な場面で我々は文字化けに苦しめられてきたし、今でもたまに苦しめられる。「文字が化ける」と書いて文字化け。そこにはお化けみたいで悪いイメージがあるが、それも仕方がない。読めないのだから。必要な情報が読めないのはシンプルに悪いことだ。 DPZの記事を無理やり文字化けさせてみると、こうなる。 でも、一方的に文字化けを避けていては、文字化けと仲良くなれない。文字が化けた先にあるのは文字だ。化ける前の文字ばかり愛していては、化けた後の文字がかわいそうではないか。我々は、化けた後の文字をもっと愛す
Pythonで作って学ぶ統計モデリング 近年、AIや機械学習、深層学習といった用語に代表されるように、多種多様のデータを高度なアルゴリズムと計算機の力で解析し、将来予測などの価値を生み出す技術に注目が集まっています。 これらの技術の土台となっているのが、本記事で解説する統計モデリング(statistical modeling) と呼ばれる考え方です。元々は手計算が可能なレベルの比較的シンプルな数学的仮定を置いてデータを解析する方法論として発展しましたが、近年の計算機の性能発達に伴い、従来では取り扱えなかったより複雑なモデルを利用した高度な解析を実施する事例が増えてきています。特に、現在実践で広く使われている機械学習のモデルや、複雑な非線形関数を組み合わせた深層学習モデルなども、その多くは突き詰めれば統計モデルの一種であることが言えます。したがって、統計モデリングはそれ自体がデータ解析に対し
モジュール データ ガウス過程 カーネル関数 予測 決め打ちハイパーパラメータでの予測 MCMC でのハイパーパラメータ推論 モデル 事前分布からのサンプリング 事後分布の推論 予測分布 ガウス過程関連の記事 モジュール import jax.numpy as np import jax from jax import random, grad, vmap, jit, lax import matplotlib.pyplot as plt import seaborn as sns import numpyro import numpyro.distributions as dist from numpyro import plate, sample, handlers from numpyro.infer import MCMC, NUTS, SVI, ELBO plt.style.us
How do you imagine a building? You consciously create each aspect, puzzling over it in stages. Inception 型なし言語に馴染みはあるものの型付言語をいざ使ってみたらどういう気持ちで書いたらいいのかわからなかったと同僚から相談があり, それをきっかけにして社内の勉強会で以下の話をしました. よく型なし vs. 型付の文脈では「型を書くのは面倒だ」「安全の方が大事だ」「でも面倒だ」「それは型推論を前提にしていないからだ」などの議論になりがちな気がしますが、これはあくまで「計算ありきの型」を考えているからで, 「型ありきの計算」だと全く見え方が違います. 「型はある種の仕様」とおもえば, 型ファーストであることと, 型なし言語でテスト駆動開発(TDD)するときに最初にテストを書くこととは, 同じ
はじめに 単一の分布を使ったモデル 正規分布 同時分布の設計 同時分布からのサンプリング Pyroコード ベルヌーイ分布 同時分布の設計 同時分布からのサンプリング Pyroコード カテゴリ分布 同時分布の設計 同時分布からのサンプリング pyroコード 混合モデル ガウス混合モデル 同時分布からのサンプリング Pyroコード ディリクレ過程混合モデル(某折過程モデル) 同時分布からのサンプリング Pyroコード 最後に はじめに Pyroで確率モデリングを書くときには「確率モデリング自体を知ること」と「Pyroの書き方を知ること」の両方が必要です。今回はPyroの書き方に重点をおいて、とある確率モデルを記述するためのPyroでのコード例を適当に記載します。 約束事として、観測変数(データ) $x$ に対して、このデータの生成にまつわるパラメータをすべてひっくるめて $\theta$ と記
Developers Summit 2020 で使用したスライドです。 言葉というものは曖昧です。複数人が「ともにつくる」システムにおいて、メンバ間で仕様を正しく共有することは非常に重要ですが、一方で言葉の裏側に隠された「暗黙の仮定」を見抜くことは簡単ではありません。このような仕様の曖昧性への対抗手段として、本セッションでは「形式手法」を紹介します。形式手法ではシステムの挙動を数学的に記述することにより、自然言語の持つ曖昧性を排除し、仕様が満たされるかどうかを厳密に検証することが可能になります。あなたの頭の中にある仕様がどのように「数学的な記述」に変換されるのか、具体例を通して体験してみませんか? イベント概要:https://event.shoeisha.jp/devsumi/20200213/session/2380/
PyTorch 確率的プログラミング GPyTorch Pyro BoTorch Ax Training Wrapper pytorch lightning ignite Catalyst skorch Computer Vision kaolin pytorch3d kornia PyTorch pytorch.org いわずとしれたディープラーニングフレームワークです。最近、国産のフレームワークであるChainerの開発元であるPFNが、PyTorchへの移行を示したこともあり、一層認知度が高まったように思います。すでに研究分野ではTensorFlowよりも高いシェアを誇っている状態であり、今後、プロダクション方向にも整備が行くようで更に注目しておくべきでしょう。 ディープラーニングフレームワークと言いつつ、多次元配列の計算を自在に行うことが可能な自動微分ライブラリとして活用することも
What’s new in 1.0.0 (January 29, 2020)¶ These are the changes in pandas 1.0.0. See Release Notes for a full changelog including other versions of pandas. Note The pandas 1.0 release removed a lot of functionality that was deprecated in previous releases (see below for an overview). It is recommended to first upgrade to pandas 0.25 and to ensure your code is working without warnings, before upgradi
機械学習の数理100問の改訂版 (2019年2月24日)。 2018年度の講義も残りわずかになった。 私が着任した昨年度から、基礎工学部情報科学科数理科学コース3年「計算数理B」で、機械学習の数理に関する講義を行っている。その中で、計算数理B100問 を学生に解かせている。 線形回帰 ロジスティック回帰と判別分析 クロスバリデーションとブートストラップ 情報量基準 スパース推定 非線形 決定木 サポートベクトルマシン 教師なし学習 機械学習の演習と言うと、参加費が◯十万円の企業のセミナーなどでも、中身を理解させないで、データを流し込むだけのものが多い。そういうのをみると、頭を使わない勉強方法を奨励しているように思えてならない。この100問は、理論(簡単な数式の証明)だけでなく、R言語でかかれたソースプログラムを理解するようにしている。 データサイエンスの人材が◯万人不足すると指摘する声は多
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く