[DL輪読会]Learning to Simulate Complex Physics with Graph Networks

TL; DR Pythonのデータマネジメント技術と数値最適化をスムーズに繋げたい Pyomoを使うことで自然な記法でモデルを組み立てることが出来る Webドキュメントは貧弱だが、コミュニティは活発! 概要 数値最適化は機械学習や数値モデリングの基礎も基礎ですが、単に役に立ちます。Pythonという観点を度外視すれば、いろいろな手段がありますが、基本的には共通するフローがあります。 現象から最適化したい目的関数を決定する 目的関数に付随する制約条件を立式化する データを用意し、モデリング言語を記述する モデルをソルバーへ投入し、解を得る こういった作業をするための環境は商用でも色々と売られていまして、例えばAIMMS社とか、GAMS社、AMPL社といった会社は最適化の開発環境や言語を作って販売しています。 もちろん非商用でも、こういう団体は存在し、COIN-ORではライブラリやソルバーを開
4/30 公開 5/1 増補改訂: 大幅加筆しました。 この記事では、2018年以降に実現可能になったモダンなPythonプロジェクトのはじめかたを整理して紹介します。 PythonにもPipenvという公式推奨の高機能なパッケージマネージャーが登場し、さらに2018年に入ってからの機能向上で、npmやyarnのような開発体験が得られるようになってきました。 私はここしばらくはフロントエンドやNode.jsに携わっていて、npmやyarnに慣れきっていたせいか、pipenv導入以前はvirtualenvやpipを組み合わせた開発が面倒で仕方なかったですが、Pipenv導入によって一変しました。 これからはPythonのプロジェクトがよりクリーンかつ簡単にはじめられるようになり、開発体験も向上するでしょう。 それでは、まずはPythonのインストールからです。 Pythonのインストール P
cppyy: Automatic Python-C++ bindings cppyy is an automatic, run-time, Python-C++ bindings generator, for calling C++ from Python and Python from C++. Run-time generation enables detailed specialization for higher performance, lazy loading for reduced memory use in large scale projects, Python-side cross-inheritance and callbacks for working with C++ frameworks, run-time template instantiation, au
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 今まで仕事で使ってきた、メジャーなものからマイナーなものまで含めたJupyter NotebooksのTIPS集です。 入力補完 とりあえずこれが無いと生きていけません。 Nbextensions(Jupyterの拡張機能)自体が未設定であれば、一旦そちらをインストールして、その後にHinterlandという機能にチェックを入れると有効化されます。 AnacondaのJupyter notebookでnbextensionsを使う ※Nbextensionsインストール後、Jupyterのファイルリスト的な画面で、タブで「Nbexten
この記事の続きです。 ここではPRMLの10.1.3項の一変数ガウス分布の例題(WikipediaのVariational_Bayesian_methodsのA basic exampleと同じ)をSymPyで解きます。すなわちデータが に従い*1、とが、 に従うという状況です。ここでデータ()が得られたとして事後分布を変分ベイズで求めます。 まずはじめに、上記の確率モデルから同時分布を書き下しておきます。 なので、 となります。 この問題は単純なので事後分布は厳密に求まるのですが、ここでは変分ベイズで解きます。すなわち、事後分布をで近似します。さらにと因子分解可能と仮定します。そして、前の記事の最後の2つの式を使って、とが収束するまで繰り返し交互に更新して求めるのでした。以下ではこれをSymPyでやります。 from sympy import * from sympy.stats imp
Google Colaboratoryが便利 最近、Google Colaboratoryがちょっと気になっていたのですが、タダケン (id:tadaken3)さんの以下記事に分かりやすく使い方が書いてあったのをきっかけに試して見ました。 結論から言うと、これ良いですね。Google Colaboratoryには以下の特徴(利点)があります。 ローカルPCに必要なのはブラウザ(Google Chrome)のみ クラウド上にPython環境がありPython2/3 両方使える 機械学習に必要なライブラリは、ある程度プリインストールされている(numpy, matplotlib, TensorFlow等) 必要なライブラリは !pip installでインストールできる 日本語フォントも(ちょっと工夫すれば)使える 無料で使える。なんとGPUも12時間分を無料で使える! これ死角無さすぎでは…
Notebookの機能にターミナル、ファイルブラウザなどを統合 そのJupyter Notebookのメジャーバージョンアップ版として開発されているJupyterLabは、Notebookの機能だけでなく、ターミナル画面の機能、ファイルブラウザ、テキストエディタなどの機能が統合され、それらをタブによって同時にいくつも開くことができるようになり、統合開発環境と呼ぶべきツールへと進化しました。 拡張機能によって機能をあとから追加することも可能(JupyterLabの基本機能であるNotebookやファイルブラウザ、ターミナルも拡張機能として実装されていると説明されています)。すでに、JSONやCSVの読み込み機能、JSONフォーマットで地図情報を記述するgeoJSONによる地図表示などが用意されています。 JupyterLabは今年後半に正式版となるバージョン1.0がリリース予定。また、現バー
はじめに ベイズ最適化(参考:ベイズ最適化入門, 機械学習のためのベイズ最適化入門)を使うと、機械学習の時の各種Try&Errorで決めざるを得ないようなハイパーパラメータの探索を効率よく実施できる可能性があります。 考え方などは最近色々解説記事が増えてきたおかげで理解はできるのですが、GridSearchのライブラリみたいな形ではWeb上で見つけられなかったので、今回作りました。きっと車輪の再発明なのだと思うのですが、まあ再発明は勉強にはなるので良しとします。 今回使っている各種Version Python3.5 numpy==1.11.1 scikit-learn==0.17.1 コード from itertools import product from sklearn.gaussian_process import GaussianProcess # The MIT License
This is a guest post by Adrian Rosebrock. Adrian is the author of PyImageSearch.com, a blog about computer vision and deep learning. Adrian recently finished authoring Deep Learning for Computer Vision with Python, a new book on deep learning for computer vision and image recognition using Keras. In this tutorial, we will present a simple method to take a Keras model and deploy it as a REST API. T
There are two amazing things about this achievement: 1. AlphaZero requires zero human expertise as input It cannot be overstated how important this is. This means that the underlying methodology of AlphaGo Zero can be applied to ANY game with perfect information (the game state is fully known to both players at all times) because no prior expertise is required beyond the rules of the game. This is
これまで、開発や運用時に使う、ちょっとしたコマンドラインツール、自動化スクリプトは、主にBashのシェルスクリプトで実装していたのですが、最近このような用途にはPythonを使うようにしています。 Bashスクリプトへの不満 スクリプトの実装方針 ポータビリティ重視のための縛りPythonプログラミング Tips __future__モジュールでバージョン2、3両方に対応させる バージョン2、3で異なるモジュールを、同じ名前で読み込む バージョン2、3を判別する関数を用意する よく使うスニペット 文字に色をつける 赤い文字でエラーメッセージを出力して終了する 外部コマンド実行する テキストをファイルに出力する ファイルに実行権限をつける スクリプトの同時、多重起動防止する コマンドライン・オプションの解析 HTTPリクエスト まとめ Bashスクリプトへの不満 Bashのスクリプト実装にお
いきなり 3 系に移行するのはちょっと心配…という場合、まず2 系 + __future__ モジュールを使うのが良さそう。__future__ モジュールは Python 2 系用のモジュール。Python 3 系に実装されている Python 2 系 と互換性の無い機能をPython 2 系で使用できるようにする。 以下、__future__ モジュールに実装されている機能を利用しつつ、Python 3 系での大きな変更点を確認してゆく。 print_function 3系では print は文から関数 print()になった。また予約語からも削除された。 >>> from __future__ import print_function from __future__ import print_function >>> print('abc') print('abc') abc >>
bicycle1885.hatenablog.com こちらの記事を拝見していて、ちょっと気になったので注釈。 PythonやRを使っている人で、ある程度重い計算をする人達には半ば常識になっていることとして、いわゆる「for文を使ってはいけない。ベクトル化*1しろ。」という助言があります。 これは、PythonやRのようなインタープリター方式の処理系をもつ言語では、極めてfor文が遅いため、C言語やFortranで実装されたベクトル化計算を使うほうが速いという意味です。 昔からよくこういう言い方がよくされるが、本当にPythonのfor文は遅いのだろうか。 聞くところによるとRのfor文はガチで遅いそうだが、Pythonの計算が遅いのはインタープリタ方式だからでも、for文が遅いからでもない。もちろん、Pythonはインタープリタなので遅いし、for文だって極めて遅い。しかし、これはPyt
この記事は、「数学とコンピュータ Advent Calendar 2017」の15日目です (前の記事は、mod_poppo さんの「「週刊 代数的実数を作る」中間報告 」でした) piacere と申します 100年間、その存在を確認できなかったのに、2015年9月から立て続けに5回も観測できた「重力波」をプログラムで解析してみたいと思います 続編(?)の重力プログラミング入門「第3回:太陽フレアをディープラーニングで予測する」を「TensorFlow Advent Calendar 2017」24日目として公開しました ※本コラムの「LT向けスライド」ができました パラパラめくりながら眺めたいときはどうぞ タイトルが「第2回」となっているのは、2017/9の福岡数学イベントで登壇した、重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」の続編(?)のためです 私は
あるいは、論文 "Best Practices for Scientific Computing" および "Good Enough Practices in Scientific Computing" について。 TL;DR 標題の件について、未だに答えは見えていないのだけど、自分の現状と他の人の例を文字で残しておく。 こういう話で「あーその手があったかー!」と知ったときの興奮はすごいので、みなさんもっとオープンにいきましょう。 大切なのは、ソフトウェア開発と同じ要領でデータサイエンスのプロジェクトを捉えて、分析と言う名の“開発”を行うつもりでディレクトリを掘ること。 必要なものリスト ナウいデータサイエンス/機械学習プロジェクトの中には(経験上、ぱっと思い浮かぶだけでも)次のようなファイル群があって、僕たちはそれらを良い感じに管理したい。 ソースコード 役割がいろいろある: 前処理(こ
- はじめに - 最近はWebスクレイピングにお熱である。 趣味の機械学習のデータセット集めに利用したり、自身のカードの情報や各アカウントの支払い状況をスクレイピングしてスプレッドシートで管理したりしている。 最近この手の記事は多くあるものの「~してみた」から抜けた記事が見当たらないので、大規模に処理する場合も含めた大きめの記事として知見をまとめておく。 追記 2018/03/05: 大きな内容なのでここに追記します。 github.com phantomJSについての記載が記事内でありますが、phantomJSのメンテナが止めたニュースが記憶に新しいですが、上記issueにて正式にこれ以上バージョンアップされないとの通達。 記事内でも推奨していますがheadless Chrome等を使う方が良さそうです。 - アジェンダ - 主に以下のような話をします。 - はじめに - - アジェンダ
この投稿は 「python Advent Calendar 2017 - Qiita」 の 9日目の記事です。 こんにちは、akiyoko です。 「Python Advent Calendar」は 4年連続 4度目の参加になります。 *1, *2, *3 はじめに 皆さん、CSV は好きですよね? Excel も大好きですね? じゃあ当然、CSVファイルは Excel で開きますよね。 文字化けは? ・・もちろん嫌いですよね。 でも CSVファイルを Excel で開こうとしたときに、こんな文字化け地獄を経験したことはありませんでしたか? *4 ということで今回は、Excel で直接開いたときに文字化けしない CSV ファイルを Python3 で作成する方法 を紹介したいと思います。(おまけで Python2 でのやり方も書いておきますが、今時 Python2 で消耗している人なんてい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く