今回は予測分布をベータ分布として棄却サンプリングを試してみます。ベータ分布とは、確率密度関数が下記の式で表される確率分布のことです。正の実数のパラメータです。1]上の連続型の確率分布であることが特徴です。ベータ分布の形を確認するためにScipyというPythonライブラリを使って確認してみます。必要なライブラリのインポートです。uniform次にベータ分布を描画してみます。必要なコードはたったこれだけです。b))棄却サンプリングの実行では、いよいよ棄却サンプリングを試してみます。提案分布はどんな分布であっても構わないのですが、今回はサンプリングが簡単で理解もしやすい一様分布とします。求めることが出来ます。具体的には0から1の間で一つ値を決定することになります。この処理によって横軸と縦軸のスケールの異なる一様分布から生成された二つの乱数によって座標が一点決まることになります。予測分布よりも下の範囲であれば採用します。シンプルですね!当然ながらサンプリング数が多ければ多いほど、予測分布に近しい結果になります。実装して結果を見ていきます。求めますが、今回はScipyのOptimize関数を使います。ScipyのOptimize関数は目的関数を最適化(最小値もしくは最大値を求める)する便利な関数です。M)にマイナスをつけているのは、ベータ分布の最大値を求めるために最小値問題に帰着させるためです。結果を見てみると上手くベータ分布の最大値を求められていることがわかります。次に乱数を生成して提案分布が予測分布に近しい結果になっていくことを確認します。乱数を1000個生成した場合を見てみます。distribution")plt.legend()1000個の乱数だと、まだ少し予測分布(ベータ分布)に対して少しバラツキがありますね。乱数を50000個に増やしてみましょう。すると、乱数が1000個に比べてベータ分布に対してほぼ同じような曲線を描いていることがわかります。最後に今回は基本的なサンプリングアルゴリズムである棄却サンプリングを試してみました。異なる分布から求めたい分布のサンプルを非常にシンプルな考えで得ることが出来て面白いですね。サンプリングアルゴリズムは他にもたくさんあるので、是非試してみたいと思います。APITweetもっと読むコメントを書く2019-08-08赤ちゃん1人とルーター2つこんにちは。サーバーサイドエンジニアの柿本です。赤ちゃんとルーター、一見関係なさそうな二者ですが実は深い関係があることをご存知でしょうか?我が家には昨年末に子供が生まれ、結果的にルーターが1つ増えました。ユニファではリモートワークを取り入れていますが、自宅で作業を行うにはそれなりの環境が必要となります。私は自宅のリビングが好きなので、リモートワークの時はいつもリビングで作業しています。子供が生まれる前はWEB会議もリビングで行っていましたが、会議中にホギャーホギャー泣き声が聞こえると他の参加者の迷惑になるので、WEB会議をする時は寝室に移動することにしています。寝室には電波が届きません!我が家はびっくりするくらい狭いのですが、NTTから貸し出されているルーター(ONUと一体型のもの)の電波はさらにびっくりするくらい弱いのです!そのため、電波が強めのルーターをAPとして使うために買いました。この春から子供が保育園に通い始めたために寝室に移動する必要がなくなり、ルーターは黒光りするただの飾りものとなってしまいました。調べてみるとDD-WRTというルーター用Linuxディストリビューションがあるみたいなので、早速入れてみることにしました。やること今回利用するルーターはBuffaloの「WZR-HP-AG300H」です。諸々の設定といった感じです。Databasesから「WZR-HP-AG300H」で検索すればすぐに見つかりました。flash」の方がそれっぽいのでこれをダウンロードします。管理画面が開くはずですが、なぜかアクセスできません。pingも通りません。アクセスできない色々調べてみると、ネットワーク内には以下のIPしか存在しておりませんでした。考えるとNTTから貸し出されているルーターでルーティングしているので、Buffaloのルーターが想定と違うIPでもそりゃそうか、という感じですね。APとして使っている場合はハマりポイントかもしれません。緊張する瞬間ですが、迷わず「設定」ボタンを押します。ファイルを選択して更新ファームウェアの更新が始まります。)に接続パスワード設定画面のあと、管理画面に無事に到達しました。MaskやGatewayをルーターの設定に合わせます。IPアドレスは「192.168.1.100」にしました。なるため、注意が必要です。SSIDとWPA「WZR-HP-AG300H」というデバイスは2.4GHzと5GHzで通信できますが、初期状態だとどちらも「dd-wrt」というSSIDになるので見分けがつきません。それぞれ別のSSIDを設定してあげます。Setupこのままだとご近所さんにフリーWi-Fiを提供して我が家を危険に晒してしまうので、WPAの設定も行います。Securityssh接続せっかくLinuxマシーンを手に入れたので、ssh接続できなくてはつまらない!ということで設定します。iOSエンジニアのキムです。ユニファの開発ブログでは初の投稿になります。私は4才の娘がいますが、娘が最近ひらがなに興味を持つようになり、読み書きの練習としてアプリを作ってあげることにしました。今日はそのアプリについて簡単に紹介させていただきたいと思います。今回作ったアプリは、画面上にひらがなの文字が表示されて、指でなぞって線を描くようなシンプルなアプリです。あとは、画面に表示されている文字を音声で読み上げる機能も入れてみました。指でなぞって線を描く機能ではUIBezierPathを使っています。音声機能はAVSpeechSynthesizerを使っています。処理内容iOSでは指で画面をなぞることでタッチイベントが発生します。今回はタッチイベント発生時にUIBezierPathを使って線を描画します。以下のような流れになります。"あ")上記では日本語を指定していますが、指定がなければ端末の言語設定が適用されます。声の高さや文字を読み上げるスピードなども変更できます。イメージ最後に子供に作ったアプリを見せたら大喜びで遊んでました。3日くらいで飽きてしまったようで今は使ってくれません・・・。今後も子供のために何か面白いアプリを作ってあげたいなと思います。ファイルをダウンロードするコードです。Detection月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。